• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

PVP-E Problem

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

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
 
Remove this part?
Code:
[LEFT][COLOR=#333333]double attackerLevel = (double)attackerPlayer->getLevel(), max = g_config.getDouble(ConfigManager::EFP_MAX_THRESHOLD);[/COLOR][/LEFT]
	if(max > 0 && level > (uint32_t)std::floor(attackerLevel * max))		return 0;
 
Remove this part?
Code:
[LEFT][COLOR=#333333]double attackerLevel = (double)attackerPlayer->getLevel(), max = g_config.getDouble(ConfigManager::EFP_MAX_THRESHOLD);[/COLOR][/LEFT]
	if(max > 0 && level > (uint32_t)std::floor(attackerLevel * max))		return 0;

If i delete that ill get error - If i try Delete whole thin then i get error tho..........
 
player.cpp In member function `virtual double Player::getGainedExperience(Creature*) const':
Makefile.win [Build Error] [obj//player.o] Error 1
player.cpp `attackerLevel' was not declared in this scope
 
Back
Top