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.
info
Grupo: Marquês
Registrado: 22/07/12
Posts: 1.1k
Reputação: +400
Gênero: Masculino
Char no Tibia: Luck Oake

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 por LuckOake
info
Grupo: Herói
Registrado: 14/12/10
Posts: 3.6k
Reputação: +846
Gênero: Masculino

Acho, mas, infelizmente nunca funciona comigo, rsrs.
info
Grupo: Visconde
Registrado: 30/11/12
Posts: 252
Reputação: +13

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 por FenixBorges
info
Grupo: Herói
Registrado: 14/12/10
Posts: 3.6k
Reputação: +846
Gênero: Masculino

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.
info
Grupo: Banidos
Registrado: 11/01/13
Posts: 576
Reputação: +109
Char no Tibia: Darashia del Shee

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
info
Grupo: Herói
Registrado: 14/12/10
Posts: 3.6k
Reputação: +846
Gênero: Masculino

No caso ficaria do mesmo tamanho, são 2 linhas, uma a verificar a outra a setar.
Obrigado galerinha.
info
Grupo: Banidos
Registrado: 11/01/13
Posts: 576
Reputação: +109
Char no Tibia: Darashia del Shee

No caso ficaria do mesmo tamanho, são 2 linhas, uma a verificar a outra a setar.
Obrigado galerinha.
Menor de se ler.
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

provavel q o roks teste o exhaustion com GOD kkk -querem apostar?-
info
Grupo: Herói
Registrado: 14/12/10
Posts: 3.6k
Reputação: +846
Gênero: Masculino

Ainda não cheguei a este ponto.
info
Grupo: Herói
Registrado: 14/12/10
Posts: 3.6k
Reputação: +846
Gênero: Masculino
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:
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:
OU:
Oque entendemos disso? É como se fosse uma quest, vai ganhar uma storage ao usar o item.
Ok, mas e daí?
Os valores das storages podem ser strings (letras e/ou palavras) e muitas outras coisas.
Vocês devem estar acostumados com:
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:
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:
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:
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!