mirror of
https://github.com/emagi/eq2emu
synced 2026-08-12 18:23:04 -04:00
19 KiB
19 KiB
File: Player.h
Classes
HistoryDataLUAHistorySpellBookEntryGMTagFilterQuickBarItemLoginAppearancesSpawnQueueStatePlayerLoginAppearanceInstanceDataCharacterInstancesPlayerPlayerGroupGroupMemberInfoStatisticMailPlayerInfoPlayerControlFlagsPlayer
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 oncevoid 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_historytable in the DB - ///
History set through the LUA system - //LoginAppearances data;
- //data.equip_type = equip->equip_type;
- //appearanceList[slot_id] = data;