- int LvlDiff = 0;
- int LvlBonus = (Stats->Level / 10) - 1;
- Log(MSG_INFO,"Lvl Bonus %i,%i",LvlBonus,Stats->Level);
- if(LvlBonus < 0) {LvlBonus = 0;}
- else if(LvlBonus > 13) {LvlBonus = 13;}
- int Lvldiff = (Stats->Level - LvlBonus) - (LvlBonus + Enemy->Stats->Level) + 15;
- Log(MSG_INFO,"Lvl diff %i,%i,%i,%i",Lvldiff,Stats->Level,LvlBonus,Enemy->Stats->Level);
- if(Lvldiff > 15)
- {
- Lvldiff = 15;
- Log(MSG_INFO,"Lvl diff max %i",Lvldiff);
- }
- else if(Lvldiff < 2)
- {
- Lvldiff = 2;
- Log(MSG_INFO,"Lvl diff min %i",Lvldiff);
- }
- if(Stats->MagicAttack == 1)
- {
- attack = Stats->Attack_Power - (Enemy->Stats->Magic_Defense / Lvldiff);
- Log(MSG_INFO,"MagicAtt %i,%i,%i,%i",attack,Stats->Attack_Power,Enemy->Stats->Magic_Defense,Lvldiff);
- }
- else
- {
- attack = Stats->Attack_Power - (Enemy->Stats->Defense / Lvldiff);
- Log(MSG_INFO,"NormalAtt %i,%i,%i,%i",attack,Stats->Attack_Power,Enemy->Stats->Defense,Lvldiff);
- }
- if(attack<0) attack = 5;
if you need a full explanation then ask me for files.
Note: Should balance for lower and higher characters.
battle.cpp
Add code between the 2 blue code and use code from 1st post