Easy Quest System

gledsonrt
em Actions e Talkactions

gledsonrt

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 03/05/08Posts: 7

Olá galera!

 

Montei esse script para meu OTServ, e achei que poderia ser de utilidade pública, então resolvi postar aqui!

Ele funciona para quests simples, onde o player clica em um baú e recebe um item!

 

E você deve estar se perguntando: "Ok, todos sabem fazer uma quest, qual a vantagem?

 

A vantagem é: você só usará este script para TODAS as quests do seu server!

 

Adicione em data/actions/actions.xml:

<action actionid="5000" script="quest.lua"/>

 

Crie um arquivo em data/actions/scripts com o nome 'quest.lua', e adicione:

function onUse(cid, item, frompos, item2, topos)
queststatus = getPlayerStorageValue(cid, item.uid)
if queststatus == -1 or queststatus == 0 then
 qitem = getContainerItem(item.uid, 0)
 if getPlayerFreeCap(cid) > getItemWeight(qitem.uid) then
  doPlayerSendTextMessage(cid, 22, "You have found a "..getItemName(qitem.itemid)..".")
  doPlayerAddItem(cid, qitem.itemid)
  setPlayerStorageValue(cid, item.uid, 1)
 else
  doPlayerSendTextMessage(cid, 24, "You don't have enought capacity.")
 end
else
 doPlayerSendTextMessage(cid, 22, "The chest is empty.")
end
return 1
end

 

Funciona assim:

 

1) Adicione no seu map editor um baú, e nas opções dele, coloque:

Action ID: 5000

Unique ID: O que você desejar, porém não pode se repetir com outra quest.

E adicione o prêmio da quest no baú. No meu caso, uma DSM.

 

Veja o exemplo:

 

quest10.png

 

O player clicará no baú e ganhará uma DSM.

 

A vantagem é: caso você queira fazer outra quest, baita adicionar outro baú, com Action ID 5000, Unique ID qualquer, e com o prêmio da quest dentro.

Um único script funciona para todas as quests!

 

Espero que gostem!

 

Kaul OTServ:GOD

gledsonrt

Kaul OTServ - 7.6 Global10x

Register now!

750970

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 27/09/08Posts: 1Char no Tibia: Broxaborus Seriath

e se a quest tiver varios itens, como colocaria, para o tal player pegar só 1 item?

e nao todos?

JulioNakanishi

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 14/12/10Posts: 63Char no Tibia: Naoteinteressa

e se a quest tiver varios itens, como colocaria, para o tal player pegar só 1 item?

e nao todos?

 

vc teria que fazer varios chests com os itens diferente mais com o mesmo action id/unique id, para que ele possa pegar apenas 1.

eu acho que é isso, espero ter ajudado.

Está procurando um servidor inovador?

Clique aqui!

Cadastrado: 14/12/2010

soldoran

<~> Skype elson_hen <~>
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 16/01/09Posts: 140Char no Tibia: Eternal Oblivion

eu tentei aqui mas na hora de tentar abrir o bau nao abre nada :/

combooovert.gif

Gostou?então de REP+

 

OldYurots Servidor 8.60

IP:goplaytibia.sytes.net

accounts 1/1

www.soldorangames.comunidades.net

Clique no

rep_up.png

eu agradeço pelo Rep+

xtibia.com

victormoaz

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 12/02/08Posts: 95Gênero: Masculino

[17/10/2012 14:26:35] [Error - Action Interface]
[17/10/2012 14:26:35] data/actions/scripts/quests/quest.lua:onUse
[17/10/2012 14:26:36] Description:
[17/10/2012 14:26:36] (luaGetThing) Thing not found
[17/10/2012 14:26:36] [Error - Action Interface]
[17/10/2012 14:26:36] data/actions/scripts/quests/quest.lua:onUse
[17/10/2012 14:26:36] Description:
[17/10/2012 14:26:36] data/lib/050-function.lua:239: attempt to index a boolean value
[17/10/2012 14:26:36] stack traceback:
[17/10/2012 14:26:36]  data/lib/050-function.lua:239: in function 'getItemName'
[17/10/2012 14:26:36]  data/actions/scripts/quests/quest.lua:6: in function <data/actions/scripts/quests/quest.lua:1

 

apareceu esse erro p mim

--EDIT-------------------------

Ja resolvi...

 

teria como adicionar uma quantidade de item para receber?

Tipo, se for gold o premio, uma certa quantidade tipo 30 gold.

Pelo seu script so adiciona 1, mesmo que coloque count 30 pelo map editor.

Trabalhos

 

 

 

PSDO - 24h - Exp Stages

 

 

*********No level pokemon******** *

*Aleatory Shiny

*Golden Arena (Meowth Coin)

*Saffari with saffari balls

*Duel System (Order)

*Npc Duel (Gym and others)

*Clan system with task and shinys clan

*Client with Pokebar and CooldownBar

*Rocket and Police System

*Map with constant change (Several Quests)

 

 

2cful5h.png

Skymagnum

Hamburguer
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 02/08/12Posts: 1025Char no Tibia: Maurolkit
function onUse(cid, item)

if getPlayerStorageValue(cid, STORAGE_DA_QUEST) > 0 then
   return doPlayerSendCancel(cid, "Chest is empty.")
       end
         if getPlayerFreeCap(cid) < getItemWeight(ITEM_A_GANHAR) then
    return doPlayerSendCancel(cid, "You don't have capacity.")
end


return doPlayerAddItem(cid, ITEM_A_GANHAR, 1) and doPlayerSendTextMessage(cid, 27, "You win a " .. getItemNameById(ITEM_A_GANHAR) .. ", congrutulations.")
end

jeoz.png