Addevent

SoulProst
em Scripts

SoulProst

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 26/10/07Posts: 25Char no Tibia: Hayden Almeida

Olá pessoal, estava com grande dúvida em relação ao uso da função addEvent.

Pesquisei bastante sobre, e em alguns lugares, li que do terceiro parâmetro em diante , seria os parâmetros da função colocada no 1º parâmetro do addEvent.

 

Exemplo:

addEvent(doPlayerSendCancel, 3 * 1000, cid, "oi")

 

Bem, como está no exemplo, a função

doPlayerSendCancel

Requer 2 parâmetros, que são "cid" e a "mensagem"

 

Resumindo, eu fiz um script para testar isso ,e não funcionou. Pelo que entendi, fazendo deste jeito, não tem nenhum mistério, então não sei porque não funcionou.

 

Então a pergunta é: o addEvent pode ser usado desse jeito que citei acima? Caso sim , irei postar o script que fiz e vcs me digam oq está de errado. Obrigado a todos.

Hayden Almeida



Scripter

Meu Email

 

Vídeo Card: Radeon HD 6850

HD: 1 TERA SATA 2 + 80 GB DATA

Processador: Phenom X6 1100T 3.3Ghz

Memória: Kingston 8 GB DDR3 1333 Mhz

Monitor: Samsung SA300 Slim '21,5 LED

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

sim eh bem assim q se usa... ;x

soh tem q tomar cuidado com os addEvents, pq se o player deslogar ou morrer nesse meio tempo vai da erro no console ^^

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

SoulProst

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 26/10/07Posts: 25Char no Tibia: Hayden Almeida

me diga oque está errado aqui:

 

local arvores = {2706, 2701}
function onUse(cid, item, fromPosition, itemEx, toPosition)
addEvent(doTransformItem, 3 * 1000, itemEx.uid, math.random(1, #arvores))

 

E o erro que dá no distro:

<LuadoTransformItem> Item not Found

Hayden Almeida



Scripter

Meu Email

 

Vídeo Card: Radeon HD 6850

HD: 1 TERA SATA 2 + 80 GB DATA

Processador: Phenom X6 1100T 3.3Ghz

Memória: Kingston 8 GB DDR3 1333 Mhz

Monitor: Samsung SA300 Slim '21,5 LED

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

q item tas usando nesse script? eh um item 'usable'? q quando tu clica nele o ponteiro do mouse muda e tu pode clicar em outro lugar? pq esse itemEx eh o item q tu clicou com esse 'ponteiro diferente'... qlqr coisa.. se tu tiver soh clicando na arvores e querendo q ela mude, troca o itemEx.lua para item.uid

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

SoulProst

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 26/10/07Posts: 25Char no Tibia: Hayden Almeida

Este item q estou usando é sim Usable

 

-------- edit ---------

fiz o teste de mudar o ItemEx.uid para item.uid e mesmo assim continua dando o mesmo erro.

Hayden Almeida



Scripter

Meu Email

 

Vídeo Card: Radeon HD 6850

HD: 1 TERA SATA 2 + 80 GB DATA

Processador: Phenom X6 1100T 3.3Ghz

Memória: Kingston 8 GB DDR3 1333 Mhz

Monitor: Samsung SA300 Slim '21,5 LED

brun123

vash
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 24/09/06Posts: 512

é porque o unique ID de itens não são estáticos, eles variam...

imagine se o servidor fosse atribuir um valor diferente pra cada chão, grama, árvore, motanha, itens dos players, itens nas houses, itens nos depot dos players, corpses dos monstros que morrem, loot desses monstros, itens que são agrupáveis podem ser divididos em 100 itens diferentes...

resumindo, é muito item pra atribuir estaticamente um id, então eles são atribuídos dinamicamente, o servidor gera um uid pro item no memento requisitado e esse uid só dura um instante, e depois esse id é destruído da memória.

é possível fazer UID estáticos, mas não é viável, já que itens contáveis podem ser separados e itens estão sumindo o tempo todo... então não rola

 

Outro erro associável ao seu script, é que o itemEx.uid pode ser um monstro, player etc... então ia dar erro se usasse a função de transformar item sendo que o alvo seria uma criatura

 

eu tinha feito um post parecido com esse antes, se quiser entender mais sobre o assunto:

 

http://www.xtibia.com/forum/topic/193795-duvida-sobre-depot/page__view__findpost__p__1336914

 

seu script vai funcionar dessa forma:

 

function onUse(cid, item, frompos, item2, topos)

   local arvores = {2706, 2701}

   if isCreature(item2.uid) or (item2.itemid or 0) <= 1 then
   return doPlayerSendCancel(cid, "Use somente em itens.")
   end

   local function doTransformToTree(itemId, itemPos, trees)
    local i = getTileItemById(itemPos, itemId).uid
    if i > 0 then
	    doTransformItem(i, trees[math.random(#trees)])
    end
   end

   addEvent(doTransformToTree, 3 * 1000, item2.itemid, topos, arvores)

return true
end

5303fg1.png

SoulProst

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 26/10/07Posts: 25Char no Tibia: Hayden Almeida

E se eu usasse o os.date?

Eu dei uma breve lida sobre esta função , nunca usei, mas pelo oq entendi, ela trabalha com tudo relacionado a hora e tal.

 

E se então usasse ela como por exemplo:

Pegar o valor atual, +5 minutos, iria nascer a arvore novamente?

Seria mais difícil fazer do que o addEvent?

Hayden Almeida



Scripter

Meu Email

 

Vídeo Card: Radeon HD 6850

HD: 1 TERA SATA 2 + 80 GB DATA

Processador: Phenom X6 1100T 3.3Ghz

Memória: Kingston 8 GB DDR3 1333 Mhz

Monitor: Samsung SA300 Slim '21,5 LED