Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Hello All,
- I know a lot of people have problems with applying this script, so I am writing a guide on how to manually add the 1v1 arena script! This will work with the latest version of TrinityCore (335.58).
- Any problems, just reply in the thread or start a support thread.
- Enjoy :)
- ------------
- /src/server/game/Battlegrounds/ArenaTeam.cpp
- Find:
- case ARENA_TEAM_2v2: return 0; case ARENA_TEAM_3v3: return 1; case ARENA_TEAM_5v5: return 2;
- Replace with:
- case ARENA_TEAM_2v2: return 0; case ARENA_TEAM_3v3: return 1; case ARENA_TEAM_5v5: return 2; case ARENA_TEAM_1v1: return 3; // Custom 1v1 Arena Rated
- Find:
- // Type penalties for teams < 5v5 if (Type == ARENA_TEAM_2v2) points *= 0.76f; else if (Type == ARENA_TEAM_3v3) points *= 0.88f;
- Replace with:
- // Type penalties for teams < 5v5 if (Type == ARENA_TEAM_2v2) points *= 0.76f; else if (Type == ARENA_TEAM_3v3) points *= 0.88f; else if (Type == ARENA_TEAM_1v1) //Custom 1v1 Arena Rated points *= 0.70f;
- /src/server/game/Battlegrounds/ArenaTeam.h
- Find:
- enum ArenaTeamTypes{ ARENA_TEAM_2v2 = 2, ARENA_TEAM_3v3 = 3, ARENA_TEAM_5v5 = 5};
- Replace with:
- enum ArenaTeamTypes{ ARENA_TEAM_1v1 = 1, //Custom 1v1 Rated Arena ARENA_TEAM_2v2 = 2, ARENA_TEAM_3v3 = 3, ARENA_TEAM_5v5 = 5};
- Find:
- #define MAX_ARENA_SLOT 3 // 0..2 slots
- Replace with:
- #define MAX_ARENA_SLOT 4 // 0..3 slots
- /src/server/game/Battlegrounds/Battleground.cpp
- Find:
- // After 1 minute or 30 seconds, warning is signaled else if (GetStartDelayTime() <= StartDelayTimes[BG_STARTING_EVENT_SECOND] && !(m_Events & BG_STARTING_EVENT_2)) {
- Add before:
- // 1v1 Arena - Start arena after 15s, when all players are in arena if(GetArenaType() == ARENA_TYPE_1v1 && GetStartDelayTime() > StartDelayTimes[BG_STARTING_EVENT_THIRD] && (m_PlayersCount[0] + m_PlayersCount[1]) == 2) SetStartDelayTime(StartDelayTimes[BG_STARTING_EVENT_THIRD]);
- /src/server/game/Battlegrounds/Battleground.h
- Find:
- enum ArenaType{ ARENA_TYPE_2v2 = 2, ARENA_TYPE_3v3 = 3, ARENA_TYPE_5v5 = 5};
- Replace with:
- enum ArenaType{ ARENA_TYPE_1v1 = 1, ARENA_TYPE_2v2 = 2, ARENA_TYPE_3v3 = 3, ARENA_TYPE_5v5 = 5};
- /src/server/game/Battlegrounds/BattlegroundMgr.cpp
- Find:
- for (int qtype = BATTLEGROUND_QUEUE_2v2; qtype <= BATTLEGROUND_QUEUE_5v5; ++qtype)
- Replace with:
- for (int qtype = BATTLEGROUND_QUEUE_2v2; qtype <= BATTLEGROUND_QUEUE_1v1; ++qtype)
- Find:
- uint32 maxPlayersPerTeam = 0; switch (arenaType) { case ARENA_TYPE_2v2: maxPlayersPerTeam = 2; break; case ARENA_TYPE_3v3: maxPlayersPerTeam = 3; break; case ARENA_TYPE_5v5: maxPlayersPerTeam = 5; break; }
- Replace with:
- uint32 maxPlayersPerTeam = 0; switch (arenaType) { case ARENA_TYPE_2v2: maxPlayersPerTeam = 2; break; case ARENA_TYPE_3v3: maxPlayersPerTeam = 3; break; case ARENA_TYPE_5v5: maxPlayersPerTeam = 5; break; case ARENA_TYPE_1v1: maxPlayersPerTeam = 1; break; }
- Find:
- BattlegroundMgr::BGQueueTypeId(BattlegroundTypeId bgType
- Scroll down a little until you see the "switch (arenaType)"
- Find:
- switch (arenaType) { case ARENA_TYPE_2v2: return BATTLEGROUND_QUEUE_2v2; case ARENA_TYPE_3v3: return BATTLEGROUND_QUEUE_3v3; case ARENA_TYPE_5v5: return BATTLEGROUND_QUEUE_5v5 default: return BATTLEGROUND_QUEUE_NONE; }
- Replace with:
- switch (arenaType) { case ARENA_TYPE_2v2: return BATTLEGROUND_QUEUE_2v2; case ARENA_TYPE_3v3: return BATTLEGROUND_QUEUE_3v3; case ARENA_TYPE_5v5: return BATTLEGROUND_QUEUE_5v5; case ARENA_TYPE_1v1: return BATTLEGROUND_QUEUE_1v1; default: return BATTLEGROUND_QUEUE_NONE; }
- Find:
- BattlegroundMgr::BGTemplateId(BattlegroundQueueTypeId
- Scroll down until you see "switch (bgQueueTypeId)"
- Find:
- switch (bgQueueTypeId) { case BATTLEGROUND_QUEUE_WS: return BATTLEGROUND_WS; case BATTLEGROUND_QUEUE_AB: return BATTLEGROUND_AB; case BATTLEGROUND_QUEUE_AV: return BATTLEGROUND_AV; case BATTLEGROUND_QUEUE_EY: return BATTLEGROUND_EY; case BATTLEGROUND_QUEUE_SA: return BATTLEGROUND_SA; case BATTLEGROUND_QUEUE_IC: return BATTLEGROUND_IC; case BATTLEGROUND_QUEUE_RB: return BATTLEGROUND_RB; case BATTLEGROUND_QUEUE_2v2: case BATTLEGROUND_QUEUE_3v3: case BATTLEGROUND_QUEUE_5v5: return BATTLEGROUND_AA; default: return BattlegroundTypeId(0); // used for unknown template (it existed and do nothing) }
- Replace with:
- switch (bgQueueTypeId) { case BATTLEGROUND_QUEUE_WS: return BATTLEGROUND_WS; case BATTLEGROUND_QUEUE_AB: return BATTLEGROUND_AB; case BATTLEGROUND_QUEUE_AV: return BATTLEGROUND_AV; case BATTLEGROUND_QUEUE_EY: return BATTLEGROUND_EY; case BATTLEGROUND_QUEUE_SA: return BATTLEGROUND_SA; case BATTLEGROUND_QUEUE_IC: return BATTLEGROUND_IC; case BATTLEGROUND_QUEUE_RB: return BATTLEGROUND_RB; case BATTLEGROUND_QUEUE_2v2: case BATTLEGROUND_QUEUE_3v3: case BATTLEGROUND_QUEUE_5v5: case BATTLEGROUND_QUEUE_1v1: return BATTLEGROUND_AA; default: return BattlegroundTypeId(0); // used for unknown template (it existed and do nothing) }
- Find:
- BattlegroundMgr::BGArenaType(BattlegroundQueueTypeId
- Underneath you'll find "switch (bgQueueTypeId)"
- Find:
- switch (bgQueueTypeId) { case BATTLEGROUND_QUEUE_2v2: return ARENA_TYPE_2v2; case BATTLEGROUND_QUEUE_3v3: return ARENA_TYPE_3v3; case BATTLEGROUND_QUEUE_5v5: return ARENA_TYPE_5v5; default: return 0; }
- Replace with:
- switch (bgQueueTypeId) { case BATTLEGROUND_QUEUE_2v2: return ARENA_TYPE_2v2; case BATTLEGROUND_QUEUE_3v3: return ARENA_TYPE_3v3; case BATTLEGROUND_QUEUE_5v5: return ARENA_TYPE_5v5; case BATTLEGROUND_QUEUE_1v1: return ARENA_TYPE_1v1; default: return 0; }
- /src/server/game/Entities/Object/Updates/UpdateFields.h
- Find:
- PLAYER_FIELD_COMBAT_RATING_1 = UNIT_END + 0x043B, // Size: 25, Type: INT, Flags: PRIVATE PLAYER_FIELD_ARENA_TEAM_INFO_1_1 = UNIT_END + 0x0454, // Size: 21, Type: INT, Flags: PRIVATE PLAYER_FIELD_HONOR_CURRENCY = UNIT_END + 0x0469, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_ARENA_CURRENCY = UNIT_END + 0x046A, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_MAX_LEVEL = UNIT_END + 0x046B, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_DAILY_QUESTS_1 = UNIT_END + 0x046C, // Size: 25, Type: INT, Flags: PRIVATE PLAYER_RUNE_REGEN_1 = UNIT_END + 0x0485, // Size: 4, Type: FLOAT, Flags: PRIVATE PLAYER_NO_REAGENT_COST_1 = UNIT_END + 0x0489, // Size: 3, Type: INT, Flags: PRIVATE PLAYER_FIELD_GLYPH_SLOTS_1 = UNIT_END + 0x048C, // Size: 6, Type: INT, Flags: PRIVATE PLAYER_FIELD_GLYPHS_1 = UNIT_END + 0x0492, // Size: 6, Type: INT, Flags: PRIVATE PLAYER_GLYPHS_ENABLED = UNIT_END + 0x0498, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_PET_SPELL_POWER = UNIT_END + 0x0499, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_END = UNIT_END + 0x049A
- Replace with:
- PLAYER_FIELD_COMBAT_RATING_1 = UNIT_END + 0x043B, // Size: 25, Type: INT, Flags: PRIVATE PLAYER_FIELD_ARENA_TEAM_INFO_1_1 = UNIT_END + 0x0454, // Size: 21, Type: INT, Flags: PRIVATE PLAYER_FIELD_HONOR_CURRENCY = UNIT_END + 0x0469, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_ARENA_CURRENCY = UNIT_END + 0x046A, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_MAX_LEVEL = UNIT_END + 0x046B, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_DAILY_QUESTS_1 = UNIT_END + 0x046C, // Size: 25, Type: INT, Flags: PRIVATE PLAYER_RUNE_REGEN_1 = UNIT_END + 0x0485, // Size: 4, Type: FLOAT, Flags: PRIVATE PLAYER_NO_REAGENT_COST_1 = UNIT_END + 0x0489, // Size: 3, Type: INT, Flags: PRIVATE PLAYER_FIELD_GLYPH_SLOTS_1 = UNIT_END + 0x048C, // Size: 6, Type: INT, Flags: PRIVATE PLAYER_FIELD_GLYPHS_1 = UNIT_END + 0x0492, // Size: 6, Type: INT, Flags: PRIVATE PLAYER_GLYPHS_ENABLED = UNIT_END + 0x0498, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_PET_SPELL_POWER = UNIT_END + 0x0499, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_END = UNIT_END + 0x049A
- /src/server/game/Miscellaneous/SharedDefines.h
- Find:
- enum BattlegroundQueueTypeId{ BATTLEGROUND_QUEUE_NONE = 0, BATTLEGROUND_QUEUE_AV = 1, BATTLEGROUND_QUEUE_WS = 2, BATTLEGROUND_QUEUE_AB = 3, BATTLEGROUND_QUEUE_EY = 4, BATTLEGROUND_QUEUE_SA = 5, BATTLEGROUND_QUEUE_IC = 6, BATTLEGROUND_QUEUE_RB = 7, BATTLEGROUND_QUEUE_2v2 = 8, BATTLEGROUND_QUEUE_3v3 = 9, BATTLEGROUND_QUEUE_5v5 = 10, MAX_BATTLEGROUND_QUEUE_TYPES};
- Replace with:
- enum BattlegroundQueueTypeId{ BATTLEGROUND_QUEUE_NONE = 0, BATTLEGROUND_QUEUE_AV = 1, BATTLEGROUND_QUEUE_WS = 2, BATTLEGROUND_QUEUE_AB = 3, BATTLEGROUND_QUEUE_EY = 4, BATTLEGROUND_QUEUE_SA = 5, BATTLEGROUND_QUEUE_IC = 6, BATTLEGROUND_QUEUE_RB = 7, BATTLEGROUND_QUEUE_2v2 = 8, BATTLEGROUND_QUEUE_3v3 = 9, BATTLEGROUND_QUEUE_5v5 = 10, BATTLEGROUND_QUEUE_1v1 = 11, MAX_BATTLEGROUND_QUEUE_TYPES};
- That's the manual edits done!
- Now to add the 1v1.cpp script:
- http://pastebin.com/xSsrHh88
- And add the creature to the DB:
- REPLACE INTO `creature_template` VALUES (190016, 0, 0, 0, 0, 0, 29348, 0, 0, 0, '1v1 Rated Arena', 'WoW-BB', 'Speak', 50001, 71, 71, 2, 35, 35, 3, 1, 1.14286, 1.25, 1, 124, 256, 0, 783, 1, 2000, 0, 1, 2, 2048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 138936390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168000, 190000, '', 0, 3, 1, 1.56, 1.56, 1.56, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 'npc_1v1arena', 12340);
- If you followed these steps completely, you should have a working 1v1 arena script!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement