Changeset 9 for trunk/src/game/BattleGroundNA.cpp
- Timestamp:
- 11/19/08 13:22:41 (17 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/game/BattleGroundNA.cpp
r2 r9 48 48 { 49 49 m_Events |= 0x01; 50 // setup here, only when at least one player has ported to the map 51 if(!SetupBattleGround()) 52 { 53 EndNow(); 54 return; 55 } 50 56 for(uint32 i = BG_NA_OBJECT_DOOR_1; i <= BG_NA_OBJECT_DOOR_4; i++) 51 57 SpawnBGObject(i, RESPAWN_IMMEDIATELY); … … 73 79 for(uint32 i = BG_NA_OBJECT_DOOR_1; i <= BG_NA_OBJECT_DOOR_2; i++) 74 80 DoorOpen(i); 81 82 for(uint32 i = BG_NA_OBJECT_BUFF_1; i <= BG_NA_OBJECT_BUFF_2; i++) 83 SpawnBGObject(i, 60); 75 84 76 85 SendMessageToAll(LANG_ARENA_BEGUN); … … 81 90 if(Player *plr = objmgr.GetPlayer(itr->first)) 82 91 plr->RemoveAurasDueToSpell(SPELL_ARENA_PREPARATION); 92 93 if(!GetPlayersCountByTeam(ALLIANCE) && GetPlayersCountByTeam(HORDE)) 94 EndBattleGround(HORDE); 95 else if(GetPlayersCountByTeam(ALLIANCE) && !GetPlayersCountByTeam(HORDE)) 96 EndBattleGround(ALLIANCE); 83 97 } 84 98 } … … 97 111 98 112 m_PlayerScores[plr->GetGUID()] = sc; 113 114 UpdateWorldState(0xa0f, GetAlivePlayersCountByTeam(ALLIANCE)); 115 UpdateWorldState(0xa10, GetAlivePlayersCountByTeam(HORDE)); 99 116 } 100 117 101 118 void BattleGroundNA::RemovePlayer(Player* /*plr*/, uint64 /*guid*/) 102 119 { 103 120 if(GetStatus() == STATUS_WAIT_LEAVE) 121 return; 122 123 UpdateWorldState(0xa0f, GetAlivePlayersCountByTeam(ALLIANCE)); 124 UpdateWorldState(0xa10, GetAlivePlayersCountByTeam(HORDE)); 125 126 if(!GetAlivePlayersCountByTeam(ALLIANCE) && GetPlayersCountByTeam(HORDE)) 127 EndBattleGround(HORDE); 128 else if(GetPlayersCountByTeam(ALLIANCE) && !GetAlivePlayersCountByTeam(HORDE)) 129 EndBattleGround(ALLIANCE); 104 130 } 105 131 … … 115 141 } 116 142 117 BattleGround::HandleKillPlayer(player, killer); 118 119 uint32 killer_team_index = GetTeamIndexByTeamId(killer->GetTeam()); 120 121 ++m_TeamKills[killer_team_index]; // add kills to killer's team 122 123 if(m_TeamKills[killer_team_index] >= GetPlayersCountByTeam(player->GetTeam())) 143 BattleGround::HandleKillPlayer(player,killer); 144 145 UpdateWorldState(0xa0f, GetAlivePlayersCountByTeam(ALLIANCE)); 146 UpdateWorldState(0xa10, GetAlivePlayersCountByTeam(HORDE)); 147 148 if(!GetAlivePlayersCountByTeam(ALLIANCE)) 124 149 { 125 150 // all opponents killed 126 EndBattleGround(killer->GetTeam()); 127 } 151 EndBattleGround(HORDE); 152 } 153 else if(!GetAlivePlayersCountByTeam(HORDE)) 154 { 155 // all opponents killed 156 EndBattleGround(ALLIANCE); 157 } 158 } 159 160 bool BattleGroundNA::HandlePlayerUnderMap(Player *player) 161 { 162 player->TeleportTo(GetMapId(),4055.504395,2919.660645,13.611241,player->GetOrientation(),false); 163 return true; 128 164 } 129 165 … … 150 186 } 151 187 188 void BattleGroundNA::FillInitialWorldStates(WorldPacket &data) 189 { 190 data << uint32(0xa0f) << uint32(GetAlivePlayersCountByTeam(ALLIANCE)); // 7 191 data << uint32(0xa10) << uint32(GetAlivePlayersCountByTeam(HORDE)); // 8 192 data << uint32(0xa11) << uint32(1); // 9 193 } 194 152 195 void BattleGroundNA::ResetBGSubclass() 153 196 { 154 m_TeamKills[BG_TEAM_ALLIANCE] = 0; 155 m_TeamKills[BG_TEAM_HORDE] = 0; 197 156 198 } 157 199 … … 159 201 { 160 202 // gates 161 if( !AddObject(BG_NA_OBJECT_DOOR_1, BG_NA_OBJECT_TYPE_DOOR_1, 4031.854f, 2966.833f, 12.6462f, -2.648788f, 0, 0, 0.9697962f, -0.2439165f, RESPAWN_IMMEDIATELY) 162 || !AddObject(BG_NA_OBJECT_DOOR_2, BG_NA_OBJECT_TYPE_DOOR_2, 4081.179f, 2874.97f, 12.39171f, 0.4928045f, 0, 0, 0.2439165f, 0.9697962f, RESPAWN_IMMEDIATELY) 163 || !AddObject(BG_NA_OBJECT_DOOR_3, BG_NA_OBJECT_TYPE_DOOR_3, 4023.709f, 2981.777f, 10.70117f, -2.648788f, 0, 0, 0.9697962f, -0.2439165f, RESPAWN_IMMEDIATELY) 164 || !AddObject(BG_NA_OBJECT_DOOR_4, BG_NA_OBJECT_TYPE_DOOR_4, 4090.064f, 2858.438f, 10.23631f, 0.4928045f, 0, 0, 0.2439165f, 0.9697962f, RESPAWN_IMMEDIATELY)) 203 if( !AddObject(BG_NA_OBJECT_DOOR_1, BG_NA_OBJECT_TYPE_DOOR_1, 4031.854, 2966.833, 12.6462, -2.648788, 0, 0, 0.9697962, -0.2439165, RESPAWN_IMMEDIATELY) 204 || !AddObject(BG_NA_OBJECT_DOOR_2, BG_NA_OBJECT_TYPE_DOOR_2, 4081.179, 2874.97, 12.39171, 0.4928045, 0, 0, 0.2439165, 0.9697962, RESPAWN_IMMEDIATELY) 205 || !AddObject(BG_NA_OBJECT_DOOR_3, BG_NA_OBJECT_TYPE_DOOR_3, 4023.709, 2981.777, 10.70117, -2.648788, 0, 0, 0.9697962, -0.2439165, RESPAWN_IMMEDIATELY) 206 || !AddObject(BG_NA_OBJECT_DOOR_4, BG_NA_OBJECT_TYPE_DOOR_4, 4090.064, 2858.438, 10.23631, 0.4928045, 0, 0, 0.2439165, 0.9697962, RESPAWN_IMMEDIATELY) 207 // buffs 208 || !AddObject(BG_NA_OBJECT_BUFF_1, BG_NA_OBJECT_TYPE_BUFF_1, 4009.189941, 2895.250000, 13.052700, -1.448624, 0, 0, 0.6626201, -0.7489557, 120) 209 || !AddObject(BG_NA_OBJECT_BUFF_2, BG_NA_OBJECT_TYPE_BUFF_2, 4103.330078, 2946.350098, 13.051300, -0.06981307, 0, 0, 0.03489945, -0.9993908, 120)) 165 210 { 166 211 sLog.outErrorDb("BatteGroundNA: Failed to spawn some object!");