Advertisement
Guest User

campaigne.sp

a guest
May 17th, 2013
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.65 KB | None | 0 0
  1. stock bool:IsVersus()
  2. {
  3. decl String:GameType[128];
  4. GetConVarString(FindConVar("mp_gamemode"), GameType, 128);
  5. if (StrEqual(GameType, "versus")) return true;
  6. return false;
  7. }
  8.  
  9. stock bool:IsCoop()
  10. {
  11. decl String:GameType[128];
  12. GetConVarString(FindConVar("mp_gamemode"), GameType, 128);
  13. if (StrEqual(GameType, "coop")) return true;
  14. return false;
  15. }
  16.  
  17. public CheckForCampaignChange()
  18. {
  19. if (GetConVarInt(g_Module_Campaign_Enabled) == 0) return;
  20. decl String:GameTypeCurrent2[128];
  21. GetConVarString(FindConVar("mp_gamemode"), GameTypeCurrent2, 128);
  22. if (StrEqual(GameTypeCurrent2, "survival")) return;
  23. decl String:MapName[128];
  24. GetCurrentMap(MapName, sizeof(MapName));
  25. if (StrContains(MapName, "c1m4", false) > -1 ||
  26. StrContains(MapName, "c2m5", false) > -1 ||
  27. StrContains(MapName, "c6m3", false) > -1 ||
  28. StrContains(MapName, "c3m4", false) > -1 ||
  29. StrContains(MapName, "c4m5", false) > -1 ||
  30. StrContains(MapName, "c5m5", false) > -1 ||
  31. StrContains(MapName, "c7m3", false) > -1 ||
  32. StrContains(MapName, "c8m5", false) > -1 ||
  33. StrContains(MapName, "c13m4", false) > -1 ||
  34. StrContains(MapName, "c11m5", false) > -1 ||
  35. StrContains(MapName, "c12m5", false) > -1 ||
  36. StrContains(MapName, "c10m5", false) > -1 ||
  37. StrContains(MapName, "c9m2", false) > -1 ||
  38. StrContains(MapName, "l4d2_stadium5_stadium", true) > -1 ||
  39. StrContains(MapName, "eu05_trail_b16", true) > -1 ||
  40. StrContains(MapName, "l4d2_ravenholmwar_4", true) > -1 ||
  41. StrContains(MapName, "l4d_149_5", true) > -1 ||
  42. StrContains(MapName, "l4d_deathaboard05_light", true) > -1 ||
  43. StrContains(MapName, "l4d_zero03_ruins", true) > -1)
  44. {
  45. ResetCampaignScores();
  46. CreateTimer(1.0, Timer_ChangeCampaign, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
  47. }
  48. }
  49.  
  50. stock bool:IsFirstMap()
  51. {
  52. if (!IsVersus()) return false;
  53. decl String:MapName[128];
  54. GetCurrentMap(MapName, sizeof(MapName));
  55. if (StrContains(MapName, "c1m1", false) > -1 ||
  56. StrContains(MapName, "c2m1", false) > -1 ||
  57. StrContains(MapName, "c6m1", false) > -1 ||
  58. StrContains(MapName, "c3m1", false) > -1 ||
  59. StrContains(MapName, "c4m1", false) > -1 ||
  60. StrContains(MapName, "c5m1", false) > -1 ||
  61. StrContains(MapName, "c7m1", false) > -1 ||
  62. StrContains(MapName, "c8m1", false) > -1 ||
  63. StrContains(MapName, "c13m1", false) > -1 ||
  64. StrContains(MapName, "c11m1", false) > -1 ||
  65. StrContains(MapName, "c12m1", false) > -1 ||
  66. StrContains(MapName, "c10m1", false) > -1 ||
  67. StrContains(MapName, "c9m1", false) > -1 ||
  68. StrContains(MapName, "l4d2_stadium1_apartment", true) > -1 ||
  69. StrContains(MapName, "eu01_residential_b16", true) > -1 ||
  70. StrContains(MapName, "l4d2_ravenholmwar_1", true) > -1 ||
  71. StrContains(MapName, "l4d_149_1", true) > -1 ||
  72. StrContains(MapName, "l4d_deathaboard01_prison", true) > -1 ||
  73. StrContains(MapName, "l4d_zero01_base", true) > -1) return true;
  74. return false;
  75. }
  76.  
  77. public ResetCampaignScores()
  78. {
  79. mapcounter = 0;
  80. for (new i = 0; i <= 4; i++)
  81. {
  82. MapScores[i][0] = 0;
  83. MapScores[i][1] = 0;
  84. }
  85. }
  86.  
  87. public CheckForSurvivalChange()
  88. {
  89. if (GetConVarInt(g_Module_Campaign_Enabled) == 0) return;
  90. decl String:GameTypeCurrent2[128];
  91. GetConVarString(FindConVar("mp_gamemode"), GameTypeCurrent2, 128);
  92. if (!StrEqual(GameTypeCurrent2, "survival")) return;
  93.  
  94. /*decl String:MapName[128];
  95. GetCurrentMap(MapName, sizeof(MapName));
  96. if (StrContains(MapName, "c1m4", false) > -1 ||
  97. StrContains(MapName, "c2m1", false) > -1 ||
  98. StrContains(MapName, "c2m3", false) > -1 ||
  99. StrContains(MapName, "c2m4", false) > -1 ||
  100. StrContains(MapName, "c2m5", false) > -1 ||
  101. StrContains(MapName, "c3m1", false) > -1 ||
  102. StrContains(MapName, "c3m3", false) > -1 ||
  103. StrContains(MapName, "c3m4", false) > -1 ||
  104. StrContains(MapName, "c4m1", false) > -1 ||
  105. StrContains(MapName, "c4m2", false) > -1 ||
  106. StrContains(MapName, "c4m3", false) > -1 ||
  107. StrContains(MapName, "c5m1", false) > -1 ||
  108. StrContains(MapName, "c5m2", false) > -1 ||
  109. StrContains(MapName, "c5m4", false) > -1 ||
  110. StrContains(MapName, "c5m5", false) > -1 ||
  111. StrContains(MapName, "c6m1", false) > -1 ||
  112. StrContains(MapName, "c6m2", false) > -1 ||
  113. StrContains(MapName, "c6m3", false) > -1 ||
  114. StrContains(MapName, "c7m1", false) > -1 ||
  115. StrContains(MapName, "c8m2", false) > -1 ||
  116. StrContains(MapName, "c8m5", false) > -1 ||
  117. StrContains(MapName, "c9m2", false) > -1 ||
  118. StrContains(MapName, "cargobay", false) > -1 ||
  119. StrContains(MapName, "claustro", false) > -1 ||
  120. StrContains(MapName, "cruins", false) > -1 ||
  121. StrContains(MapName, "sacredg", false) > -1 ||
  122. StrContains(MapName, "scienced16", false) > -1 ||
  123. StrContains(MapName, "srf01", false) > -1)
  124. */
  125. CreateTimer(1.0, Timer_ChangeSurvival, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
  126. }
  127.  
  128. public Action:Timer_ChangeSurvival(Handle:timer)
  129. {
  130. new String:map[64];
  131. static count = -1;
  132. if (count == -1) count = 0;
  133. static random = -1;
  134.  
  135. while (random == -1)
  136. {
  137. if (random == -1) random = GetRandomInt(1, 22);
  138. // so we can't play the same 5 maps over and over.
  139. new bool:bFound = false;
  140. for (new i = 0; i <= 4 && !bFound; i++)
  141. {
  142. if (MapRotation[i] == random) bFound = true; // this random choice has been played recently.
  143. }
  144. if (bFound) random = -1;
  145. else
  146. {
  147. for (new i = 1; i <= 4; i++)
  148. {
  149. MapRotation[i-1] = MapRotation[i];
  150. }
  151. MapRotation[4] = random; // stored as the last map so it can't be selected again.
  152. }
  153. }
  154.  
  155. if (random == 1) Format(map, sizeof(map), "The Atrium");
  156. else if (random == 2) Format(map, sizeof(map), "The Motel");
  157. else if (random == 3) Format(map, sizeof(map), "The Roller Coaster");
  158. else if (random == 4) Format(map, sizeof(map), "The Barn");
  159. else if (random == 5) Format(map, sizeof(map), "The Concert");
  160. else if (random == 6) Format(map, sizeof(map), "Plank Country");
  161. else if (random == 7) Format(map, sizeof(map), "The Plantation");
  162. else if (random == 8) Format(map, sizeof(map), "The Burger Tank");
  163. else if (random == 9) Format(map, sizeof(map), "Sugarmill A");
  164. else if (random == 10) Format(map, sizeof(map), "Sugarmill B");
  165. else if (random == 11) Format(map, sizeof(map), "The Park");
  166. else if (random == 12) Format(map, sizeof(map), "The Bridge");
  167. else if (random == 13) Format(map, sizeof(map), "The Riverbank");
  168. else if (random == 14) Format(map, sizeof(map), "Bedlam");
  169. else if (random == 15) Format(map, sizeof(map), "The Port (The Passing)");
  170. else if (random == 16) Format(map, sizeof(map), "The Docks");
  171. else if (random == 17) Format(map, sizeof(map), "The Subway");
  172. else if (random == 18) Format(map, sizeof(map), "The Rooftop");
  173. else if (random == 19) Format(map, sizeof(map), "The Lot");
  174. else if (random == 20) Format(map, sizeof(map), "Shanty Town");
  175. else if (random == 21) Format(map, sizeof(map), "Waterfront");
  176. else if (random == 22) Format(map, sizeof(map), "French Quarter");
  177. if (count == 0)
  178. {
  179. PrintToChatAll("%t", "Random Map Selection", blue, white, map);
  180. }
  181. count++;
  182. if (count == 15)
  183. {
  184. count = -1;
  185. ChangeSurvival(random);
  186. random = -1;
  187. return Plugin_Stop;
  188. }
  189. return Plugin_Continue;
  190. }
  191.  
  192. public ChangeSurvival(counter)
  193. {
  194. if (counter == 1) ServerCommand("changelevel c1m4_atrium");
  195. else if (counter == 2) ServerCommand("changelevel c2m1_highway");
  196. else if (counter == 3) ServerCommand("changelevel c2m3_coaster");
  197. else if (counter == 4) ServerCommand("changelevel c2m4_barns");
  198. else if (counter == 5) ServerCommand("changelevel c2m5_concert");
  199. else if (counter == 6) ServerCommand("changelevel c3m1_plankcountry");
  200. else if (counter == 7) ServerCommand("changelevel c3m4_plantation");
  201. else if (counter == 8) ServerCommand("changelevel c4m1_milltown_a");
  202. else if (counter == 9) ServerCommand("changelevel c4m2_sugarmill_a");
  203. else if (counter == 10) ServerCommand("changelevel c4m3_sugarmill_b");
  204. else if (counter == 11) ServerCommand("changelevel c5m2_park");
  205. else if (counter == 12) ServerCommand("changelevel c5m5_bridge");
  206. else if (counter == 13) ServerCommand("changelevel c6m1_riverbank");
  207. else if (counter == 14) ServerCommand("changelevel c6m2_bedlam");
  208. else if (counter == 15) ServerCommand("changelevel c6m3_port");
  209. else if (counter == 16) ServerCommand("changelevel c7m1_docks");
  210. else if (counter == 17) ServerCommand("changelevel c8m2_subway");
  211. else if (counter == 18) ServerCommand("changelevel c8m5_rooftop");
  212. else if (counter == 19) ServerCommand("changelevel c9m2_lots");
  213. else if (counter == 20) ServerCommand("changelevel c3m3_shantytown");
  214. else if (counter == 21) ServerCommand("changelevel c5m1_waterfront");
  215. else if (counter == 22) ServerCommand("changelevel c5m4_quarter");
  216. }
  217.  
  218. public ChangeCampaign(bool:random)
  219. {
  220. decl String:MapName[128];
  221. GetCurrentMap(MapName, sizeof(MapName));
  222. if (!random)
  223. {
  224. if (StrContains(MapName, "c1m4", false) > -1) ServerCommand("changelevel c7m1_docks");
  225. else if (StrContains(MapName, "c2m5", false) > -1) ServerCommand("changelevel c3m1_plankcountry");
  226. else if (StrContains(MapName, "c6m3", false) > -1) ServerCommand("changelevel c7m1_docks");
  227. else if (StrContains(MapName, "c3m4", false) > -1) ServerCommand("changelevel c4m1_milltown_a");
  228. else if (StrContains(MapName, "c4m5", false) > -1) ServerCommand("changelevel c5m1_waterfront");
  229. else if (StrContains(MapName, "c5m5", false) > -1) ServerCommand("changelevel c8m1_apartment");
  230. else if (StrContains(MapName, "c7m3", false) > -1) ServerCommand("changelevel c2m1_highway");
  231. else if (StrContains(MapName, "c8m5", false) > -1) ServerCommand("changelevel c9m1_alleys");
  232. else if (StrContains(MapName, "c13m4", false) > -1) ServerCommand("changelevel c1m1_hotel");
  233. else if (StrContains(MapName, "c11m5", false) > -1) ServerCommand("changelevel c12m1_hilltop");
  234. else if (StrContains(MapName, "c12m5", false) > -1) ServerCommand("changelevel c1m1_hotel");
  235. else if (StrContains(MapName, "c10m5", false) > -1) ServerCommand("changelevel c11m1_greenhouse");
  236. else if (StrContains(MapName, "c9m2", false) > -1) ServerCommand("changelevel c10m1_caves");
  237. else
  238. {
  239. // custom campaign, dead center is the next map
  240. ServerCommand("changelevel c1m1_hotel");
  241. }
  242. }
  243. else
  244. {
  245. new number = GetRandomInt(1, 11);
  246. if (number == 1) ServerCommand("changelevel c7m1_docks");
  247. else if (number == 2) ServerCommand("changelevel c3m1_plankcountry");
  248. else if (number == 3) ServerCommand("changelevel c4m1_milltown_a");
  249. else if (number == 4) ServerCommand("changelevel c5m1_waterfront");
  250. else if (number == 5) ServerCommand("changelevel c8m1_apartment");
  251. else if (number == 6) ServerCommand("changelevel c2m1_highway");
  252. else if (number == 7) ServerCommand("changelevel c9m1_alleys");
  253. else if (number == 8) ServerCommand("changelevel c1m1_hotel");
  254. else if (number == 9) ServerCommand("changelevel c12m1_hilltop");
  255. else if (number == 10) ServerCommand("changelevel c11m1_greenhouse");
  256. else if (number == 11) ServerCommand("changelevel c10m1_caves");
  257. }
  258. }
  259.  
  260. public Action:Timer_ChangeCampaign(Handle:timer)
  261. {
  262. new String:map[64];
  263. static count = -1;
  264. if (count == -1) count = 0;
  265.  
  266. decl String:MapName[128];
  267. GetCurrentMap(MapName, sizeof(MapName));
  268. if (StrContains(MapName, "c1m4", false) > -1) Format(map, sizeof(map), "The Sacrifice");
  269. else if (StrContains(MapName, "c2m5", false) > -1) Format(map, sizeof(map), "Swamp Fever");
  270. else if (StrContains(MapName, "c6m3", false) > -1) Format(map, sizeof(map), "The Sacrifice");
  271. else if (StrContains(MapName, "c3m4", false) > -1) Format(map, sizeof(map), "Hard Rain");
  272. else if (StrContains(MapName, "c4m5", false) > -1) Format(map, sizeof(map), "The Parish");
  273. else if (StrContains(MapName, "c5m5", false) > -1) Format(map, sizeof(map), "No Mercy");
  274. else if (StrContains(MapName, "c7m3", false) > -1) Format(map, sizeof(map), "Dark Carnival");
  275. else if (StrContains(MapName, "c8m5", false) > -1) Format(map, sizeof(map), "Crash Course");
  276. else if (StrContains(MapName, "c13m4", false) > -1) Format(map, sizeof(map), "Dead Center");
  277. else if (StrContains(MapName, "c11m5", false) > -1) Format(map, sizeof(map), "Blood Harvest");
  278. else if (StrContains(MapName, "c12m5", false) > -1) Format(map, sizeof(map), "Dead Center");
  279. else if (StrContains(MapName, "c10m5", false) > -1) Format(map, sizeof(map), "Dead Air");
  280. else if (StrContains(MapName, "c9m2", false) > -1) Format(map, sizeof(map), "Death Toll");
  281. else
  282. {
  283. // Custom campaign always rolls back to dead center
  284. Format(map, sizeof(map), "Dead Center");
  285. }
  286.  
  287. if (count == 0)
  288. {
  289. PrintToChatAll("%t", "Random Map Selection", blue, white, map);
  290. }
  291. count++;
  292. if (count == GetConVarInt(g_Module_Campaign_MapchangeDelay))
  293. {
  294. count = -1;
  295. ChangeCampaign(false);
  296. return Plugin_Stop;
  297. }
  298. return Plugin_Continue;
  299. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement