GU

Tepete Voador By Guizo3

Por guizo3, 24 de mar. de 2008 em Actions e Talkactions

otserv
tibia
script
9
3k
guizo3G
24 de março de 2008 às 13:04

Gente..

oi :p

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!

Editado Março 24 por guizo3

GM VolcanoG
24 de março de 2008 às 13:37

Arruma sua ortografia aí...

Vou testar e responder-lhe se há erros...

 

Arrume no script aquela parte :

local speed = 250 Velocidade em milesimos de segundo para o tapete andar um sqm

 

Coloque hífens antes da explicação...Ficando correto :

local speed = 250 --Velocidade em milesimos de segundo para o tapete andar um sqm

Editado Março 24 por GM Volcano

guizo3G
24 de março de 2008 às 17:46

Valeu Ae Volcano :D

agora sim gente..

Script foi loaded!

além daquela linha..

meu script tinha 5 "ENDs" oO

era só 2

xD

nenhum erro no load!

mais eu to na Inglaterra (sou rox neh? xD) e aqui é muito puxado...

curso o dia inteiro.. mal fico em casa...

intervalo de períodos das aulas (aqui é integral =/) eu venho aqui na LAN, digito as scripts que eu escrevo no caderno

e posto aqui para vocês testarem para mim

sem tempo..

alguem pode me dizer se funciona plz?

agora sim tá 100%

esceto pelos ids do tapete!

vocês coloquem a cor que vocês quiserem

 

valeu Volcano!

JontexxxJ
26 de março de 2008 às 15:46

Bom cara, fiz tudo certo, IDs, posições do mapa e tudo mais, mas não acontece nada quando vou subir no tapete.

Ocorre esse erro:

Lua Script Error: [MoveEvents Interface]
data/movements/scripts/MeuTapete.lua:onStepIn

attempt to index a nil value

Estou usando Aries 4.0a.

 

 

Ajuda por favor, obrigado.

alisson123A
27 de março de 2008 às 23:13

Cara sinceramente poderia organizar o topico tudo bem organizar no tipo explicar melhor aqui deu esse mesmo erro todos os tapetes voadores do forum nao funfa o do andrew nao loada o do jovial nem ensina como fazer para funcionar e o seu tambem esta dando erro se poder aruma agradeço vlw pela intençao de fazer o script de novo e tira o erro do loader que estava...........

guizo3G
28 de março de 2008 às 20:49

Bom gente

eu tinha certeza que isso ia dar pau =/

arrumei uma tag meio estranha no site da LUA

resolvi testar

não deu certo =/

tentem deletar esse comando

 

"local speed = 250 --Velocidade em milesimos de segundo para o tapete andar um sqm"

 

parte que está em verde!

 

provavelmente seja esse o erro.. mesmo sem o local speed talvez ocorra um bug de o tapate não ter velocidade oO

você vai dum lado no outro num piscar de olhos...

vou arrumar uma tag de spawn delay ou alguma coisa assim...

aqui não testei ainda.. testo hj e dou respostas ^^"

Esperem pela minha nova script pessoal.. sistema nunk visto.. semelhante ao do tapete..

mais vai ser viagem por trem :p

mais só vou postar quando arrumar esse BUG!

 

t+

tentem apagar o comando e me deem respostas plx

JontexxxJ
29 de março de 2008 às 11:07
Cara sinceramente poderia organizar o topico tudo bem organizar no tipo explicar melhor aqui deu esse mesmo erro todos os tapetes voadores do forum nao funfa o do andrew nao loada o do jovial nem ensina como fazer para funcionar e o seu tambem esta dando erro se poder aruma agradeço vlw pela intençao de fazer o script de novo e tira o erro do loader que estava...........

 

Esse tutorial funcionou 100% pra mim -> http://www.xtibia.com/forum/index.php?showtopic=68754

 

Uso Aries 4.0a :smile_positivo:

pedr0P
29 de março de 2008 às 11:57

Antes De Vc Postar Tente Testar Meu Caro

Isso Vai Ajudar Muito.Teste Em Varias Versao Para organizar o topico!

 

 

@Topico Aki Funfo Vlw

alisson123A
30 de março de 2008 às 20:03
Esse tutorial funcionou 100% pra mim -> http://www.xtibia.com/forum/index.php?showtopic=68754

 

Uso Aries 4.0a :smile_positivo:

"=" expected near "em" erro :p eu ja fiz meu script que funcionou perfeitamente :p...