• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Lua TFS 1.3 if player uses 1000 potions he gain a mount

Icaraii

Well-Known Member
Joined
Jan 5, 2020
Messages
469
Solutions
1
Reaction score
58
Hi,

I would like a script where if the player uses 1000 potions, he will be rewarded with a blue rolling barrel;
If the player uses 5000 it will be rewarded with green rolling barrel;
If the player uses 10000 it will be rewarded with red rolling barrel;

I'll be very grateful if someone can help with that.
 
Solution
X
@Xikini It is not working, can you check if I add it right? line 566
LUA:
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    if type(target) == "userdata" and not target:isPlayer() then
        return false
    end
  
    local potion = potions[item:getId()]
    if potion.level and player:getLevel() < potion.level or potion.vocations and not table.contains(potion.vocations, player:getVocation():getId()) then
        player:say(potion.description, TALKTYPE_MONSTER_SAY)
        return true
    end
  
    -----------------------------------
    -- want it under the above check to ensure that the potion is usable/used before giving the storage.
    local potionStorage = 74695
    local currentStorage =...
Pretty similar to another request recently.

Use storage values.
Add this into your potion script.

LUA:
local potionStorage = 45001
local currentStorage = player:getStorageValue(potionStorage)
currentStorage = currentStorage < 1 and 1 or currentStorage + 1
player:setStorageValue(potionStorage, currentStorage)

if currentStorage == 1000 then
    -- give barrel blue
end
if currentStorage == 5000 then
    -- give barrel green
end
if currentStorage == 10000 then
    -- give barrel red
end
 
@Xikini It is not working, can you check if I add it right? line 566

LUA:
local healthregenerationum = Condition(CONDITION_REGENERATION)
healthregenerationum:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000)
healthregenerationum:setParameter(CONDITION_PARAM_HEALTHGAIN, 20)
healthregenerationum:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)

local healthregenerationdois = Condition(CONDITION_REGENERATION)
healthregenerationdois:setParameter(CONDITION_PARAM_TICKS, 20 * 60 * 1000)
healthregenerationdois:setParameter(CONDITION_PARAM_HEALTHGAIN, 40)
healthregenerationdois:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)

local healthregenerationtres = Condition(CONDITION_REGENERATION)
healthregenerationtres:setParameter(CONDITION_PARAM_TICKS, 30 * 60 * 1000)
healthregenerationtres:setParameter(CONDITION_PARAM_HEALTHGAIN, 80)
healthregenerationtres:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)

local healthregenerationquatro = Condition(CONDITION_REGENERATION)
healthregenerationquatro:setParameter(CONDITION_PARAM_TICKS, 40 * 60 * 1000)
healthregenerationquatro:setParameter(CONDITION_PARAM_HEALTHGAIN, 120)
healthregenerationquatro:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)

local healthregenerationcinco = Condition(CONDITION_REGENERATION)
healthregenerationcinco:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000)
healthregenerationcinco:setParameter(CONDITION_PARAM_HEALTHGAIN, 160)
healthregenerationcinco:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)

--
local increasedamageum = Condition(CONDITION_ATTRIBUTES)
increasedamageum:setParameter(CONDITION_PARAM_TICKS, 20 * 60 * 1000)
increasedamageum:setParameter(CONDITION_PARAM_SKILL_SWORDPERCENT, 150)
increasedamageum:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local increasedamagedois = Condition(CONDITION_ATTRIBUTES)
increasedamagedois:setParameter(CONDITION_PARAM_TICKS, 40 * 60 * 1000)
increasedamagedois:setParameter(CONDITION_PARAM_SKILL_SWORDPERCENT, 180)
increasedamagedois:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local increasedamagetres = Condition(CONDITION_ATTRIBUTES)
increasedamagetres:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000)
increasedamagetres:setParameter(CONDITION_PARAM_SKILL_SWORDPERCENT, 200)
increasedamagetres:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

--
local manaregenerationum = Condition(CONDITION_REGENERATION)
manaregenerationum:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000)
manaregenerationum:setParameter(CONDITION_PARAM_MANAGAIN, 20)
manaregenerationum:setParameter(CONDITION_PARAM_MANATICKS, 2000)

local manaregenerationdois = Condition(CONDITION_REGENERATION)
manaregenerationdois:setParameter(CONDITION_PARAM_TICKS, 20 * 60 * 1000)
manaregenerationdois:setParameter(CONDITION_PARAM_MANAGAIN, 40)
manaregenerationdois:setParameter(CONDITION_PARAM_MANATICKS, 2000)

local manaregenerationtres = Condition(CONDITION_REGENERATION)
manaregenerationtres:setParameter(CONDITION_PARAM_TICKS, 30 * 60 * 1000)
manaregenerationtres:setParameter(CONDITION_PARAM_MANAGAIN, 80)
manaregenerationtres:setParameter(CONDITION_PARAM_MANATICKS, 2000)

local manaregenerationquatro = Condition(CONDITION_REGENERATION)
manaregenerationquatro:setParameter(CONDITION_PARAM_TICKS, 40 * 60 * 1000)
manaregenerationquatro:setParameter(CONDITION_PARAM_MANAGAIN, 120)
manaregenerationquatro:setParameter(CONDITION_PARAM_MANATICKS, 2000)

local manaregenerationcinco = Condition(CONDITION_REGENERATION)
manaregenerationcinco:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000)
manaregenerationcinco:setParameter(CONDITION_PARAM_MANAGAIN, 160)
manaregenerationcinco:setParameter(CONDITION_PARAM_MANATICKS, 2000)

--
local bothregenerationum = Condition(CONDITION_REGENERATION)
bothregenerationum:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000)
bothregenerationum:setParameter(CONDITION_PARAM_HEALTHGAIN, 10)
bothregenerationum:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)
bothregenerationum:setParameter(CONDITION_PARAM_MANAGAIN, 10)
bothregenerationum:setParameter(CONDITION_PARAM_MANATICKS, 2000)

local bothregenerationdois = Condition(CONDITION_REGENERATION)
bothregenerationdois:setParameter(CONDITION_PARAM_TICKS, 20 * 60 * 1000)
bothregenerationdois:setParameter(CONDITION_PARAM_HEALTHGAIN, 30)
bothregenerationdois:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)
bothregenerationdois:setParameter(CONDITION_PARAM_MANAGAIN, 30)
bothregenerationdois:setParameter(CONDITION_PARAM_MANATICKS, 2000)

local bothregenerationtres = Condition(CONDITION_REGENERATION)
bothregenerationtres:setParameter(CONDITION_PARAM_TICKS, 30 * 60 * 1000)
bothregenerationtres:setParameter(CONDITION_PARAM_HEALTHGAIN, 50)
bothregenerationtres:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)
bothregenerationtres:setParameter(CONDITION_PARAM_MANAGAIN, 50)
bothregenerationtres:setParameter(CONDITION_PARAM_MANATICKS, 2000)

local bothregenerationquatro = Condition(CONDITION_REGENERATION)
bothregenerationquatro:setParameter(CONDITION_PARAM_TICKS, 40 * 60 * 1000)
bothregenerationquatro:setParameter(CONDITION_PARAM_HEALTHGAIN, 70)
bothregenerationquatro:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)
bothregenerationquatro:setParameter(CONDITION_PARAM_MANAGAIN, 70)
bothregenerationquatro:setParameter(CONDITION_PARAM_MANATICKS, 2000)

local bothregenerationcinco = Condition(CONDITION_REGENERATION)
bothregenerationcinco:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000)
bothregenerationcinco:setParameter(CONDITION_PARAM_HEALTHGAIN, 100)
bothregenerationcinco:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)
bothregenerationcinco:setParameter(CONDITION_PARAM_MANAGAIN, 100)
bothregenerationcinco:setParameter(CONDITION_PARAM_MANATICKS, 2000)

--
local increasemanaum = Condition(CONDITION_ATTRIBUTES)
increasemanaum:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000)
increasemanaum:setParameter(CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, 120)
increasemanaum:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local increasemanadois = Condition(CONDITION_ATTRIBUTES)
increasemanadois:setParameter(CONDITION_PARAM_TICKS, 20 * 60 * 1000)
increasemanadois:setParameter(CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, 140)
increasemanadois:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local increasemanatres = Condition(CONDITION_ATTRIBUTES)
increasemanatres:setParameter(CONDITION_PARAM_TICKS, 30 * 60 * 1000)
increasemanatres:setParameter(CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, 160)
increasemanatres:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local increasemanaquatro = Condition(CONDITION_ATTRIBUTES)
increasemanaquatro:setParameter(CONDITION_PARAM_TICKS, 40 * 60 * 1000)
increasemanaquatro:setParameter(CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, 180)
increasemanaquatro:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local increasemanacinco = Condition(CONDITION_ATTRIBUTES)
increasemanacinco:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000)
increasemanacinco:setParameter(CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, 200)
increasemanacinco:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

--
local increasehealthum = Condition(CONDITION_ATTRIBUTES)
increasehealthum:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000)
increasehealthum:setParameter(CONDITION_PARAM_STAT_MAXHEALTHPOINTSPERCENT, 120)
increasehealthum:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local increasehealthdois = Condition(CONDITION_ATTRIBUTES)
increasehealthdois:setParameter(CONDITION_PARAM_TICKS, 20 * 60 * 1000)
increasehealthdois:setParameter(CONDITION_PARAM_STAT_MAXHEALTHPOINTSPERCENT, 140)
increasehealthdois:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local increasehealthtres = Condition(CONDITION_ATTRIBUTES)
increasehealthtres:setParameter(CONDITION_PARAM_TICKS, 30 * 60 * 1000)
increasehealthtres:setParameter(CONDITION_PARAM_STAT_MAXHEALTHPOINTSPERCENT, 160)
increasehealthtres:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local increasehealthquatro = Condition(CONDITION_ATTRIBUTES)
increasehealthquatro:setParameter(CONDITION_PARAM_TICKS, 40 * 60 * 1000)
increasehealthquatro:setParameter(CONDITION_PARAM_STAT_MAXHEALTHPOINTSPERCENT, 180)
increasehealthquatro:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local increasehealthcinco = Condition(CONDITION_ATTRIBUTES)
increasehealthcinco:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000)
increasehealthcinco:setParameter(CONDITION_PARAM_STAT_MAXHEALTHPOINTSPERCENT, 200)
increasehealthcinco:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

--
local increasebothum = Condition(CONDITION_ATTRIBUTES)
increasebothum:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000)
increasebothum:setParameter(CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, 120)
increasebothum:setParameter(CONDITION_PARAM_STAT_MAXHEALTHPOINTSPERCENT, 120)
increasebothum:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local increasebothdois = Condition(CONDITION_ATTRIBUTES)
increasebothdois:setParameter(CONDITION_PARAM_TICKS, 20 * 60 * 1000)
increasebothdois:setParameter(CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, 140)
increasebothdois:setParameter(CONDITION_PARAM_STAT_MAXHEALTHPOINTSPERCENT, 140)
increasebothdois:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local increasebothtres = Condition(CONDITION_ATTRIBUTES)
increasebothtres:setParameter(CONDITION_PARAM_TICKS, 40 * 60 * 1000)
increasebothtres:setParameter(CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, 160)
increasebothtres:setParameter(CONDITION_PARAM_STAT_MAXHEALTHPOINTSPERCENT, 160)
increasebothtres:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local increasebothquatro = Condition(CONDITION_ATTRIBUTES)
increasebothquatro:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000)
increasebothquatro:setParameter(CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, 180)
increasebothquatro:setParameter(CONDITION_PARAM_STAT_MAXHEALTHPOINTSPERCENT, 180)
increasebothquatro:setParameter(CONDITION_PARAM_BUFF_SPELL, true)








local strengthshot = Condition(CONDITION_ATTRIBUTES)
strengthshot:setParameter(CONDITION_PARAM_TICKS, 90 * 60 * 1000)
strengthshot:setParameter(CONDITION_PARAM_SKILL_SWORD, 5)
strengthshot:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local greatstrengthpotion = Condition(CONDITION_ATTRIBUTES)
greatstrengthpotion:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000)
greatstrengthpotion:setParameter(CONDITION_PARAM_SKILL_SWORD, 7)
greatstrengthpotion:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local hugestrengthpotion = Condition(CONDITION_ATTRIBUTES)
hugestrengthpotion:setParameter(CONDITION_PARAM_TICKS, 30 * 60 * 1000)
hugestrengthpotion:setParameter(CONDITION_PARAM_SKILL_SWORD, 10)
hugestrengthpotion:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local hugedefencepotion = Condition(CONDITION_ATTRIBUTES)
hugedefencepotion:setParameter(CONDITION_PARAM_TICKS, 30 * 60 * 1000)
hugedefencepotion:setParameter(CONDITION_PARAM_SKILL_SHIELD, 10)
hugedefencepotion:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local lesserdefencepotion = Condition(CONDITION_ATTRIBUTES)
lesserdefencepotion:setParameter(CONDITION_PARAM_TICKS, 120 * 60 * 1000)
lesserdefencepotion:setParameter(CONDITION_PARAM_SKILL_SHIELD, 2)
lesserdefencepotion:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local defenceshot = Condition(CONDITION_ATTRIBUTES)
defenceshot:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000)
defenceshot:setParameter(CONDITION_PARAM_SKILL_SHIELD, 7)
defenceshot:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local defencepotion = Condition(CONDITION_ATTRIBUTES)
defencepotion:setParameter(CONDITION_PARAM_TICKS, 100 * 60 * 1000)
defencepotion:setParameter(CONDITION_PARAM_SKILL_SHIELD, 4)
defencepotion:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local lesserunderwaterbreathingpotion = Condition(CONDITION_HASTE)
lesserunderwaterbreathingpotion:setParameter(CONDITION_PARAM_TICKS, 5 * 60 * 1000)
lesserunderwaterbreathingpotion:setFormula(0.1, -2, 0.1, -2)

local greatspeedpotion = Condition(CONDITION_HASTE)
greatspeedpotion:setParameter(CONDITION_PARAM_TICKS, 40 * 60 * 1000)
greatspeedpotion:setFormula(0.4, -50, 0.4, -50)

local hugespeedpotion = Condition(CONDITION_HASTE)
hugespeedpotion:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000)
hugespeedpotion:setFormula(0.5, -50, 0.5, -50)

local flaskofspeed = Condition(CONDITION_HASTE)
flaskofspeed:setParameter(CONDITION_PARAM_TICKS, 20 * 60 * 1000)
flaskofspeed:setFormula(0.3, -25, 0.3, -25)

local speedpotion = Condition(CONDITION_HASTE)
speedpotion:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000)
speedpotion:setFormula(0.2, -10, 0.2, -10)

local shieldperctum = Condition(CONDITION_ATTRIBUTES)
shieldperctum:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000)
shieldperctum:setParameter(CONDITION_PARAM_SKILL_SHIELDPERCENT, 120)
shieldperctum:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local shieldperctdois = Condition(CONDITION_ATTRIBUTES)
shieldperctdois:setParameter(CONDITION_PARAM_TICKS, 15 * 60 * 1000)
shieldperctdois:setParameter(CONDITION_PARAM_SKILL_SHIELDPERCENT, 150)
shieldperctdois:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local shieldpercttres = Condition(CONDITION_ATTRIBUTES)
shieldpercttres:setParameter(CONDITION_PARAM_TICKS, 20 * 60 * 1000)
shieldpercttres:setParameter(CONDITION_PARAM_SKILL_SHIELDPERCENT, 200)
shieldpercttres:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local shieldperctquatro = Condition(CONDITION_ATTRIBUTES)
shieldperctquatro:setParameter(CONDITION_PARAM_TICKS, 40 * 60 * 1000)
shieldperctquatro:setParameter(CONDITION_PARAM_SKILL_SHIELDPERCENT, 250)
shieldperctquatro:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local shieldperctcinco = Condition(CONDITION_ATTRIBUTES)
shieldperctcinco:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000)
shieldperctcinco:setParameter(CONDITION_PARAM_SKILL_SHIELDPERCENT, 300)
shieldperctcinco:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local magicum = Condition(CONDITION_ATTRIBUTES)
magicum:setParameter(CONDITION_PARAM_TICKS, 15 * 60 * 1000)
magicum:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 1)
magicum:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local magicdois = Condition(CONDITION_ATTRIBUTES)
magicdois:setParameter(CONDITION_PARAM_TICKS, 20 * 60 * 1000)
magicdois:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 3)
magicdois:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local magictres = Condition(CONDITION_ATTRIBUTES)
magictres:setParameter(CONDITION_PARAM_TICKS, 25 * 60 * 1000)
magictres:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 5)
magictres:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local magicquatro = Condition(CONDITION_ATTRIBUTES)
magicquatro:setParameter(CONDITION_PARAM_TICKS, 30 * 60 * 1000)
magicquatro:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 7)
magicquatro:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local magiccinco = Condition(CONDITION_ATTRIBUTES)
magiccinco:setParameter(CONDITION_PARAM_TICKS, 40 * 60 * 1000)
magiccinco:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 10)
magiccinco:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local magicseis = Condition(CONDITION_ATTRIBUTES)
magicseis:setParameter(CONDITION_PARAM_TICKS, 50 * 60 * 1000)
magicseis:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 15)
magicseis:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local magicsete = Condition(CONDITION_ATTRIBUTES)
magicsete:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000)
magicsete:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 20)
magicsete:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local manashieldum = Condition(CONDITION_MANASHIELD)
manashieldum:setParameter(CONDITION_PARAM_TICKS, 5 * 60 * 1000)

local manashielddois = Condition(CONDITION_MANASHIELD)
manashielddois:setParameter(CONDITION_PARAM_TICKS, 15 * 60 * 1000)

local manashieldtres = Condition(CONDITION_MANASHIELD)
manashieldtres:setParameter(CONDITION_PARAM_TICKS, 30 * 60 * 1000)

local manashieldquatro = Condition(CONDITION_MANASHIELD)
manashieldquatro:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000)

local healthregenum = Condition(CONDITION_REGENERATION)
healthregenum:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000)
healthregenum:setParameter(CONDITION_PARAM_HEALTHGAIN, 20)
healthregenum:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)

local healthregendois = Condition(CONDITION_REGENERATION)
healthregendois:setParameter(CONDITION_PARAM_TICKS, 20 * 60 * 1000)
healthregendois:setParameter(CONDITION_PARAM_HEALTHGAIN, 40)
healthregendois:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)

local healthregentres = Condition(CONDITION_REGENERATION)
healthregentres:setParameter(CONDITION_PARAM_TICKS, 30 * 60 * 1000)
healthregentres:setParameter(CONDITION_PARAM_HEALTHGAIN, 60)
healthregentres:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)

local healthregenquatro = Condition(CONDITION_REGENERATION)
healthregenquatro:setParameter(CONDITION_PARAM_TICKS, 40 * 60 * 1000)
healthregenquatro:setParameter(CONDITION_PARAM_HEALTHGAIN, 80)
healthregenquatro:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)

local healthregencinco = Condition(CONDITION_REGENERATION)
healthregencinco:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000)
healthregencinco:setParameter(CONDITION_PARAM_HEALTHGAIN, 100)
healthregencinco:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)

local manaregenum = Condition(CONDITION_REGENERATION)
manaregenum:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000)
manaregenum:setParameter(CONDITION_PARAM_MANAGAIN, 20)
manaregenum:setParameter(CONDITION_PARAM_MANATICKS, 2000)

local manaregenprimeiro = Condition(CONDITION_REGENERATION)
manaregenprimeiro:setParameter(CONDITION_PARAM_TICKS, 5 * 60 * 1000)
manaregenprimeiro:setParameter(CONDITION_PARAM_MANAGAIN, 10)
manaregenprimeiro:setParameter(CONDITION_PARAM_MANATICKS, 2000)

local manaregendois = Condition(CONDITION_REGENERATION)
manaregendois:setParameter(CONDITION_PARAM_TICKS, 20 * 60 * 1000)
manaregendois:setParameter(CONDITION_PARAM_MANAGAIN, 50)
manaregendois:setParameter(CONDITION_PARAM_MANATICKS, 2000)

local manaregentres = Condition(CONDITION_REGENERATION)
manaregentres:setParameter(CONDITION_PARAM_TICKS, 30 * 60 * 1000)
manaregentres:setParameter(CONDITION_PARAM_MANAGAIN, 100)
manaregentres:setParameter(CONDITION_PARAM_MANATICKS, 2000)

local manaregenquatro = Condition(CONDITION_REGENERATION)
manaregenquatro:setParameter(CONDITION_PARAM_TICKS, 40 * 60 * 1000)
manaregenquatro:setParameter(CONDITION_PARAM_MANAGAIN, 150)
manaregenquatro:setParameter(CONDITION_PARAM_MANATICKS, 2000)

local manaregencinco = Condition(CONDITION_REGENERATION)
manaregencinco:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000)
manaregencinco:setParameter(CONDITION_PARAM_MANAGAIN, 200)
manaregencinco:setParameter(CONDITION_PARAM_MANATICKS, 2000)

local bothregenum = Condition(CONDITION_REGENERATION)
bothregenum:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000)
bothregenum:setParameter(CONDITION_PARAM_HEALTHGAIN, 20)
bothregenum:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)
bothregenum:setParameter(CONDITION_PARAM_MANAGAIN, 20)
bothregenum:setParameter(CONDITION_PARAM_MANATICKS, 2000)

local bothregendois = Condition(CONDITION_REGENERATION)
bothregendois:setParameter(CONDITION_PARAM_TICKS, 20 * 60 * 1000)
bothregendois:setParameter(CONDITION_PARAM_HEALTHGAIN, 40)
bothregendois:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)
bothregendois:setParameter(CONDITION_PARAM_MANAGAIN, 40)
bothregendois:setParameter(CONDITION_PARAM_MANATICKS, 2000)

local bothregentres = Condition(CONDITION_REGENERATION)
bothregentres:setParameter(CONDITION_PARAM_TICKS, 30 * 60 * 1000)
bothregentres:setParameter(CONDITION_PARAM_HEALTHGAIN, 60)
bothregentres:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)
bothregentres:setParameter(CONDITION_PARAM_MANAGAIN, 60)
bothregentres:setParameter(CONDITION_PARAM_MANATICKS, 2000)

local bothregenquatro = Condition(CONDITION_REGENERATION)
bothregenquatro:setParameter(CONDITION_PARAM_TICKS, 40 * 60 * 1000)
bothregenquatro:setParameter(CONDITION_PARAM_HEALTHGAIN, 80)
bothregenquatro:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)
bothregenquatro:setParameter(CONDITION_PARAM_MANAGAIN, 80)
bothregenquatro:setParameter(CONDITION_PARAM_MANATICKS, 2000)

local bothregencinco = Condition(CONDITION_REGENERATION)
bothregencinco:setParameter(CONDITION_PARAM_TICKS, 60 * 60 * 1000)
bothregencinco:setParameter(CONDITION_PARAM_HEALTHGAIN, 100)
bothregencinco:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)
bothregencinco:setParameter(CONDITION_PARAM_MANAGAIN, 100)
bothregencinco:setParameter(CONDITION_PARAM_MANATICKS, 2000)

local polvoum = Condition(CONDITION_REGENERATION)
polvoum:setParameter(CONDITION_PARAM_TICKS, 25 * 60 * 1000)
polvoum:setParameter(CONDITION_PARAM_HEALTHGAIN, 50)
polvoum:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)
polvoum:setParameter(CONDITION_PARAM_MANAGAIN, 100)
polvoum:setParameter(CONDITION_PARAM_MANATICKS, 2000)

local polvodois = Condition(CONDITION_REGENERATION)
polvodois:setParameter(CONDITION_PARAM_TICKS, 30 * 60 * 1000)
polvodois:setParameter(CONDITION_PARAM_HEALTHGAIN, 75)
polvodois:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)
polvodois:setParameter(CONDITION_PARAM_MANAGAIN, 150)
polvodois:setParameter(CONDITION_PARAM_MANATICKS, 2000)


local potions = {
    [27942] = {health = {600, 600}},
    [27936] = {health = {1000, 1000}},
    [27073] = {health = {50, 50}},
    [27074] = {health = {100, 100}},
    [27064] = {health = {1500, 1500}, antidote = true},
    [27069] = {health = {400, 400}},
    [27066] = {health = {1200, 1200}},
    [27047] = {health = {250, 250}},
    [27045] = {health = {800, 800}},
    [27938] = {mana = {1000, 1000}},
    [27071] = {mana = {250, 250}},
    [27039] = {mana = {700, 700}},
    [27068] = {mana = {80, 80}},
    [27049] = {health = {300, 300}, mana = {300, 300}},
    [27050] = {health = {100, 100}, mana = {100, 100}},
    [27935] = {health = {650, 650}, mana = {650, 650}},
    [27941] = {health = {500, 500}, mana = {500, 500}},
    [27065] = {health = {800, 800}, mana = {1500, 1500}, antidote = true},
    [27067] = {health = {800, 800}, mana = {800, 800}},
    [27077] = {antidote = true},
    

    
}

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
local potionStorage = 74695
local currentStorage = player:getStorageValue(potionStorage)
currentStorage = currentStorage < 1 and 1 or currentStorage + 1
player:setStorageValue(potionStorage, currentStorage)

if currentStorage == 1 then
    player:addMount(155)
end
if currentStorage == 5 then
    player:addMount(156)
end
if currentStorage == 10 then
    player:addMount(157)
end

    if type(target) == "userdata" and not target:isPlayer() then
        return false
    end

    local potion = potions[item:getId()]
    if potion.level and player:getLevel() < potion.level or potion.vocations and not table.contains(potion.vocations, player:getVocation():getId()) then
        player:say(potion.description, TALKTYPE_MONSTER_SAY)
        return true
    end

    if potion.condition then
        player:addCondition(potion.condition)
        player:say(potion.text, TALKTYPE_MONSTER_SAY)
        player:getPosition():sendMagicEffect(potion.effect)
    elseif potion.transform then
        item:transform(potion.transform[math.random(#potion.transform)])
        item:getPosition():sendMagicEffect(potion.effect)
        return true
    else
        if potion.health then
            doTargetCombat(0, target, COMBAT_HEALING, potion.health[1], potion.health[2])
        end

        if potion.mana then
            doTargetCombat(0, target, COMBAT_MANADRAIN, potion.mana[1], potion.mana[2])
        end

        if potion.antidote then
            target:removeCondition(CONDITION_POISON)
            target:removeCondition(CONDITION_ENERGY)
            target:removeCondition(CONDITION_CURSED)
            target:removeCondition(CONDITION_BLEEDING)
            target:removeCondition(CONDITION_FIRE)
            target:removeCondition(CONDITION_DAZZLED)
        end

        player:addAchievementProgress("Potion Addict", 100000)
        player:addItem(potion.flask)
        target:say("Humm...", TALKTYPE_MONSTER_SAY)
        target:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
    end
    
    if not configManager.getBoolean(configKeys.REMOVE_POTION_CHARGES) then
        return true
    end

    item:remove(1)
    return true
end
 
@Xikini It is not working, can you check if I add it right? line 566
LUA:
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    if type(target) == "userdata" and not target:isPlayer() then
        return false
    end
  
    local potion = potions[item:getId()]
    if potion.level and player:getLevel() < potion.level or potion.vocations and not table.contains(potion.vocations, player:getVocation():getId()) then
        player:say(potion.description, TALKTYPE_MONSTER_SAY)
        return true
    end
  
    -----------------------------------
    -- want it under the above check to ensure that the potion is usable/used before giving the storage.
    local potionStorage = 74695
    local currentStorage = player:getStorageValue(potionStorage)
    currentStorage = currentStorage < 1 and 1 or currentStorage + 1
    player:setStorageValue(potionStorage, currentStorage)
  
    -- adding a print, so you can check the current storage
    print("currentStorage = " .. currentStorage)
    if currentStorage == 1 then
        print("added mount 155 to player.")
        player:addMount(155)
    end
    if currentStorage == 5 then
        print("added mount 156 to player.")
        player:addMount(156)
    end
    if currentStorage == 10 then
        print("added mount 157 to player.")
        player:addMount(157)
    end
    -----------------------
  
    if potion.condition then
        player:addCondition(potion.condition)
        player:say(potion.text, TALKTYPE_MONSTER_SAY)
        player:getPosition():sendMagicEffect(potion.effect)
    elseif potion.transform then
        item:transform(potion.transform[math.random(#potion.transform)])
        item:getPosition():sendMagicEffect(potion.effect)
        return true
    else
        if potion.health then
            doTargetCombat(0, target, COMBAT_HEALING, potion.health[1], potion.health[2])
        end
  
        if potion.mana then
            doTargetCombat(0, target, COMBAT_MANADRAIN, potion.mana[1], potion.mana[2])
        end
  
        if potion.antidote then
            target:removeCondition(CONDITION_POISON)
            target:removeCondition(CONDITION_ENERGY)
            target:removeCondition(CONDITION_CURSED)
            target:removeCondition(CONDITION_BLEEDING)
            target:removeCondition(CONDITION_FIRE)
            target:removeCondition(CONDITION_DAZZLED)
        end
  
        player:addAchievementProgress("Potion Addict", 100000)
        player:addItem(potion.flask)
        target:say("Humm...", TALKTYPE_MONSTER_SAY)
        target:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
    end
  
    if not configManager.getBoolean(configKeys.REMOVE_POTION_CHARGES) then
        return true
    end
  
    item:remove(1)
    return true
end
 
Solution
LUA:
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    if type(target) == "userdata" and not target:isPlayer() then
        return false
    end
 
    local potion = potions[item:getId()]
    if potion.level and player:getLevel() < potion.level or potion.vocations and not table.contains(potion.vocations, player:getVocation():getId()) then
        player:say(potion.description, TALKTYPE_MONSTER_SAY)
        return true
    end
 
    -----------------------------------
    -- want it under the above check to ensure that the potion is usable/used before giving the storage.
    local potionStorage = 74695
    local currentStorage = player:getStorageValue(potionStorage)
    currentStorage = currentStorage < 1 and 1 or currentStorage + 1
    player:setStorageValue(potionStorage, currentStorage)
 
    -- adding a print, so you can check the current storage
    print("currentStorage = " .. currentStorage)
    if currentStorage == 1 then
        print("added mount 155 to player.")
        player:addMount(155)
    end
    if currentStorage == 5 then
        print("added mount 156 to player.")
        player:addMount(156)
    end
    if currentStorage == 10 then
        print("added mount 157 to player.")
        player:addMount(157)
    end
    -----------------------
 
    if potion.condition then
        player:addCondition(potion.condition)
        player:say(potion.text, TALKTYPE_MONSTER_SAY)
        player:getPosition():sendMagicEffect(potion.effect)
    elseif potion.transform then
        item:transform(potion.transform[math.random(#potion.transform)])
        item:getPosition():sendMagicEffect(potion.effect)
        return true
    else
        if potion.health then
            doTargetCombat(0, target, COMBAT_HEALING, potion.health[1], potion.health[2])
        end
 
        if potion.mana then
            doTargetCombat(0, target, COMBAT_MANADRAIN, potion.mana[1], potion.mana[2])
        end
 
        if potion.antidote then
            target:removeCondition(CONDITION_POISON)
            target:removeCondition(CONDITION_ENERGY)
            target:removeCondition(CONDITION_CURSED)
            target:removeCondition(CONDITION_BLEEDING)
            target:removeCondition(CONDITION_FIRE)
            target:removeCondition(CONDITION_DAZZLED)
        end
 
        player:addAchievementProgress("Potion Addict", 100000)
        player:addItem(potion.flask)
        target:say("Humm...", TALKTYPE_MONSTER_SAY)
        target:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
    end
 
    if not configManager.getBoolean(configKeys.REMOVE_POTION_CHARGES) then
        return true
    end
 
    item:remove(1)
    return true
end
It also works, thanks
 
Back
Top