diff options
| author | Wyrserth <43747507+Wyrserth@users.noreply.github.com> | 2019-05-30 17:35:18 +0200 |
|---|---|---|
| committer | Giacomo Pozzoni <giacomopoz@gmail.com> | 2019-05-30 17:35:18 +0200 |
| commit | 88c6c61b95ac2b2f911b519136770479d31de27d (patch) | |
| tree | c2603284d4aef83093f9b5e6916cfdbc00b35efb /src/server/game/Scripting | |
| parent | 7b8f294c024230451f82ff67150e11fc31b61293 (diff) | |
Core/Script: add script hook to allow overriding of a vehicle passenger's exit position (#23322)
* Core/Script: add script hook to allow overriding of a vehicle passenger's exit position.
* Allow to change orientation, and fix nopch.
* Keep original orientation, thanks jackpoz!
* Update Unit.cpp
Code cleanup
* Update Unit.cpp
Diffstat (limited to 'src/server/game/Scripting')
| -rw-r--r-- | src/server/game/Scripting/ScriptMgr.cpp | 5 | ||||
| -rw-r--r-- | src/server/game/Scripting/ScriptMgr.h | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 051592c7fd9..e29d0126586 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -2111,6 +2111,11 @@ void ScriptMgr::ModifySpellDamageTaken(Unit* target, Unit* attacker, int32& dama FOREACH_SCRIPT(UnitScript)->ModifySpellDamageTaken(target, attacker, damage); } +void ScriptMgr::ModifyVehiclePassengerExitPos(Unit* passenger, Vehicle* vehicle, Position& pos) +{ + FOREACH_SCRIPT(UnitScript)->ModifyVehiclePassengerExitPos(passenger, vehicle, pos); +} + SpellScriptLoader::SpellScriptLoader(char const* name) : ScriptObject(name) { diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index 077bbddaf8f..b9677ff70b4 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -70,6 +70,7 @@ struct CreatureTemplate; struct CreatureData; struct ItemTemplate; struct MapEntry; +struct Position; enum BattlegroundTypeId : uint32; enum ContentLevels : uint8; @@ -407,6 +408,9 @@ class TC_GAME_API UnitScript : public ScriptObject // Called when Spell Damage is being Dealt virtual void ModifySpellDamageTaken(Unit* /*target*/, Unit* /*attacker*/, int32& /*damage*/) { } + + // Called when an unit exits a vehicle + virtual void ModifyVehiclePassengerExitPos(Unit* /*passenger*/, Vehicle* /*vehicle*/, Position& /*pos*/) { } }; class TC_GAME_API CreatureScript : public ScriptObject @@ -1057,6 +1061,7 @@ class TC_GAME_API ScriptMgr void ModifyPeriodicDamageAurasTick(Unit* target, Unit* attacker, uint32& damage); void ModifyMeleeDamage(Unit* target, Unit* attacker, uint32& damage); void ModifySpellDamageTaken(Unit* target, Unit* attacker, int32& damage); + void ModifyVehiclePassengerExitPos(Unit* passenger, Vehicle* vehicle, Position& pos); private: uint32 _scriptCount; |
