
Histórico de Curtidas
-
ernaix69 recebeu reputação de moleza em Senzu healando %vida e mana@moleza
-
ernaix69 recebeu reputação de Maahzeera em Outfit AnimadaVocê precisa compilar suas spr com essas opçoes e ativar essas features no otc
g_game.enableFeature(GameSpritesAlphaChannel)
g_game.enableFeature(GameIdleAnimations)
g_game.enableFeature(GameEnhancedAnimations)
-
ernaix69 recebeu reputação de carloos em (Resolvido)exori com elemento da weponme diz qual a magia vc ta tentando fazer isso q eu mando ja ela funcionando com a formula q eu mandei
-
ernaix69 recebeu reputação de carloos em Atributos novosna verdade vc esta errando na %, se vc quiser adicionar 50% precisar ser assim:
setConditionParam(condition,CONDITION_PARAM_STAT_MAGICLEVELPERCENT, 150)
setConditionParam(condition,CONDITION_PARAM_SKILL_SWORDPERCENT, 150)
-
ernaix69 recebeu reputação de carloos em (Resolvido)exori com elemento da wepon1: isso voce vai colocar no script da magia msm
2: tem opção melhor q é colocar um formular q calcule o dano elemental de acordo com o a quantidade de dano q va ter na arma
formular:
@Carlinhous1996
-
ernaix69 recebeu reputação de Carlinhous1996 em (Resolvido)exori com elemento da wepon1: isso voce vai colocar no script da magia msm
2: tem opção melhor q é colocar um formular q calcule o dano elemental de acordo com o a quantidade de dano q va ter na arma
formular:
@Carlinhous1996
-
ernaix69 recebeu reputação de molezinha em Atributos novosna verdade vc esta errando na %, se vc quiser adicionar 50% precisar ser assim:
setConditionParam(condition,CONDITION_PARAM_STAT_MAGICLEVELPERCENT, 150)
setConditionParam(condition,CONDITION_PARAM_SKILL_SWORDPERCENT, 150)
-
ernaix69 deu reputação a Cat em (8.60) Macalania (Greed Ot) - Continente Ice, Cidade + HuntsInformações:
Autor: Ralke (felipe23#1113)
Créditos pela liberação do mapa: Mapping & Spriting Community. Clique Aqui para entrar!
Essa cidade é pra quem gosta de acessos secretos, muitos andares com armadilhas e passagens que levam até vários locais de caça, é uma boa cidade pra usar como a principal em um servidor de Tibia, juntamente com salas de teleports e outros continentes complementando.
Download: macalania.rar
IMAGENS:
-
ernaix69 deu reputação a FeeTads em não contar frag em determinada area (Source otx)SALVE rapaziada do TK, esses dias vim pensando em novos scripts pro meu OT, e em um deles eu precisava que determinada area não contasse frag pro player que matasse outros, PORÉM eu precisava que os players que morressem nessa area ainda assim tivessem as penalidades da sua morte, procurei por ai, achei alguns scripts que apenas tiravam o SKULL e não realmente o FRAG do player.
**script atualizado 22/10/2023** - melhorado e otimizado, levei o script pra puxar as infos por .lua / creatureScripts
vou disponibilizar o code aqui, e o que fazer pra determinada area não contar frag.
SOURCE OTX 2 / TFS 0.x, Funciona em TFS 1.x mudando as tags e ajeitando as sintaxes.
vá em creatureevent.cpp
procure por:
else if(type == "preparedeath") _type = CREATURE_EVENT_PREPAREDEATH;
Adiciona abaixo:
else if(type == "nocountfrag") _type = CREATURE_EVENT_NOCOUNTFRAG;
procure por:
case CREATURE_EVENT_PREPAREDEATH: return "onPrepareDeath";
Adicione abaixo:
case CREATURE_EVENT_NOCOUNTFRAG: return "noCountFragArea";
procure por:
case CREATURE_EVENT_PREPAREDEATH: return "cid, deathList";
Adicione abaixo:
case CREATURE_EVENT_NOCOUNTFRAG: return "cid, target";
agora no mesmo arquivo, vá até o final do arquivo e adicione essa função:
uint32_t CreatureEvent::executeNoCountFragArea(Creature* creature, Creature* target) { //noCountFragArea(cid, target) if(m_interface->reserveEnv()) { ScriptEnviroment* env = m_interface->getEnv(); if(m_scripted == EVENT_SCRIPT_BUFFER) { env->setRealPos(creature->getPosition()); std::ostringstream scriptstream; scriptstream << "local cid = " << env->addThing(creature) << std::endl; scriptstream << "local target = " << env->addThing(target) << std::endl; if(m_scriptData) scriptstream << *m_scriptData; bool result = true; if(m_interface->loadBuffer(scriptstream.str())) { lua_State* L = m_interface->getState(); result = m_interface->getGlobalBool(L, "_result", true); } m_interface->releaseEnv(); return result; } else { #ifdef __DEBUG_LUASCRIPTS__ std::ostringstream desc; desc << creature->getName(); env->setEvent(desc.str()); #endif env->setScriptId(m_scriptId, m_interface); env->setRealPos(creature->getPosition()); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(creature)); lua_pushnumber(L, env->addThing(target)); bool result = m_interface->callFunction(2); m_interface->releaseEnv(); return result; } } else { std::clog << "[Error - CreatureEvent::noCountFragArea] Call stack overflow." << std::endl; return 0; } }
agora vá em creatureevent.h
procure por:
CREATURE_EVENT_PREPAREDEATH
adicione abaixo:
CREATURE_EVENT_NOCOUNTFRAG
procure por:
uint32_t executePrepareDeath(Creature* creature, DeathList deathList);
Adicione abaixo:
uint32_t executeNoCountFragArea(Creature* creature, Creature* target);
agora vá em player.cpp
procure por:
bool Player::onKilledCreature(Creature* target, DeathEntry& entry)
abaixo de:
War_t enemy; if(targetPlayer->getEnemy(this, enemy)) { if(entry.isLast()) IOGuild::getInstance()->updateWar(enemy); entry.setWar(enemy); }
Adicione o seguinte código:
if (targetPlayer){ CreatureEventList killEvents = getCreatureEvents(CREATURE_EVENT_NOCOUNTFRAG); for (const auto &event : killEvents) { if (!event->executeNoCountFragArea(this, target)) { return true; } } }
//
Feito isso, tudo completo na sua source, agora é necessário adicionar o creaturescript dentro do servidor
vá até creaturescripts/scripts
crie um arquivo chamado, "noCountFragInArea.lua"
e dentro dele cole o código:
--[[ script feito por feetads / TibiaKing ]]-- --[[ discord: feetads / FeeTads#0246 ]]-- -- Add positions here for which you do not want to count frags local areas = { [1] = {from = {x = 91, y = 122, z = 7}, to = {x = 98, y = 127, z = 7}}, -- from = area superior esquerda / to = area inferior direita (formando um quadrado) } local onlyKillerInArea = false -- only killer need to be in area? function noCountFragArea(cid, target) if not isCreature(cid) or not isCreature(target) then return true end local posKiller = getPlayerPosition(cid) local posTarget = getPlayerPosition(target) for i = 1, #areas do local area = areas[i] if isInArea(posKiller, area.from, area.to) then if onlyKillerInArea then return false elseif isInArea(posTarget, area.from, area.to) then return false end end end return true end
agora em creaturescripts.xml
<event type="nocountfrag" name="fragarea" event="script" value="noCountFragInArea.lua"/>
agora em creaturescripts/scripts/login.lua
procure por OU semelhante a esse:
registerCreatureEvent(cid, "AdvanceSave")
e abaixo adicione:
registerCreatureEvent(cid, "fragarea")
//
Agora tudo certo, quando quiser adiciona uma area que não pega frag, vá até o script e apenas coloque a area, igual o demonstrado no script
Exemplo:
local areas = { [1] = {from = {x = 91, y = 122, z = 7}, to = {x = 98, y = 127, z = 7}}, [2] = {from = {x = 1000, y = 1000, z = 7}, to = {x = 1100, y = 1100, z = 7}}, }
assim somente colocando a area no script e abrindo o server ou dando /reload, já funcionará a area como não pegar frag.
Esse sistema pode ser bom pra areas de pvp ativo, onde você ainda quer que o player que morrer perca os atributos, como se fosse uma morte normal, porém não conta frag pra quem matar.
Bom pra sistemas tipo castle 48h (guild war), onde há diversas mortes e risco de pegar red, atrapalhando a war.
Façam bom proveito dos scripts, e deixem os créditos no script rsrs
**Eu fiz as alterações e o simples código por isso vim disponibilizar, créditos meus**
-
ernaix69 deu reputação a L3K0T em Teleporte Summon tfs 0.3.6TUTORIAL - TELEPORTE SUMMON
Introdução:
Fala pessoal, hoje vim aqui liberar um código para que futuros criadores de pokemon não usem GLOBALEVENTS ou MOVEMENTS para teleportar seus pokemons a distancia... hoje irei ensinar a você não usar mais esses scripts que aonde da maioria da vezes crash o servidores em WINDOWS em testes.
Sobre o Sistema:
Esse sistema tem a função de teleportar seu pokemon a certos sqm, tipo assim, você tem um pokemon e a distancia dele é 7 sqm, ao passar os 7 sqm ele teleporta para você, seja em qualquer lugar até de baixo da terra ou lugares super longe (Não se preocupe o problema do pokemon Morrer com source novas será removido e assim ele não vai morrer)
Creature.cp
Tutorial:
Vá em sua source procure por creature.cpp e abra com algum editor de texto e ache:
if(!summons.empty()) { std::list<Creature*>::iterator cit; std::list<Creature*> despawnList; for(cit = summons.begin(); cit != summons.end(); ++cit) { const Position pos = (*cit)->getPosition(); if((std::abs(pos.z - newPos.z) > 2) || (std::max(std::abs(( newPos.x) - pos.x), std::abs((newPos.y - 1) - pos.y)) > 30)) despawnList.push_back((*cit)); } for(cit = despawnList.begin(); cit != despawnList.end(); ++cit) g_game.removeCreature((*cit), true); } Mude para:
/*if(!summons.empty()) { std::list<Creature*>::iterator cit; std::list<Creature*> despawnList; for(cit = summons.begin(); cit != summons.end(); ++cit) { const Position pos = (*cit)->getPosition(); if((std::abs(pos.z - newPos.z) > 2) || (std::max(std::abs(( newPos.x) - pos.x), std::abs((newPos.y - 1) - pos.y)) > 30)) despawnList.push_back((*cit)); } for(cit = despawnList.begin(); cit != despawnList.end(); ++cit) g_game.removeCreature((*cit), true); }*/ Agora salve ctrl+s e feche.
Monster.cpp
Tutorial:
Agora procure por Monster.cpp e ache:
void Monster::onThink(uint32_t interval) abaixo de:
if(teleportToMaster && doTeleportToMaster()) teleportToMaster = false; coloque:
if(getMaster()){ if(!Position::areInRange<6,6,0>(getPosition(), getMaster()->getPosition())) doTeleportToMaster(); } salve ctrl+s e revompila no modo rebuilde não esqueça de habilitar as opções em config.lua
-- Summons maxPlayerSummons = 1 teleportAllSummons = true teleportPlayerSummons = true
lembre se de remover qualquer scripts que teleporta seu pokemon a distancia.
Créditos:
By L3K0T
-
ernaix69 recebeu reputação de Doidodepeda em Pedido Anti Divulgacao + banlocal CONFIG = { serverName = "", adminName = "Automatic Ban", blockedLinks = {"baiaksystem", "baiaksystem"}, action = "ban", actionTime = {1, "min"}, comment = "Sharing link: ", muteStorage = 79004 } local blockedLinksData = {} local separator = '[ !\t@%$%^%+%-%.%%_,<>?()3]*' for _, linkText in pairs(CONFIG.blockedLinks) do local data = {} data.link = linkText data.preg = '.*' for c in string.gmatch(linkText, '.') do if(c == '.') then data.preg = data.preg .. '.*' else data.preg = data.preg .. c .. separator end end data.preg = data.preg .. '.*' table.insert(blockedLinksData, data) end function isLegalMessage(words) for _, blockedLink in pairs(blockedLinksData) do if(string.match(words, blockedLink.preg) ~= nil) then return false, blockedLink.link end end return true, '' end function onSay(cid, words, param, channel) if getPlayerStorageValue(cid, 5253711) > os.time() then return false end local time = getPlayerStorageValue(cid, 455010) words = words .. " " .. param local legalMessage, forbiddenLink = isLegalMessage( string.lower(words)) if channel == 9 and time > os.time() then return doPlayerSendCancel(cid, 'You are muted for ' .. (time - os.time()).. ' second' .. ((time - os.time()) > 1 and 's' or '').. ' in this channel.') end local time = getPlayerStorageValue(cid, 455011) if channel == 6 and time > os.time() then return doPlayerSendCancel(cid, 'You are muted for ' .. (time - os.time()).. ' second' .. ((time - os.time()) > 1 and 's' or '').. ' in this channel.') end if(not legalMessage) then if CONFIG.action == "mute" then local muteStorageValue = getPlayerStorageValue(cid, CONFIG.muteStorage) if(muteStorageValue > os.time()) then doPlayerSendCancel(cid, "You are still muted for " .. muteStorageValue-os.time() .. " seconds.") return true end setPlayerStorageValue(cid, CONFIG.muteStorage, mathtime(CONFIG.actionTime)+os.time()) if(channel == CHANNEL_DEFAULT) then doCreatureSay(cid, CONFIG.serverName.." RULES!", TALKTYPE_SAY) end doAddCondition(cid, exhaust) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Link: " .. forbiddenLink .. " is forbidden.") else local accId = getPlayerAccountId(cid) doAddAccountBanishment(accId, getPlayerGUID(cid),mathtime(CONFIG.actionTime) + os.time(), 6, ACTION_BANISHMENT, CONFIG.comment..forbiddenLink, getPlayerGUIDByName(CONFIG.adminName), CONFIG.comment..forbiddenLink) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_GREEN) doRemoveCreature(cid) end return true end setPlayerStorageValue(cid, 5253711, 5 + os.time()) end function mathtime(table) local unit = {"sec", "min", "hour", "day"} for i, v in pairs(unit) do if v == table[2] then return table[1]*(60^(v == unit[4] and 2 or i-1))*(v == unit[4] and 24 or 1) end end return error("Bad declaration in mathtime function.") end
Tem isso na base do baiakpvp.
-
ernaix69 deu reputação a xWhiteWolf em New Library v. 1.2Fala galera, hoje vim trazer pra vocês uma nova biblioteca de funções que eu venho desenvolvendo, pretendo ir atualizando esse tópico constantemente sempre adicionando funções novas e explicando a utilização delas. Algumas funções que eu coloquei aqui estão presentes na OTAL também, porém algumas eu fiz pequenas correções de forma que essa lib poderia facilmente substituir a OTAL sem grandes problemas (pelo menos se você utilizava apenas as funções básicas da otal)
Todas as funções que não tem -- nome do autor do lado dela foram feitas por mim, xWhiteWolf ou Night Wolf (NW). O restante delas são créditos dos devidos autores, apenas coloquei pois considero funções vitais no server de cada um. Crie um arquivo em data/lib chamado 075 - White Wolf Functions.lua e coloque o seguinte código dentro:
Agora eu vou explicar oque cada função faz porque de nada adianta lançar uma lib e não explicar oque ela faz não é mesmo? hahaha
Obs inicial: quando uma função tiver em seus parametros um [] significa que oque está dentro do colchetes não é um parâmetro obrigatório.
Como usar: doShowTimeByPos(cid, getCreaturePosition(cid), 20, 20)
Irá fazer uma contagem regressiva na posição que o player se encontra começando de 20 e mandando a mensagem na mesma cor da fala dos monstros.
Essa função é bem útil em actions/spells para fazer contagem de tempo em runas como a magic wall e ver quanto tempo falta pra magic wall sumir)
Obs: Espero que ajude bastante pessoas a entender sobre funções, eu utilizei cid como o principal uid das funções nos exemplos mas você pode muito bem utilizar outros uids, fica a critério seu.
Qualquer dúvida comentem abaixo que eu vou tentar ajudar da melhor maneira.
Ahhh, isso daí foi testado em 8.54 mas deve funcionar em quase todas as versões que tenham as funções básicas do TFS.
EDIT: Pessoal, agora é sério, essa lib tem fácil umas 600 linhas, das quais umas 500 eu devo ter codado sozinho (na mão, linha por linha). Eu tive todo o trabalho de testar cada uma delas e oque eu peço é o mínimo de gratidão e respeito. Se eu te ajudei clique em Gostei, se você tiver alguma dúvida eu to me colocando a disposição de responder qualquer coisa relacionada ao tópico, mesmo que você não saiba nem oque é uma lib apenas venha aqui e escreva sua dúvida.
EDIT 2: Duas novas funções adicionas, espero que gostem!
EDIT 3: Três novas funções adicionadas juntamente com suas respectivas explicações.
-
ernaix69 deu reputação a FlameArcixt em Horder Leader System (Definitivo)?HORDER LEADER SYSTEM?
Já vou me adiantando, fiz o script mas não sou programador, testei varias e varias vezes aqui e deu certo, se não der ai eu não ofereço suporte, sorry, se algum programador quiser melhorar o código fica a vontade.
Como Funciona: Um monstro especial "Boss", quando você targeta nele, ele Cria vários outros monstros mais fracos para ajudar ele. só fiz esse script pra contribuir aqui no tk.
?Em data\creaturescript\creaturescript.xml registre?
?Em data\creaturescript\script crie um arquivo com nome "target.lua" e cole o código?
?Para isso funcionar, você deve registrar os eventos nos monstros que você for usar EX: ?
O que mudei no script desde o beta? simples, agora só vai spawnar se o monstro levar dano, e a storage global só volta a -1 se o monstro morrer.
Prováveis problemas? sim, o script foi feito para boss, ou seja, se tiver mais de dois boss no mapa pode dar problema, por exemplo, um boss é atacado e a storage fica ativada, mas ele não é morto então não desativa a storage, se você for matar o outro boss, os monstros não irão nascer, pois a storage já vai estar ativada, ou seja, deixe apenas um boss por vez.
Só isso mesmo, suporte só com 10zão no pixpobre?
Agradecimentos ao @Vodkart(Ajudou muito com erros/ediçoes).
-
ernaix69 deu reputação a LeoTK em [Lenhar System] Sistema De Lenhar / Adaptável Mina/FrutosSalve galera bom eu achei um script de lenhar antigo fui atrás tentei editar deu fail então recebi ajuda de alguns membros e enfim consegui trazer isso para vocês para muitos pode ser um simples sistema de cortar arvore mas com ele da para usar a criatividade e usar para muitas outras coisas como por exemplo mina para minerar minérios/ arvores com frutos para colher e por ai vai.
Bom o script faz o seguinte você usa o machado em uma arvore configurável e você fica com a roupa de lenhador corta a arvore fica o toco dela e depois de um tempo a arvore volta ao normal para ser cortada novamente e assim você ganha itens configuráveis.
Membros que ajudaram no script
@JoviM
@lordzetros
Criador do script original
@PsyMcKenzie
Corrigido por
@Storm
Testado na versão 0.3.6 / 8.54
Outfit de lenhador
8.54 V
outfit obd 854_1248.obd = Homem
outfit obd 854_1249.obd = Mulher
8.60 V
outfit obd 860_1248.obd = Homem
outfit obd 860_1249.obd = Mulher
Action.xml
<action itemid="ID DO MACHADO" event="script" value="NOME DO SCRIPT.lua"/>
Script V
Vídeo demonstrativo
Espero que gostem do script
-
ernaix69 deu reputação a Yan Liima em Limite de players em guild websiteLimite máximo de players em guild WEBSITE ?
Bom, decidi postar essa modificação que fiz a muito tempo, pois vi que bastante gente queria
Para Modern AAC e vi que ninguém soube ajudar. Como é algo bem simples e ta parado aqui faz tempo
Decidi disponibilizar. Não só para Modern, mas para Gesior também!
Estarei disponibilizando de duas maneiras:
1º Será um valor configurado no proprio config.php, onde determinará o limite máximo de todas as guild.
2º A verificação será feita por DB, onde terá um valor padrão para cada guilda criada, podendo ser alterado o valor de membros maximo.
Ou seja, a guilda número UM pode ter máximo de 50 players, e a guilda número DOIS pode ter o máximo de 100.
Vocês pode ser criativos e vender items que aumenta o limite ou fazer eventos/sorteios para aumentar...
Enfim, vamos lá...
Primeira maneira:
Modern AAC:
Gesior:
Segunda maneira:
Modern AAC:
Gesior:
Prontinho galera!!!
Caso queiram para cmd in-game: LINK
-
ernaix69 deu reputação a FeehLoveCes em [ACTION] Cassino - Roleta de itemsOlhando alguns posts vi que pediram um Cassino que já existe em um servidor ou um semelhante, porem não encontrei ninguém postando nenhum, então resolvi criar ele já que não tinha nada melhor pra fazer...
Testado: OTX mas acredito que funcione em TFS 0.3/0.4
Como funciona: Ao puxar a alavanca será roletado uma serie de itens X vezes, ao terminar o item que parar no centro é a recompensa do player.
Instalação: Crie uma sala parecida com esta pelo seu Map Editor
Depois em data/actions/scripts crie um arquivo chamado cassinoroll.lua
Agora em Actions.xml
Créditos:
Feeh - Por criar
@Storm - Me ajudar em algumas duvidas
Caso alguém conheça quem teve a ideia do evento eu coloco os créditos
-
ernaix69 recebeu reputação de Cat em [Novo Critical System] Critical System 2021Cara, ja tive epoca q eu usava sim 1 pra cada tipo de arma, mas vc teria q por pra checar se é tal vocação antes e daria problemas com os EK q podem treinar 3 tipos de armas e talz. O ideial ai seria por em fishing ou fist
-
ernaix69 recebeu reputação de Cat em [Novo Critical System] Critical System 2021Quanto maior a skill maior a chance.
-
ernaix69 recebeu reputação de Cat em [MyAAC] Sistema de Troca de VocaçãoComo eu disse só vai ocorrer em servidores desorganizados, o sistema em si ta perfeito, mas conhecendo a realidade dos servidores derivados sei q isso vai dar problema em varios.
E particularmente eu vou usar.
Ah, esqueci de mencionar isso, mas a mudança de voc deveria resetar o lv, hp e mp.
-
ernaix69 recebeu reputação de Cat em [MyAAC] Sistema de Troca de VocaçãoMuito bom, parabens.
Bastante interessante, mas servidores não organizados podem ter alguns problemas.
Um dos bugs: se o jogador criar um char distance e subir sua skill pra 100 e mudar pra uma voc melee, ele ira travar o servidor na hora q atacar, pq a maioria dos servidores separam as "classes" pelo vocations.xml aumentando a dificuldade de upar a skill.
-
ernaix69 deu reputação a Endless em [MyAAC] Sistema de Troca de VocaçãoOlá senhores, hoje vim disponibilizar um Sistema desenvolvido por mim para o MyAAC onde a função dele é vender a Troca de Vocação para o jogador.
Explicando como funciona:
O desenvolvedor(você) vai definir 1 preço para o jogador pagar para trocar a vocação de seu personagem. Exemplo: Eu sou 1 Naruto e quero mudar minha vocação para 1 Sasuke, eu vou pagar X valor e minha vocação irá ser alterada. Abaixo 1 gif exemplificando o sistema.
Como instalar em seu site:
É muito simples, vou dividir por passos onde o 1° passo será a inserção do código e o 2° passo a configuração dele. Vamos lá?
1° Passo (Inserção do código)
Acesse o diretório system/pages/ e ali dentro você vai criar 2 arquivos.
Crie 1 arquivo com nome mudarvoc.php e adicione o seguinte código dentro dele. (Esse arquivo será o responsável por tratar as requisições e irá fazer toda a parte lógica do sistema)
Código mudarvoc.php:
Agora dentro da mesma página crie 1 arquivo chamado mudarvocacao.php (Ele será responsável por renderizar a parte visual do sistema em seu site), adicione o seguinte código dentro dele:
Código mudarvocacao.php:
Agora acesse o diretório system/templates/ e ali dentro você vai criar 1 arquivo chamado mudarvoc.html.twig (Ele será a parte visual que vai enviar os dados para o sistema gerenciar e tratar eles), adicione o seguinte código dentro dele:
Código mudarvoc.html.twig:
Agora no diretório system/templates/ acesse o arquivo account.management.html.twig e adicione o seguinte código dentro dele na parte final dele, esse código vai checar se está ativo a opção de mudar vocação no config.php, se estiver false, ele não vai exibir o botão.
Código para adicionar no arquivo account.management.html.twig:
Ficando +/- assim:
2° Passo (Configuração do código):
Agora acesse o arquivo config.php que está no diretório raiz de seu site. E vamos adicionar o seguinte código:
Com estas 2 linhas de código nós já podemos controlar o sistema, a 1ª linha será responsável por ativar e desativar o sistema. A 2ª linha é responsável pelo preço que será cobrado para trocar a vocação.
Agora coloque este código:
Basicamente aqui estamos definindo quais vocações serão disponibilizadas para o jogador poder trocar pela sua.
Exemplo: Com essa configuração estamos definindo que as vocações que você pode pegar ao pagar para trocar a sua são: Chouji, Haku, Shikamaru, Shino, Temari, Rock lee, Hinata e Ino. Fique a vontade para configurar a seu gosto.
Agora no diretório system/ abre o arquivo chamado functions.php e adicione a seguinte função:
Nessa função você vai configurar os ID das suas vocações, exemplo: $a > 10 && $a < 20, nessa situação você está conferindo se o ID da vocação este entre 11 até 19, pois ele precisa ser maior que 10 e menor do que 20. Sempre que você for adicionar 1 nova vocação nessa função, basta adicionar o else if ($a > TAL && $a < TAL) $nomevoc = "TAL";
Pronto, configurado!!
Repare que se você deixar a opção 'mudar_vocacao' => false lá no config.php, ele não vai exibir nada no Gerenciamento de sua conta:
Agora se você colocar true, você deve ter algo como isto:
Pronto, sistema instalado!! Agora você pode disponibilizar para seus jogadores a opção de trocar de vocação pagando um valor X de pontos.
-
ernaix69 recebeu reputação de Vodkart em (Resolvido)Spell de AreaAgora é só trocar no xml, tirar de area e por self
-
ernaix69 recebeu reputação de FeehLoveCes em (Resolvido)Spell de AreaAgora é só trocar no xml, tirar de area e por self
-
ernaix69 recebeu reputação de BangxD em (Resolvido)Spell de AreaAgora é só trocar no xml, tirar de area e por self
-
ernaix69 deu reputação a Naze em Otimizado: AutoLoot in Sources for Otx(2 ou menor)Uns dos problemas das maiorias dos otserv casual que estão online é o autoloot, alguns com erros e defeito na checagem dos containers e sempre consumindo muito por ser em lua fazendo checagens de tile, corpo, itens e etc. Por isso decidi da uma contribuição a essa comunidade que me evoluiu bastante um autoloot diretamente na source na função que insere os itens no corpo, otimizando em 100% na hr da entrega do item, e não tendo problemas ocasionais como corpos sobre corpos ou varias bags.
Esse sistema já é bem comum quando comprado, mas gratuito acredito que ainda não tinha disponível, então fiz esse totalmente do 0 na source tfs 0.4 rev 3999 (do yan) e passei para Otx corrigindo alguns erros de compatibilidade.
Atenção na instalação! Qualquer problema pra compilar que envolva as linhas presente no código verifique novamente se instalou corretamente antes de pedir ajuda para evitar flood. Qualquer bug, erro ou mal funcionamento encontrado pode postar que estarei corrigindo, mas não irei customizar a seu agrado, você consegue fazer isso sozinho com atenção e calma, e se precisa de ajuda é só posta as duvidas.
Imagens do Sistema:
Características:
-> Otimizado executando apenas funções necessarias -> Comandos simples e praticos -> !autoloot on/off //Autoloot estara sempre ligado, e caso queria desliga use '!autoloot off' -> !autoloot bank/bag //Define para onde ira o dinheiro coletado, direto banco ou no inventario -> !autoloot list //Lista todos itens adicionados para coleta -> !autoloot clear/clean //Remove todos itens da lista -> !autoloot add, name item, name item, ... //Adiciona itens na lista, podendo adicionar quantos quiser de uma vez. Ele retorna um messagem dizendo os itens que foram adicionados e os que deram erro e não foram adicionados, talvez por escrito errado, ja existente na lista, na lista de bloquados, etc. -> !autoloot remove, item name, item name, ... //Remove itens da lista, com a mesma logica do add. -> Opções configuravel pelo Config.lua -> AutoLoot_MoneyIDs //IDs dos Itens Moedas do servidor como gold coins, platinium coins, crystal coins. -> AutoLoot_BlockIDs //IDs dos itens bloqueados para autoloot -> AutoLoot_MaxItem //Quantidade maxima de itens para adicionar a lista -> Sistema livres de bugs ou logs de erros.
Instalação:
Toda instalação será feita na source, exceto por 1 linha em talkactions.xml e 3 variáveis no config.lua
Otx :
Link para TFS -> https://tibiaking.com/forums/topic/101079-otimizado-autoloot-in-sources-for-tfs-036-tfs-04/
Caso ocorra algum erro na compilação so mandar que ajudo a resolver, testei apenas em uma otx que tenho então nao sei se pode sugir outros problemas. Nas versões atual da Otx para servidores 10+ não ira funcionar pois algumas funções são diferente e não irei corrigir agora, em breve passo o mesmo pra tfs 1.3 e otx3.
Esse sistema foi totalmente feito por mim, mas dou créditos também ao @Mathias Kenfi por me ajudar muito na evolução em lua/c++ e a tabela sql é a mesma usada no quick autoloot 1.3 postado por Pedriinz