Postado Abril 5, 2017 8 anos Boa noite, tibianos. Eu comecei a mexer com Tibia recentemente, e eu resolvi fazer um script igual a um server de SAMP que eu jogava, no qual é o seguinte, quando a pessoa entra no servidor, o log de quem entrou e saiu no default chat está desativado, mas se ela digitar /toggleentrousaiu, ela irá ativar o log, e consequentemente, as pessoas que logarem dali pra diante, aparecerão no chat, e se a pessoa digitar /toggleentrousaiu novamente, ela irá desativar o log. E assim, criando um loop, se quiser ela habilita, se quiser ela desliga. Mas acontece que eu criei um script desse baseado em storage, dessa maneira: Spoiler function onSay(cid, words, param) local hasToggled = getPlayerStorageValue(cid, 50514) --Essa variável é atribuída se a pessoa estiver com o comando habilitado. As duas são desnecessárias, local hasNotToggled = getPlayerStorageValue(cid, 50513) --Essa variável é atribuída se a pessoa estiver com o comando desabilitado. mas eu achei bacana trazê-las. if(param == ' ') then if hasToggled == 1 then --Se estiver habilitado setPlayerStorageValue(cid, 50514, 0) --Tira o storage de habilitado setPlayerStorageValue(cid, 50513, 1) --Coloca o storage de desabilitado doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "O log de quem entrou e saiu foi desativado.") doSendMagicEffect(getCreaturePosition(cid), 39) return true end if hasNotToggled == 1 then --Se estiver desabilitado setPlayerStorageValue(cid, 50513, 0) --Tira o storage de desabilitado setPlayerStorageValue(cid, 50514, 1) --Coloca o storage de habilitado doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_GREEN, "O log de quem entrou e saiu foi ativado.") doSendMagicEffect(getCreaturePosition(cid), 40) return true end return true else --Se o comando tiver param, exemplo (/toggleentrousaiu param1 param2 ou /toggleentrousaiu param1). doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Digite apenas /toggleentrousaiu.") doSendMagicEffect(getCreaturePosition(cid), 2) return false; end return false end Na classe login.lua eu coloquei o seguinte: Spoiler setPlayerStorageValue(cid, 50513, 1) -- Quando o player entrar, vai estar desabilitado. Mas acontece que, depois de logar (desabilitado), se eu usar o /toggleentrousaiu, ele vai habilitar normalmente, mas se eu tentar desabilitar novamente, o Tibia fecha dando este erro: E só acontece quando eu o executo novamente, sendo assim, creio eu, o erro por conta do script. Eu gostaria de pedir que me ajudassem com isso, se possível remodelar o código de uma maneira que não crashe, e também, gostaria de saber como faço para fazer a questão do onLogin, ou seja, quando a pessoa entrar, mandar mensagem apenas para quem tem o storage 50514, e no logout também. Obrigado!!!! Rep+ pra quem souber xD
Postado Abril 7, 2017 8 anos Cometeu alguns erros... mas está no caminho certo! Não tem necessidade de usar duas storages para habilitar/desabilitar... teste a talkaction assim: function onSay(cid, words, param) local stosys = 50514 if(param == '') then if getPlayerStorageValue(cid, stosys) == 1 then -- Se estiver habilitado setPlayerStorageValue(cid, stosys, 0) -- Desabilita doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "O log de quem entrou e saiu foi desativado.") doSendMagicEffect(getCreaturePosition(cid), 39) return true end if getPlayerStorageValue(cid, stosys) <= 0 then -- Se estiver desabilitado setPlayerStorageValue(cid, stosys, 1) -- Habilita doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_GREEN, "O log de quem entrou e saiu foi ativado.") doSendMagicEffect(getCreaturePosition(cid), 40) return true end else -- Se o comando tiver param, exemplo (/toggleentrousaiu param1 param2 ou /toggleentrousaiu param1). doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Digite apenas /toggleentrousaiu.") doSendMagicEffect(getCreaturePosition(cid), 2) return false end return false end E no login.lua para quando logar ficar desabilitado use assim: setPlayerStorageValue(cid, 50514, 0) Editado Abril 7, 2017 8 anos por luangop esqueci algo.. (veja o histórico de edições) Te ajudei? Clique em Gostei ! ²²²d¬¬b²²² "She's got a smile that it seems to me...." ♪♪
Postado Abril 7, 2017 8 anos Autor Agora, luangop disse: Cometeu alguns erros... mas está no caminho certo! Não tem necessidade de usar duas storages para habilitar/desabilitar... teste a talkaction assim: function onSay(cid, words, param) local stosys = 50514 if(param == '') then if getPlayerStorageValue(cid, stosys) == 1 then -- Se estiver habilitado setPlayerStorageValue(cid, stosys, 0) -- Desabilita doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "O log de quem entrou e saiu foi desativado.") doSendMagicEffect(getCreaturePosition(cid), 39) return true end if getPlayerStorageValue(cid, stosys) <= 0 then -- Se estiver desabilitado setPlayerStorageValue(cid, stosys, 1) -- Habilita doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_GREEN, "O log de quem entrou e saiu foi ativado.") doSendMagicEffect(getCreaturePosition(cid), 40) return true end else -- Se o comando tiver param, exemplo (/toggleentrousaiu param1 param2 ou /toggleentrousaiu param1). doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Digite apenas /toggleentrousaiu.") doSendMagicEffect(getCreaturePosition(cid), 2) return false end return false end Muito obrigado, amigo! :D. E eu tive que remover o "MESSAGE_STATUS_CONSOLE_RED/GREEN/ORANGE", porque os mesmos estavam crashando meu Tibia xD. E, você poderia me ajudar a como eu faço pra mandar mensagens no default de quem entrou e deslogou só pra quem tem "stosys == 1"? Muito obrigado novamente1
Postado Abril 7, 2017 8 anos 1 minuto atrás, SoyColombiaa disse: Muito obrigado, amigo! :D. E eu tive que remover o "MESSAGE_STATUS_CONSOLE_RED/GREEN/ORANGE", porque os mesmos estavam crashando meu Tibia xD. E, você poderia me ajudar a como eu faço pra mandar mensagens no default de quem entrou e deslogou só pra quem tem "stosys == 1"? Muito obrigado novamente1 Use MESSAGE_STATUS_CONSOLE_BLUE Deve funcionar.... quanto ao sistema amanhã posso tentar te ajudar, pois preciso ir dormir já que acordo muito cedo. Te ajudei? Clique em Gostei ! ²²²d¬¬b²²² "She's got a smile that it seems to me...." ♪♪
Postado Abril 7, 2017 8 anos Autor Tranquilo. E eu acho que não teria diferença do MESSAGE_STATUS_CONSOLE_BLUE, porque as mensagens que estão sendo mandadas pra mim, é a mesma cor de quando vc envia o pm pra alguem. XD. Então, até amanhã \O/
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.