CA

Fazendo Quest Complicadas...

Por Caidera, 03 de jan. de 2006 em Tutoriais de Scripting

script
59
20.3k
CaideraC
03 de janeiro de 2006 às 14:34

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

06 de janeiro de 2006 às 17:08

Bem dificil xD + e bem legal gostei xD

ImperiI
06 de janeiro de 2006 às 17:22

Bom vo gravar este topico !!!

Excelente e realmente muito dificil !!!

f

u

i

i

SpykerS
07 de janeiro de 2006 às 16:32

Tutortial Excelente, parabens.

Vou usa-lo para trabalhar no meu server :)

by,

Spyker

3 semanas depois...
L0kyL
23 de janeiro de 2006 às 13:29

Uia.... Bem rox bro... Não sabia que vc manjava de actions :p Galera, esse eu agarantcho! >:-o

RotcivR
23 de janeiro de 2006 às 14:38

rox...

achei mto loka, vo adicionar na minha lista ali! mto rox

RafixR
25 de janeiro de 2006 às 13:30

Muito massa, essas alavancas complica a quest e devia ser assim as quest do tibia hehe

Flwz

TeteiaT
25 de janeiro de 2006 às 23:36

Nuss mto bom o tuto , vlw vei tu me ajudou mto. Continue postando tutos dessa categoria para ajudar noix. Vlw

TeteiaT
26 de janeiro de 2006 às 00:25

AFF eu coloco o iten na mesa e n sou teleportado, e o boss n tah nascendo pls ajuda ai ,vlw.

Atenciosamente TeTz

Editado Janeiro 26 por Teteia

ZynexZ
30 de janeiro de 2006 às 01:27

O nome num nega, eh complicado.

Mas vale apena, dpois q c aprende fikar facin ^^

Atenciozamente,

Zynex

TeteiaT
31 de janeiro de 2006 às 21:28

Pow ajuda ai, preciso mto q issu funfe , pls alguem me ajude n to conseguindo ser teleportado e nem cria o boss. Oq seria o stackpos ?

Atenciosamente TeTz

Editado Janeiro 31 por Teteia

2 meses depois...
GM SkynitG
04 de março de 2006 às 17:36

aff mtu díficil so mais fazer a quest do baú.

fernandixF
09 de março de 2006 às 21:21

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

FininhoRoxF
12 de março de 2006 às 00:38

Muitooooooo rox e muitooooooo dificil....xD

Quando tive umas 3 horas sobrando eu tento ....xP + dps q aprende fika facinho

2 meses depois...
shemmueS
25 de maio de 2006 às 01:37

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 +