Roksas 846 Postado Abril 23, 2013 Share Postado Abril 23, 2013 Cooldown com Storage Saudações caros XTibianos, neste tópico ensinarei á vocês como criar um sisteminha de cooldown, seja ele oque for, movements, actions, talkactions. Começando Primeiramente, vocês devem ter uma leve noção sobre storages. Apartir disto, vamos á uns exemplos: function onUse(cid, item, frompos, item2, topos) doCreatureAddMana(cid, 100) return true end Nesse código, ao usarmos X item iremos healar 100 de mana. Mas o player pode ficar clicando 500x que não vai ter um intervalo, ele vai sempre ficar healando, isso prejudica o game. Mas como podemos fazer para ele poder usar de X em Xtempo? Com esta simples lógica: function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, 1234) < os.time () then doCreatureAddMana(cid, 100) setPlayerStorageValue(cid, 1234, os.time () + 10) else doPlayerSendCancel(cid, "Aguarde 10 segundos para utilizar novamente!") end return true end OU: function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, 1234) > os.time () then doPlayerSendCancel(cid, "Aguarde 10 segundos!") return true end doCreatureAddMana(cid, 100) setPlayerStorageValue(cid, 1234, os.time() + 10) Oque entendemos disso? É como se fosse uma quest, vai ganhar uma storage ao usar o item. Ok, mas e daí? setPlayerStorageValue(cid, 1234, os.time () + 10) Os valores das storages podem ser strings (letras e/ou palavras) e muitas outras coisas. Vocês devem estar acostumados com: setPlayerStorageValue(cid, 1234, 1) Também é certo, mas no exemplo que usei, você vai pegar o os.time() e dar a ele +10. Mas, oque é os.time? O os.time() é uma função da biblioteca "OS", que pega os segundos no exato momento em que declarou ele, ou seja: setPlayerStorageValue(cid, 1234, os.time () + 10) os.time() vai pegar os segundos de AGORA, e dar + 10. E então, os.time () + 10 vai ser como uma contagem regressiva, a cada segundo vai caindo 1, até chegar no 0, ou seja sobrar apenas o os.time() E aí o player vai poder usar novamente o item. Legal né? Vamos a mais uns exemplos: function onSay(cid, words, param) if getPlayerStorageValue(cid, 3210) > os.time() then doPlayerSendTextMessage(cid, 27, "Você ainda está com cooldown.") return true end doPlayerAddItem(cid, 2160, 1) setPlayerStorageValue(cid, 3210, os.time () + 10) end No começo do código verificamos se a storage 3210 do player que executou a talkaction é MAIOR (>) que o os.time(). Se for vai mandar uma mensagem avisando, se não for vai adicionar 1 crystal coin ao player. Depois que adicionar vamos atribuir á ele a storage: setPlayerStorageValue(cid, 3210, os.time () + 10) E aí começa a contagem dos 10 segundos, até o os.time() estiver peladinho Finalizações Só isso galerinha, espero que tenham entendido, caso eu tenha esquecido de algo só avisar, demais dúvidas estou aqui para atendê-los, beijo grande! Link para o comentário https://xtibia.com/forum/topic/212911-tutorial-cooldown-com-storage/ Compartilhar em outros sites More sharing options...
LuckOake 400 Postado Abril 23, 2013 Share Postado Abril 23, 2013 (editado) Rapaz, não acha mais fácil usar exhaustion.set(cid, storage, time), exhaustion.check(cid, storage) e exhaustion.get(cid, storage)? OBS: O tutorial não passou pela aprovação ainda. Editado Abril 23, 2013 por LuckOake Link para o comentário https://xtibia.com/forum/topic/212911-tutorial-cooldown-com-storage/#findComment-1509586 Compartilhar em outros sites More sharing options...
Roksas 846 Postado Abril 23, 2013 Autor Share Postado Abril 23, 2013 Acho, mas, infelizmente nunca funciona comigo, rsrs. Link para o comentário https://xtibia.com/forum/topic/212911-tutorial-cooldown-com-storage/#findComment-1509589 Compartilhar em outros sites More sharing options...
FenixBorges 13 Postado Abril 24, 2013 Share Postado Abril 24, 2013 (editado) Roksas, sempre trazendo ótimos conteúdos e ajudando a galéra! Intão né cara, eu acho que você deveria explicar no tutorial, como e onde adicionar esse "Cooldown" em algum Iten, pois muitos iniciantes/e ou usuários nóvos não intende disso. Bom, eu pelomenos que só me dou bem com Mapping, até que tenho uma noçãozinha de Storages, por mexer com Ot servers por um "longo" tempo. Por mim aprovado, mas ségue oque eu te falei que vai deixar o tutorial muito mais claro. (para quem ta começando) Flw. Editado Abril 24, 2013 por FenixBorges Link para o comentário https://xtibia.com/forum/topic/212911-tutorial-cooldown-com-storage/#findComment-1509858 Compartilhar em outros sites More sharing options...
Roksas 846 Postado Abril 24, 2013 Autor Share Postado Abril 24, 2013 Eu dei esse exemplo usando a função onUse, leia novamente o tópico. Creio que para entender melhor isso deve ter uma certa noção com storages. Link para o comentário https://xtibia.com/forum/topic/212911-tutorial-cooldown-com-storage/#findComment-1510014 Compartilhar em outros sites More sharing options...
Gears 109 Postado Abril 24, 2013 Share Postado Abril 24, 2013 Serio, eu acho que com exhaustion.set ficaria menorzin, talvez não funcione com você porque você um algum tipo de servidor que não tenha isso. function onUse(cid, item, frompos, item2, topos) if exhaustion.check(cid, 1234) then doPlayerSendCancel(cid, "Aguarde 10 segundos!") return true end doCreatureAddMana(cid, 100) exhaustion.set(cid, 1234, 100) end end Link para o comentário https://xtibia.com/forum/topic/212911-tutorial-cooldown-com-storage/#findComment-1510020 Compartilhar em outros sites More sharing options...
Roksas 846 Postado Abril 24, 2013 Autor Share Postado Abril 24, 2013 No caso ficaria do mesmo tamanho, são 2 linhas, uma a verificar a outra a setar. Obrigado galerinha. Link para o comentário https://xtibia.com/forum/topic/212911-tutorial-cooldown-com-storage/#findComment-1510023 Compartilhar em outros sites More sharing options...
Gears 109 Postado Abril 24, 2013 Share Postado Abril 24, 2013 No caso ficaria do mesmo tamanho, são 2 linhas, uma a verificar a outra a setar. Obrigado galerinha. Menor de se ler. Link para o comentário https://xtibia.com/forum/topic/212911-tutorial-cooldown-com-storage/#findComment-1510026 Compartilhar em outros sites More sharing options...
Slicer 1070 Postado Abril 24, 2013 Share Postado Abril 24, 2013 provavel q o roks teste o exhaustion com GOD kkk -querem apostar?- Link para o comentário https://xtibia.com/forum/topic/212911-tutorial-cooldown-com-storage/#findComment-1510033 Compartilhar em outros sites More sharing options...
Roksas 846 Postado Abril 24, 2013 Autor Share Postado Abril 24, 2013 Ainda não cheguei a este ponto. Link para o comentário https://xtibia.com/forum/topic/212911-tutorial-cooldown-com-storage/#findComment-1510037 Compartilhar em outros sites More sharing options...
kttallan 319 Postado Abril 24, 2013 Share Postado Abril 24, 2013 Gostei Do Tutorial Por Mim Aprovado ;D Link para o comentário https://xtibia.com/forum/topic/212911-tutorial-cooldown-com-storage/#findComment-1510167 Compartilhar em outros sites More sharing options...
Posts Recomendados