• 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 0.X Would anyone have the exp formula in KK for tfs 0.4 to make available please?

pisquila

New Member
Joined
Nov 14, 2023
Messages
7
Reaction score
1
Would anyone have the exp formula in ''KK' for tfs 0.4 to make available please?
Post automatically merged:

change this code to display the exp in 'k' 'kk' 'kkk'


void Creature::eek:nGainExperience(double& gainExp, bool fromMonster, bool multiplied)
{
if(gainExp <= 0)
return;

if(master)
{
gainExp = gainExp / 2;
master->onGainExperience(gainExp, fromMonster, multiplied);
}
else if(!multiplied)
gainExp *= g_config.getDouble(ConfigManager::RATE_EXPERIENCE);

int16_t color = g_config.getNumber(ConfigManager::EXPERIENCE_COLOR);
if(color < 0)
color = random_range(0, 255);

std::stringstream ss;
ss << (uint64_t)gainExp;
g_game.addAnimatedText(getPosition(), (uint8_t)color, ss.str());
}

void Creature::eek:nGainSharedExperience(double& gainExp, bool fromMonster, bool multiplied)
{
if(gainExp <= 0)
return;

if(master)
{
gainExp = gainExp / 2;
master->onGainSharedExperience(gainExp, fromMonster, multiplied);
}
else if(!multiplied)
gainExp *= g_config.getDouble(ConfigManager::RATE_EXPERIENCE);

int16_t color = g_config.getNumber(ConfigManager::EXPERIENCE_COLOR);
if(color < 0)
color = random_range(0, 255);

std::stringstream ss;
ss << (uint64_t)gainExp;
g_game.addAnimatedText(getPosition(), (uint8_t)color, ss.str());
}
 
Last edited:
Solution
Change
C++:
std::stringstream ss;
ss << (uint64_t)gainExp;
g_game.addAnimatedText(getPosition(), (uint8_t)color, ss.str());

for

C++:
std::stringstream ss;
uint64_t formattedExp = static_cast<uint64_t>(gainExp);

if (formattedExp >= 1000000000) {
    ss << formattedExp / 1000000000 << "kkk";
} else if (formattedExp >= 1000000) {
    ss << formattedExp / 1000000 << "kk";
} else if (formattedExp >= 1000) {
    if (formattedExp % 1000 != 0) {
        ss << formattedExp / 1000.0 << "k";
    } else {
        ss << formattedExp / 1000 << "k";
    }
} else {
    ss << formattedExp;
}

g_game.addAnimatedText(getPosition(), (uint8_t)color, ss.str());
Change
C++:
std::stringstream ss;
ss << (uint64_t)gainExp;
g_game.addAnimatedText(getPosition(), (uint8_t)color, ss.str());

for

C++:
std::stringstream ss;
uint64_t formattedExp = static_cast<uint64_t>(gainExp);

if (formattedExp >= 1000000000) {
    ss << formattedExp / 1000000000 << "kkk";
} else if (formattedExp >= 1000000) {
    ss << formattedExp / 1000000 << "kk";
} else if (formattedExp >= 1000) {
    if (formattedExp % 1000 != 0) {
        ss << formattedExp / 1000.0 << "k";
    } else {
        ss << formattedExp / 1000 << "k";
    }
} else {
    ss << formattedExp;
}

g_game.addAnimatedText(getPosition(), (uint8_t)color, ss.str());
 
Solution
Alterar [CÓDIGO=cpp]
std::stringstream ss;
ss << (uint64_t)gainExp;
g_game.addAnimatedText(getPosition(), (uint8_t)color, ss.str());
[/CÓDIGO]

para

[CÓDIGO=cpp]std::stringstream ss;
uint64_t formatadoExp = static_cast<uint64_t>(gainExp);

if (formatadoExp >= 1000000000) {
ss << formattedExp / 1000000000 << "kkk";
} else if (formattedExp >= 1000000) {
ss << formattedExp / 1000000 << "kk";
} else if (formattedExp >= 1000) {
if (formatadoExp% 1000! = 0) {
ss << formattedExp / 1000.0 << "k";
} outro {
ss << formattedExp / 1000 << "k";
}
} outro {
ss << formattedExp;
}

g_game.addAnimatedText(getPosition(), (uint8_t)color, ss.str());[/CODE]
worked. Thank you very much. -
 
Back
Top