• 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.2 - Stackable mana potion 8.00 version

Xedoxo

Member
Joined
Oct 24, 2010
Messages
81
Reaction score
7
Hi,

I have edited files in client and also items.otb in TFS.
1718412820278.png
1718413146275.png
1718412853761.png

And when using at yourself it adds mana, but not vanish after use - like infinity uses. How to fix it?
code i using to add mana:

Lua:
    [7491] = {mana = {80, 120}, vocations = {1, 2, 3, 4, 5, 6, 7, 8}, level = 1,
            description = "Aaaah mana!"},
            
            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
 
Test
Lua:
[7491] = {mana = {80, 120}, vocations = {1, 2, 3, 4, 5, 6, 7, 8}, level = 1,
    description = "Aaaah mana!"}

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 then
        player:say(potion.description, TALKTYPE_MONSTER_SAY)
        return true
    end
    
    if 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.mana then
        doTargetCombatMana(0, target, potion.mana[1], potion.mana[2], CONST_ME_MAGIC_BLUE)
    end

    player:addAchievementProgress('Potion Addict', 100000)
    target:say("Aaaah...", TALKTYPE_MONSTER_SAY)

    if potion.flask then
        player:addItem(potion.flask, 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

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

    if configManager.getBoolean(configKeys.REMOVE_POTION_CHARGES) then
        item:remove(1)
    end

    return true
end
I helped you before with a post and created a private script for you and you did not even respond. This is bad manners
 
Test
Lua:
[7491] = {mana = {80, 120}, vocations = {1, 2, 3, 4, 5, 6, 7, 8}, level = 1,
    description = "Aaaah mana!"}

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 then
        player:say(potion.description, TALKTYPE_MONSTER_SAY)
        return true
    end
  
    if 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.mana then
        doTargetCombatMana(0, target, potion.mana[1], potion.mana[2], CONST_ME_MAGIC_BLUE)
    end

    player:addAchievementProgress('Potion Addict', 100000)
    target:say("Aaaah...", TALKTYPE_MONSTER_SAY)

    if potion.flask then
        player:addItem(potion.flask, 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

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

    if configManager.getBoolean(configKeys.REMOVE_POTION_CHARGES) then
        item:remove(1)
    end

    return true
end
I helped you before with a post and created a private script for you and you did not even respond. This is bad manners

Sorry bro, to older thread i'll back soon - i can thank you here and for trying to help, but still doesnt ends manas after edit script.
03:53 Using one of 100 mana fluids...
03:53 Using one of 100 mana fluids...
03:53 Using one of 100 mana fluids...

Full of my potions.lua:
Lua:
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."},

    [7491] = {mana = {80, 120}, vocations = {1, 2, 3, 4, 5, 6, 7, 8}, level = 1,
            description = "Aaaah mana!"},

    [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 then
        player:say(potion.description, TALKTYPE_MONSTER_SAY)
        return true
    end
    
    if 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.mana then
        doTargetCombatMana(0, target, potion.mana[1], potion.mana[2], CONST_ME_MAGIC_BLUE)
    end

    player:addAchievementProgress('Potion Addict', 100000)
    target:say("Aaaah...", TALKTYPE_MONSTER_SAY)

    if potion.flask then
        player:addItem(potion.flask, 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

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

    if configManager.getBoolean(configKeys.REMOVE_POTION_CHARGES) then
        item:remove(1)
    end

    return true
end

get this error after change the code to yours @abdala ragab
1718416772978.png
 
Back
Top