This works on a scale of 0 -9 ; '0' will loose you about 1 blue on death and '9' will loose you almost a level. I based it on Cbodmers exploss code, as it seems more sane than the current one we use.
ruletypes.h at around line 26;
Code:
RULE_INT ( Character, DeathExpLossMultiplier, 3) //Angelox, adjust how much exp is lost
attack.cpp at around line 1716;
Code:
// figure out if they should lose exp
float GetNum [] = {0.005f,0.015f,0.025f,0.035f,0.045f,0.055f,0.065f,0.075f,0.085f,0.095f };
int Num = RuleI(Character, DeathExpLossMultiplier);
float loss = GetNum[Num];
exploss=(int)((float)GetEXP() * (loss)); //Angelox: loose % of total XP pending rule (choose 0-9)
And the SQL;
Code:
Insert into rule_values values (0, 'Character:DeathExpLossMultiplier', 3);
I've been testing it today, looks to be OK - hoping some one else will test too.