Jump to content

Suggestion: Official renewal exp gane formulas


Recommended Posts

Posted (edited)

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
Posted

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
Posted

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.

Posted

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 :)

Posted

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?

Posted (edited)

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
Posted

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

  • 1 month later...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...