Jump to content
Golem1988

Suggestion: Official renewal exp gane formulas

Recommended Posts

Posted about my modification in exp gain* formula, that is fully acorded with iRO exp gain table... Original post here: http://rathena.org/b...newal-exp-gain/

What I want to suggest to implement is this code instead of the old one, that was incorrect:

So, the correct code for iRO exp table is:

/**
* Renewal Experience Earning Mode
**/
void party_renewal_exp_mod(unsigned int *base_exp, unsigned int *job_exp, int lvl, int moblvl) {
int diff = lvl - moblvl, boost = 0;
//-2 ~ +5: 100%
if( diff >= -2 && diff <= 5 )
	return;//we don't change anything, it's 100% boost
//-3 ~ -10: +5% boost for each
   //changed -15 to -10 (c) Golem1988
if( diff >= -10 && diff <= -3 )
	boost = 100 + (( -diff * 5 ) - 10 );
//-11 ~ -15: -5% boost for each starting with 140% (c) Golem1988
else if( diff >= -15 && diff <= -11 )
	boost = 200 - (( -diff * 5 ) + 10 );
 // 40% boost if difference is < -15
else if ( diff < -15 )
	boost = 40;
else {
	boost = ( diff > 5 && diff < 11 ) ? 95 :
			( diff > 10 && diff < 16 ) ? 90 :
			( diff > 15 && diff < 21 ) ? 85 :
			( diff > 20 && diff < 26 ) ? 60 :
			( diff > 25 && diff < 31 ) ? 35 :
			10;
}
if( *base_exp )
	*base_exp = (unsigned int)cap_value(*base_exp * boost / 100, 1, UINT_MAX);
if( *job_exp )
	*job_exp  = (unsigned int)cap_value(*job_exp  * boost / 100, 1, UINT_MAX);
return;
}

How to apply this, iRO formula: go to party.c and replace old formula with this one. Recompile. Use and smile.

Have no idea how to make diff files :) Please, someone place this code in the rAthena svn, cause this formula is 100% correct. Thanks, waiting for answers and comments...

And I would appreciate if there would be some <c> Golem1988 in this code, if it will be implement. ^^

Edited by Golem1988
Link to comment
Share on other sites

How about making it configurable like AEGIS did?

levelPenalty.lua

-- 이파일은 lua 문법에 따라 작성해야 합니다.
-- 레벨차에 의한 페널티를 설정하는 파일입니다.
-- 타겟-플레이어 레벨 입니다.
-- 레벨차에 의한 경험치 페널티를 설정합니다.
Exp={--일반
[16]=40;
[15]=115;
[14]=120;
[13]=125;
[12]=130;
[11]=135;
[10]=140;
[9]=135;
[8]=130;
[7]=125;
[6]=120;
[5]=115;
[4]=110;
[3]=105;
[0]=100;
[-1]=100;
[-6]=95;
[-11]=90;
[-16]=85;
[-21]=60;
[-26]=35;
[-31]=10;
};
MvpExp={--보스형
[0]=100;
};
-- 레벨차에 의한 아이템드롭률 패널티를 설정합니다.
ItemDrop={--일반
[16]=50;
[13]=60;
[10]=70;
[7]=80;
[4]=90;
[0]=100;
[-4]=90;
[-7]=80;
[-10]=70;
[-13]=60;
[-16]=50;
};
MvpItemDrop={--보스형
[0]=100;
};

  • Upvote 1
Link to comment
Share on other sites

i would prefer the aegis official script from scriptor too.

we want to be kro based, and also rathena wants to stay as close as possible on aegis.

rathena should use the aegis penality logic, with one little adjustment, we should be able to active them seperatly.

Link to comment
Share on other sites

i would prefer the aegis official script from scriptor too.

we want to be kro based, and also rathena wants to stay as close as possible on aegis.

rathena should use the aegis penality logic, with one little adjustment, we should be able to active them seperatly.

please, give me link to kRO exp penalty/increase table :)

Link to comment
Share on other sites

This is an emulator for Ragnarok. It is only appropriate to follow kRO mechanics since everything started from them. If more players request or need

the same mod as what the TS posted, we can add additional configuration don't we?

Link to comment
Share on other sites

How about making it configurable like AEGIS did?

levelPenalty.lua

-- 이파일은 lua 문법에 따라 작성해야 합니다.
-- 레벨차에 의한 페널티를 설정하는 파일입니다.
-- 타겟-플레이어 레벨 입니다.
-- 레벨차에 의한 경험치 페널티를 설정합니다.
Exp={--일반
[16]=40;
[15]=115;
[14]=120;
[13]=125;
[12]=130;
[11]=135;
[10]=140;
[9]=135;
[8]=130;
[7]=125;
[6]=120;
[5]=115;
[4]=110;
[3]=105;
[0]=100;
[-1]=100;
[-6]=95;
[-11]=90;
[-16]=85;
[-21]=60;
[-26]=35;
[-31]=10;
};
MvpExp={--보스형
[0]=100;
};
-- 레벨차에 의한 아이템드롭률 패널티를 설정합니다.
ItemDrop={--일반
[16]=50;
[13]=60;
[10]=70;
[7]=80;
[4]=90;
[0]=100;
[-4]=90;
[-7]=80;
[-10]=70;
[-13]=60;
[-16]=50;
};
MvpItemDrop={--보스형
[0]=100;
};

That is the same table as iRO uses if I recall correctly.

Edited by garet999
Link to comment
Share on other sites

How about making it configurable like AEGIS did?

levelPenalty.lua

-- 이파일은 lua 문법에 따라 작성해야 합니다.
-- 레벨차에 의한 페널티를 설정하는 파일입니다.
-- 타겟-플레이어 레벨 입니다.
-- 레벨차에 의한 경험치 페널티를 설정합니다.
Exp={--일반
[16]=40;
[15]=115;
[14]=120;
[13]=125;
[12]=130;
[11]=135;
[10]=140;
[9]=135;
[8]=130;
[7]=125;
[6]=120;
[5]=115;
[4]=110;
[3]=105;
[0]=100;
[-1]=100;
[-6]=95;
[-11]=90;
[-16]=85;
[-21]=60;
[-26]=35;
[-31]=10;
};
MvpExp={--보스형
[0]=100;
};
-- 레벨차에 의한 아이템드롭률 패널티를 설정합니다.
ItemDrop={--일반
[16]=50;
[13]=60;
[10]=70;
[7]=80;
[4]=90;
[0]=100;
[-4]=90;
[-7]=80;
[-10]=70;
[-13]=60;
[-16]=50;
};
MvpItemDrop={--보스형
[0]=100;
};

That is the same table as iRO uses if I recall correctly.

Exactly :D Good sight /no1

Link to comment
Share on other sites



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.