Advertisement
Guest User

tutorial

a guest
Mar 11th, 2016
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.12 KB | None | 0 0
  1. Hello All,
  2.  
  3.  
  4.  
  5. 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).
  6.  
  7.  
  8.  
  9. Any problems, just reply in the thread or start a support thread.
  10.  
  11.  
  12.  
  13. Enjoy :)
  14.  
  15.  
  16.  
  17. ------------
  18.  
  19.  
  20.  
  21. /src/server/game/Battlegrounds/ArenaTeam.cpp
  22.  
  23.  
  24.  
  25. Find:
  26.  
  27. case ARENA_TEAM_2v2: return 0; case ARENA_TEAM_3v3: return 1; case ARENA_TEAM_5v5: return 2;
  28.  
  29. Replace with:
  30.  
  31. 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
  32.  
  33. Find:
  34.  
  35. // Type penalties for teams < 5v5 if (Type == ARENA_TEAM_2v2) points *= 0.76f; else if (Type == ARENA_TEAM_3v3) points *= 0.88f;
  36.  
  37. Replace with:
  38.  
  39. // 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;
  40.  
  41. /src/server/game/Battlegrounds/ArenaTeam.h
  42.  
  43.  
  44.  
  45. Find:
  46.  
  47. enum ArenaTeamTypes{ ARENA_TEAM_2v2 = 2, ARENA_TEAM_3v3 = 3, ARENA_TEAM_5v5 = 5};
  48.  
  49. Replace with:
  50.  
  51. enum ArenaTeamTypes{ ARENA_TEAM_1v1 = 1, //Custom 1v1 Rated Arena ARENA_TEAM_2v2 = 2, ARENA_TEAM_3v3 = 3, ARENA_TEAM_5v5 = 5};
  52.  
  53. Find:
  54.  
  55. #define MAX_ARENA_SLOT 3 // 0..2 slots
  56.  
  57. Replace with:
  58.  
  59. #define MAX_ARENA_SLOT 4 // 0..3 slots
  60.  
  61. /src/server/game/Battlegrounds/Battleground.cpp
  62.  
  63.  
  64.  
  65. Find:
  66.  
  67. // After 1 minute or 30 seconds, warning is signaled else if (GetStartDelayTime() <= StartDelayTimes[BG_STARTING_EVENT_SECOND] && !(m_Events & BG_STARTING_EVENT_2)) {
  68.  
  69. Add before:
  70.  
  71. // 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]);
  72.  
  73. /src/server/game/Battlegrounds/Battleground.h
  74.  
  75.  
  76.  
  77. Find:
  78.  
  79. enum ArenaType{ ARENA_TYPE_2v2 = 2, ARENA_TYPE_3v3 = 3, ARENA_TYPE_5v5 = 5};
  80.  
  81. Replace with:
  82.  
  83. enum ArenaType{ ARENA_TYPE_1v1 = 1, ARENA_TYPE_2v2 = 2, ARENA_TYPE_3v3 = 3, ARENA_TYPE_5v5 = 5};
  84.  
  85. /src/server/game/Battlegrounds/BattlegroundMgr.cpp
  86.  
  87.  
  88.  
  89. Find:
  90.  
  91. for (int qtype = BATTLEGROUND_QUEUE_2v2; qtype <= BATTLEGROUND_QUEUE_5v5; ++qtype)
  92.  
  93. Replace with:
  94.  
  95. for (int qtype = BATTLEGROUND_QUEUE_2v2; qtype <= BATTLEGROUND_QUEUE_1v1; ++qtype)
  96.  
  97. Find:
  98.  
  99. 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; }
  100.  
  101. Replace with:
  102.  
  103. 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; }
  104.  
  105. Find:
  106.  
  107. BattlegroundMgr::BGQueueTypeId(BattlegroundTypeId bgType
  108.  
  109. Scroll down a little until you see the "switch (arenaType)"
  110.  
  111.  
  112.  
  113. Find:
  114.  
  115. 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; }
  116.  
  117. Replace with:
  118.  
  119. 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; }
  120.  
  121. Find:
  122.  
  123. BattlegroundMgr::BGTemplateId(BattlegroundQueueTypeId
  124.  
  125. Scroll down until you see "switch (bgQueueTypeId)"
  126.  
  127.  
  128.  
  129. Find:
  130.  
  131. 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) }
  132.  
  133. Replace with:
  134.  
  135. 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) }
  136.  
  137. Find:
  138.  
  139. BattlegroundMgr::BGArenaType(BattlegroundQueueTypeId
  140.  
  141. Underneath you'll find "switch (bgQueueTypeId)"
  142.  
  143.  
  144.  
  145. Find:
  146.  
  147. 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; }
  148.  
  149. Replace with:
  150.  
  151. 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; }
  152.  
  153. /src/server/game/Entities/Object/Updates/UpdateFields.h
  154.  
  155.  
  156.  
  157. Find:
  158.  
  159. 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
  160.  
  161. Replace with:
  162.  
  163. 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
  164.  
  165. /src/server/game/Miscellaneous/SharedDefines.h
  166.  
  167.  
  168.  
  169. Find:
  170.  
  171. 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};
  172.  
  173. Replace with:
  174.  
  175. 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};
  176.  
  177. That's the manual edits done!
  178.  
  179.  
  180.  
  181. Now to add the 1v1.cpp script:
  182.  
  183.  
  184.  
  185. http://pastebin.com/xSsrHh88
  186.  
  187.  
  188.  
  189. And add the creature to the DB:
  190.  
  191. 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);
  192.  
  193. If you followed these steps completely, you should have a working 1v1 arena script!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement