Cap level higer then 80 but talents only 71

How to make core, where max level is higher then 80 ( like 100 e.t.c ) but with 71 talent points? Is this possible?

This should be asked in the custom codes…

Wow, that wasn’t hard, I found this in 1 minute…

[CODE]void Player::InitTalentForLevel()


uint8 level = getLevel();

// talents base at level diff (talents = level - 9 but some can be used already)

if (level < 10)


    // Remove all talent points

    if (m_usedTalentCount > 0)                           // Free any used talents


        resetTalents(true); /// @todo: Has to (collectively) be renamed to ResetTalents






    if (level < sWorld->getIntConfig(CONFIG_MIN_DUALSPEC_LEVEL) || m_specsCount == 0)


        m_specsCount = 1;

        m_activeSpec = 0;


    uint32 talentPointsForLevel = CalculateTalentsPoints();

    // if used more that have then reset

    if (m_usedTalentCount > talentPointsForLevel)


        if (!GetSession()->HasPermission(RBAC_PERM_SKIP_CHECK_MORE_TALENTS_THAN_ALLOWED))





    // else update amount of free points


        SetFreeTalentPoints(talentPointsForLevel - m_usedTalentCount);


if (!GetSession()->PlayerLoading())

    SendTalentsInfoData(false);                         // update at client


If you need someone to walk you through on modifying this, then change your avatar and I will help you.

I don’t know why I find that really annoying. It’s like Im being forced to smell a dudes arm pit…

Brrr where u find it and what i must to change?

Player.cpp Hop into Notepad++ and Search for

if (level < 10)

change to…

if (level < 10 || > Number)

Where ‘number’ is the level you want them to stop getting talent points…


if (level < 10 || > 80)
→ Totally agree with CDawg about the Avatar though… /emoticons/default_tongue.png

For visualization in player.cpp.

uint32 Player::CalculateTalentsPoints() const
uint32 base_talent = getLevel() < 10 ? 0 : getLevel()-9;

if (getClass() != CLASS_DEATH_KNIGHT || GetMapId() != 609)
    return uint32(base_talent * sWorld->getRate(RATE_TALENT));

uint32 talentPointsForLevel = getLevel() < 56 ? 0 : getLevel() - 55;
talentPointsForLevel += m_questRewardTalentCount;

if (talentPointsForLevel > base_talent)
    talentPointsForLevel = base_talent;

return uint32(talentPointsForLevel * sWorld->getRate(RATE_TALENT));

}This is CalculateTalentsPoints(), used for

uint32 talentPointsForLevel = CalculateTalentsPoints();It should help you understand it.
By the way, your idea is relatively hacky imo, mferril.

Hacky? I assume you mean that it breaks something else by its implementation… What?

– Edited for clarification…

I’m not asking that question because I think your wrong. I just started learning C++ and google isn’t the best teacher in the world. /emoticons/default_biggrin.png So if there is a better - less “hacky” way, I’d like to know. Seemed a simple fix that didn’t effect anything else, and tested well in game.

A hack is a fix that doesn’t follow existing design, which means someone may unknowingly break it when they are changing something else.

Ahh. I see. Thank you for the explination.

mferrill, you have the idea of whats going on with the code /emoticons/default_wink.png . I was trying to drive the OP to custom codes section. Ascathor, has actually got it pretty close by retrieving the level from the character first.

Like I said… this is something that definitely needs to be tested out, but should be discussed in custom codes. Hacks come in different concepts, some good ideas, some just… well you get the picture… Though the functionality of a ‘hack’ is where it differentiates in priority. The core is loaded with hacks, but though it’s functionality and demand for the implementation in the core is where it is set aside.

as for this, I would call it a ‘bad hack’.

Hmm. Maybe one of the moderators can move this to the appropriate section? I’d like to look further into it, and see if maybe someone with a little more knowlege and experiance than myself might have a better suggestion on how to impliment this, but at the same time, don’t want to keep a thread moving that should not be where it is.

I’d really like to find out how to tie it into the core correctly where if would not break future code, and could be editied though the worldserver.conf 1 talent point per level, 1 talent point per 2 levels, 1 per 4 levels, etc, etc… I’ll keep looking into it for my own curiosity, but wait to disscuss further until the thread is moved, or restarted elsewhere in a more appropriate section.

Thank you all agian for the clarity, much appreciated.