Advertisement
Guest User

Untitled

a guest
Mar 18th, 2019
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.32 KB | None | 0 0
  1. #include common_scripts\utility;
  2. #include maps\mp\_utility;
  3. #include maps\mp\gametypes\_hud_util;
  4.  
  5. /***************************************\
  6. |* GUN GAME 2.0 by MW2 Pro Tactics *|
  7. |* http://skixtech.com/mw2-pro-tactics *|
  8. \***************************************/
  9.  
  10. initGuns()
  11. {
  12. //Gun Name, Laser Sight, Akimbo
  13. addGun("throwingknife_mp", false, false);
  14. addGun("usp_fmj_mp", false, false);
  15. addGun("usp_akimbo_fmj_mp", false, true);
  16. addGun("beretta_fmj_mp", false, false);
  17. addGun("beretta_akimbo_fmj_mp", false, true);
  18. addGun("coltanaconda_fmj_mp", false, false);
  19. addGun("coltanaconda_akimbo_fmj_mp", false, true);
  20. addGun("deserteagle_fmj_mp", false, false);
  21. addGun("deserteaglegold_mp", false, false);
  22. addGun("deserteagle_akimbo_fmj_mp", false, true);
  23. addGun("pp2000_mp", true, false);
  24. addGun("pp2000_akimbo_silencer_mp", true, true);
  25. addGun("tmp_mp", true, false);
  26. addGun("tmp_akimbo_xmags_mp", true, true);
  27. addGun("beretta393_eotech_mp", true, false);
  28. addGun("beretta393_akimbo_mp", true, true);
  29. addGun("glock_mp", true, false);
  30. addGun("glock_akimbo_silencer_mp", true, true);
  31. addGun("ranger_fmj_mp", false, false);
  32. addGun("ranger_akimbo_mp", false , true);
  33. addGun("model1887_fmj_mp", true, false);
  34. addGun("model1887_akimbo_mp", true, true);
  35. addGun("m1014_grip_reflex_mp", true, false);
  36. addGun("striker_grip_reflex_mp", true, false);
  37. addGun("aa12_eotech_grip_mp", true, false);
  38. addGun("spas12_grip_mp", true, false);
  39. addGun("uzi_reflex_rof_mp", true, false);
  40. addGun("uzi_akimbo_xmags_mp", true, true);
  41. addGun("mp5k_reflex_rof_mp", true, false);
  42. addGun("mp5k_akimbo_silencer_mp", true, true);
  43. addGun("ump45_reflex_rof_mp", true, false);
  44. addGun("ump45_akimbo_fmj_mp", true, true);
  45. addGun("p90_fmj_silencer_mp", true, true);
  46. addGun("p90_akimbo_rof_mp", true, true);
  47. addGun("kriss_thermal_xmags_mp", true, false);
  48. addGun("kriss_akimbo_rof_mp", true, true);
  49. addGun("famas_eotech_silencer_mp", true, false);
  50. addGun("fal_acog_mp", true, false);
  51. addGun("fn2000_heartbeat_mp", true, false);
  52. addGun("scar_reflex_mp", true, false);
  53. addGun("m4_fmj_silencer_mp", true, false);
  54. addGun("ak47_heartbeat_silencer_mp", true, false);
  55. addGun("m16_reflex_mp", true, false);
  56. addGun("masada_reflex_mp", true, false);
  57. addGun("sa80_grip_xmags_mp", true, false);
  58. addGun("aug_grip_mp", true, false);
  59. addGun("rpd_grip_mp", true, false);
  60. addGun("mg4_grip_mp", true, false);
  61. addGun("m240_grip_mp", true, false);
  62. addGun("wa2000_fmj_mp", false, false);
  63. addGun("m21_fmj_mp", false, false);
  64. addGun("barrett_fmj_mp", false, false);
  65. addGun("cheytac_fmj_mp", false, false);
  66. addGun("m79_mp", false, false);
  67. addGun("at4_mp", true, false);
  68. addGun("frag_grenade_mp", false, false);
  69. addGun("semtex_mp", false, false);
  70. addGun("claymore_mp", false, false);
  71. addGun("c4_mp", false, false);
  72. addGun("rpg_mp", false, false);
  73. addGun("javelin_mp", true, false);
  74. addGun("stinger_mp", false, false);
  75. addGun("ac130_25mm_mp", false, false);
  76. addGun("ac130_40mm_mp", false, false);
  77. addGun("ac130_105mm_mp", false, false);
  78. }
  79.  
  80. addGun(gunName, laserSight, akimbo)
  81. {
  82. if(!isdefined(self.gunlist)) self.gunlist = [];
  83. gun = spawnstruct();
  84. gun.name = gunName;
  85. gun.laser = laserSight;
  86. gun.akimbo = akimbo;
  87. gun.camo = 7;
  88. self.gunlist[self.gunlist.size] = gun;
  89. }
  90.  
  91. spawnplayer()
  92. {
  93. self thread SuperFlash();
  94. self _clearPerks();
  95. self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
  96. self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
  97. self maps\mp\perks\_perks::givePerk("specialty_bulletpenetration");
  98. self maps\mp\perks\_perks::givePerk("specialty_exposeenemy");
  99. self maps\mp\perks\_perks::givePerk("specialty_extendedmags");
  100. self maps\mp\perks\_perks::givePerk("specialty_fastreload");
  101. self maps\mp\perks\_perks::givePerk("specialty_fastsnipe");
  102. self maps\mp\perks\_perks::givePerk("specialty_marathon");
  103. if(!isdefined(self.started)){
  104. self.scoretext = self createFontString("default", 1.5);
  105. self.scoretext setPoint("TOPRIGHT", "TOPRIGHT", -5, 0);
  106. if(self ishost()){
  107. level.cbpk = level.callbackPlayerKilled;
  108. level.callbackPlayerKilled = ::callbackPlayerKilled;
  109.  
  110. }
  111. if(!isdefined(self.gunlist) || self.gunlist.size == 0){
  112. self initGuns();
  113. setdvarifuninitialized("gg_mode", "normal");
  114. level.ggmode = getdvar("gg_mode");
  115. if(level.ggmode == "randommode"){
  116. switch(randomint(3)){
  117. case 0:
  118. level.ggmode = "random";
  119. break;
  120. case 1:
  121. level.ggmode = "inverse";
  122. break;
  123. }
  124. }
  125. if(level.ggmode == "random"){
  126. for(i = 0; i < self.gunlist.size; i++){
  127. gun = self.gunlist[i];
  128. rand = randomint(self.gunlist.size);
  129. self.gunlist[i] = self.gunlist[rand];
  130. self.gunlist[rand] = gun;
  131. }
  132. }else if(level.ggmode == "inverse"){
  133. for(i = 0; i < self.gunlist.size / 2; i++){
  134. gun = self.gunlist[i];
  135. self.gunlist[i] = self.gunlist[self.gunlist.size - i - 1];
  136. self.gunlist[self.gunlist.size - i - 1] = gun;
  137. }
  138. }
  139. self.gunlist[self.gunlist.size] = addGun("onemanarmy_mp", false, false);
  140. }
  141. setDvar("party_hostmigration", 0);
  142. setDvar("badhost_endGameIfISuck", 0);
  143. setDvar("scr_dm_scorelimit", 0);
  144. setDvar("scr_dm_timelimit", 0);
  145. setDvar("scr_war_scorelimit", 0);
  146. setDvar("scr_war_timelimit", 0);
  147. setDvar("bg_fallDamageMaxHeight", 5001);
  148. setDvar("bg_fallDamageMinHeight", 5000);
  149. setDvar("scr_ctf_waverespawndelay", 0);
  150. setDvar("scr_sab_playerrespawndelay", 0);
  151. setDvar("scr_maxPerPlayerExplosives", 8);
  152. setDvar("scr_nukeCancelMode", 2);
  153. setDvar("scr_nukeTimer", 20);
  154. setDvar("ui_gametype", "Gungame 2.0 by MW2 Pro Tactics");
  155. self setClientDvar("cg_scoreboardPingText", 1);
  156. if(level.ggmode == "random"){
  157. self thread maps\mp\gametypes\_hud_message::hintMessage("^2Random Gun Game 2.0");
  158. self thread maps\mp\gametypes\_hud_message::hintMessage("^2Kill Enemies to Change Your Gun");
  159. }else if(level.ggmode == "inverse"){
  160. self thread maps\mp\gametypes\_hud_message::hintMessage("^2Inverse Gun Game 2.0");
  161. self thread maps\mp\gametypes\_hud_message::hintMessage("^2Kill Enemies to Downgrade Your Gun");
  162. }else{
  163. self thread maps\mp\gametypes\_hud_message::hintMessage("^2Gun Game 2.0");
  164. self thread maps\mp\gametypes\_hud_message::hintMessage("^2Kill Enemies to Upgrade Your Gun");
  165. }
  166. self thread maps\mp\gametypes\_hud_message::hintMessage("^2Press ^7[{+actionslot 2}]^2 to Taunt");
  167. //DO NOT REMOVE THE FOLLOWING LINE
  168. self thread maps\mp\gametypes\_hud_message::hintMessage("^2For more great mods:");
  169. self thread maps\mp\gametypes\_hud_message::hintMessage("^2Donate at skixtech.com/donate!");
  170. //DO NOT REMOVE THAT ^
  171. self.started = true;
  172. }
  173. self thread doGun();
  174. self thread doAmmo();
  175. self notify("updateweapon");
  176. }
  177.  
  178. doGun()
  179. {
  180. self endon("death");
  181. while(true){
  182. self waittill("updateweapon");
  183. if(self.gunlevel < 0) self.gunlevel = 0;
  184. if(self.gunlist[self.gunlevel].laser) self setclientDvar("laserForceOn", 1);
  185. else self setclientDvar("laserForceOn", 0);
  186. self takeAllWeapons();
  187. self giveWeapon(self.gunlist[self.gunlevel].name, self.gunlist[self.gunlevel].camo, self.gunlist[self.gunlevel].akimbo);
  188. self giveMaxAmmo(self.gunlist[self.gunlevel].name);
  189. self.scoretext setText("^3 Level " + (self.gunlevel + 1));
  190. i = 0;
  191. while(i < 10 && self getcurrentweapon() != self.gunlist[self.gunlevel].name){
  192. self switchToWeapon(self.gunlist[self.gunlevel].name);
  193. wait .2;
  194. i++;
  195. }
  196. if(i == 10) self suicide();
  197. if(self.gunlevel == self.gunlist.size - 1) self maps\mp\killstreaks\_killstreaks::giveKillstreak("nuke", true, true);
  198. setDvar("cg_drawcrosshair", 0);
  199. }
  200. }
  201.  
  202. doAmmo(){
  203. self endon("disconnect");
  204. self endon("death");
  205. self notifyonplayercommand("restart", "-activate");
  206. while(true){
  207. self thread doAmmo2();
  208. self waittill("restart");
  209. }
  210. }
  211. doAmmo2(){
  212. self notifyonplayercommand("stopit", "+activate");
  213. self endon("stopit");
  214. self endon("disconnect");
  215. self endon("death");
  216. while(true){
  217. wait 1;
  218. self giveMaxAmmo(self.gunlist[self.gunlevel].name);
  219. if(self getcurrentweapon() != self.gunlist[self.gunlevel].name) self switchToWeapon(self.gunlist[self.gunlevel].name);
  220. setDvar("cg_drawcrosshair", 0);
  221. }
  222. }
  223.  
  224. callbackPlayerKilled(eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration){
  225. if(sMeansOfDeath == "MOD_MELEE"){
  226. self thread maps\mp\gametypes\_hud_message::hintMessage("^2LOL NOOB U GOT KNIFED!");
  227. self.gunlevel--;
  228. }else if(isdefined(eAttacker) && eAttacker != self && isdefined(eAttacker.gunlist) && sWeapon == eAttacker.gunlist[eAttacker.gunlevel] && eAttacker.gunlevel < eAttacker.gunlist.size-1){
  229. eAttacker thread maps\mp\gametypes\_hud_message::hintMessage("^2Weapon Upgraded!");
  230. eAttacker.gunlevel++;
  231. eAttacker notify("updateweapon");
  232. }else{
  233. self thread maps\mp\gametypes\_hud_message::hintMessage("^2LOL U SUICIDED U NOOB!");
  234. self.gunlevel--;
  235. }
  236. self takeAllWeapons();
  237. self [[level.cbpk]](eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration);
  238. }
  239.  
  240. SuperFlash(){
  241. self endon("death");
  242. self notifyonplayercommand("taunt", "+actionslot 2");
  243. for(;;){
  244. self waittill("taunt");
  245. sound = "";
  246. switch(randomint(18)){
  247. case 0:
  248. sound = "mp_stm_enemyspotted";
  249. break;
  250. case 1:
  251. sound = "mp_stm_iminposition";
  252. break;
  253. case 2:
  254. sound = "mp_stm_areasecure";
  255. break;
  256. case 3:
  257. sound = "mp_stm_sniper";
  258. break;
  259. case 4:
  260. sound = "mp_stm_needreinforcements";
  261. break;
  262. case 5:
  263. sound = "mp_rsp_yessir";
  264. break;
  265. case 6:
  266. sound = "mp_rsp_nosir";
  267. break;
  268. case 7:
  269. sound = "mp_rsp_onmyway";
  270. break;
  271. case 8:
  272. sound = "mp_rsp_sorry";
  273. break;
  274. case 9:
  275. sound = "mp_rsp_greatshot";
  276. break;
  277. case 10:
  278. sound = "mp_cmd_followme";
  279. break;
  280. case 11:
  281. sound = "mp_cmd_movein";
  282. break;
  283. case 12:
  284. sound = "mp_cmd_fallback";
  285. break;
  286. case 13:
  287. sound = "mp_cmd_suppressfire";
  288. break;
  289. case 14:
  290. sound = "mp_cmd_attackleftflank";
  291. break;
  292. case 15:
  293. sound = "mp_cmd_attackrightflank";
  294. break;
  295. case 16:
  296. sound = "mp_cmd_holdposition";
  297. break;
  298. case 17:
  299. sound = "mp_cmd_regroup";
  300. break;
  301. }
  302. self playSound(maps\mp\gametypes\_teams::getTeamVoicePrefix(self.team) + sound);
  303. wait 1;
  304. }
  305. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement