Ir para conteúdo
  • Cadastre-se

Toruk

Membro
  • Total de itens

    175
  • Registro em

  • Última visita

  • Dias Ganhos

    17

Tudo que Toruk postou

  1. O erro significa que você está tentando usar uma database que já está sendo usada por outro programa. Interrompa os processos que envolvem ela, q o erro deve desaparecer.
  2. Use o script base do @Anderson Sacani que você conseguirá fazer oque deseja, porque cada vez q passa o “isInRange” vai checar os players na área e irá printar no console. Basta fazer os checks (ifs) para oque você deseja. O Game.getSpectators é uma função muito mal otimizada e ruim de delimitar a área, eu não aconselho usar ela em 1.X+, já que a outra faz tudo de forma melhor.
  3. Tenta usar assim: local dust = Action() function dust.onUse(player, item, fromPosition, target, toPosition, isHotkey) local forge_dusts = 100 -- quantidade de dusts que o item vai dar local dustsQuery = db.query("UPDATE `players` SET `forge_dusts` = `forge_dusts` + '" .. forge_dusts .. "' WHERE `id` = '" .. player:getAccountId() .. "';") if dustsQuery then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "RECEBEU "..forge_dusts.." DUSTS") item:remove(1) end return true end dust:id(19082) -- id do item a ser usado dust:register()
  4. Poste como q está a query. (Lembrando que deve-se remover o “->fetchAll()” por não se tratar de um array)
  5. Quando usa “SELECT *” ele vai selecionar todas as colunas de uma linha, portanto um array informando todos os valores. Para corrigir isso, basta você indicar a tabela que está com o valor da storage, ex: SELECT `value` FROM player_storage WHERE player_id = '.$player->getId().' AND `key` = '.$soulstorage.';
  6. Acho q mudar essa linha pode funcionar: if all_ready == #players_pos then Para: if all_ready > 0 then
  7. O erro está sendo gerado pela linha 43: wallItem:remove() Porém não tem nada declarando esse “wallItem”. Creio que foi adicionado ela de forma errada, portanto, basta remover ou comentar a linha para sair o erro.
  8. Mude essa parte: if (creatures && !creatures->empty() && !hasBitSet(FLAG_IGNOREBLOCKCREATURE, flags) && !player->isAccessPlayer()) { return RETURNVALUE_NOTPOSSIBLE; } Para: if (creatures && !creatures->empty() && !hasBitSet(FLAG_IGNOREBLOCKCREATURE, flags) && !player->isAccessPlayer()) { for (const Creature* tileCreature : *creatures) { if (!tileCreature->isInGhostMode()) { return RETURNVALUE_NOTPOSSIBLE; } } }
  9. Hmmm... Não sabia que esse tfs não tem esse bool, então é no tile.cpp. Poste ai para eu dar uma olhada. Preciso ver o "ReturnValue Tile::queryAdd"
  10. Isso está normal. O problema vai estar no bool do walkthrought (player.cpp) Possivelmente está faltando essa parte em seu script: https://github.com/otland/forgottenserver/blob/master/src/player.cpp#L783-L787 Ou então, poste esse bool inteiro, em spoiler, para que alguém possa ajudá-lo.
  11. Ctrl+F e vc coloca na 3ª opção (se não me engano). La tem como você digita alguma coisa para ser buscado e seleciona uma pasta pra passar esse scan. Por fim, ele mostra quantos arquivos foram analisados e quantas incidências da busca ocorreram.
  12. Geralmente as storages estão na pasta data/lib/tables porém pode ser encontrado storages em qualquer tipo de script (action,moveevent, talkactins, etc). Btw, eu recomendo sempre usar algum programa após decidir uma storage, como o notepad++. Dai vc da search em toda a pasta do seu servidor para ter certeza que não vai dar conflito com outra storage já usada.
  13. local config = { {effect = 30,pos = {x=160, y=54, z=7},frase = "hahaha"}, -- edita aqui né {effect = 30,pos = {x=160, y=54, z=7},frase = "hahaha"}, -- edita aqui né {effect = 30,pos = {x=160, y=54, z=7},frase = "hahaha"}, -- edita aqui né } function onThink(cid, interval, lastExecution) for i = 1, #config do doSendAnimatedText(config.pos[i], config.frase[i], math.random(1, 255)) doSendMagicEffect(config.pos[i],config.effect[i]) end return true end
  14. Isso está na pagina de donate .php e não no config.php. Só ir na pagina e procurar por <strike> ou <s> e deletar essa tag.
  15. Não tem nada a ver com "AND", mas sim, uma função que está aberta e que deveria ser fechada na linha 60 (expected (to close 'function' at line 60) near 'elseif'). Provavelmente algum erro de digitação, porém n tem como ver aqui, pq n ta em spoiler.
  16. Certo... Pensando em ats, 2 comandos basta. O primeiro seria esse: (ele serve como se um usuário estivesse acessando o servidor 24h, portanto o server não vai cair ao fechar o terminal, executando funções programadas) screen -S Tibia Após você executar ele, você vai ao seu diretório, cria o arquivo .SH que falei acima, muda o nome do executável e executa o servidor pelo arquivo .SH Exemplo: cd /home/server/ && ./restart.sh # Pronto, após esse momento, o server será reiniciado sempre após cair ou após ser fechado pelo server save. Dai, se vo
  17. Executa o server por um arquivo .sh (lembre de ativar uma screen antes para ficar 24h) Exemplo: echo "Starting server ..." ulimit -c unlimited while true; do ./nome_do_exec; done
  18. LOL. Você pensa que ele a aquele "script" está fazendo alguma checagem de condition. Como deu pra ver nesse seu comentário, vc não se deu ao trabalho de ler o script dele e muito menos o meu, pra ver qual está fazendo checagem ou não ... Btw, boa sorte com o script que faz checagem do além.
  19. Basta mudar para o tipo de função que você desejar, indiferente. Pode usar action, creaturescripts, onuseweapon, etc. Oque vai causar a condition é o "return doCombat(cid, combat, var)".
  20. Tenta usar o script assim. Eu fiz o exemplo de uma condition de fire. Eu não mexo muito com tfs 0.X por ser meio limitado, mas acho que vai dar certo assim. Se tiver algum erro só falar local percent = 30 --- Chance de Aplicar Condition local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) local condition = createConditionObject(CO
  21. Então, tenho quase certeza que esse é o motivo da travada, não estar conectado em localhost (localhost tem um delay mínimo para o server). Simplificando, no seu caso, tem o delay do sv mandar a informação para o banco de dados e depois do banco de dados confirmar a informação. (E quanto maior a distância de ambos, mais delay ficará) Recomendo você fazer o teste usando o server e o mysql na mesma máquina e ver se mesmo assim está dando lag ao dar saveserver ou uma query extensa no servidor.
  22. Your connection has been lost. Either your network or the server went down. (ERROR 10054) Como o próprio erro diz, o problema está acontecendo por um erro na comunicação database-server. Poste a usa src ou então, tudo que está relacionado a saves/quers. A última coisa, a database e o server estão na mesma máquina? Porque se não estiverem sendo usadas em localhost, pode vir a causar esse delay na comunicação entre plataformas.
  23. Nunca falei que deveria por no loop. Ele pode ser adicionado antes do selecionado e depois dar call do “items” posteriormente. A única coisa é que o addItem pode gerar alguns errinhos dependo do corpse … Mas fico feliz de ter resolvido sem pegar nada pronto.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo