Bouaaaaaaaaaaa Kilua Rep+ Fera ![]()
Quando liberar eu te dou
achei que ainda tinha '-'
Por Killua, 14 de mar. de 2014 em Tutoriais de Scripting
info
Grupo: Herói
Registrado: 12/06/12
Posts: 1k
Reputação: +362
Gênero: Masculino
Char no Tibia: Aarow

Bouaaaaaaaaaaa Kilua Rep+ Fera ![]()
Quando liberar eu te dou
achei que ainda tinha '-'
Editado Março 14 por Junior Silva
info
Grupo: Conde
Registrado: 18/01/12
Posts: 988
Reputação: +327
Gênero: Masculino
Char no Tibia: Xerife Woody

eu uso assim :
function duuh()
~~~
return
end
addEvent(duuh, 1000)
.. é que eu aprendi olhando alguns scripts..
vai ajudar vários !
Editado Março 14 por DuuhCarvalho
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: 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
Grupo: Visconde
Registrado: 05/02/14
Posts: 411
Reputação: +285
Gênero: Masculino
Char no Tibia: 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
Grupo: Cavaleiro
Registrado: 28/08/16
Posts: 172
Reputação: +3
Gênero: Masculino
Char no Tibia: 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
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: 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.
Editado Março 14 por Killua