Postado Março 30, 2019 6 anos eae, eu tenho um outfit por storage, queria algo para acrescentar um time nessa storage que há removesse depois de x tempo, talvez seja no login sei lah, obrigado! Versao 8.6
Postado Março 31, 2019 6 anos Só utilizar aquele "métodozin" padrão : Seta os.time() + seconds na storage ao dar a outfit ao jogador, depois só verificar em qualquer evento, seja onLogin, onThink; vai de sua preferência : if getPlayerStorageValue(cid, storage) <= os.time() then -- fazer aqui a remoção da outfit end
Postado Março 31, 2019 6 anos Autor 2 horas atrás, Lyu disse: Só utilizar aquele "métodozin" padrão : Seta os.time() + seconds na storage ao dar a outfit ao jogador, depois só verificar em qualquer evento, seja onLogin, onThink; vai de sua preferência : if getPlayerStorageValue(cid, storage) <= os.time() then -- fazer aqui a remoção da outfit end o script que da a storage é esse, boss kill: function onDeath(cid, corpse, deathList) local Storage,monstName = 20000, "[BOSS]Gonka" if isMonster(cid) and string.lower(getCreatureName(cid)) == string.lower(monstName) then doBroadcastMessage("O player "..getPlayerName(deathList[1]).." matou o [BOSS]Gonka e recebeu o outfit Supremo.") for _, check in pairs(deathList) do if isPlayer(check) then setPlayerStorageValue(check, Storage, 1) end end end return true end
Postado Março 31, 2019 6 anos 3 horas atrás, Sdrula disse: o script que da a storage é esse, boss kill: no caso, você quer resetar a storage do jogador depois de um certo tempo? se for isso, utilize esta minha modificação que deixarei abaixo.. Ahh, um detalhe! O intuito do script é dar storage somente para quem matou o boss? Ou entendi errado? Porque se sim, fiz algumas correções, antes estava iterando a deathList toda. local config = { boss = '[BOSS]Gonka', storage = 20000, time = 300 -- 5 minutes } function onDeath(cid, corpse, deathList) if isMonster(cid) and getCreatureName(cid):lower() == config.boss:lower() then local player = deathList[1] if isPlayer(player) then doBroadcastMessage(('O player %s matou o %s e recebeu a outfit Supremo.'):format(getPlayerName(player), config.boss)) setPlayerStorageValue(player, config.storage, os.time() + config.time) end end return true end function onThink(cid) local time = getPlayerStorageValue(cid, config.storage) if time ~= -1 and time < os.time() then setPlayerStorageValue(cid, config.storage, -1) doPlayerPopupFYI(cid, 'Atenção, sua outfit Supremo expirou.') end return true end Agora só adicionar a tag (não esqueça de alterar o nome do arquivo no XML) do novo evento onThink e um register em login.lua : <event type="think" name="OutfitBossThink" event="script" value="scriptname.lua"/> login.lua : registerCreatureEvent(cid, 'OutfitBossThink')
Postado Março 31, 2019 6 anos Autor 1 hora atrás, Lyu disse: no caso, você quer resetar a storage do jogador depois de um certo tempo? se for isso, utilize esta minha modificação que deixarei abaixo.. Ahh, um detalhe! O intuito do script é dar storage somente para quem matou o boss? Ou entendi errado? Porque se sim, fiz algumas correções, antes estava iterando a deathList toda. local config = { boss = '[BOSS]Gonka', storage = 20000, time = 300 -- 5 minutes } function onDeath(cid, corpse, deathList) if isMonster(cid) and getCreatureName(cid):lower() == config.boss:lower() then local player = deathList[1] if isPlayer(player) then doBroadcastMessage(('O player %s matou o %s e recebeu a outfit Supremo.'):format(getPlayerName(player), config.boss)) setPlayerStorageValue(player, config.storage, os.time() + config.time) end end return true end function onThink(cid) local time = getPlayerStorageValue(cid, config.storage) if time ~= -1 and time < os.time() then setPlayerStorageValue(cid, config.storage, -1) doPlayerPopupFYI(cid, 'Atenção, sua outfit Supremo expirou.') end return true end Agora só adicionar a tag (não esqueça de alterar o nome do arquivo no XML) do novo evento onThink e um register em login.lua : <event type="think" name="OutfitBossThink" event="script" value="scriptname.lua"/> login.lua : registerCreatureEvent(cid, 'OutfitBossThink') não funcionou por completo, ele parece nao reconhecer o monstro definido, ele até removeu uma outfit q já tinha, mas quando o monstro é morto nao acontece nada, tambem nao da erro. Nao sei se é necessário mas ja tenho no monstro: <script> <event name="OutfitBossThink"/> </script> Editado Março 31, 2019 6 anos por Sdrula (veja o histórico de edições)
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.