Service.h
ekle :
#define ENABLE_PARTY_EXP_FIX
Char_battle.cpp
Arat:
LPCHARACTER pAttacker = CHARACTER_MANAGER::instance().Find(c_VID);
// NPC°¡ ¶§¸®±âµµ Çϳª? -.-;
if (!pAttacker || pAttacker->IsNPC() || DISTANCE_APPROX(GetX() - pAttacker->GetX(), GetY() - pAttacker->GetY()) > 5000)
continue;
Değiştir:
#ifdef ENABLE_PARTY_EXP_FIX
LPCHARACTER pAttacker = CHARACTER_MANAGER::instance().Find(c_VID);
// NPC°¡ ¶§¸®±âµµ Çϳª? -.-;
if(!pAttacker || !pAttacker->IsPC())
continue;
// Block exp award based on distance
// Groups have DOUBLE the exp distance to prevent the "exploit" where the party leader gets full exp bonus and some party members don't get exp.
int dist = DISTANCE_APPROX(GetX()-pAttacker->GetX(), GetY()-pAttacker->GetY());
if(dist > 10000 || (dist > 5000 && !pAttacker->GetParty()))
continue;
#else
LPCHARACTER pAttacker = CHARACTER_MANAGER::instance().Find(c_VID);
// NPC°¡ ¶§¸®±âµµ Çϳª? -.-;
if (!pAttacker || pAttacker->IsNPC() || DISTANCE_APPROX(GetX() - pAttacker->GetX(), GetY() - pAttacker->GetY()) > 5000)
continue;
#endif