Shin Noir
01-20-2016, 05:25 PM
This source edit simply displays the amount of gained and lost experience to all players. This is something you will find in other private MMOs, such as Ragnarok Online or Lineage 2, and it answers a lot of questions I've had over the years about exp distribution calculations so felt it'd be a great insight for players, even if it distracts from nostalgic immersion.
RebuildEQ is my little self project and is utilizing this if you'd like to see it in action.
Note: The EXP display only shows gained NORMAL exp, not AA.
Gained experience
http://i.imgur.com/yy9OwI0.png
Lost experience (You can flip the value (-i) to remove the negative)
http://i.imgur.com/qTs7kqM.png
Ressurected 96% experience (It's technically ~95.9992%!)
http://i.imgur.com/O1mImS3.png
The code:
zone/exp.cpp
Before:
if (isrezzexp)
this->Message_StringID(MT_Experience, REZ_REGAIN);
else{
if(membercount > 1)
this->Message_StringID(MT_Experience, GAIN_GROUPXP);
else if(IsRaidGrouped())
Message_StringID(MT_Experience, GAIN_RAIDEXP);
else
this->Message_StringID(MT_Experience, GAIN_XP);
After:
i = set_exp - m_pp.exp;
if (isrezzexp) {
Message(15, "You regain %i experience from resurrection.", i);
}
else {
if(membercount > 1) {
Message(15, "You have gained %i party experience!", i);
}
else if(IsRaidGrouped()) {
Message(15, "You have gained %i raid experience!", i);
}
else {
Message(15, "You have gained %i experience!", i);
}
zone/exp.cpp
Before:
else if((set_exp + set_aaxp) < (m_pp.exp+m_pp.expAA)){ //only loss message if you lose exp, no message if you gained/lost nothing.
Message(15, "You have lost experience.");
}
After:
else if((set_exp + set_aaxp) < (m_pp.exp+m_pp.expAA)){ //only loss message if you lose exp, no message if you gained/lost nothing.
i = set_exp - m_pp.exp;
Message(15, "You have lost %i experience.", i);
}
RebuildEQ is my little self project and is utilizing this if you'd like to see it in action.
Note: The EXP display only shows gained NORMAL exp, not AA.
Gained experience
http://i.imgur.com/yy9OwI0.png
Lost experience (You can flip the value (-i) to remove the negative)
http://i.imgur.com/qTs7kqM.png
Ressurected 96% experience (It's technically ~95.9992%!)
http://i.imgur.com/O1mImS3.png
The code:
zone/exp.cpp
Before:
if (isrezzexp)
this->Message_StringID(MT_Experience, REZ_REGAIN);
else{
if(membercount > 1)
this->Message_StringID(MT_Experience, GAIN_GROUPXP);
else if(IsRaidGrouped())
Message_StringID(MT_Experience, GAIN_RAIDEXP);
else
this->Message_StringID(MT_Experience, GAIN_XP);
After:
i = set_exp - m_pp.exp;
if (isrezzexp) {
Message(15, "You regain %i experience from resurrection.", i);
}
else {
if(membercount > 1) {
Message(15, "You have gained %i party experience!", i);
}
else if(IsRaidGrouped()) {
Message(15, "You have gained %i raid experience!", i);
}
else {
Message(15, "You have gained %i experience!", i);
}
zone/exp.cpp
Before:
else if((set_exp + set_aaxp) < (m_pp.exp+m_pp.expAA)){ //only loss message if you lose exp, no message if you gained/lost nothing.
Message(15, "You have lost experience.");
}
After:
else if((set_exp + set_aaxp) < (m_pp.exp+m_pp.expAA)){ //only loss message if you lose exp, no message if you gained/lost nothing.
i = set_exp - m_pp.exp;
Message(15, "You have lost %i experience.", i);
}