diff --git a/GlobalMethods.h b/GlobalMethods.h index 11b9594..84a3060 100644 --- a/GlobalMethods.h +++ b/GlobalMethods.h @@ -362,10 +362,10 @@ namespace LuaGlobalFunctions * Low GUID is an ID to distinct the objects of the same type. * * [Player] and [Creature] for example can have the same low GUID but not GUID. - * + * * On TrinityCore all low GUIDs are different for all objects of the same type. * For example creatures in instances are assigned new GUIDs when the Map is created. - * + * * On MaNGOS and cMaNGOS low GUIDs are unique only on the same map. * For example creatures in instances use the same low GUID assigned for that spawn in the database. * This is why to identify a creature you have to know the instanceId and low GUID. See [Map:GetIntstanceId] @@ -700,6 +700,7 @@ namespace LuaGlobalFunctions * // UNUSED = 40, // (event, player) * // UNUSED = 41, // (event, player) * PLAYER_EVENT_ON_COMMAND = 42, // (event, player, command) - player is nil if command used from console. Can return false + * PLAYER_EVENT_ON_PET_ADDED_TO_WORLD = 43, // (event, player, pet) * }; * * @@ -2273,7 +2274,7 @@ namespace LuaGlobalFunctions /** * Adds a taxi path to a specified map, returns the used pathId. - * + * * Note that the first taxi point needs to be near the player when he starts the taxi path. * The function should also be used only **once** per path added so use it on server startup for example. * diff --git a/Hooks.h b/Hooks.h index 9d2788a..36753dd 100644 --- a/Hooks.h +++ b/Hooks.h @@ -204,6 +204,7 @@ namespace Hooks // UNUSED = 40, // (event, player) // UNUSED = 41, // (event, player) PLAYER_EVENT_ON_COMMAND = 42, // (event, player, command) - player is nil if command used from console. Can return false + PLAYER_EVENT_ON_PET_ADDED_TO_WORLD = 43, // (event, player, pet) PLAYER_EVENT_COUNT }; diff --git a/LuaEngine.h b/LuaEngine.h index 31df858..d1229e6 100644 --- a/LuaEngine.h +++ b/LuaEngine.h @@ -364,6 +364,7 @@ public: void OnLuaStateClose(); void OnLuaStateOpen(); bool OnAddonMessage(Player* sender, uint32 type, std::string& msg, Player* receiver, Guild* guild, Group* group, Channel* channel); + void OnPetAddedToWorld(Player* player, Creature* pet); /* Item */ void OnDummyEffect(WorldObject* pCaster, uint32 spellId, SpellEffIndex effIndex, Item* pTarget); diff --git a/PlayerHooks.cpp b/PlayerHooks.cpp index 0ef56f6..a229b21 100644 --- a/PlayerHooks.cpp +++ b/PlayerHooks.cpp @@ -544,3 +544,11 @@ bool Eluna::OnChat(Player* pPlayer, uint32 type, uint32 lang, std::string& msg, CleanUpStack(5); return result; } + +void Eluna::OnPetAddedToWorld(Player* player, Creature* pet) +{ + START_HOOK(PLAYER_EVENT_ON_PET_ADDED_TO_WORLD); + Push(player); + Push(pet); + CallAllFunctions(PlayerEventBindings, key); +}