diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp | 109 | ||||
-rwxr-xr-x | src/server/game/Battlegrounds/Zones/BattlegroundIC.h | 346 | ||||
-rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 36 | ||||
-rwxr-xr-x | src/server/game/Spells/SpellMgr.cpp | 6 | ||||
-rw-r--r-- | src/server/scripts/Northrend/isle_of_conquest.cpp | 11 | ||||
-rwxr-xr-x | src/server/scripts/World/achievement_scripts.cpp | 2 |
6 files changed, 283 insertions, 227 deletions
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp index 61d82317477..97e1a16d172 100755 --- a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp @@ -28,8 +28,8 @@ BattlegroundIC::BattlegroundIC() { - m_BgObjects.resize(GAMEOBJECT_MAX_SPAWNS + MAX_AIRSHIPS + MAX_HANGAR_TELEPORTERS + MAX_TELEPORTERS_SPAWNS); - m_BgCreatures.resize(NPCS_MAX_SPAWNS + MAX_WORKSHOP_SPAWNS + MAX_DOCKS_SPAWNS + MAX_SPIRIT_GUIDES); + m_BgObjects.resize(MAX_NORMAL_GAMEOBJECTS_SPAWNS + MAX_AIRSHIPS_SPAWNS + MAX_HANGAR_TELEPORTERS_SPAWNS + MAX_FORTRESS_TELEPORTERS_SPAWNS); + m_BgCreatures.resize(MAX_NORMAL_NPCS_SPAWNS + MAX_WORKSHOP_SPAWNS + MAX_DOCKS_SPAWNS + MAX_SPIRIT_GUIDES_SPAWNS); m_StartMessageIds[BG_STARTING_EVENT_FIRST] = LANG_BG_IC_START_TWO_MINUTES; m_StartMessageIds[BG_STARTING_EVENT_SECOND] = LANG_BG_IC_START_ONE_MINUTE; @@ -37,19 +37,19 @@ BattlegroundIC::BattlegroundIC() m_StartMessageIds[BG_STARTING_EVENT_FOURTH] = LANG_BG_IC_HAS_BEGUN; for (uint8 i = 0; i < 2; i++) - factionReinforcements[i] = 300; + factionReinforcements[i] = MAX_REINFORCEMENTS; for (uint8 i = 0; i < BG_IC_MAXDOOR; i++) GateStatus[i] = BG_IC_GATE_OK; - closeFortressDoors = 20000; // the doors are closed again... in a special way + closeFortressDoorsTimer = CLOSE_DOORS_TIME; // the doors are closed again... in a special way doorsClosed = false; resourceTimer = IC_RESOURCE_TIME; - for (uint8 i = 0; i < 7; i++) + for (uint8 i = NODE_TYPE_REFINERY; i < MAX_NODE_TYPES; i++) nodePoint[i] = nodePointInitial[i]; - siegeEngineWorkshopTimer = WORKSHOP_UPDATE_TIMER; + siegeEngineWorkshopTimer = WORKSHOP_UPDATE_TIME; gunshipHorde = NULL; gunshipAlliance = NULL; @@ -87,7 +87,7 @@ void BattlegroundIC::SendTransportInit(Player* player) void BattlegroundIC::DoAction(uint32 action, uint64 var) { - if (action != 1) + if (action != ACTION_TELEPORT_PLAYER_TO_TRANSPORT) return; Player* plr = sObjectMgr->GetPlayer(var); @@ -95,15 +95,17 @@ void BattlegroundIC::DoAction(uint32 action, uint64 var) if (!plr || !gunshipAlliance || !gunshipHorde) return; - plr->CastSpell(plr,SPELL_PARACHUTE,true); + plr->CastSpell(plr,SPELL_PARACHUTE,true); // this must be changed, there is a trigger in each transport that casts the spell. plr->CastSpell(plr,SPELL_SLOW_FALL,true); plr->SetTransport(plr->GetTeamId() == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde); - plr->m_movementInfo.t_pos.m_positionX = 7.305609f; - plr->m_movementInfo.t_pos.m_positionY = -0.095246f; - plr->m_movementInfo.t_pos.m_positionZ = 34.51022f; + + plr->m_movementInfo.t_pos.m_positionX = TransportMovementInfo.GetPositionX(); + plr->m_movementInfo.t_pos.m_positionY = TransportMovementInfo.GetPositionY(); + plr->m_movementInfo.t_pos.m_positionZ = TransportMovementInfo.GetPositionZ(); plr->m_movementInfo.t_guid = (plr->GetTeamId() == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde)->GetGUID(); - plr->TeleportTo(GetMapId(),661,-1244,288,0,TELE_TO_NOT_LEAVE_TRANSPORT); + + plr->TeleportTo(GetMapId(),TeleportToTransportPosition.GetPositionX(),TeleportToTransportPosition.GetPositionY(),TeleportToTransportPosition.GetPositionZ(),TeleportToTransportPosition.GetOrientation(),TELE_TO_NOT_LEAVE_TRANSPORT); } void BattlegroundIC::Update(uint32 diff) @@ -115,7 +117,7 @@ void BattlegroundIC::Update(uint32 diff) if (!doorsClosed) { - if (closeFortressDoors <= diff) + if (closeFortressDoorsTimer <= diff) { GetBGObject(BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01)->RemoveFromWorld(); GetBGObject(BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01)->RemoveFromWorld(); @@ -124,10 +126,10 @@ void BattlegroundIC::Update(uint32 diff) GetBGObject(BG_IC_GO_HORDE_GATE_1)->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED); // Horde door doorsClosed = true; - } else closeFortressDoors -= diff; + } else closeFortressDoorsTimer -= diff; } - for (uint8 i = 0; i < MAX_NODE_TYPES; i++) + for (uint8 i = NODE_TYPE_REFINERY; i < MAX_NODE_TYPES; i++) { if (nodePoint[i].nodeType == NODE_TYPE_DOCKS) { @@ -156,7 +158,7 @@ void BattlegroundIC::Update(uint32 diff) } } - docksTimer = DOCKS_UPDATE_TIMER; + docksTimer = DOCKS_UPDATE_TIME; } else nodePoint[i].timer -= diff; } } @@ -193,7 +195,7 @@ void BattlegroundIC::Update(uint32 diff) demolisher->Respawn(true); } } - siegeEngineWorkshopTimer = WORKSHOP_UPDATE_TIMER; + siegeEngineWorkshopTimer = WORKSHOP_UPDATE_TIME; } else siegeEngineWorkshopTimer -= diff; } } @@ -227,7 +229,7 @@ void BattlegroundIC::Update(uint32 diff) SendMessage2ToAll(LANG_BG_IC_TEAM_HAS_TAKEN_NODE,CHAT_MSG_BG_SYSTEM_NEUTRAL,NULL,(nodePoint[i].faction == TEAM_ALLIANCE ? LANG_BG_IC_ALLIANCE : LANG_BG_IC_HORDE),nodePoint[i].string); nodePoint[i].needChange = false; - nodePoint[i].timer = 60000; + nodePoint[i].timer = BANNER_STATE_CHANGE_TIME; } else nodePoint[i].timer -= diff; } } @@ -240,7 +242,7 @@ void BattlegroundIC::Update(uint32 diff) nodePoint[i].nodeState == NODE_STATE_CONTROLLED_H) { factionReinforcements[nodePoint[i].faction] += 1; - RewardHonorToTeam(12,nodePoint[i].faction == TEAM_ALLIANCE ? ALLIANCE : HORDE); + RewardHonorToTeam(RESOURCE_HONOR_AMOUNT,nodePoint[i].faction == TEAM_ALLIANCE ? ALLIANCE : HORDE); UpdateWorldState((nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_ALLIANCE_RENFORT : BG_IC_HORDE_RENFORT), factionReinforcements[nodePoint[i].faction]); } } @@ -268,7 +270,7 @@ void BattlegroundIC::StartingEventOpenDoors() DoorOpen(BG_IC_GO_DOODAD_VR_PORTCULLIS01_1); DoorOpen(BG_IC_GO_DOODAD_VR_PORTCULLIS01_2); - for (uint8 i = 0; i < MAX_TELEPORTERS_SPAWNS; i++) + for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTERS_SPAWNS; i++) { if (!AddObject(BG_IC_Teleporters[i].type,BG_IC_Teleporters[i].entry, BG_IC_Teleporters[i].x,BG_IC_Teleporters[i].y, @@ -349,7 +351,7 @@ void BattlegroundIC::FillInitialWorldStates(WorldPacket& data) data << uint32(BG_IC_ALLIANCE_RENFORT) << uint32(factionReinforcements[TEAM_ALLIANCE]); data << uint32(BG_IC_HORDE_RENFORT) << uint32(factionReinforcements[TEAM_HORDE]); - for (uint8 i = 0; i < 6; i++) + for (uint8 i = 0; i < MAX_FORTRESS_GATES_SPAWNS; i++) { uint32 uws = GetWorldStateFromGateEntry(BG_IC_ObjSpawnlocs[i].entry,(GateStatus[GetGateIDFromEntry(BG_IC_ObjSpawnlocs[i].entry)] == BG_IC_GATE_DESTROYED ? true : false)); data << uint32(uws) << uint32(1); @@ -361,7 +363,7 @@ void BattlegroundIC::FillInitialWorldStates(WorldPacket& data) bool BattlegroundIC::SetupBattleground() { - for (uint8 i = 0; i < GAMEOBJECT_MAX_SPAWNS; i++) + for (uint8 i = 0; i < MAX_NORMAL_GAMEOBJECTS_SPAWNS; i++) { if (!AddObject(BG_IC_ObjSpawnlocs[i].type,BG_IC_ObjSpawnlocs[i].entry, BG_IC_ObjSpawnlocs[i].x,BG_IC_ObjSpawnlocs[i].y, @@ -373,7 +375,7 @@ bool BattlegroundIC::SetupBattleground() } } - for (uint8 i = 0; i < NPCS_MAX_SPAWNS; i++) + for (uint8 i = 0; i < MAX_NORMAL_NPCS_SPAWNS; i++) { if (!AddCreature(BG_IC_NpcSpawnlocs[i].entry,BG_IC_NpcSpawnlocs[i].type,BG_IC_NpcSpawnlocs[i].team, BG_IC_NpcSpawnlocs[i].x,BG_IC_NpcSpawnlocs[i].y, @@ -394,8 +396,8 @@ bool BattlegroundIC::SetupBattleground() return false; } - gunshipHorde = CreateTransport(GO_HORDE_GUNSHIP,120000); - gunshipAlliance = CreateTransport(GO_ALLIANCE_GUNSHIP,120000); + gunshipHorde = CreateTransport(GO_HORDE_GUNSHIP,TRANSPORT_PERIOD_TIME); + gunshipAlliance = CreateTransport(GO_ALLIANCE_GUNSHIP,TRANSPORT_PERIOD_TIME); if (!gunshipAlliance || !gunshipHorde) { @@ -431,19 +433,19 @@ void BattlegroundIC::HandleKillUnit(Creature *unit, Player* killer) uint32 entry = unit->GetEntry(); if (entry == NPC_HIGH_COMMANDER_HALFORD_WYRMBANE) { - RewardHonorToTeam(500,HORDE); + RewardHonorToTeam(WINNER_HONOR_AMOUNT,HORDE); EndBattleground(HORDE); } else if (entry == NPC_OVERLORD_AGMAR) { - RewardHonorToTeam(500,ALLIANCE); + RewardHonorToTeam(WINNER_HONOR_AMOUNT,ALLIANCE); EndBattleground(ALLIANCE); } //Achievement Mowed Down // TO-DO: This should be done on the script of each vehicle of the BG. if (unit->IsVehicle()) - killer->CastSpell(killer,68357,true); + killer->CastSpell(killer,SPELL_DESTROYED_VEHICLE_ACHIEVEMENT,true); } void BattlegroundIC::HandleKillPlayer(Player* player, Player* killer) @@ -513,9 +515,10 @@ void BattlegroundIC::EventPlayerClickedOnFlag(Player* player, GameObject* target nodePoint[i].gameobject_entry = nextBanner; // this is just needed if the next banner is grey - if (nodePoint[i].banners[1] == nextBanner || nodePoint[i].banners[3] == nextBanner) + if (nodePoint[i].banners[BANNER_A_CONTESTED] == nextBanner || + nodePoint[i].banners[BANNER_H_CONTESTED] == nextBanner) { - nodePoint[i].timer = 60000; // 1 minute for last change (real faction banner) + nodePoint[i].timer = BANNER_STATE_CHANGE_TIME; // 1 minute for last change (real faction banner) nodePoint[i].needChange = true; RealocatePlayers(nodePoint[i].nodeType); @@ -531,9 +534,11 @@ void BattlegroundIC::EventPlayerClickedOnFlag(Player* player, GameObject* target SendMessage2ToAll(LANG_BG_IC_TEAM_ASSAULTED_NODE_1,CHAT_MSG_BG_SYSTEM_NEUTRAL,player,nodePoint[i].string); SendMessage2ToAll(LANG_BG_IC_TEAM_ASSAULTED_NODE_2,CHAT_MSG_BG_SYSTEM_NEUTRAL,player,nodePoint[i].string, (player->GetTeamId() == TEAM_ALLIANCE ? LANG_BG_IC_ALLIANCE : LANG_BG_IC_HORDE)); HandleContestedNodes(&nodePoint[i]); - } else if (nextBanner == nodePoint[i].banners[0] || nextBanner == nodePoint[i].banners[2]) // if we are going to spawn the definitve faction banner, we dont need the timer anymore + } else if (nextBanner == nodePoint[i].banners[BANNER_A_CONTROLLED] || + nextBanner == nodePoint[i].banners[BANNER_H_CONTROLLED]) + // if we are going to spawn the definitve faction banner, we dont need the timer anymore { - nodePoint[i].timer = 60000; + nodePoint[i].timer = BANNER_STATE_CHANGE_TIME; nodePoint[i].needChange = false; SendMessage2ToAll(LANG_BG_IC_TEAM_DEFENDED_NODE,CHAT_MSG_BG_SYSTEM_NEUTRAL,player,nodePoint[i].string); HandleCapturedNodes(&nodePoint[i],true); @@ -569,13 +574,13 @@ void BattlegroundIC::EventPlayerClickedOnFlag(Player* player, GameObject* target void BattlegroundIC::UpdateNodeWorldState(ICNodePoint* nodePoint) { //updating worldstate - if (nodePoint->gameobject_entry == nodePoint->banners[0]) + if (nodePoint->gameobject_entry == nodePoint->banners[BANNER_A_CONTROLLED]) nodePoint->nodeState = NODE_STATE_CONTROLLED_A; - else if (nodePoint->gameobject_entry == nodePoint->banners[1]) + else if (nodePoint->gameobject_entry == nodePoint->banners[BANNER_A_CONTESTED]) nodePoint->nodeState = NODE_STATE_CONFLICT_A; - else if (nodePoint->gameobject_entry == nodePoint->banners[2]) + else if (nodePoint->gameobject_entry == nodePoint->banners[BANNER_H_CONTROLLED]) nodePoint->nodeState = NODE_STATE_CONTROLLED_H; - else if (nodePoint->gameobject_entry == nodePoint->banners[3]) + else if (nodePoint->gameobject_entry == nodePoint->banners[BANNER_H_CONTESTED]) nodePoint->nodeState = NODE_STATE_CONFLICT_H; uint32 worldstate = nodePoint->worldStates[nodePoint->nodeState]; @@ -592,19 +597,19 @@ uint32 BattlegroundIC::GetNextBanner(ICNodePoint* nodePoint, uint32 team, bool r // this is only used in the update map function if (returnDefinitve) // here is a special case, here we must return the definitve faction banner after the grey banner was spawned 1 minute - return nodePoint->banners[(team == TEAM_ALLIANCE ? 0 : 2)]; + return nodePoint->banners[(team == TEAM_ALLIANCE ? BANNER_A_CONTROLLED : BANNER_H_CONTROLLED)]; // there were no changes, this point has never been captured by any faction or at least clicked if (nodePoint->last_entry == 0) // 1 returns the CONTESTED ALLIANCE BANNER, 3 returns the HORDE one - return nodePoint->banners[(team == TEAM_ALLIANCE ? 1 : 3)]; + return nodePoint->banners[(team == TEAM_ALLIANCE ? BANNER_A_CONTESTED : BANNER_H_CONTESTED)]; // If the actual banner is the definitive faction banner, we must return the grey banner of the player's faction - if (nodePoint->gameobject_entry == nodePoint->banners[0] || nodePoint->gameobject_entry == nodePoint->banners[2]) - return nodePoint->banners[(team == TEAM_ALLIANCE ? 1 : 3)]; + if (nodePoint->gameobject_entry == nodePoint->banners[BANNER_A_CONTROLLED] || nodePoint->gameobject_entry == nodePoint->banners[BANNER_H_CONTROLLED]) + return nodePoint->banners[(team == TEAM_ALLIANCE ? BANNER_A_CONTESTED : BANNER_H_CONTESTED)]; // If the actual banner is the grey faction banner, we must return the previous banner - if (nodePoint->gameobject_entry == nodePoint->banners[1] || nodePoint->banners[3]) + if (nodePoint->gameobject_entry == nodePoint->banners[BANNER_A_CONTESTED] || nodePoint->banners[BANNER_H_CONTESTED]) return nodePoint->last_entry; // we should never be here... @@ -642,7 +647,7 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture) if (!gunshipAlliance || !gunshipHorde) break; - for (uint8 u = 0; u < 3; u++) + for (uint8 u = 0; u < MAX_HANGAR_TELEPORTERS_SPAWNS; u++) { uint8 type = BG_IC_GO_HANGAR_TELEPORTER_1+u; AddObject(type, (nodePoint->faction == TEAM_ALLIANCE ? GO_ALLIANCE_GUNSHIP_PORTAL : GO_HORDE_GUNSHIP_PORTAL), @@ -670,8 +675,8 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture) if (recapture) break; - if (docksTimer < DOCKS_UPDATE_TIMER) - docksTimer = DOCKS_UPDATE_TIMER; + if (docksTimer < DOCKS_UPDATE_TIME) + docksTimer = DOCKS_UPDATE_TIME; // we must del opposing faction vehicles when the node is captured (unused ones) for (uint8 i = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_1_H : BG_IC_NPC_GLAIVE_THROWER_1_A); i < (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_2_H : BG_IC_NPC_GLAIVE_THROWER_2_A); i++) @@ -699,14 +704,14 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture) } // spawning glaive throwers - for (uint8 i = 0; i < 2; i++) + for (uint8 i = 0; i < MAX_GLAIVE_THROWERS_SPAWNS_PER_FACTION; i++) { uint8 type = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_1_A : BG_IC_NPC_GLAIVE_THROWER_1_H)+i; if (GetBGCreature(type) && GetBGCreature(type)->isAlive()) continue; - if (AddCreature(NPC_GLAIVE_THROWER,type,nodePoint->faction, + if (AddCreature(nodePoint->faction == TEAM_ALLIANCE ? NPC_GLAIVE_THROWER_A : NPC_GLAIVE_THROWER_H,type,nodePoint->faction, BG_IC_DocksVehiclesGlaives[i].GetPositionX(),BG_IC_DocksVehiclesGlaives[i].GetPositionY(), BG_IC_DocksVehiclesGlaives[i].GetPositionZ(),BG_IC_DocksVehiclesGlaives[i].GetOrientation(), RESPAWN_ONE_DAY)) @@ -714,7 +719,7 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture) } // spawning catapults - for (uint8 i = 0; i < 4; i++) + for (uint8 i = 0; i < MAX_CATAPULTS_SPAWNS_PER_FACTION; i++) { uint8 type = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_CATAPULT_1_A : BG_IC_NPC_CATAPULT_1_H)+i; @@ -730,15 +735,14 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture) break; case BG_IC_GO_WORKSHOP_BANNER: { - if (siegeEngineWorkshopTimer < WORKSHOP_UPDATE_TIMER) - siegeEngineWorkshopTimer = WORKSHOP_UPDATE_TIMER; + if (siegeEngineWorkshopTimer < WORKSHOP_UPDATE_TIME) + siegeEngineWorkshopTimer = WORKSHOP_UPDATE_TIME; if (!recapture) { // we must del opposing faction vehicles when the node is captured (unused ones) for (uint8 i = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_1_H : BG_IC_NPC_DEMOLISHER_1_A); i < (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_4_H : BG_IC_NPC_DEMOLISHER_4_A); i++) { - //uint8 type = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_1_H : BG_IC_NPC_DEMOLISHER_1_A)+i; if (Creature* demolisher = GetBGCreature(i)) { if (Vehicle* vehicleDemolisher = demolisher->GetVehicleKit()) @@ -750,7 +754,7 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture) } } - for (uint8 i = 0; i < 4; i++) + for (uint8 i = 0; i < MAX_DEMOLISHERS_SPAWNS_PER_FACTION; i++) { uint8 type = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_1_A : BG_IC_NPC_DEMOLISHER_1_H)+i; @@ -792,7 +796,8 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture) } } } - for (uint8 i = 0; i < 2; i++) + + for (uint8 i = 0; i < MAX_WORKSHOP_BOMBS_SPAWNS_PER_FACTION; i++) { AddObject(BG_IC_GO_SEAFORIUM_BOMBS_1+i,GO_SEAFORIUM_BOMBS, workshopBombs[i].GetPositionX(),workshopBombs[i].GetPositionY(), diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundIC.h b/src/server/game/Battlegrounds/Zones/BattlegroundIC.h index f57b85d92cb..028e593b2d7 100755 --- a/src/server/game/Battlegrounds/Zones/BattlegroundIC.h +++ b/src/server/game/Battlegrounds/Zones/BattlegroundIC.h @@ -37,7 +37,8 @@ enum creaturesIC NPC_DEMOLISHER = 34775, NPC_SIEGE_ENGINE_H = 35069, NPC_SIEGE_ENGINE_A = 34776, - NPC_GLAIVE_THROWER = 34802, + NPC_GLAIVE_THROWER_A = 34802, + NPC_GLAIVE_THROWER_H = 35273, NPC_CATAPULT = 34793, NPC_HORDE_GUNSHIP_CANNON = 34935, NPC_ALLIANCE_GUNSHIP_CANNON = 34929 @@ -181,16 +182,22 @@ enum gameobjectsIC GO_ALLIANCE_GUNSHIP = 195121, }; -#define NPCS_MAX_SPAWNS BG_IC_NPC_KEEP_CANNON_25+1 -#define MAX_WORKSHOP_SPAWNS 10 -#define MAX_DOCKS_SPAWNS 12 -#define MAX_SPIRIT_GUIDES 7 -#define MAX_HANGAR_TELEPORTERS 3 -#define MAX_AIRSHIPS 2 +#define MAX_REINFORCEMENTS 300 -#define WORKSHOP_UPDATE_TIMER 180000 // 3 minutes -#define DOCKS_UPDATE_TIMER 180000 // not sure if it is 3 minutes -#define IC_RESOURCE_TIME 45000 // not sure, need more research +enum Times +{ + WORKSHOP_UPDATE_TIME = 180000, // 3 minutes + DOCKS_UPDATE_TIME = 180000, // not sure if it is 3 minutes + IC_RESOURCE_TIME = 45000, // not sure, need more research + CLOSE_DOORS_TIME = 20000, + BANNER_STATE_CHANGE_TIME = 60000, + TRANSPORT_PERIOD_TIME = 120000 +}; + +enum Actions +{ + ACTION_TELEPORT_PLAYER_TO_TRANSPORT = 1 +}; struct ICNpc { @@ -203,6 +210,135 @@ struct ICNpc float o; }; +enum BG_IC_GOs +{ + BG_IC_GO_ALLIANCE_BANNER = 0, + + BG_IC_GO_ALLIANCE_GATE_1, + BG_IC_GO_ALLIANCE_GATE_2, + BG_IC_GO_ALLIANCE_GATE_3, + + BG_IC_GO_BENCH_1, + BG_IC_GO_BENCH_2, + BG_IC_GO_BENCH_3, + BG_IC_GO_BENCH_4, + BG_IC_GO_BENCH_5, + + BG_IC_GO_BONFIRE_1, + BG_IC_GO_BONFIRE_2, + BG_IC_GO_BONFIRE_3, + BG_IC_GO_BONFIRE_4, + BG_IC_GO_BONFIRE_5, + BG_IC_GO_BONFIRE_6, + + BG_IC_GO_BRAZIER_1, + BG_IC_GO_BRAZIER_2, + BG_IC_GO_BRAZIER_3, + BG_IC_GO_BRAZIER_4, + + BG_IC_GO_CHAIR_1, + BG_IC_GO_CHAIR_2, + BG_IC_GO_CHAIR_3_1, + BG_IC_GO_CHAIR_4, + BG_IC_GO_CHAIR_5, + BG_IC_GO_CHAIR_6_1, + BG_IC_GO_CHAIR_7, + BG_IC_GO_CHAIR_3_2, + BG_IC_GO_CHAIR_6_2, + BG_IC_GO_CHAIR_8_1, + BG_IC_GO_CHAIR_8_2, + BG_IC_GO_CHAIR_9, + + BG_IC_GO_DOCKS_BANNER, + + BG_IC_GO_DOODAD_HU_PORTCULLIS01_1, + BG_IC_GO_DOODAD_HU_PORTCULLIS01_2, + + BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01, + + BG_IC_GO_DOODAD_PORTCULLISACTIVE01, + + BG_IC_GO_DOODAD_PORTCULLISACTIVE02, + + BG_IC_GO_DOODAD_VR_PORTCULLIS01_1, + BG_IC_GO_DOODAD_VR_PORTCULLIS01_2, + + BG_IC_GO_FLAGPOLE_1_1, + BG_IC_GO_FLAGPOLE_2_1, + BG_IC_GO_FLAGPOLE_2_2, + BG_IC_GO_FLAGPOLE_1_2, + BG_IC_GO_FLAGPOLE_1_3, + BG_IC_GO_FLAGPOLE_1_4, + BG_IC_GO_FLAGPOLE_1_5, + + BG_IC_GO_HANGAR_BANNER, + + BG_IC_GO_HORDE_BANNER, + + BG_IC_GO_HORDE_GATE_1, + BG_IC_GO_HORDE_GATE_2, + BG_IC_GO_HORDE_GATE_3, + + BG_IC_GO_HORDE_KEEP_PORTCULLIS, + + BG_IC_GO_QUARRY_BANNER, + + BG_IC_GO_STOVE_1_1, + BG_IC_GO_STOVE_2_1, + BG_IC_GO_STOVE_1_2, + BG_IC_GO_STOVE_2_2, + + BG_IC_GO_WORKSHOP_BANNER, + + BG_IC_GO_REFINERY_BANNER, + + BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_1, + BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_2, + BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_3, + BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_4, + + BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_1, + BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_2, + BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_3, + BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_4, + + BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01, + + BG_IC_GO_SEAFORIUM_BOMBS_1, + BG_IC_GO_SEAFORIUM_BOMBS_2, + + BG_IC_GO_HANGAR_TELEPORTER_1, + BG_IC_GO_HANGAR_TELEPORTER_2, + BG_IC_GO_HANGAR_TELEPORTER_3, + + BG_IC_GO_TELEPORTER_1_1, + BG_IC_GO_TELEPORTER_1_2, + BG_IC_GO_TELEPORTER_2_1, + BG_IC_GO_TELEPORTER_3_1, + BG_IC_GO_TELEPORTER_2_2, + BG_IC_GO_TELEPORTER_4_1, + BG_IC_GO_TELEPORTER_3_2, + BG_IC_GO_TELEPORTER_3_3, + BG_IC_GO_TELEPORTER_4_2, + BG_IC_GO_TELEPORTER_4_3, + BG_IC_GO_TELEPORTER_1_3, + BG_IC_GO_TELEPORTER_2_3, + + BG_IC_GO_TELEPORTER_EFFECTS_A_1, + BG_IC_GO_TELEPORTER_EFFECTS_A_2, + BG_IC_GO_TELEPORTER_EFFECTS_A_3, + BG_IC_GO_TELEPORTER_EFFECTS_A_4, + BG_IC_GO_TELEPORTER_EFFECTS_A_5, + BG_IC_GO_TELEPORTER_EFFECTS_A_6, + + BG_IC_GO_TELEPORTER_EFFECTS_H_1, + BG_IC_GO_TELEPORTER_EFFECTS_H_2, + BG_IC_GO_TELEPORTER_EFFECTS_H_3, + BG_IC_GO_TELEPORTER_EFFECTS_H_4, + BG_IC_GO_TELEPORTER_EFFECTS_H_5, + BG_IC_GO_TELEPORTER_EFFECTS_H_6, +}; + enum BG_IC_NPCs { BG_IC_NPC_OVERLORD_AGMAR = 0, @@ -277,7 +413,37 @@ enum BG_IC_NPCs BG_IC_NPC_SPIRIT_GUIDE_6, BG_IC_NPC_SPIRIT_GUIDE_7, }; -const ICNpc BG_IC_NpcSpawnlocs[NPCS_MAX_SPAWNS]= + +enum BannersTypes +{ + BANNER_A_CONTROLLED, + BANNER_A_CONTESTED, + BANNER_H_CONTROLLED, + BANNER_H_CONTESTED +}; + +enum BG_IC_MaxSpawns +{ + MAX_NORMAL_GAMEOBJECTS_SPAWNS = BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01+1, + MAX_NORMAL_NPCS_SPAWNS = BG_IC_NPC_KEEP_CANNON_25+1, + MAX_WORKSHOP_SPAWNS = 10, + MAX_DOCKS_SPAWNS = 12, + MAX_SPIRIT_GUIDES_SPAWNS = 7, + MAX_HANGAR_TELEPORTERS_SPAWNS = 3, + MAX_AIRSHIPS_SPAWNS = 2, + MAX_FORTRESS_GATES_SPAWNS = 6, + MAX_FORTRESS_TELEPORTERS_SPAWNS = 24, + + // docks + MAX_GLAIVE_THROWERS_SPAWNS_PER_FACTION = 2, + MAX_CATAPULTS_SPAWNS_PER_FACTION = 4, + + // workshop + MAX_DEMOLISHERS_SPAWNS_PER_FACTION = 4, + MAX_WORKSHOP_BOMBS_SPAWNS_PER_FACTION = 2 +}; + +const ICNpc BG_IC_NpcSpawnlocs[MAX_NORMAL_NPCS_SPAWNS]= { {BG_IC_NPC_OVERLORD_AGMAR,NPC_OVERLORD_AGMAR,TEAM_HORDE,1295.44f,-765.733f,70.0541f,0.0f},//Overlord Agmar 1 {BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE,NPC_HIGH_COMMANDER_HALFORD_WYRMBANE,TEAM_ALLIANCE,224.983f,-831.573f,60.9034f,0.0f},//High Commander Halford Wyrmbane 2 @@ -349,137 +515,6 @@ const Position BG_IC_HangarTeleporters[3] = {672.283f,-1156.99f,133.706f,1.37881f}, // Gunship Portal }; -#define GAMEOBJECT_MAX_SPAWNS BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01+1 - -enum BG_IC_GOs -{ - BG_IC_GO_ALLIANCE_BANNER = 0, - - BG_IC_GO_ALLIANCE_GATE_1, - BG_IC_GO_ALLIANCE_GATE_2, - BG_IC_GO_ALLIANCE_GATE_3, - - BG_IC_GO_BENCH_1, - BG_IC_GO_BENCH_2, - BG_IC_GO_BENCH_3, - BG_IC_GO_BENCH_4, - BG_IC_GO_BENCH_5, - - BG_IC_GO_BONFIRE_1, - BG_IC_GO_BONFIRE_2, - BG_IC_GO_BONFIRE_3, - BG_IC_GO_BONFIRE_4, - BG_IC_GO_BONFIRE_5, - BG_IC_GO_BONFIRE_6, - - BG_IC_GO_BRAZIER_1, - BG_IC_GO_BRAZIER_2, - BG_IC_GO_BRAZIER_3, - BG_IC_GO_BRAZIER_4, - - BG_IC_GO_CHAIR_1, - BG_IC_GO_CHAIR_2, - BG_IC_GO_CHAIR_3_1, - BG_IC_GO_CHAIR_4, - BG_IC_GO_CHAIR_5, - BG_IC_GO_CHAIR_6_1, - BG_IC_GO_CHAIR_7, - BG_IC_GO_CHAIR_3_2, - BG_IC_GO_CHAIR_6_2, - BG_IC_GO_CHAIR_8_1, - BG_IC_GO_CHAIR_8_2, - BG_IC_GO_CHAIR_9, - - BG_IC_GO_DOCKS_BANNER, - - BG_IC_GO_DOODAD_HU_PORTCULLIS01_1, - BG_IC_GO_DOODAD_HU_PORTCULLIS01_2, - - BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01, - - BG_IC_GO_DOODAD_PORTCULLISACTIVE01, - - BG_IC_GO_DOODAD_PORTCULLISACTIVE02, - - BG_IC_GO_DOODAD_VR_PORTCULLIS01_1, - BG_IC_GO_DOODAD_VR_PORTCULLIS01_2, - - BG_IC_GO_FLAGPOLE_1_1, - BG_IC_GO_FLAGPOLE_2_1, - BG_IC_GO_FLAGPOLE_2_2, - BG_IC_GO_FLAGPOLE_1_2, - BG_IC_GO_FLAGPOLE_1_3, - BG_IC_GO_FLAGPOLE_1_4, - BG_IC_GO_FLAGPOLE_1_5, - - BG_IC_GO_HANGAR_BANNER, - - BG_IC_GO_HORDE_BANNER, - - BG_IC_GO_HORDE_GATE_1, - BG_IC_GO_HORDE_GATE_2, - BG_IC_GO_HORDE_GATE_3, - - BG_IC_GO_HORDE_KEEP_PORTCULLIS, - - BG_IC_GO_QUARRY_BANNER, - - BG_IC_GO_STOVE_1_1, - BG_IC_GO_STOVE_2_1, - BG_IC_GO_STOVE_1_2, - BG_IC_GO_STOVE_2_2, - - BG_IC_GO_WORKSHOP_BANNER, - - BG_IC_GO_REFINERY_BANNER, - - BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_1, - BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_2, - BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_3, - BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_4, - - BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_1, - BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_2, - BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_3, - BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_4, - - BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01, - - BG_IC_GO_SEAFORIUM_BOMBS_1, - BG_IC_GO_SEAFORIUM_BOMBS_2, - - BG_IC_GO_HANGAR_TELEPORTER_1, - BG_IC_GO_HANGAR_TELEPORTER_2, - BG_IC_GO_HANGAR_TELEPORTER_3, - - BG_IC_GO_TELEPORTER_1_1, - BG_IC_GO_TELEPORTER_1_2, - BG_IC_GO_TELEPORTER_2_1, - BG_IC_GO_TELEPORTER_3_1, - BG_IC_GO_TELEPORTER_2_2, - BG_IC_GO_TELEPORTER_4_1, - BG_IC_GO_TELEPORTER_3_2, - BG_IC_GO_TELEPORTER_3_3, - BG_IC_GO_TELEPORTER_4_2, - BG_IC_GO_TELEPORTER_4_3, - BG_IC_GO_TELEPORTER_1_3, - BG_IC_GO_TELEPORTER_2_3, - - BG_IC_GO_TELEPORTER_EFFECTS_A_1, - BG_IC_GO_TELEPORTER_EFFECTS_A_2, - BG_IC_GO_TELEPORTER_EFFECTS_A_3, - BG_IC_GO_TELEPORTER_EFFECTS_A_4, - BG_IC_GO_TELEPORTER_EFFECTS_A_5, - BG_IC_GO_TELEPORTER_EFFECTS_A_6, - - BG_IC_GO_TELEPORTER_EFFECTS_H_1, - BG_IC_GO_TELEPORTER_EFFECTS_H_2, - BG_IC_GO_TELEPORTER_EFFECTS_H_3, - BG_IC_GO_TELEPORTER_EFFECTS_H_4, - BG_IC_GO_TELEPORTER_EFFECTS_H_5, - BG_IC_GO_TELEPORTER_EFFECTS_H_6, -}; - struct ICGo { uint32 type; @@ -490,8 +525,7 @@ struct ICGo float o; }; -#define MAX_TELEPORTERS_SPAWNS 24 -const ICGo BG_IC_Teleporters[MAX_TELEPORTERS_SPAWNS] = +const ICGo BG_IC_Teleporters[MAX_FORTRESS_TELEPORTERS_SPAWNS] = { {BG_IC_GO_TELEPORTER_1_1,GO_TELEPORTER_1,1143.25f,-779.599f,48.629f,1.64061f}, // Teleporter {BG_IC_GO_TELEPORTER_1_2,GO_TELEPORTER_1,1236.53f,-669.415f,48.2729f,0.104719f}, // Teleporter @@ -521,7 +555,7 @@ const ICGo BG_IC_Teleporters[MAX_TELEPORTERS_SPAWNS] = {BG_IC_GO_TELEPORTER_EFFECTS_H_6,GO_TELEPORTER_EFFECTS_H,1235.6f,-683.806f,49.3028f,-3.07177f}, // Teleporter Effects (Horde) }; -const ICGo BG_IC_ObjSpawnlocs[GAMEOBJECT_MAX_SPAWNS] = +const ICGo BG_IC_ObjSpawnlocs[MAX_NORMAL_GAMEOBJECTS_SPAWNS] = { {BG_IC_GO_ALLIANCE_GATE_1,GO_ALLIANCE_GATE_1,351.615f,-762.75f,48.9162f,-1.5708f}, // Alliance Gate || Left {BG_IC_GO_ALLIANCE_GATE_2,GO_ALLIANCE_GATE_2,351.024f,-903.326f,48.9247f,1.5708f}, // Alliance Gate || Right @@ -617,13 +651,20 @@ const Position workshopBombs[2] = {785.509f,-864.715f,13.3993f,2.47837f} }; -enum Buffs +enum Spells { SPELL_OIL_REFINERY = 68719, SPELL_QUARRY = 68720, SPELL_PARACHUTE = 66656, - SPELL_SLOW_FALL = 12438 + SPELL_SLOW_FALL = 12438, + + SPELL_DESTROYED_VEHICLE_ACHIEVEMENT = 68357, + + SPELL_DRIVING_CREDIT_DEMOLISHER = 68365, + SPELL_DRIVING_CREDIT_GLAIVE = 68363, + SPELL_DRIVING_CREDIT_SIEGE = 68364, + SPELL_DRIVING_CREDIT_CATAPULT = 68362 }; enum BG_IC_Objectives @@ -738,6 +779,9 @@ enum ICNodeState const uint32 BG_IC_GraveyardIds[MAX_NODE_TYPES+2] = {0, 0, 1480, 1481, 1482, 1485, 1486, 1483, 1484}; +const Position TransportMovementInfo = {7.305609f,-0.095246f,34.51022f}; +const Position TeleportToTransportPosition = {661.0f,-1244.0f,288.0f,0.0f}; + const float BG_IC_SpiritGuidePos[MAX_NODE_TYPES+2][4] = { {0.0f, 0.0f, 0.0f, 0.0f}, // no grave @@ -796,6 +840,12 @@ const ICNodePoint nodePointInitial[7] = {BG_IC_GO_HORDE_BANNER,GO_HORDE_BANNER,TEAM_HORDE,NODE_TYPE_GRAVEYARD_H, {GO_ALLIANCE_BANNER_GRAVEYARD_H,GO_ALLIANCE_BANNER_GRAVEYARD_H_CONT,GO_HORDE_BANNER_GRAVEYARD_H,GO_HORDE_BANNER_GRAVEYARD_H_CONT},false,0,0,{BG_IC_HORDE_KEEP_UNCONTROLLED,BG_IC_HORDE_KEEP_CONFLICT_A,BG_IC_HORDE_KEEP_CONFLICT_H,BG_IC_HORDE_KEEP_CONTROLLED_A,BG_IC_HORDE_KEEP_CONTROLLED_H},NODE_STATE_CONTROLLED_H,LANG_BG_IC_HORDE_KEEP}, }; +enum HonorRewards +{ + RESOURCE_HONOR_AMOUNT = 12, + WINNER_HONOR_AMOUNT = 500 +}; + class BattlegroundICScore : public BattlegroundScore { public: @@ -846,7 +896,7 @@ class BattlegroundIC : public Battleground virtual bool IsAllNodesConrolledByTeam(uint32 team) const; // overwrited private: - uint32 closeFortressDoors; + uint32 closeFortressDoorsTimer; bool doorsClosed; uint32 docksTimer; uint32 resourceTimer; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 8d330143ae1..4a4a4f15228 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -9260,25 +9260,25 @@ void Player::SendInitWorldStates(uint32 zoneid, uint32 areaid) bg->FillInitialWorldStates(data); else { - data << uint32(4221) << uint32(1); // 7 - data << uint32(4222) << uint32(1); // 8 - data << uint32(4226) << uint32(300); // 9 - data << uint32(4227) << uint32(300); // 10 - data << uint32(4322) << uint32(1); // 11 - data << uint32(4321) << uint32(1); // 12 - data << uint32(4320) << uint32(1); // 13 - data << uint32(4323) << uint32(1); // 14 - data << uint32(4324) << uint32(1); // 15 - data << uint32(4325) << uint32(1); // 16 - data << uint32(4317) << uint32(1); // 17 + data << uint32(4221) << uint32(1); // 7 BG_IC_ALLIANCE_RENFORT_SET + data << uint32(4222) << uint32(1); // 8 BG_IC_HORDE_RENFORT_SET + data << uint32(4226) << uint32(300); // 9 BG_IC_ALLIANCE_RENFORT + data << uint32(4227) << uint32(300); // 10 BG_IC_HORDE_RENFORT + data << uint32(4322) << uint32(1); // 11 BG_IC_GATE_FRONT_H_WS_OPEN + data << uint32(4321) << uint32(1); // 12 BG_IC_GATE_WEST_H_WS_OPEN + data << uint32(4320) << uint32(1); // 13 BG_IC_GATE_EAST_H_WS_OPEN + data << uint32(4323) << uint32(1); // 14 BG_IC_GATE_FRONT_A_WS_OPEN + data << uint32(4324) << uint32(1); // 15 BG_IC_GATE_WEST_A_WS_OPEN + data << uint32(4325) << uint32(1); // 16 BG_IC_GATE_EAST_A_WS_OPEN + data << uint32(4317) << uint32(1); // 17 unknown - data << uint32(4301) << uint32(1); // 18 - data << uint32(4296) << uint32(1); // 19 - data << uint32(4306) << uint32(1); // 20 - data << uint32(4311) << uint32(1); // 21 - data << uint32(4294) << uint32(1); // 22 - data << uint32(4243) << uint32(1); // 23 - data << uint32(4345) << uint32(1); // 24 + data << uint32(4301) << uint32(1); // 18 BG_IC_DOCKS_UNCONTROLLED + data << uint32(4296) << uint32(1); // 19 BG_IC_HANGAR_UNCONTROLLED + data << uint32(4306) << uint32(1); // 20 BG_IC_QUARRY_UNCONTROLLED + data << uint32(4311) << uint32(1); // 21 BG_IC_REFINERY_UNCONTROLLED + data << uint32(4294) << uint32(1); // 22 BG_IC_WORKSHOP_UNCONTROLLED + data << uint32(4243) << uint32(1); // 23 unknown + data << uint32(4345) << uint32(1); // 24 unknown } break; default: diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 08f8541f80b..c736e3e8445 100755 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -3096,13 +3096,13 @@ bool SpellArea::IsFitToRequirements(Player const* player, uint32 newZone, uint32 return false; break; } - case 68719: // Oil Refinery - Isle of Conquest. - case 68720: // Quarry - Isle of Conquest. + case SPELL_OIL_REFINERY: // Oil Refinery - Isle of Conquest. + case SPELL_QUARRY: // Quarry - Isle of Conquest. { if (player->GetBattlegroundTypeId() != BATTLEGROUND_IC || !player->GetBattleground()) return false; - uint8 nodeType = spellId == 68719 ? NODE_TYPE_REFINERY : NODE_TYPE_QUARRY; + uint8 nodeType = spellId == SPELL_OIL_REFINERY ? NODE_TYPE_REFINERY : NODE_TYPE_QUARRY; uint8 nodeState = player->GetTeamId() == TEAM_ALLIANCE ? NODE_STATE_CONTROLLED_A : NODE_STATE_CONTROLLED_H; BattlegroundIC* pIC = static_cast<BattlegroundIC*>(player->GetBattleground()); diff --git a/src/server/scripts/Northrend/isle_of_conquest.cpp b/src/server/scripts/Northrend/isle_of_conquest.cpp index b70f8de4b4c..2a351e3441a 100644 --- a/src/server/scripts/Northrend/isle_of_conquest.cpp +++ b/src/server/scripts/Northrend/isle_of_conquest.cpp @@ -39,17 +39,18 @@ class npc_four_car_garage : public CreatureScript switch(me->GetEntry()) { case NPC_DEMOLISHER: - spellId = 68365; + spellId = SPELL_DRIVING_CREDIT_DEMOLISHER; break; - case NPC_GLAIVE_THROWER: - spellId = 68363; + case NPC_GLAIVE_THROWER_A: + case NPC_GLAIVE_THROWER_H: + spellId = SPELL_DRIVING_CREDIT_GLAIVE; break; case NPC_SIEGE_ENGINE_H: case NPC_SIEGE_ENGINE_A: - spellId = 68364; + spellId = SPELL_DRIVING_CREDIT_SIEGE; break; case NPC_CATAPULT: - spellId = 68362; + spellId = SPELL_DRIVING_CREDIT_CATAPULT; break; default: return; diff --git a/src/server/scripts/World/achievement_scripts.cpp b/src/server/scripts/World/achievement_scripts.cpp index 385e973ee78..fe3b29ee815 100755 --- a/src/server/scripts/World/achievement_scripts.cpp +++ b/src/server/scripts/World/achievement_scripts.cpp @@ -140,7 +140,7 @@ class achievement_bg_ic_glaive_grave : public AchievementCriteriaScript { if (Creature* vehicle = source->GetVehicleCreatureBase()) { - if (vehicle->GetEntry() == 35273 || vehicle->GetEntry() == 34802) + if (vehicle->GetEntry() == NPC_GLAIVE_THROWER_H || vehicle->GetEntry() == NPC_GLAIVE_THROWER_A) return true; } |