Como Criar Quest!

Dark-X
Por Dark-X
em Tutoriais de Scripting

Dark-X

Os bons sempre voltam!
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/05/06Posts: 91

Criando Quest

Muitas pessoas ainda nao sabem ou se confundem ao criar um bau de quest, esse tutorial aqui vai ensinar direitinho como criar um.

Este tutorial é dividido em 4 passos.

 

Criando Quest

-Passo 1 - Script.lua

crie um arquivo.lua novo, ele deve ficar localizado na pasta data/actions/scripts e escreva isto nele:

 

 

 

function onUse(cid, item, frompos, item2, topos)
if item.uid == X then
queststatus = getPlayerStorageValue(cid,Y)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Z")
item_uid = doPlayerAddItem(cid,ID,Q)
setPlayerStorageValue(cid,Y,1)


else
doPlayerSendTextMessage(cid,22,"O baú está vazio.")
end
else
return 0
end
return 1
end

 

 

Passo 2 - Configurando o Script.lua

Note que no script acima tem algumas variaveis: "X", "Y", "Z", Q e ""ID"

e em um bau de quest isso é que tem que ser configuravel... vou ensinar agora o que deve ser substituidos por essas letras e como fazer:

 

2.a - Configurando X

Esta variavel devera ser substituida por um numero maior que 1000, vc vai selecionar este numero pelo seu MAP EDITOR. Abra seu editor, va no bau onde fica localizada a quest entao clique com o botao direito no item e selecione PROPRIEDADES.

Vai apareçer 2 opções: Action ID e Unique ID, unique id é o que nos interessa...

entao onde tem unique id vc seleciona um numero a seu gosto.. como EXEMPLO vamos usar 2000.

 

2.b - Configurando Y

Esta variavel é chamada de DATA KEY e é o codigo que diz se o player fez ou nao esta quest.

ESTE NUMERO É A IDENTIDADE DA QUEST, SE 2 QUESTS TIVEREM A MESMA DATA KEY VAI DAR PROBLEMA NA QUEST, entao certifique-se que nenhuma outra quest/action possui este numero que vc vai escolher...

*Dica: Eu aconselho a usar o mesmo numero do uniqueid por uma questao de organização até.

Seguindo a dica entao vamos usar neste exemplo o numero 2000.

PS: este numero apareçe 2x no script, lembre-se de por ele corretamente nos 2 lugares, este numero nao precisa ser igual ao unique id, vc pode escolher outro, eu estou colocando o mesmo numero por uma questao de praticidade.

 

2.c - Configurando Z

Este é o mais facil, Z sera substituido pelo nome do item que a quest da (isso é aquele texto verinho que apareçe quando vc pega um item. Neste exemplo vamos usar umaMagic Sword.

 

2.d - Configurando Q

Este é bem simples tambem, e é configuravel apenas quando o item é contavel como dinheiro, bolts e etc... quando o ITEM NAO É CONTAVEL entao esta variavel fica sempre 1.

Como Magic Sword nao é um item contavel entao Q vai ser 1.

 

2.e - Configurando ID

Este é bem facinho de se configurar, nada mais é que o ID do item que o player vai ganhar.

Como no exemplo escolhi o item Magic Sword temos que usar o ID dela certo? smile.gif

O id da magic sworde é 2400.

PS: este id é de OT 7.4, o ID da magic sword em ot 7.5 é outro..

 

Passo 3 - Substituindo as Variaveis.

Voltando agora ao script, vamos substituir os valores, substituindo tudo direitinho no script vai ficar assim:

 

 

function onUse(cid, item, frompos, item2, topos)
if item.uid == 2000 then
queststatus = getPlayerStorageValue(cid,2000)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Magic Sword")
item_uid = doPlayerAddItem(cid,2400,1)
setPlayerStorageValue(cid,2000,1)

else
doPlayerSendTextMessage(cid,22,"O baú está vazio.")
end
else
return 0
end
return 1
end

 

Esta quase acabando!!!

 

Passo 4 - Adicionando o Script.lua nos Actions.

Antes de tudo lembre-se que o seu arquivo ate agora nao tem nome, como este bau da uma magic sword como item, entao vamos por o nome dele de MagicSwordQuest.

Agora va no actions.xml e abra em bloco de notas, e adicione isto la:

 

 

 

<action uniqueid="2000" script="MagicSwordQuest.lua" />

 

 

Salve e Feche.

 

Pronto, sua quest foi criada com sucessso!!!

 

Passo 5 - Como fazer quest de escolha (OPCIONAL)

Agora para quem quier aprender como faz baus estilo o da annihilator, 2 baus ou mais, e vc só pode pegar um item, irei ensinar agora.

é bem simples, vou tentar explicar como funfa e vou postar exemplo.

nao tem o script inicial postado aqui? pronto, se for 2 baus vc junta 2 scripts em um só, se for 4, 4 scripts em um só, sendo que quando se faz isso se adiciona else antes dos outros if.

vou fazer um exemplo com 3 baus ok? smile.gif

vamos lá.

 

 

 

function onUse(cid, item, frompos, item2, topos)
if item.uid == X¹ then --primeiro bau--
queststatus = getPlayerStorageValue(cid,Y)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Z¹")
item_uid = doPlayerAddItem(cid,ID¹,Q)
setPlayerStorageValue(cid,Y,1)

else
doPlayerSendTextMessage(cid,22,"O baú está vazio.")
end

elseif item.uid == X² then --segundo bau--
queststatus = getPlayerStorageValue(cid,Y)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Z²")
item_uid = doPlayerAddItem(cid,ID²,Q)
setPlayerStorageValue(cid,Y,1)

else
doPlayerSendTextMessage(cid,22,"O baú está vazio.")
end

elseif item.uid == X³ then --terceiro bau--
queststatus = getPlayerStorageValue(cid,Y)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Z³")
item_uid = doPlayerAddItem(cid,ID³,Q)
setPlayerStorageValue(cid,Y,1)

else
doPlayerSendTextMessage(cid,22,"O baú está vazio.")
end

else
return 0
end
return 1
end

 

 

Para configurar é bem simples, é igual a um script normal, vc tem que preencher as variaves normalmente.

nota: vc vai notar uma diferença neste script, alem do elseif, vc pode ver que tem variaves diferentes assim: X¹, X² e X³.

vou ensinar como vc vai configurar.

o X é unique id, vc vai configurar como em um script normal, só que x¹ é diferente de x² que é diferente de x³.

O mesmo se aplica aos Z's, aos ID's, note que nao tem varios "Y", ou seja, o Y do primeiro bau é = ao do segundo e = ao do terceiro.

 

--Partindo para o exemplo pratico--

eu aconselho vc a fazer os UNIQUEIDS seguidos como no exemplo pratico.

 

X¹ = 3000

X² = 3001

X³ = 3002

 

Y = 3000.

 

Z¹ e ID¹ = Magic Sword (2400)

Z² e ID² = SCA (2431)

Z³ e ID³ = TH (2421)

PS: todos estes ids sao para 7.4, nao sei os de 7.5 decorados.

 

--Substituindo as variaveis--

 

 

 fuction onUse(cid, item, frompos, item2, topos)
if item.uid == 3000 then --primeiro bau--
queststatus = getPlayerStorageValue(cid,3000)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Magic Sword")
item_uid = doPlayerAddItem(cid,2400,1)
setPlayerStorageValue(cid,3000,1)

else
doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.")
end

elseif item.uid == 3001 then --segundo bau--
queststatus = getPlayerStorageValue(cid,3000)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Stonecutter Axe")
item_uid = doPlayerAddItem(cid,2431,1)
setPlayerStorageValue(cid,3000,1)

else
doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.")
end
elseif item.uid == 3002 then --terceiro bau--
queststatus = getPlayerStorageValue(cid,3000)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Thunder Hammer")
item_uid = doPlayerAddItem(cid,2421,1)
setPlayerStorageValue(cid,3000,1)

else
doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.")
end

else
return 0
end
return 1
end

 

 

feche, salve e escolha o nome do seu script/quest

exemplo: armas.lua

 

--Adicionando no actions.xml--

abra o action.xml e adicione as tags dos baus.

 

 

--armas quest--
<action uniqueid="3000" script="armas.lua" />
<action uniqueid="3001" script="armas.lua" />
<action uniqueid="3002" script="armas.lua" />
--end armas quest--

 

 

É isso aí... espero que ajude!

 

By Dark-X

signxtbia.png

Giko

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/11/05Posts: 74

Olá Dark-X

 

Eu particularmente não entendo muito de OTServ, porém pelo que eu li está muito bem explicado, obrigado por adicionar este tutorial em nosso fórum.

 

Tutorial aceito.

 

Vlw Dark!

Flw!

al_batata

Banido
avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 10/01/06Posts: 3

tenho uma duvida mais tipow tah eu li mais queria saber qual o id do bau

 

 

__________________________-

 

outra duvida espero q responda eu emploro tipow aonde vai o bau como o progama vai saber aonde tah eu num etendi isso.

QUOTE
Assinatura removida por estar fora das regras.
Xedegux.

meleca

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/10/05Posts: 18

eu ja sei fazer quests mas esse tutorial ta otimo

 

Aprovado e Recomendo.

~~mlc~~

1 vez Tibiano , Sempre Tibiano.

~~Viva as Diferenças , Fod@-Se a Igualdade~~

untitled1xj2.jpg

userbar010xo.gif

hacker7mj.gif

meutrabalho025yw.png

Heitorzin

Ex-Coordenador XTibia
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 23/10/05Posts: 233Char no Tibia: Inp

Bom tutorial estou Desenvolvendo ainda para pode itender melhor como criar quests daqui a pouco irei saber tudo ..

Mais Voltando o Assunto ..

O tutorial está excelente ..

Parabéns

//Heitor


Ex-Coordenador XTibia.com

MoRfEu xD

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 12/07/06Posts: 3

vlw mano a quest fico rox no meu serve ;)

flws

...

Andre Felipe

Banido
avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 03/06/06Posts: 6

Como faço uma quest em q venha uma bag com items dentro?Tipo bag com 10 arrows e 4 poison arrows?

Usuário Banido por ofensa extrema á usuário.

Luanlcs

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 10/01/06Posts: 8

otimooooo

 

esse e o unico que eu vi que ensina a fazer a action

 

aprendi com esse tuto

 

aprovado e recomendado!!

atenciosamente
luanlcs

..........:::::ty under pelo avatar, bar e assinatura:::::..............
user posted image

:admira meu trabalho? ja recebeu minha ajuda? ai esta meu bar!:
----------------------------------------------------------------------
user posted image
----------------------------------------------------------------------
user posted image------------------------------
----------------------------------------------------------------------
user posted image
----------------------------------------------------------------------
user posted image
----------------------------------------------------------------------
meta comprida:
[X]150 posts+

gabiruskt

avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 12/03/06Posts: 100Char no Tibia: Gatinho

Nossa mto bom!

eu nai sei mto bem criar quest..

entao eu uso programa de cria quest xD

mas pra qm gosta de fzer manualmente e mto bom

 

:hi:

lestrobonicenha

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 29/11/06Posts: 1

Po acei um maximo o unico que conseguiu me explicar essa parada de quest:) !

Tipo mais eu nao entendi uma coisa... onde e como minha quest vai entrar no meu ot???plz me ajude!!!!

meu msn ta ai :

supermarinho@UOL.com.BR

é uol e .br msm ok???

vlw pela coompreençao! :icon1:

GoD_RaFkS

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/10/06Posts: 33Char no Tibia: Tubino

 

crie um arquivo.lua novo...

 

----------------------------------

Como Assim??

Como Cria um Arquivo.Lua Novo? -.-'

você quer? você pode!

jpga

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 20/05/07Posts: 2

muito bom o tuto.. bem explicadinho...

eu n entendo mto de ot, consegui faze de boa!!

parabens kra!!!

Exordium

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 24/01/06Posts: 190

muito bem explicado, apesar de ter um super topico do tibiaa4e o seu esta mais rapido e pratico :D

Sou fã de:







favorefty

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/10/05Posts: 82

Muito bom o tutorial,

 

mas você poderia colorir mais

 

o tópico para melhor aprendizagem.

 

 

Fora isso está muito bom,

 

parabéns!

 

 

Abraços,

favorefty.

Ajudando a Organizar o Fórum.
Meu Fã ? use :)
favoreftyfansl7.jpg
Sou:
Mapper.gif
70%
ServerAdmin.gif
100%