1
0
EQ2Emu/docs/code/Player.md
2025-05-06 09:54:48 -04:00

19 KiB

File: Player.h

Classes

  • HistoryData
  • LUAHistory
  • SpellBookEntry
  • GMTagFilter
  • QuickBarItem
  • LoginAppearances
  • SpawnQueueState
  • PlayerLoginAppearance
  • InstanceData
  • CharacterInstances
  • Player
  • PlayerGroup
  • GroupMemberInfo
  • Statistic
  • Mail
  • PlayerInfo
  • PlayerControlFlags
  • Player

Functions

  • void AddEquipmentToUpdate(int8 slot_id, LoginAppearances* equip)
  • void DeleteEquipmentFromUpdate(int8 slot_id, LoginAppearances* equip)
  • void RemoveEquipmentUpdates()
  • void AddInstance(int32 db_id, int32 instance_id, int32 last_success_timestamp, int32 last_failure_timestamp, int32 success_lockout_time, int32 failure_lockout_time, int32 zone_id, int8 zone_instancetype, string zone_name);
  • void RemoveInstances();
  • bool RemoveInstanceByZoneID(int32 zone_id);
  • bool RemoveInstanceByInstanceID(int32 instance_id);
  • vector<InstanceData> GetLockoutInstances();
  • vector<InstanceData> GetPersistentInstances();
  • void ProcessInstanceTimers(Player* player);
  • int32 GetInstanceCount();
  • void CalculateXPPercentages();
  • void CalculateTSXPPercentages();
  • void SetHouseZone(int32 id);
  • void SetBindZone(int32 id);
  • void SetBindX(float x);
  • void SetBindY(float y);
  • void SetBindZ(float z);
  • void SetBindHeading(float heading);
  • void SetAccountAge(int32 days);
  • int32 GetHouseZoneID();
  • int32 GetBindZoneID();
  • float GetBindZoneX();
  • float GetBindZoneY();
  • float GetBindZoneZ();
  • float GetBindZoneHeading();
  • float GetBoatX() { return boat_x_offset; }
  • float GetBoatY() { return boat_y_offset; }
  • float GetBoatZ() { return boat_z_offset; }
  • int32 GetBoatSpawn();
  • void SetBoatX(float x) { boat_x_offset = x; }
  • void SetBoatY(float y) { boat_y_offset = y; }
  • void SetBoatZ(float z) { boat_z_offset = z; }
  • void SetBoatSpawn(Spawn* boat);
  • void RemoveOldPackets();
  • void SetPlayerControlFlag(int8 param, int8 param_value, bool is_active);
  • bool ControlFlagsChanged();
  • void SendControlFlagUpdates(Client* client);
  • void SetClient(Client* client) { this->client = client; }
  • void SetCharSheetChanged(bool val);
  • bool GetCharSheetChanged();
  • void SetRaidSheetChanged(bool val);
  • bool GetRaidSheetChanged();
  • void AddFriend(const char* name, bool save);
  • bool IsFriend(const char* name);
  • void RemoveFriend(const char* name);
  • void AddIgnore(const char* name, bool save);
  • bool IsIgnored(const char* name);
  • void RemoveIgnore(const char* name);
  • void AddPlayerDiscoveredPOI(int32 location_id);
  • void SetArtLevel(int8 new_lvl){
  • bool WasSentSpawn(int32 spawn_id);
  • bool IsSendingSpawn(int32 spawn_id);
  • bool IsRemovingSpawn(int32 spawn_id);
  • bool SetSpawnSentState(Spawn* spawn, SpawnState state);
  • void CheckSpawnStateQueue();
  • void SetSideSpeed(float side_speed, bool updateFlags = true) {
  • float GetSideSpeed() {
  • void SetVertSpeed(float vert_speed, bool updateFlags = true) {
  • float GetVertSpeed() {
  • void SetClientHeading1(float heading, bool updateFlags = true) {
  • float GetClientHeading1() {
  • void SetClientHeading2(float heading, bool updateFlags = true) {
  • float GetClientHeading2() {
  • void SetClientPitch(float pitch, bool updateFlags = true) {
  • float GetClientPitch() {
  • int8 GetTutorialStep() {
  • void SetTutorialStep(int8 val) {
  • void AddMaintainedSpell(LuaSpell* spell);
  • void AddSpellEffect(LuaSpell* spell, int32 override_expire_time = 0);
  • void RemoveMaintainedSpell(LuaSpell* spell);
  • void RemoveSpellEffect(LuaSpell* spell);
  • void AddQuickbarItem(int32 bar, int32 slot, int32 type, int16 icon, int16 icon_type, int32 id, int8 tier, int32 unique_id, const char* text, bool update = true);
  • void RemoveQuickbarItem(int32 bar, int32 slot, bool update = true);
  • void MoveQuickbarItem(int32 id, int32 new_slot);
  • void ClearQuickbarItems();
  • bool DamageEquippedItems(int8 amount = 10, Client* client = 0);
  • bool CanEquipItem(Item* item, int8 slot);
  • void SetEquippedItemAppearances();
  • int16 ConvertSlotToClient(int8 slot, int16 version);
  • int16 ConvertSlotFromClient(int8 slot, int16 version);
  • int16 GetNumSlotsEquip(int16 version);
  • int8 GetMaxBagSlots(int16 version);
  • void SendQuestRequiredSpawns(int32 quest_id);
  • void SendHistoryRequiredSpawns(int32 event_id);
  • int32 GetStepProgress(int32 quest_id, int32 step_id);
  • bool AddItem(Item* item, AddItemType type = AddItemType::NOT_SET);
  • bool AddItemToBank(Item* item);
  • int16 GetSpellSlotMappingCount();
  • int16 GetSpellPacketCount();
  • bool GetQuestStepComplete(int32 quest_id, int32 step_id);
  • int16 GetQuestStep(int32 quest_id);
  • int16 GetTaskGroupStep(int32 quest_id);
  • int8 GetSpellTier(int32 id);
  • void SetSpellStatus(Spell* spell, int8 status);
  • void RemoveSpellStatus(Spell* spell, int8 status);
  • int32 GetCharacterID();
  • void SetCharacterID(int32 new_id);
  • bool UpdateQuickbarNeeded();
  • void ResetQuickbarNeeded();
  • void set_character_flag(int flag);
  • void reset_character_flag(int flag);
  • void toggle_character_flag(int flag);
  • bool get_character_flag(int flag);
  • void AddCoins(int64 val);
  • bool RemoveCoins(int64 val);
  • bool HasCoins(int64 val);
  • void AddSkill(int32 skill_id, int16 current_val, int16 max_val, bool save_needed = false);
  • void RemovePlayerSkill(int32 skill_id, bool save = false);
  • void RemoveSkillFromDB(Skill* skill, bool save = false);
  • void AddSpellBookEntry(int32 spell_id, int8 tier, sint32 slot, int32 type, int32 timer, bool save_needed = false);
  • sint32 GetFreeSpellBookSlot(int32 type);
  • vector<int32> GetSpellBookSpellIDBySkill(int32 skill_id);
  • void UpdateInventory(int32 bag_id);
  • bool IsPlayer(){ return true; }
  • int32 GetCoinsCopper();
  • int32 GetCoinsSilver();
  • int32 GetCoinsGold();
  • int32 GetCoinsPlat();
  • int32 GetBankCoinsCopper();
  • int32 GetBankCoinsSilver();
  • int32 GetBankCoinsGold();
  • int32 GetBankCoinsPlat();
  • int32 GetStatusPoints();
  • float GetXPVitality();
  • float GetTSXPVitality();
  • bool AdventureXPEnabled();
  • bool TradeskillXPEnabled();
  • void SetNeededXP(int32 val);
  • void SetNeededXP();
  • void SetXP(int32 val);
  • void SetNeededTSXP(int32 val);
  • void SetNeededTSXP();
  • void SetTSXP(int32 val);
  • int32 GetNeededXP();
  • float GetXPDebt();
  • int32 GetXP();
  • int32 GetNeededTSXP();
  • int32 GetTSXP();
  • bool AddXP(int32 xp_amount);
  • bool AddTSXP(int32 xp_amount);
  • bool DoubleXPEnabled();
  • float CalculateXP(Spawn* victim);
  • float CalculateTSXP(int8 level);
  • void CalculateOfflineDebtRecovery(int32 unix_timestamp);
  • void InCombat(bool val, bool range = false);
  • void PrepareIncomingMovementPacket(int32 len, uchar* data, int16 version);
  • void AddSpawnInfoPacketForXOR(int32 spawn_id, uchar* packet, int16 packet_size);
  • void AddSpawnVisPacketForXOR(int32 spawn_id, uchar* packet, int16 packet_size);
  • void AddSpawnPosPacketForXOR(int32 spawn_id, uchar* packet, int16 packet_size);
  • int32 GetTempInfoXorSize() { return info_xor_size; }
  • int32 GetTempVisXorSize() { return vis_xor_size; }
  • int32 GetTempPosXorSize() { return pos_xor_size; }
  • bool CheckPlayerInfo();
  • void CalculateLocation();
  • void SetSpawnDeleteTime(int32 id, int32 time);
  • int32 GetSpawnDeleteTime(int32 id);
  • void ClearRemovalTimers();
  • void ClearEverything();
  • bool IsResurrecting();
  • void SetResurrecting(bool val);
  • int8 GetTSArrowColor(int8 level);
  • int16 GetIndexForSpawn(Spawn* spawn);
  • bool WasSpawnRemoved(Spawn* spawn);
  • void RemoveSpawn(Spawn* spawn, bool delete_spawn = true);
  • bool ShouldSendSpawn(Spawn* spawn);
  • void SetLevel(int16 level, bool setUpdateFlags = true);
  • int32 GetIDWithPlayerSpawn(Spawn* spawn){
  • int16 GetNextSpawnIndex(Spawn* spawn, bool set_lock = true);
  • bool SetSpawnMap(Spawn* spawn);
  • void SetSpawnMapIndex(Spawn* spawn, int32 index)
  • int16 SetSpawnMapAndIndex(Spawn* spawn);
  • void RemoveQuest(int32 id, bool delete_quest);
  • bool HasQuestUpdateRequirement(Spawn* spawn);
  • void CheckQuestsCraftUpdate(Item* item, int32 qty);
  • void CheckQuestsHarvestUpdate(Item* item, int32 qty);
  • bool CheckQuestRemoveFlag(Spawn* spawn);
  • int8 CheckQuestFlag(Spawn* spawn);
  • bool UpdateQuestReward(int32 quest_id, QuestRewardData* qrd);
  • bool AcceptQuestReward(int32 item_id, int32 selectable_item_id);
  • bool SendQuestStepUpdate(int32 quest_id, int32 quest_step_id, bool display_quest_helper);
  • void SendQuest(int32 quest_id);
  • void UpdateQuestCompleteCount(int32 quest_id);
  • void GetQuestTemporaryRewards(int32 quest_id, std::vector<Item*>* items);
  • void AddQuestTemporaryReward(int32 quest_id, int32 item_id, int16 item_count);
  • bool CheckQuestRequired(Spawn* spawn);
  • void AddQuestRequiredSpawn(Spawn* spawn, int32 quest_id);
  • void AddHistoryRequiredSpawn(Spawn* spawn, int32 event_id);
  • bool HasQuestBeenCompleted(int32 quest_id);
  • int32 GetQuestCompletedCount(int32 quest_id);
  • void AddCompletedQuest(Quest* quest);
  • bool HasActiveQuest(int32 quest_id);
  • bool HasAnyQuest(int32 quest_id);
  • void SetFactionValue(int32 faction_id, sint32 value){
  • vector<int32> GetQuestIDs();
  • bool HasPendingLootItems(int32 id);
  • bool HasPendingLootItem(int32 id, int32 item_id);
  • void RemovePendingLootItem(int32 id, int32 item_id);
  • void RemovePendingLootItems(int32 id);
  • void AddPendingLootItems(int32 id, vector<Item*>* items);
  • int16 GetTierUp(int16 tier);
  • bool HasSpell(int32 spell_id, int8 tier = 255, bool include_higher_tiers = false, bool include_possible_scribe = false);
  • bool HasRecipeBook(int32 recipe_id);
  • void AddPlayerStatistic(int32 stat_id, sint32 stat_value, int32 stat_date);
  • void UpdatePlayerStatistic(int32 stat_id, sint32 stat_value, bool overwrite = false);
  • sint64 GetPlayerStatisticValue(int32 stat_id);
  • void WritePlayerStatistics();
  • void SetGroup(PlayerGroup* group);
  • bool IsGroupMember(Entity* player);
  • void SetGroupInformation(PacketStruct* packet);
  • void ResetSavedSpawns();
  • bool IsReturningFromLD();
  • void SetReturningFromLD(bool val);
  • bool CheckLevelStatus(int16 new_level);
  • int16 GetLastMovementActivity();
  • void DestroyQuests();
  • string GetAwayMessage() const { return away_message; }
  • void SetAwayMessage(string val) { away_message = val; }
  • void SetRangeAttack(bool val);
  • bool GetRangeAttack();
  • bool AddMail(Mail* mail);
  • void DeleteMail(bool from_database = false);
  • void DeleteMail(int32 mail_id, bool from_database = false);
  • void SetIsTracking(bool val) { is_tracking = val; }
  • bool GetIsTracking() const { return is_tracking; }
  • void SetBiography(string new_biography) { biography = new_biography; }
  • string GetBiography() const { return biography; }
  • void SetPlayerAdventureClass(int8 new_class);
  • void SetGuild(Guild* new_guild) { guild = new_guild; }
  • void AddSkillBonus(int32 spell_id, int32 skill_id, float value);
  • bool CheckChangeInvisHistory(Entity* target);
  • void UpdateTargetInvisHistory(int32 targetID, bool canSeeStatus);
  • void RemoveTargetInvisHistory(int32 targetID);
  • bool HasFreeBankSlot();
  • int8 FindFreeBankSlot();
  • void SetPendingCollectionReward(Collection *collection) { pending_collection_reward = collection; }
  • void AddPendingSelectableItemReward(int32 source_id, Item* item) {
  • void AddPendingItemReward(Item* item) {
  • bool HasPendingItemRewards() { return (pending_item_rewards.size() > 0 || pending_selectable_item_rewards.size() > 0); }
  • void ClearPendingSelectableItemRewards(int32 source_id, bool all = false) {
  • void ClearPendingItemRewards() { //the client doesn't send any reference to where the pending rewards came from, so if they collect one, we should just them all of them at once
  • void DeleteSpellBook(int8 type_selection = 0);
  • void RemoveSpellBookEntry(int32 spell_id, bool remove_passives_from_list = true);
  • void ResortSpellBook(int32 sort_by, int32 order, int32 pattern, int32 maxlvl_only, int32 book_type);
  • void GetSpellBookSlotSort(int32 pattern, int32* i, int8* page_book_count, int32* last_start_point);
  • int8 GetSpellSlot(int32 spell_id);
  • void AddTitle(sint32 title_id, const char *name, int8 prefix, bool save_needed = false);
  • void AddAAEntry(int16 template_id, int8 tab_id, int32 aa_id, int16 order, int8 treeid);
  • void AddLanguage(int32 id, const char *name, bool save_needed = false);
  • bool HasLanguage(int32 id);
  • bool HasLanguage(const char* name);
  • bool CanReceiveQuest(int32 quest_id, int8* ret = 0);
  • float GetBoatX() { if (info) return info->GetBoatX(); return 0; }
  • float GetBoatY() { if (info) return info->GetBoatY(); return 0; }
  • float GetBoatZ() { if (info) return info->GetBoatZ(); return 0; }
  • int32 GetBoatSpawn() { if (info) return info->GetBoatSpawn(); return 0; }
  • void SetBoatX(float x) { if (info) info->SetBoatX(x); }
  • void SetBoatY(float y) { if (info) info->SetBoatY(y); }
  • void SetBoatZ(float z) { if (info) info->SetBoatZ(z); }
  • void SetBoatSpawn(Spawn* boat) { if (info) info->SetBoatSpawn(boat); }
  • void SetPendingDeletion(bool val) { pending_deletion = val; }
  • bool GetPendingDeletion() { return pending_deletion; }
  • float GetPosPacketSpeed() { return pos_packet_speed; }
  • bool ControlFlagsChanged();
  • void SetPlayerControlFlag(int8 param, int8 param_value, bool is_active);
  • void SendControlFlagUpdates(Client* client);
  • void ApplyPassiveSpells();
  • void RemoveAllPassives();
  • int32 GetCurrentRecipe() { return current_recipe; }
  • void SetCurrentRecipe(int32 val) { current_recipe = val; }
  • void ResetPetInfo();
  • void ProcessCombat();
  • void UpdatePlayerHistory(int8 type, int8 subtype, int32 value, int32 value2 = 0);
  • bool DiscoveredLocation(int32 locationID);
  • void LoadPlayerHistory(int8 type, int8 subtype, HistoryData* hd);
  • void SaveHistory();
  • void LockAllSpells();
  • void UnlockAllSpells(bool modify_recast = false, Spell* exception = 0);
  • void LockSpell(Spell* spell, int16 recast);
  • void UnlockSpell(Spell* spell);
  • void LockTSSpells();
  • void UnlockTSSpells();
  • void QueueSpell(Spell* spell);
  • void UnQueueSpell(Spell* spell);
  • void SetSpawnInfoStruct(PacketStruct* packet) { safe_delete(spawn_info_struct); spawn_info_struct = packet; }
  • void SetSpawnVisStruct(PacketStruct* packet) { safe_delete(spawn_vis_struct); spawn_vis_struct = packet; }
  • void SetSpawnPosStruct(PacketStruct* packet) { safe_delete(spawn_pos_struct); spawn_pos_struct = packet; }
  • void SetSpawnHeaderStruct(PacketStruct* packet) { safe_delete(spawn_header_struct); spawn_header_struct = packet; }
  • void SetSpawnFooterStruct(PacketStruct* packet) { safe_delete(spawn_footer_struct); spawn_footer_struct = packet; }
  • void SetSignFooterStruct(PacketStruct* packet) { safe_delete(sign_footer_struct); sign_footer_struct = packet; }
  • void SetWidgetFooterStruct(PacketStruct* packet) { safe_delete(widget_footer_struct); widget_footer_struct = packet; }
  • void SetTempMount(int32 id) { tmp_mount_model = id; }
  • int32 GetTempMount() { return tmp_mount_model; }
  • void SetTempMountColor(EQ2_Color* color) { tmp_mount_color = *color; }
  • EQ2_Color GetTempMountColor() { return tmp_mount_color; }
  • void SetTempMountSaddleColor(EQ2_Color* color) { tmp_mount_saddle_color = *color; }
  • EQ2_Color GetTempMountSaddleColor() { return tmp_mount_saddle_color; }
  • void LoadLUAHistory(int32 event_id, LUAHistory* history);
  • void SaveLUAHistory();
  • void UpdateLUAHistory(int32 event_id, int32 value, int32 value2);
  • bool HasGMVision() { return gm_vision; }
  • void SetGMVision(bool val) { gm_vision = val; }
  • void StopCombat(int8 type=0) {
  • void DismissAllPets();
  • void SaveSpellEffects();
  • void SetSaveSpellEffects(bool val) { stop_save_spell_effects = val; }
  • bool StopSaveSpellEffects() { return stop_save_spell_effects; }
  • void MentorTarget();
  • void SetMentorStats(int32 effective_level, int32 target_char_id = 0, bool update_stats = true);
  • bool ResetMentorship() {
  • void EnableResetMentorship() {
  • bool SerializeItemPackets(EquipmentItemList* equipList, vector<EQ2Packet*>* packets, Item* item, int16 version, Item* to_item = 0);
  • void AddGMVisualFilter(int32 filter_type, int32 filter_value, char* filter_search_str, int16 visual_tag);
  • int16 MatchGMVisualFilter(int32 filter_type, int32 filter_value, char* filter_search_str, bool in_vismutex_lock = false);
  • void ClearGMVisualFilters();
  • int GetPVPAlignment();
  • int32 GetCurrentLanguage() { return current_language_id; }
  • void SetCurrentLanguage(int32 language_id) { current_language_id = language_id; }
  • void SetActiveReward(bool val) { active_reward = val; }
  • bool IsActiveReward() { return active_reward; }
  • bool IsSpawnInRangeList(int32 spawn_id);
  • void SetSpawnInRangeList(int32 spawn_id, bool in_range);
  • void ProcessSpawnRangeUpdates();
  • void CalculatePlayerHPPower(int16 new_level = 0);
  • bool IsAllowedCombatEquip(int8 slot = 255, bool send_message = false);
  • void SetActiveFoodUniqueID(int32 unique_id, bool update_db = true);
  • void SetActiveDrinkUniqueID(int32 unique_id, bool update_db = true);
  • int32 GetActiveFoodUniqueID() { return active_food_unique_id; }
  • int32 GetActiveDrinkUniqueID() { return active_drink_unique_id; }
  • void InitXPTable();
  • void RemovePlayerStatistics();
  • void AddPassiveSpell(int32 id, int8 tier);
  • void RemovePassive(int32 id, int8 tier, bool remove_from_list = true);
  • void HandleHistoryNone(int8 subtype, int32 value, int32 value2);
  • void HandleHistoryDeath(int8 subtype, int32 value, int32 value2);
  • void HandleHistoryDiscovery(int8 subtype, int32 value, int32 value2);
  • void HandleHistoryXP(int8 subtype, int32 value, int32 value2);
  • void ModifySpellStatus(SpellBookEntry* spell, sint16 value, bool modify_recast = true, int16 recast = 0);
  • void AddSpellStatus(SpellBookEntry* spell, sint16 value, bool modify_recast = true, int16 recast = 0);
  • void RemoveSpellStatus(SpellBookEntry* spell, sint16 value, bool modify_recast = true, int16 recast = 0);
  • void SetSpellEntryRecast(SpellBookEntry* spell, bool modify_recast, int16 recast);

Notable Comments

  • /*
  • */
  • /* Character History Type Defines */
  • /* Spell Status */
  • /* Character History Sub Type Defines */
  • /// Character history data, should match the character_history table in the DB
  • /// History set through the LUA system
  • //LoginAppearances data;
  • //data.equip_type = equip->equip_type;
  • //appearanceList[slot_id] = data;