Postado Setembro 2, 2019 5 anos Olá novamente. Estou tentando organizar meu questlog (pra que as missões apareçam, mas só fiquem com status de "completa" após terem sido feitas). Tudo funciona ok, mas o jeito que estou fazendo me parece mais trabalhoso, e "desorganizado". Gostaria de saber se tem como eu fazer um Array de Storages, e depois pegar todas as que estão -1 e setar como 0. Segue formato atual do código: function onLogin(player) -- Quest Logs if player:getStorageValue(5010) == -1 then player:setStorageValue(5010, 0) end if player:getStorageValue(5020) == -1 then player:setStorageValue(5020, 0) end if player:getStorageValue(5030) == -1 then player:setStorageValue(5030, 0) end if player:getStorageValue(5040) == -1 then player:setStorageValue(5040, 0) end if player:getStorageValue(5050) == -1 then player:setStorageValue(5050, 0) end if player:getStorageValue(5060) == -1 then player:setStorageValue(5060, 0) end if player:getStorageValue(5070) == -1 then player:setStorageValue(5070, 0) end if player:getStorageValue(5080) == -1 then player:setStorageValue(5080, 0) end if player:getStorageValue(1114) == -1 then player:setStorageValue(1114, 0) end if player:getStorageValue(87580) == -1 then player:setStorageValue(87580, 0) end if player:getStorageValue(587423) == -1 then player:setStorageValue(587423, 0) end return true end Quero fazer um "local quests" com todas elas, e aí um if só que pegue todas as storages no array "quests" e, caso a storage seja -1, sete ela como 0. Gostaria também de fazer com que caso a storage seja 1, ele "some" um valor a uma storage "quests feitas", por assim dizer. Pra fazer um ranking de quests feitas. Aproveitando o tópico, eu uso ambos clientes 10.00 (outdated) e 11.48 no meu ot, mas quando tento abrir esse questlog (a parte de missões especificamente) no cliente 11 ele crasha. No cliente 10 funciona normalmente. Alguém sabe se isso tem solução? Editado Setembro 2, 2019 5 anos por MatCollier (veja o histórico de edições)
Postado Setembro 2, 2019 5 anos local storagesQueVaoPraZero = { 5010, 5020 } local storagesParaVerificarESomar = { 5030, 5040 } local storageSoma = 1000 function onLogin(cid) for _, storage in ipairs(storagesQueVaoPraZero) do if player:getStorageValue(storage) == -1 then player:setStorageValue(storage, 1) end end for _, storage in ipairs(storagesParaVerificarESomar) do if player:getStorageValue(storage) == 1 then player:setStorageValue(storageSoma, player:getStorageValue(storageSoma) + 1) player:setStorageValue(storage, 2) end end return true end STYLLER OT 2022
Postado Setembro 2, 2019 5 anos Autor Cara, muito obrigado mesmo! Tu tas salvando minha vida. Na verdade as mesmas storages que vai verificar se é -1, vai verificar se é 1 (se for -1, seta 0, se for 1, aumenta a storageSoma). Mas acho que consigo adaptar com isso aí que tu me deu. Só tem 1 porém: Eu não queria mudar as storages que forem =1. Queria adicionar +1 na storage soma e manter ela como 1, porque se a storage virar 2, vai bugar meu questlog. Tem como? Ou por ser uma função onLogin vai ficar somando sempre que eu logar e o número vai ficar errado?
Postado Setembro 2, 2019 5 anos Você pode fazer a contagem toda vez que logar setando uma storage zerada ou colocar pra somar 1 em cada quest. No primeiro caso você colocar antes do laço isso: player:setStorageValue(storageSoma, 0) STYLLER OT 2022
Postado Setembro 2, 2019 5 anos Autor 9 minutos atrás, luanluciano93 disse: Você pode fazer a contagem toda vez que logar setando uma storage zerada ou colocar pra somar 1 em cada quest. No primeiro caso você colocar antes do laço isso: player:setStorageValue(storageSoma, 0) Entendi! Valeu mesmo mano!!! Agora só preciso criar uma coluna na database pra guardar esse valor, e fazer um ranking de quests feitas né? Deu perfeitamente certo, muito obrigado mesmo!!! Uma dúvida: Tu acha que tem como fazer essa função dar certo como onThink? Porque eu reparei aqui que o "Quests Feitas", ou no caso a storageSoma, só atualiza quando reloga, mas queria q ele atualizasse assim que uma nova quest fosse feita.
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.