35#include <unordered_set>
99#define PLAYER_MAX_SKILLS 128
116#define PLAYER_MAX_DAILY_QUESTS 25
117#define PLAYER_EXPLORED_ZONES_SIZE 128
210#define ACTION_BUTTON_ACTION(X) (uint32(X) & 0x00FFFFFF)
211#define ACTION_BUTTON_TYPE(X) ((uint32(X) & 0xFF000000) >> 24)
212#define MAX_ACTION_BUTTON_ACTION_VALUE (0x00FFFFFF+1)
236#define MAX_ACTION_BUTTONS 144
419#define PLAYER_BYTES_2_OVERRIDE_SPELLS_UINT16_OFFSET (PLAYER_FIELD_BYTES_2_OFFSET_OVERRIDE_SPELLS_ID / 2)
421#define KNOWN_TITLES_SIZE 3
422#define MAX_TITLE_INDEX (KNOWN_TITLES_SIZE * 64)
447#define DISABLED_MIRROR_TIMER -1
505#define MAX_QUEST_OFFSET 5
547#define INVENTORY_SLOT_BAG_0 255
620 bool isContainedIn(std::vector<ItemPosCount>
const& vec)
const;
716#define MAX_PLAYED_TIME_INDEX 2
769#define MAX_PLAYER_SUMMON_DELAY (2*MINUTE)
893#define SPELL_DK_RAISE_ALLY 46619
942 bool TeleportTo(
uint32 mapid,
float x,
float y,
float z,
float orientation,
uint32 options = 0);
944 bool TeleportToBGEntryPoint();
946 bool HasSummonPending()
const;
947 void SendSummonRequestFrom(
Unit* summoner);
948 void SummonIfPossible(
bool agree);
962 void SendInitialPacketsBeforeAddToMap();
963 void SendInitialPacketsAfterAddToMap();
964 void SendSupercededSpell(
uint32 oldSpell,
uint32 newSpell)
const;
968 bool CanInteractWithQuestGiver(
Object* questGiver)
const;
977 uint8 GetChatTag()
const;
987 bool ActivateTaxiPathTo(std::vector<uint32>
const& nodes,
Creature* npc =
nullptr,
uint32 spellid = 0);
988 bool ActivateTaxiPathTo(
uint32 taxi_path_id,
uint32 spellid = 0);
989 void FinishTaxiFlight();
990 void CleanupAfterTaxiFlight();
991 void ContinueTaxiFlight()
const;
992 void SendTaxiNodeStatusMultiple();
1000 bool CanBeGameMaster()
const;
1001 void SetGameMaster(
bool on);
1007 void SetGMVisible(
bool on);
1008 bool Has310Flyer(
bool checkAllSpells,
uint32 excludeSpellId = 0);
1021 void GiveXP(
uint32 xp,
Unit* victim,
float group_rate = 1.0f);
1022 void GiveLevel(
uint8 level);
1023 bool IsMaxLevel()
const;
1025 void InitStatsForLevel(
bool reapplyMods =
false);
1055 void SetRestBonus(
float rest_bonus_new);
1062 void RemoveRestFlag(
RestFlag restFlag);
1071 Pet* GetPet()
const;
1073 void RemovePet(
Pet* pet,
PetSaveMode mode,
bool returnreagent =
false);
1074 uint32 GetPhaseMaskForSpawn()
const;
1078 void AddPetAura(
PetAura const* petSpell);
1079 void RemovePetAura(
PetAura const* petSpell);
1093 void WhisperAddon(std::string
const& text,
Player* receiver);
1099 void SetVirtualItemSlot(
uint8 i,
Item* item);
1102 uint32 GetItemCount(
uint32 item,
bool inBankAlso =
false,
Item* skipItem =
nullptr)
const;
1103 uint32 GetItemCountWithLimitCategory(
uint32 limitCategory,
Item* skipItem =
nullptr)
const;
1109 Bag* GetBagByPos(
uint8 slot)
const;
1110 uint32 GetFreeInventorySpace()
const;
1112 Item* GetShield(
bool useable =
false)
const;
1116 static bool IsInventoryPos(
uint8 bag,
uint8 slot);
1118 static bool IsEquipmentPos(
uint8 bag,
uint8 slot);
1119 static bool IsBagPos(
uint16 pos);
1121 static bool IsBankPos(
uint8 bag,
uint8 slot);
1123 bool IsValidPos(
uint8 bag,
uint8 slot,
bool explicit_pos)
const;
1126 bool HasItemCount(
uint32 item,
uint32 count = 1,
bool inBankAlso =
false)
const;
1127 bool HasItemFitToSpellRequirements(
SpellInfo const* spellInfo,
Item const* ignoreItem =
nullptr)
const;
1128 bool CanNoReagentCast(
SpellInfo const* spellInfo)
const;
1154 void AutoUnequipOffhandIfNeed(
bool force =
false);
1155 bool StoreNewItemInBestSlots(
uint32 item_id,
uint32 item_count);
1156 void AutoStoreLoot(
uint8 bag,
uint8 slot,
uint32 loot_id,
LootStore const& store,
bool broadcast =
false,
bool createdByPlayer =
false);
1158 void StoreLootItem(
uint8 lootSlot,
Loot* loot);
1166 void ApplyEquipCooldown(
Item* pItem);
1167 void SetAmmo(
uint32 item);
1170 bool CheckAmmoCompatibility(
ItemTemplate const* ammo_proto)
const;
1171 void QuickEquipItem(
uint16 pos,
Item* pItem);
1172 void VisualizeItem(
uint8 slot,
Item* pItem);
1173 void SetVisibleItemSlot(
uint8 slot,
Item* pItem);
1175 void RemoveItem(
uint8 bag,
uint8 slot,
bool update);
1176 void MoveItemFromInventory(
uint8 bag,
uint8 slot,
bool update);
1178 void MoveItemToInventory(
ItemPosCountVec const& dest,
Item* pItem,
bool update,
bool in_characterInventoryDB =
false);
1180 void RemoveItemDependentAurasAndCasts(
Item* pItem);
1181 void DestroyItem(
uint8 bag,
uint8 slot,
bool update);
1182 uint32 DestroyItemCount(
uint32 item,
uint32 count,
bool update,
bool unequip_check =
false);
1183 void DestroyItemCount(
Item* item,
uint32& count,
bool update);
1184 void DestroyConjuredItems(
bool update);
1185 void DestroyZoneLimitedItem(
bool update,
uint32 new_zone);
1188 void AddItemToBuyBackSlot(
Item* pItem);
1190 void RemoveItemFromBuyBackSlot(
uint32 slot,
bool del);
1199 bool IsUseEquipedWeapon(
bool mainhand)
const;
1200 bool IsTwoHandUsed()
const;
1201 bool IsUsingTwoHandedWeaponInOneHand()
const;
1202 void SendNewItem(
Item* item,
uint32 count,
bool received,
bool created,
bool broadcast =
false,
bool sendChatMessage =
true);
1206 float GetReputationPriceDiscount(
Creature const* creature)
const;
1209 Player* GetTrader()
const;
1215 void UpdateEnchantTime(
uint32 time);
1216 void UpdateSoulboundTradeItems();
1217 void AddTradeableItem(
Item* item);
1218 void RemoveTradeableItem(
Item* item);
1219 void UpdateItemDuration(
uint32 time,
bool realtimeonly =
false);
1220 void AddEnchantmentDurations(
Item* item);
1221 void RemoveEnchantmentDurations(
Item* item);
1222 void RemoveEnchantmentDurationsReferences(
Item* item);
1225 void ApplyEnchantment(
Item* item,
EnchantmentSlot slot,
bool apply,
bool apply_dur =
true,
bool ignore_condition =
false);
1226 void ApplyEnchantment(
Item* item,
bool apply);
1228 void SendEnchantmentDurations();
1229 void AddItemDurations(
Item* item);
1230 void RemoveItemDurations(
Item* item);
1231 void SendItemDurations();
1241 void PrepareGossipMenu(
WorldObject* source,
uint32 menuId = 0,
bool showQuests =
false);
1257 bool IsActiveQuest(
uint32 quest_id)
const;
1258 Quest const* GetNextQuest(
Object const* questGiver,
Quest const* quest)
const;
1259 bool CanSeeStartQuest(
Quest const* quest)
const;
1260 bool CanTakeQuest(
Quest const* quest,
bool msg)
const;
1261 bool CanAddQuest(
Quest const* quest,
bool msg)
const;
1262 bool CanCompleteQuest(
uint32 quest_id);
1263 bool CanCompleteRepeatableQuest(
Quest const* quest);
1264 bool CanRewardQuest(
Quest const* quest,
bool msg);
1265 bool CanRewardQuest(
Quest const* quest,
uint32 reward,
bool msg);
1266 void AddQuestAndCheckCompletion(
Quest const* quest,
Object* questGiver);
1267 void AddQuest(
Quest const* quest,
Object* questGiver);
1268 void AbandonQuest(
uint32 quest_id);
1269 void CompleteQuest(
uint32 quest_id);
1270 void IncompleteQuest(
uint32 quest_id);
1271 void RewardQuest(
Quest const* quest,
uint32 reward,
Object* questGiver,
bool announce =
true);
1272 void SetRewardedQuest(
uint32 quest_id);
1273 void FailQuest(
uint32 quest_id);
1274 bool SatisfyQuestSkill(
Quest const* qInfo,
bool msg)
const;
1275 bool SatisfyQuestLevel(
Quest const* qInfo,
bool msg)
const;
1276 bool SatisfyQuestLog(
bool msg)
const;
1277 bool SatisfyQuestDependentQuests(
Quest const* qInfo,
bool msg)
const;
1278 bool SatisfyQuestPreviousQuest(
Quest const* qInfo,
bool msg)
const;
1279 bool SatisfyQuestDependentPreviousQuests(
Quest const* qInfo,
bool msg)
const;
1280 bool SatisfyQuestBreadcrumbQuest(
Quest const* qInfo,
bool msg)
const;
1281 bool SatisfyQuestDependentBreadcrumbQuests(
Quest const* qInfo,
bool msg)
const;
1282 bool SatisfyQuestClass(
Quest const* qInfo,
bool msg)
const;
1283 bool SatisfyQuestRace(
Quest const* qInfo,
bool msg)
const;
1284 bool SatisfyQuestReputation(
Quest const* qInfo,
bool msg)
const;
1285 bool SatisfyQuestStatus(
Quest const* qInfo,
bool msg)
const;
1286 bool SatisfyQuestConditions(
Quest const* qInfo,
bool msg)
const;
1287 bool SatisfyQuestTimed(
Quest const* qInfo,
bool msg)
const;
1288 bool SatisfyQuestExclusiveGroup(
Quest const* qInfo,
bool msg)
const;
1289 bool SatisfyQuestDay(
Quest const* qInfo,
bool msg)
const;
1290 bool SatisfyQuestWeek(
Quest const* qInfo,
bool msg)
const;
1291 bool SatisfyQuestMonth(
Quest const* qInfo,
bool msg)
const;
1292 bool SatisfyQuestSeasonal(
Quest const* qInfo,
bool msg)
const;
1293 bool GiveQuestSourceItem(
Quest const* quest);
1294 bool TakeQuestSourceItem(
uint32 questId,
bool msg);
1295 bool GetQuestRewardStatus(
uint32 quest_id)
const;
1298 void RemoveActiveQuest(
uint32 questId,
bool update =
true);
1299 void RemoveRewardedQuest(
uint32 questId,
bool update =
true);
1300 void SendQuestUpdate(
uint32 questId);
1303 void SetDailyQuestStatus(
uint32 quest_id);
1304 bool IsDailyQuestDone(
uint32 quest_id);
1305 void SetWeeklyQuestStatus(
uint32 quest_id);
1306 void SetMonthlyQuestStatus(
uint32 quest_id);
1307 void SetSeasonalQuestStatus(
uint32 quest_id);
1308 void ResetDailyQuestStatus();
1309 void ResetWeeklyQuestStatus();
1310 void ResetMonthlyQuestStatus();
1311 void ResetSeasonalQuestStatus(
uint16 event_id, time_t eventStartTime);
1326 void AreaExploredOrEventHappens(
uint32 questId);
1329 void ItemRemovedQuestCheck(
uint32 entry,
uint32 count);
1332 void KilledPlayerCredit(
uint16 count = 1);
1333 void KilledPlayerCreditForQuest(
uint16 count,
Quest const* quest);
1336 void MoneyChanged(
uint32 value);
1337 void ReputationChanged(
FactionEntry const* factionEntry);
1338 void ReputationChanged2(
FactionEntry const* factionEntry);
1339 bool HasQuestForItem(
uint32 itemId,
uint32 excludeQuestId = 0,
bool turnIn =
false)
const;
1340 bool HasQuestForGO(
int32 goId)
const;
1341 void UpdateVisibleGameobjectsOrSpellClicks();
1342 bool CanShareQuest(
uint32 questId)
const;
1344 void SendQuestComplete(
uint32 questId)
const;
1345 void SendQuestReward(
Quest const* quest,
uint32 XP)
const;
1347 void SendQuestTimerFailed(
uint32 questId)
const;
1349 void SendQuestConfirmAccept(
Quest const* quest,
Player* pReceiver)
const;
1351 void SendQuestUpdateAddItem(
Quest const* quest,
uint32 itemIdx,
uint16 count)
const;
1353 void SendQuestUpdateAddPlayer(
Quest const* quest,
uint16 oldCount,
uint16 addCount);
1354 void SendQuestGiverStatusMultiple();
1367 bool HasPvPForcingQuest()
const;
1377 static bool LoadPositionFromDB(
uint32& mapid,
float& x,
float& y,
float& z,
float& o,
bool& in_flight,
ObjectGuid guid);
1386 void SaveToDB(
bool create =
false);
1393 static void DeleteFromDB(
ObjectGuid playerguid,
uint32 accountId,
bool updateRealmChars =
true,
bool deleteFinally =
false);
1394 static void DeleteOldCharacters();
1395 static void DeleteOldCharacters(
uint32 keepDays);
1400 void SendTalentWipeConfirm(
ObjectGuid trainerGuid)
const;
1401 void ResetPetTalents();
1402 void RegenerateAll();
1403 void Regenerate(
Powers power);
1404 void RegenerateHealth();
1409 bool ModifyMoney(
int32 amount,
bool sendError =
true);
1412 void SetMoney(
uint32 value);
1418 bool IsQuestRewarded(
uint32 quest_id)
const;
1420 Unit* GetSelectedUnit()
const;
1421 Player* GetSelectedPlayer()
const;
1427 void SendNewMail()
const;
1428 void UpdateNextMailTimeAndUnreads();
1429 void AddNewMailDeliverTime(time_t deliver_time);
1431 void RemoveMail(
uint32 id);
1439 void SendItemRetrievalMail(
uint32 itemEntry,
uint32 count);
1448 typedef std::unordered_map<ObjectGuid::LowType, Item*>
ItemMap;
1453 void AddMItem(
Item* it);
1456 void SendOnCancelExpectedVehicleRideAura()
const;
1457 void PetSpellInitialize();
1458 void CharmSpellInitialize();
1459 void PossessSpellInitialize();
1460 void VehicleSpellInitialize();
1461 void SendRemoveControlBar()
const;
1463 bool HasActiveSpell(
uint32 spell)
const;
1464 bool IsSpellFitByClassAndRace(
uint32 spell_id)
const;
1465 bool HandlePassiveSpellLearn(
SpellInfo const* spellInfo);
1467 void SendProficiency(
ItemClass itemClass,
uint32 itemSubclassMask)
const;
1468 void SendInitialSpells();
1469 void SendUnlearnSpells();
1470 bool AddSpell(
uint32 spellId,
bool active,
bool learning,
bool dependent,
bool disabled,
bool loading =
false,
uint32 fromSkill = 0);
1471 void LearnSpell(
uint32 spell_id,
bool dependent,
uint32 fromSkill = 0);
1472 void RemoveSpell(
uint32 spell_id,
bool disabled =
false,
bool learn_low_rank =
true);
1473 void ResetSpells(
bool myClassOnly =
false);
1474 void LearnCustomSpells();
1475 void LearnDefaultSkills();
1477 void LearnQuestRewardedSpells();
1478 void LearnQuestRewardedSpells(
Quest const* quest);
1479 void AddTemporarySpell(
uint32 spellId);
1480 void RemoveTemporarySpell(
uint32 spellId);
1483 std::string GetGuildName()
const;
1487 void SetFreeTalentPoints(
uint32 points);
1501 bool ResetTalents(
bool involuntarily =
false);
1502 uint32 ResetTalentsCost()
const;
1503 void IncreaseResetTalentsCostAndCounters(
uint32 lastResetTalentsCost);
1504 void InitTalentForLevel();
1507 void SendTalentsInfoData(
bool pet);
1510 void SendTameFailure(
uint8 result);
1511 bool AddTalent(
uint32 spellId,
uint8 spec,
bool learning);
1512 bool HasTalent(
uint32 spell_id,
uint8 spec)
const;
1513 uint32 CalculateTalentsPoints()
const;
1516 void UpdateTalentGroupCount(
uint8 count);
1517 void ActivateTalentGroup(
uint8 group);
1520 void InitGlyphsForLevel();
1532 void InitPrimaryProfessions();
1543 void SetSpellModTakingSpell(
Spell* spell,
bool apply);
1545 void RemoveArenaSpellCooldowns(
bool removeActivePetCooldowns =
false);
1548 void UpdatePotionCooldown(
Spell* spell =
nullptr);
1554 _resurrectionData.reset();
1559 if (!IsResurrectRequested())
1562 return !_resurrectionData->GUID.IsEmpty() && _resurrectionData->GUID == guid;
1566 void ResurrectUsingRequestData();
1567 void ResurrectUsingRequestDataImpl();
1576 void removeActionButton(
uint8 button);
1579 void SendActionButtons(
uint32 state)
const;
1580 bool IsActionButtonDataValid(
uint8 button,
uint32 action,
uint8 type)
const;
1584 void UpdatePvPState(
bool onlyFFA =
false);
1585 void SetPvP(
bool state)
override;
1586 void UpdatePvP(
bool state,
bool override =
false);
1588 void UpdateArea(
uint32 newArea);
1591 void UpdateZoneDependentAuras(
uint32 zone_id);
1592 void UpdateAreaDependentAuras(
uint32 area_id);
1594 void UpdateAfkReport(time_t currTime);
1595 void UpdatePvPFlag(time_t currTime);
1596 void SetContestedPvP(
Player* attackedPlayer =
nullptr);
1597 void UpdateContestedPvP(
uint32 currTime);
1599 void ResetContestedPvP();
1603 void UpdateDuelFlag(time_t currTime);
1604 void CheckDuelDistance(time_t currTime);
1606 void SendDuelCountdown(
uint32 counter);
1608 bool IsGroupVisibleFor(
Player const* p)
const;
1609 bool IsInSameGroupWith(
Player const* p)
const;
1610 bool IsInSameRaidWith(
Player const* p)
const;
1611 void UninviteFromGroup();
1614 void SendUpdateToOutOfRangeGroupMembers();
1628 static void LeaveAllArenaTeams(
ObjectGuid guid);
1640 void StoreRaidMapDifficulty();
1645 bool UpdateCraftSkill(
uint32 spellid);
1647 bool UpdateFishingSkill();
1652 float GetHealthBonusFromStamina();
1653 float GetManaBonusFromIntellect();
1657 void ApplySpellPenetrationBonus(
int32 amount,
bool apply);
1662 void ApplyFeralAPBonus(
int32 amount,
bool apply);
1664 void UpdateShieldBlockValue();
1665 void ApplySpellPowerBonus(
int32 amount,
bool apply);
1666 void UpdateSpellDamageAndHealingBonus();
1669 void UpdateAllRatings();
1673 void UpdateDefenseBonusesMod();
1675 float GetMeleeCritFromAgility()
const;
1676 void GetDodgeFromAgility(
float &diminishing,
float &nondiminishing)
const;
1677 float GetMissPercentageFromDefense()
const;
1678 float GetSpellCritFromIntellect()
const;
1679 float OCTRegenHPPerSpirit()
const;
1680 float OCTRegenMPPerSpirit()
const;
1691 void UpdateBlockPercentage();
1693 void UpdateAllCritPercentages();
1694 void UpdateParryPercentage();
1695 void UpdateDodgePercentage();
1696 void UpdateMeleeHitChances();
1697 void UpdateRangedHitChances();
1698 void UpdateSpellHitChances();
1700 void UpdateAllSpellCritChances();
1701 void UpdateSpellCritChance(
uint32 school);
1702 void UpdateArmorPenetration(
int32 amount);
1704 void ApplyManaRegenBonus(
int32 amount,
bool apply);
1705 void ApplyHealthRegenBonus(
int32 amount,
bool apply);
1706 void UpdatePowerRegen(
Powers power);
1707 void UpdateRuneRegen(
RuneType rune);
1708 float GetPowerRegen(
Powers power)
const;
1717 void RemovedInsignia(
Player* looterPlr);
1724 void SendLogXPGain(
uint32 GivenXP,
Unit* victim,
uint32 BonusXP,
bool recruitAFriend =
false,
float group_rate=1.0f)
const;
1727 void SendAttackSwingCantAttack()
const;
1728 void SendAttackSwingCancelAttack()
const;
1729 void SendAttackSwingDeadTarget()
const;
1730 void SendAttackSwingNotInRange()
const;
1731 void SendAttackSwingBadFacingAttack()
const;
1732 void SendAutoRepeatCancel(
Unit* target);
1733 void SendExplorationExperience(
uint32 Area,
uint32 Experience)
const;
1735 void SendDungeonDifficulty(
bool IsInGroup)
const;
1736 void SendRaidDifficulty(
bool IsInGroup,
int32 forcedDifficulty = -1)
const;
1737 void ResetInstances(
uint8 method,
bool isRaid);
1738 void SendResetInstanceSuccess(
uint32 MapId)
const;
1739 void SendResetInstanceFailed(
uint32 reason,
uint32 MapId)
const;
1740 void SendResetFailedNotify(
uint32 mapid)
const;
1742 bool UpdatePosition(
float x,
float y,
float z,
float orientation,
bool teleport =
false)
override;
1752 Corpse* GetCorpse()
const;
1753 void SpawnCorpseBones(
bool triggerSave =
true);
1759 uint32 GetResurrectionSpellId();
1760 void ResurrectPlayer(
float restore_percent,
bool applySickness =
false);
1761 void BuildPlayerRepop();
1762 void RepopAtGraveyard();
1766 void SendDurabilityLoss();
1767 void DurabilityLossAll(
double percent,
bool inventory);
1768 void DurabilityLoss(
Item* item,
double percent);
1769 void DurabilityPointsLossAll(
int32 points,
bool inventory);
1770 void DurabilityPointsLoss(
Item* item,
int32 points);
1772 void DurabilityRepairAll(
bool takeCost,
float discountMod,
bool guildBank);
1773 void DurabilityRepair(
uint16 pos,
bool takeCost,
float discountMod);
1775 void UpdateMirrorTimers();
1776 void StopMirrorTimers();
1781 void JoinedChannel(
Channel* c);
1783 void CleanupChannels();
1784 void UpdateLocalChannels(
uint32 newZone);
1785 void LeaveLFGChannel();
1790 void UpdateDefense();
1803 bool HasSkill(
uint32 skill)
const;
1804 void LearnSkillRewardedSpells(
uint32 skillId,
uint32 skillValue);
1825 void ProcessDelayedOperations();
1827 void CheckAreaExplore();
1828 void CheckOutdoorsAuraRequirements();
1834 void SetFactionForRace(
uint8 race);
1836 void InitDisplayIds();
1838 bool IsAtGroupRewardDistance(
WorldObject const* pRewardSource)
const;
1839 bool IsAtRecruitAFriendDistance(
WorldObject const* pOther)
const;
1840 void RewardPlayerAndGroupAtKill(
Unit* victim,
bool isBattleGround);
1841 void RewardPlayerAndGroupAtEvent(
uint32 creature_id,
WorldObject* pRewardSource);
1842 bool isHonorOrXPTarget(
Unit const* victim)
const;
1844 bool GetsRecruitAFriendBonus(
bool forXP);
1851 void RewardReputation(
Unit* victim,
float rate);
1852 void RewardReputation(
Quest const* quest);
1856 void UpdateSkillsForLevel();
1857 void UpdateWeaponsSkillsToMaxSkillsForLevel();
1858 void ModifySkillBonus(
uint32 skillid,
int32 val,
bool talent);
1864 void UpdateHonorFields();
1865 bool RewardHonor(
Unit* victim,
uint32 groupsize,
int32 honor = -1,
bool pvptoken =
false);
1870 uint32 GetMaxPersonalArenaRatingRequirement(
uint32 minarenaslot)
const;
1871 void SetHonorPoints(
uint32 value);
1872 void SetArenaPoints(
uint32 value);
1882 void SetDrunkValue(
uint8 newDrunkValue,
uint32 itemId = 0);
1885 void UpdateInvisibilityDrunkDetect();
1889 uint32 GetCorpseReclaimDelay(
bool pvp)
const;
1890 void UpdateCorpseReclaimDelay();
1891 int32 CalculateCorpseReclaimDelay(
bool load =
false)
const;
1892 void SendCorpseReclaimDelay(
uint32 delay)
const;
1896 void SetCanParry(
bool value);
1898 void SetCanBlock(
bool value);
1899 bool CanTitanGrip(
Item const* item)
const;
1900 void SetCanTitanGrip(
bool value,
uint32 penaltySpellId = 0,
int32 allowedItemClass = 0,
int32 allowedItemSubClassMask = 0);
1901 void CheckTitanGripPenalty();
1904 void SetRegularAttackTime();
1906 void HandleBaseModFlatValue(
BaseModGroup modGroup,
float amount,
bool apply);
1907 void ApplyBaseModPctValue(
BaseModGroup modGroup,
float pct);
1909 void SetBaseModFlatValue(
BaseModGroup modGroup,
float val);
1910 void SetBaseModPctValue(
BaseModGroup modGroup,
float val);
1916 float GetTotalBaseModValue(
BaseModGroup modGroup)
const;
1918 void _ApplyAllStatBonuses();
1919 void _RemoveAllStatBonuses();
1921 void ResetAllPowers();
1925 void CastAllObtainSpells();
1926 void ApplyItemObtainSpells(
Item* item,
bool apply);
1929 void UpdateAllWeaponDependentCritAuras();
1932 void ApplyItemDependentAuras(
Item* item,
bool apply);
1936 void _ApplyItemMods(
Item* item,
uint8 slot,
bool apply,
bool updateItemAuras =
true);
1937 void _RemoveAllItemMods();
1938 void _ApplyAllItemMods();
1939 void _ApplyAllLevelScaleItemMods(
bool apply);
1942 void _ApplyItemBonuses(
ItemTemplate const* proto,
uint8 slot,
bool apply,
bool only_level_scale =
false);
1944 void _ApplyAmmoBonuses();
1945 bool EnchantmentFitsRequirements(
uint32 enchantmentcondition,
int8 slot)
const;
1946 void ToggleMetaGemsActive(
uint8 exceptslot,
bool apply);
1947 void CorrectMetaGemEnchants(
uint8 slot,
bool apply);
1948 void InitDataForForm(
bool reapplyMods =
false);
1950 void ApplyItemEquipSpell(
Item* item,
bool apply,
bool form_change =
false);
1951 void ApplyEquipSpell(
SpellInfo const* spellInfo,
Item* item,
bool apply,
bool form_change =
false);
1952 void UpdateEquipSpellsAtFormChange();
1953 void CastItemCombatSpell(
DamageInfo const& damageInfo);
1957 void SendEquipmentSetList();
1959 void DeleteEquipmentSet(
uint64 setGuid);
1961 void SendInitWorldStates(
uint32 zoneId,
uint32 areaId);
1962 void SendUpdateWorldState(
uint32 variable,
uint32 value)
const;
1963 void SendDirectMessage(
WorldPacket const* data)
const;
1964 void SendBGWeekendWorldStates()
const;
1965 void SendBattlefieldWorldStates()
const;
1967 void SendAurasForTarget(
Unit* target,
bool force =
false)
const;
1975 void SendNotifyLootItemRemoved(
uint8 lootSlot)
const;
1976 void SendNotifyLootMoneyRemoved()
const;
1983 bool InArena()
const;
1988 bool InBattlegroundQueue(
bool ignoreArena =
false)
const;
1998 bool HasFreeBattlegroundQueueId()
const;
2001 bool IsInvitedForBattlegroundInstance(
uint32 instanceId)
const;
2003 void SetBattlegroundEntryPoint();
2005 void SetBGTeam(
uint32 team);
2006 uint32 GetBGTeam()
const;
2008 void LeaveBattleground(
bool teleportToEntryPoint =
true,
bool withoutDeserterDebuff =
false);
2009 bool CanJoinToBattleground(
Battleground const* bg)
const;
2010 bool CanReportAfkDueToLimit();
2011 void ReportedAfkBy(
Player* reporter);
2015 bool CanUseBattlegroundObject(
GameObject* gameobject)
const;
2016 bool isTotalImmune()
const;
2017 bool CanCaptureTowerPoint()
const;
2020 void SetRandomWinner(
bool isWinner);
2028 bool IsOutdoorPvPActive()
const;
2034 bool IsImmuneToEnvironmentalDamage()
const;
2062 void SetFallInformation(
uint32 time,
float z);
2067 void SetClientControl(
Unit* target,
bool allowMove);
2070 void SetViewpoint(
WorldObject* target,
bool apply);
2072 void StopCastingCharm();
2073 void StopCastingBindSight()
const;
2079 void Recall() { TeleportTo(m_recall_location); }
2082 void SendBindPointUpdate();
2091 uint8 GetStartLevel(
uint8 playerClass)
const;
2097 bool HaveAtClient(
Object const* u)
const;
2101 bool IsVisibleGloballyFor(
Player const* player)
const;
2103 void SendInitialVisiblePackets(
Unit* target)
const;
2105 void UpdateVisibilityForPlayer();
2107 void UpdateTriggerVisibility();
2111 void UpdateVisibilityOf(T* target,
UpdateData& data, std::set<Unit*>& visibleNow);
2117 bool isUsingLfg()
const;
2118 bool inRandomLfgDungeon()
const;
2126 void UnsummonPetTemporaryIfAny();
2127 void ResummonPetTemporaryUnSummonedIfAny();
2128 bool IsPetNeedBeTemporaryUnsummoned()
const;
2130 void SendCinematicStart(
uint32 CinematicSequenceId)
const;
2131 void SendMovieStart(
uint32 movieId);
2141 void UpdateHomebindTime(
uint32 time);
2150 void UnbindInstance(
uint32 mapid,
Difficulty difficulty,
bool unload =
false);
2151 void UnbindInstance(BoundInstancesMap::iterator &itr,
Difficulty difficulty,
bool unload =
false);
2153 void BindToInstance();
2154 void SetPendingBind(
uint32 instanceId,
uint32 bindTimer);
2156 void SendRaidInfo();
2157 void SendSavedInstances();
2159 bool CheckInstanceValidity(
bool );
2174 void SetGroup(
Group* group,
int8 subgroup = -1);
2180 Player* GetNextRandomRaidMember(
float radius);
2184 void SetBattlegroundOrBattlefieldRaid(
Group* group,
int8 subgroup = -1);
2185 void RemoveFromBattlegroundOrBattlefieldRaid();
2189 void SetOriginalGroup(
Group* group,
int8 subgroup = -1);
2200 bool isAllowedToLoot(
Creature const* creature)
const;
2209 bool IsBaseRuneSlotsOnCooldown(
RuneType runeType)
const;
2214 void SetRuneCooldown(
uint8 index,
uint32 cooldown,
bool casted =
false);
2218 void RemoveRunesByAuraEffect(
AuraEffect const* aura);
2219 void RestoreBaseRune(
uint8 index);
2221 void ResyncRunes()
const;
2222 void AddRunePower(
uint8 index)
const;
2225 void SendRespondInspectAchievements(
Player* player)
const;
2226 bool HasAchieved(
uint32 achievementId)
const;
2227 void ResetAchievements();
2234 bool HasTitle(
uint32 bitIndex)
const;
2239 bool CanSeeSpellClickOn(
Creature const* creature)
const;
2245 float GetAverageItemLevel()
const;
2253 void SendMovementSetCollisionHeight(
float height);
2258 std::string GetMapAreaAndZoneString()
const;
2259 std::string GetCoordsMapAreaAndZoneString()
const;
2312 void _LoadGlyphAuras();
2360 void HandleSobering();
2363 void HandleDrowning(
uint32 time_diff);
2371 void outDebugValues()
const;
2518 void SendRefundInfo(
Item* item);
2519 void RefundItem(
Item* item);
2523 void AddKnownCurrency(
uint32 itemId);
2533 bool IsInstanceLoginGameMasterException()
const;
AchievementCriteriaTimedTypes
AchievementCriteriaCondition
SQLTransaction< CharacterDatabaseConnection > CharacterDatabaseTransaction
std::shared_ptr< PreparedResultSet > PreparedQueryResult
std::map< uint64, EquipmentSetInfo > EquipmentSetContainer
void RemoveItemFromUpdateQueueOf(Item *item, Player *player)
void AddItemToUpdateQueueOf(Item *item, Player *player)
std::list< ObjectGuid > GuidList
std::unordered_set< ObjectGuid > GuidUnorderedSet
std::set< ObjectGuid > GuidSet
std::optional< T > Optional
Optional helper class to wrap optional values within.
@ EQUIPMENT_SLOT_SHOULDERS
@ EQUIPMENT_SLOT_MAINHAND
@ EQUIPMENT_SLOT_TRINKET1
@ EQUIPMENT_SLOT_TRINKET2
std::deque< Mail * > PlayerMails
std::vector< ItemPosCount > ItemPosCountVec
@ ARENA_TEAM_PERSONAL_RATING
@ ARENA_TEAM_GAMES_SEASON
EnviromentalDamage
Type of environmental damages.
@ ERR_REFER_A_FRIEND_TARGET_TOO_HIGH
@ ERR_REFER_A_FRIEND_SUMMON_OFFLINE_S
@ ERR_REFER_A_FRIEND_DIFFERENT_FACTION
@ ERR_REFER_A_FRIEND_NONE
@ ERR_REFER_A_FRIEND_NO_TARGET
@ ERR_REFER_A_FRIEND_NOT_NOW
@ ERR_REFER_A_FRIEND_INSUF_EXPAN_LVL
@ ERR_REFER_A_FRIEND_INSUFFICIENT_GRANTABLE_LEVELS
@ ERR_REFER_A_FRIEND_NOT_REFERRED_BY
@ ERR_REFER_A_FRIEND_TOO_FAR
@ ERR_REFER_A_FRIEND_SUMMON_LEVEL_MAX_I
@ ERR_REFER_A_FRIEND_NOT_IN_GROUP
@ ERR_REFER_A_FRIEND_GRANT_LEVEL_MAX_I
@ ERR_REFER_A_FRIEND_SUMMON_COOLDOWN
@ INVENTORY_SLOT_BAG_START
@ TELE_TO_TRANSPORT_TELEPORT
@ TELE_TO_NOT_LEAVE_COMBAT
@ TELE_TO_NOT_UNSUMMON_PET
@ TELE_REVIVE_AT_TELEPORT
@ TELE_TO_NOT_LEAVE_TRANSPORT
TC_GAME_API void AddItemsSetItem(Player *player, Item *item)
@ PLAYER_FIELD_BYTE2_STEALTH
@ PLAYER_FIELD_BYTE2_INVISIBILITY_GLOW
@ PLAYER_FIELD_BYTE2_NONE
TC_GAME_API void RemoveItemsSetItem(Player *player, ItemTemplate const *proto)
@ SKILL_PERM_BONUS_FIELD_OFFSET
@ SKILL_PERM_BONUS_SHORT_OFFSET
@ SKILL_STEP_SHORT_OFFSET
@ SKILL_TEMP_BONUS_FIELD_OFFSET
@ SKILL_MAX_RANK_FIELD_OFFSET
@ SKILL_RANK_FIELD_OFFSET
@ SKILL_MAX_RANK_SHORT_OFFSET
@ SKILL_TEMP_BONUS_SHORT_OFFSET
@ SKILL_RANK_SHORT_OFFSET
@ SKILL_STEP_FIELD_OFFSET
@ PLAYER_FIELD_BYTE_NO_RELEASE_WINDOW
@ PLAYER_FIELD_BYTE_TRACK_STEALTHED
@ PLAYER_FIELD_BYTE_RELEASE_TIMER
@ TRANSFER_ABORT_TOO_MANY_INSTANCES
@ TRANSFER_ABORT_DIFFICULTY
@ TRANSFER_ABORT_UNIQUE_MESSAGE
@ TRANSFER_ABORT_MAP_NOT_ALLOWED
@ TRANSFER_ABORT_INSUF_EXPAN_LVL
@ TRANSFER_ABORT_NOT_FOUND1
@ TRANSFER_ABORT_TOO_MANY_REALM_INSTANCES
@ TRANSFER_ABORT_MAX_PLAYERS
@ TRANSFER_ABORT_NOT_FOUND3
@ TRANSFER_ABORT_ZONE_IN_COMBAT
@ TRANSFER_ABORT_NOT_FOUND
@ TRANSFER_ABORT_NEED_GROUP
@ TRANSFER_ABORT_NOT_FOUND2
@ TRANSFER_ABORT_REALM_ONLY
@ REST_STATE_NOT_RAF_LINKED
@ PLAYER_EXTRA_LEVEL_BOOSTED
@ PLAYER_EXTRA_ACCEPT_WHISPERS
@ PLAYER_EXTRA_GM_INVISIBLE
@ PLAYER_EXTRA_HAS_310_FLYER
@ PLAYER_EXTRA_GRANTED_LEVELS_FROM_RAF
@ PLAYER_EXTRA_HAS_RACE_CHANGED
std::unordered_map< uint32, PlayerSpell > PlayerSpellMap
std::unordered_set< SpellModifier * > SpellModContainer
@ PLAYER_ALLOW_ONLY_ABILITY
@ PLAYER_FLAGS_HIDE_CLOAK
@ PLAYER_FLAGS_PLAYED_LONG_TIME
@ PLAYER_FLAGS_CONTESTED_PVP
@ PLAYER_FLAGS_NO_XP_GAIN
@ PLAYER_FLAGS_GROUP_LEADER
@ PLAYER_FLAGS_IS_OUT_OF_BOUNDS
@ PLAYER_FLAGS_VOICE_CHAT
@ PLAYER_FLAGS_TAXI_BENCHMARK
@ PLAYER_FLAGS_LOW_LEVEL_RAID_ENABLED
@ PLAYER_FLAGS_COMMENTATOR2
@ PLAYER_FLAGS_PLAYED_TOO_LONG
std::map< uint32, QuestSaveType > QuestStatusSaveMap
@ PLAYER_FIELD_BYTES_OFFSET_LIFETIME_MAX_PVP_RANK
@ PLAYER_FIELD_BYTES_OFFSET_ACTION_BAR_TOGGLES
@ PLAYER_FIELD_BYTES_OFFSET_RAF_GRANTABLE_LEVEL
@ PLAYER_FIELD_BYTES_OFFSET_FLAGS
@ INVENTORY_SLOT_ITEM_START
@ INVENTORY_SLOT_ITEM_END
@ DELAYED_BG_MOUNT_RESTORE
Flag to restore mount state after teleport from BG.
@ DELAYED_BG_TAXI_RESTORE
Flag to restore taxi state after teleport from BG.
@ DELAYED_SPELL_CAST_DESERTER
@ DELAYED_RESURRECT_PLAYER
@ REST_FLAG_IN_FACTION_AREA
std::unordered_map< uint32, PlayerSpellState > PlayerTalentMap
std::map< uint8, ActionButton > ActionButtonList
std::unordered_map< uint32, SkillStatusData > SkillStatusMap
#define ACTION_BUTTON_TYPE(X)
@ CURRENCYTOKEN_SLOT_START
@ ERR_BANKSLOT_FAILED_TOO_MANY
@ ERR_BANKSLOT_INSUFFICIENT_FUNDS
#define MAX_PLAYED_TIME_INDEX
@ UNDERWATER_EXIST_TIMERS
@ RAID_INSTANCE_WARNING_MIN
@ RAID_INSTANCE_WARNING_MIN_SOON
@ RAID_INSTANCE_WARNING_HOURS
@ AT_LOGIN_RESET_PET_TALENTS
@ AT_LOGIN_CHANGE_FACTION
@ PLAYER_BYTES_3_OFFSET_PVP_TITLE
@ PLAYER_BYTES_3_OFFSET_INEBRIATION
@ PLAYER_BYTES_3_OFFSET_GENDER
@ PLAYER_BYTES_3_OFFSET_ARENA_FACTION
#define ACTION_BUTTON_ACTION(X)
std::list< EnchantDuration > EnchantDurationList
TC_GAME_API uint32 const MAX_MONEY_AMOUNT
@ PLAYER_BYTES_OFFSET_HAIR_COLOR_ID
@ PLAYER_BYTES_OFFSET_HAIR_STYLE_ID
@ PLAYER_BYTES_OFFSET_SKIN_ID
@ PLAYER_BYTES_OFFSET_FACE_ID
@ QUEST_FORCE_DELETE_SAVE_TYPE
@ QUEST_DEFAULT_SAVE_TYPE
@ REPUTATION_SOURCE_SPELL
@ REPUTATION_SOURCE_QUEST
@ REPUTATION_SOURCE_MONTHLY_QUEST
@ REPUTATION_SOURCE_REPEATABLE_QUEST
@ REPUTATION_SOURCE_WEEKLY_QUEST
@ REPUTATION_SOURCE_DAILY_QUEST
@ PLAYER_FIELD_BYTES_2_OFFSET_OVERRIDE_SPELLS_ID
@ PLAYER_FIELD_BYTES_2_OFFSET_AURA_VISION
@ PLAYER_FIELD_BYTES_2_OFFSET_IGNORE_POWER_REGEN_PREDICTION_MASK
std::map< uint32, QuestStatusData > QuestStatusMap
std::set< uint32 > RewardedQuestSet
@ PLAYER_BYTES_2_OFFSET_PARTY_TYPE
@ PLAYER_BYTES_2_OFFSET_BANK_BAG_SLOTS
@ PLAYER_BYTES_2_OFFSET_REST_STATE
@ PLAYER_BYTES_2_OFFSET_FACIAL_STYLE
@ PLAYER_LOGIN_QUERY_LOAD_SPELL_COOLDOWNS
@ PLAYER_LOGIN_QUERY_LOAD_GLYPHS
@ PLAYER_LOGIN_QUERY_LOAD_DECLINED_NAMES
@ PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS_REW
@ PLAYER_LOGIN_QUERY_LOAD_DAILY_QUEST_STATUS
@ PLAYER_LOGIN_QUERY_LOAD_SEASONAL_QUEST_STATUS
@ PLAYER_LOGIN_QUERY_LOAD_SOCIAL_LIST
@ PLAYER_LOGIN_QUERY_LOAD_ACTIONS
@ PLAYER_LOGIN_QUERY_LOAD_SKILLS
@ PLAYER_LOGIN_QUERY_LOAD_BG_DATA
@ PLAYER_LOGIN_QUERY_LOAD_ACCOUNT_DATA
@ PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS
@ PLAYER_LOGIN_QUERY_LOAD_PET_SLOTS
@ PLAYER_LOGIN_QUERY_LOAD_INVENTORY
@ PLAYER_LOGIN_QUERY_LOAD_REPUTATION
@ PLAYER_LOGIN_QUERY_LOAD_FROM
@ PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS
@ PLAYER_LOGIN_QUERY_LOAD_WEEKLY_QUEST_STATUS
@ PLAYER_LOGIN_QUERY_LOAD_MONTHLY_QUEST_STATUS
@ PLAYER_LOGIN_QUERY_LOAD_GUILD
@ PLAYER_LOGIN_QUERY_LOAD_EQUIPMENT_SETS
@ PLAYER_LOGIN_QUERY_LOAD_MAILS
@ PLAYER_LOGIN_QUERY_LOAD_AURAS
@ PLAYER_LOGIN_QUERY_LOAD_TALENTS
@ PLAYER_LOGIN_QUERY_LOAD_BANNED
@ PLAYER_LOGIN_QUERY_LOAD_ARENA_INFO
@ PLAYER_LOGIN_QUERY_LOAD_GROUP
@ PLAYER_LOGIN_QUERY_LOAD_CRITERIA_PROGRESS
@ PLAYER_LOGIN_QUERY_LOAD_HOME_BIND
@ PLAYER_LOGIN_QUERY_LOAD_CORPSE_LOCATION
@ PLAYER_LOGIN_QUERY_LOAD_SPELLS
@ PLAYER_LOGIN_QUERY_LOAD_BOUND_INSTANCES
@ PLAYER_LOGIN_QUERY_LOAD_RANDOM_BG
@ PLAYER_LOGIN_QUERY_LOAD_ACHIEVEMENTS
std::list< Item * > ItemDurationList
static void SaveToDB(QuestPool const &pool, CharacterDatabaseTransaction trans)
#define MAX_TALENT_GROUPS
@ TRADE_STATUS_TRADE_CANCELED
#define MAX_GLYPH_SLOT_INDEX
#define PLAYER_MAX_BATTLEGROUND_QUEUES
@ GROUP_REMOVEMETHOD_DEFAULT
@ SPELL_AURA_ADD_PCT_MODIFIER
@ SPELL_AURA_ADD_FLAT_MODIFIER
@ SPELL_AURA_ALLOW_TAME_PET_TYPE
NPCFlags
Non Player Character flags.
#define MAX_COMBAT_RATING
@ PLAYER_FAKE_INEBRIATION
@ PLAYER_FIELD_ARENA_CURRENCY
@ PLAYER_FIELD_HONOR_CURRENCY
@ PLAYER_FIELD_GLYPH_SLOTS_1
@ PLAYER_FIELD_ARENA_TEAM_INFO_1_1
@ PLAYER_CHARACTER_POINTS1
@ PLAYER_CHARACTER_POINTS2
Class used to access individual fields of database query result.
static ObjectGuid const Empty
uint8 GetByteValue(uint16 index, uint8 offset) const
void SetByteValue(uint16 index, uint8 offset, uint8 value)
int32 GetInt32Value(uint16 index) const
void SetInt16Value(uint16 index, uint8 offset, int16 value)
void SetUInt16Value(uint16 index, uint8 offset, uint16 value)
uint32 GetUInt32Value(uint16 index) const
uint16 GetUInt16Value(uint16 index, uint8 offset) const
virtual void BuildCreateUpdateBlockForPlayer(UpdateData *data, Player *target) const
void ApplyModFlag(uint16 index, uint32 flag, bool apply)
void SetGuidValue(uint16 index, ObjectGuid value)
bool HasFlag(uint16 index, uint32 flag) const
virtual void SetObjectScale(float scale)
void SetUInt32Value(uint16 index, uint32 value)
ObjectGuid GetGUID() const
void InitTaxiNodesForLevel(uint32 race, uint32 chrClass, uint8 level)
void SetSemaphoreTeleportNear(bool semphsetting)
bool IsValidPos(uint16 pos, bool explicit_pos) const
WorldLocation m_recall_location
WorldLocation m_summon_location
uint8 GetGrantableLevels() const
void SetTalentGroupsCount(uint8 count)
uint32 GetArmorProficiency() const
GroupReference m_originalGroup
static bool IsEquipmentPos(uint16 pos)
Difficulty GetRaidDifficulty() const
void SetHairStyleId(uint8 hairStyle)
void SetTalentResetTime(time_t time_)
uint32 m_temporaryUnsummonedPetNumber
uint16 GetSkillLineIdByPos(uint32 pos) const
QuestStatusMap m_QuestStatus
uint32 m_ChampioningFaction
WorldLocation const & GetCorpseLocation() const
bool m_bHasDelayedTeleport
void ScheduleDelayedOperation(uint32 operation)
void SaveHealthBeforeDuel()
WorldLocation & GetTeleportDest()
int32 GetFakeDrunkValue() const
uint16 GetSkillRankByPos(uint32 pos) const
void SetLastPotionId(uint32 item_id)
int32 GetQuestLevel(Quest const *quest) const
uint64 GetAuraUpdateMaskForRaid() const
uint32 GetArenaPersonalRating(uint8 slot) const
bool IsGameMasterAcceptingWhispers() const
void SetSkillMaxRank(uint32 pos, uint16 max)
ReputationMgr * m_reputationMgr
std::vector< Item * > m_itemUpdateQueue
WorldLocation m_teleport_dest
uint16 GetSkillPermBonusByPos(uint32 pos) const
uint32 GetSaveTimer() const
uint32 GetInnTriggerId() const
PlayerTalentInfo * _talentMgr
void SetArenaFaction(uint8 arenaFaction)
BattlegroundTypeId GetBattlegroundTypeId() const
bool IsBeingTeleportedFar() const
uint32 GetBaseDefenseSkillValue() const
ItemDurationList m_itemDuration
void SetLastUsedRune(RuneType type)
QuestStatusMap & getQuestStatusMap()
uint32 GetFreeTalentPoints() const
CinematicMgr * _cinematicMgr
uint8 GetGuildRank() const
void SetSkillLineId(uint32 pos, uint16 skillLineId)
void SetGroupUpdateFlag(uint32 flag)
uint32 m_titanGripPenaltySpellId
uint32 GetTemporaryUnsummonedPetNumber() const
void SetSeer(WorldObject *target)
uint32 GetArenaPoints() const
uint32 GetTotalPlayedTime() const
PetStable const * GetPetStable() const
void SetRuneTimer(uint8 index, uint32 timer)
bool m_MonthlyQuestChanged
RewardedQuestSet const & getRewardedQuests() const
uint8 GetDrunkValue() const
void SetNativeGender(Gender gender) override
Gender GetNativeGender() const override
SkillStatusMap mSkillStatus
std::unordered_map< uint32, InstancePlayerBind > BoundInstancesMap
std::unordered_map< uint32, SeasonalQuestMapByQuest > SeasonalQuestMapByEvent
WorldLocation _corpseLocation
void SetAcceptWhispers(bool on)
std::array< ChatFloodThrottle, ChatFloodThrottle::MAX > m_chatFloodData
bool HasRaceChanged() const
ObjectGuid::LowType m_GuildIdInvited
time_t m_lastHonorUpdateTime
void SetGrantableLevels(uint8 val)
void SetDungeonDifficulty(Difficulty dungeon_difficulty)
std::unordered_map< ObjectGuid::LowType, Item * > ItemMap
void SetSkillPermBonus(uint32 pos, uint16 bonus)
GroupReference & GetGroupRef()
GroupReference & GetOriginalGroupRef()
bool CanTameExoticPets() const
bool CanFly() const override
bool HasRestFlag(RestFlag restFlag) const
void SetHairColorId(uint8 hairColor)
Group const * GetGroup() const
uint32 GetArenaTeamIdInvited() const
void SetTemporaryUnsummonedPetNumber(uint32 petnumber)
DeclinedName const * GetDeclinedNames() const
GuidSet m_refundableItems
uint32 GetMaxKeyringSize() const
void SetAuraUpdateMaskForRaid(uint8 slot)
uint32 GetUsedTalentCount() const
DFQuestsDoneList m_DFQuests
bool UpdatePosition(Position const &pos, bool teleport=false) override
uint32 GetDeathTimer() const
bool m_WeeklyQuestChanged
uint8 GetBankBagSlotCount() const
bool InBattleground() const
void SetDeveloper(bool on)
PlayerTalentMap * GetTalentMap(uint8 group)
InventoryResult CanTakeMoreSimilarItems(uint32 entry, uint32 count, uint32 *itemLimitCategory=nullptr) const
std::set< uint32 > DFQuestsDoneList
void SetBaseRune(uint8 index, RuneType baseRune)
void SetGroupInvite(Group *group)
uint32 m_DelayedOperations
void setWeaponChangeTimer(uint32 time)
Difficulty GetDifficulty(bool isRaid) const
PetStable * GetPetStable()
uint32 GetGlyphSlot(uint8 slot) const
Group * GetOriginalGroup() const
uint32 GetBaseSpellPowerBonus() const
Returns base spellpower bonus from spellpower stat on items.
GuidUnorderedSet m_clientGUIDs
SeasonalQuestMapByEvent m_seasonalquests
void setRegenTimerCount(uint32 time)
uint8 GetHairStyleId() const
void SetRaidDifficulty(Difficulty raid_difficulty)
void SetFacialStyle(uint8 facialStyle)
void SetLootGUID(ObjectGuid guid)
bool HasPendingBind() const
void SetTalentResetCost(uint32 cost)
void RecalculateRating(CombatRating cr)
uint32 m_foodEmoteTimerCount
void SetGlyphSlot(uint8 slot, uint32 slottype)
time_t GetTalentResetTime() const
ObjectGuid m_playerSharingQuest
ActionButtonList const & GetActionButtons() const
bool m_SeasonalQuestChanged
void SetSkillTempBonus(uint32 pos, int16 bonus)
uint8 GetRunesState() const
void SetAtLoginFlag(AtLoginFlags f)
bool GetCommandStatus(uint32 command) const
WorldSession * GetSession() const
PlayerMails const & GetMails() const
void SetCommandStatusOn(uint32 command)
int32 GetSpellPenetrationItemMod() const
uint32 GetSharedQuestID() const
JoinedChannelsList m_channels
uint32 m_currentBuybackSlot
void RemoveFromGroup(RemoveMethod method=GROUP_REMOVEMETHOD_DEFAULT)
ObjectGuid GetLootGUID() const
void SaveRecallPosition()
bool GetRandomWinner() const
void SetFaceId(uint8 face)
uint32 GetInGameTime() const
void SetPassOnGroupLoot(bool bPassOnGroupLoot)
bool HasEnoughMoney(uint32 amount) const
AchievementMgr * m_achievementMgr
void ClearWhisperWhiteList()
ReputationMgr const & GetReputationMgr() const
bool IsResurrectRequested() const
time_t m_nextMailDelivereTime
void SetSelection(ObjectGuid guid)
Used for serverside target changes, does not apply to players.
PlayerSpellMap const & GetSpellMap() const
CinematicMgr * GetCinematicMgr() const
int16 GetSkillTempBonusByPos(uint32 pos) const
uint32 GetHonorPoints() const
void SetDelayedTeleportFlag(bool setting)
static bool IsInventoryPos(uint16 pos)
std::set< uint32 > QuestSet
void ClearResurrectRequestData()
uint8 GetFacialStyle() const
void SetSemaphoreTeleportFar(bool semphsetting)
Difficulty m_dungeonDifficulty
uint32 m_weaponChangeTimer
uint32 m_WeaponProficiency
bool mSemaphoreTeleport_Far
void SetCurrentRune(uint8 index, RuneType currentRune)
uint32 GetRuneCooldown(uint8 index) const
void RestoreManaAfterDuel()
void RemoveFromWhisperWhiteList(ObjectGuid guid)
uint32 m_hostileReferenceCheckTimer
uint32 GetArenaTeamId(uint8 slot) const
PlayerTalentMap const * GetTalentMap(uint8 group) const
uint8 GetTalentGroupsCount() const
DeclinedName * m_declinedname
void InitTaxiNodesForLevel()
bool IsHasDelayedTeleport() const
void RestoreHealthAfterDuel()
uint32 GetWeaponProficiency() const
void SetHasLevelBoosted()
BoundInstancesMap & GetBoundInstances(Difficulty difficulty)
bool HasEnoughMoney(int32 amount) const
std::unique_ptr< ResurrectionData > _resurrectionData
RewardedQuestSet m_RewardedQuests
uint32 m_contestedPvPTimer
void SetActiveTalentGroup(uint8 group)
uint32 GetTalentResetCost() const
EnchantDurationList m_enchantDuration
void SetCommandStatusOff(uint32 command)
TradeData * GetTradeData() const
ObjectGuid::LowType GetGuildId() const
void AutoStoreLoot(uint32 loot_id, LootStore const &store, bool broadcast=false, bool createdByPlayer=false)
void SetChampioningFaction(uint32 faction)
void SetMovie(uint32 movie)
RuneType GetCurrentRune(uint8 index) const
uint32 GetTeleportOptions() const
bool IsGameMaster() const
void SetGuildRank(uint8 rankId)
void SetNeedsZoneUpdate(bool needsUpdate)
bool CanApplyResilience() const override
void SetPvPDeath(bool on)
ObjectGuid::LowType GetGuildIdInvited() const
uint32 GetLastPetNumber() const
uint8 getCinematic() const
void SetCanDelayTeleport(bool setting)
Difficulty m_raidMapDifficulty
uint32 GetXPForNextLevel() const
uint8 m_MirrorTimerFlagsLast
std::vector< ItemSetEffect * > ItemSetEff
bool IsBeingTeleportedNear() const
time_t m_lastDailyQuestTime
void SaveManaBeforeDuel()
void SetQuestSharingInfo(ObjectGuid guid, uint32 id)
void ClearQuestSharingInfo()
bool mSemaphoreTeleport_Near
std::unordered_set< PetAura const * > m_petAuras
Difficulty m_raidDifficulty
uint8 GetActiveTalentGroup() const
EquipmentSetContainer _equipmentSets
std::vector< Item * > & GetItemUpdateQueue()
Difficulty GetStoredRaidDifficulty() const
void AddQuestRewardedTalentCount(uint32 points)
uint32 GetRuneBaseCooldown(uint8 index) const
void SetSkinId(uint8 skin)
MapReference & GetMapRef()
uint32 GetGlyph(uint8 group, uint8 slot) const
uint32 m_ArenaTeamIdInvited
bool HasLevelBoosted() const
std::unique_ptr< PetStable > m_petStable
uint32 GetBattlegroundId() const
PlayerSocial * GetSocial()
static bool IsValidGender(uint8 Gender)
void AddArmorProficiency(uint32 newflag)
uint32 GetRuneTimer(uint8 index) const
std::list< Channel * > JoinedChannelsList
uint32 GetGroupUpdateFlag() const
PlayerSpellMap & GetSpellMap()
std::unordered_map< uint32, time_t > SeasonalQuestMapByQuest
void SetSaveTimer(uint32 timer)
void AddWhisperWhiteList(ObjectGuid guid)
bool GetPassOnGroupLoot() const
uint16 GetSkillMaxRankByPos(uint32 pos) const
bool HasAtLoginFlag(AtLoginFlags f) const
void SetHas310Flyer(bool on)
void SetRestState(uint8 restState)
static bool IsBankPos(uint16 pos)
uint32 m_titanGripArmorSubclasses
uint64 m_auraRaidUpdateMask
ActionButtonList m_actionButtons
std::unique_ptr< DuelInfo > duel
uint8 GetSubGroup() const
bool IsResurrectRequestedBy(ObjectGuid const &guid) const
void AddTimedQuest(uint32 questId)
int32 m_spellPenetrationItemMod
void SetFreePrimaryProfessions(uint16 profs)
void SendInitialActionButtons() const
uint32 GetLastRuneGraceTimer(uint8 index) const
bool isAcceptWhispers() const
size_t GetRewardedQuestCount() const
uint8 GetHairColorId() const
ObjectGuid GetPlayerSharingQuest() const
void RemoveTimedQuest(uint32 questId)
void SetTaxiCheater(bool on)
uint32 GetChampioningFaction() const
float GetRestBonus() const
void SetArenaTeamIdInvited(uint32 ArenaTeamId)
void SendMessageToSet(WorldPacket const *data, bool self) const override
uint32 GetLevelPlayedTime() const
void SetSkillRank(uint32 pos, uint16 rank)
uint32 m_ArmorProficiency
bool IsCanDelayTeleport() const
bool HasBeenGrantedLevelsFromRaF() const
bool CanEnterWater() const override
void AddWeaponProficiency(uint32 newflag)
uint32 GetFreePrimaryProfessionPoints() const
uint32 GetQuestRewardedTalentCount() const
uint32 m_teleport_options
uint8 GetRestState() const
Difficulty GetDungeonDifficulty() const
GuidUnorderedSet m_itemSoulboundTradeable
void SetSkillStep(uint32 pos, uint16 step)
Group * GetGroupInvite() const
void SetContestedPvPTimer(uint32 newTime)
void SetInGameTime(uint32 time)
void SetGuildIdInvited(ObjectGuid::LowType GuildId)
Spell * m_spellModTakingSpell
void SetBankBagSlotCount(uint8 count)
uint16 GetSkillStepByPos(uint32 pos) const
QuestStatusSaveMap m_QuestStatusSave
void setCinematic(uint8 cine)
uint32 GetLastPotionId() const
RuneType GetBaseRune(uint8 index) const
void SetLastPetNumber(uint32 petnumber)
QuestStatusSaveMap m_RewardedQuestsSave
uint32 m_titanGripWeaponSubclasses
bool isTaxiCheater() const
void SetBeenGrantedLevelsFromRaF()
JoinedChannelsList const & GetJoinedChannels() const
WorldLocation const & GetBattlegroundEntryPoint() const
ReputationMgr & GetReputationMgr()
bool IsBeingTeleported() const
uint8 GetOriginalSubGroup() const
void SetLastRuneGraceTimer(uint8 index, uint32 timer)
void SetUsedTalentCount(uint32 talents)
PlayerMenu * PlayerTalkClass
void SetTarget(ObjectGuid) override
bool m_itemUpdateQueueBlocked
RuneType GetLastUsedRune() const
int32 GetQuestLevel() const
void Heartbeat() override
void UpdateObjectVisibility(bool forced=true) override
void AddToWorld() override
virtual void AtExitCombat()
virtual bool UpdateAllStats()=0
virtual SpellSchoolMask GetMeleeDamageSchoolMask(WeaponAttackType attackType=BASE_ATTACK, uint8 damageIndex=0) const =0
virtual void SetPvP(bool state)
virtual void UpdateAttackPowerAndDamage(bool ranged=false)=0
virtual void Yell(std::string_view text, Language language, WorldObject const *target=nullptr)
virtual void UpdateDamageDoneMods(WeaponAttackType attackType, int32 skipEnchantSlot=-1)
void CleanupsBeforeDelete(bool finalCleanup=true) override
virtual void UpdateResistances(uint32 school)=0
std::string GetDebugInfo() const override
virtual bool IsLoading() const
void SetHealth(uint32 val)
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
virtual bool HasSpell(uint32) const
virtual void SetSheath(SheathState sheathed)
virtual bool IsImmunedToSpellEffect(SpellInfo const *spellInfo, SpellEffectInfo const &spellEffectInfo, WorldObject const *caster, bool requireImmunityPurgesEffectAttribute=false) const
virtual bool UpdatePosition(float x, float y, float z, float ang, bool teleport=false)
virtual void UpdateArmor()=0
virtual void UpdateMaxPower(Powers power)=0
virtual void TextEmote(std::string_view text, WorldObject const *target=nullptr, bool isBossEmote=false)
void SetPower(Powers power, uint32 val, bool withPowerUpdate=true, bool force=false)
virtual uint32 GetShieldBlockValue() const =0
bool HasAuraType(AuraType auraType) const
virtual bool UpdateStats(Stats stat)=0
virtual bool CheckAttackFitToAuraRequirement(WeaponAttackType, AuraEffect const *) const
void SetPhaseMask(uint32 newPhaseMask, bool update) override
virtual void Update(uint32 time) override
void RemoveFromWorld() override
virtual void UpdateMaxHealth()=0
virtual void CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, bool addTotalPct, float &minDamage, float &maxDamage, uint8 damageIndex) const =0
virtual void setDeathState(DeathState s)
uint32 GetPower(Powers power) const
virtual void ProcessTerrainStatusUpdate(ZLiquidStatus oldLiquidStatus, Optional< LiquidData > const &newLiquidData)
bool IsAlwaysDetectableFor(WorldObject const *seer) const override
virtual void Whisper(std::string_view text, Language language, Player *target, bool isBossWhisper=false)
void DestroyForPlayer(Player *target, bool onDeath) const override
virtual void SendMessageToSet(WorldPacket const *data, bool self) const
virtual void SetMap(Map *map)
virtual bool IsNeverVisible(bool allowServersideObjects) const
float GetVisibilityRange() const
virtual void SendMessageToSetInRange(WorldPacket const *data, float dist, bool self) const
virtual bool CanAlwaysSee(WorldObject const *) const
Player session in the World.
Holder for Battleground data.
uint32 bgTeam
What side the player will be added to.
BattlegroundTypeId bgTypeID
time_t bgAfkReportedTimer
WorldLocation joinPos
From where player entered BG.
DuelInfo(Player *opponent, Player *initiator, bool isMounted)
EnchantDuration(Item *_item, EnchantmentSlot _slot, uint32 _leftduration)
Data sent in EquipmentSet related packets.
BindExtensionState extendState
ItemPosCount(uint16 _pos, uint32 _count)
bool isContainedIn(std::vector< ItemPosCount > const &vec) const
PlayerTalentInfo(PlayerTalentInfo const &)=delete
TalentGroupInfo GroupInfo[MAX_TALENT_GROUPS]
PlayerTalentInfo & operator=(PlayerTalentInfo const &)=delete
uint32 QuestRewardedTalentCount
BattlegroundQueueTypeId bgQueueTypeId
float GetPositionZ() const
float GetOrientation() const
float GetPositionX() const
float GetPositionY() const
bool IsInNoPvPArea
Marks if player is in an area which forces PvP flag
bool IsInFFAPvPArea
Marks if player is in a sanctuary or friendly capital city
time_t EndTimer
Marks if player is in an FFAPvP area (such as Gurubashi Arena)
std::unordered_set< AuraEffect const * > ConvertAuras
void SetRuneState(uint8 index, bool set=true)
RuneInfo runes[MAX_RUNES]
SkillStatusData(uint8 _pos, SkillUpdateState _uState)
SpellModifier(Aura *_ownerAura)
uint32 Glyphs[MAX_GLYPH_SLOT_INDEX]
uint32 ItemLimitCategoryId