diff options
-rw-r--r-- | Wintergrasp_temp/Scriptnames.sql | 3 | ||||
-rw-r--r-- | src/server/game/Battlefield/Zones/BattlefieldWG.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Battlefield/Zones/BattlefieldWG.h | 3 | ||||
-rw-r--r-- | src/server/scripts/Northrend/wintergrasp.cpp | 30 |
4 files changed, 36 insertions, 2 deletions
diff --git a/Wintergrasp_temp/Scriptnames.sql b/Wintergrasp_temp/Scriptnames.sql index ecf817e10d6..38e9a60e5b1 100644 --- a/Wintergrasp_temp/Scriptnames.sql +++ b/Wintergrasp_temp/Scriptnames.sql @@ -13,10 +13,11 @@ UPDATE `creature_template` SET `ScriptName`= 'npc_wg_quest_giver' WHERE `entry` -- Wintergrasp vehicle teleport GO script UPDATE `gameobject_template` SET `ScriptName`= 'go_wg_vehicle_teleporter' WHERE `entry`=192951; -- Vehicle Teleporter -DELETE FROM `spell_script_names` WHERE `spell_id` IN (61409, 56662, 56664, 56659, 49899); +DELETE FROM `spell_script_names` WHERE `spell_id` IN (61409, 56662, 56664, 56659, 49899, 61178); INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES (61409, 'spell_wintergrasp_force_building'), (56659, 'spell_wintergrasp_force_building'), (56662, 'spell_wintergrasp_force_building'), (56664, 'spell_wintergrasp_force_building'), (49899, 'spell_wintergrasp_force_building'); +(61178, 'spell_wintergrasp_grab_passenger'); diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp index decc22105a4..caac130eccf 100644 --- a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp +++ b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp @@ -563,6 +563,8 @@ void BattlefieldWG::OnCreatureCreate(Creature* creature) return; } } + if (creature->GetOwner()) + creature->CastSpell(creature->GetOwner(),SPELL_GRAB_PASSENGER,true); break; } } diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.h b/src/server/game/Battlefield/Zones/BattlefieldWG.h index b2356e61d64..c711010bafd 100644 --- a/src/server/game/Battlefield/Zones/BattlefieldWG.h +++ b/src/server/game/Battlefield/Zones/BattlefieldWG.h @@ -29,7 +29,7 @@ const uint32 VehNumWorldState[2] = { 3680, 3490 }; const uint32 MaxVehNumWorldState[2] = { 3681, 3491 }; const uint32 ClockWorldState[2] = { 3781, 4354 }; -const uint32 WintergraspFaction[3] = { 1, 116, 35 }; +const uint32 WintergraspFaction[3] = { 1, 2, 35 }; const float WintergraspStalkerPos[4] = { 0, 0, 0, 0 }; class BattlefieldWG; @@ -59,6 +59,7 @@ enum WintergraspSpells SPELL_GREATEST_HONOR = 58557, SPELL_ALLIANCE_FLAG = 14268, SPELL_HORDE_FLAG = 14267, + SPELL_GRAB_PASSENGER = 61178, // Reward spells SPELL_VICTORY_REWARD = 56902, diff --git a/src/server/scripts/Northrend/wintergrasp.cpp b/src/server/scripts/Northrend/wintergrasp.cpp index ff21f34d1e2..d765e3363af 100644 --- a/src/server/scripts/Northrend/wintergrasp.cpp +++ b/src/server/scripts/Northrend/wintergrasp.cpp @@ -492,6 +492,33 @@ class spell_wintergrasp_force_building : public SpellScriptLoader } }; +class spell_wintergrasp_grab_passenger : public SpellScriptLoader +{ + public: + spell_wintergrasp_grab_passenger() : SpellScriptLoader("spell_wintergrasp_grab_passenger") { } + + class spell_wintergrasp_grab_passenger_SpellScript : public SpellScript + { + PrepareSpellScript(spell_wintergrasp_grab_passenger_SpellScript); + + void HandleScript(SpellEffIndex effIndex) + { + if (Player* target = GetHitPlayer()) + GetCaster()->GetVehicleKit()->AddPassenger(target); + } + + void Register() + { + OnEffectHitTarget += SpellEffectFn(spell_wintergrasp_grab_passenger_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } + }; + + SpellScript* GetSpellScript() const + { + return new spell_wintergrasp_grab_passenger_SpellScript(); + } +}; + class achievement_wg_didnt_stand_a_chance : public AchievementCriteriaScript { public: @@ -516,6 +543,8 @@ public: } }; + + void AddSC_wintergrasp() { new npc_wg_queue(); @@ -524,6 +553,7 @@ void AddSC_wintergrasp() new npc_wg_quest_giver(); new achievement_wg_didnt_stand_a_chance(); new spell_wintergrasp_force_building(); + new spell_wintergrasp_grab_passenger(); new go_wg_vehicle_teleporter(); } |