quarta-feira, 6 de agosto de 2008

Aprenda a fazer novas Quests

Primeiro, você vai na pasta de seu OT, data, actions, scripts, e vai no chest.lua, manda editar e vai aparecer isso:

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

[SIZE=7]-- bright sword quest
if item.uid == 5001 then
queststatus = getPlayerStorageValue(cid,5001)
if queststatus == -1 then
if getPlayerLevel(cid) >= 20 then
doPlayerSendTextMessage(cid,22,"You have found Bright Sword.")
doPlayerAddItem(cid,3233,1)
setPlayerStorageValue(cid,5001,1)
else
doPlayerSendTextMessage(cid,22,"You need level 20 to get prize.")
end
else
doPlayerSendTextMessage(cid,22,"It is empty.")
end

Isso eh uma quest, a da bright sword, tem muitas quests lah, vc vai na ultima e copia, da enter e cola, ai vai aparece lah uns negocio q vc tem q mudar,eh muito importante!
Exemplo: -- 10k quest
elseif item.uid == 5026 then(5026=numero da quest,tipo se a ultima foi 5024, a proxima eh 5025, lembrando q eh ateh 5999)
queststatus = getPlayerStorageValue(cid,5026)(5026=numero da quest,tipo se a ultima foi 5024, a proxima eh 5025, lembrando q eh ateh 5999, muda isso tbm
if queststatus == -1 then(Dexa assim)
if getPlayerLevel(cid) >= 15 then(Level requerido para pegar o prêmio) doPlayerSendTextMessage(cid,22,"You have found 10k.")(Mensagem que aparece na tela quando o player completa a quest) doPlayerAddItem(cid,2981,1)(2981, id do item que vai ganhar na questsoh ir no itens.xmle editar e procurar com ctrl+f) setPlayerStorageValue(cid,5026,1) (5026,novamente o numero da quest) else
doPlayerSendTextMessage(cid,22,"You need level 15 to get prize.") (Mensagem que aparece quando o player naum tem o level necessário para completar a quest) end
else
doPlayerSendTextMessage(cid,22,"Its empty.") (Mensagem que aparece quando o player ja completou a quest) end
end
return 1
end (O Primeiro End,eh o final da quest, mas kada vez q vc criar uma nova quest tem q deletar os proximos end e o return 1 e colocar na ordem no final dessa quest)

Bom, depois disso, abra o mapeditor, colokeos respawms dos bixos desejados pra quest, e o bau, clike com o botao direito no baú, e vai em poperties, coloca lah:

Action id: 5025 (ou o numero da quest)

Unique id: 5025 (ou o numero da quest)

Entao feche, e salve, abra seu server e va no baú e pegue o item, depois de matar os bixos eh claro /smile.gif" onload="resize('http://www.xtibia.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif')" src="http://www.xtibia.com/forum/style_emoticons/%3C#EMO_DIR#%3E/smile.gif" title="Clique para ampliar" onclick="fullScreen('http://www.xtibia.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif')"> ,

Bom, espero ter ajudado
Atenciosamente, Rafix /biggrin.gif" onload="resize('http://www.xtibia.com/forum/style_emoticons/<#EMO_DIR#>/biggrin.gif')" src="http://www.xtibia.com/forum/style_emoticons/%3C#EMO_DIR#%3E/biggrin.gif" title="Clique para ampliar" onclick="fullScreen('http://www.xtibia.com/forum/style_emoticons/<#EMO_DIR#>/biggrin.gif')">

Qualquer duvida posta ae!
----------------------Edit---------------------
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. (a pedidos)
é 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" onload="resize('http://www.xtibia.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif')" src="http://www.xtibia.com/forum/style_emoticons/%3C#EMO_DIR#%3E/smile.gif" title="Clique para ampliar" onclick="fullScreen('http://www.xtibia.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif')">
vamos lá.



-- Tutorial de Quest by Neto =] --

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



-- Tutorial de Quest by Kinho =] --

function 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

Boa Sorte!

11 comentários:

patrick disse...

Perfeito mi ajudo di mais Vlw

Anônimo disse...

Bãao demais... Até que enfim alguém conseguiu explicar isso de um jeito decente...

valeu mesmo manolo...

Anônimo disse...

valeu cara me ajudou muito,brigadao xD autor=jhonata!

[ADM] The Rev ; [ADM] Shadows ; [ADM] Syn Gates ; [CM] iTaLiaNo disse...

cara me ajudaaa! a unica coisa q eu não consigo fazer é achar a pasta chest.lua .... ja me matei de procurar mais num tem :S oq eu faço?

Anônimo disse...

Issso serve pra ot 8.1 né?

Anônimo disse...

QQQQQQQQQQQQQQQQQQQQQQQ BOOOOOOOOOOOOOOSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Anônimo disse...

adorei seu post vlw aew !!!

Anônimo disse...

Que Bsota Mesmo Copio de otros blog e ainda faz merda lixao

aquinomat disse...

quero muito ajuda
tem um erro muito grave no meu ot com as quests. os playres podem fazer quantas fazes quiser a mesma quest

Anônimo disse...

elseif item.uid == 5026 then(5026=numero da quest,tipo se a ultima foi 5024, a proxima eh 5025, lembrando q eh ateh 5999)

EXEMPLO ISSO AQUI COMO EU DESCUBRO QUAL FOI A ULTIMA... ??

Anônimo disse...

elseif item.uid == 5026 then(5026=numero da quest,tipo se a ultima foi 5024, a proxima eh 5025, lembrando q eh ateh 5999)

EXEMPLO ISSO AQUI COMO EU DESCUBRO QUAL FOI O ULTIMO NÚMERO USADO PRA QUEST ????