From 8f32a9949b9d0317affa335c207792261f3f9129 Mon Sep 17 00:00:00 2001 From: Trevius Date: Tue, 18 Nov 2014 17:32:59 -0600 Subject: [PATCH] Fixed bad formatting of client.h and merc.h caused by my last commit. --- zone/client.h | 1328 ++++++++++++++++++++++++------------------------- zone/merc.h | 234 ++++----- 2 files changed, 764 insertions(+), 798 deletions(-) diff --git a/zone/client.h b/zone/client.h index 8407ff221..c2dabdc62 100644 --- a/zone/client.h +++ b/zone/client.h @@ -1,4 +1,4 @@ -/* EQEMu: Everquest Server Emulator +/* EQEMu: Everquest Server Emulator Copyright (C) 2001-2003 EQEMu Development Team (http://eqemulator.org) This program is free software; you can redistribute it and/or modify @@ -61,10 +61,10 @@ class Client; #include -#define CLIENT_TIMEOUT 90000 -#define CLIENT_LD_TIMEOUT 30000 // length of time client stays in zone after LDing -#define TARGETING_RANGE 200 // range for /assist and /target -#define XTARGET_HARDCAP 20 +#define CLIENT_TIMEOUT 90000 +#define CLIENT_LD_TIMEOUT 30000 // length of time client stays in zone after LDing +#define TARGETING_RANGE 200 // range for /assist and /target +#define XTARGET_HARDCAP 20 extern Zone* zone; extern TaskManager *taskmanager; @@ -78,25 +78,25 @@ public: bool ack_req; }; -enum { //Type arguments to the Message* routines. +enum { //Type arguments to the Message* routines. //all not explicitly listed are the same grey color clientMessageWhite0 = 0, - clientMessageLoot = 2, //dark green - clientMessageTradeskill = 4, //light blue - clientMessageTell = 5, //magenta + clientMessageLoot = 2, //dark green + clientMessageTradeskill = 4, //light blue + clientMessageTell = 5, //magenta clientMessageWhite = 7, clientMessageWhite2 = 10, clientMessageLightGrey = 12, - clientMessageError = 13, //red + clientMessageError = 13, //red clientMessageGreen = 14, clientMessageYellow = 15, clientMessageBlue = 16, - clientMessageGroup = 18, //cyan + clientMessageGroup = 18, //cyan clientMessageWhite3 = 20, }; #define SPELLBAR_UNLOCK 0x2bc -enum { //scribing argument to MemorizeSpell +enum { //scribing argument to MemorizeSpell memSpellScribing = 0, memSpellMemorize = 1, memSpellForget = 2, @@ -105,14 +105,14 @@ enum { //scribing argument to MemorizeSpell //Modes for the zoning state of the client. typedef enum { - ZoneToSafeCoords, // Always send ZonePlayerToBind_Struct to client: Succor/Evac - GMSummon, // Always send ZonePlayerToBind_Struct to client: Only a GM Summon - ZoneToBindPoint, // Always send ZonePlayerToBind_Struct to client: Death Only - ZoneSolicited, // Always send ZonePlayerToBind_Struct to client: Portal, Translocate, Evac spells that have a x y z coord in the spell data + ZoneToSafeCoords, // Always send ZonePlayerToBind_Struct to client: Succor/Evac + GMSummon, // Always send ZonePlayerToBind_Struct to client: Only a GM Summon + ZoneToBindPoint, // Always send ZonePlayerToBind_Struct to client: Death Only + ZoneSolicited, // Always send ZonePlayerToBind_Struct to client: Portal, Translocate, Evac spells that have a x y z coord in the spell data ZoneUnsolicited, - GateToBindPoint, // Always send RequestClientZoneChange_Struct to client: Gate spell or Translocate To Bind Point spell - SummonPC, // In-zone GMMove() always: Call of the Hero spell or some other type of in zone only summons - Rewind, // Summon to /rewind location. + GateToBindPoint, // Always send RequestClientZoneChange_Struct to client: Gate spell or Translocate To Bind Point spell + SummonPC, // In-zone GMMove() always: Call of the Hero spell or some other type of in zone only summons + Rewind, // Summon to /rewind location. EvacToSafeCoords } ZoneMode; @@ -221,176 +221,176 @@ public: virtual void SetAttackTimer(); float GetQuiverHaste(); - void AI_Init(); - void AI_Start(uint32 iMoveDelay = 0); - void AI_Stop(); - void AI_Process(); - void AI_SpellCast(); - void Trader_ShowItems(); - void Trader_CustomerBrowsing(Client *Customer); - void Trader_EndTrader(); - void Trader_StartTrader(); - uint8 WithCustomer(uint16 NewCustomer); - void KeyRingLoad(); - void KeyRingAdd(uint32 item_id); - bool KeyRingCheck(uint32 item_id); - void KeyRingList(); + void AI_Init(); + void AI_Start(uint32 iMoveDelay = 0); + void AI_Stop(); + void AI_Process(); + void AI_SpellCast(); + void Trader_ShowItems(); + void Trader_CustomerBrowsing(Client *Customer); + void Trader_EndTrader(); + void Trader_StartTrader(); + uint8 WithCustomer(uint16 NewCustomer); + void KeyRingLoad(); + void KeyRingAdd(uint32 item_id); + bool KeyRingCheck(uint32 item_id); + void KeyRingList(); virtual bool IsClient() const { return true; } - void CompleteConnect(); - bool TryStacking(ItemInst* item, uint8 type = ItemPacketTrade, bool try_worn = true, bool try_cursor = true); - void SendTraderPacket(Client* trader, uint32 Unknown72 = 51); - void SendBuyerPacket(Client* Buyer); + void CompleteConnect(); + bool TryStacking(ItemInst* item, uint8 type = ItemPacketTrade, bool try_worn = true, bool try_cursor = true); + void SendTraderPacket(Client* trader, uint32 Unknown72 = 51); + void SendBuyerPacket(Client* Buyer); GetItems_Struct* GetTraderItems(); - void SendBazaarWelcome(); - void DyeArmor(DyeStruct* dye); - uint8 SlotConvert(uint8 slot,bool bracer=false); - void Message_StringID(uint32 type, uint32 string_id, uint32 distance = 0); - void Message_StringID(uint32 type, uint32 string_id, const char* message,const char* message2=0,const char* message3=0,const char* message4=0,const char* message5=0,const char* message6=0,const char* message7=0,const char* message8=0,const char* message9=0, uint32 distance = 0); - bool FilteredMessageCheck(Mob *sender, eqFilterType filter); - void FilteredMessage_StringID(Mob *sender, uint32 type, eqFilterType filter, uint32 string_id); - void FilteredMessage_StringID(Mob *sender, uint32 type, eqFilterType filter, + void SendBazaarWelcome(); + void DyeArmor(DyeStruct* dye); + uint8 SlotConvert(uint8 slot,bool bracer=false); + void Message_StringID(uint32 type, uint32 string_id, uint32 distance = 0); + void Message_StringID(uint32 type, uint32 string_id, const char* message,const char* message2=0,const char* message3=0,const char* message4=0,const char* message5=0,const char* message6=0,const char* message7=0,const char* message8=0,const char* message9=0, uint32 distance = 0); + bool FilteredMessageCheck(Mob *sender, eqFilterType filter); + void FilteredMessage_StringID(Mob *sender, uint32 type, eqFilterType filter, uint32 string_id); + void FilteredMessage_StringID(Mob *sender, uint32 type, eqFilterType filter, uint32 string_id, const char *message1, const char *message2 = nullptr, const char *message3 = nullptr, const char *message4 = nullptr, const char *message5 = nullptr, const char *message6 = nullptr, const char *message7 = nullptr, const char *message8 = nullptr, const char *message9 = nullptr); - void Tell_StringID(uint32 string_id, const char *who, const char *message); - void SendColoredText(uint32 color, std::string message); - void SendBazaarResults(uint32 trader_id,uint32 class_,uint32 race,uint32 stat,uint32 slot,uint32 type,char name[64],uint32 minprice,uint32 maxprice); - void SendTraderItem(uint32 item_id,uint16 quantity); - uint16 FindTraderItem(int32 SerialNumber,uint16 Quantity); + void Tell_StringID(uint32 string_id, const char *who, const char *message); + void SendColoredText(uint32 color, std::string message); + void SendBazaarResults(uint32 trader_id,uint32 class_,uint32 race,uint32 stat,uint32 slot,uint32 type,char name[64],uint32 minprice,uint32 maxprice); + void SendTraderItem(uint32 item_id,uint16 quantity); + uint16 FindTraderItem(int32 SerialNumber,uint16 Quantity); ItemInst* FindTraderItemBySerialNumber(int32 SerialNumber); - void FindAndNukeTraderItem(int32 item_id,uint16 quantity,Client* customer,uint16 traderslot); - void NukeTraderItem(uint16 slot,int16 charges,uint16 quantity,Client* customer,uint16 traderslot, int uniqueid); - void ReturnTraderReq(const EQApplicationPacket* app,int16 traderitemcharges); - void TradeRequestFailed(const EQApplicationPacket* app); - void BuyTraderItem(TraderBuy_Struct* tbs,Client* trader,const EQApplicationPacket* app); - void TraderUpdate(uint16 slot_id,uint32 trader_id); - void FinishTrade(Mob* with, bool finalizer = false, void* event_entry = nullptr, std::list* event_details = nullptr); - void SendZonePoints(); + void FindAndNukeTraderItem(int32 item_id,uint16 quantity,Client* customer,uint16 traderslot); + void NukeTraderItem(uint16 slot,int16 charges,uint16 quantity,Client* customer,uint16 traderslot, int uniqueid); + void ReturnTraderReq(const EQApplicationPacket* app,int16 traderitemcharges); + void TradeRequestFailed(const EQApplicationPacket* app); + void BuyTraderItem(TraderBuy_Struct* tbs,Client* trader,const EQApplicationPacket* app); + void TraderUpdate(uint16 slot_id,uint32 trader_id); + void FinishTrade(Mob* with, bool finalizer = false, void* event_entry = nullptr, std::list* event_details = nullptr); + void SendZonePoints(); - void SendBuyerResults(char *SearchQuery, uint32 SearchID); - void ShowBuyLines(const EQApplicationPacket *app); - void SellToBuyer(const EQApplicationPacket *app); - void ToggleBuyerMode(bool TurnOn); - void UpdateBuyLine(const EQApplicationPacket *app); - void BuyerItemSearch(const EQApplicationPacket *app); - void SetBuyerWelcomeMessage(const char* WelcomeMessage) { BuyerWelcomeMessage = WelcomeMessage; } - const char* GetBuyerWelcomeMessage() { return BuyerWelcomeMessage.c_str(); } + void SendBuyerResults(char *SearchQuery, uint32 SearchID); + void ShowBuyLines(const EQApplicationPacket *app); + void SellToBuyer(const EQApplicationPacket *app); + void ToggleBuyerMode(bool TurnOn); + void UpdateBuyLine(const EQApplicationPacket *app); + void BuyerItemSearch(const EQApplicationPacket *app); + void SetBuyerWelcomeMessage(const char* WelcomeMessage) { BuyerWelcomeMessage = WelcomeMessage; } + const char* GetBuyerWelcomeMessage() { return BuyerWelcomeMessage.c_str(); } - void FillSpawnStruct(NewSpawn_Struct* ns, Mob* ForWho); + void FillSpawnStruct(NewSpawn_Struct* ns, Mob* ForWho); virtual bool Process(); - void LogMerchant(Client* player, Mob* merchant, uint32 quantity, uint32 price, const Item_Struct* item, bool buying); - void SendPacketQueue(bool Block = true); - void QueuePacket(const EQApplicationPacket* app, bool ack_req = true, CLIENT_CONN_STATUS = CLIENT_CONNECTINGALL, eqFilterType filter=FilterNone); - void FastQueuePacket(EQApplicationPacket** app, bool ack_req = true, CLIENT_CONN_STATUS = CLIENT_CONNECTINGALL); - void ChannelMessageReceived(uint8 chan_num, uint8 language, uint8 lang_skill, const char* orig_message, const char* targetname=nullptr); - void ChannelMessageSend(const char* from, const char* to, uint8 chan_num, uint8 language, const char* message, ...); - void ChannelMessageSend(const char* from, const char* to, uint8 chan_num, uint8 language, uint8 lang_skill, const char* message, ...); - void Message(uint32 type, const char* message, ...); - void QuestJournalledMessage(const char *npcname, const char* message); - void VoiceMacroReceived(uint32 Type, char *Target, uint32 MacroNumber); - void SendSound(); - void LearnRecipe(uint32 recipeID); - bool CanIncreaseTradeskill(SkillUseTypes tradeskill); + void LogMerchant(Client* player, Mob* merchant, uint32 quantity, uint32 price, const Item_Struct* item, bool buying); + void SendPacketQueue(bool Block = true); + void QueuePacket(const EQApplicationPacket* app, bool ack_req = true, CLIENT_CONN_STATUS = CLIENT_CONNECTINGALL, eqFilterType filter=FilterNone); + void FastQueuePacket(EQApplicationPacket** app, bool ack_req = true, CLIENT_CONN_STATUS = CLIENT_CONNECTINGALL); + void ChannelMessageReceived(uint8 chan_num, uint8 language, uint8 lang_skill, const char* orig_message, const char* targetname=nullptr); + void ChannelMessageSend(const char* from, const char* to, uint8 chan_num, uint8 language, const char* message, ...); + void ChannelMessageSend(const char* from, const char* to, uint8 chan_num, uint8 language, uint8 lang_skill, const char* message, ...); + void Message(uint32 type, const char* message, ...); + void QuestJournalledMessage(const char *npcname, const char* message); + void VoiceMacroReceived(uint32 Type, char *Target, uint32 MacroNumber); + void SendSound(); + void LearnRecipe(uint32 recipeID); + bool CanIncreaseTradeskill(SkillUseTypes tradeskill); - EQApplicationPacket* ReturnItemPacket(int16 slot_id, const ItemInst* inst, ItemPacketType packet_type); + EQApplicationPacket* ReturnItemPacket(int16 slot_id, const ItemInst* inst, ItemPacketType packet_type); - bool GetRevoked() const { return revoked; } - void SetRevoked(bool rev) { revoked = rev; } - inline uint32 GetIP() const { return ip; } - inline bool GetHideMe() const { return gmhideme; } - void SetHideMe(bool hm); - inline uint16 GetPort() const { return port; } - bool IsDead() const { return(dead); } - bool IsUnconscious() const { return ((cur_hp <= 0) ? true : false); } - inline bool IsLFP() { return LFP; } - void UpdateLFP(); + bool GetRevoked() const { return revoked; } + void SetRevoked(bool rev) { revoked = rev; } + inline uint32 GetIP() const { return ip; } + inline bool GetHideMe() const { return gmhideme; } + void SetHideMe(bool hm); + inline uint16 GetPort() const { return port; } + bool IsDead() const { return(dead); } + bool IsUnconscious() const { return ((cur_hp <= 0) ? true : false); } + inline bool IsLFP() { return LFP; } + void UpdateLFP(); - virtual bool Save() { return Save(0); } - bool Save(uint8 iCommitNow); // 0 = delayed, 1=async now, 2=sync now - void SaveBackup(); + virtual bool Save() { return Save(0); } + bool Save(uint8 iCommitNow); // 0 = delayed, 1=async now, 2=sync now + void SaveBackup(); /* New PP Save Functions */ bool SaveCurrency(){ return database.SaveCharacterCurrency(this->CharacterID(), &m_pp); } bool SaveAA(); inline bool ClientDataLoaded() const { return client_data_loaded; } - inline bool Connected() const { return (client_state == CLIENT_CONNECTED); } - inline bool InZone() const { return (client_state == CLIENT_CONNECTED || client_state == CLIENT_LINKDEAD); } - inline void Kick() { client_state = CLIENT_KICKED; } - inline void Disconnect() { eqs->Close(); client_state = DISCONNECTED; } - inline bool IsLD() const { return (bool) (client_state == CLIENT_LINKDEAD); } - void WorldKick(); - inline uint8 GetAnon() const { return m_pp.anon; } - inline PlayerProfile_Struct& GetPP() { return m_pp; } + inline bool Connected() const { return (client_state == CLIENT_CONNECTED); } + inline bool InZone() const { return (client_state == CLIENT_CONNECTED || client_state == CLIENT_LINKDEAD); } + inline void Kick() { client_state = CLIENT_KICKED; } + inline void Disconnect() { eqs->Close(); client_state = DISCONNECTED; } + inline bool IsLD() const { return (bool) (client_state == CLIENT_LINKDEAD); } + void WorldKick(); + inline uint8 GetAnon() const { return m_pp.anon; } + inline PlayerProfile_Struct& GetPP() { return m_pp; } inline ExtendedProfile_Struct& GetEPP() { return m_epp; } - inline Inventory& GetInv() { return m_inv; } - inline const Inventory& GetInv() const { return m_inv; } - inline PetInfo* GetPetInfo(uint16 pet) { return (pet==1)?&m_suspendedminion:&m_petinfo; } + inline Inventory& GetInv() { return m_inv; } + inline const Inventory& GetInv() const { return m_inv; } + inline PetInfo* GetPetInfo(uint16 pet) { return (pet==1)?&m_suspendedminion:&m_petinfo; } inline InspectMessage_Struct& GetInspectMessage() { return m_inspect_message; } inline const InspectMessage_Struct& GetInspectMessage() const { return m_inspect_message; } - bool CheckAccess(int16 iDBLevel, int16 iDefaultLevel); + bool CheckAccess(int16 iDBLevel, int16 iDefaultLevel); - void CheckQuests(const char* zonename, const char* message, uint32 npc_id, uint32 item_id, Mob* other); - void LogLoot(Client* player,Corpse* corpse,const Item_Struct* item); - bool AutoAttackEnabled() const { return auto_attack; } - bool AutoFireEnabled() const { return auto_fire; } - void MakeCorpse(uint32 exploss); + void CheckQuests(const char* zonename, const char* message, uint32 npc_id, uint32 item_id, Mob* other); + void LogLoot(Client* player,Corpse* corpse,const Item_Struct* item); + bool AutoAttackEnabled() const { return auto_attack; } + bool AutoFireEnabled() const { return auto_fire; } + void MakeCorpse(uint32 exploss); - bool ChangeFirstName(const char* in_firstname,const char* gmname); + bool ChangeFirstName(const char* in_firstname,const char* gmname); - void Duck(); - void Stand(); + void Duck(); + void Stand(); - virtual void SetMaxHP(); - int32 LevelRegen(); - void HPTick(); - void SetGM(bool toggle); - void SetPVP(bool toggle); + virtual void SetMaxHP(); + int32 LevelRegen(); + void HPTick(); + void SetGM(bool toggle); + void SetPVP(bool toggle); - inline bool GetPVP() const { return zone->GetZoneID() == 77 ? true : (m_pp.pvp != 0); } - inline bool GetGM() const { return m_pp.gm != 0; } + inline bool GetPVP() const { return zone->GetZoneID() == 77 ? true : (m_pp.pvp != 0); } + inline bool GetGM() const { return m_pp.gm != 0; } - inline void SetBaseClass(uint32 i) { m_pp.class_=i; } - inline void SetBaseRace(uint32 i) { m_pp.race=i; } - inline void SetBaseGender(uint32 i) { m_pp.gender=i; } + inline void SetBaseClass(uint32 i) { m_pp.class_=i; } + inline void SetBaseRace(uint32 i) { m_pp.race=i; } + inline void SetBaseGender(uint32 i) { m_pp.gender=i; } inline void SetDeity(uint32 i) {m_pp.deity=i;deity=i;} - inline uint8 GetLevel2() const { return m_pp.level2; } - inline uint16 GetBaseRace() const { return m_pp.race; } - inline uint16 GetBaseClass() const { return m_pp.class_; } - inline uint8 GetBaseGender() const { return m_pp.gender; } - inline uint8 GetBaseFace() const { return m_pp.face; } - inline uint8 GetBaseHairColor() const { return m_pp.haircolor; } - inline uint8 GetBaseBeardColor() const { return m_pp.beardcolor; } - inline uint8 GetBaseEyeColor() const { return m_pp.eyecolor1; } - inline uint8 GetBaseHairStyle() const { return m_pp.hairstyle; } - inline uint8 GetBaseBeard() const { return m_pp.beard; } - inline uint8 GetBaseHeritage() const { return m_pp.drakkin_heritage; } - inline uint8 GetBaseTattoo() const { return m_pp.drakkin_tattoo; } - inline uint8 GetBaseDetails() const { return m_pp.drakkin_details; } - inline const float GetBindX(uint32 index = 0) const { return m_pp.binds[index].x; } - inline const float GetBindY(uint32 index = 0) const { return m_pp.binds[index].y; } - inline const float GetBindZ(uint32 index = 0) const { return m_pp.binds[index].z; } - inline const float GetBindHeading(uint32 index = 0) const { return m_pp.binds[index].heading; } - inline uint32 GetBindZoneID(uint32 index = 0) const { return m_pp.binds[index].zoneId; } - int32 CalcMaxMana(); - int32 CalcBaseMana(); - const int32& SetMana(int32 amount); - int32 CalcManaRegenCap(); + inline uint8 GetLevel2() const { return m_pp.level2; } + inline uint16 GetBaseRace() const { return m_pp.race; } + inline uint16 GetBaseClass() const { return m_pp.class_; } + inline uint8 GetBaseGender() const { return m_pp.gender; } + inline uint8 GetBaseFace() const { return m_pp.face; } + inline uint8 GetBaseHairColor() const { return m_pp.haircolor; } + inline uint8 GetBaseBeardColor() const { return m_pp.beardcolor; } + inline uint8 GetBaseEyeColor() const { return m_pp.eyecolor1; } + inline uint8 GetBaseHairStyle() const { return m_pp.hairstyle; } + inline uint8 GetBaseBeard() const { return m_pp.beard; } + inline uint8 GetBaseHeritage() const { return m_pp.drakkin_heritage; } + inline uint8 GetBaseTattoo() const { return m_pp.drakkin_tattoo; } + inline uint8 GetBaseDetails() const { return m_pp.drakkin_details; } + inline const float GetBindX(uint32 index = 0) const { return m_pp.binds[index].x; } + inline const float GetBindY(uint32 index = 0) const { return m_pp.binds[index].y; } + inline const float GetBindZ(uint32 index = 0) const { return m_pp.binds[index].z; } + inline const float GetBindHeading(uint32 index = 0) const { return m_pp.binds[index].heading; } + inline uint32 GetBindZoneID(uint32 index = 0) const { return m_pp.binds[index].zoneId; } + int32 CalcMaxMana(); + int32 CalcBaseMana(); + const int32& SetMana(int32 amount); + int32 CalcManaRegenCap(); - void ServerFilter(SetServerFilter_Struct* filter); - void BulkSendTraderInventory(uint32 char_id); - void SendSingleTraderItem(uint32 char_id, int uniqueid); - void BulkSendMerchantInventory(int merchant_id, int npcid); + void ServerFilter(SetServerFilter_Struct* filter); + void BulkSendTraderInventory(uint32 char_id); + void SendSingleTraderItem(uint32 char_id, int uniqueid); + void BulkSendMerchantInventory(int merchant_id, int npcid); - inline uint8 GetLanguageSkill(uint16 n) const { return m_pp.languages[n]; } + inline uint8 GetLanguageSkill(uint16 n) const { return m_pp.languages[n]; } - void SendPickPocketResponse(Mob *from, uint32 amt, int type, const Item_Struct* item = nullptr); + void SendPickPocketResponse(Mob *from, uint32 amt, int type, const Item_Struct* item = nullptr); - inline const char* GetLastName() const { return lastname; } + inline const char* GetLastName() const { return lastname; } inline float ProximityX() const { return(proximity_x); } inline float ProximityY() const { return(proximity_y); } @@ -403,86 +403,86 @@ public: virtual void CalcBonuses(); //these are all precalculated now - inline virtual int32 GetAC() const { return AC; } + inline virtual int32 GetAC() const { return AC; } inline virtual int32 GetATK() const { return ATK + itembonuses.ATK + spellbonuses.ATK + ((GetSTR() + GetSkill(SkillOffense)) * 9 / 10); } inline virtual int32 GetATKBonus() const { return itembonuses.ATK + spellbonuses.ATK; } - inline virtual int GetHaste() const { return Haste; } + inline virtual int GetHaste() const { return Haste; } int GetRawACNoShield(int &shield_ac) const; - inline virtual int32 GetSTR() const { return STR; } - inline virtual int32 GetSTA() const { return STA; } - inline virtual int32 GetDEX() const { return DEX; } - inline virtual int32 GetAGI() const { return AGI; } - inline virtual int32 GetINT() const { return INT; } - inline virtual int32 GetWIS() const { return WIS; } - inline virtual int32 GetCHA() const { return CHA; } - inline virtual int32 GetMR() const { return MR; } - inline virtual int32 GetFR() const { return FR; } - inline virtual int32 GetDR() const { return DR; } - inline virtual int32 GetPR() const { return PR; } - inline virtual int32 GetCR() const { return CR; } - inline virtual int32 GetCorrup() const { return Corrup; } + inline virtual int32 GetSTR() const { return STR; } + inline virtual int32 GetSTA() const { return STA; } + inline virtual int32 GetDEX() const { return DEX; } + inline virtual int32 GetAGI() const { return AGI; } + inline virtual int32 GetINT() const { return INT; } + inline virtual int32 GetWIS() const { return WIS; } + inline virtual int32 GetCHA() const { return CHA; } + inline virtual int32 GetMR() const { return MR; } + inline virtual int32 GetFR() const { return FR; } + inline virtual int32 GetDR() const { return DR; } + inline virtual int32 GetPR() const { return PR; } + inline virtual int32 GetCR() const { return CR; } + inline virtual int32 GetCorrup() const { return Corrup; } - int32 GetMaxStat() const; - int32 GetMaxResist() const; - int32 GetMaxSTR() const; - int32 GetMaxSTA() const; - int32 GetMaxDEX() const; - int32 GetMaxAGI() const; - int32 GetMaxINT() const; - int32 GetMaxWIS() const; - int32 GetMaxCHA() const; - int32 GetMaxMR() const; - int32 GetMaxPR() const; - int32 GetMaxDR() const; - int32 GetMaxCR() const; - int32 GetMaxFR() const; - int32 GetMaxCorrup() const; - inline uint8 GetBaseSTR() const { return m_pp.STR; } - inline uint8 GetBaseSTA() const { return m_pp.STA; } - inline uint8 GetBaseCHA() const { return m_pp.CHA; } - inline uint8 GetBaseDEX() const { return m_pp.DEX; } - inline uint8 GetBaseINT() const { return m_pp.INT; } - inline uint8 GetBaseAGI() const { return m_pp.AGI; } - inline uint8 GetBaseWIS() const { return m_pp.WIS; } - inline uint8 GetBaseCorrup() const { return 15; } // Same for all + int32 GetMaxStat() const; + int32 GetMaxResist() const; + int32 GetMaxSTR() const; + int32 GetMaxSTA() const; + int32 GetMaxDEX() const; + int32 GetMaxAGI() const; + int32 GetMaxINT() const; + int32 GetMaxWIS() const; + int32 GetMaxCHA() const; + int32 GetMaxMR() const; + int32 GetMaxPR() const; + int32 GetMaxDR() const; + int32 GetMaxCR() const; + int32 GetMaxFR() const; + int32 GetMaxCorrup() const; + inline uint8 GetBaseSTR() const { return m_pp.STR; } + inline uint8 GetBaseSTA() const { return m_pp.STA; } + inline uint8 GetBaseCHA() const { return m_pp.CHA; } + inline uint8 GetBaseDEX() const { return m_pp.DEX; } + inline uint8 GetBaseINT() const { return m_pp.INT; } + inline uint8 GetBaseAGI() const { return m_pp.AGI; } + inline uint8 GetBaseWIS() const { return m_pp.WIS; } + inline uint8 GetBaseCorrup() const { return 15; } // Same for all - inline virtual int32 GetHeroicSTR() const { return itembonuses.HeroicSTR; } - inline virtual int32 GetHeroicSTA() const { return itembonuses.HeroicSTA; } - inline virtual int32 GetHeroicDEX() const { return itembonuses.HeroicDEX; } - inline virtual int32 GetHeroicAGI() const { return itembonuses.HeroicAGI; } - inline virtual int32 GetHeroicINT() const { return itembonuses.HeroicINT; } - inline virtual int32 GetHeroicWIS() const { return itembonuses.HeroicWIS; } - inline virtual int32 GetHeroicCHA() const { return itembonuses.HeroicCHA; } - inline virtual int32 GetHeroicMR() const { return itembonuses.HeroicMR; } - inline virtual int32 GetHeroicFR() const { return itembonuses.HeroicFR; } - inline virtual int32 GetHeroicDR() const { return itembonuses.HeroicDR; } - inline virtual int32 GetHeroicPR() const { return itembonuses.HeroicPR; } - inline virtual int32 GetHeroicCR() const { return itembonuses.HeroicCR; } - inline virtual int32 GetHeroicCorrup() const { return itembonuses.HeroicCorrup; } + inline virtual int32 GetHeroicSTR() const { return itembonuses.HeroicSTR; } + inline virtual int32 GetHeroicSTA() const { return itembonuses.HeroicSTA; } + inline virtual int32 GetHeroicDEX() const { return itembonuses.HeroicDEX; } + inline virtual int32 GetHeroicAGI() const { return itembonuses.HeroicAGI; } + inline virtual int32 GetHeroicINT() const { return itembonuses.HeroicINT; } + inline virtual int32 GetHeroicWIS() const { return itembonuses.HeroicWIS; } + inline virtual int32 GetHeroicCHA() const { return itembonuses.HeroicCHA; } + inline virtual int32 GetHeroicMR() const { return itembonuses.HeroicMR; } + inline virtual int32 GetHeroicFR() const { return itembonuses.HeroicFR; } + inline virtual int32 GetHeroicDR() const { return itembonuses.HeroicDR; } + inline virtual int32 GetHeroicPR() const { return itembonuses.HeroicPR; } + inline virtual int32 GetHeroicCR() const { return itembonuses.HeroicCR; } + inline virtual int32 GetHeroicCorrup() const { return itembonuses.HeroicCorrup; } // Mod2 - inline virtual int32 GetShielding() const { return itembonuses.MeleeMitigation; } - inline virtual int32 GetSpellShield() const { return itembonuses.SpellShield; } - inline virtual int32 GetDoTShield() const { return itembonuses.DoTShielding; } - inline virtual int32 GetStunResist() const { return itembonuses.StunResist; } - inline virtual int32 GetStrikeThrough() const { return itembonuses.StrikeThrough; } - inline virtual int32 GetAvoidance() const { return itembonuses.AvoidMeleeChance; } - inline virtual int32 GetAccuracy() const { return itembonuses.HitChance; } - inline virtual int32 GetCombatEffects() const { return itembonuses.ProcChance; } - inline virtual int32 GetDS() const { return itembonuses.DamageShield; } + inline virtual int32 GetShielding() const { return itembonuses.MeleeMitigation; } + inline virtual int32 GetSpellShield() const { return itembonuses.SpellShield; } + inline virtual int32 GetDoTShield() const { return itembonuses.DoTShielding; } + inline virtual int32 GetStunResist() const { return itembonuses.StunResist; } + inline virtual int32 GetStrikeThrough() const { return itembonuses.StrikeThrough; } + inline virtual int32 GetAvoidance() const { return itembonuses.AvoidMeleeChance; } + inline virtual int32 GetAccuracy() const { return itembonuses.HitChance; } + inline virtual int32 GetCombatEffects() const { return itembonuses.ProcChance; } + inline virtual int32 GetDS() const { return itembonuses.DamageShield; } // Mod3 - inline virtual int32 GetHealAmt() const { return itembonuses.HealAmt; } - inline virtual int32 GetSpellDmg() const { return itembonuses.SpellDmg; } - inline virtual int32 GetClair() const { return itembonuses.Clairvoyance; } - inline virtual int32 GetDSMit() const { return itembonuses.DSMitigation; } + inline virtual int32 GetHealAmt() const { return itembonuses.HealAmt; } + inline virtual int32 GetSpellDmg() const { return itembonuses.SpellDmg; } + inline virtual int32 GetClair() const { return itembonuses.Clairvoyance; } + inline virtual int32 GetDSMit() const { return itembonuses.DSMitigation; } - inline virtual int32 GetSingMod() const { return itembonuses.singingMod; } - inline virtual int32 GetBrassMod() const { return itembonuses.brassMod; } - inline virtual int32 GetPercMod() const { return itembonuses.percussionMod; } - inline virtual int32 GetStringMod() const { return itembonuses.stringedMod; } - inline virtual int32 GetWindMod() const { return itembonuses.windMod; } + inline virtual int32 GetSingMod() const { return itembonuses.singingMod; } + inline virtual int32 GetBrassMod() const { return itembonuses.brassMod; } + inline virtual int32 GetPercMod() const { return itembonuses.percussionMod; } + inline virtual int32 GetStringMod() const { return itembonuses.stringedMod; } + inline virtual int32 GetWindMod() const { return itembonuses.windMod; } - inline virtual int32 GetDelayDeath() const { return aabonuses.DelayDeath + spellbonuses.DelayDeath + itembonuses.DelayDeath + 11; } + inline virtual int32 GetDelayDeath() const { return aabonuses.DelayDeath + spellbonuses.DelayDeath + itembonuses.DelayDeath + 11; } float GetActSpellRange(uint16 spell_id, float range, bool IsBard = false); int32 GetActSpellDamage(uint16 spell_id, int32 value, Mob* target = nullptr); @@ -504,29 +504,29 @@ public: virtual void InitializeBuffSlots(); virtual void UninitializeBuffSlots(); - inline const int32 GetBaseHP() const { return base_hp; } + inline const int32 GetBaseHP() const { return base_hp; } uint32 GetWeight() const { return(weight); } inline void RecalcWeight() { weight = CalcCurrentWeight(); } uint32 CalcCurrentWeight(); - inline uint32 GetCopper() const { return m_pp.copper; } - inline uint32 GetSilver() const { return m_pp.silver; } - inline uint32 GetGold() const { return m_pp.gold; } - inline uint32 GetPlatinum() const { return m_pp.platinum; } + inline uint32 GetCopper() const { return m_pp.copper; } + inline uint32 GetSilver() const { return m_pp.silver; } + inline uint32 GetGold() const { return m_pp.gold; } + inline uint32 GetPlatinum() const { return m_pp.platinum; } /*Endurance and such*/ - void CalcMaxEndurance(); //This calculates the maximum endurance we can have - int32 CalcBaseEndurance(); //Calculates Base End - int32 CalcEnduranceRegen(); //Calculates endurance regen used in DoEnduranceRegen() - int32 GetEndurance() const {return cur_end;} //This gets our current endurance - int32 GetMaxEndurance() const {return max_end;} //This gets our endurance from the last CalcMaxEndurance() call - int32 CalcEnduranceRegenCap(); - int32 CalcHPRegenCap(); + void CalcMaxEndurance(); //This calculates the maximum endurance we can have + int32 CalcBaseEndurance(); //Calculates Base End + int32 CalcEnduranceRegen(); //Calculates endurance regen used in DoEnduranceRegen() + int32 GetEndurance() const {return cur_end;} //This gets our current endurance + int32 GetMaxEndurance() const {return max_end;} //This gets our endurance from the last CalcMaxEndurance() call + int32 CalcEnduranceRegenCap(); + int32 CalcHPRegenCap(); inline uint8 GetEndurancePercent() { return (uint8)((float)cur_end / (float)max_end * 100.0f); } - void SetEndurance(int32 newEnd); //This sets the current endurance to the new value - void DoEnduranceRegen(); //This Regenerates endurance - void DoEnduranceUpkeep(); //does the endurance upkeep + void SetEndurance(int32 newEnd); //This sets the current endurance to the new value + void DoEnduranceRegen(); //This Regenerates endurance + void DoEnduranceUpkeep(); //does the endurance upkeep //This calculates total Attack Rating to match very close to what the client should show uint32 GetTotalATK(); @@ -538,153 +538,153 @@ public: bool Rampage(); void DurationRampage(uint32 duration); - inline uint32 GetEXP() const { return m_pp.exp; } + inline uint32 GetEXP() const { return m_pp.exp; } - bool UpdateLDoNPoints(int32 points, uint32 theme); - void SetPVPPoints(uint32 Points) { m_pp.PVPCurrentPoints = Points; } - uint32 GetPVPPoints() { return m_pp.PVPCurrentPoints; } - void AddPVPPoints(uint32 Points); - uint32 GetRadiantCrystals() { return m_pp.currentRadCrystals; } - void SetRadiantCrystals(uint32 Crystals) { m_pp.currentRadCrystals = Crystals; } - uint32 GetEbonCrystals() { return m_pp.currentEbonCrystals; } - void SetEbonCrystals(uint32 Crystals) { m_pp.currentEbonCrystals = Crystals; } - void AddCrystals(uint32 Radiant, uint32 Ebon); - void SendCrystalCounts(); + bool UpdateLDoNPoints(int32 points, uint32 theme); + void SetPVPPoints(uint32 Points) { m_pp.PVPCurrentPoints = Points; } + uint32 GetPVPPoints() { return m_pp.PVPCurrentPoints; } + void AddPVPPoints(uint32 Points); + uint32 GetRadiantCrystals() { return m_pp.currentRadCrystals; } + void SetRadiantCrystals(uint32 Crystals) { m_pp.currentRadCrystals = Crystals; } + uint32 GetEbonCrystals() { return m_pp.currentEbonCrystals; } + void SetEbonCrystals(uint32 Crystals) { m_pp.currentEbonCrystals = Crystals; } + void AddCrystals(uint32 Radiant, uint32 Ebon); + void SendCrystalCounts(); - void AddEXP(uint32 in_add_exp, uint8 conlevel = 0xFF, bool resexp = false); - void SetEXP(uint32 set_exp, uint32 set_aaxp, bool resexp=false); - void AddLevelBasedExp(uint8 exp_percentage, uint8 max_level=0); - void SetLeadershipEXP(uint32 group_exp, uint32 raid_exp); - void AddLeadershipEXP(uint32 group_exp, uint32 raid_exp); - void SendLeadershipEXPUpdate(); - bool IsLeadershipEXPOn(); - inline int GetLeadershipAA(int AAID) { return m_pp.leader_abilities.ranks[AAID]; } - inline LeadershipAA_Struct &GetLeadershipAA() { return m_pp.leader_abilities; } - inline GroupLeadershipAA_Struct &GetGroupLeadershipAA() { return m_pp.leader_abilities.group; } - inline RaidLeadershipAA_Struct &GetRaidLeadershipAA() { return m_pp.leader_abilities.raid; } - int GroupLeadershipAAHealthEnhancement(); - int GroupLeadershipAAManaEnhancement(); - int GroupLeadershipAAHealthRegeneration(); - int GroupLeadershipAAOffenseEnhancement(); - void InspectBuffs(Client* Inspector, int Rank); - uint32 GetRaidPoints() { return(m_pp.raid_leadership_points); } - uint32 GetGroupPoints() { return(m_pp.group_leadership_points); } - uint32 GetRaidEXP() { return(m_pp.raid_leadership_exp); } - uint32 GetGroupEXP() { return(m_pp.group_leadership_exp); } - uint32 GetTotalSecondsPlayed() { return(TotalSecondsPlayed); } + void AddEXP(uint32 in_add_exp, uint8 conlevel = 0xFF, bool resexp = false); + void SetEXP(uint32 set_exp, uint32 set_aaxp, bool resexp=false); + void AddLevelBasedExp(uint8 exp_percentage, uint8 max_level=0); + void SetLeadershipEXP(uint32 group_exp, uint32 raid_exp); + void AddLeadershipEXP(uint32 group_exp, uint32 raid_exp); + void SendLeadershipEXPUpdate(); + bool IsLeadershipEXPOn(); + inline int GetLeadershipAA(int AAID) { return m_pp.leader_abilities.ranks[AAID]; } + inline LeadershipAA_Struct &GetLeadershipAA() { return m_pp.leader_abilities; } + inline GroupLeadershipAA_Struct &GetGroupLeadershipAA() { return m_pp.leader_abilities.group; } + inline RaidLeadershipAA_Struct &GetRaidLeadershipAA() { return m_pp.leader_abilities.raid; } + int GroupLeadershipAAHealthEnhancement(); + int GroupLeadershipAAManaEnhancement(); + int GroupLeadershipAAHealthRegeneration(); + int GroupLeadershipAAOffenseEnhancement(); + void InspectBuffs(Client* Inspector, int Rank); + uint32 GetRaidPoints() { return(m_pp.raid_leadership_points); } + uint32 GetGroupPoints() { return(m_pp.group_leadership_points); } + uint32 GetRaidEXP() { return(m_pp.raid_leadership_exp); } + uint32 GetGroupEXP() { return(m_pp.group_leadership_exp); } + uint32 GetTotalSecondsPlayed() { return(TotalSecondsPlayed); } virtual void SetLevel(uint8 set_level, bool command = false); - void GoToBind(uint8 bindnum = 0); - void GoToSafeCoords(uint16 zone_id, uint16 instance_id); - void Gate(); - void SetBindPoint(int to_zone = -1, float new_x = 0.0f, float new_y = 0.0f, float new_z = 0.0f); - void SetStartZone(uint32 zoneid, float x = 0.0f, float y =0.0f, float z = 0.0f); - uint32 GetStartZone(void); - void MovePC(const char* zonename, float x, float y, float z, float heading, uint8 ignorerestrictions = 0, ZoneMode zm = ZoneSolicited); - void MovePC(uint32 zoneID, float x, float y, float z, float heading, uint8 ignorerestrictions = 0, ZoneMode zm = ZoneSolicited); - void MovePC(float x, float y, float z, float heading, uint8 ignorerestrictions = 0, ZoneMode zm = ZoneSolicited); - void MovePC(uint32 zoneID, uint32 instanceID, float x, float y, float z, float heading, uint8 ignorerestrictions = 0, ZoneMode zm = ZoneSolicited); - void AssignToInstance(uint16 instance_id); - void RemoveFromInstance(uint16 instance_id); - void WhoAll(); - bool CheckLoreConflict(const Item_Struct* item); - void ChangeLastName(const char* in_lastname); - void GetGroupAAs(GroupLeadershipAA_Struct *into) const; - void GetRaidAAs(RaidLeadershipAA_Struct *into) const; - void ClearGroupAAs(); - void UpdateGroupAAs(int32 points, uint32 type); - void SacrificeConfirm(Client* caster); - void Sacrifice(Client* caster); - void GoToDeath(); - inline const int32 GetInstanceID() const { return zone->GetInstanceID(); } + void GoToBind(uint8 bindnum = 0); + void GoToSafeCoords(uint16 zone_id, uint16 instance_id); + void Gate(); + void SetBindPoint(int to_zone = -1, float new_x = 0.0f, float new_y = 0.0f, float new_z = 0.0f); + void SetStartZone(uint32 zoneid, float x = 0.0f, float y =0.0f, float z = 0.0f); + uint32 GetStartZone(void); + void MovePC(const char* zonename, float x, float y, float z, float heading, uint8 ignorerestrictions = 0, ZoneMode zm = ZoneSolicited); + void MovePC(uint32 zoneID, float x, float y, float z, float heading, uint8 ignorerestrictions = 0, ZoneMode zm = ZoneSolicited); + void MovePC(float x, float y, float z, float heading, uint8 ignorerestrictions = 0, ZoneMode zm = ZoneSolicited); + void MovePC(uint32 zoneID, uint32 instanceID, float x, float y, float z, float heading, uint8 ignorerestrictions = 0, ZoneMode zm = ZoneSolicited); + void AssignToInstance(uint16 instance_id); + void RemoveFromInstance(uint16 instance_id); + void WhoAll(); + bool CheckLoreConflict(const Item_Struct* item); + void ChangeLastName(const char* in_lastname); + void GetGroupAAs(GroupLeadershipAA_Struct *into) const; + void GetRaidAAs(RaidLeadershipAA_Struct *into) const; + void ClearGroupAAs(); + void UpdateGroupAAs(int32 points, uint32 type); + void SacrificeConfirm(Client* caster); + void Sacrifice(Client* caster); + void GoToDeath(); + inline const int32 GetInstanceID() const { return zone->GetInstanceID(); } - FACTION_VALUE GetReverseFactionCon(Mob* iOther); - FACTION_VALUE GetFactionLevel(uint32 char_id, uint32 npc_id, uint32 p_race, uint32 p_class, uint32 p_deity, int32 pFaction, Mob* tnpc); - int32 GetCharacterFactionLevel(int32 faction_id); - int32 GetModCharacterFactionLevel(int32 faction_id); - void MerchantRejectMessage(Mob *merchant, int primaryfaction); - void SendFactionMessage(int32 tmpvalue, int32 faction_id, int32 totalvalue, uint8 temp); + FACTION_VALUE GetReverseFactionCon(Mob* iOther); + FACTION_VALUE GetFactionLevel(uint32 char_id, uint32 npc_id, uint32 p_race, uint32 p_class, uint32 p_deity, int32 pFaction, Mob* tnpc); + int32 GetCharacterFactionLevel(int32 faction_id); + int32 GetModCharacterFactionLevel(int32 faction_id); + void MerchantRejectMessage(Mob *merchant, int primaryfaction); + void SendFactionMessage(int32 tmpvalue, int32 faction_id, int32 totalvalue, uint8 temp); - void SetFactionLevel(uint32 char_id, uint32 npc_id, uint8 char_class, uint8 char_race, uint8 char_deity); - void SetFactionLevel2(uint32 char_id, int32 faction_id, uint8 char_class, uint8 char_race, uint8 char_deity, int32 value, uint8 temp); - int32 GetRawItemAC(); - uint16 GetCombinedAC_TEST(); + void SetFactionLevel(uint32 char_id, uint32 npc_id, uint8 char_class, uint8 char_race, uint8 char_deity); + void SetFactionLevel2(uint32 char_id, int32 faction_id, uint8 char_class, uint8 char_race, uint8 char_deity, int32 value, uint8 temp); + int32 GetRawItemAC(); + uint16 GetCombinedAC_TEST(); - inline uint32 LSAccountID() const { return lsaccountid; } - inline uint32 GetWID() const { return WID; } - inline void SetWID(uint32 iWID) { WID = iWID; } - inline uint32 AccountID() const { return account_id; } + inline uint32 LSAccountID() const { return lsaccountid; } + inline uint32 GetWID() const { return WID; } + inline void SetWID(uint32 iWID) { WID = iWID; } + inline uint32 AccountID() const { return account_id; } inline const char* AccountName()const { return account_name; } - inline int16 Admin() const { return admin; } - inline uint32 CharacterID() const { return character_id; } - void UpdateAdmin(bool iFromDB = true); - void UpdateWho(uint8 remove = 0); - bool GMHideMe(Client* client = 0); + inline int16 Admin() const { return admin; } + inline uint32 CharacterID() const { return character_id; } + void UpdateAdmin(bool iFromDB = true); + void UpdateWho(uint8 remove = 0); + bool GMHideMe(Client* client = 0); inline bool IsInAGuild() const { return(guild_id != GUILD_NONE && guild_id != 0); } inline bool IsInGuild(uint32 in_gid) const { return(in_gid == guild_id && IsInAGuild()); } - inline uint32 GuildID() const { return guild_id; } - inline uint8 GuildRank() const { return guildrank; } - void SendGuildMOTD(bool GetGuildMOTDReply = false); - void SendGuildURL(); - void SendGuildChannel(); - void SendGuildSpawnAppearance(); - void SendGuildRanks(); - void SendGuildMembers(); - void SendGuildList(); - void SendGuildJoin(GuildJoin_Struct* gj); - void RefreshGuildInfo(); + inline uint32 GuildID() const { return guild_id; } + inline uint8 GuildRank() const { return guildrank; } + void SendGuildMOTD(bool GetGuildMOTDReply = false); + void SendGuildURL(); + void SendGuildChannel(); + void SendGuildSpawnAppearance(); + void SendGuildRanks(); + void SendGuildMembers(); + void SendGuildList(); + void SendGuildJoin(GuildJoin_Struct* gj); + void RefreshGuildInfo(); - void SendManaUpdatePacket(); - void SendManaUpdate(); - void SendEnduranceUpdate(); - uint8 GetFace() const { return m_pp.face; } - void WhoAll(Who_All_Struct* whom); - void FriendsWho(char *FriendsString); + void SendManaUpdatePacket(); + void SendManaUpdate(); + void SendEnduranceUpdate(); + uint8 GetFace() const { return m_pp.face; } + void WhoAll(Who_All_Struct* whom); + void FriendsWho(char *FriendsString); - void Stun(int duration); - void UnStun(); - void ReadBook(BookRequest_Struct *book); - void QuestReadBook(const char* text, uint8 type); - void SendClientMoneyUpdate(uint8 type,uint32 amount); - void SendMoneyUpdate(); - bool TakeMoneyFromPP(uint64 copper, bool updateclient=false); - void AddMoneyToPP(uint64 copper,bool updateclient); - void AddMoneyToPP(uint32 copper, uint32 silver, uint32 gold,uint32 platinum,bool updateclient); - bool HasMoney(uint64 copper); - uint64 GetCarriedMoney(); - uint64 GetAllMoney(); + void Stun(int duration); + void UnStun(); + void ReadBook(BookRequest_Struct *book); + void QuestReadBook(const char* text, uint8 type); + void SendClientMoneyUpdate(uint8 type,uint32 amount); + void SendMoneyUpdate(); + bool TakeMoneyFromPP(uint64 copper, bool updateclient=false); + void AddMoneyToPP(uint64 copper,bool updateclient); + void AddMoneyToPP(uint32 copper, uint32 silver, uint32 gold,uint32 platinum,bool updateclient); + bool HasMoney(uint64 copper); + uint64 GetCarriedMoney(); + uint64 GetAllMoney(); - bool IsDiscovered(uint32 itemid); - void DiscoverItem(uint32 itemid); + bool IsDiscovered(uint32 itemid); + void DiscoverItem(uint32 itemid); - bool TGB() const { return tgb; } + bool TGB() const { return tgb; } - void OnDisconnect(bool hard_disconnect); + void OnDisconnect(bool hard_disconnect); - uint16 GetSkillPoints() { return m_pp.points;} - void SetSkillPoints(int inp) { m_pp.points = inp;} + uint16 GetSkillPoints() { return m_pp.points;} + void SetSkillPoints(int inp) { m_pp.points = inp;} - void IncreaseSkill(int skill_id, int value = 1) { if (skill_id <= HIGHEST_SKILL) { m_pp.skills[skill_id] += value; } } - void IncreaseLanguageSkill(int skill_id, int value = 1); + void IncreaseSkill(int skill_id, int value = 1) { if (skill_id <= HIGHEST_SKILL) { m_pp.skills[skill_id] += value; } } + void IncreaseLanguageSkill(int skill_id, int value = 1); virtual uint16 GetSkill(SkillUseTypes skill_id) const { if (skill_id <= HIGHEST_SKILL) { return((itembonuses.skillmod[skill_id] > 0) ? m_pp.skills[skill_id] * (100 + itembonuses.skillmod[skill_id]) / 100 : m_pp.skills[skill_id]); } return 0; } - uint32 GetRawSkill(SkillUseTypes skill_id) const { if (skill_id <= HIGHEST_SKILL) { return(m_pp.skills[skill_id]); } return 0; } - bool HasSkill(SkillUseTypes skill_id) const; - bool CanHaveSkill(SkillUseTypes skill_id) const; - void SetSkill(SkillUseTypes skill_num, uint16 value); - void AddSkill(SkillUseTypes skillid, uint16 value); - void CheckSpecializeIncrease(uint16 spell_id); - void CheckSongSkillIncrease(uint16 spell_id); - bool CheckIncreaseSkill(SkillUseTypes skillid, Mob *against_who, int chancemodi = 0); - void CheckLanguageSkillIncrease(uint8 langid, uint8 TeacherSkill); - void SetLanguageSkill(int langid, int value); - void SetHoTT(uint32 mobid); - void ShowSkillsWindow(); - void SendStatsWindow(Client* client, bool use_window); + uint32 GetRawSkill(SkillUseTypes skill_id) const { if (skill_id <= HIGHEST_SKILL) { return(m_pp.skills[skill_id]); } return 0; } + bool HasSkill(SkillUseTypes skill_id) const; + bool CanHaveSkill(SkillUseTypes skill_id) const; + void SetSkill(SkillUseTypes skill_num, uint16 value); + void AddSkill(SkillUseTypes skillid, uint16 value); + void CheckSpecializeIncrease(uint16 spell_id); + void CheckSongSkillIncrease(uint16 spell_id); + bool CheckIncreaseSkill(SkillUseTypes skillid, Mob *against_who, int chancemodi = 0); + void CheckLanguageSkillIncrease(uint8 langid, uint8 TeacherSkill); + void SetLanguageSkill(int langid, int value); + void SetHoTT(uint32 mobid); + void ShowSkillsWindow(); + void SendStatsWindow(Client* client, bool use_window); - uint16 MaxSkill(SkillUseTypes skillid, uint16 class_, uint16 level) const; - inline uint16 MaxSkill(SkillUseTypes skillid) const { return MaxSkill(skillid, GetClass(), GetLevel()); } - uint8 SkillTrainLevel(SkillUseTypes skillid, uint16 class_); + uint16 MaxSkill(SkillUseTypes skillid, uint16 class_, uint16 level) const; + inline uint16 MaxSkill(SkillUseTypes skillid) const { return MaxSkill(skillid, GetClass(), GetLevel()); } + uint8 SkillTrainLevel(SkillUseTypes skillid, uint16 class_); void TradeskillSearchResults(const std::string query, unsigned long objtype, unsigned long someid); void SendTradeskillDetails(uint32 recipe_id); @@ -692,11 +692,11 @@ public: void CheckIncreaseTradeskill(int16 bonusstat, int16 stat_modifier, float skillup_modifier, uint16 success_modifier, SkillUseTypes tradeskill); void GMKill(); - inline bool IsMedding() const {return medding;} + inline bool IsMedding() const {return medding;} inline uint16 GetDuelTarget() const { return duel_target; } - inline bool IsDueling() const { return duelaccepted; } - inline void SetDuelTarget(uint16 set_id) { duel_target=set_id; } - inline void SetDueling(bool duel) { duelaccepted = duel; } + inline bool IsDueling() const { return duelaccepted; } + inline void SetDuelTarget(uint16 set_id) { duel_target=set_id; } + inline void SetDueling(bool duel) { duelaccepted = duel; } // use this one instead void MemSpell(uint16 spell_id, int slot, bool update_client = true); void UnmemSpell(int slot, bool update_client = true); @@ -709,11 +709,11 @@ public: bool SpellGlobalCheck(uint16 Spell_ID, uint16 Char_ID); uint32 GetCharMaxLevelFromQGlobal(); - inline bool IsSitting() const {return (playeraction == 1);} - inline bool IsBecomeNPC() const { return npcflag; } - inline uint8 GetBecomeNPCLevel() const { return npclevel; } - inline void SetBecomeNPC(bool flag) { npcflag = flag; } - inline void SetBecomeNPCLevel(uint8 level) { npclevel = level; } + inline bool IsSitting() const {return (playeraction == 1);} + inline bool IsBecomeNPC() const { return npcflag; } + inline uint8 GetBecomeNPCLevel() const { return npclevel; } + inline void SetBecomeNPC(bool flag) { npcflag = flag; } + inline void SetBecomeNPCLevel(uint8 level) { npclevel = level; } void SetFeigned(bool in_feigned); /// this cures timing issues cuz dead animation isn't done but server side feigning is? inline bool GetFeigned() const { return(feigned); } @@ -735,17 +735,17 @@ public: bool BindWound(Mob* bindmob, bool start, bool fail = false); void SetTradeskillObject(Object* object) { m_tradeskill_object = object; } Object* GetTradeskillObject() { return m_tradeskill_object; } - void SendTributes(); - void SendGuildTributes(); - void DoTributeUpdate(); - void SendTributeDetails(uint32 client_id, uint32 tribute_id); - int32 TributeItem(uint32 slot, uint32 quantity); - int32 TributeMoney(uint32 platinum); - void AddTributePoints(int32 ammount); - void ChangeTributeSettings(TributeInfo_Struct *t); - void SendTributeTimer(); - void ToggleTribute(bool enabled); - void SendPathPacket(std::vector &path); + void SendTributes(); + void SendGuildTributes(); + void DoTributeUpdate(); + void SendTributeDetails(uint32 client_id, uint32 tribute_id); + int32 TributeItem(uint32 slot, uint32 quantity); + int32 TributeMoney(uint32 platinum); + void AddTributePoints(int32 ammount); + void ChangeTributeSettings(TributeInfo_Struct *t); + void SendTributeTimer(); + void ToggleTribute(bool enabled); + void SendPathPacket(std::vector &path); inline PTimerList &GetPTimers() { return(p_timers); } @@ -757,9 +757,9 @@ public: void BuyAA(AA_Action* action); //this function is used by some AA stuff void MemorizeSpell(uint32 slot,uint32 spellid,uint32 scribing); - void SetAATitle(const char *Title); - void SetTitleSuffix(const char *txt); - inline uint32 GetMaxAAXP(void) const { return max_AAXP; } + void SetAATitle(const char *Title); + void SetTitleSuffix(const char *txt); + inline uint32 GetMaxAAXP(void) const { return max_AAXP; } inline uint32 GetAAXP() const { return m_pp.expAA; } void SendAAStats(); void SendAATable(); @@ -791,93 +791,93 @@ public: // Item methods void EVENT_ITEM_ScriptStopReturn(); - uint32 NukeItem(uint32 itemnum, uint8 where_to_check = + uint32 NukeItem(uint32 itemnum, uint8 where_to_check = (invWhereWorn | invWherePersonal | invWhereBank | invWhereSharedBank | invWhereTrading | invWhereCursor)); - void SetTint(int16 slot_id, uint32 color); - void SetTint(int16 slot_id, Color_Struct& color); - void SetMaterial(int16 slot_id, uint32 item_id); - void Undye(); - int32 GetItemIDAt(int16 slot_id); - int32 GetAugmentIDAt(int16 slot_id, uint8 augslot); - bool PutItemInInventory(int16 slot_id, const ItemInst& inst, bool client_update = false); - bool PushItemOnCursor(const ItemInst& inst, bool client_update = false); - void DeleteItemInInventory(int16 slot_id, int8 quantity = 0, bool client_update = false, bool update_db = true); - bool SwapItem(MoveItem_Struct* move_in); - void SwapItemResync(MoveItem_Struct* move_slots); - void QSSwapItemAuditor(MoveItem_Struct* move_in, bool postaction_call = false); - void PutLootInInventory(int16 slot_id, const ItemInst &inst, ServerLootItem_Struct** bag_item_data = 0); - bool AutoPutLootInInventory(ItemInst& inst, bool try_worn = false, bool try_cursor = true, ServerLootItem_Struct** bag_item_data = 0); - bool SummonItem(uint32 item_id, int16 charges = -1, uint32 aug1 = 0, uint32 aug2 = 0, uint32 aug3 = 0, uint32 aug4 = 0, uint32 aug5 = 0, bool attuned = false, uint16 to_slot = MainCursor); - void SetStats(uint8 type,int16 set_val); - void IncStats(uint8 type,int16 increase_val); - void DropItem(int16 slot_id); - bool MakeItemLink(char* &ret_link, const ItemInst* inst); - int GetItemLinkHash(const ItemInst* inst); - void SendItemLink(const ItemInst* inst, bool sendtoall=false); - void SendLootItemInPacket(const ItemInst* inst, int16 slot_id); - void SendItemPacket(int16 slot_id, const ItemInst* inst, ItemPacketType packet_type); - bool IsValidSlot(uint32 slot); - bool IsBankSlot(uint32 slot); + void SetTint(int16 slot_id, uint32 color); + void SetTint(int16 slot_id, Color_Struct& color); + void SetMaterial(int16 slot_id, uint32 item_id); + void Undye(); + int32 GetItemIDAt(int16 slot_id); + int32 GetAugmentIDAt(int16 slot_id, uint8 augslot); + bool PutItemInInventory(int16 slot_id, const ItemInst& inst, bool client_update = false); + bool PushItemOnCursor(const ItemInst& inst, bool client_update = false); + void DeleteItemInInventory(int16 slot_id, int8 quantity = 0, bool client_update = false, bool update_db = true); + bool SwapItem(MoveItem_Struct* move_in); + void SwapItemResync(MoveItem_Struct* move_slots); + void QSSwapItemAuditor(MoveItem_Struct* move_in, bool postaction_call = false); + void PutLootInInventory(int16 slot_id, const ItemInst &inst, ServerLootItem_Struct** bag_item_data = 0); + bool AutoPutLootInInventory(ItemInst& inst, bool try_worn = false, bool try_cursor = true, ServerLootItem_Struct** bag_item_data = 0); + bool SummonItem(uint32 item_id, int16 charges = -1, uint32 aug1 = 0, uint32 aug2 = 0, uint32 aug3 = 0, uint32 aug4 = 0, uint32 aug5 = 0, bool attuned = false, uint16 to_slot = MainCursor); + void SetStats(uint8 type,int16 set_val); + void IncStats(uint8 type,int16 increase_val); + void DropItem(int16 slot_id); + bool MakeItemLink(char* &ret_link, const ItemInst* inst); + int GetItemLinkHash(const ItemInst* inst); + void SendItemLink(const ItemInst* inst, bool sendtoall=false); + void SendLootItemInPacket(const ItemInst* inst, int16 slot_id); + void SendItemPacket(int16 slot_id, const ItemInst* inst, ItemPacketType packet_type); + bool IsValidSlot(uint32 slot); + bool IsBankSlot(uint32 slot); - inline bool IsTrader() const { return(Trader); } - inline bool IsBuyer() const { return(Buyer); } - eqFilterMode GetFilter(eqFilterType filter_id) const { return ClientFilters[filter_id]; } - void SetFilter(eqFilterType filter_id, eqFilterMode value) { ClientFilters[filter_id]=value; } + inline bool IsTrader() const { return(Trader); } + inline bool IsBuyer() const { return(Buyer); } + eqFilterMode GetFilter(eqFilterType filter_id) const { return ClientFilters[filter_id]; } + void SetFilter(eqFilterType filter_id, eqFilterMode value) { ClientFilters[filter_id]=value; } - void BreakInvis(); - void LeaveGroup(); + void BreakInvis(); + void LeaveGroup(); - bool Hungry() const {if (GetGM()) return false; return m_pp.hunger_level <= 3000;} - bool Thirsty() const {if (GetGM()) return false; return m_pp.thirst_level <= 3000;} -int32 GetHunger() const { return m_pp.hunger_level; } -int32 GetThirst() const { return m_pp.thirst_level; } -void SetHunger(int32 in_hunger); -void SetThirst(int32 in_thirst); -void SetConsumption(int32 in_hunger, int32 in_thirst); + bool Hungry() const {if (GetGM()) return false; return m_pp.hunger_level <= 3000;} + bool Thirsty() const {if (GetGM()) return false; return m_pp.thirst_level <= 3000;} +int32 GetHunger() const { return m_pp.hunger_level; } +int32 GetThirst() const { return m_pp.thirst_level; } +void SetHunger(int32 in_hunger); +void SetThirst(int32 in_thirst); +void SetConsumption(int32 in_hunger, int32 in_thirst); - bool CheckTradeLoreConflict(Client* other); - void LinkDead(); - void Insight(uint32 t_id); - bool CheckDoubleAttack(bool tripleAttack = false); - bool CheckDoubleRangedAttack(); + bool CheckTradeLoreConflict(Client* other); + void LinkDead(); + void Insight(uint32 t_id); + bool CheckDoubleAttack(bool tripleAttack = false); + bool CheckDoubleRangedAttack(); //remove charges/multiple objects from inventory: - //bool DecreaseByType(uint32 type, uint8 amt); - bool DecreaseByID(uint32 type, uint8 amt); - uint8 SlotConvert2(uint8 slot); //Maybe not needed. - void Escape(); //AA Escape - void RemoveNoRent(bool client_update = true); - void RemoveDuplicateLore(bool client_update = true); - void MoveSlotNotAllowed(bool client_update = true); - virtual void RangedAttack(Mob* other, bool CanDoubleAttack = false); - virtual void ThrowingAttack(Mob* other, bool CanDoubleAttack = false); - void DoClassAttacks(Mob *ca_target, uint16 skill = -1, bool IsRiposte=false); + //bool DecreaseByType(uint32 type, uint8 amt); + bool DecreaseByID(uint32 type, uint8 amt); + uint8 SlotConvert2(uint8 slot); //Maybe not needed. + void Escape(); //AA Escape + void RemoveNoRent(bool client_update = true); + void RemoveDuplicateLore(bool client_update = true); + void MoveSlotNotAllowed(bool client_update = true); + virtual void RangedAttack(Mob* other, bool CanDoubleAttack = false); + virtual void ThrowingAttack(Mob* other, bool CanDoubleAttack = false); + void DoClassAttacks(Mob *ca_target, uint16 skill = -1, bool IsRiposte=false); - void SetZoneFlag(uint32 zone_id); - void ClearZoneFlag(uint32 zone_id); - bool HasZoneFlag(uint32 zone_id) const; - void SendZoneFlagInfo(Client *to) const; - void LoadZoneFlags(); + void SetZoneFlag(uint32 zone_id); + void ClearZoneFlag(uint32 zone_id); + bool HasZoneFlag(uint32 zone_id) const; + void SendZoneFlagInfo(Client *to) const; + void LoadZoneFlags(); - void ChangeSQLLog(const char *file); - void LogSQL(const char *fmt, ...); - bool CanFish(); - void GoFish(); - void ForageItem(bool guarantee = false); + void ChangeSQLLog(const char *file); + void LogSQL(const char *fmt, ...); + bool CanFish(); + void GoFish(); + void ForageItem(bool guarantee = false); //Calculate vendor price modifier based on CHA: (reverse==selling) - float CalcPriceMod(Mob* other = 0, bool reverse = false); - void ResetTrade(); - void DropInst(const ItemInst* inst); - bool TrainDiscipline(uint32 itemid); - void SendDisciplineUpdate(); - bool UseDiscipline(uint32 spell_id, uint32 target); + float CalcPriceMod(Mob* other = 0, bool reverse = false); + void ResetTrade(); + void DropInst(const ItemInst* inst); + bool TrainDiscipline(uint32 itemid); + void SendDisciplineUpdate(); + bool UseDiscipline(uint32 spell_id, uint32 target); - bool CheckTitle(int titleset); - void EnableTitle(int titleset); - void RemoveTitle(int titleset); + bool CheckTitle(int titleset); + void EnableTitle(int titleset); + void RemoveTitle(int titleset); - void EnteringMessages(Client* client); - void SendRules(Client* client); + void EnteringMessages(Client* client); + void SendRules(Client* client); std::list consent_list; //Anti-Cheat Stuff @@ -904,97 +904,63 @@ void SetConsumption(int32 in_hunger, int32 in_thirst); void SendBuffDurationPacket(Buffs_Struct &buff); void SendBuffNumHitPacket(Buffs_Struct &buff, int slot); - void ProcessInspectRequest(Client* requestee, Client* requester); - bool ClientFinishedLoading() { return (conn_state == ClientConnectFinished); } - int FindSpellBookSlotBySpellID(uint16 spellid); - int GetNextAvailableSpellBookSlot(int starting_slot = 0); + void ProcessInspectRequest(Client* requestee, Client* requester); + bool ClientFinishedLoading() { return (conn_state == ClientConnectFinished); } + int FindSpellBookSlotBySpellID(uint16 spellid); + int GetNextAvailableSpellBookSlot(int starting_slot = 0); inline uint32 GetSpellByBookSlot(int book_slot) { return m_pp.spell_book[book_slot]; } inline bool HasSpellScribed(int spellid) { return (FindSpellBookSlotBySpellID(spellid) != -1 ? true : false); } - uint16 GetMaxSkillAfterSpecializationRules(SkillUseTypes skillid, uint16 maxSkill); - void SendPopupToClient(const char *Title, const char *Text, uint32 PopupID = 0, uint32 Buttons = 0, uint32 Duration = 0); - void SendWindow(uint32 PopupID, uint32 NegativeID, uint32 Buttons, const char *ButtonName0, const char *ButtonName1, uint32 Duration, int title_type, Client* target, const char *Title, const char *Text, ...); - bool PendingTranslocate; - time_t TranslocateTime; - bool PendingSacrifice; - std::string SacrificeCaster; - struct Translocate_Struct PendingTranslocateData; - void SendOPTranslocateConfirm(Mob *Caster, uint16 SpellID); + uint16 GetMaxSkillAfterSpecializationRules(SkillUseTypes skillid, uint16 maxSkill); + void SendPopupToClient(const char *Title, const char *Text, uint32 PopupID = 0, uint32 Buttons = 0, uint32 Duration = 0); + void SendWindow(uint32 PopupID, uint32 NegativeID, uint32 Buttons, const char *ButtonName0, const char *ButtonName1, uint32 Duration, int title_type, Client* target, const char *Title, const char *Text, ...); + bool PendingTranslocate; + time_t TranslocateTime; + bool PendingSacrifice; + std::string SacrificeCaster; + struct Translocate_Struct PendingTranslocateData; + void SendOPTranslocateConfirm(Mob *Caster, uint16 SpellID); // Task System Methods - void LoadClientTaskState(); - void RemoveClientTaskState(); - void SendTaskActivityComplete(int TaskID, int ActivityID, int TaskIndex, int TaskIncomplete=1); - void SendTaskFailed(int TaskID, int TaskIndex); - void SendTaskComplete(int TaskIndex); + void LoadClientTaskState(); + void RemoveClientTaskState(); + void SendTaskActivityComplete(int TaskID, int ActivityID, int TaskIndex, int TaskIncomplete=1); + void SendTaskFailed(int TaskID, int TaskIndex); + void SendTaskComplete(int TaskIndex); inline void CancelTask(int TaskIndex) { if(taskstate) taskstate->CancelTask(this, TaskIndex); } - inline bool SaveTaskState() { return (taskmanager ? taskmanager->SaveClientState(this, taskstate) : false); } - inline bool IsTaskStateLoaded() { return taskstate != nullptr; } - inline bool IsTaskActive(int TaskID) { return (taskstate ? taskstate->IsTaskActive(TaskID) : false); } - inline bool IsTaskActivityActive(int TaskID, int ActivityID) { return (taskstate ? taskstate->IsTaskActivityActive(TaskID, ActivityID) : false); } - inline ActivityState GetTaskActivityState(int index, int ActivityID) { return (taskstate ? taskstate->GetTaskActivityState(index, ActivityID) : ActivityHidden); } - inline void UpdateTaskActivity(int TaskID, int ActivityID, int Count) { if(taskstate) taskstate->UpdateTaskActivity(this, TaskID, ActivityID, Count); } - inline void ResetTaskActivity(int TaskID, int ActivityID) { if(taskstate) taskstate->ResetTaskActivity(this, TaskID, ActivityID); } - inline void UpdateTasksOnKill(int NPCTypeID) { if(taskstate) taskstate->UpdateTasksOnKill(this, NPCTypeID); } - inline void UpdateTasksForItem(ActivityType Type, int ItemID, int Count=1) { if(taskstate) taskstate->UpdateTasksForItem(this, Type, ItemID, Count); } - inline void UpdateTasksOnExplore(int ExploreID) { if(taskstate) taskstate->UpdateTasksOnExplore(this, ExploreID); } - inline bool UpdateTasksOnSpeakWith(int NPCTypeID) { if(taskstate) return taskstate->UpdateTasksOnSpeakWith(this, NPCTypeID); else return false; } - inline bool UpdateTasksOnDeliver(uint32 *Items, int Cash, int NPCTypeID) { if(taskstate) return taskstate->UpdateTasksOnDeliver(this, Items, Cash, NPCTypeID); else return false; } - inline void TaskSetSelector(Mob *mob, int TaskSetID) { if(taskmanager) taskmanager->TaskSetSelector(this, taskstate, mob, TaskSetID); } - inline void EnableTask(int TaskCount, int *TaskList) { if(taskstate) taskstate->EnableTask(CharacterID(), TaskCount, TaskList); } - inline void DisableTask(int TaskCount, int *TaskList) { if(taskstate) taskstate->DisableTask(CharacterID(), TaskCount, TaskList); } - inline bool IsTaskEnabled(int TaskID) { return (taskstate ? taskstate->IsTaskEnabled(TaskID) : false); } - inline void ProcessTaskProximities(float X, float Y, float Z) { if(taskstate) taskstate->ProcessTaskProximities(this, X, Y, Z); } - inline void AssignTask(int TaskID, int NPCID) { if(taskstate) taskstate->AcceptNewTask(this, TaskID, NPCID); } - inline int ActiveSpeakTask(int NPCID) { if(taskstate) return taskstate->ActiveSpeakTask(NPCID); else return 0; } - inline int ActiveSpeakActivity(int NPCID, int TaskID) { if(taskstate) return taskstate->ActiveSpeakActivity(NPCID, TaskID); else return 0; } - inline void FailTask(int TaskID) { if(taskstate) taskstate->FailTask(this, TaskID); } - inline int TaskTimeLeft(int TaskID) { return (taskstate ? taskstate->TaskTimeLeft(TaskID) : 0); } - inline int EnabledTaskCount(int TaskSetID) { return (taskstate ? taskstate->EnabledTaskCount(TaskSetID) : -1); } - inline int IsTaskCompleted(int TaskID) { return (taskstate ? taskstate->IsTaskCompleted(TaskID) : -1); } - inline void ShowClientTasks() { if(taskstate) taskstate->ShowClientTasks(this); } - inline void CancelAllTasks() { if(taskstate) taskstate->CancelAllTasks(this); } - inline int GetActiveTaskCount() { return (taskstate ? taskstate->GetActiveTaskCount() : 0); } - inline int GetActiveTaskID(int index) { return (taskstate ? taskstate->GetActiveTaskID(index) : -1); } - inline int GetTaskStartTime(int index) { return (taskstate ? taskstate->GetTaskStartTime(index) : -1); } - inline bool IsTaskActivityCompleted(int index, int ActivityID) { return (taskstate ? taskstate->IsTaskActivityCompleted(index, ActivityID) : false); } - inline int GetTaskActivityDoneCount(int ClientTaskIndex, int ActivityID) { return (taskstate ? taskstate->GetTaskActivityDoneCount(ClientTaskIndex, ActivityID) :0); } - inline int GetTaskActivityDoneCountFromTaskID(int TaskID, int ActivityID) { return (taskstate ? taskstate->GetTaskActivityDoneCountFromTaskID(TaskID, ActivityID) :0); } - inline int ActiveTasksInSet(int TaskSet) { return (taskstate ? taskstate->ActiveTasksInSet(TaskSet) :0); } - inline int CompletedTasksInSet(int TaskSet) { return (taskstate ? taskstate->CompletedTasksInSet(TaskSet) :0); } inline const EQClientVersion GetClientVersion() const { return ClientVersion; } @@ -1047,7 +1013,7 @@ void SetConsumption(int32 in_hunger, int32 in_thirst); void HandleLDoNSenseTraps(NPC *target, uint16 skill, uint8 type); void HandleLDoNDisarm(NPC *target, uint16 skill, uint8 type); void HandleLDoNPickLock(NPC *target, uint16 skill, uint8 type); - int LDoNChest_SkillCheck(NPC *target, int skill); + int LDoNChest_SkillCheck(NPC *target, int skill); void MarkSingleCompassLoc(float in_x, float in_y, float in_z, uint8 count=1); @@ -1087,7 +1053,7 @@ void SetConsumption(int32 in_hunger, int32 in_thirst); inline bool GetPendingGuildInvitation() { return PendingGuildInvitation; } void LocateCorpse(); void SendTargetCommand(uint32 EntityID); - bool MoveItemToInventory(ItemInst *BInst, bool UpdateClient = false); + bool MoveItemToInventory(ItemInst *BInst, bool UpdateClient = false); void HandleRespawnFromHover(uint32 Option); bool IsHoveringForRespawn() { return RespawnFromHoverTimer.Enabled(); } std::list respawn_options; @@ -1134,8 +1100,8 @@ void SetConsumption(int32 in_hunger, int32 in_thirst); bool CheckCanRetainMerc(uint32 upkeep); bool CheckCanUnsuspendMerc(); bool CheckCanDismissMerc(); - inline uint32 GetMercID() const { return mercid; } - inline uint8 GetMercSlot() const { return mercSlot; } + inline uint32 GetMercID() const { return mercid; } + inline uint8 GetMercSlot() const { return mercSlot; } void SetMercID( uint32 newmercid) { mercid = newmercid; } void SetMercSlot( uint8 newmercslot) { mercSlot = newmercslot; } Merc* GetMerc(); @@ -1184,7 +1150,7 @@ void SetConsumption(int32 in_hunger, int32 in_thirst); int32 GetActCHA() { return( std::min(GetMaxCHA(), GetCHA()) ); } void LoadAccountFlags(); void SetAccountFlag(std::string flag, std::string val); - std::string GetAccountFlag(std::string flag); float GetDamageMultiplier(SkillUseTypes); + std::string GetAccountFlag(std::string flag); float GetDamageMultiplier(SkillUseTypes); void Consume(const Item_Struct *item, uint8 type, int16 slot, bool auto_consume); void PlayMP3(const char* fname); void ExpeditionSay(const char *str, int ExpID); @@ -1232,10 +1198,10 @@ protected: void MakeBuffFadePacket(uint16 spell_id, int slot_id, bool send_message = true); bool client_data_loaded; - int16 GetFocusEffect(focusType type, uint16 spell_id); - int16 GetSympatheticFocusEffect(focusType type, uint16 spell_id); + int16 GetFocusEffect(focusType type, uint16 spell_id); + int16 GetSympatheticFocusEffect(focusType type, uint16 spell_id); - Mob* bind_sight_target; + Mob* bind_sight_target; Map::Vertex aa_los_me; Map::Vertex aa_los_them; @@ -1260,52 +1226,52 @@ protected: private: eqFilterMode ClientFilters[_FilterCount]; - int32 HandlePacket(const EQApplicationPacket *app); - void OPTGB(const EQApplicationPacket *app); - void OPRezzAnswer(uint32 Action, uint32 SpellID, uint16 ZoneID, uint16 InstanceID, float x, float y, float z); - void OPMemorizeSpell(const EQApplicationPacket *app); - void OPMoveCoin(const EQApplicationPacket* app); - void MoveItemCharges(ItemInst &from, int16 to_slot, uint8 type); - void OPGMTraining(const EQApplicationPacket *app); - void OPGMEndTraining(const EQApplicationPacket *app); - void OPGMTrainSkill(const EQApplicationPacket *app); - void OPGMSummon(const EQApplicationPacket *app); - void OPCombatAbility(const EQApplicationPacket *app); + int32 HandlePacket(const EQApplicationPacket *app); + void OPTGB(const EQApplicationPacket *app); + void OPRezzAnswer(uint32 Action, uint32 SpellID, uint16 ZoneID, uint16 InstanceID, float x, float y, float z); + void OPMemorizeSpell(const EQApplicationPacket *app); + void OPMoveCoin(const EQApplicationPacket* app); + void MoveItemCharges(ItemInst &from, int16 to_slot, uint8 type); + void OPGMTraining(const EQApplicationPacket *app); + void OPGMEndTraining(const EQApplicationPacket *app); + void OPGMTrainSkill(const EQApplicationPacket *app); + void OPGMSummon(const EQApplicationPacket *app); + void OPCombatAbility(const EQApplicationPacket *app); // Bandolier Methods - void CreateBandolier(const EQApplicationPacket *app); - void RemoveBandolier(const EQApplicationPacket *app); - void SetBandolier(const EQApplicationPacket *app); + void CreateBandolier(const EQApplicationPacket *app); + void RemoveBandolier(const EQApplicationPacket *app); + void SetBandolier(const EQApplicationPacket *app); - void HandleTraderPriceUpdate(const EQApplicationPacket *app); + void HandleTraderPriceUpdate(const EQApplicationPacket *app); - int32 CalcAC(); - int32 GetACMit(); - int32 GetACAvoid(); - int32 CalcATK(); - int32 CalcHaste(); + int32 CalcAC(); + int32 GetACMit(); + int32 GetACAvoid(); + int32 CalcATK(); + int32 CalcHaste(); - int32 CalcAlcoholPhysicalEffect(); - int32 CalcSTR(); - int32 CalcSTA(); - int32 CalcDEX(); - int32 CalcAGI(); - int32 CalcINT(); - int32 CalcWIS(); - int32 CalcCHA(); + int32 CalcAlcoholPhysicalEffect(); + int32 CalcSTR(); + int32 CalcSTA(); + int32 CalcDEX(); + int32 CalcAGI(); + int32 CalcINT(); + int32 CalcWIS(); + int32 CalcCHA(); - int32 CalcMR(); - int32 CalcFR(); - int32 CalcDR(); - int32 CalcPR(); - int32 CalcCR(); - int32 CalcCorrup(); - int32 CalcMaxHP(); - int32 CalcBaseHP(); - int32 CalcHPRegen(); - int32 CalcManaRegen(); - int32 CalcBaseManaRegen(); - uint32 GetClassHPFactor(); + int32 CalcMR(); + int32 CalcFR(); + int32 CalcDR(); + int32 CalcPR(); + int32 CalcCR(); + int32 CalcCorrup(); + int32 CalcMaxHP(); + int32 CalcBaseHP(); + int32 CalcHPRegen(); + int32 CalcManaRegen(); + int32 CalcBaseManaRegen(); + uint32 GetClassHPFactor(); void DoHPRegen(); void DoManaRegen(); void DoStaminaUpdate(); @@ -1317,75 +1283,75 @@ private: EQStreamInterface* eqs; - uint32 ip; - uint16 port; - CLIENT_CONN_STATUS client_state; - uint32 character_id; - uint32 WID; - uint32 account_id; - char account_name[30]; - uint32 lsaccountid; - char lskey[30]; - int16 admin; - uint32 guild_id; - uint8 guildrank; // player's rank in the guild, 0-GUILD_MAX_RANK - bool GuildBanker; - uint16 duel_target; - bool duelaccepted; + uint32 ip; + uint16 port; + CLIENT_CONN_STATUS client_state; + uint32 character_id; + uint32 WID; + uint32 account_id; + char account_name[30]; + uint32 lsaccountid; + char lskey[30]; + int16 admin; + uint32 guild_id; + uint8 guildrank; // player's rank in the guild, 0-GUILD_MAX_RANK + bool GuildBanker; + uint16 duel_target; + bool duelaccepted; std::list keyring; - bool tellsoff; // GM /toggle - bool gmhideme; - bool LFG; - bool LFP; - uint8 LFGFromLevel; - uint8 LFGToLevel; - bool LFGMatchFilter; - char LFGComments[64]; - bool AFK; - bool auto_attack; - bool auto_fire; - uint8 gmspeed; - bool medding; - uint16 horseId; - bool revoked; - uint32 pQueuedSaveWorkID; - uint16 pClientSideTarget; - uint32 weight; - bool berserk; - bool dead; - uint16 BoatID; - uint16 TrackingID; - uint16 CustomerID; - uint32 account_creation; - uint8 firstlogon; - uint32 mercid; // current merc - uint8 mercSlot; // selected merc slot - bool Trader; - bool Buyer; - std::string BuyerWelcomeMessage; - bool AbilityTimer; + bool tellsoff; // GM /toggle + bool gmhideme; + bool LFG; + bool LFP; + uint8 LFGFromLevel; + uint8 LFGToLevel; + bool LFGMatchFilter; + char LFGComments[64]; + bool AFK; + bool auto_attack; + bool auto_fire; + uint8 gmspeed; + bool medding; + uint16 horseId; + bool revoked; + uint32 pQueuedSaveWorkID; + uint16 pClientSideTarget; + uint32 weight; + bool berserk; + bool dead; + uint16 BoatID; + uint16 TrackingID; + uint16 CustomerID; + uint32 account_creation; + uint8 firstlogon; + uint32 mercid; // current merc + uint8 mercSlot; // selected merc slot + bool Trader; + bool Buyer; + std::string BuyerWelcomeMessage; + bool AbilityTimer; int Haste; //precalced value - int32 max_end; - int32 cur_end; + int32 max_end; + int32 cur_end; - PlayerProfile_Struct m_pp; - ExtendedProfile_Struct m_epp; - Inventory m_inv; - Object* m_tradeskill_object; - PetInfo m_petinfo; // current pet data, used while loading from and saving to DB - PetInfo m_suspendedminion; // pet data for our suspended minion. - MercInfo m_mercinfo[MAXMERCS]; // current mercenary - InspectMessage_Struct m_inspect_message; + PlayerProfile_Struct m_pp; + ExtendedProfile_Struct m_epp; + Inventory m_inv; + Object* m_tradeskill_object; + PetInfo m_petinfo; // current pet data, used while loading from and saving to DB + PetInfo m_suspendedminion; // pet data for our suspended minion. + MercInfo m_mercinfo[MAXMERCS]; // current mercenary + InspectMessage_Struct m_inspect_message; void NPCSpawn(const Seperator* sep); uint32 GetEXPForLevel(uint16 level); - bool CanBeInZone(); - void SendLogoutPackets(); - bool AddPacket(const EQApplicationPacket *, bool); - bool AddPacket(EQApplicationPacket**, bool); - bool SendAllPackets(); + bool CanBeInZone(); + void SendLogoutPackets(); + bool AddPacket(const EQApplicationPacket *, bool); + bool AddPacket(EQApplicationPacket**, bool); + bool SendAllPackets(); LinkedList clientpackets; //Zoning related stuff @@ -1394,62 +1360,62 @@ private: void DoZoneSuccess(ZoneChange_Struct *zc, uint16 zone_id, uint32 instance_id, float dest_x, float dest_y, float dest_z, float dest_h, int8 ignore_r); void ZonePC(uint32 zoneID, uint32 instance_id, float x, float y, float z, float heading, uint8 ignorerestrictions, ZoneMode zm); void ProcessMovePC(uint32 zoneID, uint32 instance_id, float x, float y, float z, float heading, uint8 ignorerestrictions = 0, ZoneMode zm = ZoneSolicited); - float zonesummon_x; - float zonesummon_y; - float zonesummon_z; - uint16 zonesummon_id; - uint8 zonesummon_ignorerestrictions; + float zonesummon_x; + float zonesummon_y; + float zonesummon_z; + uint16 zonesummon_id; + uint8 zonesummon_ignorerestrictions; ZoneMode zone_mode; - Timer position_timer; - uint8 position_timer_counter; + Timer position_timer; + uint8 position_timer_counter; - PTimerList p_timers; //persistent timers - Timer hpupdate_timer; - Timer camp_timer; - Timer process_timer; - Timer stamina_timer; - Timer zoneinpacket_timer; - Timer linkdead_timer; - Timer dead_timer; - Timer global_channel_timer; - Timer shield_timer; - Timer fishing_timer; - Timer endupkeep_timer; - Timer forget_timer; // our 2 min everybody forgets you timer - Timer autosave_timer; + PTimerList p_timers; //persistent timers + Timer hpupdate_timer; + Timer camp_timer; + Timer process_timer; + Timer stamina_timer; + Timer zoneinpacket_timer; + Timer linkdead_timer; + Timer dead_timer; + Timer global_channel_timer; + Timer shield_timer; + Timer fishing_timer; + Timer endupkeep_timer; + Timer forget_timer; // our 2 min everybody forgets you timer + Timer autosave_timer; #ifdef REVERSE_AGGRO - Timer scanarea_timer; + Timer scanarea_timer; #endif - Timer tribute_timer; + Timer tribute_timer; - Timer proximity_timer; - Timer TaskPeriodic_Timer; - Timer charm_update_timer; - Timer rest_timer; - Timer charm_class_attacks_timer; - Timer charm_cast_timer; - Timer qglobal_purge_timer; - Timer TrackingTimer; - Timer RespawnFromHoverTimer; - Timer merc_timer; + Timer proximity_timer; + Timer TaskPeriodic_Timer; + Timer charm_update_timer; + Timer rest_timer; + Timer charm_class_attacks_timer; + Timer charm_cast_timer; + Timer qglobal_purge_timer; + Timer TrackingTimer; + Timer RespawnFromHoverTimer; + Timer merc_timer; - float proximity_x; - float proximity_y; - float proximity_z; + float proximity_x; + float proximity_y; + float proximity_z; - void BulkSendInventoryItems(); + void BulkSendInventoryItems(); faction_map factionvalues; uint32 tribute_master_id; FILE *SQL_log; - uint32 max_AAXP; - uint32 staminacount; - AA_Array* aa[MAX_PP_AA_ARRAY]; //this list contains pointers into our player profile + uint32 max_AAXP; + uint32 staminacount; + AA_Array* aa[MAX_PP_AA_ARRAY]; //this list contains pointers into our player profile std::map aa_points; bool npcflag; uint8 npclevel; @@ -1457,14 +1423,14 @@ private: bool zoning; bool tgb; bool instalog; - int32 last_reported_mana; - int32 last_reported_endur; + int32 last_reported_mana; + int32 last_reported_endur; unsigned int AggroCount; // How many mobs are aggro on us. - unsigned int RestRegenHP; - unsigned int RestRegenMana; - unsigned int RestRegenEndurance; + unsigned int RestRegenHP; + unsigned int RestRegenMana; + unsigned int RestRegenEndurance; bool EngagedRaidTarget; uint32 SavedRaidRestTimer; @@ -1482,7 +1448,7 @@ private: uint32 AttemptedMessages; EQClientVersion ClientVersion; - uint32 ClientVersionBit; + uint32 ClientVersionBit; int XPRate; @@ -1497,18 +1463,18 @@ private: //Connecting debug code. enum { //connecting states, used for debugging only - NoPacketsReceived, //havent gotten anything + NoPacketsReceived, //havent gotten anything //this is the point where the client changes to the loading screen - ReceivedZoneEntry, //got the first packet, loading up PP - PlayerProfileLoaded, //our DB work is done, sending it - ZoneInfoSent, //includes PP, tributes, tasks, spawns, time and weather + ReceivedZoneEntry, //got the first packet, loading up PP + PlayerProfileLoaded, //our DB work is done, sending it + ZoneInfoSent, //includes PP, tributes, tasks, spawns, time and weather //this is the point where the client shows a status bar zoning in - NewZoneRequested, //received and sent new zone request - ClientSpawnRequested, //client sent ReqClientSpawn - ZoneContentsSent, //objects, doors, zone points - ClientReadyReceived, //client told us its ready, send them a bunch of crap like guild MOTD, etc + NewZoneRequested, //received and sent new zone request + ClientSpawnRequested, //client sent ReqClientSpawn + ZoneContentsSent, //objects, doors, zone points + ClientReadyReceived, //client told us its ready, send them a bunch of crap like guild MOTD, etc //this is the point where the client releases the mouse - ClientConnectFinished //client finally moved to finished state, were done here + ClientConnectFinished //client finally moved to finished state, were done here } conn_state; void ReportConnectingState(); @@ -1516,8 +1482,8 @@ private: bool PendingGuildInvitation; int PendingRezzXP; uint32 PendingRezzDBID; - uint16 PendingRezzSpellID; // Only used for resurrect while hovering. - std::string PendingRezzCorpseName; // Only used for resurrect while hovering. + uint16 PendingRezzSpellID; // Only used for resurrect while hovering. + std::string PendingRezzCorpseName; // Only used for resurrect while hovering. std::set PlayerBlockedBuffs; std::set PetBlockedBuffs; diff --git a/zone/merc.h b/zone/merc.h index 66c310759..deb5fe53b 100644 --- a/zone/merc.h +++ b/zone/merc.h @@ -4,17 +4,17 @@ #include "zonedb.h" #include "npc.h" -#define MAXMERCS 1 -#define MERC_DEBUG 0 -#define TANK 1 -#define HEALER 2 -#define MELEEDPS 9 -#define CASTERDPS 12 +#define MAXMERCS 1 +#define MERC_DEBUG 0 +#define TANK 1 +#define HEALER 2 +#define MELEEDPS 9 +#define CASTERDPS 12 -#define NO_MERC_ID 0 -#define MERC_STATE_NORMAL 5 +#define NO_MERC_ID 0 +#define MERC_STATE_NORMAL 5 #define MERC_STATE_SUSPENDED 1 -#define NOT_SUSPENDED_TIME 0 +#define NOT_SUSPENDED_TIME 0 const int MercAISpellRange = 100; // TODO: Write a method that calcs what the merc's spell range is based on spell, equipment, AA, whatever and replace this @@ -31,19 +31,19 @@ enum MercStanceType { }; struct MercSpell { - uint16 spellid; // <= 0 = no spell - uint32 type; // 0 = never, must be one (and only one) of the defined values - int16 stance; // 0 = all, + = only this stance, - = all except this stance - int16 slot; - uint16 proc_chance; - uint32 time_cancast; // when we can cast this spell next + uint16 spellid; // <= 0 = no spell + uint32 type; // 0 = never, must be one (and only one) of the defined values + int16 stance; // 0 = all, + = only this stance, - = all except this stance + int16 slot; + uint16 proc_chance; + uint32 time_cancast; // when we can cast this spell next }; struct MercTimer { - uint16 timerid; // EndurTimerIndex - uint8 timertype; // 1 = spell, 2 = disc - uint16 spellid; // <= 0 = no spell - uint32 time_cancast; // when we can cast this spell next + uint16 timerid; // EndurTimerIndex + uint8 timertype; // 1 = spell, 2 = disc + uint16 spellid; // <= 0 = no spell + uint32 time_cancast; // when we can cast this spell next }; class Merc : public NPC { @@ -170,16 +170,16 @@ public: inline const uint8 GetClientVersion() const { return _OwnerClientVersion; } virtual void SetTarget(Mob* mob); - bool HasSkill(SkillUseTypes skill_id) const; - bool CanHaveSkill(SkillUseTypes skill_id) const; - uint16 MaxSkill(SkillUseTypes skillid, uint16 class_, uint16 level) const; - inline uint16 MaxSkill(SkillUseTypes skillid) const { return MaxSkill(skillid, GetClass(), GetLevel()); } + bool HasSkill(SkillUseTypes skill_id) const; + bool CanHaveSkill(SkillUseTypes skill_id) const; + uint16 MaxSkill(SkillUseTypes skillid, uint16 class_, uint16 level) const; + inline uint16 MaxSkill(SkillUseTypes skillid) const { return MaxSkill(skillid, GetClass(), GetLevel()); } virtual void DoClassAttacks(Mob *target); - void CheckHateList(); - bool CheckTaunt(); - bool CheckAETaunt(); - bool CheckConfidence(); - bool TryHide(); + void CheckHateList(); + bool CheckTaunt(); + bool CheckAETaunt(); + bool CheckConfidence(); + bool TryHide(); // stat functions virtual void CalcBonuses(); @@ -189,56 +189,56 @@ public: inline virtual int32 GetATKBonus() const { return itembonuses.ATK + spellbonuses.ATK; } int32 GetRawACNoShield(int &shield_ac) const; - inline virtual int32 GetSTR() const { return STR; } - inline virtual int32 GetSTA() const { return STA; } - inline virtual int32 GetDEX() const { return DEX; } - inline virtual int32 GetAGI() const { return AGI; } - inline virtual int32 GetINT() const { return INT; } - inline virtual int32 GetWIS() const { return WIS; } - inline virtual int32 GetCHA() const { return CHA; } - inline virtual int32 GetMR() const { return MR; } - inline virtual int32 GetFR() const { return FR; } - inline virtual int32 GetDR() const { return DR; } - inline virtual int32 GetPR() const { return PR; } - inline virtual int32 GetCR() const { return CR; } - inline virtual int32 GetCorrup() const { return Corrup; } + inline virtual int32 GetSTR() const { return STR; } + inline virtual int32 GetSTA() const { return STA; } + inline virtual int32 GetDEX() const { return DEX; } + inline virtual int32 GetAGI() const { return AGI; } + inline virtual int32 GetINT() const { return INT; } + inline virtual int32 GetWIS() const { return WIS; } + inline virtual int32 GetCHA() const { return CHA; } + inline virtual int32 GetMR() const { return MR; } + inline virtual int32 GetFR() const { return FR; } + inline virtual int32 GetDR() const { return DR; } + inline virtual int32 GetPR() const { return PR; } + inline virtual int32 GetCR() const { return CR; } + inline virtual int32 GetCorrup() const { return Corrup; } - inline virtual int32 GetHeroicSTR() const { return itembonuses.HeroicSTR; } - inline virtual int32 GetHeroicSTA() const { return itembonuses.HeroicSTA; } - inline virtual int32 GetHeroicDEX() const { return itembonuses.HeroicDEX; } - inline virtual int32 GetHeroicAGI() const { return itembonuses.HeroicAGI; } - inline virtual int32 GetHeroicINT() const { return itembonuses.HeroicINT; } - inline virtual int32 GetHeroicWIS() const { return itembonuses.HeroicWIS; } - inline virtual int32 GetHeroicCHA() const { return itembonuses.HeroicCHA; } - inline virtual int32 GetHeroicMR() const { return itembonuses.HeroicMR; } - inline virtual int32 GetHeroicFR() const { return itembonuses.HeroicFR; } - inline virtual int32 GetHeroicDR() const { return itembonuses.HeroicDR; } - inline virtual int32 GetHeroicPR() const { return itembonuses.HeroicPR; } - inline virtual int32 GetHeroicCR() const { return itembonuses.HeroicCR; } - inline virtual int32 GetHeroicCorrup() const { return itembonuses.HeroicCorrup; } + inline virtual int32 GetHeroicSTR() const { return itembonuses.HeroicSTR; } + inline virtual int32 GetHeroicSTA() const { return itembonuses.HeroicSTA; } + inline virtual int32 GetHeroicDEX() const { return itembonuses.HeroicDEX; } + inline virtual int32 GetHeroicAGI() const { return itembonuses.HeroicAGI; } + inline virtual int32 GetHeroicINT() const { return itembonuses.HeroicINT; } + inline virtual int32 GetHeroicWIS() const { return itembonuses.HeroicWIS; } + inline virtual int32 GetHeroicCHA() const { return itembonuses.HeroicCHA; } + inline virtual int32 GetHeroicMR() const { return itembonuses.HeroicMR; } + inline virtual int32 GetHeroicFR() const { return itembonuses.HeroicFR; } + inline virtual int32 GetHeroicDR() const { return itembonuses.HeroicDR; } + inline virtual int32 GetHeroicPR() const { return itembonuses.HeroicPR; } + inline virtual int32 GetHeroicCR() const { return itembonuses.HeroicCR; } + inline virtual int32 GetHeroicCorrup() const { return itembonuses.HeroicCorrup; } // Mod2 - inline virtual int32 GetShielding() const { return itembonuses.MeleeMitigation; } - inline virtual int32 GetSpellShield() const { return itembonuses.SpellShield; } - inline virtual int32 GetDoTShield() const { return itembonuses.DoTShielding; } - inline virtual int32 GetStunResist() const { return itembonuses.StunResist; } - inline virtual int32 GetStrikeThrough() const { return itembonuses.StrikeThrough; } - inline virtual int32 GetAvoidance() const { return itembonuses.AvoidMeleeChance; } - inline virtual int32 GetAccuracy() const { return itembonuses.HitChance; } - inline virtual int32 GetCombatEffects() const { return itembonuses.ProcChance; } - inline virtual int32 GetDS() const { return itembonuses.DamageShield; } + inline virtual int32 GetShielding() const { return itembonuses.MeleeMitigation; } + inline virtual int32 GetSpellShield() const { return itembonuses.SpellShield; } + inline virtual int32 GetDoTShield() const { return itembonuses.DoTShielding; } + inline virtual int32 GetStunResist() const { return itembonuses.StunResist; } + inline virtual int32 GetStrikeThrough() const { return itembonuses.StrikeThrough; } + inline virtual int32 GetAvoidance() const { return itembonuses.AvoidMeleeChance; } + inline virtual int32 GetAccuracy() const { return itembonuses.HitChance; } + inline virtual int32 GetCombatEffects() const { return itembonuses.ProcChance; } + inline virtual int32 GetDS() const { return itembonuses.DamageShield; } // Mod3 - inline virtual int32 GetHealAmt() const { return itembonuses.HealAmt; } - inline virtual int32 GetSpellDmg() const { return itembonuses.SpellDmg; } - inline virtual int32 GetClair() const { return itembonuses.Clairvoyance; } - inline virtual int32 GetDSMit() const { return itembonuses.DSMitigation; } + inline virtual int32 GetHealAmt() const { return itembonuses.HealAmt; } + inline virtual int32 GetSpellDmg() const { return itembonuses.SpellDmg; } + inline virtual int32 GetClair() const { return itembonuses.Clairvoyance; } + inline virtual int32 GetDSMit() const { return itembonuses.DSMitigation; } - inline virtual int32 GetSingMod() const { return itembonuses.singingMod; } - inline virtual int32 GetBrassMod() const { return itembonuses.brassMod; } - inline virtual int32 GetPercMod() const { return itembonuses.percussionMod; } - inline virtual int32 GetStringMod() const { return itembonuses.stringedMod; } - inline virtual int32 GetWindMod() const { return itembonuses.windMod; } + inline virtual int32 GetSingMod() const { return itembonuses.singingMod; } + inline virtual int32 GetBrassMod() const { return itembonuses.brassMod; } + inline virtual int32 GetPercMod() const { return itembonuses.percussionMod; } + inline virtual int32 GetStringMod() const { return itembonuses.stringedMod; } + inline virtual int32 GetWindMod() const { return itembonuses.windMod; } - inline virtual int32 GetDelayDeath() const { return aabonuses.DelayDeath + spellbonuses.DelayDeath + itembonuses.DelayDeath + 11; } + inline virtual int32 GetDelayDeath() const { return aabonuses.DelayDeath + spellbonuses.DelayDeath + itembonuses.DelayDeath + 11; } // "SET" Class Methods void SetMercData (uint32 templateID ); @@ -279,53 +279,53 @@ protected: std::map timers; uint16 skills[HIGHEST_SKILL+1]; - uint32 equipment[EmuConstants::EQUIPMENT_SIZE]; //this is an array of item IDs - uint16 d_meele_texture1; //this is an item Material value - uint16 d_meele_texture2; //this is an item Material value (offhand) - uint8 prim_melee_type; //Sets the Primary Weapon attack message and animation - uint8 sec_melee_type; //Sets the Secondary Weapon attack message and animation + uint32 equipment[EmuConstants::EQUIPMENT_SIZE]; //this is an array of item IDs + uint16 d_meele_texture1; //this is an item Material value + uint16 d_meele_texture2; //this is an item Material value (offhand) + uint8 prim_melee_type; //Sets the Primary Weapon attack message and animation + uint8 sec_melee_type; //Sets the Secondary Weapon attack message and animation private: - int32 CalcAC(); - int32 GetACMit(); - int32 GetACAvoid(); - int32 acmod(); - int32 CalcATK(); - //int CalcHaste(); + int32 CalcAC(); + int32 GetACMit(); + int32 GetACAvoid(); + int32 acmod(); + int32 CalcATK(); + //int CalcHaste(); - int32 CalcSTR(); - int32 CalcSTA(); - int32 CalcDEX(); - int32 CalcAGI(); - int32 CalcINT(); - int32 CalcWIS(); - int32 CalcCHA(); + int32 CalcSTR(); + int32 CalcSTA(); + int32 CalcDEX(); + int32 CalcAGI(); + int32 CalcINT(); + int32 CalcWIS(); + int32 CalcCHA(); - int32 CalcMR(); - int32 CalcFR(); - int32 CalcDR(); - int32 CalcPR(); - int32 CalcCR(); - int32 CalcCorrup(); - int32 CalcMaxHP(); - int32 CalcBaseHP(); - int32 GetClassHPFactor(); - int32 CalcHPRegen(); - int32 CalcHPRegenCap(); - int32 CalcMaxMana(); - int32 CalcBaseMana(); - int32 CalcManaRegen(); - int32 CalcBaseManaRegen(); - int32 CalcManaRegenCap(); - void CalcMaxEndurance(); //This calculates the maximum endurance we can have - int32 CalcBaseEndurance(); //Calculates Base End - int32 GetMaxEndurance() const {return max_end;} //This gets our endurance from the last CalcMaxEndurance() call - int32 CalcEnduranceRegen(); //Calculates endurance regen used in DoEnduranceRegen() - int32 CalcEnduranceRegenCap(); - void SetEndurance(int32 newEnd); //This sets the current endurance to the new value - void DoEnduranceUpkeep(); //does the endurance upkeep - void CalcRestState(); + int32 CalcMR(); + int32 CalcFR(); + int32 CalcDR(); + int32 CalcPR(); + int32 CalcCR(); + int32 CalcCorrup(); + int32 CalcMaxHP(); + int32 CalcBaseHP(); + int32 GetClassHPFactor(); + int32 CalcHPRegen(); + int32 CalcHPRegenCap(); + int32 CalcMaxMana(); + int32 CalcBaseMana(); + int32 CalcManaRegen(); + int32 CalcBaseManaRegen(); + int32 CalcManaRegenCap(); + void CalcMaxEndurance(); //This calculates the maximum endurance we can have + int32 CalcBaseEndurance(); //Calculates Base End + int32 GetMaxEndurance() const {return max_end;} //This gets our endurance from the last CalcMaxEndurance() call + int32 CalcEnduranceRegen(); //Calculates endurance regen used in DoEnduranceRegen() + int32 CalcEnduranceRegenCap(); + void SetEndurance(int32 newEnd); //This sets the current endurance to the new value + void DoEnduranceUpkeep(); //does the endurance upkeep + void CalcRestState(); int GroupLeadershipAAHealthEnhancement(); int GroupLeadershipAAManaEnhancement(); @@ -351,8 +351,8 @@ private: uint32 _baseWIS; uint32 _baseCHA; uint32 _baseATK; - uint32 _baseRace; // Necessary to preserve the race otherwise mercs get their race updated in the db when they get an illusion. - uint8 _baseGender; // Merc gender. Necessary to preserve the original value otherwise it can be changed by illusions. + uint32 _baseRace; // Necessary to preserve the race otherwise mercs get their race updated in the db when they get an illusion. + uint8 _baseGender; // Merc gender. Necessary to preserve the original value otherwise it can be changed by illusions. uint32 _baseMR; uint32 _baseCR; uint32 _baseDR;