Rainerr
Mapper n scri
- Joined
- Apr 2, 2009
- Messages
- 237
- Reaction score
- 1
So, if some1 lvl 80 kills 180 lvl they wont get any EXP..
Ive tryed so many thing - Heres my part of Player.Cpp
And Config Part:
Ive tryed so many thing - Heres my part of Player.Cpp
Code:
double Player::getGainedExperience(Creature* attacker) const
{
if(!skillLoss)
return 0;
double rate = g_config.getDouble(ConfigManager::RATE_PVP_EXPERIENCE);
if(rate <= 0)
return 0;
Player* attackerPlayer = attacker->getPlayer();
if(!attackerPlayer || attackerPlayer == this)
return 0;
double attackerLevel = (double)attackerPlayer->getLevel(), max = g_config.getDouble(ConfigManager::EFP_MAX_THRESHOLD);
if(max > 0 && level > (uint32_t)std::floor(attackerLevel * max))
return 0;
/*
Formula
a = attackers level * 0.9
b = victims level
c = victims experience
result = (1 - (a / b)) * 0.05 * c
Not affected by special multipliers(!)
*/
uint32_t a = (uint32_t)std::floor(attackerLevel * 0.9), b = level;
uint64_t c = getExperience();
return (double)std::max((uint64_t)0, (uint64_t)std::floor(getDamageRatio(attacker)
* std::max((double)0, ((double)(1 - (((double)a / b))))) * 0.5 * c)) * rate;
}
And Config Part:
Code:
minLevelThresholdForKilledPlayer = 0.9
maxLevelThresholdForKilledPlayer = 1.1