Advertisement
Guest User

OnRemovedInsignia

a guest
Sep 13th, 2013
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 3.90 KB | None | 0 0
  1. diff --git a/src/LuaEngine/HookMgr.cpp b/src/LuaEngine/HookMgr.cpp
  2. index 1feebc8..e1b3182 100644
  3. --- a/src/LuaEngine/HookMgr.cpp
  4. +++ b/src/LuaEngine/HookMgr.cpp
  5. @@ -82,6 +82,12 @@ void HookMgr::OnEngineRestart()
  6.      for (HookPointerSet::const_iterator it = hookPointers.begin(); it != hookPointers.end(); ++it)
  7.          (*it)->OnEngineRestart();
  8.  }
  9. +void HookMgr::OnRemovedInsignia(Player* player)
  10. +{
  11. +    for (HookPointerSet::const_iterator it = hookPointers.begin(); it != hookPointers.end(); ++it)
  12. +        (*it)->OnRemovedInsignia(player);
  13. +}
  14. +
  15.  // item
  16.  bool HookMgr::OnDummyEffect(Unit* caster, uint32 spellId, SpellEffIndex effIndex, Item* target)
  17.  {
  18. diff --git a/src/LuaEngine/HookMgr.h b/src/LuaEngine/HookMgr.h
  19. index 9f3583e..547a8a1 100644
  20. --- a/src/LuaEngine/HookMgr.h
  21. +++ b/src/LuaEngine/HookMgr.h
  22. @@ -28,6 +28,7 @@ public:
  23.      bool OnChat(Player* player, uint32 type, uint32 lang, std::string& msg, Guild* guild);
  24.      bool OnChat(Player* player, uint32 type, uint32 lang, std::string& msg, Channel* channel);
  25.      void OnEngineRestart();
  26. +    void OnRemovedInsignia(Player* player);
  27.      // item
  28.      bool OnDummyEffect(Unit* caster, uint32 spellId, SpellEffIndex effIndex, Item* target);
  29.      bool OnQuestAccept(Player* player, Item* item, Quest const* quest);
  30. @@ -93,6 +94,7 @@ public:
  31.      virtual bool OnChat(Player* player, uint32 type, uint32 lang, std::string& msg, Guild* guild) { return true; }
  32.      virtual bool OnChat(Player* player, uint32 type, uint32 lang, std::string& msg, Channel* channel) { return true; }
  33.      virtual void OnEngineRestart() { }
  34. +    virtual void OnRemovedInsignia(Player* player) { }
  35.      // item
  36.      virtual bool OnDummyEffect(Unit* caster, uint32 spellId, SpellEffIndex effIndex, Item* target) { return false; }
  37.      virtual bool OnQuestAccept(Player* player, Item* item, Quest const* quest) { return false; }
  38. diff --git a/src/LuaEngine/LuaEngine.h b/src/LuaEngine/LuaEngine.h
  39. index 2b11e7d..8a8bf3a 100644
  40. --- a/src/LuaEngine/LuaEngine.h
  41. +++ b/src/LuaEngine/LuaEngine.h
  42. @@ -128,6 +128,7 @@ enum ServerEvents
  43.      PLAYER_EVENT_ON_LEAVE_COMBAT            =     79,           // (event, player)
  44.      PLAYER_EVENT_ON_REPOP                   =     80,           // (event, player)
  45.      PLAYER_EVENT_ON_RESURRECT               =     81,           // (event, player)
  46. +    PLAYER_EVENT_ON_REMOVED_IMSIGNIA        =     82,           // (event, player)
  47.  
  48.      SERVER_EVENT_COUNT
  49.  };
  50. diff --git a/src/LuaEngine/LuaHooks.cpp b/src/LuaEngine/LuaHooks.cpp
  51. index a6e71d6..cf142f3 100644
  52. --- a/src/LuaEngine/LuaHooks.cpp
  53. +++ b/src/LuaEngine/LuaHooks.cpp
  54. @@ -243,6 +243,17 @@ public:
  55.              sEluna->ExecuteCall(1, 0);
  56.          }
  57.      }
  58. +    void OnRemovedInsignia(Player* player)
  59. +    {
  60. +        for (std::vector<int>::const_iterator itr = sEluna->ServerEventBindings[PLAYER_EVENT_ON_REMOVED_IMSIGNIA].begin();
  61. +            itr != sEluna->ServerEventBindings[PLAYER_EVENT_ON_REMOVED_IMSIGNIA].end(); ++itr)
  62. +        {
  63. +            sEluna->BeginCall((*itr));
  64. +            sEluna->PushUnsigned(sEluna->LuaState, PLAYER_EVENT_ON_REMOVED_IMSIGNIA);
  65. +            sEluna->PushUnit(sEluna->LuaState, player);
  66. +            sEluna->ExecuteCall(2, 0);
  67. +        }
  68. +    }
  69.      // item
  70.      bool OnDummyEffect(Unit* caster, uint32 spellId, SpellEffIndex effIndex, Item* target)
  71.      {
  72. diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
  73. index 69d6113..1007938 100644
  74. --- a/src/server/game/Entities/Player/Player.cpp
  75. +++ b/src/server/game/Entities/Player/Player.cpp
  76. @@ -8709,7 +8709,11 @@ bool Player::CheckAmmoCompatibility(const ItemTemplate* ammo_proto) const
  77.      Called by remove insignia spell effect    */
  78.  void Player::RemovedInsignia(Player* looterPlr)
  79.  {
  80. -   if (!GetBattlegroundId())
  81. +   #ifdef ELUNA
  82. +       sHookMgr->OnRemovedInsignia(looterPlr);
  83. +   #endif
  84. +   if (!GetBattlegroundId())
  85.          return;
  86.  
  87.      // If not released spirit, do it !
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement