• 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!

Compiling How to remove min/max Level Threshold for killed player

Roddet

Staff member
Global Moderator
Joined
May 1, 2013
Messages
947
Solutions
103
Reaction score
766
Location
Mex
This it
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;

   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.05 * c)) * rate;
}

****

I try to delete this but i get error at moment compile
Code:
 double attackerLevel = (double)attackerPlayer->getLevel(), min = g_config.getDouble(
     ConfigManager::EFP_MIN_THRESHOLD), max = g_config.getDouble(ConfigManager::EFP_MAX_THRESHOLD);
   if((min > 0 && level < (uint32_t)std::floor(attackerLevel * min)) || (max > 0 &&
     level > (uint32_t)std::floor(attackerLevel * max)))
     return 0;
 
Last edited:
There is no need to remove threshold, just set 0 on both values (config.lua) and edit attackerLevel * 0.9 for ranges (the lower the value, the higher the range)
 
Back
Top