aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKandera <KanderaDev@gmail.com>2012-04-03 13:49:51 -0400
committerKandera <KanderaDev@gmail.com>2012-08-20 13:52:02 -0400
commitd6de7dec342d8e6f1dd316b18341e61705a55053 (patch)
tree06fd6cc768740fe5a4ac0230036d4ae7b7ef7e5e /src
parent2d45e260120445eaef310beed6cdd640919643cb (diff)
Core/Battlefield: few more updates to wintergrasp vehicle stuff.
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Battlefield/Zones/BattlefieldWG.cpp13
-rw-r--r--src/server/scripts/Northrend/wintergrasp.cpp3
2 files changed, 11 insertions, 5 deletions
diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp
index b98e3b52e83..8c68ee3f17e 100644
--- a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp
+++ b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp
@@ -524,7 +524,11 @@ void BattlefieldWG::OnCreatureCreate(Creature* creature)
case NPC_WINTERGRASP_DEMOLISHER:
{
if (!creature->GetCreatorGUID() || !sObjectAccessor->FindPlayer(creature->GetCreatorGUID()))
+ {
+ creature->setDeathState(DEAD);
+ creature->RemoveFromWorld();
return;
+ }
Player* creator = sObjectAccessor->FindPlayer(creature->GetCreatorGUID());
TeamId team = creator->GetTeamId();
@@ -533,7 +537,8 @@ void BattlefieldWG::OnCreatureCreate(Creature* creature)
if (GetData(BATTLEFIELD_WG_DATA_VEHICLE_H) < GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_H))
{
UpdateData(BATTLEFIELD_WG_DATA_VEHICLE_H, 1);
- creature->CastSpell(creature, SPELL_HORDE_FLAG, true);
+ creature->AddAura(SPELL_HORDE_FLAG, creature);
+ creature->setFaction(creator->getFaction());
m_vehicles[team].insert(creature->GetGUID());
UpdateVehicleCountWG();
}
@@ -549,7 +554,8 @@ void BattlefieldWG::OnCreatureCreate(Creature* creature)
if (GetData(BATTLEFIELD_WG_DATA_VEHICLE_A) < GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_A))
{
UpdateData(BATTLEFIELD_WG_DATA_VEHICLE_A, 1);
- creature->CastSpell(creature, SPELL_ALLIANCE_FLAG, true);
+ creature->AddAura(SPELL_ALLIANCE_FLAG,creature);
+ creature->setFaction(creator->getFaction());
m_vehicles[team].insert(creature->GetGUID());
UpdateVehicleCountWG();
}
@@ -561,8 +567,7 @@ void BattlefieldWG::OnCreatureCreate(Creature* creature)
}
}
- if (creature->GetCreatorGUID() && sObjectAccessor->FindUnit(creature->GetCreatorGUID()))
- creature->CastSpell(sObjectAccessor->FindUnit(creature->GetCreatorGUID()), SPELL_GRAB_PASSENGER, true);
+ creature->CastSpell(creator, SPELL_GRAB_PASSENGER, true);
break;
}
}
diff --git a/src/server/scripts/Northrend/wintergrasp.cpp b/src/server/scripts/Northrend/wintergrasp.cpp
index db10e00f13d..61646d0cc16 100644
--- a/src/server/scripts/Northrend/wintergrasp.cpp
+++ b/src/server/scripts/Northrend/wintergrasp.cpp
@@ -46,6 +46,7 @@ enum Spells
SPELL_BUILD_CATAPULT_FORCE = 56664,
SPELL_BUILD_DEMOLISHER_FORCE = 56659,
SPELL_ACTIVATE_CONTROL_ARMS = 49899,
+ SPELL_RIDE_WG_VEHICLE = 60968,
SPELL_VEHICLE_TELEPORT = 49759,
@@ -504,7 +505,7 @@ class spell_wintergrasp_grab_passenger : public SpellScriptLoader
void HandleScript(SpellEffIndex /*effIndex*/)
{
if (Player* target = GetHitPlayer())
- target->EnterVehicle(GetCaster());
+ target->CastSpell(GetCaster(), SPELL_RIDE_WG_VEHICLE, true);
}
void Register()