diff options
| author | Subv <s.v.h21@hotmail.com> | 2012-09-28 09:44:34 -0400 |
|---|---|---|
| committer | Kandera <KanderaDev@gmail.com> | 2012-09-28 09:44:34 -0400 |
| commit | 431db10e1af05d1a6883370ef92e6cbd13c44636 (patch) | |
| tree | aa2751f4171d46617856c3aa2e4226c157b187fd /src | |
| parent | f2e92b81a30da8150d99644c4f112bd712dbf28e (diff) | |
Core/Battlefield: fix world states on player login for wintergrasp
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Battlefield/Battlefield.h | 6 | ||||
| -rw-r--r-- | src/server/game/Battlefield/BattlefieldMgr.h | 6 | ||||
| -rw-r--r-- | src/server/game/Battlefield/Zones/BattlefieldWG.cpp | 28 | ||||
| -rw-r--r-- | src/server/game/Battlefield/Zones/BattlefieldWG.h | 81 | ||||
| -rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 36 | ||||
| -rwxr-xr-x | src/server/game/Entities/Player/Player.h | 1 | ||||
| -rw-r--r-- | src/server/scripts/Northrend/wintergrasp.cpp | 2 |
7 files changed, 105 insertions, 55 deletions
diff --git a/src/server/game/Battlefield/Battlefield.h b/src/server/game/Battlefield/Battlefield.h index 480aafbeb42..2ca6a2e3f96 100644 --- a/src/server/game/Battlefield/Battlefield.h +++ b/src/server/game/Battlefield/Battlefield.h @@ -211,9 +211,6 @@ class Battlefield : public ZoneScript /// Call this to init the Battlefield virtual bool SetupBattlefield() { return true; } - /// Generate packet which contain all worldstatedata of area - virtual void FillInitialWorldStates(WorldPacket& /*data*/) {} - /// Update data of a worldstate to all players present in zone void SendUpdateWorldState(uint32 field, uint32 value); @@ -330,7 +327,8 @@ class Battlefield : public ZoneScript virtual void DoCompleteOrIncrementAchievement(uint32 /*achievement*/, Player* /*player*/, uint8 /*incrementNumber = 1*/) {}; /// Send all worldstate data to all player in zone. - virtual void SendInitWorldStatesToAll() {}; + virtual void SendInitWorldStatesToAll() = 0; + virtual void FillInitialWorldStates(WorldPacket& /*data*/) = 0; /// Return if we can use mount in battlefield bool CanFlyIn() { return !m_isActive; } diff --git a/src/server/game/Battlefield/BattlefieldMgr.h b/src/server/game/Battlefield/BattlefieldMgr.h index 4ee37e424fd..1ec1f3b1151 100644 --- a/src/server/game/Battlefield/BattlefieldMgr.h +++ b/src/server/game/Battlefield/BattlefieldMgr.h @@ -46,10 +46,10 @@ class BattlefieldMgr // called when player resurrects void HandlePlayerResurrects(Player * player, uint32 areaflag); // return assigned battlefield - Battlefield *GetBattlefieldToZoneId(uint32 zoneid); - Battlefield *GetBattlefieldByBattleId(uint32 battleid); + Battlefield* GetBattlefieldToZoneId(uint32 zoneid); + Battlefield* GetBattlefieldByBattleId(uint32 battleid); - ZoneScript *GetZoneScript(uint32 zoneId); + ZoneScript* GetZoneScript(uint32 zoneId); void AddZone(uint32 zoneid, Battlefield * handle); diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp index 350926388ba..f2c44a0a0da 100644 --- a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp +++ b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp @@ -844,20 +844,13 @@ uint32 BattlefieldWG::GetData(uint32 data) return Battlefield::GetData(data); } -// Method sending worldsate to player -WorldPacket BattlefieldWG::BuildInitWorldStates() -{ - WorldPacket data(SMSG_INIT_WORLD_STATES, (4 + 4 + 4 + 2 + (BuildingsInZone.size() * 8) + (WorkshopsList.size() * 8))); - - data << uint32(m_MapId); - data << uint32(m_ZoneId); - data << uint32(0); - data << uint16(4 + 2 + 4 + BuildingsInZone.size() + WorkshopsList.size()); +void BattlefieldWG::FillInitialWorldStates(WorldPacket& data) +{ data << uint32(BATTLEFIELD_WG_WORLD_STATE_ATTACKER) << uint32(GetAttackerTeam()); data << uint32(BATTLEFIELD_WG_WORLD_STATE_DEFENDER) << uint32(GetDefenderTeam()); - data << uint32(BATTLEFIELD_WG_WORLD_STATE_ACTIVE) << uint32(IsWarTime()? 0 : 1); // Note: cleanup these two, their names look awkward - data << uint32(BATTLEFIELD_WG_WORLD_STATE_SHOW_WORLDSTATE) << uint32(IsWarTime()? 1 : 0); + data << uint32(BATTLEFIELD_WG_WORLD_STATE_ACTIVE) << uint32(IsWarTime() ? 0 : 1); // Note: cleanup these two, their names look awkward + data << uint32(BATTLEFIELD_WG_WORLD_STATE_SHOW_WORLDSTATE) << uint32(IsWarTime() ? 1 : 0); for (uint32 i = 0; i < 2; ++i) data << ClockWorldState[i] << uint32(time(NULL) + (m_Timer / 1000)); @@ -879,17 +872,24 @@ WorldPacket BattlefieldWG::BuildInitWorldStates() void BattlefieldWG::SendInitWorldStatesTo(Player* player) { - WorldPacket data = BuildInitWorldStates(); + WorldPacket data(SMSG_INIT_WORLD_STATES, (4 + 4 + 4 + 2 + (BuildingsInZone.size() * 8) + (WorkshopsList.size() * 8))); + + data << uint32(m_MapId); + data << uint32(m_ZoneId); + data << uint32(0); + data << uint16(10 + BuildingsInZone.size() + WorkshopsList.size()); // Number of fields + + FillInitialWorldStates(data); + player->GetSession()->SendPacket(&data); } void BattlefieldWG::SendInitWorldStatesToAll() { - WorldPacket data = BuildInitWorldStates(); for (uint8 team = 0; team < 2; team++) for (GuidSet::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr) if (Player* player = sObjectAccessor->FindPlayer(*itr)) - player->GetSession()->SendPacket(&data); + SendInitWorldStatesTo(player); } void BattlefieldWG::BrokenWallOrTower(TeamId /*team*/) diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.h b/src/server/game/Battlefield/Zones/BattlefieldWG.h index 11510e1ea98..4d7db760605 100644 --- a/src/server/game/Battlefield/Zones/BattlefieldWG.h +++ b/src/server/game/Battlefield/Zones/BattlefieldWG.h @@ -26,12 +26,6 @@ #include "GroupMgr.h" #include "Battlefield.h" -uint32 const VehNumWorldState[2] = { 3680, 3490 }; -uint32 const MaxVehNumWorldState[2] = { 3681, 3491 }; -uint32 const ClockWorldState[2] = { 3781, 4354 }; -uint32 const WintergraspFaction[3] = { 1732, 1735, 35 }; -float const WintergraspStalkerPos[4] = { 0, 0, 0, 0 }; - class BattlefieldWG; class WintergraspCapturePoint; @@ -404,9 +398,9 @@ class BattlefieldWG : public Battlefield void UpdateVehicleCountWG(); void UpdateCounterVehicle(bool init); - WorldPacket BuildInitWorldStates(); void SendInitWorldStatesTo(Player* player); void SendInitWorldStatesToAll(); + void FillInitialWorldStates(WorldPacket& data); void HandleKill(Player* killer, Unit* victim); void OnUnitDeath(Unit* unit); @@ -421,6 +415,22 @@ class BattlefieldWG : public Battlefield uint8 GetSpiritGraveyardId(uint32 areaId); uint32 GetData(uint32 data); + + static uint32 const VehNumWorldState[]; + static uint32 const MaxVehNumWorldState[]; + static uint32 const ClockWorldState[]; + static uint32 const WintergraspFaction[]; + static float const WintergraspStalkerPos[]; + + static uint8 const WG_MAX_OBJ; + static uint8 const WG_KEEPGAMEOBJECT_MAX; + static uint8 const WG_MAX_TURRET; + static uint8 const WG_MAX_KEEP_NPC; + static uint8 const WG_MAX_OUTSIDE_NPC; + static uint8 const WG_OUTSIDE_ALLIANCE_NPC; + static uint8 const WG_MAX_TELEPORTER; + static uint8 const WG_MAX_WORKSHOP; + protected: bool m_isRelicInteractible; @@ -441,13 +451,20 @@ class BattlefieldWG : public Battlefield GameObject* m_titansRelic; }; -uint8 const WG_MAX_OBJ = 32; -uint8 const WG_KEEPGAMEOBJECT_MAX = 44; -uint8 const WG_MAX_TURRET = 15; -uint8 const WG_MAX_KEEP_NPC = 39; -uint8 const WG_MAX_OUTSIDE_NPC = 14; -uint8 const WG_OUTSIDE_ALLIANCE_NPC = 7; -uint8 const WG_MAX_TELEPORTER = 12; +uint32 const BattlefieldWG::VehNumWorldState[] = { 3680, 3490 }; +uint32 const BattlefieldWG::MaxVehNumWorldState[] = { 3681, 3491 }; +uint32 const BattlefieldWG::ClockWorldState[] = { 3781, 4354 }; +uint32 const BattlefieldWG::WintergraspFaction[] = { 1732, 1735, 35 }; +float const BattlefieldWG::WintergraspStalkerPos[] = { 0, 0, 0, 0 }; + +uint8 const BattlefieldWG::WG_MAX_OBJ = 32; +uint8 const BattlefieldWG::WG_KEEPGAMEOBJECT_MAX = 44; +uint8 const BattlefieldWG::WG_MAX_TURRET = 15; +uint8 const BattlefieldWG::WG_MAX_KEEP_NPC = 39; +uint8 const BattlefieldWG::WG_MAX_OUTSIDE_NPC = 14; +uint8 const BattlefieldWG::WG_OUTSIDE_ALLIANCE_NPC = 7; +uint8 const BattlefieldWG::WG_MAX_TELEPORTER = 12; +uint8 const BattlefieldWG::WG_MAX_WORKSHOP = 6; enum WintergraspGameObjectBuildingType { @@ -578,7 +595,7 @@ struct WintergraspBuildingSpawnData uint32 nameId; }; -const WintergraspBuildingSpawnData WGGameObjectBuilding[WG_MAX_OBJ] = +const WintergraspBuildingSpawnData WGGameObjectBuilding[BattlefieldWG::WG_MAX_OBJ] = { // Wall (Not spawned in db) // Entry WS X Y Z O type NameID @@ -671,7 +688,7 @@ const WintergraspBuildingSpawnData WGGameObjectBuilding[WG_MAX_OBJ] = // 192357 : 1 in sql, 1 in header // 192350 : 1 in sql, 1 in header // 192351 : 1 in sql, 1 in header -const WintergraspObjectPositionData WGKeepGameObject[WG_KEEPGAMEOBJECT_MAX] = +const WintergraspObjectPositionData WGKeepGameObject[BattlefieldWG::WG_KEEPGAMEOBJECT_MAX] = { { 5262.540039f, 3047.949951f, 432.054993f, 3.106650f, 192488, 192501 }, // Flag on tower { 5272.939941f, 2976.550049f, 444.492004f, 3.124120f, 192374, 192416 }, // Flag on Wall Intersect @@ -719,7 +736,7 @@ const WintergraspObjectPositionData WGKeepGameObject[WG_KEEPGAMEOBJECT_MAX] = { 5271.279785f, 2820.159912f, 445.200989f, -3.13286f, 192351, 192416 } // Flag on wall intersect }; -const Position WGTurret[WG_MAX_TURRET] = +const Position WGTurret[BattlefieldWG::WG_MAX_TURRET] = { { 5391.19f, 3060.8f, 419.616f, 1.69557f }, { 5266.75f, 2976.5f, 421.067f, 3.20354f }, @@ -739,7 +756,7 @@ const Position WGTurret[WG_MAX_TURRET] = }; // Here there is all npc keeper spawn point -const WintergraspObjectPositionData WGKeepNPC[WG_MAX_KEEP_NPC] = +const WintergraspObjectPositionData WGKeepNPC[BattlefieldWG::WG_MAX_KEEP_NPC] = { // X Y Z O horde alliance // North East @@ -790,7 +807,7 @@ const WintergraspObjectPositionData WGKeepNPC[WG_MAX_KEEP_NPC] = { 5316.770996f, 2619.430176f, 409.027740f, 5.363431f, BATTLEFIELD_WG_NPC_GUARD_H, BATTLEFIELD_WG_NPC_GUARD_A } // Standing Guard }; -const WintergraspObjectPositionData WGOutsideNPC[WG_MAX_OUTSIDE_NPC] = +const WintergraspObjectPositionData WGOutsideNPC[BattlefieldWG::WG_MAX_OUTSIDE_NPC] = { { 5032.04f, 3681.79f, 362.980f, 4.210f, BATTLEFIELD_WG_NPC_VIERON_BLAZEFEATHER, 0 }, { 5020.71f, 3626.19f, 360.150f, 4.640f, BATTLEFIELD_WG_NPC_HOODOO_MASTER_FU_JIN, 0 }, @@ -817,7 +834,7 @@ struct WintergraspTeleporterData float o; }; -const WintergraspTeleporterData WGPortalDefenderData[WG_MAX_TELEPORTER] = +const WintergraspTeleporterData WGPortalDefenderData[BattlefieldWG::WG_MAX_TELEPORTER] = { // Player teleporter { 190763, 5153.41f, 2901.35f, 409.191f, -0.069f }, @@ -1112,8 +1129,6 @@ const WintergraspTowerCannonData TowerCannon[WG_MAX_TOWER_CANNON] = // *****************WorkShop Data & Element***************** // ********************************************************* -uint8 const WG_MAX_WORKSHOP = 6; - struct WGWorkshopData { uint8 id; @@ -1121,7 +1136,7 @@ struct WGWorkshopData uint32 text; }; -const WGWorkshopData WorkshopsData[WG_MAX_WORKSHOP] = +const WGWorkshopData WorkshopsData[BattlefieldWG::WG_MAX_WORKSHOP] = { // NE {BATTLEFIELD_WG_WORKSHOP_NE, WORLDSTATE_WORKSHOP_NE, BATTLEFIELD_WG_TEXT_WORKSHOP_NAME_NE}, @@ -1215,7 +1230,7 @@ struct BfWGGameObjectBuilding m_WG->SendUpdateWorldState(m_WorldState, m_State); } UpdateCreatureAndGo(); - m_Build->SetUInt32Value(GAMEOBJECT_FACTION, WintergraspFaction[m_Team]); + m_Build->SetUInt32Value(GAMEOBJECT_FACTION, BattlefieldWG::WintergraspFaction[m_Team]); } // Called when associated gameobject is damaged @@ -1402,12 +1417,12 @@ struct BfWGGameObjectBuilding case GO_WINTERGRASP_FORTRESS_TOWER_2: case GO_WINTERGRASP_FORTRESS_TOWER_3: case GO_WINTERGRASP_FORTRESS_TOWER_4: - turret->setFaction(WintergraspFaction[m_WG->GetDefenderTeam()]); + turret->setFaction(BattlefieldWG::WintergraspFaction[m_WG->GetDefenderTeam()]); break; case GO_WINTERGRASP_SHADOWSIGHT_TOWER: case GO_WINTERGRASP_WINTER_S_EDGE_TOWER: case GO_WINTERGRASP_FLAMEWATCH_TOWER: - turret->setFaction(WintergraspFaction[m_WG->GetAttackerTeam()]); + turret->setFaction(BattlefieldWG::WintergraspFaction[m_WG->GetAttackerTeam()]); break; } m_WG->HideNpc(turret); @@ -1428,12 +1443,12 @@ struct BfWGGameObjectBuilding case GO_WINTERGRASP_FORTRESS_TOWER_2: case GO_WINTERGRASP_FORTRESS_TOWER_3: case GO_WINTERGRASP_FORTRESS_TOWER_4: - turret->setFaction(WintergraspFaction[m_WG->GetDefenderTeam()]); + turret->setFaction(BattlefieldWG::WintergraspFaction[m_WG->GetDefenderTeam()]); break; case GO_WINTERGRASP_SHADOWSIGHT_TOWER: case GO_WINTERGRASP_WINTER_S_EDGE_TOWER: case GO_WINTERGRASP_FLAMEWATCH_TOWER: - turret->setFaction(WintergraspFaction[m_WG->GetAttackerTeam()]); + turret->setFaction(BattlefieldWG::WintergraspFaction[m_WG->GetAttackerTeam()]); break; } m_WG->HideNpc(turret); @@ -1494,14 +1509,14 @@ struct BfWGGameObjectBuilding case GO_WINTERGRASP_FORTRESS_TOWER_3: case GO_WINTERGRASP_FORTRESS_TOWER_4: { - creature->setFaction(WintergraspFaction[m_WG->GetDefenderTeam()]); + creature->setFaction(BattlefieldWG::WintergraspFaction[m_WG->GetDefenderTeam()]); break; } case GO_WINTERGRASP_SHADOWSIGHT_TOWER: case GO_WINTERGRASP_WINTER_S_EDGE_TOWER: case GO_WINTERGRASP_FLAMEWATCH_TOWER: { - creature->setFaction(WintergraspFaction[m_WG->GetAttackerTeam()]); + creature->setFaction(BattlefieldWG::WintergraspFaction[m_WG->GetAttackerTeam()]); break; } } @@ -1530,14 +1545,14 @@ struct BfWGGameObjectBuilding case GO_WINTERGRASP_FORTRESS_TOWER_3: case GO_WINTERGRASP_FORTRESS_TOWER_4: { - creature->setFaction(WintergraspFaction[m_WG->GetDefenderTeam()]); + creature->setFaction(BattlefieldWG::WintergraspFaction[m_WG->GetDefenderTeam()]); break; } case GO_WINTERGRASP_SHADOWSIGHT_TOWER: case GO_WINTERGRASP_WINTER_S_EDGE_TOWER: case GO_WINTERGRASP_FLAMEWATCH_TOWER: { - creature->setFaction(WintergraspFaction[m_WG->GetAttackerTeam()]); + creature->setFaction(BattlefieldWG::WintergraspFaction[m_WG->GetAttackerTeam()]); break; } } @@ -1566,7 +1581,7 @@ struct WGWorkshop WGWorkshop(BattlefieldWG* _bf, uint8 _workshopId) { - ASSERT(_bf || _workshopId < WG_MAX_WORKSHOP); + ASSERT(_bf || _workshopId < BattlefieldWG::WG_MAX_WORKSHOP); bf = _bf; workshopId = _workshopId; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index ee5f33fc59c..c0e3e3afc03 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -76,6 +76,7 @@ #include "AccountMgr.h" #include "Battlefield.h" #include "BattlefieldMgr.h" +#include "BattlefieldWG.h" #define ZONE_UPDATE_INTERVAL (1*IN_MILLISECONDS) @@ -9041,6 +9042,7 @@ void Player::SendInitWorldStates(uint32 zoneid, uint32 areaid) uint32 mapid = GetMapId(); OutdoorPvP* pvp = sOutdoorPvPMgr->GetOutdoorPvPToZoneId(zoneid); InstanceScript* instance = GetInstanceScript(); + Battlefield* bf = sBattlefieldMgr->GetBattlefieldToZoneId(zoneid); sLog->outDebug(LOG_FILTER_NETWORKIO, "Sending SMSG_INIT_WORLD_STATES to Map: %u, Zone: %u", mapid, zoneid); @@ -9114,6 +9116,10 @@ void Player::SendInitWorldStates(uint32 zoneid, uint32 areaid) case 4273: // Ulduar NumberOfFields = 10; break; + case 4197: // Wintergrasp + /// Use the max here, and fill with zeros if missing. + NumberOfFields = 10 + BattlefieldWG::WG_MAX_OBJ + BattlefieldWG::WG_MAX_WORKSHOP; + break; default: NumberOfFields = 12; break; @@ -9123,6 +9129,7 @@ void Player::SendInitWorldStates(uint32 zoneid, uint32 areaid) data << uint32(mapid); // mapid data << uint32(zoneid); // zone id data << uint32(areaid); // area id, new 2.1.0 + size_t countPos = data.wpos(); data << uint16(NumberOfFields); // count of uint64 blocks data << uint32(0x8d8) << uint32(0x0); // 1 data << uint32(0x8d7) << uint32(0x0); // 2 @@ -9668,6 +9675,16 @@ void Player::SendInitWorldStates(uint32 zoneid, uint32 areaid) data << uint32(4131) << uint32(0); // 10 WORLDSTATE_CRATES_REVEALED } break; + // Wintergrasp + case 4197: + if (bf && bf->GetTypeId() == BATTLEFIELD_WG) + { + bf->FillInitialWorldStates(data); + break; + } + else + data.put<uint16>(countPos, 12); + // No break here, intended. default: data << uint32(0x914) << uint32(0x0); // 7 data << uint32(0x913) << uint32(0x0); // 8 @@ -9677,6 +9694,7 @@ void Player::SendInitWorldStates(uint32 zoneid, uint32 areaid) } GetSession()->SendPacket(&data); SendBGWeekendWorldStates(); + SendBattlefieldWorldStates(); } void Player::SendBGWeekendWorldStates() @@ -9694,6 +9712,24 @@ void Player::SendBGWeekendWorldStates() } } +void Player::SendBattlefieldWorldStates() +{ + /// Send misc stuff that needs to be sent on every login, like the battle timers. + if (sWorld->getBoolConfig(CONFIG_WINTERGRASP_ENABLE)) + { + if (BattlefieldWG* wg = (BattlefieldWG*)sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG)) + { + if (wg->IsWarTime()) + SendUpdateWorldState(BattlefieldWG::ClockWorldState[1], uint32(time(NULL))); + else // Time to next battle + { + uint32 timer = wg->GetTimer() / 1000; + SendUpdateWorldState(BattlefieldWG::ClockWorldState[1], time(NULL) + timer); + } + } + } +} + uint32 Player::GetXPRestBonus(uint32 xp) { uint32 rested_bonus = (uint32)GetRestBonus(); // xp for each rested bonus diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 0decacd6258..82e91985b04 100755 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -2125,6 +2125,7 @@ class Player : public Unit, public GridObject<Player> void SendUpdateWorldState(uint32 Field, uint32 Value); void SendDirectMessage(WorldPacket* data); void SendBGWeekendWorldStates(); + void SendBattlefieldWorldStates(); void SendAurasForTarget(Unit* target); diff --git a/src/server/scripts/Northrend/wintergrasp.cpp b/src/server/scripts/Northrend/wintergrasp.cpp index 59e9a31c4cf..c58f6fc2dff 100644 --- a/src/server/scripts/Northrend/wintergrasp.cpp +++ b/src/server/scripts/Northrend/wintergrasp.cpp @@ -307,7 +307,7 @@ class go_wg_vehicle_teleporter : public GameObjectScript // Tabulation madness in the hole! for (uint8 i = 0; i < MAX_WINTERGRASP_VEHICLES; i++) if (Creature* vehicleCreature = go->FindNearestCreature(vehiclesList[i], 3.0f, true)) - if (!vehicleCreature->HasAura(SPELL_VEHICLE_TELEPORT) && vehicleCreature->getFaction() == WintergraspFaction[wg->GetDefenderTeam()]) + if (!vehicleCreature->HasAura(SPELL_VEHICLE_TELEPORT) && vehicleCreature->getFaction() == BattlefieldWG::WintergraspFaction[wg->GetDefenderTeam()]) if (Creature* teleportTrigger = vehicleCreature->FindNearestCreature(NPC_WORLD_TRIGGER_LARGE_AOI_NOT_IMMUNE_PC_NPC, 100.0f, true)) teleportTrigger->CastSpell(vehicleCreature, SPELL_VEHICLE_TELEPORT, true); |
