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 ) 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 )
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