mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-14 01:29:07 +00:00
feat(Core/Scripts): Optimize PlayerScripts by calling only overridden/implemented functions. (#18672)
* feat(Core/Scripts): Optimize PlayerScripts by calling only overridden/implemented functions. * Fix codestyle. * Fix typo * PLAYERHOOK_END is not a hook * Address code review feedback. Co-authored-by: Winfidonarleyan <dowlandtop@yandex.com> * Codestyle fixes * Fix typo Co-authored-by: PkllonG --------- Co-authored-by: Winfidonarleyan <dowlandtop@yandex.com>
This commit is contained in:
committed by
GitHub
parent
fd029f81aa
commit
f792b0d708
File diff suppressed because it is too large
Load Diff
@@ -24,10 +24,186 @@
|
||||
#include "AchievementMgr.h"
|
||||
#include "KillRewarder.h"
|
||||
|
||||
enum PlayerHook {
|
||||
PLAYERHOOK_ON_PLAYER_JUST_DIED,
|
||||
PLAYERHOOK_ON_PLAYER_RELEASED_GHOST,
|
||||
PLAYERHOOK_ON_SEND_INITIAL_PACKETS_BEFORE_ADD_TO_MAP,
|
||||
PLAYERHOOK_ON_BATTLEGROUND_DESERTION,
|
||||
PLAYERHOOK_ON_PLAYER_COMPLETE_QUEST,
|
||||
PLAYERHOOK_ON_PVP_KILL,
|
||||
PLAYERHOOK_ON_PLAYER_PVP_FLAG_CHANGE,
|
||||
PLAYERHOOK_ON_CREATURE_KILL,
|
||||
PLAYERHOOK_ON_CREATURE_KILLED_BY_PET,
|
||||
PLAYERHOOK_ON_PLAYER_KILLED_BY_CREATURE,
|
||||
PLAYERHOOK_ON_LEVEL_CHANGED,
|
||||
PLAYERHOOK_ON_FREE_TALENT_POINTS_CHANGED,
|
||||
PLAYERHOOK_ON_TALENTS_RESET,
|
||||
PLAYERHOOK_ON_AFTER_SPEC_SLOT_CHANGED,
|
||||
PLAYERHOOK_ON_BEFORE_UPDATE,
|
||||
PLAYERHOOK_ON_UPDATE,
|
||||
PLAYERHOOK_ON_MONEY_CHANGED,
|
||||
PLAYERHOOK_ON_BEFORE_LOOT_MONEY,
|
||||
PLAYERHOOK_ON_GIVE_EXP,
|
||||
PLAYERHOOK_ON_REPUTATION_CHANGE,
|
||||
PLAYERHOOK_ON_REPUTATION_RANK_CHANGE,
|
||||
PLAYERHOOK_ON_LEARN_SPELL,
|
||||
PLAYERHOOK_ON_FORGOT_SPELL,
|
||||
PLAYERHOOK_ON_DUEL_REQUEST,
|
||||
PLAYERHOOK_ON_DUEL_START,
|
||||
PLAYERHOOK_ON_DUEL_END,
|
||||
PLAYERHOOK_ON_CHAT,
|
||||
PLAYERHOOK_ON_BEFORE_SEND_CHAT_MESSAGE,
|
||||
PLAYERHOOK_ON_CHAT_WITH_RECEIVER,
|
||||
PLAYERHOOK_ON_CHAT_WITH_GROUP,
|
||||
PLAYERHOOK_ON_CHAT_WITH_GUILD,
|
||||
PLAYERHOOK_ON_CHAT_WITH_CHANNEL,
|
||||
PLAYERHOOK_ON_EMOTE,
|
||||
PLAYERHOOK_ON_TEXT_EMOTE,
|
||||
PLAYERHOOK_ON_SPELL_CAST,
|
||||
PLAYERHOOK_ON_LOAD_FROM_DB,
|
||||
PLAYERHOOK_ON_LOGIN,
|
||||
PLAYERHOOK_ON_BEFORE_LOGOUT,
|
||||
PLAYERHOOK_ON_LOGOUT,
|
||||
PLAYERHOOK_ON_CREATE,
|
||||
PLAYERHOOK_ON_DELETE,
|
||||
PLAYERHOOK_ON_FAILED_DELETE,
|
||||
PLAYERHOOK_ON_SAVE,
|
||||
PLAYERHOOK_ON_BIND_TO_INSTANCE,
|
||||
PLAYERHOOK_ON_UPDATE_ZONE,
|
||||
PLAYERHOOK_ON_UPDATE_AREA,
|
||||
PLAYERHOOK_ON_MAP_CHANGED,
|
||||
PLAYERHOOK_ON_BEFORE_TELEPORT,
|
||||
PLAYERHOOK_ON_UPDATE_FACTION,
|
||||
PLAYERHOOK_ON_ADD_TO_BATTLEGROUND,
|
||||
PLAYERHOOK_ON_QUEUE_RANDOM_DUNGEON,
|
||||
PLAYERHOOK_ON_REMOVE_FROM_BATTLEGROUND,
|
||||
PLAYERHOOK_ON_ACHI_COMPLETE,
|
||||
PLAYERHOOK_ON_BEFORE_ACHI_COMPLETE,
|
||||
PLAYERHOOK_ON_CRITERIA_PROGRESS,
|
||||
PLAYERHOOK_ON_BEFORE_CRITERIA_PROGRESS,
|
||||
PLAYERHOOK_ON_ACHI_SAVE,
|
||||
PLAYERHOOK_ON_CRITERIA_SAVE,
|
||||
PLAYERHOOK_ON_GOSSIP_SELECT,
|
||||
PLAYERHOOK_ON_GOSSIP_SELECT_CODE,
|
||||
PLAYERHOOK_ON_BEING_CHARMED,
|
||||
PLAYERHOOK_ON_AFTER_SET_VISIBLE_ITEM_SLOT,
|
||||
PLAYERHOOK_ON_AFTER_MOVE_ITEM_FROM_INVENTORY,
|
||||
PLAYERHOOK_ON_EQUIP,
|
||||
PLAYERHOOK_ON_PLAYER_JOIN_BG,
|
||||
PLAYERHOOK_ON_PLAYER_JOIN_ARENA,
|
||||
PLAYERHOOK_GET_CUSTOM_GET_ARENA_TEAM_ID,
|
||||
PLAYERHOOK_GET_CUSTOM_ARENA_PERSONAL_RATING,
|
||||
PLAYERHOOK_ON_GET_MAX_PERSONAL_ARENA_RATING_REQUIREMENT,
|
||||
PLAYERHOOK_ON_LOOT_ITEM,
|
||||
PLAYERHOOK_ON_BEFORE_FILL_QUEST_LOOT_ITEM,
|
||||
PLAYERHOOK_ON_STORE_NEW_ITEM,
|
||||
PLAYERHOOK_ON_CREATE_ITEM,
|
||||
PLAYERHOOK_ON_QUEST_REWARD_ITEM,
|
||||
PLAYERHOOK_CAN_PLACE_AUCTION_BID,
|
||||
PLAYERHOOK_ON_GROUP_ROLL_REWARD_ITEM,
|
||||
PLAYERHOOK_ON_BEFORE_OPEN_ITEM,
|
||||
PLAYERHOOK_ON_BEFORE_QUEST_COMPLETE,
|
||||
PLAYERHOOK_ON_QUEST_COMPUTE_EXP,
|
||||
PLAYERHOOK_ON_BEFORE_DURABILITY_REPAIR,
|
||||
PLAYERHOOK_ON_BEFORE_BUY_ITEM_FROM_VENDOR,
|
||||
PLAYERHOOK_ON_BEFORE_STORE_OR_EQUIP_NEW_ITEM,
|
||||
PLAYERHOOK_ON_AFTER_STORE_OR_EQUIP_NEW_ITEM,
|
||||
PLAYERHOOK_ON_AFTER_UPDATE_MAX_POWER,
|
||||
PLAYERHOOK_ON_AFTER_UPDATE_MAX_HEALTH,
|
||||
PLAYERHOOK_ON_BEFORE_UPDATE_ATTACK_POWER_AND_DAMAGE,
|
||||
PLAYERHOOK_ON_AFTER_UPDATE_ATTACK_POWER_AND_DAMAGE,
|
||||
PLAYERHOOK_ON_BEFORE_INIT_TALENT_FOR_LEVEL,
|
||||
PLAYERHOOK_ON_FIRST_LOGIN,
|
||||
PLAYERHOOK_ON_SET_MAX_LEVEL,
|
||||
PLAYERHOOK_CAN_JOIN_IN_BATTLEGROUND_QUEUE,
|
||||
PLAYERHOOK_SHOULD_BE_REWARDED_WITH_MONEY_INSTEAD_OF_EXP,
|
||||
PLAYERHOOK_ON_BEFORE_TEMP_SUMMON_INIT_STATS,
|
||||
PLAYERHOOK_ON_BEFORE_GUARDIAN_INIT_STATS_FOR_LEVEL,
|
||||
PLAYERHOOK_ON_AFTER_GUARDIAN_INIT_STATS_FOR_LEVEL,
|
||||
PLAYERHOOK_ON_BEFORE_LOAD_PET_FROM_DB,
|
||||
PLAYERHOOK_CAN_JOIN_IN_ARENA_QUEUE,
|
||||
PLAYERHOOK_CAN_BATTLEFIELD_PORT,
|
||||
PLAYERHOOK_CAN_GROUP_INVITE,
|
||||
PLAYERHOOK_CAN_GROUP_ACCEPT,
|
||||
PLAYERHOOK_CAN_SELL_ITEM,
|
||||
PLAYERHOOK_CAN_SEND_MAIL,
|
||||
PLAYERHOOK_PETITION_BUY,
|
||||
PLAYERHOOK_PETITION_SHOW_LIST,
|
||||
PLAYERHOOK_ON_REWARD_KILL_REWARDER,
|
||||
PLAYERHOOK_CAN_GIVE_MAIL_REWARD_AT_GIVE_LEVEL,
|
||||
PLAYERHOOK_ON_DELETE_FROM_DB,
|
||||
PLAYERHOOK_CAN_REPOP_AT_GRAVEYARD,
|
||||
PLAYERHOOK_ON_PLAYER_IS_CLASS,
|
||||
PLAYERHOOK_ON_GET_MAX_SKILL_VALUE,
|
||||
PLAYERHOOK_ON_PLAYER_HAS_ACTIVE_POWER_TYPE,
|
||||
PLAYERHOOK_ON_UPDATE_GATHERING_SKILL,
|
||||
PLAYERHOOK_ON_UPDATE_CRAFTING_SKILL,
|
||||
PLAYERHOOK_ON_UPDATE_FISHING_SKILL,
|
||||
PLAYERHOOK_CAN_AREA_EXPLORE_AND_OUTDOOR,
|
||||
PLAYERHOOK_ON_VICTIM_REWARD_BEFORE,
|
||||
PLAYERHOOK_ON_VICTIM_REWARD_AFTER,
|
||||
PLAYERHOOK_ON_CUSTOM_SCALING_STAT_VALUE_BEFORE,
|
||||
PLAYERHOOK_ON_CUSTOM_SCALING_STAT_VALUE,
|
||||
PLAYERHOOK_CAN_ARMOR_DAMAGE_MODIFIER,
|
||||
PLAYERHOOK_ON_GET_FERAL_AP_BONUS,
|
||||
PLAYERHOOK_CAN_APPLY_WEAPON_DEPENDENT_AURA_DAMAGE_MOD,
|
||||
PLAYERHOOK_CAN_APPLY_EQUIP_SPELL,
|
||||
PLAYERHOOK_CAN_APPLY_EQUIP_SPELLS_ITEM_SET,
|
||||
PLAYERHOOK_CAN_CAST_ITEM_COMBAT_SPELL,
|
||||
PLAYERHOOK_CAN_CAST_ITEM_USE_SPELL,
|
||||
PLAYERHOOK_ON_APPLY_AMMO_BONUSES,
|
||||
PLAYERHOOK_CAN_EQUIP_ITEM,
|
||||
PLAYERHOOK_CAN_UNEQUIP_ITEM,
|
||||
PLAYERHOOK_CAN_USE_ITEM,
|
||||
PLAYERHOOK_CAN_SAVE_EQUIP_NEW_ITEM,
|
||||
PLAYERHOOK_CAN_APPLY_ENCHANTMENT,
|
||||
PLAYERHOOK_PASSED_QUEST_KILLED_MONSTER_CREDIT,
|
||||
PLAYERHOOK_CHECK_ITEM_IN_SLOT_AT_LOAD_INVENTORY,
|
||||
PLAYERHOOK_NOT_AVOID_SATISFY,
|
||||
PLAYERHOOK_NOT_VISIBLE_GLOBALLY_FOR,
|
||||
PLAYERHOOK_ON_GET_ARENA_PERSONAL_RATING,
|
||||
PLAYERHOOK_ON_GET_ARENA_TEAM_ID,
|
||||
PLAYERHOOK_ON_IS_FFA_PVP,
|
||||
PLAYERHOOK_ON_FFA_PVP_STATE_UPDATE,
|
||||
PLAYERHOOK_ON_IS_PVP,
|
||||
PLAYERHOOK_ON_GET_MAX_SKILL_VALUE_FOR_LEVEL,
|
||||
PLAYERHOOK_NOT_SET_ARENA_TEAM_INFO_FIELD,
|
||||
PLAYERHOOK_CAN_JOIN_LFG,
|
||||
PLAYERHOOK_CAN_ENTER_MAP,
|
||||
PLAYERHOOK_CAN_INIT_TRADE,
|
||||
PLAYERHOOK_CAN_SET_TRADE_ITEM,
|
||||
PLAYERHOOK_ON_SET_SERVER_SIDE_VISIBILITY,
|
||||
PLAYERHOOK_ON_SET_SERVER_SIDE_VISIBILITY_DETECT,
|
||||
PLAYERHOOK_ON_PLAYER_RESURRECT,
|
||||
PLAYERHOOK_ON_BEFORE_CHOOSE_GRAVEYARD,
|
||||
PLAYERHOOK_CAN_PLAYER_USE_CHAT,
|
||||
PLAYERHOOK_CAN_PLAYER_USE_PRIVATE_CHAT,
|
||||
PLAYERHOOK_CAN_PLAYER_USE_GROUP_CHAT,
|
||||
PLAYERHOOK_CAN_PLAYER_USE_GUILD_CHAT,
|
||||
PLAYERHOOK_CAN_PLAYER_USE_CHANNEL_CHAT,
|
||||
PLAYERHOOK_ON_PLAYER_LEARN_TALENTS,
|
||||
PLAYERHOOK_ON_PLAYER_ENTER_COMBAT,
|
||||
PLAYERHOOK_ON_PLAYER_LEAVE_COMBAT,
|
||||
PLAYERHOOK_ON_QUEST_ABANDON,
|
||||
PLAYERHOOK_ON_GET_QUEST_RATE,
|
||||
PLAYERHOOK_ON_CAN_PLAYER_FLY_IN_ZONE,
|
||||
PLAYERHOOK_ANTICHEAT_SET_CAN_FLY_BY_SERVER,
|
||||
PLAYERHOOK_ANTICHEAT_SET_UNDER_ACK_MOUNT,
|
||||
PLAYERHOOK_ANTICHEAT_SET_ROOT_ACK_UPD,
|
||||
PLAYERHOOK_ANTICHEAT_SET_JUMPING_BY_OPCODE,
|
||||
PLAYERHOOK_ANTICHEAT_UPDATE_MOVEMENT_INFO,
|
||||
PLAYERHOOK_ANTICHEAT_HANDLE_DOUBLE_JUMP,
|
||||
PLAYERHOOK_ANTICHEAT_CHECK_MOVEMENT_INFO,
|
||||
PLAYERHOOK_CAN_SEND_ERROR_ALREADY_LOOTED,
|
||||
PLAYERHOOK_ON_AFTER_CREATURE_LOOT,
|
||||
PLAYERHOOK_ON_AFTER_CREATURE_LOOT_MONEY,
|
||||
PLAYERHOOK_END
|
||||
};
|
||||
|
||||
class PlayerScript : public ScriptObject
|
||||
{
|
||||
protected:
|
||||
PlayerScript(const char* name);
|
||||
PlayerScript(const char* name, std::vector<uint16> enabledHooks = std::vector<uint16>());
|
||||
|
||||
public:
|
||||
// Called when a player dies
|
||||
|
||||
Reference in New Issue
Block a user