Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

Criando Quest de OT(Tutorial)


Epyrus
 Compartilhar

Posts Recomendados

Criando Quest de OT(Tutorial COMPLETO)

 

Bem galera vim trazer aquii pra vocês esse tutorial.

 

 

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.

 

 

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

 

 

 

Ta ai galera um tutorial de como fazer Quest, na próxima eu colocarei um tópico como de como fazer Quest de escolha!

 

Galera como eu prometi estou postando hoje 15/11 como fazer uma Quest de escolha como a do anihilator ^^(Para entender esta parte é aconselhável ler o tutorial todo.)

 

 

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?

 

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

 

 

 

Créditos:Xtibia/By: Dark-X

Link para o comentário
Compartilhar em outros sites

Ótimo tutorial mano,

ainda pra quem ta criando servidor de Tibia e não sabe como fazer isso.

Fiz aqui no meu e deu totalmente certo.

Concerteei +1 bug do meu server ^^

35HI8SZ.png

"Se existe um inferno, eu já tenho um assento reservado na primeira fila" - Dexter

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.