35#include <unordered_set>
101#define PLAYER_MAX_SKILLS 128
118#define PLAYER_MAX_DAILY_QUESTS 25
119#define PLAYER_EXPLORED_ZONES_SIZE 128
212#define ACTION_BUTTON_ACTION(X) (uint32(X) & 0x00FFFFFF)
213#define ACTION_BUTTON_TYPE(X) ((uint32(X) & 0xFF000000) >> 24)
214#define MAX_ACTION_BUTTON_ACTION_VALUE (0x00FFFFFF+1)
238#define MAX_ACTION_BUTTONS 144
421#define PLAYER_BYTES_2_OVERRIDE_SPELLS_UINT16_OFFSET (PLAYER_FIELD_BYTES_2_OFFSET_OVERRIDE_SPELLS_ID / 2)
423#define KNOWN_TITLES_SIZE 3
424#define MAX_TITLE_INDEX (KNOWN_TITLES_SIZE * 64)
455#define DISABLED_MIRROR_TIMER -1
513#define MAX_QUEST_OFFSET 5
555#define INVENTORY_SLOT_BAG_0 255
628 bool isContainedIn(std::vector<ItemPosCount>
const& vec)
const;
694#define MAX_PLAYED_TIME_INDEX 2
747#define MAX_PLAYER_SUMMON_DELAY (2*MINUTE)
871#define SPELL_DK_RAISE_ALLY 46619
920 bool TeleportTo(
uint32 mapid,
float x,
float y,
float z,
float orientation,
uint32 options = 0);
922 bool TeleportToBGEntryPoint();
924 bool HasSummonPending()
const;
925 void SendSummonRequestFrom(
Unit* summoner);
926 void SummonIfPossible(
bool agree);
940 void SendInitialPacketsBeforeAddToMap();
941 void SendInitialPacketsAfterAddToMap();
942 void SendSupercededSpell(
uint32 oldSpell,
uint32 newSpell)
const;
946 bool CanInteractWithQuestGiver(
Object* questGiver)
const;
955 uint8 GetChatTag()
const;
965 bool ActivateTaxiPathTo(std::vector<uint32>
const& nodes,
Creature* npc =
nullptr,
uint32 spellid = 0);
966 bool ActivateTaxiPathTo(
uint32 taxi_path_id,
uint32 spellid = 0);
967 void FinishTaxiFlight();
968 void CleanupAfterTaxiFlight();
969 void ContinueTaxiFlight()
const;
970 void SendTaxiNodeStatusMultiple();
978 bool CanBeGameMaster()
const;
979 void SetGameMaster(
bool on);
985 void SetGMVisible(
bool on);
986 bool Has310Flyer(
bool checkAllSpells,
uint32 excludeSpellId = 0);
999 void GiveXP(
uint32 xp,
Unit* victim,
float group_rate = 1.0f);
1000 void GiveLevel(
uint8 level);
1001 bool IsMaxLevel()
const;
1003 void InitStatsForLevel(
bool reapplyMods =
false);
1033 void SetRestBonus(
float rest_bonus_new);
1040 void RemoveRestFlag(
RestFlag restFlag);
1049 Pet* GetPet()
const;
1051 void RemovePet(
Pet* pet,
PetSaveMode mode,
bool returnreagent =
false);
1052 uint32 GetPhaseMaskForSpawn()
const;
1056 void AddPetAura(
PetAura const* petSpell);
1057 void RemovePetAura(
PetAura const* petSpell);
1071 void WhisperAddon(std::string
const& text,
Player* receiver);
1077 void SetVirtualItemSlot(
uint8 i,
Item* item);
1080 uint32 GetItemCount(
uint32 item,
bool inBankAlso =
false,
Item* skipItem =
nullptr)
const;
1081 uint32 GetItemCountWithLimitCategory(
uint32 limitCategory,
Item* skipItem =
nullptr)
const;
1087 Bag* GetBagByPos(
uint8 slot)
const;
1088 uint32 GetFreeInventorySpace()
const;
1090 Item* GetShield(
bool useable =
false)
const;
1094 static bool IsInventoryPos(
uint8 bag,
uint8 slot);
1096 static bool IsEquipmentPos(
uint8 bag,
uint8 slot);
1097 static bool IsBagPos(
uint16 pos);
1099 static bool IsBankPos(
uint8 bag,
uint8 slot);
1101 bool IsValidPos(
uint8 bag,
uint8 slot,
bool explicit_pos)
const;
1104 bool HasItemCount(
uint32 item,
uint32 count = 1,
bool inBankAlso =
false)
const;
1105 bool HasItemFitToSpellRequirements(
SpellInfo const* spellInfo,
Item const* ignoreItem =
nullptr)
const;
1106 bool CanNoReagentCast(
SpellInfo const* spellInfo)
const;
1109 for (
uint8 i = 0; i < 3; ++i)
1137 void AutoUnequipOffhandIfNeed(
bool force =
false);
1138 bool StoreNewItemInBestSlots(
uint32 item_id,
uint32 item_count);
1139 void AutoStoreLoot(
uint8 bag,
uint8 slot,
uint32 loot_id,
LootStore const& store,
bool broadcast =
false,
bool createdByPlayer =
false);
1141 void StoreLootItem(
uint8 lootSlot,
Loot* loot);
1149 void ApplyEquipCooldown(
Item* pItem);
1150 void SetAmmo(
uint32 item);
1153 bool CheckAmmoCompatibility(
ItemTemplate const* ammo_proto)
const;
1154 void QuickEquipItem(
uint16 pos,
Item* pItem);
1155 void VisualizeItem(
uint8 slot,
Item* pItem);
1156 void SetVisibleItemSlot(
uint8 slot,
Item* pItem);
1158 void RemoveItem(
uint8 bag,
uint8 slot,
bool update);
1159 void MoveItemFromInventory(
uint8 bag,
uint8 slot,
bool update);
1161 void MoveItemToInventory(
ItemPosCountVec const& dest,
Item* pItem,
bool update,
bool in_characterInventoryDB =
false);
1163 void RemoveItemDependentAurasAndCasts(
Item* pItem);
1164 void DestroyItem(
uint8 bag,
uint8 slot,
bool update);
1165 uint32 DestroyItemCount(
uint32 item,
uint32 count,
bool update,
bool unequip_check =
false);
1166 void DestroyItemCount(
Item* item,
uint32& count,
bool update);
1167 void DestroyConjuredItems(
bool update);
1168 void DestroyZoneLimitedItem(
bool update,
uint32 new_zone);
1171 void AddItemToBuyBackSlot(
Item* pItem);
1173 void RemoveItemFromBuyBackSlot(
uint32 slot,
bool del);
1182 bool IsUseEquipedWeapon(
bool mainhand)
const;
1183 bool IsTwoHandUsed()
const;
1184 bool IsUsingTwoHandedWeaponInOneHand()
const;
1185 void SendNewItem(
Item* item,
uint32 count,
bool received,
bool created,
bool broadcast =
false,
bool sendChatMessage =
true);
1189 float GetReputationPriceDiscount(
Creature const* creature)
const;
1192 Player* GetTrader()
const;
1198 void UpdateEnchantTime(
uint32 time);
1199 void UpdateSoulboundTradeItems();
1200 void AddTradeableItem(
Item* item);
1201 void RemoveTradeableItem(
Item* item);
1202 void UpdateItemDuration(
uint32 time,
bool realtimeonly =
false);
1203 void AddEnchantmentDurations(
Item* item);
1204 void RemoveEnchantmentDurations(
Item* item);
1205 void RemoveEnchantmentDurationsReferences(
Item* item);
1208 void ApplyEnchantment(
Item* item,
EnchantmentSlot slot,
bool apply,
bool apply_dur =
true,
bool ignore_condition =
false);
1209 void ApplyEnchantment(
Item* item,
bool apply);
1211 void SendEnchantmentDurations();
1212 void AddItemDurations(
Item* item);
1213 void RemoveItemDurations(
Item* item);
1214 void SendItemDurations();
1224 void PrepareGossipMenu(
WorldObject* source,
uint32 menuId = 0,
bool showQuests =
false);
1240 bool IsActiveQuest(
uint32 quest_id)
const;
1241 Quest const* GetNextQuest(
Object const* questGiver,
Quest const* quest)
const;
1242 bool CanSeeStartQuest(
Quest const* quest)
const;
1243 bool CanTakeQuest(
Quest const* quest,
bool msg)
const;
1244 bool CanAddQuest(
Quest const* quest,
bool msg)
const;
1245 bool CanCompleteQuest(
uint32 quest_id);
1246 bool CanCompleteRepeatableQuest(
Quest const* quest);
1247 bool CanRewardQuest(
Quest const* quest,
bool msg);
1248 bool CanRewardQuest(
Quest const* quest,
uint32 reward,
bool msg);
1249 void AddQuestAndCheckCompletion(
Quest const* quest,
Object* questGiver);
1250 void AddQuest(
Quest const* quest,
Object* questGiver);
1251 void AbandonQuest(
uint32 quest_id);
1252 void CompleteQuest(
uint32 quest_id);
1253 void IncompleteQuest(
uint32 quest_id);
1255 void RewardQuest(
Quest const* quest,
uint32 reward,
Object* questGiver,
bool announce =
true);
1256 void SetRewardedQuest(
uint32 quest_id);
1257 void FailQuest(
uint32 quest_id);
1258 bool SatisfyQuestSkill(
Quest const* qInfo,
bool msg)
const;
1259 bool SatisfyQuestLevel(
Quest const* qInfo,
bool msg)
const;
1260 bool SatisfyQuestLog(
bool msg)
const;
1261 bool SatisfyQuestDependentQuests(
Quest const* qInfo,
bool msg)
const;
1262 bool SatisfyQuestPreviousQuest(
Quest const* qInfo,
bool msg)
const;
1263 bool SatisfyQuestDependentPreviousQuests(
Quest const* qInfo,
bool msg)
const;
1264 bool SatisfyQuestBreadcrumbQuest(
Quest const* qInfo,
bool msg)
const;
1265 bool SatisfyQuestDependentBreadcrumbQuests(
Quest const* qInfo,
bool msg)
const;
1266 bool SatisfyQuestClass(
Quest const* qInfo,
bool msg)
const;
1267 bool SatisfyQuestRace(
Quest const* qInfo,
bool msg)
const;
1268 bool SatisfyQuestReputation(
Quest const* qInfo,
bool msg)
const;
1269 bool SatisfyQuestStatus(
Quest const* qInfo,
bool msg)
const;
1270 bool SatisfyQuestConditions(
Quest const* qInfo,
bool msg)
const;
1271 bool SatisfyQuestTimed(
Quest const* qInfo,
bool msg)
const;
1272 bool SatisfyQuestExclusiveGroup(
Quest const* qInfo,
bool msg)
const;
1273 bool SatisfyQuestDay(
Quest const* qInfo,
bool msg)
const;
1274 bool SatisfyQuestWeek(
Quest const* qInfo,
bool msg)
const;
1275 bool SatisfyQuestMonth(
Quest const* qInfo,
bool msg)
const;
1276 bool SatisfyQuestSeasonal(
Quest const* qInfo,
bool msg)
const;
1277 bool GiveQuestSourceItem(
Quest const* quest);
1278 bool TakeQuestSourceItem(
uint32 questId,
bool msg);
1279 bool GetQuestRewardStatus(
uint32 quest_id)
const;
1282 void RemoveActiveQuest(
uint32 questId,
bool update =
true);
1283 void RemoveRewardedQuest(
uint32 questId,
bool update =
true);
1284 void SendQuestUpdate(
uint32 questId);
1287 void SetDailyQuestStatus(
uint32 quest_id);
1288 bool IsDailyQuestDone(
uint32 quest_id);
1289 void SetWeeklyQuestStatus(
uint32 quest_id);
1290 void SetMonthlyQuestStatus(
uint32 quest_id);
1291 void SetSeasonalQuestStatus(
uint32 quest_id);
1292 void ResetDailyQuestStatus();
1293 void ResetWeeklyQuestStatus();
1294 void ResetMonthlyQuestStatus();
1295 void ResetSeasonalQuestStatus(
uint16 event_id, time_t eventStartTime);
1310 void AreaExploredOrEventHappens(
uint32 questId);
1313 void ItemRemovedQuestCheck(
uint32 entry,
uint32 count);
1316 void KilledPlayerCredit(
uint16 count = 1);
1317 void KilledPlayerCreditForQuest(
uint16 count,
Quest const* quest);
1320 void MoneyChanged(
uint32 value);
1321 void ReputationChanged(
FactionEntry const* factionEntry);
1322 void ReputationChanged2(
FactionEntry const* factionEntry);
1323 bool HasQuestForItem(
uint32 itemId,
uint32 excludeQuestId = 0,
bool turnIn =
false)
const;
1324 bool HasQuestForGO(
int32 goId)
const;
1325 void UpdateVisibleGameobjectsOrSpellClicks();
1326 bool CanShareQuest(
uint32 questId)
const;
1328 void SendQuestComplete(
uint32 questId)
const;
1329 void SendQuestReward(
Quest const* quest,
uint32 XP)
const;
1331 void SendQuestTimerFailed(
uint32 questId)
const;
1333 void SendQuestConfirmAccept(
Quest const* quest,
Player* pReceiver)
const;
1335 void SendQuestUpdateAddItem(
Quest const* quest,
uint32 itemIdx,
uint16 count)
const;
1337 void SendQuestUpdateAddPlayer(
Quest const* quest,
uint16 oldCount,
uint16 addCount);
1338 void SendQuestGiverStatusMultiple();
1351 bool HasPvPForcingQuest()
const;
1361 static bool LoadPositionFromDB(
uint32& mapid,
float& x,
float& y,
float& z,
float& o,
bool& in_flight,
ObjectGuid guid);
1370 void SaveToDB(
bool create =
false);
1377 static void DeleteFromDB(
ObjectGuid playerguid,
uint32 accountId,
bool updateRealmChars =
true,
bool deleteFinally =
false);
1378 static void DeleteOldCharacters();
1379 static void DeleteOldCharacters(
uint32 keepDays);
1385 void ResetPetTalents();
1386 void RegenerateAll();
1387 void Regenerate(
Powers power);
1388 void RegenerateHealth();
1393 bool ModifyMoney(
int32 amount,
bool sendError =
true);
1396 void SetMoney(
uint32 value);
1402 bool IsQuestRewarded(
uint32 quest_id)
const;
1404 Unit* GetSelectedUnit()
const;
1405 Player* GetSelectedPlayer()
const;
1411 void SendNewMail()
const;
1412 void UpdateNextMailTimeAndUnreads();
1413 void AddNewMailDeliverTime(time_t deliver_time);
1415 void RemoveMail(
uint32 id);
1423 void SendItemRetrievalMail(
uint32 itemEntry,
uint32 count);
1432 typedef std::unordered_map<ObjectGuid::LowType, Item*>
ItemMap;
1437 void AddMItem(
Item* it);
1440 void SendOnCancelExpectedVehicleRideAura()
const;
1441 void PetSpellInitialize();
1442 void CharmSpellInitialize();
1443 void PossessSpellInitialize();
1444 void VehicleSpellInitialize();
1445 void SendRemoveControlBar()
const;
1447 bool HasActiveSpell(
uint32 spell)
const;
1448 bool IsSpellFitByClassAndRace(
uint32 spell_id)
const;
1449 bool HandlePassiveSpellLearn(
SpellInfo const* spellInfo);
1451 void SendProficiency(
ItemClass itemClass,
uint32 itemSubclassMask)
const;
1452 void SendInitialSpells();
1453 void SendUnlearnSpells();
1454 bool AddSpell(
uint32 spellId,
bool active,
bool learning,
bool dependent,
bool disabled,
bool loading =
false,
uint32 fromSkill = 0);
1455 void LearnSpell(
uint32 spell_id,
bool dependent,
uint32 fromSkill = 0);
1456 void RemoveSpell(
uint32 spell_id,
bool disabled =
false,
bool learn_low_rank =
true);
1457 void ResetSpells(
bool myClassOnly =
false);
1458 void LearnCustomSpells();
1459 void LearnDefaultSkills();
1461 void LearnQuestRewardedSpells();
1462 void LearnQuestRewardedSpells(
Quest const* quest);
1463 void AddTemporarySpell(
uint32 spellId);
1464 void RemoveTemporarySpell(
uint32 spellId);
1467 std::string GetGuildName()
const;
1471 void SetFreeTalentPoints(
uint32 points);
1485 bool ResetTalents(
bool involuntarily =
false);
1486 uint32 GetNextResetTalentsCost()
const;
1487 void IncreaseResetTalentsCostAndCounters(
uint32 lastResetTalentsCost);
1488 void InitTalentForLevel();
1491 void SendTalentsInfoData(
bool pet);
1494 void SendTameFailure(
uint8 result);
1495 bool AddTalent(
uint32 spellId,
uint8 spec,
bool learning);
1496 bool HasTalent(
uint32 spell_id,
uint8 spec)
const;
1497 uint32 CalculateTalentsPoints()
const;
1500 void UpdateTalentGroupCount(
uint8 count);
1501 void ActivateTalentGroup(
uint8 group);
1504 void InitGlyphsForLevel();
1516 void InitPrimaryProfessions();
1527 void SetSpellModTakingSpell(
Spell* spell,
bool apply);
1529 void RemoveArenaSpellCooldowns(
bool removeActivePetCooldowns =
false);
1532 void UpdatePotionCooldown(
Spell* spell =
nullptr);
1538 _resurrectionData.reset();
1543 if (!IsResurrectRequested())
1546 return !_resurrectionData->GUID.IsEmpty() && _resurrectionData->GUID == guid;
1550 void ResurrectUsingRequestData();
1551 void ResurrectUsingRequestDataImpl();
1560 void RemoveActionButton(
uint8 button);
1563 void SendActionButtons(
uint32 state)
const;
1564 bool IsActionButtonDataValid(
uint8 button,
uint32 action,
uint8 type)
const;
1569 void UpdatePvPState(
bool onlyFFA =
false);
1570 void SetPvP(
bool state)
override;
1571 void UpdatePvP(
bool state,
bool override =
false);
1573 void UpdateArea(
uint32 newArea);
1576 void UpdateZoneDependentAuras(
uint32 zone_id);
1577 void UpdateAreaDependentAuras(
uint32 area_id);
1579 void UpdateAfkReport(time_t currTime);
1580 void UpdatePvPFlag(time_t currTime);
1581 void SetContestedPvP(
Player* attackedPlayer =
nullptr);
1582 void UpdateContestedPvP(
uint32 currTime);
1584 void ResetContestedPvP();
1588 void UpdateDuelFlag(time_t currTime);
1589 void CheckDuelDistance(time_t currTime);
1591 void SendDuelCountdown(
uint32 counter);
1593 bool IsGroupVisibleFor(
Player const* p)
const;
1594 bool IsInSameGroupWith(
Player const* p)
const;
1595 bool IsInSameRaidWith(
Player const* p)
const;
1596 void UninviteFromGroup();
1599 void SendUpdateToOutOfRangeGroupMembers();
1607 Guild const* GetGuild()
const;
1614 static void LeaveAllArenaTeams(
ObjectGuid guid);
1631 bool UpdateCraftSkill(
uint32 spellid);
1633 bool UpdateFishingSkill();
1638 float GetHealthBonusFromStamina();
1639 float GetManaBonusFromIntellect();
1643 void ApplySpellPenetrationBonus(
int32 amount,
bool apply);
1648 void ApplyFeralAPBonus(
int32 amount,
bool apply);
1650 void UpdateShieldBlockValue();
1651 void ApplySpellPowerBonus(
int32 amount,
bool apply);
1652 void UpdateSpellDamageAndHealingBonus();
1655 void UpdateAllRatings();
1659 void UpdateDefenseBonusesMod();
1661 float GetMeleeCritFromAgility()
const;
1662 void GetDodgeFromAgility(
float &diminishing,
float &nondiminishing)
const;
1663 float GetMissPercentageFromDefense()
const;
1664 float GetSpellCritFromIntellect()
const;
1665 float OCTRegenHPPerSpirit()
const;
1666 float OCTRegenMPPerSpirit()
const;
1677 void UpdateBlockPercentage();
1679 void UpdateAllCritPercentages();
1680 void UpdateParryPercentage();
1681 void UpdateDodgePercentage();
1682 void UpdateMeleeHitChances();
1683 void UpdateRangedHitChances();
1684 void UpdateSpellHitChances();
1686 void UpdateAllSpellCritChances();
1687 void UpdateSpellCritChance(
uint32 school);
1688 void UpdateArmorPenetration(
int32 amount);
1690 void ApplyManaRegenBonus(
int32 amount,
bool apply);
1691 void ApplyHealthRegenBonus(
int32 amount,
bool apply);
1692 void UpdatePowerRegen(
Powers power);
1693 void UpdateRuneRegen(
RuneType rune);
1694 float GetPowerRegen(
Powers power)
const;
1703 void RemovedInsignia(
Player* looterPlr);
1710 void SendLogXPGain(
uint32 GivenXP,
Unit* victim,
uint32 BonusXP,
bool recruitAFriend =
false,
float group_rate=1.0f)
const;
1713 void SendAttackSwingCantAttack()
const;
1714 void SendAttackSwingCancelAttack()
const;
1715 void SendAttackSwingDeadTarget()
const;
1716 void SendAttackSwingNotInRange()
const;
1717 void SendAttackSwingBadFacingAttack()
const;
1718 void SendAutoRepeatCancel(
Unit* target);
1719 void SendExplorationExperience(
uint32 Area,
uint32 Experience)
const;
1721 void SendDungeonDifficulty(
bool changeCurrentDifficuly,
bool changeGroupDifficuly)
const;
1722 void SendRaidDifficulty(
bool changeCurrentDifficuly,
bool changeGroupDifficuly)
const;
1723 void ResetInstances(
uint8 method,
bool isRaid);
1724 void SendResetInstanceSuccess(
uint32 MapId)
const;
1725 void SendResetInstanceFailed(
uint32 reason,
uint32 MapId)
const;
1726 void SendResetFailedNotify(
uint32 mapid)
const;
1728 bool UpdatePosition(
float x,
float y,
float z,
float orientation,
bool teleport =
false)
override;
1738 Corpse* GetCorpse()
const;
1739 void SpawnCorpseBones(
bool triggerSave =
true);
1745 uint32 GetResurrectionSpellId();
1746 void ResurrectPlayer(
float restore_percent,
bool applySickness =
false);
1747 void BuildPlayerRepop();
1748 void RepopAtGraveyard();
1752 void SendDurabilityLoss();
1753 void DurabilityLossAll(
double percent,
bool inventory);
1754 void DurabilityLoss(
Item* item,
double percent);
1755 void DurabilityPointsLossAll(
int32 points,
bool inventory);
1756 void DurabilityPointsLoss(
Item* item,
int32 points);
1758 void DurabilityRepairAll(
bool takeCost,
float discountMod,
bool guildBank);
1759 void DurabilityRepair(
uint16 pos,
bool takeCost,
float discountMod);
1761 void UpdateMirrorTimers();
1762 void StopMirrorTimers();
1767 void JoinedChannel(
Channel* c);
1769 void CleanupChannels();
1770 void UpdateLocalChannels(
uint32 newZone);
1771 void LeaveLFGChannel();
1776 void UpdateDefense();
1789 bool HasSkill(
uint32 skill)
const;
1790 void LearnSkillRewardedSpells(
uint32 skillId,
uint32 skillValue);
1811 void ProcessDelayedOperations();
1813 void CheckAreaExplore();
1814 void CheckOutdoorsAuraRequirements();
1820 void SetFactionForRace(
uint8 race);
1822 void InitDisplayIds();
1824 bool IsAtGroupRewardDistance(
WorldObject const* pRewardSource)
const;
1825 bool IsAtRecruitAFriendDistance(
WorldObject const* pOther)
const;
1826 void RewardPlayerAndGroupAtKill(
Unit* victim,
bool isBattleGround);
1827 void RewardPlayerAndGroupAtEvent(
uint32 creature_id,
WorldObject* pRewardSource);
1828 bool isHonorOrXPTarget(
Unit const* victim)
const;
1830 bool GetsRecruitAFriendBonus(
bool forXP);
1837 void RewardReputation(
Unit* victim,
float rate);
1838 void RewardReputation(
Quest const* quest);
1842 void UpdateSkillsForLevel();
1843 void UpdateWeaponsSkillsToMaxSkillsForLevel();
1844 void ModifySkillBonus(
uint32 skillid,
int32 val,
bool talent);
1850 void UpdateHonorFields();
1851 bool RewardHonor(
Unit* victim,
uint32 groupsize,
int32 honor = -1,
bool pvptoken =
false);
1856 uint32 GetMaxPersonalArenaRatingRequirement(
uint32 minarenaslot)
const;
1857 void SetHonorPoints(
uint32 value);
1858 void SetArenaPoints(
uint32 value);
1868 void SetDrunkValue(
uint8 newDrunkValue,
uint32 itemId = 0);
1872 void UpdateInvisibilityDrunkDetect();
1876 uint32 GetCorpseReclaimDelay(
bool pvp)
const;
1877 void UpdateCorpseReclaimDelay();
1878 int32 CalculateCorpseReclaimDelay(
bool load =
false)
const;
1879 void SendCorpseReclaimDelay(
uint32 delay)
const;
1883 void SetCanParry(
bool value);
1885 void SetCanBlock(
bool value);
1886 bool CanTitanGrip(
Item const* item)
const;
1887 void SetCanTitanGrip(
bool value,
uint32 penaltySpellId = 0,
int32 allowedItemClass = 0,
int32 allowedItemSubClassMask = 0);
1888 void CheckTitanGripPenalty();
1891 void SetRegularAttackTime();
1893 void HandleBaseModFlatValue(
BaseModGroup modGroup,
float amount,
bool apply);
1894 void ApplyBaseModPctValue(
BaseModGroup modGroup,
float pct);
1896 void SetBaseModFlatValue(
BaseModGroup modGroup,
float val);
1897 void SetBaseModPctValue(
BaseModGroup modGroup,
float val);
1903 float GetTotalBaseModValue(
BaseModGroup modGroup)
const;
1905 void _ApplyAllStatBonuses();
1906 void _RemoveAllStatBonuses();
1908 void ResetAllPowers();
1912 void CastAllObtainSpells();
1913 void ApplyItemObtainSpells(
Item* item,
bool apply);
1916 void UpdateAllWeaponDependentCritAuras();
1919 void ApplyItemDependentAuras(
Item* item,
bool apply);
1923 void _ApplyItemMods(
Item* item,
uint8 slot,
bool apply,
bool updateItemAuras =
true);
1924 void _RemoveAllItemMods();
1925 void _ApplyAllItemMods();
1926 void _ApplyAllLevelScaleItemMods(
bool apply);
1929 void _ApplyItemBonuses(
ItemTemplate const* proto,
uint8 slot,
bool apply,
bool only_level_scale =
false);
1931 void _ApplyAmmoBonuses();
1932 bool EnchantmentFitsRequirements(
uint32 enchantmentcondition,
int8 slot)
const;
1933 void ToggleMetaGemsActive(
uint8 exceptslot,
bool apply);
1934 void CorrectMetaGemEnchants(
uint8 slot,
bool apply);
1935 void InitDataForForm(
bool reapplyMods =
false);
1937 void ApplyItemEquipSpell(
Item* item,
bool apply,
bool form_change =
false);
1938 void ApplyEquipSpell(
SpellInfo const* spellInfo,
Item* item,
bool apply,
bool form_change =
false);
1939 void UpdateEquipSpellsAtFormChange();
1940 void CastItemCombatSpell(
DamageInfo const& damageInfo);
1944 void SendEquipmentSetList();
1946 void DeleteEquipmentSet(
uint64 id);
1948 void SendInitWorldStates(
uint32 zoneId,
uint32 areaId);
1949 void SendUpdateWorldState(
uint32 variable,
uint32 value)
const;
1950 void SendDirectMessage(
WorldPacket const* data)
const;
1951 void SendBGWeekendWorldStates()
const;
1952 void SendBattlefieldWorldStates()
const;
1954 void SendAurasForTarget(
Unit* target,
bool force =
false)
const;
1962 void SendNotifyLootItemRemoved(
uint8 lootListId)
const;
1963 void SendNotifyLootMoneyRemoved()
const;
1970 bool InArena()
const;
1975 bool InBattlegroundQueue(
bool ignoreArena =
false)
const;
1985 bool HasFreeBattlegroundQueueId()
const;
1988 bool IsInvitedForBattlegroundInstance(
uint32 instanceId)
const;
1990 void SetBattlegroundEntryPoint();
1992 void SetBGTeam(
uint32 team);
1993 uint32 GetBGTeam()
const;
1995 void LeaveBattleground(
bool teleportToEntryPoint =
true,
bool withoutDeserterDebuff =
false);
1996 bool CanJoinToBattleground(
Battleground const* bg)
const;
1997 bool CanReportAfkDueToLimit();
1998 void ReportedAfkBy(
Player* reporter);
2002 bool CanUseBattlegroundObject(
GameObject* gameobject)
const;
2003 bool isTotalImmune()
const;
2004 bool CanCaptureTowerPoint()
const;
2007 void SetRandomWinner(
bool isWinner);
2015 bool IsOutdoorPvPActive()
const;
2021 bool IsImmuneToEnvironmentalDamage()
const;
2049 void SetFallInformation(
uint32 time,
float z);
2054 void SetClientControl(
Unit* target,
bool allowMove);
2057 void SetViewpoint(
WorldObject* target,
bool apply);
2059 void StopCastingCharm();
2060 void StopCastingBindSight()
const;
2066 void Recall() { TeleportTo(m_recall_location); }
2069 void SendBindPointUpdate();
2079 uint8 GetStartLevel(
uint8 playerClass)
const;
2085 bool HaveAtClient(
Object const* u)
const;
2089 bool IsVisibleGloballyFor(
Player const* player)
const;
2091 void SendInitialVisiblePackets(
Unit* target)
const;
2093 void UpdateVisibilityForPlayer();
2095 void UpdateTriggerVisibility();
2099 void UpdateVisibilityOf(T* target,
UpdateData& data, std::set<Unit*>& visibleNow);
2105 bool isUsingLfg()
const;
2106 bool inRandomLfgDungeon()
const;
2114 void UnsummonPetTemporaryIfAny();
2115 void ResummonPetTemporaryUnSummonedIfAny();
2116 bool IsPetNeedBeTemporaryUnsummoned()
const;
2118 void SendCinematicStart(
uint32 CinematicSequenceId)
const;
2119 void SendMovieStart(
uint32 movieId);
2129 void UpdateHomebindTime(
uint32 time);
2138 void UnbindInstance(
uint32 mapid,
Difficulty difficulty,
bool unload =
false);
2139 void UnbindInstance(BoundInstancesMap::iterator &itr,
Difficulty difficulty,
bool unload =
false);
2141 void BindToInstance();
2142 void SetPendingBind(
uint32 instanceId,
uint32 bindTimer);
2144 void SendRaidInfo();
2145 void SendSavedInstances();
2147 bool CheckInstanceValidity(
bool );
2162 void SetGroup(
Group* group,
int8 subgroup = -1);
2168 Player* GetNextRandomRaidMember(
float radius);
2172 void SetBattlegroundOrBattlefieldRaid(
Group* group,
int8 subgroup = -1);
2173 void RemoveFromBattlegroundOrBattlefieldRaid();
2177 void SetOriginalGroup(
Group* group,
int8 subgroup = -1);
2188 bool isAllowedToLoot(
Creature const* creature)
const;
2197 bool IsBaseRuneSlotsOnCooldown(
RuneType runeType)
const;
2202 void SetRuneCooldown(
uint8 index,
uint32 cooldown,
bool casted =
false);
2206 void RemoveRunesByAuraEffect(
AuraEffect const* aura);
2207 void RestoreBaseRune(
uint8 index);
2209 void ResyncRunes()
const;
2210 void AddRunePower(
uint8 index)
const;
2213 void SendRespondInspectAchievements(
Player* player)
const;
2214 bool HasAchieved(
uint32 achievementId)
const;
2215 void ResetAchievements();
2222 bool HasTitle(
uint32 bitIndex)
const;
2227 bool CanSeeSpellClickOn(
Creature const* creature)
const;
2233 float GetAverageItemLevel()
const;
2241 void SendMovementSetCollisionHeight(
float height);
2246 std::string GetMapAreaAndZoneString()
const;
2247 std::string GetCoordsMapAreaAndZoneString()
const;
2301 void _LoadGlyphAuras();
2349 void HandleSobering();
2352 void HandleDrowning(
uint32 time_diff);
2360 void outDebugValues()
const;
2506 void SendRefundInfo(
Item* item);
2507 void RefundItem(
Item* item);
2511 void AddKnownCurrency(
uint32 itemId);
2521 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
@ 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_FIELD_KILLS_OFFSET_TODAY_KILLS
@ PLAYER_FIELD_KILLS_OFFSET_YESTERDAY_KILLS
@ 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_NO_REAGENT_COST_1
@ 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
void ApplyModInt32Value(uint16 index, int32 val, bool apply)
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
void ApplyModFakeDrunkValue(int32 mod, bool apply)
uint8 GetGrantableLevels() const
void SetTalentGroupsCount(uint8 count)
uint32 GetArmorProficiency() const
GroupReference m_originalGroup
static bool IsEquipmentPos(uint16 pos)
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)
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)
void SetSelection(ObjectGuid const &guid)
Used for serverside target changes, does not apply to players.
PetStable * GetPetStable()
void SetRaidDifficultyID(Difficulty raid_difficulty)
void SetNoRegentCostMask(flag96 mask)
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 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
Difficulty GetDungeonDifficultyID() const
time_t m_nextMailDelivereTime
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)
void SetTarget(ObjectGuid const &) override
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
void SetDungeonDifficultyID(Difficulty dungeon_difficulty)
EquipmentSetContainer _equipmentSets
std::vector< Item * > & GetItemUpdateQueue()
void AddQuestRewardedTalentCount(uint32 points)
Difficulty GetRaidDifficultyID() const
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)
void SetMultiActionBars(uint8 mask)
uint32 GetFreePrimaryProfessionPoints() const
uint32 GetQuestRewardedTalentCount() const
uint32 m_teleport_options
uint8 GetRestState() 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
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