Ir para conteúdo

[Actions] Quest Diaria (com itens e quantidades aleatorias)


Krono

Posts Recomendados

Achei esse script magnifico na internet que tira qualquer servidor da mesmisse dando um ar mais RPG e inovador a qualquer otserver!!

Este script randomiza o item ganho em uma quest, levando em consideração.

Os itens do dia: 1 dos itens disponiveis no dia é dado ao player (escolhido aleatoriamente)
A quantidade: alguns dos itens tem a possibilidade de ganhos em dobro triplo..etc.
Vamos ao Script

Em data/actions/actions/scripts adicione um arquivo com o nome de questxday.lua

    function onUse(cid, item, fromPosition, itemEx, toPosition, isHotkey)
         local config = {
             storage = 45392,
             exstorage = 40822,
             days = {
              ["Monday"] = {
                   {itemid = 8839, count = math.random(1, 3)}
               },
               ["Tuesday"] = {
                   {itemid = 2681, count = 1},
                   {itemid = 2682, count = 1},
                   {itemid = 2683, count = 1}
               },
               ["Wednesday"] = {
                   {itemid = 2674, count = math.random(1, 10)},
                   {itemid = 2675, count = math.random(1, 10)},
                   {itemid = 2676, count = math.random(1, 10)},
                   {itemid = 2673, count = math.random(1, 10)}
               },
               ["Thursday"] = {
                   {itemid = 2679, count = math.random(2, 15)},
                   {itemid = 2680, count = math.random(1, 5)}
               },
               ["Friday"] = {
                   {itemid = 2788, count = math.random(1, 3)}
               },
               ["Saturday"] = {
                   {itemid = 6393, count = 1}
               },
               ["Sunday"] = {
                   {itemid = 2389, count = math.random(2, 12)},
                   {itemid = 2690, count = math.random(1, 5)}
               }
             }
         }

         local player = Player(cid)
         local x = config.days[os.date("%A")]
         if player:getStorageValue(config.storage) == tonumber(os.date("%w")) and player:getStorageValue(config.exstorage) > os.time() then
             return player:sendCancelMessage("The chest is empty, come back tomorrow for a new reward.")
         end
         local c = math.random(#x)
         local info = ItemType(x[c].itemid)
         if x[c].count > 1 then
             text = x[c].count .. " " .. info:getPluralName()
         else
             text = info:getArticle() .. " " .. info:getName()
         end
         local itemx = Game.createItem(x[c].itemid, x[c].count)
         if player:addItemEx(itemx) ~= RETURNVALUE_NOERROR then
             player:getPosition():sendMagicEffect(CONST_ME_POFF)
             text = "You have found a reward weighing " .. itemx:getWeight() .. " oz. It is too heavy or you have not enough space."
         else
             text = "You have received " .. text .. "."
             player:setStorageValue(config.storage, tonumber(os.date("%w")))
             player:setStorageValue(config.exstorage, os.time() + 24*60*60)
         end
         player:sendTextMessage(MESSAGE_INFO_DESCR, text)
         return true
    end

Em actions.xml adicione a tag:

    <action uniqueid="3001" script="questxday.lua"/>

Espero que gostem e utilizem!!

 

Credito :Vancinis

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

  • 10 months later...

Cara ta dando erro :| nao funciona de jeito nenhum essa quest...

 

Achei esse script magnifico na internet que tira qualquer servidor da mesmisse dando um ar mais RPG e inovador a qualquer otserver!!

 

Este script randomiza o item ganho em uma quest, levando em consideração.

 

Os itens do dia: 1 dos itens disponiveis no dia é dado ao player (escolhido aleatoriamente)

A quantidade: alguns dos itens tem a possibilidade de ganhos em dobro triplo..etc.

Vamos ao Script

 

Em data/actions/actions/scripts adicione um arquivo com o nome de questxday.lua

    function onUse(cid, item, fromPosition, itemEx, toPosition, isHotkey)
         local config = {
             storage = 45392,
             exstorage = 40822,
             days = {
              ["Monday"] = {
                   {itemid = 8839, count = math.random(1, 3)}
               },
               ["Tuesday"] = {
                   {itemid = 2681, count = 1},
                   {itemid = 2682, count = 1},
                   {itemid = 2683, count = 1}
               },
               ["Wednesday"] = {
                   {itemid = 2674, count = math.random(1, 10)},
                   {itemid = 2675, count = math.random(1, 10)},
                   {itemid = 2676, count = math.random(1, 10)},
                   {itemid = 2673, count = math.random(1, 10)}
               },
               ["Thursday"] = {
                   {itemid = 2679, count = math.random(2, 15)},
                   {itemid = 2680, count = math.random(1, 5)}
               },
               ["Friday"] = {
                   {itemid = 2788, count = math.random(1, 3)}
               },
               ["Saturday"] = {
                   {itemid = 6393, count = 1}
               },
               ["Sunday"] = {
                   {itemid = 2389, count = math.random(2, 12)},
                   {itemid = 2690, count = math.random(1, 5)}
               }
             }
         }

         local player = Player(cid)
         local x = config.days[os.date("%A")]
         if player:getStorageValue(config.storage) == tonumber(os.date("%w")) and player:getStorageValue(config.exstorage) > os.time() then
             return player:sendCancelMessage("The chest is empty, come back tomorrow for a new reward.")
         end
         local c = math.random(#x)
         local info = ItemType(x[c].itemid)
         if x[c].count > 1 then
             text = x[c].count .. " " .. info:getPluralName()
         else
             text = info:getArticle() .. " " .. info:getName()
         end
         local itemx = Game.createItem(x[c].itemid, x[c].count)
         if player:addItemEx(itemx) ~= RETURNVALUE_NOERROR then
             player:getPosition():sendMagicEffect(CONST_ME_POFF)
             text = "You have found a reward weighing " .. itemx:getWeight() .. " oz. It is too heavy or you have not enough space."
         else
             text = "You have received " .. text .. "."
             player:setStorageValue(config.storage, tonumber(os.date("%w")))
             player:setStorageValue(config.exstorage, os.time() + 24*60*60)
         end
         player:sendTextMessage(MESSAGE_INFO_DESCR, text)
         return true
    end

Em actions.xml adicione a tag:

    <action uniqueid="3001" script="questxday.lua"/>

Espero que gostem e utilizem!!

 

Credito :Vancinis

 

 

Cara ta dando erro :| nao funciona de jeito nenhum essa quest...

post-209056-0-05563500-1456240067_thumb.png

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

  • 2 weeks later...
×
×
  • Criar Novo...