Exclusivo para XTibia
favor não postar em outro forum
Vai aqui uma forma diferente de remover um obstáculo.
Neste exemplo , 4 paredes serão removidas com intervalo de 2 segundos entre elas.
(dá um efeito visual lindo)
Vamos brincar com uma alavanca e colocar nela o UID 9999 :
data\actions\actions.xml
-- Paredes somem com intervalo (By Conde Sapo) function onUse(cid, item, pos) pausa = 2000 -- 2 segundos -- posição das paredes - nao mexer na stackpos. wall0pos = {x=48, y=38, z=7, stackpos=1} wall1pos = {x=50, y=38, z=7, stackpos=1} wall2pos = {x=52, y=38, z=7, stackpos=1} wall3pos = {x=54, y=38, z=7, stackpos=1} if item.itemid == 1945 then doTransformItem(item.uid,1946) wall0 = getThingfromPos(wall0pos) if wall0.itemid ~= 0 then doRemoveItem(wall0.uid,1) addEvent(wait1,pausa,wall1pos) end else doTransformItem(item.uid,1945) end return 1 end function wait1(wall1pos) coisa = getThingfromPos(wall1pos) doRemoveItem(coisa.uid,1) addEvent(wait2,pausa,wall2pos) end function wait2(wall2pos) coisa = getThingfromPos(wall2pos) doRemoveItem(coisa.uid,1) addEvent(wait3,pausa,wall3pos) end function wait3(wall3pos) coisa = getThingfromPos(wall3pos) doRemoveItem(coisa.uid,1) -- se quizer mais paredes , é só continuar ponto addEvent end
Como funciona ?
1° - pausa = 2000 (2 segs)
Quando a gente chama um evento , esse parametro informa qual o tempo de espera até o evento começar a ser executado.
(no nosso caso 2 segs)
Após esses 2 segs , o evento começa.
2° - addEvent(wait1,pausa,wall1pos)
Esta é a forma de chamar um evento
WAIT1 é o nome do evento
PAUSA é a pausa explicada acima
WALL1POS é a variavel que vai ser levada pro evento.
o evento WAIT1 é chamado (com espera de 2 segs) e leva o parametro WALL1POS (com as coordenadas da parede)
2° - function wait1(wall1pos)
Este é o evento.
coisa = getThingfromPos(wall1pos)
Aqui pegamos a "coisa" que tá na WALL1POS (no nosso caso uma parede)
eu disse "coisa" porque "getThingfromPos" significa exatamente "pega coisa da pos"
doRemoveItem remove essa parede
e a linha seguinte chama o próximo evento com a mesma pausa de 2 segs.
3° - assim vai indo (envento chamando evento) até o último
que só remove a parede e não chama mais nenhum evento
Tentei explicar da melhor maneira possivel.
A outras instruções deste tutorial são comuns e não vou explicar.
(doTransformItem por exemplo)
:XTibia_smile: