Bouaaaaaaaaaaa Kilua Rep+ Fera ![]()
Quando liberar eu te dou
achei que ainda tinha '-'
By Killua, 14 de mar. de 2014 in Tutoriais de Scripting
info
Group: Herói
Joined: 12/06/12
Posts: 1k
Reputation: +362
Gender: Masculino
Tibia Character: Aarow

Bouaaaaaaaaaaa Kilua Rep+ Fera ![]()
Quando liberar eu te dou
achei que ainda tinha '-'
Edited Março 14 by Junior Silva
info
Group: Conde
Joined: 18/01/12
Posts: 988
Reputation: +327
Gender: Masculino
Tibia Character: Xerife Woody

eu uso assim :
function duuh()
~~~
return
end
addEvent(duuh, 1000)
.. é que eu aprendi olhando alguns scripts..
vai ajudar vários !
Edited Março 14 by DuuhCarvalho
info
Group: Conde
Joined: 29/04/09
Posts: 904
Reputation: +389
Tibia Character: Jabuti Selvagem

Assim vc está chamando uma função já existente, como doBroadcastMessage por exemplo ![]()
O armazenamento de dados dessa maneira funciona do mesmo modo que meu segundo exemplo, apesar de ser usado como o primeiro. É um modo bem úti.
info
Group: Visconde
Joined: 05/02/14
Posts: 411
Reputation: +285
Gender: Masculino
Tibia Character: Zeh Sergipano

Boa ,eu tinha muito poblemas quando tava tentando aprender a usar addEvent, tiver que ver outros scripts mas ja peguei as manhas
info
Group: Cavaleiro
Joined: 28/08/16
Posts: 172
Reputation: +3
Gender: Masculino
Tibia Character: Raskgames

Ola Galera Estou Aki Presizando De Ajuda Pra Add Novo Effect No Meu Servidor So Aceita 255 Effect Presizo De ajuda Para Add Mais Pfv Se Min Ajuda Mando Rep+ ![]()
info
Group: Conde
Joined: 29/04/09
Posts: 904
Reputation: +389
Tibia Character: Jabuti Selvagem
Usando addEvent
O uso do addEvent tem inúmeras utilidades e pode ser complicado para algumas pessoas, inclusive era para mim quando eu estava começando a aprender LUA.
Para que serve o addEvent?
Para "chamar" uma função após um periodo de tempo, ou seja, executar uma função após um tempo estipulado.
O addEvent tem como parâmetros: callback, delay e ...
addEvent(callback, delay, ...)
Onde callback é a função que será chamada, delay é o tempo (em milissegundos) até que se chame essa função e ... são os parâmetros que a função chamada utiliza. Exemplo:
Aqui, após 1 segundo (1000 ms), a função doBroadcastMessage(message, type) será executada com os parâmetros message = "Bom dia" e type = 23.
O addEvent pode ser usado de duas maneiras:
Chamando uma função existente ou criando uma nova função.
Para chamar uma função existente, basta usar como acima, para usá-lo para criar uma nova função, usa-se assim, por exemplo:
addEvent(function() if isCreature(cid) then doPlayerAddItem(cid, 2160, 10) doPlayerSendTextMessage(cid, 25, "Voce ganhou 10k.") end end, 1000)Assim é basicamente a mesma coisa, mas pude colocar várias funções dentro de um único addEvent, e mantive o delay 1000 (1 segundo).
Obs: Precisei usar 2 ends, um para fechar function() e outro para fechar o if.
Atenção! Além disso, existe uma outra diferença entre as duas formas de uso, vou tentar explicar da melhor maneira possível:
Quando usamos o addEvent com uma função já existente (1o exemplo), as informações usadas serão as geradas no momento em que o evento foi chamado, por exemplo:
function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) > 10 then doPlayerSendTextMessage(cid, 25, "Uma pedra sera criada na sua posiçao dentro de 2 segundos.") addEvent(doCreateItem, 2000, 1308, 1, getThingPos(cid)) end return true endSe usarmos assim, a pedra irá ser criada na posição onde o jogador se encontrava no momento em que "deu use" e não onde ele etará 2 segundos depois. Se você quiser que a pedra seja criada na nova posição do jogador (pos de 2 segundos depois), você deve fazer uma nova checagem, criando uma função:
function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) > 10 then doPlayerSendTextMessage(cid, 25, "Uma pedra sera criada na sua posiçao dentro de 2 segundos.") addEvent(function() if isCreature(cid) then doCreateItem(1308, 1, getThingPos(cid)) end end, 2000) end return true endAtenção novamente: A checagem if isCreature(cid) que utilizei, é muito importante para um addEvent que envolva criaturas. Se você executasse o addEvent sem a checagem e o player logasse ou morresse antes desses 2 segundos se passarem, daria um erro na distro e interromperia o resto do script.
Espero ter sido claro, qualquer dúvida, podem postar.
Edited Março 14 by Killua