WI

Quests Beeem Elaboradas.

Por Wizi, 01 de fev. de 2009 em Tutoriais de Scripting

script
17
4.8k
WiziW
01 de fevereiro de 2009 às 17:22

É chato entrar num ot e ver a quest:

Mata o dragon e abra o baú.

então resolvi fazer um tutorial para vocês.

lembrando que:

Você não deve fazer uma quest assim exatamente como a minha, com o baú do lado da alavanca e etc..., fiz o mapa em menos de um minuto.

Isso serve como exemplo de actions, e realmente, da para fazer muita coisa com esse exemplo.

 

Resumindo:

Você puxa uma alavanca, então é atribuido um storage ID à você, quando vc pisa no tile especial, ele checa se vc ja puxou a alavanca, se não, ele move você 1 sqm para o lado oposto.

 

Vou por um esquema para vocês verem:

 

esquemaquestjc1.jpg

 

 

Fiz o script da alavanca o mais facil possivel de configurar:

salve como questcomplexa.lua

function onUse(cid, item, frompos, item2, topos)
local summonpos = {x=578, y=432, z=7, stackpos=1} -- posição de onde vai sumonar
local iditem = 1945, 1946 -- ids das alavancas
local itemuid = 12345 -- uid da alavanca
local creaturename = "Demon" -- monstro a ser sumonado
local storageid = 12345
local storagestatus = getPlayerStorageValue(cid, storageid)

if item.itemid == iditem and item.uid == itemuid and storagestatus == -1 then 
	doSummonCreature(creaturename, summonpos)
		   setPlayerStorageValue(cid,storageid,1)
	doPlayerSendTextMessage(cid,22,"You summoned a monster!")
	else
				   doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,"You already summoned the monster, go to the reward room.")
end
return 1
end

Única coisa que vc deve configurar são as primeiras linhas, onde tem 'local = blablabla'

No actions.xml

<action uniqueid="12345" script="questcomplexa.lua"/>

 

 

 

 

 

Agora o tile, que ve se puxou a alavanca, se não ele te empurra para traz.

Salve como quest_tile.lua

local position = getCreaturePosition(cid)

function onStepIn(cid, item, position, fromPosition)

if getPlayerLookDir(cid) == 0 then
newdir = 2
elseif getPlayerLookDir(cid) == 1 then
newdir = 3
elseif getPlayerLookDir(cid) == 2 then
newdir = 0
else
newdir = 1
end

if item.uid == 12344 and getPlayerStorageValue(cid, 12345) == 1 then
doPlayerSendTextMessage(cid,22,"You can get your reward!")
else
doMoveCreature(cid, newdir)
doSendMagicEffect(position, 10)
doPlayerSendTextMessage(cid,22,"You must pull the lever!")
end
end

 

 

No movements.xml:

<movevent event="StepIn" uniqueid="12344" script="quest_tile.lua"/>

Nele vc só edita a mensagem que manda, e botar o UID no mapa.

 

 

 

Sem fazer a quest vc não pode abrir o baú:

questcompelxa2fm1.jpg

 

 

Sumonando o demon:

 

questcomplexa3iw9.jpg

 

 

 

Você não pode puxar a alavanca novamente:

 

questcomplexa4qo0.jpg

 

 

 

Espero que tenha ajudado, dúvidas é só postar.

 

 

 

 

Grato,

Tuco

Editado Fevereiro 13 por RedZL

VildenV
02 de fevereiro de 2009 às 00:23

editado! quando clica na lavanca sumona o mostro.. mais eu testei tbm sem puxa a alavanca pra v c da pra pisa no tile.. e deu :X

Editado Fevereiro 2 por Vilden

WiziW
02 de fevereiro de 2009 às 09:56

Aqui está tudo funcionando perfeitamente, veja se você não errou nada ai.

02 de fevereiro de 2009 às 10:02

Eu aprovo, simplesmente porque, foi criativo, e dai podem surgir muitas outras idéias para uma quest ;)

 

Ja vou testar e edito.

2 semanas depois...
RedZLR
13 de fevereiro de 2009 às 12:03

Gostei, muito legal seu tutorial espero que ajude muito iniciantes. :D

 

Aprovado e movido para Tutoriais - OTServ > Tutoriais de Scripting.

2 meses depois...
\Mattheus ~*\
26 de abril de 2009 às 21:23

Cara Ameiiii Muiito Obrigado Msmmm !

BlikessB
27 de abril de 2009 às 11:23

Espero que tenha ajudado, dúvidas é só postar.

1 mês depois...
FilaosF
15 de maio de 2009 às 08:50

bem e mto bom essa quest mais eu queria q tivessi um geito de q o player ao sumonasse nao poderia mais fujir do lucal onde ele sumonou ate o monstro morrer (pq se n ele abre a alanvanca sobe a escada espera um player mais forte apareçer matar e talz) ou intao ele xega sai correndo varado abre o bau e volta correndo e puff paff pum acabo a quest tenderao?

LorD SybianL
20 de maio de 2009 às 17:05

Tutorial Simples Mais Bem Útil

 

Aprovado # :button_ok:

 

esK~

1 mês depois...
leloroxL
30 de junho de 2009 às 07:52

olá amigo, estive olhando aqui e achei muito interresante.. e pensei se nesse seu script no lugar do demon, nao teria como aparecer diversos bixos, como : 1 orshabaal, Undead Dragon, Demons.. como se fosse uma mini invasão , ou seja uma quest para muitas pessoas fazerem juntas.

 

se nao tiver como mesmo assim está muito bom sua quest já adicionei ela em meu Ot :)

 

abraço!

 

@Edit, outra coisinha que eu já ia me esquecendo, se eu for fazer uma quest grande.. e for mais de uma pessoa todas terão que puxar a lavanca certo?.. no caso começaria a dar um monte de respaw? x.x

 

só uma duvida :D

Editado Junho 30 por lelostyle

1 mês depois...
17586091
23 de julho de 2009 às 16:34

fiko bem rox esse aew!!

TonynhT
23 de julho de 2009 às 18:00
fiko bem rox esse aew!!

 

Cara.. olha o flood.. segunda vez ja.. quando eu reportar naunm reclama..

 

Enquanto ao script.. muito bom.. ja tive muitas ideias.. a partir dessa script =D

 

[ Aprovado ] :button_ok:

 

 

Bom trabalho..

 

Sem mais..

kevinszK
23 de julho de 2009 às 20:43

Bem criativo!

Continue assim! Seu tutorial vai ajuda muita gente! :smile_positivo:

2 semanas depois...
giovannidjG
31 de julho de 2009 às 10:23

Criativo Parabens

2 anos depois...
03 de janeiro de 2012 às 02:14

cara parabens gostei muito

mais tipo eu fiz no meu ot, mais quando fui testa com o god cliquei na alavanca sumono o bixo certinho, mais quando os players vao clicar diz que ja sumonou.??

como resolvo isso?

valeu