Gente..
oi
em primeiro lugar gostaria de avisar que essa action foi desenvolvida por mim, Guizo3, eu sozinho
e que não permito cópia para nenhum outro fórum, é uma exclusividade XTibia!
essa noite, 2 horas da manhã, acordei agonizado com um script na cabeça
script de um tapete voador,
levantei, peguei um caderno, uma caneta e montei esse script...
passei para o computador e tudo..
ele parecia estar perfeito.. mais teve um erro
"=" expected near "em" bug fixed <-- agora está 100%
mesmo assim resolvi postar meu trabalho mais significativo até hoje
o script é o seguinte:
--Tapete Voador By Guizo3! --guizo3@hotmail.com--Venha conhcer nosso server: hellempire.servegame.com , muitas actions novas!
--Esclusividade XTibia!
function onStepIn(cid, item, pos)
local speed = 250 --Velocidade em milesimos de segundo para o tapete andar um sqm
POSICAO_INICIAL_MEIO = {x=252, y=52, z=7} --posição inicial meio
POSICAO_INICIAL_BD = {x=252, y=52, z=7} --posição inicial Borda Direita
POSICAO_INICIAL_BE = {x=252, y=52, z=7} --posição inicial Borda Esquerda
POSICAO_INICIAL_BI = {x=252, y=52, z=7} --posição inicial Borda Inferior
POSICAO_INICIAL_BS = {x=252, y=52, z=7} --posição inicial Borda Superior
POSICAO_INICIAL_DCD = {x=252, y=52, z=7} --posição inicial Borda Diagonal Direita Superior
POSICAO_INICIAL_DCE = {x=252, y=52, z=7} --posição inicial Borda Diagonal Esquerda Superior
POSICAO_INICIAL_DBE = {x=252, y=52, z=7} --posição inicial Borda Diagonal Esquerda Inferior
POSICAO_INICIAL_DBD = {x=252, y=52, z=7} --posição inicial Borda Diagonal Direita Inferior
MEIO = 4398 --id Meio
BD = 4399 --id Borda Direita
BE = 4397 --id Borda Esquerda
BI = 4401 --id Borda Inferior
BS = 4395 --id Borda Superior
DCD = 4396 --id Borda Diagonal Direita Superior
DCE = 4394 --id Borda Diagonal Esquerda Superior
DBE = 4400 --id Borda Diagonal Esquerda Inferior
DBD = 4402 --id Borda Diagonal Direita Inferior
-------------------------------------------------------Não Edite Nada Se Não Souber Oque Está FAzendo!
item1 = getThingfromPos(pos1)
item2 = getThingfromPos(pos2)
item3 = getThingfromPos(pos3)
item4 = getThingfromPos(pos4)
item5 = getThingfromPos(pos5)
item6 = getThingfromPos(pos6)
item7 = getThingfromPos(pos7)
item8 = getThingfromPos(pos8)
item9 = getThingfromPos(pos9)
pos1 = {x=pos.x, y=pos.y, z=pos.z, stackpos=1} ---meio
pos2 = {x=pos.x-1, y=pos.y-1, z=pos.z, stackpos=1} ---Borda Diagonal Esquerda Superior
pos3 = {x=pos.x, y=pos.y-1, z=pos.z, stackpos=1} ---Borda Superior
pos4 = {x=pos.x+1, y=pos.y-1, z=pos.z, stackpos=1} ---Borda Diagonal Direita Superior
pos5 = {x=pos.x-1, y=pos.y, z=pos.z, stackpos=1} ---Borda Esquerda
pos6 = {x=pos.x+1, y=pos.y, z=pos.z, stackpos=1} ---Borda Direita
pos7 = {x=pos.x-1, y=pos.y+1, z=pos.z, stackpos=1} ---Borda Diagonal Esquerda Inferior
pos8 = {x=pos.x, y=pos.y+1, z=pos.z, stackpos=1} ---Borda Inferior
pos9 = {x=pos.x+1, y=pos.y+1, z=pos.z, stackpos=1} ---Borda Diagonal Direita Inferior
BAIXO_POS = {x=pos.x, y=pos.y+1, z=pos.z}
CIMA_POS = {x=pos.x, y=pos.y-1, z=pos.z}
DIREITA_POS = {x=pos.x+1, y=pos.y, z=pos.z}
ESQUERDA_POS = {x=pos.x-1, y=pos.y, z=pos.z}
if item.actionid == 2134 then
doRemoveItem(item1.uid,1)
doRemoveItem(item2.uid,1)
doRemoveItem(item3.uid,1)
doRemoveItem(item4.uid,1)
doRemoveItem(item5.uid,1)
doRemoveItem(item6.uid,1)
doRemoveItem(item7.uid,1)
doRemoveItem(item8.uid,1)
doRemoveItem(item9.uid,1)
doCreateItem(MEIO,1,DIREITA_POS)
doCreateItem(BD,1,DIREITA_POS)
doCreateItem(BE,1,DIREITA_POS)
doCreateItem(BI,1,DIREITA_POS)
doCreateItem(BS,1,DIREITA_POS)
doCreateItem(DCD,1,DIREITA_POS)
doCreateItem(DCE,1,DIREITA_POS)
doCreateItem(DBE,1,DIREITA_POS)
doCreateItem(DBD,1,DIREITA_POS)
doTeleportThing(cid,DIREITA_POS)
elseif item.actionid == 2135 then
doRemoveItem(item1.uid,1)
doRemoveItem(item2.uid,1)
doRemoveItem(item3.uid,1)
doRemoveItem(item4.uid,1)
doRemoveItem(item5.uid,1)
doRemoveItem(item6.uid,1)
doRemoveItem(item7.uid,1)
doRemoveItem(item8.uid,1)
doRemoveItem(item9.uid,1)
doCreateItem(MEIO,1,ESQUERDA_POS)
doCreateItem(BD,1,ESQUERDA_POS)
doCreateItem(BE,1,ESQUERDA_POS)
doCreateItem(BI,1,ESQUERDA_POS)
doCreateItem(BS,1,ESQUERDA_POS)
doCreateItem(DCD,1,ESQUERDA_POS)
doCreateItem(DCE,1,ESQUERDA_POS)
doCreateItem(DBE,1,ESQUERDA_POS)
doCreateItem(DBD,1,ESQUERDA_POS)
doTeleportThing(cid,ESQUERDA_POS)
elseif item.actionid == 2136 then
doRemoveItem(item1.uid,1)
doRemoveItem(item2.uid,1)
doRemoveItem(item3.uid,1)
doRemoveItem(item4.uid,1)
doRemoveItem(item5.uid,1)
doRemoveItem(item6.uid,1)
doRemoveItem(item7.uid,1)
doRemoveItem(item8.uid,1)
doRemoveItem(item9.uid,1)
doCreateItem(MEIO,1,CIMA_POS)
doCreateItem(BD,1,CIMA_POS)
doCreateItem(BE,1,CIMA_POS)
doCreateItem(BI,1,CIMA_POS)
doCreateItem(BS,1,CIMA_POS)
doCreateItem(DCD,1,CIMA_POS)
doCreateItem(DCE,1,CIMA_POS)
doCreateItem(DBE,1,CIMA_POS)
doCreateItem(DBD,1,CIMA_POS)
doTeleportThing(cid,CIMA_POS)
elseif item.actionid == 2137 then
doRemoveItem(item1.uid,1)
doRemoveItem(item2.uid,1)
doRemoveItem(item3.uid,1)
doRemoveItem(item4.uid,1)
doRemoveItem(item5.uid,1)
doRemoveItem(item6.uid,1)
doRemoveItem(item7.uid,1)
doRemoveItem(item8.uid,1)
doRemoveItem(item9.uid,1)
doCreateItem(MEIO,1,BAIXO_POS)
doCreateItem(BD,1,BAIXO_POS)
doCreateItem(BE,1,BAIXO_POS)
doCreateItem(BI,1,BAIXO_POS)
doCreateItem(BS,1,BAIXO_POS)
doCreateItem(DCD,1,BAIXO_POS)
doCreateItem(DCE,1,BAIXO_POS)
doCreateItem(DBE,1,BAIXO_POS)
doCreateItem(DBD,1,BAIXO_POS)
doTeleportThing(cid,BAIXO_POS)
elseif item.actionid == 2138 then
doRemoveItem(item1.uid,1)
doRemoveItem(item2.uid,1)
doRemoveItem(item3.uid,1)
doRemoveItem(item4.uid,1)
doRemoveItem(item5.uid,1)
doRemoveItem(item6.uid,1)
doRemoveItem(item7.uid,1)
doRemoveItem(item8.uid,1)
doRemoveItem(item9.uid,1)
doCreateItem(MEIO,1,POSICAO_INICIAL_MEIO)
doCreateItem(BD,1,POSICAO_INICIAL_BD)
doCreateItem(BE,1,POSICAO_INICIAL_BE)
doCreateItem(BI,1,POSICAO_INICIAL_BI)
doCreateItem(BS,1,POSICAO_INICIAL_BS)
doCreateItem(DCD,1,POSICAO_INICIAL_DCD)
doCreateItem(DCE,1,POSICAO_INICIAL_DCE)
doCreateItem(DBE,1,POSICAO_INICIAL_DBE)
doCreateItem(DBD,1,POSICAO_INICIAL_DBD)
end
end
só edite a parte antes do "não edite mais" (partes Coloridas), as explicações estão abaixo:
A Parte Em Vermelho São Configurações Do Tapete! Está Configurado Como Tapete Vermelho! Edite De Seu Gosto
A Parte Azul São As Coordenadas Iniciais Do Tapete! Modifique-a Conforme As Coordenadas Do SEU Tapete!
A Parte Verde É O Tempo Em Milisegundos Que O Tapete Vai Avançar 1 SQM, Lembrando Que Quanto Menor, Mais Rapido
Explicando:
você tem que fazer uma rota, com tiles invisiveis , acho que é ID 460
mosifique os action ID desse modo:
2134: direita
2135: esquerda
2136: cima
2137: baixo
2138: voltar o tapete para o lugar de partida sem o player
embaixo do meio do tapete tem que ter um tile com action id modificado e embaixo do meio de onde ele irá parar também.
o tapete deve ser 3x3 e o caminho deve ser apenas onde o meio irá passar.
acho que é só ^^
para quem for adicionar no server, em movemente.xml deve estar assim:
--Tapete Voador By Me Guizo3<movevent event="StepIn" actionid="2134" script="MeuTapete.lua"/>
<movevent event="StepIn" actionid="2135" script="MeuTapete.lua"/>
<movevent event="StepIn" actionid="2136" script="MeuTapete.lua"/>
<movevent event="StepIn" actionid="2137" script="MeuTapete.lua"/>
<movevent event="StepIn" actionid="2138" script="MeuTapete.lua"/>
se alguem achar o erro e concertar, me avisem plz.. me interessei muito por esse meu script
Guizo3!
Comentem PLX!
cYa~~
--------------------------------------------------------------------------------------------------------------->
EDITED
razão: concertar erros de ortografia e update do script!