Ir para conteúdo

[ Resolvido ] Resolvido Bligado Marcryzius


Posts Recomendados

  • 2 weeks later...

N entendi muito bem a sua duvida, mas vou te dar um exemplo de um script de uma quest e vou explica-lo:

 

function onUse(cid, item)

 

if item.uid == 15999 then

queststatus = getPlayerStorageValue(cid, 1597)

if queststatus == -1 then

doPlayerSendTextMessage(cid, 22, "Voce ganhou 100 Assassin Stars")

doPlayerAddItem(cid, 7368, 100)

setPlayerStorageValue(cid, 1597, 1)

else

doPlayerSendCancel(cid, "Voce ja fez esta quest")

end

end

end

 

Bem esse script, é o script de uma quest simples, eu acabei de fazer aqui.Entao vou te explicar tudo ali em cima pra q vc possa fazer igual em outros scripts.Pra que esse script funcionasse voce teria que ir no mapa e adicionar no bau o UID 15999, nomear este script para "new", colocalo dentro da pasta data/actions/scripts do seu ot e adicionar isto no actions.xml:

 

<action uniqueid="15999" script="new.lua"/>

 

if item.uid == 15999 ----Aqui ele ira checar se o UID é 15999, ou seja, quando vc bota um bau no mapa, voce vai botar um UID no bau, entao ele ira checar se o UID for 15999 entao ele rodara esse script.

queststatus = getPlayerStorageValue(cid, 1597) -----Aqui ele ira checar o storage 1597 do player(vc entendera melhor daki a poko)

if queststatus == -1 -----Aqui ele ira checar se o Storage 1597 -que a funçao a cima verificou- esta liberado, entao o -1 significa q ele esta liberado.Se estiver, o script rodara normalmente.

doPlayerSendTextMessage(cid, 22, "Voce ganhou 100 Assassin Stars") -----Aqui ele ira mandar uma mensagem pro player quando ele abrir o bau.

doPlayerAddItem(cid, 7368, 100) -------Aqui ele ira adicionar 100 do item 7368 (o item 7368 é assassin star).So use o "100" no final se o item for contavel, como assassin star ou enchanted spear, mas nunca use se o item for uma thunder hammer ou um blessed shield.

setPlayerStorageValue(cid, 1597, 1) ------Aqui ele ira fazer com que o storage 1597 fique "1", pra q o player n possa fazer duas vezes a mesma quest.

else ----Nao tire o else, embora n seja necessario explica-lo.

doPlayerSendCancel(cid, "Voce ja fez esta quest") -----Aqui ele ira mandar uma mensagem pro player dizendo q ele n pode fazer a quest duas vezes.

end ------Note que a tres ends no final, isso por que cada "if" precisa de um end e cada "function" precisa de um end tb, entao n tire nenhum end.

 

Bom acho q é so isso mesmo, espero que voce tenha aprendido e espero ter ajudado, se n era uma explicaçao q voce tava procurando e sim o script me de os detalhes do script q eu faço pra vc.

Editado por Demonbholder
Link para o comentário
Compartilhar em outros sites

esse sistema já esta incluso nos ots a muito tempo, basta você pegar o id do item, clicar com o botao direito no baú, e botar o id do item em 'Unique ID'

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...

demon mas dessa forma eu teria que fazer um script pra cada quest a que eu quero e que eu apenas coloque no mapa editor o bauzinho com o uid igual ao id do item e pronto a quest ta feita.

so isso se puder fazer pra eu tyyyy

 

:positive: :smile_positivo: :smile_positivo:

Link para o comentário
Compartilhar em outros sites

N tenho certeza, mas acho q n tem jeito de faze sem script cara, pq se for percebe, tds ots tem scripts pra todas as quests, essa eh a minha opiniao.Mas otra coisa, q preguiça hein cara, so faze um script pra cada quest e ja era, ta tdo explicadinho ai.E na verdade, eu nunca testei bota so o item no bauzinho.

Link para o comentário
Compartilhar em outros sites

Que tipo de quest você quer fazer? Aquelas com monstros e quando chega no baú da use e recebe a recompensa?

Então é desse estilo mesmo, você clica com o botão direito em cima do chest, e no ActionID você coloca o ID da recompensa.

 

Abraços,

Henrique.

Link para o comentário
Compartilhar em outros sites

O script se fosse pelo mapeditor, iria entrar em colapso se houvesse outra action ID igual sendo usada.

Eis o script, se quiser fazer todas as quests com um script para cada uma:

function onUse(cid)
--Config
local Reward = {
	ID = 6767,
	Msg = "You have found a ".. getItemNameById(Reward.ID) ..".",
	Storage = 56454
			}
if getPlayerStorageValue(cid, Reward.Storage) >= 1 then
	doPlayerAddItem(cid, Reward.ID, 1)
	doPlayerSetStorageValue(cid, Reward.Storage, 1)
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, Reward.Msg)
else
	doPlayerSendCancel(cid, "You already done this quest.")
	doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
end
return true
end

 

#KaKilo:

Meu caro, esta área é para pedidos de scripts, se não vai pedir e nem dar o script à ele, não poste.

Editado por iRockStar
Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
O script se fosse pelo mapeditor, iria entrar em colapso se houvesse outra action ID igual sendo usada.

Eis o script, se quiser fazer todas as quests com um script para cada uma:

function onUse(cid)
--Config
local Reward = {
	ID = 6767,
	Msg = "You have found a ".. getItemNameById(Reward.ID) ..".",
	Storage = 56454
			}
if getPlayerStorageValue(cid, Reward.Storage) >= 1 then
	doPlayerAddItem(cid, Reward.ID, 1)
	doPlayerSetStorageValue(cid, Reward.Storage, 1)
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, Reward.Msg)
else
	doPlayerSendCancel(cid, "You already done this quest.")
	doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
end
return true
end

 

#KaKilo:

Meu caro, esta área é para pedidos de scripts, se não vai pedir e nem dar o script à ele, não poste.

 

 

oxi migu num e isso q eu kero

o ki eu kero e um script so que faz as quests com o mapeditor o ki vc postou e pra fzr quests separadas e num e isso ki eu keru

 

alguem prix tem esse script?

favor posta pa eu prix tyyyy

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...