Leveling Up - Skill/Attrib increases calculations

EQ2Emulator Development forum.

Moderator: Team Members

Post Reply
User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Leveling Up - Skill/Attrib increases calculations

Post by John Adams » Tue Dec 20, 2011 9:11 am

All,

Need a little help identifying whether or not we are calculating level-ups properly. These calcs have been in code for a long time, and I plan to convert them to Rules, and would like input on what base + ratio values are considered "default".

Here is how skill/attribs are calculated currently:

Code: Select all

	GetPlayer()->SetTotalHPBase(new_level*new_level*2+40);
	GetPlayer()->SetTotalPowerBase((sint32)(new_level*new_level*2.1+45));
	GetPlayer()->CalculateBonuses();
	GetPlayer()->SetHP(GetPlayer()->GetTotalHP());
	GetPlayer()->SetPower(GetPlayer()->GetTotalPower());
	GetPlayer()->GetInfoStruct()->agi_base = new_level*2+15;
	GetPlayer()->GetInfoStruct()->intel_base = new_level*2+15;
	GetPlayer()->GetInfoStruct()->wis_base = new_level*2+15;
	GetPlayer()->GetInfoStruct()->str_base = new_level*2+15;
	GetPlayer()->GetInfoStruct()->sta_base = new_level*2+15;
	GetPlayer()->GetInfoStruct()->cold_base = (int16)(new_level*1.5+10);
	GetPlayer()->GetInfoStruct()->heat_base = (int16)(new_level*1.5+10);
	GetPlayer()->GetInfoStruct()->disease_base = (int16)(new_level*1.5+10);
	GetPlayer()->GetInfoStruct()->mental_base = (int16)(new_level*1.5+10);
	GetPlayer()->GetInfoStruct()->magic_base = (int16)(new_level*1.5+10);
	GetPlayer()->GetInfoStruct()->divine_base = (int16)(new_level*1.5+10);
	GetPlayer()->GetInfoStruct()->poison_base = (int16)(new_level*1.5+10);
	GetPlayer()->SetHPRegen((int)(new_level*.75)+(int)(new_level/10)+3);
	GetPlayer()->SetPowerRegen(new_level+(int)(new_level/10)+4);
	GetPlayer()->GetInfoStruct()->poison_base = (int16)(new_level*1.5+10);

	GetPlayer()->GetSkills()->SetSkillCapsByType(1, 5*new_level);
	GetPlayer()->GetSkills()->SetSkillCapsByType(3, 5*new_level);
	GetPlayer()->GetSkills()->SetSkillCapsByType(6, 5*new_level);
	GetPlayer()->GetSkills()->SetSkillCapsByType(13, 5*new_level);
Looking to replace the multipliers and offsets with Rules values so each server can customize it's own level up values and caps.

Consider whether or not allowing customization might "break" functionality, too. Ie., we do not want some admin saying you get new_level * 1000 + 1bil because you know people will do that ;)

Thanks

Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests