_ferrari_ 1 Postado Novembro 18, 2007 Share Postado Novembro 18, 2007 (editado) ATENÇÃO!!!!!!!!!! Desculpe por estar "reavivando" o tópico, espero que não dê problema. Quero avisar a todos que esse script está obsoleto e, como foi dito pelo King CPI, ele CAUSA UM ATAQUE DOSS NO SEU SERVER!. Foi testado em um server com pouca capacidade e todos os player sofreram debug, e logo após isso, o servidor caiu. Se for utilizar tenha cuidado. Como prometido, fiz meu tapete voador. Neste tutorial, ensinarei como faze-lo funcionar. ESTE TAPETE FOI FEITO NÂO SOMENTE POR MIM, MAS POR TODA A EQUIPE DO WARCRAFT ATS, ENTÃO, NÃO DEIXE DE COLOCAREM OS CRÉDITOS ONDE POSTAREM 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: "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: "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: 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"/> ENJOY COMENTEM PELO AMOR DE DEUS, DEMOREI UM MILHÃO DE ANOS PRA FAZE ELE.... COMENTEM PLZ Editado Junho 13, 2009 por _ferrari_ Link para o comentário https://xtibia.com/forum/topic/68754-tapete-voador-by-andrew/ Compartilhar em outros sites More sharing options...
MaNeRiNhU 0 Postado Novembro 18, 2007 Share Postado Novembro 18, 2007 Velho... Nao da pra por ActionID 1 - 2 - 3 - 4 é soh 100 pra cima flws Link para o comentário https://xtibia.com/forum/topic/68754-tapete-voador-by-andrew/#findComment-423114 Compartilhar em outros sites More sharing options...
_ferrari_ 1 Postado Novembro 18, 2007 Autor Share Postado Novembro 18, 2007 Arrumado, agora é 9001, 9002, 9003 e 9004 Link para o comentário https://xtibia.com/forum/topic/68754-tapete-voador-by-andrew/#findComment-423119 Compartilhar em outros sites More sharing options...
Jhouws 0 Postado Novembro 18, 2007 Share Postado Novembro 18, 2007 ae cara num consegui vo tenta no"theforgottenserver023-wingui" mais cara onde eu coloko os IDS:9001, 9002, 9003 e 9004 num entendi essa(eh na borda do tapete?)fala ai plx Link para o comentário https://xtibia.com/forum/topic/68754-tapete-voador-by-andrew/#findComment-423123 Compartilhar em outros sites More sharing options...
MaNeRiNhU 0 Postado Novembro 18, 2007 Share Postado Novembro 18, 2007 (editado) Ta dificil de intende manow oO E embaixo do tapete ? Põe algo ? Editado Novembro 18, 2007 por MaNeRiNhU Link para o comentário https://xtibia.com/forum/topic/68754-tapete-voador-by-andrew/#findComment-423125 Compartilhar em outros sites More sharing options...
_ferrari_ 1 Postado Novembro 18, 2007 Autor Share Postado Novembro 18, 2007 (editado) seguinte, os action id 900x... sao os action id do tile 460 ( o tile vazio) por onde o tapete pasa. entao se o espaço id 460 tiver action id 0, o tapete vai um sqm pra baixo etc... Requerimentos: Um pouco de conhecimento sobre actions, movements e mapping coloquei isso pra que nao houvesem perguntas noobs.... pena que tiveram Editado Novembro 18, 2007 por _ferrari_ Link para o comentário https://xtibia.com/forum/topic/68754-tapete-voador-by-andrew/#findComment-423127 Compartilhar em outros sites More sharing options...
GM Volcano 1 Postado Dezembro 2, 2007 Share Postado Dezembro 2, 2007 Bem explicado ^^ Porem..se u cara eh um player safado, ele estraga com a alegria de alguns players, "andando no invisivel".. Vc tem a solução p/ isso? Link para o comentário https://xtibia.com/forum/topic/68754-tapete-voador-by-andrew/#findComment-431278 Compartilhar em outros sites More sharing options...
_ferrari_ 1 Postado Dezembro 2, 2007 Autor Share Postado Dezembro 2, 2007 claro, voce pode usar o item editor, abrir o item.otb e procurar o tile 460, entao, tire a tag walkable. entao, nao tem como andar sobre ele Link para o comentário https://xtibia.com/forum/topic/68754-tapete-voador-by-andrew/#findComment-431585 Compartilhar em outros sites More sharing options...
h3online 1 Postado Dezembro 3, 2007 Share Postado Dezembro 3, 2007 Não consegui faser ta explicado mais n consigu Link para o comentário https://xtibia.com/forum/topic/68754-tapete-voador-by-andrew/#findComment-431900 Compartilhar em outros sites More sharing options...
DeadKennedy 2 Postado Dezembro 4, 2007 Share Postado Dezembro 4, 2007 Oia lá! Muito criativo, super bem esplicado! Mas uma perguntinha: Isso não gera um atack DoS?? Até mais :hi: Link para o comentário https://xtibia.com/forum/topic/68754-tapete-voador-by-andrew/#findComment-432769 Compartilhar em outros sites More sharing options...
Skulls 331 Postado Dezembro 4, 2007 Share Postado Dezembro 4, 2007 muitooo bom vou testar parabens mesmo fui Link para o comentário https://xtibia.com/forum/topic/68754-tapete-voador-by-andrew/#findComment-433019 Compartilhar em outros sites More sharing options...
_ferrari_ 1 Postado Dezembro 4, 2007 Autor Share Postado Dezembro 4, 2007 daonde atack DoS? Link para o comentário https://xtibia.com/forum/topic/68754-tapete-voador-by-andrew/#findComment-433113 Compartilhar em outros sites More sharing options...
DeadKennedy 2 Postado Dezembro 4, 2007 Share Postado Dezembro 4, 2007 (editado) Não sei se você sabe, mas toda vez que teleporta um player ele dá reload na batle list, faz um monte de reloads... imagina se for 50 teleports e tiver 9 pessoas sobre o tapete... 9x50=450 loads de batle list em menos de 20 segundos... pouco?? espero que tenha entendido :hi: *~Edit~* Não voa pra baixo e nem pra cima(z-1/z+1)... Mas td bem... jah postou um solução *~Edit2~* @h3online Isso porque ele escreve bem, imagine se escrevesse como vc E está super bem esplicado, e vc só não gostou porque não conseguiu usar... Se esforce um pouco mais, quem sabe cosiga! Até + :hi: Editado Dezembro 5, 2007 por KingCPI Link para o comentário https://xtibia.com/forum/topic/68754-tapete-voador-by-andrew/#findComment-433132 Compartilhar em outros sites More sharing options...
_ferrari_ 1 Postado Dezembro 5, 2007 Autor Share Postado Dezembro 5, 2007 Eu uso um tapete que sobe e dece, mas pra esse aqui que eu dei release, eu aconselho faze um tapete no andar de baixo, colocar com movements um teleporte que te leve um andar para cima e la vai ter o tapete. Link para o comentário https://xtibia.com/forum/topic/68754-tapete-voador-by-andrew/#findComment-433386 Compartilhar em outros sites More sharing options...
h3online 1 Postado Dezembro 5, 2007 Share Postado Dezembro 5, 2007 puts mano n gostei n consigu bota pra funcionar ta mt mal explicado Link para o comentário https://xtibia.com/forum/topic/68754-tapete-voador-by-andrew/#findComment-433391 Compartilhar em outros sites More sharing options...
Posts Recomendados