Ir para conteúdo
  • 0

AddEvent(AddItem)


koete

Pergunta

Queria sabe como faço para criar item no mapa com add event colocando tempo

exemplo: eu clico em um arbusto e daqui a 20 segundos ele da fruta

eu fiz assim olha mas ta dando erro

if(itemEx.itemid == 3488) then

doRemoveItem(itemEx.uid, 3488)

addEvent(additem,5000,cid,3465)

end

return TRUE

end

 

function AddItem(position, itemid)

doRemoveItem(getThingfromPos(position).uid, 1)

doCreateItem(itemid, 1, position)

end

 

 

e o error que dá é esse olha

luaAddEvent(). callback parameter should be a function.
Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

hum... mas olha eu vou aplicar isso em Actions. que quando eu uso um certo item em um arbusto ele demora 20 segundos e depois da aparece a fruta

não tem como colocar a position onde eu clicar com o item não?

Link para o comentário
Compartilhar em outros sites

  • 0

Usa o decayTo do items.xml, dai tu só da o transform pro item que vai decair, o uid do opentibia de items é apagado quando o script encerra, só dá para pegar ele pela posição, mas isso ta longe de ser bom, porque pode ter mais de um item na posição, ou pior, items iguais;

 

Tu faz items:

- item do arbusto com frutas, esse não tem decay e será o alvo da sua action.

- item do arbusto com as frutas colhidas, esse terá o decayTo para o item anterior, com duration 20

 

Assim é mais seguro e mais fácil, aconselho que faça dessa forma.

Link para o comentário
Compartilhar em outros sites

  • 0

mas o decay não funfa direito por isso n fiz eu até tinha feito por decay

mas quando o item é transformado ele não decay

item só decay se for corpse de algum monstro ou se for adicionado no mapa

 

(por exemplo, se tiver alguma lavanca que ao vc puxar aparece um corpo morto no chão o corpo nunca vai sumir só se algum monstro morrer ali)

(ou de qualquer outra forma que não seja morrendo algum monstro ou colocando no mapa não funfa) OBS: ao equipar algum item tambem funciona mas não é o meu caso.

 

eu até coloquei a addon de um monstro invisivel coloquei ele com a vida atual 0, e quando ele morrer o corpse dele é o id do item

da certo desse geito mas não consigo colocar para criar o monstro na posição que eu clicar o item

só em alguma posição determinada pelo script.

Link para o comentário
Compartilhar em outros sites

  • 0

mas o decay não funfa direito por isso n fiz eu até tinha feito por decay

mas quando o item é transformado ele não decay

item só decay se for corpse de algum monstro ou se for adicionado no mapa

 

(por exemplo, se tiver alguma lavanca que ao vc puxar aparece um corpo morto no chão o corpo nunca vai sumir só se algum monstro morrer ali)

(ou de qualquer outra forma que não seja morrendo algum monstro ou colocando no mapa não funfa) OBS: ao equipar algum item tambem funciona mas não é o meu caso.

 

eu até coloquei a addon de um monstro invisivel coloquei ele com a vida atual 0, e quando ele morrer o corpse dele é o id do item

da certo desse geito mas não consigo colocar para criar o monstro na posição que eu clicar o item

só em alguma posição determinada pelo script.

é só dar start no decay logo apos o transform

doDecayItem(uid)

Link para o comentário
Compartilhar em outros sites

  • 0

coloquei assim mas não funcionou da uma olhada

 

 

if(itemEx.itemid == 3488) then
   doTransformItem(itemEx.uid, 3648)
elseif(itemEx.itemid == 3648) then
doDecayItem(uid)
end
return TRUE
end

function TransformItem(position, itemid)
   doRemoveItem(getThingfromPos(position).uid, 1)
   doCreateItem(itemid, 1, position)
end

Link para o comentário
Compartilhar em outros sites

  • 0

coloquei assim mas não funcionou da uma olhada

 

 

if(itemEx.itemid == 3488) then
doTransformItem(itemEx.uid, 3648)
elseif(itemEx.itemid == 3648) then
doDecayItem(uid)
end
return TRUE
end

function TransformItem(position, itemid)
doRemoveItem(getThingfromPos(position).uid, 1)
doCreateItem(itemid, 1, position)
end

eu disse pra dar start no decay logo apos dar transform, foi isso que tu fez? analise ai

 

#edit

e uid não existe, voce tem que pegar oo itemEx.uid do item como pegou no transform

Editado por dalvorsn
Link para o comentário
Compartilhar em outros sites

  • 0

if(itemEx.itemid == 3488) then
doTransformItem(itemEx.uid, 3648)
doDecayItem(itemEx.uid)
end

 

 

pow deu certo mas o item ta transformando direto não espera o tempo que eu coloquei

 

<item id="3648" article="a" name="stone">
<attribute key="decayTo" value="2000"/>
<attribute key="duration" value="20"/>
</item>

Editado por koete
Link para o comentário
Compartilhar em outros sites

  • 0

Cara estou lendo o seu post,estou aprendendo ainda sobre script mas veja se isso te ajuda:

Em actions duplique um arquivo.lua e renomei com o nick que voce esta usando:

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

doTransformItem(item.uid, 3465)

doDecayItem(item.uid)

return true

end

 

Agora va nas tags das actions e adicione a seguinte linha:

 

<action itemid="3488" event="script" value="nick_que_voce_escolheu.lua"/>

 

Agora vai em itens e adicione o decay e o tempo no Id 3465 para ocorer o decay.

Espero ter ajudado

Manolo

Editado por manoellouro
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...