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 ^^
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gê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 ^^
info
Grupo: Campones
Registrado: 26/10/07
Posts: 25
Reputação: +1
Char 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
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gê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
info
Grupo: Campones
Registrado: 26/10/07
Posts: 25
Reputação: +1
Char 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.
Editado Novembro 1 por thales93
é 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
info
Grupo: Campones
Registrado: 26/10/07
Posts: 25
Reputação: +1
Char 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?
info
Grupo: Campones
Registrado: 26/10/07
Posts: 25
Reputação: +1
Char 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:
Bem, como está no exemplo, a função
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.