• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    Modificar Script de rewards chests Warzone

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1Resuelto Modificar Script de rewards chests Warzone el Lun Ene 19, 2015 9:44 am

    newlegacy

    avatar
    Miembro
    Miembro
    Saludos a todos, me gustaría que me dieran una pequeña ayuda por el momento con este script es solo agregarle un exhauste de 20 horas, depues de que uno mate el boss y coja los ítem del cofre tengas que esperar esas 20 horas para cada cofre aquí esta el script que tengo en la datapack Gracias:

    Código:
    local rewards = {
       [3148] = {
          storage = Storage.BigfootBurden.Warzone1Reward,
          bossName = 'Deathstrike',
          items = {
             {rand = true, itemId = {18396, 18501, 18502, 18503}},
             {itemId = 18402, count = 750},
             {itemId = 18396},
             {itemId = 2160, count = 3},
             {itemId = 18415, count = 7},
             {itemId = 18423, count = 2}
          },
          achievement = {'Final Strike', 'Death on Strike'},
          achievementStorage = Storage.Achievements.DeathOnStrike
       },
       [3149] = {
          storage = Storage.BigfootBurden.Warzone2Reward,
          bossName = 'Gnomevil',
          items = {
             {rand = true, itemId = {18505, 18506, 18507}},
             {itemId = 18407, count = 750},
             {itemId = 18396},
             {itemId = 2160, count = 4},
             {itemId = 18413, count = 10},
             {itemId = 18423, count = 2}
          },
          miniatureHouse = true,
          achievement = {'Gnomebane\'s Bane', 'Fall of the Fallen'},
          achievementStorage = Storage.Achievements.FallOfTheFallen
       },
       [3150] = {
          storage = Storage.BigfootBurden.Warzone3Reward,
          bossName = 'Abyssador',
          items = {
             {rand = true, itemId = {18497, 18498, 18499}},
             {itemId = 18408},
             {itemId = 18396},
             {itemId = 2160, count = 5},
             {itemId = 18414, count = 12},
             {itemId = 18423, count = 2}
          },
          achievement = {'Death from Below', 'Diplomatic Immunity'},
          achievementStorage = Storage.Achievements.DiplomaticImmunity
       }
    }

    function onUse(player, item, fromPosition, target, toPosition, isHotkey)
       if item.uid == 3147 then
          if player:getStorageValue(Storage.BigfootBurden.WarzoneStatus) == 4 then
             player:setStorageValue(Storage.BigfootBurden.WarzoneStatus, 5)
             player:addItem(2137, 1)
             player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You have found some golden fruits.')
          else
             player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'The chest is empty.')
          end
       elseif item.uid > 3147 and item.uid < 3151 then
          local reward = rewards[item.uid]
          if not reward then
             return true
          end

          if player:getStorageValue(reward.storage) ~= 1 then
             player:sendTextMessage(MESSAGE_EVENT_ADVANCE, reward.bossName .. ' defends his belongings and will not let you open his chest.')
             return true
          end

          local backpack = player:getSlotItem(CONST_SLOT_BACKPACK)
          if backpack and backpack:getEmptySlots(false) < 5
                or player:getFreeCapacity() < 100 then
             player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Please make sure that you have at least 5 free inventory slots and that you can carry on additional 100 oz.')
             return true
          end

          for i = 1, #reward.items do
             local items = reward.items[i]
             if items.rand then
                if math.random(10) == 1 then
                   player:addItem(items.itemId[math.random(#items.itemId)], 1)
                end
             else
                player:addItem(items.itemId, items.count or 1)
             end
          end

          if reward.miniatureHouse then
             if math.random(25) == 1 then
                player:addItem(16619, 1)
             end
          end

          player:setStorageValue(reward.storage, 0)
          player:addAchievement(reward.achievement[1])

          local cStorage = player:getStorageValue(reward.achievementStorage)
          if cStorage < 50 then
             player:setStorageValue(reward.achievementStorage, math.max(0, cStorage) + 1)
          elseif cStorage == 50 then
             player:addAchievement(reward.achievement[2])
             player:setStorageValue(reward.achievementStorage, 51)
          end
       end
       return true
    end

    Ver perfil de usuario

    Blue

    avatar
    SCRIPTER
    SCRIPTER
    prueba esto (no lo testie)

    Código:
    local rewards = {
       [3148] = {
          storage = Storage.BigfootBurden.Warzone1Reward,
          bossName = 'Deathstrike',
          items = {
             {rand = true, itemId = {18396, 18501, 18502, 18503}},
             {itemId = 18402, count = 750},
             {itemId = 18396},
             {itemId = 2160, count = 3},
             {itemId = 18415, count = 7},
             {itemId = 18423, count = 2}
          },
          achievement = {'Final Strike', 'Death on Strike'},
          achievementStorage = Storage.Achievements.DeathOnStrike
       },
       [3149] = {
          storage = Storage.BigfootBurden.Warzone2Reward,
          bossName = 'Gnomevil',
          items = {
             {rand = true, itemId = {18505, 18506, 18507}},
             {itemId = 18407, count = 750},
             {itemId = 18396},
             {itemId = 2160, count = 4},
             {itemId = 18413, count = 10},
             {itemId = 18423, count = 2}
          },
          miniatureHouse = true,
          achievement = {'Gnomebane\'s Bane', 'Fall of the Fallen'},
          achievementStorage = Storage.Achievements.FallOfTheFallen
       },
       [3150] = {
          storage = Storage.BigfootBurden.Warzone3Reward,
          bossName = 'Abyssador',
          items = {
             {rand = true, itemId = {18497, 18498, 18499}},
             {itemId = 18408},
             {itemId = 18396},
             {itemId = 2160, count = 5},
             {itemId = 18414, count = 12},
             {itemId = 18423, count = 2}
          },
          achievement = {'Death from Below', 'Diplomatic Immunity'},
          achievementStorage = Storage.Achievements.DiplomaticImmunity
       }
    }


    function onUse(player, item, fromPosition, target, toPosition, isHotkey)

    local config = {
    storage = 51222,
    time = 120 --tiempo en segundos si quieres que sean 20 horas solo pon 72000 cada hora tiene 3600 segundos (3600seg)(20hrs) = 72000
    }
       if exhaustion.get(cid, config.storage) == FALSE then

      if item.uid == 3147 then

          setPlayerStorageValue(cid, 13541, daily+1)
          exhaustion.set(cid, storage, time)
          local time = getPlayerStorageValue(cid, 13541)
            time = 3000

           if player:getStorageValue(Storage.BigfootBurden.WarzoneStatus) == 4 then
             player:setStorageValue(Storage.BigfootBurden.WarzoneStatus, 5)
             player:addItem(2137, 1)
             exhaustion.set(cid, config.storage, config.time)
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You have found some golden fruits.')
          else
             player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'The chest is empty.')
          end
       elseif item.uid > 3147 and item.uid < 3151 then
          local reward = rewards[item.uid]
          if not reward then
             return true
          end

          if player:getStorageValue(reward.storage) ~= 1 then
             player:sendTextMessage(MESSAGE_EVENT_ADVANCE, reward.bossName .. ' defends his belongings and will not let you open his chest.')
             return true
          end

          local backpack = player:getSlotItem(CONST_SLOT_BACKPACK)
          if backpack and backpack:getEmptySlots(false) < 5
                or player:getFreeCapacity() < 100 then
             player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Please make sure that you have at least 5 free inventory slots and that you can carry on additional 100 oz.')
             return true
          end

          for i = 1, #reward.items do
             local items = reward.items[i]
             if items.rand then
                if math.random(10) == 1 then
                   player:addItem(items.itemId[math.random(#items.itemId)], 1)
                        exhaustion.set(cid, config.storage, config.time)
             end
             else
                player:addItem(items.itemId, items.count or 1)
             end
          end

          if reward.miniatureHouse then
             if math.random(25) == 1 then
                player:addItem(16619, 1)
             end
          end

          player:setStorageValue(reward.storage, 0)
          player:addAchievement(reward.achievement[1])

          local cStorage = player:getStorageValue(reward.achievementStorage)
          if cStorage < 50 then
             player:setStorageValue(reward.achievementStorage, math.max(0, cStorage) + 1)
          elseif cStorage == 50 then
             player:addAchievement(reward.achievement[2])
                     exhaustion.set(cid, config.storage, config.time)
          player:setStorageValue(reward.achievementStorage, 51)
          end
       end


      return true
    end


     end



    Ver perfil de usuario http://www.google.com

    3Resuelto Modificar Script de rewards chests Warzone el Mar Ene 20, 2015 6:56 am

    newlegacy

    avatar
    Miembro
    Miembro
    Gracias Bro por tu ayuda Very Happy

    Ver perfil de usuario

    Contenido patrocinado


    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.