• 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.4 Potions.lua display value

Nefre

Member
Joined
May 17, 2012
Messages
41
Reaction score
11
Hello. I want to display healed value like this:
1634137853830.png
What function I need to add?
This is 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 potions = {
    [6558] = { -- concentrated demonic blood
        transform = {7588, 7589},
        effect = CONST_ME_DRAWBLOOD
    },
    [7439] = { -- berserk potion
        condition = berserk,
        vocations = {4, 8},
        effect = CONST_ME_MAGIC_RED,
        description = "Only knights may drink this potion.",
        text = "You feel stronger."
    },
    [7440] = { -- mastermind potion
        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] = { -- bullseye potion
        condition = bullseye,
        vocations = {3, 7},
        effect = CONST_ME_MAGIC_GREEN,
        description = "Only paladins may drink this potion.",
        text = "You feel more accurate."
    },
    [7588] = { -- strong health potion
        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] = { -- strong mana potion
        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] = { -- great mana potion
        mana = {2, 2,5},
        vocations = {1, 2, 5, 6},
        level = 80,
        flask = 7635,
        description = "Only druids and sorcerers of level 80 or above may drink this fluid."
    },
    [7591] = { -- great health potion
        health = {425, 575},
        vocations = {4, 8},
        level = 80,
        flask = 7635,
        description = "Only knights of level 80 or above may drink this fluid."
    },
    [7618] = { -- health potion
        health = {125, 175},
        flask = 7636
    },
    [7620] = { -- mana potion
        mana = {75, 125},
        flask = 7636
    },
    [8472] = { -- great spirit potion
        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] = { -- ultimate health potion
        health = {650, 850},
        vocations = {4, 8},
        level = 130,
        flask = 7635,
        description = "Only knights of level 130 or above may drink this fluid."
    },
    [8474] = { -- antidote potion
        antidote = true,
        flask = 7636,
    },
    [8704] = { -- small health potion
        health = {60, 90},
        flask = 7636,
    }
}

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

    if potion.condition then
        player:addCondition(potion.condition)
        player:say(potion.text, TALKTYPE_MONSTER_SAY)
        player:getPosition():sendMagicEffect(potion.effect)
    elseif potion.transform then
        local reward = potion.transform[math.random(#potion.transform)]
        if fromPosition.x == CONTAINER_POSITION then
            local targetContainer = Container(item:getParent().uid)
            targetContainer:addItem(reward, 1)
        else
            Game.createItem(reward, 1, fromPosition)
        end
        item:getPosition():sendMagicEffect(potion.effect)
        item:remove(1)
        return true
    else
        if potion.health then
            doTargetCombatHealth(0, target, COMBAT_HEALING, potion.health[1] * player:getLevel(), potion.health[2] * player:getLevel())
        end

        if potion.mana then
            doTargetCombatMana(0, target, potion.mana[1] * player:getLevel() , potion.mana[2] * player:getLevel())
        end

        if potion.antidote then
            target:removeCondition(CONDITION_POISON)
        end

        player:addAchievementProgress("Potion Addict", 100000)
        --player:addItem(potion.flask)
        target:say("Aaaah...", 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
 
dude just go to your config file at SERV DIR
Lua:
    showHealingDamage = true
    showHealingDamageForMonsters = true
you might find those two line too
Code:
    healthHealingColor = 'COLOR_GREEN'
    manaHealingColor = 'COLOR_DARKPURPLE'

edit those to your desire.
 
Last edited:
dude just go to your config file at SERV DIR
Lua:
    showHealingDamage = true
    showHealingDamageForMonsters = true
you might find those two line too
Code:
    healthHealingColor = 'COLOR_GREEN'
    manaHealingColor = 'COLOR_DARKPURPLE'

edit those to your desire.
Bro I have tfs 1.4 and i dont have this lines

Check this

When i use health potion this animation work
 
game.cpp
search
C++:
if (realManaChange > 0 && !targetPlayer->isInGhostMode()) {
below
C++:
targetPlayer->sendTextMessage(...)
add
C++:
addAnimatedText(fmt::format("+{:d}", realManaChange), targetPlayer->getPosition(), TEXTCOLOR_DARKPURPLE);

@EDIT
below from this code, add
C++:
if (realManaChange > 0 && !targetPlayer->isInGhostMode()) {
    addAnimatedText(fmt::format("+{:d}", realManaChange), targetPlayer->getPosition(), TEXTCOLOR_DARKPURPLE);
}

;)
1634294173170.png
 
Last edited:
game.cpp
search
C++:
if (realManaChange > 0 && !targetPlayer->isInGhostMode()) {
below
C++:
targetPlayer->sendTextMessage(...)
add
C++:
addAnimatedText(fmt::format("+{:d}", realManaChange), targetPlayer->getPosition(), TEXTCOLOR_DARKPURPLE);

@EDIT
below from this code, add
C++:
if (realManaChange > 0 && !targetPlayer->isInGhostMode()) {
    addAnimatedText(fmt::format("+{:d}", realManaChange), targetPlayer->getPosition(), TEXTCOLOR_DARKPURPLE);
}

;)
View attachment 62844

Hey, how add it to tfs 1.3? When i try add i have errors

 
game.cpp
search
C++:
if (realManaChange > 0 && !targetPlayer->isInGhostMode()) {
below
C++:
targetPlayer->sendTextMessage(...)
add
C++:
addAnimatedText(fmt::format("+{:d}", realManaChange), targetPlayer->getPosition(), TEXTCOLOR_DARKPURPLE);

@EDIT
below from this code, add
C++:
if (realManaChange > 0 && !targetPlayer->isInGhostMode()) {
    addAnimatedText(fmt::format("+{:d}", realManaChange), targetPlayer->getPosition(), TEXTCOLOR_DARKPURPLE);
}

;)
View attachment 62844
Works 100% THANK YOU!!
 
game.cpp
search
C++:
if (realManaChange > 0 && !targetPlayer->isInGhostMode()) {
below
C++:
targetPlayer->sendTextMessage(...)
add
C++:
addAnimatedText(fmt::format("+{:d}", realManaChange), targetPlayer->getPosition(), TEXTCOLOR_DARKPURPLE);

@EDIT
below from this code
C++:
if (realManaChange > 0 && !targetPlayer->isInGhostMode()) {
    addAnimatedText(fmt::format("+{:d}", realManaChange), targetPlayer->getPosition(), TEXTCOLOR_DARKPURPLE);
}

;)
View attachment 62844
targetPlayer->sendTextMessage(...) need to add in source ? tfs 1.5 8.0

when I added and compiled it gave several errors ;/
 
game.cpp
search
C++:
if (realManaChange > 0 && !targetPlayer->isInGhostMode()) {
below
C++:
targetPlayer->sendTextMessage(...)
add
C++:
addAnimatedText(fmt::format("+{:d}", realManaChange), targetPlayer->getPosition(), TEXTCOLOR_DARKPURPLE);

@EDIT
below from this code, add
C++:
if (realManaChange > 0 && !targetPlayer->isInGhostMode()) {
    addAnimatedText(fmt::format("+{:d}", realManaChange), targetPlayer->getPosition(), TEXTCOLOR_DARKPURPLE);
}

;)
View attachment 62844
which is thr requeried change for heal ? the code is slightly different
 
Last edited:
Back
Top