72 _killer(killer), _victim(victim), _group(killer->GetGroup()),
73 _groupRate(1.0f), _maxNotGrayMember(nullptr), _count(0), _sumLevel(0), _xp(0),
74 _isFullXP(false), _maxLevel(0), _isBattleGround(isBattleGround), _isPvP(false)
92 if (
Player* member = itr->GetSource())
93 if (
_killer == member || (member->IsAtGroupRewardDistance(
_victim) && member->IsAlive()))
95 const uint8 lvl = member->GetLevel();
147 uint32(xp * rate / 2) + 1;
160 pet->GivePetXP(
_group ? xp / 2 : xp);
177 player->
KilledMonster(target->GetCreatureTemplate(), target->GetGUID());
197 float const rate =
_group ?
236 if (
Player* member = itr->GetSource())
270 if (victim->IsDungeonBoss())
@ ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE_TYPE
DBCStorage< MapEntry > sMapStore(MapEntryfmt)
GroupReference * GetFirstMember()
void _RewardHonor(Player *player)
void _RewardPlayer(Player *player, bool isDungeon)
void _InitXP(Player *player)
void _RewardReputation(Player *player, float rate)
Player * _maxNotGrayMember
void _RewardXP(Player *player, float rate)
KillRewarder(Player *killer, Unit *victim, bool isBattleGround)
void _RewardKillCredit(Player *player)
static Creature * ToCreature(Object *o)
void UpdateAchievementCriteria(AchievementCriteriaTypes type, uint32 miscValue1=0, uint32 miscValue2=0, WorldObject *ref=nullptr)
void GiveXP(uint32 xp, Unit *victim, float group_rate=1.0f)
bool IsAtGroupRewardDistance(WorldObject const *pRewardSource) const
void KilledMonster(CreatureTemplate const *cInfo, ObjectGuid guid)
Corpse * GetCorpse() const
void RewardReputation(Unit *victim, float rate)
bool RewardHonor(Unit *victim, uint32 groupsize, int32 honor=-1, bool pvptoken=false)
void KilledPlayerCredit(uint16 count=1)
Vehicle * GetVehicle() const
ObjectGuid GetCharmerOrOwnerGUID() const override
float GetTotalAuraMultiplier(AuraType auraType) const
InstanceScript * GetInstanceScript() const
uint32 Gain(Player *player, Unit *u, bool isBattleGround=false)
float xp_in_group_rate(uint32 count, bool isRaid)
uint8 GetGrayLevel(uint8 pl_level)