Jump to content

Renewal exp gain


Golem1988

Recommended Posts


  • Group:  Members
  • Topic Count:  57
  • Topics Per Day:  0.01
  • Content Count:  162
  • Reputation:   1
  • Joined:  08/08/12
  • Last Seen:  

Requesting to add this in SVN, cause it's workingg properly now. (I have no idea how to add this by myself :D)

Edit: party.c

changed this:

/**
* 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
if( diff >= -10 && diff <= -3 )
	boost = 100 + (( -diff * 5 ) - 15 );
// 40% boost if difference is <= -10
else if ( diff <= -10 )
	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;
}

to this, to get correctly working exp gain (official table):

/**
* 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
if( diff >= -10 && diff <= -3 )
	boost = 100 + (( -diff * 5 ) - 10 );
//-11 ~ -15: -5% boost for each starting with 140%
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;
}

Changed:

boost = 100 + (( -diff * 5 ) - 15);

to

 boost = 100 + (( -diff * 5 ) - 10 );  

and

else if ( diff <= -10 )

to

else if ( diff < -15 )

Added:

//-11 ~ -15: -5% boost for each starting with 140%
else if( diff >= -15 && diff <= -11 )
	boost = 200 - (( -diff * 5 ) + 10 );

Changes were made according to iRO wiki table, can be found here: http://irowiki.org/wiki/Experience

Testing my formulas: lvl difference:

player is 15 lvl lower than mob: boost = 200 - (( -(-15) * 5 ) + 10 ) = 200 - (75 + 10)= 200 - 85 = 115% (checking iRO wiki= 115% for 15 lvl)

player is 14 lvl lower than mob: boost = 200 - (( -(-14) * 5 ) + 10 ) = 200 - (70 + 10)= 200 - 80 = 120% (checking iRO wiki= 120% for 14 lvl)

player is 13 lvl lower than mob: boost = 200 - (( -(-13) * 5 ) + 10 ) = 200 - (65 + 10)= 200 - 75 = 125% (checking iRO wiki= 125% for 13 lvl)

player is 12 lvl lower than mob: boost = 200 - (( -(-12) * 5 ) + 10 ) = 200 - (60 + 10)= 200 - 70 = 130% (checking iRO wiki= 130% for 12 lvl)

player is 11 lvl lower than mob: boost = 200 - (( -(-11) * 5 ) + 10 ) = 200 - (55 + 10)= 200 - 65 = 135% (checking iRO wiki= 135% for 11 lvl)

Edited by Golem1988
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  57
  • Topics Per Day:  0.01
  • Content Count:  162
  • Reputation:   1
  • Joined:  08/08/12
  • Last Seen:  

any comments? :)

Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10015
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

Please re-edit your post....this section only allow release through diff file or attachments...

cannot release anything with the usage of codebox / code tag .....

if you want request this to add in rAthena..then try here..

http://rathena.org/board/forum/16-rathena-development/

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  57
  • Topics Per Day:  0.01
  • Content Count:  162
  • Reputation:   1
  • Joined:  08/08/12
  • Last Seen:  

Please re-edit your post....this section only allow release through diff file or attachments...

cannot release anything with the usage of codebox / code tag .....

if you want request this to add in rAthena..then try here..

http://rathena.org/b...na-development/

I have no idea how to make a diff file :( Thatswhy I'm requesting someone to do this :D okay, will try to add this code to developement... Anyway thanks for answer

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...