REQUERIMENTOS:
~~>Act OnStepIn
~~>Act OnRemoveItem
~~>Uma boa piramide(como fazer ela estará sendo explicado ao longo da action)
Bom, agora dei uma boa lida nos tutos do colex e vou publicar um pacote de actions, que juntos, formam a CURSED PYRAMID.
Hmmm, inovador, mas... denilson... n entendi mt bem... me explica melhor?
CLARO!!! por exemplo, aqui teremos alguns obstaculos.
1º Passo:
Quando voce pisa em um certo lugar, as paredes da piramide são substituidas por MUROS QUE ATIRAM VENENO!!!
2º Passo:
Ao pisar em outro tile, aparecerá traps, que se pisar nelas, tira vida
3º Passo:
Agora é questão de sorte: ao pisar num tile, você ira para um labirinto cheio de bichos selecionaveis
3ºB: Passo:
Mas se você pisar no correto, abrirá-se duas passagens secretas, as duas SEM VOLTA e uma vai pra a sala do tesouro e a outra, vai para outro labirinto.
4ºA Passo:
PARÁBENS!Esse é o caminho correto, ao entrar voce verá um tesouro, tente pegar ele!
4ºB Passo:
Caminho incorreto, labirinto com bichos mt mt mt fortes!!!
5º Passo:
Ao tirar o tesouro de seu lugar, com a função onRemoveItem e math.random teremos 50% de chance da passagem de volta se fechar e alguns monstros serem sumonados e 50% de chance de alguns bichos serem sumonados e a ´passagem de saída se abrir.
PURO RPG!!!E PURO FILME TBM!!!!
1º Passo:
Adicione um bicho chamado CursedWall.xml e não ponha nenhum loot, nenhuma voice, nenhum summon, apenas o look type diferente(para saber o look type a colocar, abra seu itens.otb e procure a parede de egito na vertical e veja o cid dele e ponha esse numero como looktype da criatura) e a runa que a giant spider usa e o cursedwall vai atirar veneno (Quem for usar a pyramid em RPG, pode usar tpw assim "Os bravos guerreiros que foram até a piramide amaldiçoada e sebreviveram para contar história, voltaram com a praga do veneno de lá até o dia de suas mortes' mas isso é soh uma seguiestão =]
ai vamos as actions pq tah td pronto:
cw1 = {x=0, y=0, z=0} --Cursed Wall 1 positioncw2 = {x=0, y=0, z=0} --Cursed Wall 2 positioncw3 = {x=0, y=0, z=0} --Cursed Wall 3 positioncw4 = {x=0, y=0, z=0} --Cursed Wall 4 positioncw5 = {x=0, y=0, z=0} --Cursed Wall 5 positioncw6 = {x=0, y=0, z=0} --Cursed Wall 6 positionfunction onStepIn(cid, item, pos)doSummonCreature(CursedWall, cw1)doSummonCreature(CursedWall, cw2)doSummonCreature(CursedWall, cw3)doSummonCreature(CursedWall, cw4)doSummonCreature(CursedWall, cw5)doSummonCreature(CursedWall, cw6)endreturn 1end
<action uniqueid="8403" script="nome_q_vc_colocou.lua"/>
A action acima fará com que a parede vire cursed walls
~~>OBS.:Você precisará colocar essa uniqueid no chão!
~~>OBS2.:Se o caminho da sua piramide ter mais que 1 SQM de comprimento, adicione <action uniqueid="8403" script="nome_q_vc_colocou.lua"/> com a quantidade correspondente a quantos SQMS a + tem de largura a passagem.Mas mude o unique id!!!
~~>OBS3.:Voce deve colocar speed 0 no cursed wall e alguma coisa que "proteja" o wall, mas não bloqueie runas, magias ou talz(a grade é uma boa opção!)
2º Passo: Vamos as traps!
Credits: tibiaa4e pela função das traps!
não tem as traps? adicione no seu ot! http://www.forums.xtibia.com/forum/index.php?showtopic=32795
Agora que você adicionou as traps, vamos colocar para quando você pisar no tile, aparecer traps!
tp1 = {x=0, y=0, z=0} --Trap 1 positiontp2 = {x=0, y=0, z=0} --Trap 2 positiontp3 = {x=0, y=0, z=0} --Trap 3 positiontp4 = {x=0, y=0, z=0} --Trap 4 positiontp5 = {x=0, y=0, z=0} --Trap 5 positiontp6 = {x=0, y=0, z=0} --Trap 6 positiontp7 = {x=0, y=0, z=0} --Trap 7 positiontp8 = {x=0, y=0, z=0} --Trap 8 positiontp9 = {x=0, y=0, z=0} --Trap 9 positiontp10 = {x=0, y=0, z=0} --Trap 10 positiontp11 = {x=0, y=0, z=0} --Trap 11 positionfunction onStepIn(cid, item, pos)doCreateItem(2579,1,tp1)doCreateItem(2579,1,tp2)doCreateItem(2579,1,tp3)doCreateItem(2579,1,tp4)doCreateItem(2579,1,tp5)doCreateItem(2579,1,tp6)doCreateItem(2579,1,tp7)doCreateItem(2579,1,tp8)doCreateItem(2579,1,tp9)doCreateItem(2579,1,tp10)doCreateItem(2579,1,tp11)endreturn 1end
<action uniqueid="3497" script="nome_q_vc_colocou.lua"/>
A action acima fará com que as traps apareçam
~~>OBS.:Você precisará colocar essa uniqueid no chão!
~~>OBS2.:Se o caminho da sua piramide ter mais que 1 SQM de comprimento, adicione <action uniqueid="3497" script="nome_q_vc_colocou.lua"/> com a quantidade correspondente a quantos SQMS a + tem de largura a passagem.Mas mude o unique id!!!
3º Passo:
As coisas aqui vão começando a complicar então siga os passos!
--Faça um labirinto com alguns bichos "matáveis e um portal no final q vai para a cidade principal
--faça duas passagens que n tem como ir nelas (uma parede bloqueando) e uma escada pra desce em cada uma delas: em cada uma, faça uma escada q n tenha como voltar e uma que de em um labirinto e outra numa sala com um item raríssimo(o item, n o baú, n se esqueça disso!)
Agora as actions:
pm1 = {x=0, y=0, z=0, stackpos=1} --Parade que desaparecera 1 positiongetpm1 = getThingfromPos(pm1)pm1id = id_da_parede_aquipm2 = {x=0, y=0, z=0, stackpos=1} --Parade que desaparecera 2 positiongetpm2 = getThingfromPos(pm2)pm2id = id_da_parede_aquipm3 = {x=0, y=0, z=0, stackpos=1} --Parade que desaparecera 3 positiongetpm3 = getThingfromPos(pm3)pm3id = id_da_parede_aquipm4 = {x=0, y=0, z=0, stackpos=1} --Parade que desaparecera 4 positiongetpm4 = getThingfromPos(pm4)pm4id = id_da_parede_aquifunction onStepIn(cid, item, pos)doRemoveItem(getpm1.uid,1)doRemoveItem(getpm2.uid,1)doRemoveItem(getpm3.uid,1)doRemoveItem(getpm4.uid,1)endreturn 1end
<action uniqueid="6497" script="nome_q_vc_colocou.lua"/>
A action acima fará com que as paredes desapareçam ao andar em um lugar que voce escolher da piramide
agora para as paredes voltarem ao normal
pm1 = {x=0, y=0, z=0, stackpos=1} --Parade que aparecerá 1 positiongetpm1 = getThingfromPos(pm1)pm1id = id_da_parede_aquipm2 = {x=0, y=0, z=0, stackpos=1} --Parade que aparecera 2 positiongetpm2 = getThingfromPos(pm2)pm2id = id_da_parede_aquipm3 = {x=0, y=0, z=0, stackpos=1} --Parade que aparecera 3 positiongetpm3 = getThingfromPos(pm3)pm3id = id_da_parede_aquipm4 = {x=0, y=0, z=0, stackpos=1} --Parade que aparecera 4 positiongetpm4 = getThingfromPos(pm4)pm4id = id_da_parede_aquifunction onStepIn(cid, item, pos)doCreateItem(pm1id.uid,1,pm1)doCreateItem(pm2id.uid,1,pm2)doCreateItem(pm3id.uid,1,pm3)doCreateItem(pm4id.uid,1,pm4)endreturn 1end
<action uniqueid="3492" script="nome_q_vc_colocou.lua"/>
A action acima fará com que as paredes voltem em seus devidos lugares!
Lembrando q tbm tem que colocar unique id no chão!!!
agora, depois de mt trabalheira e esforço meu e seu de configurar tudo, vamos a penultima etapa!!!
4º Passo:agora faça a sala do tesouro!
ultima etapa..:
5º Passo:Faça uma saída mas com paredes bloqueando
agora sim que vem a parte dificil tanto para você quanto para mim ou para o player!!!
Creditos dessa etapa: 75% by me
25% by soulblaster (eu nunka tinha visto onRemoveItem, da primeira vez q eu vi foi no tuto dele e então eu peguei uma partiquica do script dele)
function onRemoveItem(item, tileItem, pos)--edite as coordenadas--monsterpos1 = {x=192, y=299, z=10}monsterpos2 = {x=193, y=299, z=10}monsterpos3 = {x=192, y=300, z=10}monsterpos4 = {x=193, y=300, z=10}posicaoX = 199posicaoY = 295posicaoZ = 10--Outros a ser editados--ps1 = {x=0, y=0, z=0, stackpos=1} --Parede que desaparecera 1 positiongetps1 = getThingfromPos(ps1)ps2 = {x=0, y=0, z=0, stackpos=1} --Parede que desaparecera 2 positiongetps2 = getThingfromPos(ps2)-----------------------if pos.x == posicaoX and pos.y == posicaoY and pos.z == posicaoZ thenrand = math.random(1,2) if rand == 1 then doSummonCreature("Morguthis", monsterpos1) doSummonCreature("Thalas", monsterpos2) doSummonCreature("Omruc", monsterpos3) doSummonCreature("Vashresamun", monsterpos4) doRemoveItem(getps1.uid,1) doRemoveItem(getps2.uid,1) elseif rand == 2 then doRemoveItem(getps1.uid,1) doRemoveItem(getps2.uid,1)endreturn 1end
<movevent event="RemoveItem" tileitem="0" itemid="id_do_item_premio" script="nome_q_vc_salvou.lua" />
~~Esse tile voce deve por onde o player vai passar quando ele estiver saindo da piramide~~
function onWalkIn(cid, item, topos)--editando as variaveis--ps1 = {x=0, y=0, z=0, stackpos=1} --Parede que aparecerá 1 positiongetpm1 = getThingfromPos(ps1)ps1id = id_da_parede_aquips2 = {x=0, y=0, z=0, stackpos=1} --Parede que aparecera 2 positiongetps2 = getThingfromPos(ps2)ps2id = id_da_parede_aquipremioid = id_do_premiopremiopos = {x=0, y=0, z=0, stackpos=1} -- Lugar onde o premio esta-----------------------doCreateItem(ps1id.uid,1,ps1)doCreateItem(ps2id.uid,1,ps2)doCreateItem(premioid.uid,1,premiopos)endreturn 1end
<action uniqueid="9467" script="nome_q_vc_colocou.lua"/>
~~~~~~~~~~~~~~~~~~~~~
Bom eu trabalhei muitíssimo, então gostaria que se fossem postar em outro lugar, os devidos créditos seria bom...
CRÉDITOS:
denilson6 (trabalhei em tudinho e td isso veio da minha criatividade)
Thyranic (Sua action de passagem secreta me ajudou a entender alguns negócios)
colex (pelos seus ótimos tutoriais que me ajudaram muitíssimo)
soulbraster (pela primeira vez que postou onRemoveItem no fórum, e que sem esse exemplo, n seria possível a sala do tesouro)
tibiaa4e (Pelo tutorial de como fazer as traps funcionar)
Obrigado a todos, que com suas ótimas actions me ajudaram muito no desenvolvimento dessa!
Esse é um pacote e sugiro que você use numa piramide só e num serv de RPG, mas você também pode usa-las separadas
~~>OBS.:Note que a maioria das actions vc deve colocar unique id no chão =] (são todas que estiver escrito assim: "action uniqueid"
Flws e tenta comenta pq n gosto de postar coisa desse tipo pra nada...
Edit~~> Agora com a versão onStepIn para a nova cvs (Ty SoulBlaster)