• 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!

TFS 1.X+ Lifefluid and POT nekiro version 7.72 1.5

bpm91

Intermediate OT User
Joined
May 23, 2019
Messages
879
Solutions
7
Reaction score
122
Location
Brazil
YouTube
caruniawikibr
Could anyone tell me, how do I make manafluid-lifefluid disappear instead of turning into a vial? and the trap pot, does anyone know how to make the liquid come out of it when using it?
in nekiro tfs 1.5 version 7.72

1650161623385.png
 
no work :/

Lua:
local drunk = Condition(CONDITION_DRUNK)
drunk:setParameter(CONDITION_PARAM_TICKS, 60000)

local poison = Condition(CONDITION_POISON)
poison:setParameter(CONDITION_PARAM_DELAYED, true)
poison:setParameter(CONDITION_PARAM_MINVALUE, -50)
poison:setParameter(CONDITION_PARAM_MAXVALUE, -120)
poison:setParameter(CONDITION_PARAM_STARTVALUE, -5)
poison:setParameter(CONDITION_PARAM_TICKINTERVAL, 4000)
poison:setParameter(CONDITION_PARAM_FORCEUPDATE, true)

local fluidMessage = {
    [FLUID_BEER] = "Aah...",
    [FLUID_SLIME] = "Urgh!",
    [FLUID_LEMONADE] = "Mmmh.",
    [FLUID_MANA] = "Aaaah...",
    [FLUID_LIFE] = "Aaaah...",
    [FLUID_OIL] = "Urgh!",
    [FLUID_URINE] = "Urgh!",
    [FLUID_WINE] = "Aah...",
    [FLUID_MUD] = "Urgh!",
    [FLUID_RUM] = "Aah...",
    [FLUID_MEAD] = "Aaaah..."
}

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    local targetItemType = ItemType(target.itemid)
    if targetItemType and targetItemType:isFluidContainer() then
        if target.type == FLUID_NONE and item.type ~= FLUID_NONE then
            target:transform(target:getId(), item.type)
            item:transform(item:getId(), FLUID_NONE)
            return true
        elseif target.type ~= FLUID_NONE and item.type == FLUID_NONE then
            item:transform(item:getId(), target.type)
            target:transform(target:getId(), FLUID_NONE)
            return true
        end
    end

    if target.itemid == 1 then
        if item.type == FLUID_NONE then
            player:sendTextMessage(MESSAGE_STATUS_SMALL, "It is empty.")
        elseif target.uid == player.uid then
            if table.contains({FLUID_BEER, FLUID_WINE, FLUID_MEAD}, item.type) then
                player:addCondition(drunk)
            elseif item.type == FLUID_SLIME then
                player:addCondition(poison)
            elseif item.type == FLUID_MANA then
                player:addMana(math.random(50, 150))
                fromPosition:sendMagicEffect(CONST_ME_MAGIC_BLUE)
            elseif item.type == FLUID_LIFE then
                player:addHealth(60)
                fromPosition:sendMagicEffect(CONST_ME_MAGIC_BLUE)
            end
            player:say(fluidMessage[item.type] or "Gulp.", TALKTYPE_MONSTER_SAY)
            item:transform(item:getId(), FLUID_NONE)
        else
            Game.createItem(2016, item.type, toPosition):decay()
            item:transform(item:getId(), FLUID_NONE)
        end
    else
        local fluidSource = targetItemType and targetItemType:getFluidSource() or FLUID_NONE
        if fluidSource ~= FLUID_NONE then
            item:transform(item:getId(), fluidSource)
        elseif table.contains(distillery, target.itemid) then
            local tmp = distillery[target.itemid]
            if tmp then
                item:transform(item:getId(), FLUID_NONE)
            else
                player:sendCancelMessage("You have to process the bunch into the distillery to get rum.")
            end
        elseif item.type == FLUID_NONE then
            player:sendTextMessage(MESSAGE_STATUS_SMALL, "It is empty.")
        else
            if toPosition.x == CONTAINER_POSITION then
                toPosition = player:getPosition()
            end
            Game.createItem(2016, item.type, toPosition):decay()
            item:transform(item:getId(), FLUID_NONE)
        end
    end
    return true
end
 
Last edited:
no work :/

Lua:
local drunk = Condition(CONDITION_DRUNK)
drunk:setParameter(CONDITION_PARAM_TICKS, 60000)

local poison = Condition(CONDITION_POISON)
poison:setParameter(CONDITION_PARAM_DELAYED, true)
poison:setParameter(CONDITION_PARAM_MINVALUE, -50)
poison:setParameter(CONDITION_PARAM_MAXVALUE, -120)
poison:setParameter(CONDITION_PARAM_STARTVALUE, -5)
poison:setParameter(CONDITION_PARAM_TICKINTERVAL, 4000)
poison:setParameter(CONDITION_PARAM_FORCEUPDATE, true)

local fluidMessage = {
    [FLUID_BEER] = "Aah...",
    [FLUID_SLIME] = "Urgh!",
    [FLUID_LEMONADE] = "Mmmh.",
    [FLUID_MANA] = "Aaaah...",
    [FLUID_LIFE] = "Aaaah...",
    [FLUID_OIL] = "Urgh!",
    [FLUID_URINE] = "Urgh!",
    [FLUID_WINE] = "Aah...",
    [FLUID_MUD] = "Urgh!",
    [FLUID_RUM] = "Aah...",
    [FLUID_MEAD] = "Aaaah..."
}

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    local targetItemType = ItemType(target.itemid)
    if targetItemType and targetItemType:isFluidContainer() then
        if target.type == FLUID_NONE and item.type ~= FLUID_NONE then
            target:transform(target:getId(), item.type)
            item:transform(item:getId(), FLUID_NONE)
            return true
        elseif target.type ~= FLUID_NONE and item.type == FLUID_NONE then
            item:transform(item:getId(), target.type)
            target:transform(target:getId(), FLUID_NONE)
            return true
        end
    end

    if target.itemid == 1 then
        if item.type == FLUID_NONE then
            player:sendTextMessage(MESSAGE_STATUS_SMALL, "It is empty.")
        elseif target.uid == player.uid then
            if table.contains({FLUID_BEER, FLUID_WINE, FLUID_MEAD}, item.type) then
                player:addCondition(drunk)
            elseif item.type == FLUID_SLIME then
                player:addCondition(poison)
            elseif item.type == FLUID_MANA then
                player:addMana(math.random(50, 150))
                fromPosition:sendMagicEffect(CONST_ME_MAGIC_BLUE)
            elseif item.type == FLUID_LIFE then
                player:addHealth(60)
                fromPosition:sendMagicEffect(CONST_ME_MAGIC_BLUE)
            end
            player:say(fluidMessage[item.type] or "Gulp.", TALKTYPE_MONSTER_SAY)
            item:transform(item:getId(), FLUID_NONE)
        else
            Game.createItem(2016, item.type, toPosition):decay()
            item:transform(item:getId(), FLUID_NONE)
        end
    else
        local fluidSource = targetItemType and targetItemType:getFluidSource() or FLUID_NONE
        if fluidSource ~= FLUID_NONE then
            item:transform(item:getId(), fluidSource)
        elseif table.contains(distillery, target.itemid) then
            local tmp = distillery[target.itemid]
            if tmp then
                item:transform(item:getId(), FLUID_NONE)
            else
                player:sendCancelMessage("You have to process the bunch into the distillery to get rum.")
            end
        elseif item.type == FLUID_NONE then
            player:sendTextMessage(MESSAGE_STATUS_SMALL, "It is empty.")
        else
            if toPosition.x == CONTAINER_POSITION then
                toPosition = player:getPosition()
            end
            Game.createItem(2016, item.type, toPosition):decay()
            item:transform(item:getId(), FLUID_NONE)
        end
    end
    return true
end
Are you sure that you changed the file? Because the file that you replied on last are not modified.
I am almost sure that you should make the jakub742's modification on line 56 of your file
I am not able to test it now, but I can do it later
 
Last edited:
it worked, I think I was on the wrong line, could you tell me how I can make the water POT can throw liquid out and in? this gray POT we used to trap in the old days?1651850004979.png
 
it worked, I think I was on the wrong line, could you tell me how I can make the water POT can throw liquid out and in? this gray POT we used to trap in the old days?View attachment 67596
I will try to check later to be sure. But I think you can check it by yourself:
  • go to actions.xml, check if there is the pot ID and a script related to it. If there is not, add it. I think it is the same script as vials (other/fluids.lua)
  • if everthing is ok, check if the pot ID is correct on items.xml, actions.xml and on related scripts
 
i no have action to id 2562 :/
I realized now that I can't use this fluids script for mana fluid and life fluid, because all items that are containers are disappearing along with them, how can I make a script just for mana and life?
 
Last edited:
i no have action to id 2562 :/
Did you add it?
I realized now that I can't use this fluids script for mana fluid and life fluid, because all items that are containers are disappearing along with them, how can I make a script just for mana and life?
Yes, you can rename your modified fluids.lua file (ex: mana_fluids.lua), then go to actions.xml and on vials ID o change the script name to the new one.
I am not sure, it is something like this on actions.xml

XML:
    <action itemid="1386" script="other/teleport.lua" />
    <action itemid="3678" script="other/teleport.lua" />
    <action fromid="2376" toid="2404" script="other/destroy.lua" />
    <action fromid="2406" toid="2419" script="other/destroy.lua" />
    <action fromid="2421" toid="2453" script="other/destroy.lua" />
    <action fromid="2005" toid="2009" script="other/mana_fluids.lua" />
    <action fromid="2011" toid="2015" script="other/fluids.lua" />
    <action itemid="2562" script="other/fluids.lua" /> 
    <action itemid="2023" script="other/fluids.lua" />
    <action itemid="1775" script="other/fluids.lua" />
    <action fromid="2031" toid="2034" script="other/fluids.lua" />
    <action fromid="2574" toid="2577" script="other/fluids.lua" />
    <action fromid="5792" toid="5797" script="other/die.lua" />
    <action itemid="2692" script="other/createbread.lua" />
    <action itemid="2694" script="other/createbread.lua" />
    <action fromid="5303" toid="5304" script="other/windows.lua" />
This way only vials (I think it is ID 2005 to 2009) are going to use mana_fluids.lua and the itemid="2562" are going to use other/fluids.lua as the other containers.
Be sure to revert back your editted fluids.lua to changes take effect
 
I think I'm going to need a new script for the fluids, because for example, in the old version, the fluids worked like this, you could use them on the floor if they fell,
you couldn't use it on another player (they fall to the ground when trying to use it on another player) but mine doesn't do any of that. this goes for the containers script too, they are not throwing the liquids on the floor

1651855776559.png

when trying to throw the liquid on the floor this message appears
 
Last edited:
I have fluids 1 and fluids 2, fluids 1 are the containers, but they don't have a splash effect, throw liquid on the floor,
fluid 2 are manafluid and life fluid, I would like to add the functions of
hit the floor, and not be able to use it on another player, if you use it, he will also hit the floor
 
I have fluids 1 and fluids 2, fluids 1 are the containers, but they don't have a splash effect, throw liquid on the floor,
fluid 2 are manafluid and life fluid, I would like to add the functions of
hit the floor, and not be able to use it on another player, if you use it, he will also hit the floor
you have to link the pot id to your mana/life fluids. example, my fluids are located in others/fluids.lua
so it goes like this
Lua:
<action itemid="2562" script="other/fluids.lua"/>
 
I think I'm going to need a new script for the fluids, because for example, in the old version, the fluids worked like this, you could use them on the floor if they fell,
you couldn't use it on another player (they fall to the ground when trying to use it on another player) but mine doesn't do any of that. this goes for the containers script too, they are not throwing the liquids on the floor

View attachment 67599

when trying to throw the liquid on the floor this message appears
Quick fix:
define the line below on your fluids.lua
Lua:
local distillery = {[5513] = 5469, [5514] = 5470}

Explanation:
This can be solved by making a check on this code and the error that you printed. I followed the error message: fluids.lua:65 (the error is on fluids.lua on line 65)
The line 65 calls table.contains method which is defined on global.lua:84 and the error message says "bad argument #1 to 'pairs' (table expected, got nil)". On table.contains the "pairs" is the first argument.
Looking on call of table.contains on fluids.lua:65 the first argument is "distillery" which is nill. So here are the source of the problem: distillery is nill.
Checking on fluids.lua I found that the distillery is not defined. I go to the forgottenserver main branch and found the original fluids.lua has a definition of "distillery".

The right solution on my point of view:

As it is a downgrade and probably you are not using this "distillery" I would remove the entire elseif block which starts on line 65 and the code would be:

Lua:
        local fluidSource = targetItemType and targetItemType:getFluidSource() or FLUID_NONE
        if fluidSource ~= FLUID_NONE then
            item:transform(item:getId(), fluidSource)
        elseif item.type == FLUID_NONE then
            player:sendTextMessage(MESSAGE_STATUS_SMALL, "It is empty.")
        else
            if toPosition.x == CONTAINER_POSITION then
                toPosition = player:getPosition()
            end
            Game.createItem(2016, item.type, toPosition):decay()
            item:transform(item:getId(), FLUID_NONE)
        end
 
Quick fix:
define the line below on your fluids.lua
Lua:
local distillery = {[5513] = 5469, [5514] = 5470}

Explanation:
This can be solved by making a check on this code and the error that you printed. I followed the error message: fluids.lua:65 (the error is on fluids.lua on line 65)
The line 65 calls table.contains method which is defined on global.lua:84 and the error message says "bad argument #1 to 'pairs' (table expected, got nil)". On table.contains the "pairs" is the first argument.
Looking on call of table.contains on fluids.lua:65 the first argument is "distillery" which is nill. So here are the source of the problem: distillery is nill.
Checking on fluids.lua I found that the distillery is not defined. I go to the forgottenserver main branch and found the original fluids.lua has a definition of "distillery".

The right solution on my point of view:
As it is a downgrade and probably you are not using this "distillery" I would remove the entire elseif block which starts on line 65 and the code would be:

Lua:
        local fluidSource = targetItemType and targetItemType:getFluidSource() or FLUID_NONE
        if fluidSource ~= FLUID_NONE then
            item:transform(item:getId(), fluidSource)
        elseif item.type == FLUID_NONE then
            player:sendTextMessage(MESSAGE_STATUS_SMALL, "It is empty.")
        else
            if toPosition.x == CONTAINER_POSITION then
                toPosition = player:getPosition()
            end
            Game.createItem(2016, item.type, toPosition):decay()
            item:transform(item:getId(), FLUID_NONE)
        end
is ther a way to set a delay of 1 sec for spells after use manafluid?
 
sorry for bumping this thread, i noted that i can't use fluids in pots or in floor
i have two files, and would like to enable these features.
fluids.lua
Lua:
local drunk = Condition(CONDITION_DRUNK)
drunk:setParameter(CONDITION_PARAM_TICKS, 60000)

local poison = Condition(CONDITION_POISON)
poison:setParameter(CONDITION_PARAM_DELAYED, true)
poison:setParameter(CONDITION_PARAM_MINVALUE, -50)
poison:setParameter(CONDITION_PARAM_MAXVALUE, -120)
poison:setParameter(CONDITION_PARAM_STARTVALUE, -5)
poison:setParameter(CONDITION_PARAM_TICKINTERVAL, 4000)
poison:setParameter(CONDITION_PARAM_FORCEUPDATE, true)

local fluidMessage = {
    [2] = 'Aaaah...',
    [3] = 'Aah...',
    [4] = 'Urgh!',
    [5] = 'Mmmh.',
    [7] = 'Aaaah...',
    [10] = 'Glup.',
    [11] = 'Urgh!',
    [13] = 'Urgh!',
    [15] = 'Aah...',
    [19] = 'Urgh!',
    [43] = 'Aaaah...'
}



function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    local targetType = ItemType(target.itemid)   
    
    if item.actionid == 2023 then
        player:sendTextMessage(MESSAGE_STATUS_SMALL, '2')
        destination = Position(32791, 32332, 10)
        player:teleportTo(destination)
        player:say('Muahahahaha..', TALKTYPE_MONSTER_SAY, false, player)
        fromPosition:sendMagicEffect(CONST_ME_DRAWBLOOD)
        destination:sendMagicEffect(CONST_ME_MORTAREA)           
    end
    
    if targetType:isFluidContainer() then
        if target.type == 0 and item.type ~= 0 then
            target:transform(target.itemid, item.type)
            item:transform(item.itemid, 0)
            return true
        elseif target.type ~= 0 and item.type == 0 then
            target:transform(target.itemid, 0)
            item:transform(item.itemid, target.type)
            return true
        end
    end

    if target.itemid == 1 then
        if item.type == 0 then
            player:sendTextMessage(MESSAGE_STATUS_SMALL, 'It is empty.')

        elseif target.uid == player.uid then
            if isInArray({3, 15, 43}, item.type) then
                player:addCondition(drunk)

            elseif item.type == 4 then
                player:addCondition(poison)
                doSendMagicEffect(toPosition, CONST_ME_GREEN_RINGS)

            elseif item.type == 7 then
                player:addMana(math.random(50, 150))
                doSendMagicEffect(toPosition, CONST_ME_MAGIC_BLUE)

            elseif item.type == 2 then
                player:addHealth(60)
                doSendMagicEffect(toPosition, CONST_ME_MAGIC_BLUE)
            end

            player:say(fluidMessage[item.type] or 'Gulp.', TALKTYPE_MONSTER_SAY)
            item:transform(7490, 0)
        else
            local pool = Game.createItem(2016, item.type, toPosition)
            if pool then
                pool:decay()
                if item.type == 1 then
                    checkWallArito(pool, toPosition)
                end
            end
            item:transform(item.itemid, 0)
        end

    else

        local fluidSource = targetType:getFluidSource()
        if fluidSource ~= 0 then
            item:transform(item.itemid, fluidSource)
        elseif item.type == 0 then
            player:sendTextMessage(MESSAGE_STATUS_SMALL, 'It is empty.')
        else
            if target.actionid == 2023 then
            destination = Position(32791, 32332, 10)
            player:teleportTo(destination)
            player:say('Muahahahaha..', TALKTYPE_MONSTER_SAY, false, player)
            fromPosition:sendMagicEffect(CONST_ME_DRAWBLOOD)
            destination:sendMagicEffect(CONST_ME_MORTAREA)
            else
                if toPosition.x == CONTAINER_POSITION then
                    toPosition = player:getPosition()
                end

                local pool = Game.createItem(2016, item.type, toPosition)
                if pool then
                    pool:decay()
                    if item.type == 1 then
                        checkWallArito(pool, toPosition)
                    end
                end
            end
            item:transform(item.itemid, 0)
        end
    end

    
    
    
    return true
end
potions.lua
Code:
local berserk = Condition(CONDITION_ATTRIBUTES)
berserk:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000)
berserk:setParameter(CONDITION_PARAM_SKILL_MELEE, 5)
berserk:setParameter(CONDITION_PARAM_SKILL_SHIELD, -10)
berserk:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

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

local bullseye = Condition(CONDITION_ATTRIBUTES)
bullseye:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000)
bullseye:setParameter(CONDITION_PARAM_SKILL_DISTANCE, 5)
bullseye:setParameter(CONDITION_PARAM_SKILL_SHIELD, -10)
bullseye:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

local antidote = Combat()
antidote:setParameter(COMBAT_PARAM_TYPE, COMBAT_HEALING)
antidote:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
antidote:setParameter(COMBAT_PARAM_DISPEL, CONDITION_POISON)
antidote:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
antidote:setParameter(COMBAT_PARAM_TARGETCASTERORTOPMOST, true)

local exhaust = Condition(CONDITION_EXHAUST_HEAL)
exhaust:setParameter(CONDITION_PARAM_TICKS, (configManager.getNumber(configKeys.EX_ACTIONS_DELAY_INTERVAL) - 1000))
-- 1000 - 100 due to exact condition timing. -100 doesn't hurt us, and players don't have reminding ~50ms exhaustion.

local potions = {
    [6558] = {transform = {id = {7588, 7589}}, effect = CONST_ME_DRAWBLOOD},
    [7439] = {condition = berserk, vocations = {4, 8}, effect = CONST_ME_MAGIC_RED,
            description = "Only knights may drink this potion.", text = "You feel stronger."},

    [7440] = {condition = mastermind, vocations = {1, 2, 5, 6}, effect = CONST_ME_MAGIC_BLUE,
            description = "Only sorcerers and druids may drink this potion.", text = "You feel smarter."},

    [7443] = {condition = bullseye, vocations = {3, 7}, effect = CONST_ME_MAGIC_GREEN,
            description = "Only paladins may drink this potion.", text = "You feel more accurate."},

    [7588] = {health = {250, 350}, vocations = {3, 4, 7, 8}, level = 50, flask = 7634,
            description = "Only knights and paladins of level 50 or above may drink this fluid."},

    [7589] = {mana = {115, 185}, vocations = {1, 2, 3, 5, 6, 7}, level = 50, flask = 7634,
            description = "Only sorcerers, druids and paladins of level 50 or above may drink this fluid."},

    [7590] = {mana = {150, 250}, vocations = {1, 2, 5, 6}, level = 80, flask = 7635,
            description = "Only druids and sorcerers of level 80 or above may drink this fluid."},

    [7591] = {health = {425, 575}, vocations = {4, 8}, level = 80, flask = 7635,
            description = "Only knights of level 80 or above may drink this fluid."},

    [7618] = {health = {125, 175}, flask = 7636},
    [7620] = {mana = {75, 125}, flask = 7636},
    [8472] = {health = {250, 350}, mana = {100, 200}, vocations = {3, 7}, level = 80, flask = 7635,
            description = "Only paladins of level 80 or above may drink this fluid."},

    [8473] = {health = {650, 850}, vocations = {4, 8}, level = 130, flask = 7635,
            description = "Only knights of level 130 or above may drink this fluid."},

    [8474] = {combat = antidote, flask = 7636},
    [8704] = {health = {60, 90}, flask = 7636},
    [26029] = {mana = {425, 575}, vocations = {1, 2, 5, 6}, level = 130, flask = 7635,
            description = "Only druids and sorcerers of level 130 or above may drink this fluid."},

    [26030] = {health = {420, 580}, mana = {250, 350}, vocations = {3, 7}, level = 130, flask = 7635,
            description = "Only paladins of level 130 or above may drink this fluid."},

    [26031] = {health = {875, 1125}, vocations = {4, 8}, level = 200, flask = 7635,
            description = "Only knights of level 200 or above may drink this fluid."}
}

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():getBase():getId()) and not (player:getGroup():getId() >= 2) then
        player:say(potion.description, TALKTYPE_MONSTER_SAY)
        return true
    end

    if player:getCondition(CONDITION_EXHAUST_HEAL) then
        player:sendTextMessage(MESSAGE_STATUS_SMALL, Game.getReturnMessage(RETURNVALUE_YOUAREEXHAUSTED))
        return true
    end

    if potion.health or potion.mana or potion.combat then
        if potion.health then
            doTargetCombatHealth(0, target, COMBAT_HEALING, potion.health[1], potion.health[2], CONST_ME_MAGIC_BLUE)
        end

        if potion.mana then
            doTargetCombatMana(0, target, potion.mana[1], potion.mana[2], CONST_ME_MAGIC_BLUE)
        end

        if potion.combat then
            potion.combat:execute(target, Variant(target:getId()))
        end

        player:addAchievementProgress('Potion Addict', 100000)
        target:say("Aaaah...", TALKTYPE_MONSTER_SAY)
        player:addItem(potion.flask, 1)
        player:addCondition(exhaust)
        player:setStorageValue(38412, player:getStorageValue(38412)+1)
    end

    if potion.condition then
        player:addCondition(potion.condition)
        player:say(potion.text, TALKTYPE_MONSTER_SAY)
        player:getPosition():sendMagicEffect(potion.effect)
    end

    if potion.transform then
        item:transform(potion.transform.id[math.random(#potion.transform.id)])
        item:getPosition():sendMagicEffect(potion.effect)
        return true
    end

    if not configManager.getBoolean(configKeys.REMOVE_POTION_CHARGES) then
        return true
    end

    local client = player:getClient()
    if client.version > 1140 then
        player:updateSupplyTracker(item)
    end

    item:remove(1)
    return true
end
 
Back
Top