Ir para conteúdo
Entre para seguir isso  
Tairone

[N:Av.] Tapete Voador By Andrew

Recommended Posts

Tairone    0
Tairone

Achei em outro forum e achei interessante trazer-lo para os membros do OTnet.

 

Requerimentos:

Um pouco de conhecimento sobre actions, movements e mapping

Paciencia para ler e fazer tudo certo e com calma

 

Mãos a massa:

 

Primeiramente, no seu map editor, faça um tapete verde (id=5582) deste jeito:

 

tapete1oj3.th.png

 

"Mas Andrew, o tapete voa pelo 'nada'?"

Não, claro que não, use o tile de espaço vazio (id=460) para cobrir a rota:

 

tapete2yv7.th.png

 

"E como ele funciona?"

Simples. Nos espaços vazios onde o tapete vai pasar, você terá que alterar o Action ID dos tiles. Use esta fórmula:

 

l10370be280041c3ff4d79djr9.th.jpg

 

Para o tapete e faz ele voltar para o lugar de origem - 9001

Esquerda - 9004

Direita - 9003

Para Cima - 9002

Para Baixo (nao altere o actionid neste caso) - 0

 

Agora, sabendo disto, podemos fazer uma rota, de exemplo, assim:

 

 

 

I 900390039003

9001 0

9002 0

9002 0

9004 9004 9004

 

 

 

 

Entenderam?

 

 

 

"Sim"

 

 

Aqui vai o código então, para nao precisar de alavancas, fiz em movement, então, abram data/movements/script, dupliquem um arquivo la dentro e substitua seu interior por isto:

 

 

 

 

 

----- Tapete Voador by Warcraft ATs -----

function addCarpet(params)

local startpos = params.startpos

local spawnDelay = params.spawnDelay

 

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

 

local pos = params.pos

local cid = params.cid

 

--NÃO EDITE ABSOLUTAMENTE NADA SE NÃO SOUBER O QUE ESTÁ FAZENDO.

 

local groundpos = {x=pos.x, y=pos.y, z=pos.z, stackpos=0}

local ground = getThingfromPos(groundpos)

 

pos1 = {x=pos.x, y=pos.y, z=pos.z, stackpos=1}

pos2 = {x=pos.x-1, y=pos.y-1, z=pos.z, stackpos=1}

pos3 = {x=pos.x, y=pos.y-1, z=pos.z, stackpos=1}

pos4 = {x=pos.x+1, y=pos.y-1, z=pos.z, stackpos=1}

pos5 = {x=pos.x-1, y=pos.y, z=pos.z, stackpos=1}

pos6 = {x=pos.x+1, y=pos.y, z=pos.z, stackpos=1}

pos7 = {x=pos.x-1, y=pos.y+1, z=pos.z, stackpos=1}

pos8 = {x=pos.x, y=pos.y+1, z=pos.z, stackpos=1}

pos9 = {x=pos.x+1, y=pos.y+1, z=pos.z, stackpos=1}

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)

 

newpos = {x=pos.x, y=pos.y+1, z=pos.z}

new2pos = {x=pos.x, y=pos.y-1, z=pos.z}

new3pos = {x=pos.x+1, y=pos.y, z=pos.z}

new4pos = {x=pos.x-1, y=pos.y, z=pos.z}

if ground.actionid == 9001 then

spawnparams = {startpos = startpos, pos = pos}

addEvent(spawnCarpet,spawnDelay*1000,spawnparams)

setPlayerStorageValue(cid,9500,-1)

elseif ground.actionid == 9004 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)

new4pos1 = {x=new4pos.x, y=new4pos.y, z=new4pos.z}

new4pos2 = {x=new4pos.x-1, y=new4pos.y-1, z=new4pos.z}

new4pos3 = {x=new4pos.x, y=new4pos.y-1, z=new4pos.z}

new4pos4 = {x=new4pos.x+1, y=new4pos.y-1, z=new4pos.z}

new4pos5 = {x=new4pos.x-1, y=new4pos.y, z=new4pos.z}

new4pos6 = {x=new4pos.x+1, y=new4pos.y, z=new4pos.z}

new4pos7 = {x=new4pos.x-1, y=new4pos.y+1, z=new4pos.z}

new4pos8 = {x=new4pos.x, y=new4pos.y+1, z=new4pos.z}

new4pos9 = {x=new4pos.x+1, y=new4pos.y+1, z=new4pos.z}

doCreateItem(5582,1,new4pos1)

doCreateItem(5578,1,new4pos2)

doCreateItem(5579,1,new4pos3)

doCreateItem(5580,1,new4pos4)

doCreateItem(5581,1,new4pos5)

doCreateItem(5583,1,new4pos6)

doCreateItem(5584,1,new4pos7)

doCreateItem(5585,1,new4pos8)

doCreateItem(5586,1,new4pos9)

 

doTeleportThing(cid, new4pos)

 

newparams = {pos = new4pos, cid = cid, startpos = startpos, spawnDelay = 10}

addEvent(addCarpet,speed,newparams)

elseif ground.actionid == 9003 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)

new3pos1 = {x=new3pos.x, y=new3pos.y, z=new3pos.z}

new3pos2 = {x=new3pos.x-1, y=new3pos.y-1, z=new3pos.z}

new3pos3 = {x=new3pos.x, y=new3pos.y-1, z=new3pos.z}

new3pos4 = {x=new3pos.x+1, y=new3pos.y-1, z=new3pos.z}

new3pos5 = {x=new3pos.x-1, y=new3pos.y, z=new3pos.z}

new3pos6 = {x=new3pos.x+1, y=new3pos.y, z=new3pos.z}

new3pos7 = {x=new3pos.x-1, y=new3pos.y+1, z=new3pos.z}

new3pos8 = {x=new3pos.x, y=new3pos.y+1, z=new3pos.z}

new3pos9 = {x=new3pos.x+1, y=new3pos.y+1, z=new3pos.z}

doCreateItem(5582,1,new3pos1)

doCreateItem(5578,1,new3pos2)

doCreateItem(5579,1,new3pos3)

doCreateItem(5580,1,new3pos4)

doCreateItem(5581,1,new3pos5)

doCreateItem(5583,1,new3pos6)

doCreateItem(5584,1,new3pos7)

doCreateItem(5585,1,new3pos8)

doCreateItem(5586,1,new3pos9)

 

doTeleportThing(cid, new3pos)

 

newparams = {pos = new3pos, cid = cid, startpos = startpos, spawnDelay = 10}

addEvent(addCarpet,speed,newparams)

elseif ground.actionid == 9002 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)

new2pos1 = {x=new2pos.x, y=new2pos.y, z=new2pos.z}

new2pos2 = {x=new2pos.x-1, y=new2pos.y-1, z=new2pos.z}

new2pos3 = {x=new2pos.x, y=new2pos.y-1, z=new2pos.z}

new2pos4 = {x=new2pos.x+1, y=new2pos.y-1, z=new2pos.z}

new2pos5 = {x=new2pos.x-1, y=new2pos.y, z=new2pos.z}

new2pos6 = {x=new2pos.x+1, y=new2pos.y, z=new2pos.z}

new2pos7 = {x=new2pos.x-1, y=new2pos.y+1, z=new2pos.z}

new2pos8 = {x=new2pos.x, y=new2pos.y+1, z=new2pos.z}

new2pos9 = {x=new2pos.x+1, y=new2pos.y+1, z=new2pos.z}

doCreateItem(5582,1,new2pos1)

doCreateItem(5578,1,new2pos2)

doCreateItem(5579,1,new2pos3)

doCreateItem(5580,1,new2pos4)

doCreateItem(5581,1,new2pos5)

doCreateItem(5583,1,new2pos6)

doCreateItem(5584,1,new2pos7)

doCreateItem(5585,1,new2pos8)

doCreateItem(5586,1,new2pos9)

 

doTeleportThing(cid, new2pos)

 

newparams = {pos = new2pos, cid = cid, startpos = startpos, spawnDelay = 10}

addEvent(addCarpet,speed,newparams)

else

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)

newpos1 = {x=newpos.x, y=newpos.y, z=newpos.z}

newpos2 = {x=newpos.x-1, y=newpos.y-1, z=newpos.z}

newpos3 = {x=newpos.x, y=newpos.y-1, z=newpos.z}

newpos4 = {x=newpos.x+1, y=newpos.y-1, z=newpos.z}

newpos5 = {x=newpos.x-1, y=newpos.y, z=newpos.z}

newpos6 = {x=newpos.x+1, y=newpos.y, z=newpos.z}

newpos7 = {x=newpos.x-1, y=newpos.y+1, z=newpos.z}

newpos8 = {x=newpos.x, y=newpos.y+1, z=newpos.z}

newpos9 = {x=newpos.x+1, y=newpos.y+1, z=newpos.z}

doCreateItem(5582,1,newpos1)

doCreateItem(5578,1,newpos2)

doCreateItem(5579,1,newpos3)

doCreateItem(5580,1,newpos4)

doCreateItem(5581,1,newpos5)

doCreateItem(5583,1,newpos6)

doCreateItem(5584,1,newpos7)

doCreateItem(5585,1,newpos8)

doCreateItem(5586,1,newpos9)

 

doTeleportThing(cid, newpos)

 

newparams = {pos = newpos, cid = cid, startpos = startpos, spawnDelay = 10}

addEvent(addCarpet,speed,newparams)

end

end

function spawnCarpet(params)

local startpos = params.startpos

local pos = params.pos

pos1 = {x=startpos.x, y=startpos.y, z=startpos.z}

pos2 = {x=startpos.x-1, y=startpos.y-1, z=startpos.z}

pos3 = {x=startpos.x, y=startpos.y-1, z=startpos.z}

pos4 = {x=startpos.x+1, y=startpos.y-1, z=startpos.z}

pos5 = {x=startpos.x-1, y=startpos.y, z=startpos.z}

pos6 = {x=startpos.x+1, y=startpos.y, z=startpos.z}

pos7 = {x=startpos.x-1, y=startpos.y+1, z=startpos.z}

pos8 = {x=startpos.x, y=startpos.y+1, z=startpos.z}

pos9 = {x=startpos.x+1, y=startpos.y+1, z=startpos.z}

doCreateItem(5582,1,pos1)

doCreateItem(5578,1,pos2)

doCreateItem(5579,1,pos3)

doCreateItem(5580,1,pos4)

doCreateItem(5581,1,pos5)

doCreateItem(5583,1,pos6)

doCreateItem(5584,1,pos7)

doCreateItem(5585,1,pos8)

doCreateItem(5586,1,pos9)

 

pos1 = {x=pos.x, y=pos.y, z=pos.z, stackpos=1}

pos2 = {x=pos.x-1, y=pos.y-1, z=pos.z, stackpos=1}

pos3 = {x=pos.x, y=pos.y-1, z=pos.z, stackpos=1}

pos4 = {x=pos.x+1, y=pos.y-1, z=pos.z, stackpos=1}

pos5 = {x=pos.x-1, y=pos.y, z=pos.z, stackpos=1}

pos6 = {x=pos.x+1, y=pos.y, z=pos.z, stackpos=1}

pos7 = {x=pos.x-1, y=pos.y+1, z=pos.z, stackpos=1}

pos8 = {x=pos.x, y=pos.y+1, z=pos.z, stackpos=1}

pos9 = {x=pos.x+1, y=pos.y+1, z=pos.z, stackpos=1}

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)

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)

 

ppos1 = {x=startpos.x, y=startpos.y, z=startpos.z, stackpos=253}

ppos2 = {x=startpos.x-1, y=startpos.y-1, z=startpos.z, stackpos=253}

ppos3 = {x=startpos.x, y=startpos.y, z=startpos.z, stackpos=253}

ppos4 = {x=startpos.x+1, y=startpos.y-1, z=startpos.z, stackpos=253}

ppos5 = {x=startpos.x-1, y=startpos.y, z=startpos.z, stackpos=253}

ppos6 = {x=startpos.x+1, y=startpos.y, z=startpos.z, stackpos=253}

ppos7 = {x=startpos.x-1, y=startpos.y+1, z=startpos.z, stackpos=253}

ppos8 = {x=startpos.x, y=startpos.y+1, z=startpos.z, stackpos=253}

ppos9 = {x=startpos.x+1, y=startpos.y+1, z=startpos.z, stackpos=253}

player1 = getThingfromPos(ppos1)

player2 = getThingfromPos(ppos2)

player3 = getThingfromPos(ppos3)

player4 = getThingfromPos(ppos4)

player5 = getThingfromPos(ppos5)

player6 = getThingfromPos(ppos6)

player7 = getThingfromPos(ppos7)

player8 = getThingfromPos(ppos8)

player9 = getThingfromPos(ppos9)

 

nppos1 = {x=startpos.x+1, y=startpos.y, z=startpos.z}

nppos2 = {x=startpos.x, y=startpos.y-1, z=startpos.z}

nppos3 = {x=startpos.x+1, y=startpos.y-1, z=startpos.z}

nppos4 = {x=startpos.x+2, y=startpos.y-1, z=startpos.z}

nppos5 = {x=startpos.x, y=startpos.y, z=startpos.z}

nppos6 = {x=startpos.x+2, y=startpos.y, z=startpos.z}

nppos7 = {x=startpos.x, y=startpos.y+1, z=startpos.z}

nppos8 = {x=startpos.x+1, y=startpos.y+1, z=startpos.z}

nppos9 = {x=startpos.x+2, y=startpos.y+1, z=startpos.z}

 

if player1.itemid > 0 then

doTeleportThing(player1.uid, nppos1)

end

if player2.itemid > 0 then

doTeleportThing(player2.uid, nppos2)

end

if player3.itemid > 0 then

doTeleportThing(player3.uid, nppos3)

end

if player4.itemid > 0 then

doTeleportThing(player4.uid, nppos4)

end

if player5.itemid > 0 then

doTeleportThing(player5.uid, nppos5)

end

if player6.itemid > 0 then

doTeleportThing(player6.uid, nppos6)

end

if player7.itemid > 0 then

doTeleportThing(player7.uid, nppos7)

end

if player8.itemid > 0 then

doTeleportThing(player8.uid, nppos8)

end

if player9.itemid > 0 then

doTeleportThing(player9.uid, nppos9)

end

end

 

function onStepIn(cid, item, pos)

if isPlayer(cid) == 1 then

isMoving = getPlayerStorageValue(cid,9500)

if item.itemid == 5582 and isMoving == -1 then

params = {cid = cid, pos = pos, startpos = pos, spawnDelay = 10}

addEvent(addCarpet, 100, params)

setPlayerStorageValue(cid,9500,1)

end

end

end

 

 

 

Então adicione isto em data/movements/movements.xml

 

 

 

<movevent event="StepIn" itemid="5582" script="tapete.lua"/>

 

 

Créditos Andrew and Friends.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Johnnie    2
Johnnie

Obrigado pela contribuição.

Movido para Tutoriais sobre Scripting.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Tairone    0
Tairone

Nadaz Johnnie

 

uma honra contribuir com a OTnet :~

Compartilhar este post


Link para o post
Compartilhar em outros sites
[ B a l i l l o ]    0
[ B a l i l l o ]

Cara ta tudo bugado issu ae, tenta ver melhor, ja tentei de tudo q eh jeito, ele da debug, ele vai avançando mas n eh deletado os tiles q ele dexa pra tras, ta uma bagunça, ajeita ae.

Compartilhar este post


Link para o post
Compartilhar em outros sites
evolutions    0
evolutions

cara essi tapete e o dog sled modificado esta igualzinho e nem ta funfanfo =/

Compartilhar este post


Link para o post
Compartilhar em outros sites
plomentes    0
plomentes

ae gostei muito vou testar aqui...

Compartilhar este post


Link para o post
Compartilhar em outros sites
Delvire    0
Delvire

Wow, tutorial longo, muito legal, alguns membros da OtFans cmo o Taratulen estava vendendo esse script, + agora ele já ta liberado pra todo mundo :) q bom

Compartilhar este post


Link para o post
Compartilhar em outros sites
TigerBlade    0
TigerBlade

Ja tinha visto Um video Muito Rox

 

Vlw aew ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites
pcnaddeo    0
pcnaddeo

kra soh n entendi como escolhe a rota?

#edit:

aff kra aki o tapete nem andar n ando :/

Compartilhar este post


Link para o post
Compartilhar em outros sites
tibianoforever    0
tibianoforever
cara essi tapete e o dog sled modificado esta igualzinho e nem ta funfanfo =/

 

Com Ctz;

 

Do Jeito Criar teleportar E Remover Ja Esta Muito Ultrapassado;

E Nem Andando Está;

Compartilhar este post


Link para o post
Compartilhar em outros sites
Sir fanton    0
Sir fanton

Se Funfase agradeçeria

Compartilhar este post


Link para o post
Compartilhar em outros sites
Mionzinho    0
Mionzinho

Como disseram acima, não esta funcionando. Realmente é uma pena, estava com esperança!

Mesmo ja tendo tal script iria ajudar muita gente!

De qualquer forma valeu pelo esforço de trazer para nós!

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites
Moykano    0
Moykano

Não funciona.

E cuidado com Copia, pode ser que o Dono do Script, não queira que ele seja divulgado. Eu mesmo tenho um aqui, mas nunca quis posta-lo, em respeito ao pedido do Dono.

[Moykano]

Compartilhar este post


Link para o post
Compartilhar em outros sites
Liberty's    0
Liberty's

como eu fasso pra tipo:quando eu subi no tapete o tapete sobe 1 andar pra cima e começa a andar? e pra quando xega no destino ele pousar?

Compartilhar este post


Link para o post
Compartilhar em outros sites
radori    0
radori

EJIAIJEIAJEJIAJIEjia mto doido no meu bugo tudo ele saiu voandu pra tudo q e lugar

Compartilhar este post


Link para o post
Compartilhar em outros sites
radori    0
radori

kra tdo bem o meu deu assim tipo pus no lugar ele vai pra baxo mas tipo se n por o negosio de origem buga intao ele n fas curva ele so vai pra baxo

Compartilhar este post


Link para o post
Compartilhar em outros sites
[ B a l i l l o ]    0
[ B a l i l l o ]

O erro deste script foi no "ponto de retorno" e no actionID de fazer o tapate ir para baixo.

 

Ponto re retorno: O tapete vai na posição la, dai ele xega no piso que tem actionID para voltar, ele tipo "reinicia" e cada vez ele fica mais rapido (de ficar mais rapido eu não sei por que), com isso o server começa a não responder com as actions e vai removendo/criando os pisos em posições erradas e o player fica "preso" dentro do tapete inqt o tapete fica indo e voltando, mas dps de um certo tempo, pelo tapete estar em alta velocidade, o player é debugged.

 

Ir para baixo: o actionID eh "0", sim ZERO! Qnd vc não usa actionID em algum lugar, advinha cual actionID fica? ZERO! Isso mesmo, 0. Com isso o tapete pega a prox posição (que seria 0) e continua avançando :P

Compartilhar este post


Link para o post
Compartilhar em outros sites
frozen gifah    0
frozen gifah

Nossa..

 

Muito bom, porem é de virar a cabeça

 

Muito Dificiu...Ainda sou Iniciante e está fora de meus planos no momento

 

de qualquer forma, Muito Bom!

 

Parabéns por trazer para o forum mesmo não sendo de sua autoria

Compartilhar este post


Link para o post
Compartilhar em outros sites
gebinha    0
gebinha

Mano eu ayeh tentei arruma aki o tapete juntamente com minha equipe e n estamos

encontrando oq da de errado, se alguem ai puder ajudar-nos a montar o tapete agradeceriamos, add msn ae [email protected] e nos de uma ajuda.

Temos vagas para scripter na equipe

Compartilhar este post


Link para o post
Compartilhar em outros sites
MuriloAgah    0
MuriloAgah

Código rox, estou usando como Busão no meu serv

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×