Ir para conteúdo
  • 0

Addevent


SoulProst

Pergunta

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.

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

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 ^^

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

é 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

Link para o comentário
Compartilhar em outros sites

  • 0

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?

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...