Ir para conteúdo

Fazendo Quest Complicadas...


Caidera

Posts Recomendados

Bom... antes de tudo queria agradecer ao Héliton por me ensinar a fazer isso.

Esse tutorial é para aquelas pessoas que já estão de saco cheio de quest do estilo Anihilator(não sei escrever :p) ou Demon Helmet, que você entra numa sala com um monte de bicho, mata tudo e pega o premio. Esta que eu vou demonstrar aqui vai ser mais ou menos assim mas de qualquer forma é mais trabalhosa.

Vou passar a quest toda aqui você só vão precisar configurar. vamos lá vou explicar a quest primeiro:

- Você acha uma mesinha com uma alavanca do lado, e um tile que afunda. Sobe no tile. coloca o objeto em cima da mesinha e é teleportado.

Action:

Pelo mapa você coloca um unique id na alavanca, vamos pegar por exemplo 5000(pode ser qualquer número, desde que já não seja usado :p)

ai no arquivo actions.xml você adiciona essa linha:

<action uniqueid="5000" script="nome_do_script.lua" />

Sendo que o nome do script é onde vai ficar as informações que vem abaixo:

function onUse(cid, item, frompos, item2, topos)

tablepos = {x=posx, y=posy, z=posz, stackpos=253} --tem q mudar o posx, posy e posz pras cordenadas da mesa

tableitem = getThingfromPos(tablepos)

newplayerpos = x=posx, y=posy, z=posz, stackpos=253} --tem q mudar o posx, posy e posz pra ond o player vai ser teleportado dps q puxa a alavanca

if tableitem.itemid == <id do item> then

doTransformItem(item.uid,item.itemid+1)

doTeleportThing(cid,newplayerpos)

else

doTransformItem(item.uid,item.itemid-1)

end

return 1

end

Ai em cima já tem tudo o que modificar =P explicado.

Tá agora o cara foi teleportado para o outro lugar =)

Nesse outro lugar você anda e pá =P... ai tem outra sala com alguns bichos e uma alavanca, que ao puxar nasce o boss da quest. Vamos explicar agora:

No mapa na alavanca você coloca outro unique ID, por exemplo 5001(já que o 5000 tá sendo usado na action ali de cima)

E adiciona no actions.xml isso:

<action uniqueid="5001" script="nome_do_script.lua" />

Onde o nome_do_script vai ser o que está aqui em baixo:

function onUse(cid, item, frompos, item2, topos)

bosspos = {x=posx, y=posy, z=posz, stackpos=253} --tem q mudar o posx, posy e posz pra pos ond o boss vai nascer

if item.itemid == <id da alavanca item> then

doTransformItem(item.uid,item.itemid+1)

doSummonCreature("nome_do_boss", bosspos)

doPlayerSendTextMessage(cid,22,"nome_do_boss voltou a vida!")

else

doTransformItem(item.uid,item.itemid-1)

end

return 1

end

Ai nasce o boss, você e seu time caem na porrada com ele, o matam e pegam o loot da quest... Bom poderia acabar aqui, ter um teleport para fora do lugar e pronto =)... mas porque não colocar alavancas =P onde o cara tem que puxar a certa se não é teleportado para um lugar onde provavelmente morre, outro para um lugar longinquo seria interessante não? =P Bom caso você queira que tenha só um teleport no final da quest o tutorial acaba aqui

Caso queria que tenha as alavancas nós continuaremos :) vamos lá então:

O exemplo que o Héliton me passou foi com 3 alavancas, passarei assim pois se for fazer com quatro será o mesmo esquema só o script vai aumentar de tamanho.

Você vai lá no mapa e coloca as três alavancas e coloca os uniques ids também, pegaremos 5003, 5004 e 5005(tem que ser diferente dos outros)

Em actions.xml você adiciona:

<action uniqueid="5002" script="nome_do_script.lua" />

<action uniqueid="5003" script="nome_do_script.lua" />

<action uniqueid="5004" script="nome_do_script.lua" /> (tem q ter o nome do mesmo script) por exemplo:

<action uniqueid="5002" script="alavboss.lua" />

<action uniqueid="5003" script="alavboss.lua" />

<action uniqueid="5004" script="alavboss.lua" />

Ai no script(que eu nome-ei por alavboss) vai ficar assim:

function onUse(cid, item, frompos, item2, topos)

a1pos = {x=posx, y=posy, z=posz, stackpos=253} --tem q mudar o posx, posy e posz pra pos dah alavanca 1

a2pos = {x=posx, y=posy, z=posz, stackpos=253} --tem q mudar o posx, posy e posz pra pos dah alavanca 2

a3pos = {x=posx, y=posy, z=posz, stackpos=253} --tem q mudar o posx, posy e posz pra pos dah alavanca 3

if item.itemid == <id da alavanca item> and item.itemid == a1pos then

doTransformItem(item.uid,item.itemid+1)

doTeleportThing(cid,a1pos)

elseif item.itemid == <id da alavanca item> and item.itemid == a2pos then

doTransformItem(item.uid,item.itemid+1)

doTeleportThing(cid,a2pos)

elseif item.itemid == <id da alavanca item> and item.itemid == a3pos then

doTransformItem(item.uid,item.itemid+1)

doTeleportThing(cid,a3pos) else doTransformItem(item.uid,item.itemid-1)

end

return 1

end

Bom é isso =), ali você escolhe a alavanca que você quer que funcione e pá.

Tutorial termina aqui.

P.S.: segundo quem codo esses actions(Héliton) pode ter 1 ou 2 bugs. qualquer coisa se você testo as actions e deu bug me manda uma PM ou avisa aqui mesmo que eu tentarei consertar ou falarei com ele x)

P.S.²: CRÉDITOS PELA CRIAÇÃO DO CODE PARA HÉLITON

Só para depois não falarem que eu coloquei créditos =)

Atenciosamente,

Caidera

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...
  • 1 month later...

Sim,muito legal,agora poderemos fazer quests no estilo "RPG",mais divertidas nehh? eu nao sei se voce sabe fazer isto,mas tava com uma ideia mais ou menos assim : Os jogadores entram no Dungeon da quest,ai depois de explorarem e axarem o lugar para o começo da quest,seria assim: um salao fexado como qualquer outro,mas com uma parede que se voce der use nela,ela te levar para outro lugar,como se fosse um teleporte,se tiver como voce me explicar como fazer isto eu agradeceria muitooo!

Nota 10 teu topic,abraçoss!!!

Link para o comentário
Compartilhar em outros sites

  • 2 months later...

vixi eu descobri como fazia isso na pura cagada ai dpois d 2 semana eu achu u topico e fodz :sick:

de qualker maneira ta ajudando muita gente a deixar as quests + rox e dificeis jaja postarei 1 topico esplicando como criar keys para funfarem nas portas e pq estou muito ocupado com meu map :rolleyes:

SEM +

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...