#include "KillRewarder.h"
◆ KillRewarder()
| KillRewarder::KillRewarder |
( |
Player * |
killer, |
|
|
Unit * |
victim, |
|
|
bool |
isBattleGround |
|
) |
| |
68 :
69
73{
74
77
80
82}
uint8 _maxLevel
Definition KillRewarder.h:59
uint32 _count
Definition KillRewarder.h:54
uint8 _maxNotGrayMemberLevel
Definition KillRewarder.h:53
float _groupRate
Definition KillRewarder.h:51
uint32 _xp
Definition KillRewarder.h:57
uint32 _aliveSumLevel
Definition KillRewarder.h:55
uint32 _sumLevel
Definition KillRewarder.h:56
Player * _maxNotGrayMember
Definition KillRewarder.h:52
Unit * _victim
Definition KillRewarder.h:49
Player * _killer
Definition KillRewarder.h:48
bool _isBattleGround
Definition KillRewarder.h:60
Group * _group
Definition KillRewarder.h:50
void _InitGroupData()
Definition KillRewarder.cpp:84
bool _isFullXP
Definition KillRewarder.h:58
bool _isPvP
Definition KillRewarder.h:61
bool IsPlayer() const
Definition ObjectGuid.h:168
bool IsPlayer() const
Definition Object.h:201
Group * GetGroup()
Definition Player.h:2509
bool IsVehicle() const
Definition Unit.h:800
ObjectGuid GetCharmerOrOwnerGUID() const
Definition Unit.h:1295
References _InitGroupData(), _isPvP, Unit::GetCharmerOrOwnerGUID(), Object::IsPlayer(), ObjectGuid::IsPlayer(), and Unit::IsVehicle().
◆ _GetPlayerLevel()
| uint8 KillRewarder::_GetPlayerLevel |
( |
Player const * |
player | ) |
|
|
private |
◆ _InitGroupData()
| void KillRewarder::_InitGroupData |
( |
| ) |
|
|
private |
85{
87 {
88
90 if (
Player* member = itr->GetSource())
92 {
94 if (member->IsAlive())
95 {
96
98
100
102 {
104 }
105
106
109 {
112 }
113 }
114
116 }
117
118
120 }
121 else
123}
std::uint32_t uint32
Definition Define.h:107
Definition GroupReference.h:27
GroupReference * GetFirstMember()
Definition Group.h:250
uint8 _GetPlayerLevel(Player const *player)
Definition KillRewarder.cpp:282
bool IsAtGroupRewardDistance(WorldObject const *pRewardSource) const
Definition Player.cpp:12873
uint8 GetLevel() const
Definition Unit.h:1103
uint8 GetGrayLevel(uint8 pl_level)
Definition Formulas.h:46
References _aliveSumLevel, _count, _GetPlayerLevel(), _group, _isFullXP, _killer, _maxLevel, _maxNotGrayMember, _maxNotGrayMemberLevel, _sumLevel, _victim, Group::GetFirstMember(), Acore::XP::GetGrayLevel(), Unit::GetLevel(), and Player::IsAtGroupRewardDistance().
Referenced by KillRewarder().
◆ _InitXP()
| void KillRewarder::_InitXP |
( |
Player * |
player | ) |
|
|
private |
126{
127
128
129
130
131
134
138 if (ct->ModHealth <= 0.75f && ct->ModHealth >= 0.0f)
140}
CreatureTemplate const * GetCreatureTemplate() const
Definition Creature.h:207
bool IsCreature() const
Definition Object.h:205
Creature * ToCreature()
Definition Object.h:206
Vehicle * GetVehicle() const
Definition Unit.h:1930
uint32 Gain(Player *player, Unit *unit, bool isBattleGround=false)
Definition Formulas.cpp:73
Definition CreatureData.h:187
References _isBattleGround, _isPvP, _killer, _victim, _xp, Acore::XP::Gain(), Creature::GetCreatureTemplate(), Unit::GetVehicle(), Object::IsCreature(), and Object::ToCreature().
Referenced by _RewardGroup(), and Reward().
◆ _RewardGroup()
| void KillRewarder::_RewardGroup |
( |
| ) |
|
|
private |
244{
246 {
248
249
251
252
253
255 {
258 {
259
262 }
263
264
266 {
267 if (
Player* member = itr->GetSource())
268 {
270 {
272
273
274
275 }
276 }
277 }
278 }
279 }
280}
DBCStorage< MapEntry > sMapStore(MapEntryfmt)
bool isRaidGroup() const
Definition Group.cpp:2346
void _RewardPlayer(Player *player, bool isDungeon)
Definition KillRewarder.cpp:210
void _InitXP(Player *player)
Definition KillRewarder.cpp:125
uint32 GetMapId() const
Definition Position.h:281
float xp_in_group_rate(uint32 count, bool isRaid)
Definition Formulas.h:119
References _count, _group, _groupRate, _InitXP(), _isBattleGround, _isPvP, _killer, _maxLevel, _maxNotGrayMember, _RewardPlayer(), _victim, _xp, Group::GetFirstMember(), WorldLocation::GetMapId(), Player::IsAtGroupRewardDistance(), Group::isRaidGroup(), sMapStore, and Acore::XP::xp_in_group_rate().
Referenced by Reward().
◆ _RewardHonor()
| void KillRewarder::_RewardHonor |
( |
Player * |
player | ) |
|
|
private |
◆ _RewardKillCredit()
| void KillRewarder::_RewardKillCredit |
( |
Player * |
player | ) |
|
|
private |
200{
201
204 {
205 player->
KilledMonster(target->GetCreatureTemplate(), target->GetGUID());
207 }
208}
@ ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE_TYPE
Definition DBCEnums.h:188
void UpdateAchievementCriteria(AchievementCriteriaTypes type, uint32 miscValue1=0, uint32 miscValue2=0, Unit *unit=nullptr)
Definition PlayerUpdates.cpp:2174
void KilledMonster(CreatureTemplate const *cInfo, ObjectGuid guid)
Definition PlayerQuest.cpp:1951
Corpse * GetCorpse() const
Definition Player.cpp:4631
References _group, _victim, ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE_TYPE, Player::GetCorpse(), Unit::IsAlive(), Player::KilledMonster(), Object::ToCreature(), and Player::UpdateAchievementCriteria().
Referenced by _RewardPlayer().
◆ _RewardPlayer()
| void KillRewarder::_RewardPlayer |
( |
Player * |
player, |
|
|
bool |
isDungeon |
|
) |
| |
|
private |
211{
212
214 {
215
217
220 }
221
222
223
225 {
227 sScriptMgr->OnPlayerRewardKillRewarder(player,
this, isDungeon, xpRate);
228
230 {
231
233 }
235 {
236
239 }
240 }
241}
void _RewardReputation(Player *player)
Definition KillRewarder.cpp:192
void _RewardHonor(Player *player)
Definition KillRewarder.cpp:142
void _RewardXP(Player *player, float rate)
Definition KillRewarder.cpp:149
void _RewardKillCredit(Player *player)
Definition KillRewarder.cpp:199
void KilledPlayerCredit(uint16 count=1)
Definition PlayerQuest.cpp:2031
References _aliveSumLevel, _GetPlayerLevel(), _group, _groupRate, _isBattleGround, _isPvP, _RewardHonor(), _RewardKillCredit(), _RewardReputation(), _RewardXP(), _victim, _xp, Object::IsPlayer(), Player::KilledPlayerCredit(), and sScriptMgr.
Referenced by _RewardGroup(), and Reward().
◆ _RewardReputation()
| void KillRewarder::_RewardReputation |
( |
Player * |
player | ) |
|
|
private |
◆ _RewardXP()
| void KillRewarder::_RewardXP |
( |
Player * |
player, |
|
|
float |
rate |
|
) |
| |
|
private |
150{
153 {
154
155
156
161 uint32(xp * rate / 2) + 1;
162 else
163 xp = 0;
164 }
165
166
167
168
169 if (xp)
171 {
173 uint8 const highestLevel = creature->GetHighestPlayerAttackerLevel();
175 xp = xp / 2 + 1;
176 }
177
178 if (xp)
179 {
180
182
183
187
188 pet->GivePetXP(
_group ? xp / 2 : xp);
189 }
190}
@ XPSOURCE_KILL
Definition Player.h:1005
@ SPELL_AURA_MOD_XP_PCT
Definition SpellAuraDefines.h:263
Pet * GetPet() const
Definition Player.cpp:8970
void GiveXP(uint32 xp, Unit *victim, float group_rate=1.0f, bool isLFGReward=false)
Definition Player.cpp:2356
float GetTotalAuraMultiplier(AuraType auratype) const
Definition Unit.cpp:6308
References _GetPlayerLevel(), _group, _groupRate, _isFullXP, _maxLevel, _maxNotGrayMember, _maxNotGrayMemberLevel, _victim, _xp, Acore::XP::GetGrayLevel(), Unit::GetLevel(), Player::GetPet(), Unit::GetTotalAuraMultiplier(), Player::GiveXP(), Unit::IsAlive(), SPELL_AURA_MOD_XP_PCT, sScriptMgr, Object::ToCreature(), and XPSOURCE_KILL.
Referenced by _RewardPlayer().
◆ GetKiller()
| Player * KillRewarder::GetKiller |
( |
| ) |
|
◆ GetVictim()
| Unit * KillRewarder::GetVictim |
( |
| ) |
|
◆ Reward()
| void KillRewarder::Reward |
( |
| ) |
|
290{
291
293
295 else
296 {
297
298
300
301
302
304
307 }
308
309
311 if (victim->IsDungeonBoss())
314}
@ ENCOUNTER_CREDIT_KILL_CREATURE
Definition Map.h:161
void _RewardGroup()
Definition KillRewarder.cpp:243
uint32 GetEntry() const
Definition Object.h:117
Map * FindMap() const
Definition Object.h:626
bool IsInMap(WorldObject const *obj) const
Definition Object.cpp:1335
References _group, _InitXP(), _isBattleGround, _killer, _RewardGroup(), _RewardPlayer(), _victim, _xp, ENCOUNTER_CREDIT_KILL_CREATURE, WorldObject::FindMap(), Object::GetEntry(), WorldObject::IsInMap(), and Object::ToCreature().
Referenced by Player::RewardPlayerAndGroupAtKill().
◆ _aliveSumLevel
| uint32 KillRewarder::_aliveSumLevel |
|
private |
◆ _count
◆ _group
| Group* KillRewarder::_group |
|
private |
◆ _groupRate
| float KillRewarder::_groupRate |
|
private |
◆ _isBattleGround
| bool KillRewarder::_isBattleGround |
|
private |
◆ _isFullXP
| bool KillRewarder::_isFullXP |
|
private |
◆ _isPvP
| bool KillRewarder::_isPvP |
|
private |
◆ _killer
◆ _maxLevel
| uint8 KillRewarder::_maxLevel |
|
private |
◆ _maxNotGrayMember
| Player* KillRewarder::_maxNotGrayMember |
|
private |
◆ _maxNotGrayMemberLevel
| uint8 KillRewarder::_maxNotGrayMemberLevel |
|
private |
◆ _sumLevel
| uint32 KillRewarder::_sumLevel |
|
private |
◆ _victim
| Unit* KillRewarder::_victim |
|
private |
◆ _xp
The documentation for this class was generated from the following files: