Advertisement
Guest User

Chaos Dogs v.1(Firing Range)

a guest
Aug 15th, 2012
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 46.91 KB | None | 0 0
  1. #include common_scripts\utility;
  2. #include maps\mp\_airsupport;
  3. #include maps\mp\_utility;
  4. #include maps\mp\gametypes\_hud_util;
  5.  
  6. /*//////////\\\\\\\\\\\\\\
  7. //....CHAOS DOGS V1.....\\
  8. ||======================||
  9. || This mod was made by ||
  10. || JellyInjector ||
  11. || and ||
  12. || Kylaii ||
  13. \\======================//
  14. \\\\\\\\\\\\////////////*/
  15.  
  16. //Dog Dvar Default Settings
  17. //setDvar( "scr_dog_count", "8" ); //number of dogs for killstreak
  18. //setDvar( "scr_dog_max_at_once", "4" ); //max dogs at once
  19. //setDvar( "scr_dog_health", "100" ); //dogs health
  20. //setDvar( "scr_dog_time", "60" ); //how long dogs last
  21.  
  22. init()
  23. {
  24. thread onPlayerConnect();
  25. thread onPlayerConnected();
  26.  
  27. level.casSpot = -110;
  28. level.casColor = 1;
  29. level.prematchPeriod = 23;
  30. level.doublePoints = 0;
  31. level.instaKill = 0;
  32. level.powerOn = 0;
  33. level.lastPowerup = 99;
  34.  
  35. thread doMap();
  36. thread powerDisplay();
  37. thread cleanUpSystem();
  38. thread summonDogs();
  39. thread roundCount();
  40. thread secret();
  41.  
  42. game["icons"]["allies"] = "compass_objpoint_dogs";
  43. setdvar( "g_TeamIcon_Allies", game["icons"]["allies"] );
  44.  
  45. precacheModel( "prop_suitcase_bomb" );
  46. PrecacheShader( "perk_times_two" );
  47. PrecacheShader( "hud_ammo_refill_drop" );
  48. PrecacheShader( "hud_ks_minigun" );
  49. PrecacheShader( "headicon_dead" );
  50.  
  51. wait 2;
  52.  
  53. level.fx_tabun_0 = level._effect["fx_fire_player_sm_smk_2sec"];
  54. level.fx_tabun_1 = level._effect["character_fire_death_sm"];
  55. level.fx_tabun_2 = level._effect["character_fire_death_torso"];
  56. level.fx_tabun_3 = "napalmground_sm_mp";
  57. level.fx_tabun_single = "napalmground_lg_mp";
  58. PreCacheItem( level.fx_tabun_0 );
  59. PreCacheItem( level.fx_tabun_1 );
  60. PreCacheItem( level.fx_tabun_2 );
  61. PreCacheItem( level.fx_tabun_3 );
  62. PreCacheItem( level.fx_tabun_single );
  63. }
  64.  
  65. onPlayerConnect()
  66. {
  67. for(;;)
  68. {
  69. level waittill( "connecting", player );
  70.  
  71. player thread playerTeams();
  72. }
  73. }
  74.  
  75. onPlayerConnected()
  76. {
  77. for(;;)
  78. {
  79. level waittill( "connected", player );
  80.  
  81. player thread onPlayerSpawned();
  82. if( level.powerOn == 0 )
  83. player thread doMapThinkPOff();
  84. player thread doMapThinkPOn();
  85. player thread perkDisplay();
  86. player thread cash();
  87. player thread globalVars();
  88. player thread setupTeam();
  89. player thread reset();
  90. //player thread doVision();
  91. }
  92. }
  93.  
  94. onPlayerSpawned()
  95. {
  96. for(;;)
  97. {
  98. self waittill( "spawned_player" );
  99.  
  100. self thread spawnStuff();
  101. }
  102. }
  103.  
  104. spawnStuff()
  105. {
  106. self clearPerks();
  107. self takeAllWeapons();
  108. self giveWeapon( "knife_mp" );
  109. self giveWeapon( "cz75_mp" );
  110. self giveMaxAmmo( "cz75_mp" );
  111. self giveWeapon( "m1911_mp" );
  112. self giveMaxAmmo( "m1911_mp" );
  113. self giveWeapon( "tabun_gas_mp" );
  114. self switchToWeapon( "m1911_mp" );
  115.  
  116. self.maxhealth = 400;
  117. self.health = self.maxhealth;
  118. }
  119.  
  120. doVision()
  121. {
  122. self setClientDvar( "r_filmTweakInvert", "0" );
  123. self setClientDvar( "r_filmUseTweaks", "1" );
  124. self setClientDvar( "r_filmTweakEnable", "1" );
  125. self setClientDvar( "r_filmTweakLightTint", "0 0 0" );
  126. self setClientDvar( "r_filmTweakSaturation", "1 1 1" );
  127. self setClientDvar( "r_filmTweakHue", "0 0 0" );
  128. }
  129.  
  130. createGreen( pos, angle ) // Crate for Miscellanious
  131. {
  132. crateG = spawn( "script_model", pos );
  133. crateG setModel( "mp_supplydrop_ally" );
  134. crateG.angles = angle;
  135. }
  136.  
  137. createPerk( pos, angle, num ) // Crate for Machines
  138. {
  139. level.crateR[num] = spawn( "script_model", pos );
  140. level.crateR[num] setModel( "mp_supplydrop_axis" );
  141. level.crateR[num].angles = angle;
  142. }
  143.  
  144. createRed( pos, angle ) // Crate for Red
  145. {
  146. cratered = spawn( "script_model", pos );
  147. cratered setModel( "mp_supplydrop_axis" );
  148. cratered.angles = angle;
  149. }
  150.  
  151. createBlack( pos, angle ) // Crate for Boundaries
  152. {
  153. crateB = spawn( "script_model", pos );
  154. crateB setModel( "mp_supplydrop_boobytrapped" );
  155. crateB.angles = angle;
  156. }
  157.  
  158. createPower( pos, angle ) // RCXD for Power Box
  159. {
  160. level.xdcar = spawn( "script_model", pos );
  161. level.xdcar setModel( "t5_veh_rcbomb_allies" );
  162. level.xdcar.angles = angle;
  163. }
  164.  
  165. createDoor( pos, angle, num ) // Crate for Moving Doors
  166. {
  167. level.crateD[num] = spawn( "script_model", pos );
  168. level.crateD[num] setModel( "mp_supplydrop_ally" );
  169. level.crateD[num].angles = angle;
  170. }
  171.  
  172. createGun( pos, angle, gun )
  173. {
  174. level.gun[gun] = spawn( "script_model", pos );
  175. level.gun[gun] setModel( getWeaponModel( gun + "_mp" ) );
  176. level.gun[gun].angles = angle;
  177. }
  178.  
  179. createSpot( pos )
  180. {
  181. level.teleSpot = spawn( "script_model", pos );
  182. }
  183.  
  184. createTur( pos, angle, num )
  185. {
  186. level.tur[num] = spawn( "script_model", pos );
  187. level.tur[num] setModel( "t5_weapon_sam_turret_red" );
  188. level.tur[num].angles = angle;
  189. }
  190.  
  191. createSuitcase( pos, angle )
  192. {
  193. suitcase = spawn( "script_model", pos );
  194. suitcase setModel( "prop_suitcase_bomb" );
  195. suitcase.angles = angle;
  196. suitcase thread suitcaseThink();
  197. }
  198.  
  199. doMap()
  200. {
  201. // Perk Machines
  202. level.bunkers[1] = createPerk( ( -315.008, 1952.55, 25.882 ), ( -180, 290, -90 ), 1 ); //Near TV's
  203. level.bunkers[2] = createPerk( ( 859.595, 963.868, 128.458 ), ( 0, 150, 90 ), 2 ); //Second Floor of Flag A (domination) building
  204. level.bunkers[3] = createPerk( ( -721.493, -562.177, -92.2126 ), ( 0, 0, 90 ), 3 ); //Near Firing Range
  205. level.bunkers[54] = createPerk( ( 817.5, -167.711, 14.0216 ), ( 0, 90, 90 ), 4 ); // Secret
  206.  
  207. // Boundaries
  208. level.bunkers[4] = createBlack( ( 990.525, -35.2952, 14.8994 ), ( 0, 0, -90 ) );
  209. level.bunkers[5] = createBlack( ( 810.81, -64.7341, 43.6618 ), ( 0, 270, 90 ) );
  210. level.bunkers[19] = createBlack( ( 482.302, 1145.52, 274.153 ), ( 0, 60, 0 ) );
  211. level.bunkers[20] = createBlack( ( 542.941, 1108.32, 272.515 ), ( 0, 240, 0 ) );
  212. level.bunkers[21] = createBlack( ( 339.211, 878.935, 276.697 ), ( 0, 60, 0 ) );
  213. level.bunkers[22] = createBlack( ( 397.409, 843.727, 278.233 ), ( 0, 60, 0 ) );
  214. level.bunkers[42] = createBlack( ( 1435.73, 1314.05, 121 ), ( 0, 60, 90 ) );
  215. level.bunkers[43] = createBlack( ( 1460.95, 1354.71, 121 ), ( 0, 60, 90 ) );
  216. level.bunkers[44] = createBlack( ( 1485.36, 1396.48, 121 ), ( 0, 60, 90 ) );
  217. level.bunkers[45] = createBlack( ( 1509.71, 1437.27, 121 ), ( 0, 60, 90 ) );
  218. level.bunkers[49] = createBlack( ( 255.877, 742.799, 46.0719 ), ( 90, 160, 160 ) );
  219. level.bunkers[50] = createBlack( ( 4.797353, 962.675, 161.722 ), ( 90, 170, -180 ) );
  220. level.bunkers[51] = createBlack( ( 521.737, 1123.51, -9.96467 ), ( 0, 330, 90 ) );
  221. level.bunkers[52] = createBlack( ( 1462.63, 1364.3, 120.987 ), ( 0, 240, -90 ) );
  222. level.bunkers[53] = createBlack( ( -373.212, 1925.54, 37.2405 ), ( 90, 170, -180 ) );
  223. level.bunkers[55] = createBlack( ( 19.474, 911.499, 46.4463 ), ( 90, 0, -70 ) );
  224. level.bunkers[56] = createBlack( ( 380.987, 1077.38, 267.14 ), ( 0, 60, -90 ) );
  225. level.bunkers[57] = createBlack( ( 389.834, 1020.67, 167.443 ), ( 90, 350, 20 ) );
  226. level.bunkers[58] = createBlack( ( 414.224, 1011.39, 168.265 ), ( 90, 350, 20 ) );
  227.  
  228. // Teleporter
  229. level.bunkers[7] = createGreen( ( 1541.09, 1437.8, -13.8212 ), ( 0, 150, 90 ) );
  230. level.bunkers[8] = createGreen( ( 1511.5, 1455.28, -13 ), ( -180, 160, 90 ) );
  231. level.bunkers[9] = createGreen( ( 1574.41, 1421.62, -13.5092 ), ( 0, 150, 90 ) );
  232. level.bunkers[10] = createGreen( ( 1519.63, 1444.48, 39.2482 ), ( 0, 60, 0 ) );
  233. level.bunkers[11] = createGreen( ( 1580.14, 1412.93, 42.395 ), ( 0, 60, 0 ) );
  234. level.bunkers[12] = createDoor( ( 1602.33, 1398.83, 62.9695 ), ( 0, 150, 90 ), 1 );
  235. level.bunkers[13] = createDoor( ( 1632.57, 1378.02, 64.6112 ), ( 0, 150, 90 ), 2 );
  236. level.bunkers[14] = createGreen( ( 1654.02, 1372.95, -11.8996 ), ( 0, 240, -90 ) );
  237. level.bunkers[16] = createGreen( ( 1637.93, 1379.34, 42.3871 ), ( 0, 60, 0 ) );
  238. level.bunkers[17] = createGreen( ( 1650.83, 1374.77, -12.0637 ), ( 0, 330, -90 ) );
  239. level.bunkers[18] = createSpot( ( 1531.69, 1335.03, -47.875 ) );
  240. level.bunkers[24] = createGreen( ( 1636.58, 1337.78, -12.0023 ), ( 0, 60, 90 ) );
  241. level.bunkers[25] = createGreen( ( 1619.59, 1310.5, -12.4566 ), ( 0, 60, 90 ) );
  242. level.bunkers[26] = createGreen( ( 1604.19, 1284.2, -11.5834 ), ( 0, 60, 90 ) );
  243. level.bunkers[27] = createGreen( ( 1590.46, 1259.8, -11.9353 ), ( 0, 60, 90 ) );
  244. level.bunkers[28] = createGreen( ( 1576.98, 1238.55, -12.175 ), ( 0, 60, 90 ) );
  245. level.bunkers[29] = createGreen( ( 1644.78, 1354.06, 41.259 ), ( 90, 330, 0 ) );
  246. level.bunkers[30] = createGreen( ( 1609.37, 1292.61, 40.6795 ), ( -90, 150, 0 ) );
  247. level.bunkers[31] = createGreen( ( 1586.44, 1252.25, 40.7318 ), ( 90, 330, 0 ) );
  248.  
  249. // Power Box
  250. level.bunkers[15] = createPower( ( -25.8445, 1420.01, -6.53421 ), ( 90, 40, 150 ) );
  251.  
  252. // Guns
  253. level.bunkers[32] = createGun( ( 876.456, -21.6794, -54.1622 ), ( 0, 0, 0 ), "rottweil72" );
  254. level.bunkers[32] = createGun( ( -952.034, 1153.49, -4.41626 ), ( 0, 340, 0 ), "m14" );
  255. level.bunkers[32] = createGun( ( 1357.96, 2492.9, 5.32343 ), ( 0, 90, 0 ), "dragunov" );
  256.  
  257. wait 0.5;
  258.  
  259. // Mystery Box
  260. level.oldMysBox = 99;
  261. level.mBoxSpot = [];
  262. level.mBoxAngle = [];
  263. level.mBoxSpot[0] = ( -1025.25, 1869.83, -41.7079 );
  264. level.mBoxAngle[0] = ( 0, 160, 0 );
  265. level.mBoxSpot[1] = ( 2109.52, 2243.94, -27.6325 );
  266. level.mBoxAngle[1] = ( 0, 180, 0 );
  267. level.mBoxSpot[2] = ( 985.453, 1427.71, -35.1813 );
  268. level.mBoxAngle[2] = ( 0, 10, 0 );
  269. level.mBoxSpot[3] = ( -388.802, -306.542, -107.276 );
  270. level.mBoxAngle[3] = ( 0, 180, 0 );
  271. thread newMysterybox();
  272.  
  273. wait 0.5;
  274.  
  275. // Pack-a-Punch
  276. level.bunkers[39] = createPack( ( 396.196, 1027.78, 208.911 ), ( 0, 150, 0 ) );
  277. level.bunkers[40] = createTur( ( 403.812, 1025.83, 175.409 ), ( 0, 240, 0 ), 1 );
  278. level.bunkers[41] = createTur( ( 395.818, 1026.79, 234.521 ), ( 0, 180, -180 ), 2 );
  279.  
  280. wait 0.5;
  281.  
  282. // Suitcases
  283. level.bunkers[46] = createSuitcase( ( 2046.35, 1772.14, -49.6505 ), ( 0, 10, 0 ) );
  284. level.bunkers[47] = createSuitcase( ( -1272.38, 1444.92, -55.4007 ), ( 0, 130, 0 ) );
  285. level.bunkers[48] = createSuitcase( ( -9.16544, 182.944, -39.0787 ), ( 0, 320, 20 ) );
  286. }
  287.  
  288. doMapThinkPOff()
  289. {
  290. self endon( "disconnect" );
  291. level endon( "power_on" );
  292. level endon("game_wasover");
  293.  
  294. for(;;)
  295. {
  296. if( distance( self.origin, level.xdcar.origin ) < 75 )
  297. {
  298. if( self.cash >= 200 )
  299. {
  300. self setLowerMessage( "Press [{+activate}] to turn the power on (^2200^7)" );
  301. while( distance( self.origin, level.xdcar.origin ) < 75 )
  302. {
  303. if( self useButtonPressed() == true )
  304. {
  305. self playSoundToPlayer( "mpl_turret_alert", self );
  306. self thread moreCash( -200 );
  307. level.powerOn = 1;
  308. level notify( "power_on" );
  309. }
  310. wait 0.05;
  311. }
  312. }
  313. else
  314. {
  315. self setLowerMessage( "Not enough money (^2200^7)" );
  316. while( distance( self.origin, level.xdcar.origin ) < 75 )
  317. wait 0.05;
  318. }
  319. }
  320.  
  321. if( distance( self.origin, level.gun["rottweil72"].origin ) < 75 )
  322. {
  323. if( self.cash >= 100 )
  324. {
  325. self setLowerMessage( "Press [{+activate}] to buy the Olympia (^2100^7)" );
  326. while( distance( self.origin, level.gun["rottweil72"].origin ) < 75 )
  327. {
  328. if( self useButtonPressed() == true )
  329. {
  330. self playSoundToPlayer( "mpl_turret_alert", self );
  331. selfWepSize = self GetWeaponsList();
  332. if( self HasWeapon( "tabun_gas_mp" ) )
  333. wepSizeLimit = 4;
  334. else
  335. wepSizeLimit = 3;
  336. if( selfWepSize.size >= wepSizeLimit && self.weaponPerk == 0 || selfWepSize.size >= (wepSizeLimit+1) && self.weaponPerk == 1 )
  337. self takeWeapon(self getCurrentWeapon());
  338. self giveWeapon( "rottweil72_mp" );
  339. self switchToWeapon( "rottweil72_mp" );
  340. self thread moreCash( -100 );
  341. break;
  342. }
  343. wait 0.05;
  344. }
  345. }
  346. else
  347. {
  348. self setLowerMessage( "Not Enough Money (^2100^7)" );
  349. while( distance( self.origin, level.gun["rottweil72"].origin ) < 75 )
  350. wait 0.05;
  351. }
  352. }
  353.  
  354. if( distance( self.origin, level.gun["m14"].origin ) < 75 )
  355. {
  356. if( self.cash >= 100 )
  357. {
  358. self setLowerMessage( "Press [{+activate}] to buy the M14 (^2100^7)" );
  359. while( distance( self.origin, level.gun["m14"].origin ) < 75 )
  360. {
  361. if( self useButtonPressed() == true )
  362. {
  363. self playSoundToPlayer( "mpl_turret_alert", self );
  364. selfWepSize = self GetWeaponsList();
  365. if( self HasWeapon( "tabun_gas_mp" ) )
  366. wepSizeLimit = 4;
  367. else
  368. wepSizeLimit = 3;
  369. if( selfWepSize.size >= wepSizeLimit && self.weaponPerk == 0 || selfWepSize.size >= (wepSizeLimit+1) && self.weaponPerk == 1 )
  370. self takeWeapon(self getCurrentWeapon());
  371. self giveWeapon( "m14_mp" );
  372. self switchToWeapon( "m14_mp" );
  373. self thread moreCash( -100 );
  374. break;
  375. }
  376. wait 0.05;
  377. }
  378. }
  379. else
  380. {
  381. self setLowerMessage( "Not Enough Money (^2100^7)" );
  382. while( distance( self.origin, level.gun["m14"].origin ) < 75 )
  383. wait 0.05;
  384. }
  385. }
  386.  
  387. if( distance( self.origin, level.gun["dragunov"].origin ) < 75 )
  388. {
  389. if( self.cash >= 100 )
  390. {
  391. self setLowerMessage( "Press [{+activate}] to buy the Dragunov (^2100^7)" );
  392. while( distance( self.origin, level.gun["dragunov"].origin ) < 75 )
  393. {
  394. if( self useButtonPressed() == true )
  395. {
  396. self playSoundToPlayer( "mpl_turret_alert", self );
  397. selfWepSize = self GetWeaponsList();
  398. if( self HasWeapon( "tabun_gas_mp" ) )
  399. wepSizeLimit = 4;
  400. else
  401. wepSizeLimit = 3;
  402. if( selfWepSize.size >= wepSizeLimit && self.weaponPerk == 0 || selfWepSize.size >= (wepSizeLimit+1) && self.weaponPerk == 1 )
  403. self takeWeapon(self getCurrentWeapon());
  404. self giveWeapon( "dragunov_mp" );
  405. self switchToWeapon( "rottweil72_mp" );
  406. self thread moreCash( -100 );
  407. break;
  408. }
  409. wait 0.05;
  410. }
  411. }
  412. else
  413. {
  414. self setLowerMessage( "Not Enough Money (^2100^7)" );
  415. while( distance( self.origin, level.gun["dragunov"].origin ) < 75 )
  416. wait 0.05;
  417. }
  418. }
  419.  
  420. if( distance( self.origin, level.crateR[1].origin ) < 75 || distance( self.origin, level.crateR[2].origin ) < 75 || distance( self.origin, level.teleSpot.origin ) < 100 || distance( self.origin, level.crateR[3].origin ) < 75 || distance( self.origin, level.crateR[4].origin ) < 75 )
  421. {
  422. self setLowerMessage( "Turn the power on to use" );
  423. while( distance( self.origin, level.crateR[1].origin ) < 75 || distance( self.origin, level.crateR[2].origin ) < 75 || distance( self.origin, level.teleSpot.origin ) < 100 )
  424. wait 0.05;
  425. }
  426. else
  427. {
  428. self clearLowerMessage( 0.5 );
  429. }
  430. wait 0.05;
  431. }
  432. }
  433.  
  434. doMapThinkPOn()
  435. {
  436. self endon( "disconnect" );
  437. level endon("game_wasover");
  438.  
  439. self.speedPerk = 0;
  440. self.healthPerk = 0;
  441. self.weaponPerk = 0;
  442. self.ghostPerk = 0;
  443.  
  444. level.teleInProg = 0;
  445.  
  446. if( level.powerOn == 0 )
  447. level waittill( "power_on" );
  448.  
  449. for(;;)
  450. {
  451. if( distance( self.origin, level.crateR[1].origin ) < 75 && self.speedPerk == 0 )
  452. {
  453. if( self.cash >= 150 )
  454. {
  455. self setLowerMessage( "Press [{+activate}] to buy Speed (^2150^7)" );
  456. while( distance( self.origin, level.crateR[1].origin ) < 75 )
  457. {
  458. if( self useButtonPressed() == true )
  459. {
  460. self playSoundToPlayer( "mpl_turret_alert", self );
  461. self.speedPerk = 1;
  462. self thread moreCash( -150 );
  463. break;
  464. }
  465. wait 0.05;
  466. }
  467. }
  468. else
  469. {
  470. self setLowerMessage( "Not Enough Money (^2150^7)" );
  471. while( distance( self.origin, level.crateR[1].origin ) < 75 )
  472. wait 0.05;
  473. }
  474. }
  475.  
  476. if( distance( self.origin, level.crateR[2].origin ) < 75 && self.healthPerk == 0 )
  477. {
  478. if( self.cash >= 150 )
  479. {
  480. self setLowerMessage( "Press [{+activate}] to buy Juggernaut (^2150^7)" );
  481. while( distance( self.origin, level.crateR[2].origin ) < 75 )
  482. {
  483. if( self useButtonPressed() == true )
  484. {
  485. self playSoundToPlayer( "mpl_turret_alert", self );
  486. self.healthPerk = 1;
  487. self thread moreCash( -150 );
  488. break;
  489. }
  490. wait 0.05;
  491. }
  492. }
  493. else
  494. {
  495. self setLowerMessage( "Not Enough Money (^2150^7)" );
  496. while( distance( self.origin, level.crateR[2].origin ) < 75 )
  497. wait 0.05;
  498. }
  499. }
  500.  
  501. if( distance( self.origin, level.crateR[3].origin ) < 75 && self.weaponPerk == 0 )
  502. {
  503. if( self.cash >= 150 )
  504. {
  505. self setLowerMessage( "Press [{+activate}] to buy Overkill (^2150^7)" );
  506. while( distance( self.origin, level.crateR[3].origin ) < 75 )
  507. {
  508. if( self useButtonPressed() == true )
  509. {
  510. self playSoundToPlayer( "mpl_turret_alert", self );
  511. self.weaponPerk = 1;
  512. self thread moreCash( -150 );
  513. break;
  514. }
  515. wait 0.05;
  516. }
  517. }
  518. else
  519. {
  520. self setLowerMessage( "Not Enough Money (^2150^7)" );
  521. while( distance( self.origin, level.crateR[3].origin ) < 75 )
  522. wait 0.05;
  523. }
  524. }
  525.  
  526. if( distance( self.origin, level.crateR[4].origin ) < 75 && self.ghostPerk == 0 )
  527. {
  528. if( self.cash >= 1000 )
  529. {
  530. self setLowerMessage( "Press [{+activate}] to buy Ghost (^21000^7)" );
  531. while( distance( self.origin, level.crateR[4].origin ) < 75 )
  532. {
  533. if( self useButtonPressed() == true )
  534. {
  535. self playSoundToPlayer( "mpl_turret_alert", self );
  536. self.ghostPerk = 1;
  537. self thread doGhost();
  538. self thread moreCash( -1000 );
  539. break;
  540. }
  541. wait 0.05;
  542. }
  543. }
  544. else
  545. {
  546. self setLowerMessage( "Not Enough Money (^21000^7)" );
  547. while( distance( self.origin, level.crateR[4].origin ) < 75 )
  548. wait 0.05;
  549. }
  550. }
  551.  
  552. if( distance( self.origin, level.gun["rottweil72"].origin ) < 75 )
  553. {
  554. if( self.cash >= 100 )
  555. {
  556. self setLowerMessage( "Press [{+activate}] to buy the Olympia (^2100^7)" );
  557. while( distance( self.origin, level.gun["rottweil72"].origin ) < 75 )
  558. {
  559. if( self useButtonPressed() == true )
  560. {
  561. self playSoundToPlayer( "mpl_turret_alert", self );
  562. selfWepSize = self GetWeaponsList();
  563. if( self HasWeapon( "tabun_gas_mp" ) )
  564. wepSizeLimit = 4;
  565. else
  566. wepSizeLimit = 3;
  567. if( selfWepSize.size >= wepSizeLimit && self.weaponPerk == 0 || selfWepSize.size >= (wepSizeLimit+1) && self.weaponPerk == 1 )
  568. self takeWeapon( self getCurrentWeapon() );
  569. self giveWeapon( "rottweil72_mp" );
  570. self switchToWeapon( "rottweil72_mp" );
  571. self thread moreCash( -100 );
  572. break;
  573. }
  574. wait 0.05;
  575. }
  576. }
  577. else
  578. {
  579. self setLowerMessage( "Not Enough Money (^2100^7)" );
  580. while( distance( self.origin, level.gun["rottweil72"].origin ) < 75 )
  581. wait 0.05;
  582. }
  583. }
  584.  
  585. if( distance( self.origin, level.gun["m14"].origin ) < 75 )
  586. {
  587. if( self.cash >= 100 )
  588. {
  589. self setLowerMessage( "Press [{+activate}] to buy the M14 (^2100^7)" );
  590. while( distance( self.origin, level.gun["m14"].origin ) < 75 )
  591. {
  592. if( self useButtonPressed() == true )
  593. {
  594. self playSoundToPlayer( "mpl_turret_alert", self );
  595. selfWepSize = self GetWeaponsList();
  596. if( self HasWeapon( "tabun_gas_mp" ) )
  597. wepSizeLimit = 4;
  598. else
  599. wepSizeLimit = 3;
  600. if( selfWepSize.size >= wepSizeLimit && self.weaponPerk == 0 || selfWepSize.size >= (wepSizeLimit+1) && self.weaponPerk == 1 )
  601. self takeWeapon(self getCurrentWeapon());
  602. self giveWeapon( "m14_mp" );
  603. self switchToWeapon( "m14_mp" );
  604. self thread moreCash( -100 );
  605. break;
  606. }
  607. wait 0.05;
  608. }
  609. }
  610. else
  611. {
  612. self setLowerMessage( "Not Enough Money (^2100^7)" );
  613. while( distance( self.origin, level.gun["m14"].origin ) < 75 )
  614. wait 0.05;
  615. }
  616. }
  617.  
  618. if( distance( self.origin, level.gun["dragunov"].origin ) < 75 )
  619. {
  620. if( self.cash >= 100 )
  621. {
  622. self setLowerMessage( "Press [{+activate}] to buy the Dragunov (^2100^7)" );
  623. while( distance( self.origin, level.gun["dragunov"].origin ) < 75 )
  624. {
  625. if( self useButtonPressed() == true )
  626. {
  627. self playSoundToPlayer( "mpl_turret_alert", self );
  628. selfWepSize = self GetWeaponsList();
  629. if( self HasWeapon( "tabun_gas_mp" ) )
  630. wepSizeLimit = 4;
  631. else
  632. wepSizeLimit = 3;
  633. if( selfWepSize.size >= wepSizeLimit && self.weaponPerk == 0 || selfWepSize.size >= (wepSizeLimit+1) && self.weaponPerk == 1 )
  634. self takeWeapon(self getCurrentWeapon());
  635. self giveWeapon( "dragunov_mp" );
  636. self switchToWeapon( "dragunov_mp" );
  637. self thread moreCash( -100 );
  638. break;
  639. }
  640. wait 0.05;
  641. }
  642. }
  643. else
  644. {
  645. self setLowerMessage( "Not Enough Money (^2100^7)" );
  646. while( distance( self.origin, level.gun["dragunov"].origin ) < 75 )
  647. wait 0.05;
  648. }
  649. }
  650.  
  651. if( distance( self.origin, level.teleSpot.origin ) < 100 && level.teleInProg == 0 )
  652. {
  653. self setLowerMessage( "Press [{+activate}] to use the teleporter" );
  654. while( distance( self.origin, level.teleSpot.origin ) < 100 )
  655. {
  656. if( self useButtonPressed() == true )
  657. {
  658. thread doTeleporter();
  659. break;
  660. }
  661. wait 0.05;
  662. }
  663. }
  664. else
  665. {
  666. self clearLowerMessage( 0.5 );
  667. }
  668. wait 0.05;
  669. }
  670. }
  671.  
  672. doTeleporter()
  673. {
  674. level.teleInProg = 1;
  675.  
  676. level.crateD[1] moveTo( ( 1606.79, 1404.26, -28.45 ), 1.5 );
  677. level.crateD[2] moveTo( ( 1638.11, 1385.74, -28.45 ), 1.5 );
  678.  
  679. for(k=0;k<level.players.size;k++)
  680. {
  681. if( distance( level.players[k].origin, level.teleSpot.origin ) < 100 )
  682. {
  683. level.players[k] clearLowerMessage( 0.1 );
  684. level.players[k] thread teleTimer();
  685. }
  686. }
  687.  
  688. wait 3;
  689.  
  690. for(i=0;i<level.players.size;i++)
  691. {
  692. if( distance( level.players[i].origin, level.teleSpot.origin ) < 100 )
  693. level.players[i] setOrigin( ( 460.572, 1062.25, 193.125 ) );
  694. wait 0.3;
  695. }
  696.  
  697. level.crateD[1] moveTo( ( 1602.33, 1398.83, 62.9695 ), 180 );
  698. level.crateD[2] moveTo( ( 1632.57, 1378.02, 64.6112 ), 180 );
  699.  
  700. wait 35;
  701.  
  702. for(i=0;i<level.players.size;i++)
  703. {
  704. if( distance( level.players[i].origin, level.packBox.origin ) <= 180 )
  705. level.players[i] setOrigin( ( 2397.32, 1496.48, -55.8978 ) );
  706. wait 0.3;
  707. }
  708.  
  709. level.teleInProg = 0;
  710. }
  711.  
  712. juggernaut()
  713. {
  714. self.maxhealth = 700;
  715. self.health = self.maxhealth;
  716. }
  717.  
  718. speed()
  719. {
  720. self setPerk( "specialty_unlimitedsprint" );
  721. self setPerk( "specialty_sprintrecovery" );
  722. self setPerk( "specialty_movefaster" );
  723. self setPerk( "specialty_fastweaponswitch" );
  724. self setPerk( "specialty_fastreload" );
  725. self setPerk( "specialty_fastmeleerecovery" );
  726. self setPerk( "specialty_fastmantle" );
  727. self setPerk( "specialty_fastinteract" );
  728. self setPerk( "specialty_fastads" );
  729. }
  730.  
  731. teleTimer()
  732. {
  733. timer1 = self createFontString( "objective", 2 );
  734. timer1 setPoint( "CENTER", "CENTER", 0, -50 );
  735. timer1 setText( "Teleporting in" );
  736. timer1.foreground = true;
  737. timer1.hidewheninmenu = true;
  738.  
  739. timer2 = self createFontString( "extrabig", 3 );
  740. timer2 setPoint( "CENTER", "CENTER", 0, 0 );
  741. timer2.foreground = true;
  742. timer2.hidewheninmenu = true;
  743.  
  744. for(t=3;t>0;t--)
  745. {
  746. timer2 setText( "^2" + t );
  747. wait 1;
  748. }
  749.  
  750. timer1 destroy();
  751. timer2 destroy();
  752.  
  753. wait 0.1;
  754.  
  755. timer3 = self createFontString( "extrabig", 2 );
  756. timer3 setPoint( "CENTER", "CENTER", 0, -100 );
  757. timer3.foreground = true;
  758. timer3.hidewheninmenu = true;
  759.  
  760. for(t=35;t>0;t--)
  761. {
  762. timer3 setText( "Returning in: ^2" + t );
  763. wait 1;
  764. }
  765.  
  766. timer3 destroy();
  767. }
  768.  
  769. powerDisplay()
  770. {
  771. pow = createServerFontString( "objective", 1.5 );
  772. pow setPoint( "CENTER", "RIGHT", -40, -190 );
  773. pow setText( "Power: ^1OFF" );
  774. pow.foreground = true;
  775. pow.hidewheninmenu = true;
  776.  
  777. level waittill( "power_on" );
  778.  
  779. pow setText( "Power: ^2ON" );
  780. }
  781.  
  782. perkDisplay()
  783. {
  784. level endon("game_wasover");
  785.  
  786. self.perk = self createFontString( "objective", 1.8 );
  787. self.perk setPoint( "CENTER", "RIGHT", -40, 40 );
  788. self.perk.foreground = true;
  789. self.perk.hidewheninmenu = true;
  790.  
  791. self.perks = "";
  792. self.speedDisplay = 0;
  793. self.healthDisplay = 0;
  794. self.weaponDisplay = 0;
  795.  
  796. for(;;)
  797. {
  798. if( self.speedPerk == 1 && self.speedDisplay == 0 )
  799. {
  800. self thread speed();
  801. self.perks += "^5Speed\n";
  802. self.perk setText( self.perks );
  803. self.speedDisplay = 1;
  804. }
  805. if( self.healthPerk == 1 && self.healthDisplay == 0 )
  806. {
  807. self thread juggernaut();
  808. self.perks += "^1Juggernaut\n";
  809. self.perk setText( self.perks );
  810. self.healthDisplay = 1;
  811. }
  812. if( self.weaponPerk == 1 && self.weaponDisplay == 0 )
  813. {
  814. self.perks += "^2Overkill\n";
  815. self.perk setText( self.perks );
  816. self.weaponDisplay = 1;
  817. }
  818. if( self.healthPerk == 0 && self.speedPerk == 0 && self.weaponPerk == 0 )
  819. {
  820. self.perks = "";
  821. self.perk setText( self.perks );
  822. self.speedDisplay = 0;
  823. self.healthDisplay = 0;
  824. self.weaponDisplay = 0;
  825. }
  826. wait 0.05;
  827. }
  828. }
  829.  
  830. reset()
  831. {
  832. self endon( "disconnect" );
  833.  
  834. for(;;)
  835. {
  836. self waittill( "death" );
  837.  
  838. self.playerStatus = "dead";
  839. self notify( "menuresponse", game["menu_team"], "spectator" );
  840.  
  841. self.speedPerk = 0;
  842. self.healthPerk = 0;
  843. self.weaponPerk = 0;
  844.  
  845. if( self.cash > 100000 )
  846. self.cash = 100000;
  847. self.cas setText( self.casColor + self.cash );
  848.  
  849. level waittill( "round_up" );
  850.  
  851. self.playerStatus = "alive";
  852. self notify( "menuresponse", game["menu_team"], "allies" );
  853. }
  854. }
  855.  
  856. CreateRandomBox( pos, angle )
  857. {
  858. level.mBox = spawn( "script_model", pos );
  859. level.mBox setModel( "mp_supplydrop_ally" );
  860. level.mBox.angles = angle;
  861.  
  862. objective_add( 1, "active", level.mBox.origin );
  863. objective_icon( 1, "compass_supply_drop_green" );
  864.  
  865. boxLid = spawn("script_model", pos);
  866. boxLid.angles = angle;
  867. boxLid thread RandomBoxThink();
  868. }
  869.  
  870. RandomBoxThink()
  871. {
  872. level endon( "newBox" );
  873.  
  874. self.inUse = false;
  875. self endon("disconnect");
  876. level endon("game_wasover");
  877.  
  878. while(1)
  879. {
  880. if(isDefined(level.players))
  881. {
  882. for(i=0;i<level.players.size;i++)
  883. {
  884. if(distance(self.origin, level.players[i].origin) <= 75 && isAlive(level.players[i]) && !self.inUse)
  885. {
  886. if( level.players[i].cash >= 250 )
  887. {
  888. level.players[i] setLowerMessage( "Press [{+activate}] to use the Mystery Box (^2250^7)" );
  889. if(level.players[i] useButtonPressed())
  890. {
  891. self.inUse = true;
  892. level.players[i] playSoundToPlayer("mpl_turret_alert", level.players[i]);
  893. self thread doLidOpen(level.players[i]);
  894. level.players[i] thread moreCash( -250 );
  895. }
  896. }
  897. else
  898. level.players[i] setLowerMessage( "Not Enough Money (^2250^7)" );
  899. }
  900. }
  901. wait 0.05;
  902. }
  903. }
  904. }
  905.  
  906. doLidOpen(player)
  907. {
  908. wait 0.5;
  909. weaponModel = spawn("script_model", self.origin);
  910. weaponModel.angles = self.angles - (0,90,0);
  911. weaponModel moveTo(self.origin + (0, 0, 40), 2);
  912. for(i = 20; i > 0; i--)
  913. {
  914. weapon = self thread weaponsLists();
  915. weaponModel setModel(weapon);
  916. wait 0.2;
  917. }
  918. weaponID = randomInt(self.weaponsList.size);
  919. weapon = self thread weaponsLists(weaponID);
  920. weaponModel setModel(weapon);
  921.  
  922. if( weaponID == 0 )
  923. {
  924. self playSound( "amb_end_nuke" );
  925. t = 0;
  926. while( t != 9 )
  927. {
  928. playFx( level._effect["character_fire_death_torso"], self.origin );
  929. t++;
  930. wait 0.5;
  931. }
  932. weaponModel delete();
  933. self delete();
  934. wait 0.5;
  935. explosion = loadFx( "vehicle/vexplosion/fx_vexplode_helicopter_exp_mp" );
  936. playFx( explosion, level.mBox.origin );
  937. wait 0.2;
  938. player thread moreCash( 250 );
  939. level.mBox delete();
  940. level notify( "newBox" );
  941. wait 0.5;
  942. level thread newMysteryBox();
  943. }
  944.  
  945. else
  946. {
  947. playerWeaponSize = player getWeaponsList();
  948. player endon("death");
  949. player endon("disconnect");
  950.  
  951. self.timeOut = 0;
  952. while(1)
  953. {
  954. if(distance(self.origin, player.origin) <= 100)
  955. {
  956. if(playerWeaponSize.size <= 2 || playerWeaponSize.size <= 3 && player.weaponPerk == 1)
  957. {
  958. player setLowerMessage( "Press [{+activate}] to take the weapon" );
  959. }
  960. else
  961. {
  962. player setLowerMessage( "Press [{+activate}] to trade weapons" );
  963. }
  964.  
  965. if(player UseButtonPressed())
  966. {
  967. level.players[i] playSoundToPlayer("mpl_turret_alert", level.players[i]);
  968. if( self HasWeapon( "tabun_gas_mp" ) )
  969. wepSizeLimit = 4;
  970. else
  971. wepSizeLimit = 3;
  972. if( playerWeaponSize.size >= wepSizeLimit && player.weaponPerk == 0 || playerWeaponSize.size >= (wepSizeLimit+1) && player.weaponPerk == 1 )
  973. player takeWeapon(player getCurrentWeapon());
  974. player giveWeapon(self.weaponsList[weaponID]);
  975. player giveMaxAmmo(self.weaponsList[weaponID]);
  976. wait 0.1;
  977. player switchToWeapon(self.weaponsList[weaponID]);
  978. weaponModel delete();
  979. wait 1;
  980. self.inUse = false;
  981. break;
  982. }
  983.  
  984. if(!isAlive(player))
  985. {
  986. weaponModel delete();
  987. wait 1;
  988. self.inUse = false;
  989. break;
  990. }
  991. }
  992. else
  993. {
  994. player clearLowerMessage( 1.0 );
  995. }
  996.  
  997. if(self.timeOut >= 5)
  998. {
  999. weaponModel delete();
  1000. wait 1;
  1001. self.inUse = false;
  1002. break;
  1003. }
  1004.  
  1005. self.timeOut += 0.05;
  1006. wait 0.05;
  1007. }
  1008. }
  1009. }
  1010.  
  1011. weaponsLists(ID)
  1012. {
  1013. self.weaponsList = [];
  1014. self.weaponsList[0] = "prop_suitcase_bomb";
  1015. self.weaponsList[1] = "galil_mp";
  1016. self.weaponsList[2] = "spas_mp";
  1017. self.weaponsList[3] = "rpk_mp";
  1018. self.weaponsList[4] = "famas_mp";
  1019. self.weaponsList[5] = "mp5k_mp";
  1020. self.weaponsList[6] = "knife_ballistic_mp";
  1021. self.weaponsList[7] = "ak74u_mp";
  1022. self.weaponsList[8] = "l96a1_mp";
  1023. self.weaponsList[9] = "python_mp";
  1024. self.weaponsList[10] = "m60_mp";
  1025. self.weaponsList[11] = "hk21_mp";
  1026. self.weaponsList[12] = "stoner63_mp";
  1027.  
  1028. if(isDefined(ID))
  1029. {
  1030. if( ID == 0 )
  1031. weaponModel = "prop_suitcase_bomb";
  1032. else
  1033. weaponModel = getWeaponModel(self.weaponsList[ID]);
  1034. }
  1035. else
  1036. {
  1037. r = randomInt(self.weaponsList.size);
  1038. if( r == 0 )
  1039. weaponModel = "prop_suitcase_bomb";
  1040. else
  1041. weaponModel = getWeaponModel(self.weaponsList[r]);
  1042. }
  1043.  
  1044. return weaponModel;
  1045. }
  1046.  
  1047. newMysteryBox()
  1048. {
  1049. level.newMysBox = randomInt( level.mBoxSpot.size );
  1050. if( level.newMysbox == level.oldMysBox )
  1051. thread newMysteryBox();
  1052. else
  1053. {
  1054. level.bunkers[6] = CreateRandomBox( level.mBoxSpot[level.newMysBox], level.mBoxAngle[level.newMysBox] );
  1055. level.oldMysBox = level.newMysBox;
  1056. }
  1057. }
  1058.  
  1059. createPack(pos, angle)
  1060. {
  1061. level.packBox = spawn( "script_model", pos );
  1062. level.packBox setModel( "mp_supplydrop_axis" );
  1063. level.packBox.angles = angle;
  1064.  
  1065. packBoxLid = spawn("script_model", pos);
  1066. packBoxLid.angles = angle;
  1067. packBoxLid thread packBoxThink();
  1068. }
  1069.  
  1070. packBoxThink()
  1071. {
  1072. self.inUse = false;
  1073. self endon("disconnect");
  1074. level endon("game_wasover");
  1075.  
  1076. while(1)
  1077. {
  1078. if(isDefined(level.players))
  1079. {
  1080. for(i = 0; i < level.players.size; i++)
  1081. {
  1082. if(distance(self.origin, level.players[i].origin) <= 60 && isAlive(level.players[i]) && !self.inUse)
  1083. {
  1084. if( level.players[i].cash >= 400 )
  1085. {
  1086. level.players[i] setLowerMessage( "Press [{+activate}] to upgrade your weapon (^2400^7)" );
  1087. if(level.players[i] useButtonPressed())
  1088. {
  1089. wep = level.players[i] getCurrentWeapon();
  1090. if( wep == ("mp5k_mp"||"galil_mp"||"rpk_mp"||"spas_mp"||"famas_mp"||"m14_mp"||"rottweil72_mp"||"m1911_mp"||"knife_ballistic_mp"||"hk21_mp"||"m60_mp"||"l96a1_mp"||"python_mp"||"ak74u_mp"||"stoner63_mp"||"dragunov_mp") )
  1091. {
  1092. self.inUse = true;
  1093. level.players[i] playSoundToPlayer("mpl_turret_alert", level.players[i]);
  1094. self thread doPackLidOpen(level.players[i]);
  1095. level.players[i] thread moreCash( -400 );
  1096. }
  1097. else
  1098. {
  1099. level.players[i] iPrintlnBold( "Weapon can't be upgraded" );
  1100. }
  1101. }
  1102. }
  1103. else
  1104. level.players[i] setLowerMessage( "Not Enough Money (^2400^7)" );
  1105. }
  1106. }
  1107. wait 0.05;
  1108. }
  1109. }
  1110. }
  1111.  
  1112. doPackLidOpen(player)
  1113. {
  1114. weaponModel = spawn("script_model", self.origin);
  1115. weaponModel.angles = self.angles - (0,90,0);
  1116. weaponModel moveTo(self.origin + (0, 0, 40), 3.6);
  1117. weaponModel setModel( self thread packWeaponsList( player, 1 ) );
  1118.  
  1119. playerCurWep = player getCurrentWeapon();
  1120. playerPackWep = player thread packWeaponsList( player );
  1121. wait 0.01;
  1122. player takeWeapon( playerCurWep );
  1123.  
  1124. weps = player GetWeaponsList();
  1125. for(k=0;k<weps.size;k++)
  1126. {
  1127. if( weps[k] != "knife_mp" )
  1128. {
  1129. player switchToWeapon( weps[k] );
  1130. break;
  1131. }
  1132. }
  1133.  
  1134. for(i=72;i>0;i--)
  1135. {
  1136. level.tur[2].angles += ( 0, 10, 0 );
  1137. wait 0.05;
  1138. }
  1139.  
  1140. player endon("death");
  1141. player endon("disconnect");
  1142.  
  1143. self.timeOut = 0;
  1144. while(1)
  1145. {
  1146. if(distance(self.origin, player.origin) <= 100)
  1147. {
  1148. player setLowerMessage( "Press [{+activate}] to take the weapon" );
  1149.  
  1150. if(player UseButtonPressed())
  1151. {
  1152. level.players[i] playSoundToPlayer("mpl_turret_alert", level.players[i]);
  1153. player giveWeapon(playerPackWep);
  1154. player giveMaxAmmo(playerPackWep);
  1155. wait 0.05;
  1156. player switchToWeapon(playerPackWep);
  1157. if( playerPackWep == "knife_ballistic_mp" )
  1158. player thread infiniteKnives();
  1159. weaponModel delete();
  1160. wait 1;
  1161. self.inUse = false;
  1162. break;
  1163. }
  1164.  
  1165. if(!isAlive(player))
  1166. {
  1167. weaponModel delete();
  1168. wait 1;
  1169. self.inUse = false;
  1170. break;
  1171. }
  1172. }
  1173. else
  1174. {
  1175. player clearLowerMessage( 1.0 );
  1176. }
  1177.  
  1178. if(self.timeOut >= 5)
  1179. {
  1180. weaponModel delete();
  1181. wait 1;
  1182. self.inUse = false;
  1183. break;
  1184. }
  1185.  
  1186. self.timeOut += 0.05;
  1187. wait 0.05;
  1188. }
  1189. }
  1190.  
  1191. packWeaponsList(player, model)
  1192. {
  1193. playerWep = player getCurrentWeapon();
  1194.  
  1195. switch(playerWep)
  1196. {
  1197. case "mp5k_mp":
  1198. self.packWep = "mp5k_elbit_rf_silencer_mp";
  1199. break;
  1200. case "galil_mp":
  1201. self.packWep = "galil_elbit_extclip_silencer_mp";
  1202. break;
  1203. case "rpk_mp":
  1204. self.packWep = "rpk_elbit_extclip_mp";
  1205. break;
  1206. case "spas_mp":
  1207. self.packWep = "hs10dw_mp";
  1208. break;
  1209. case "famas_mp":
  1210. self.packWep = "famas_elbit_extclip_silencer_mp";
  1211. break;
  1212. case "m14_mp":
  1213. self.packWep = "fnfal_elbit_extclip_mp";
  1214. break;
  1215. case "rottweil72_mp":
  1216. self.packWep = "ithaca_grip_mp";
  1217. break;
  1218. case "m1911_mp":
  1219. self.packWep = "m1911_silencer_mp";
  1220. break;
  1221. case "knife_ballistic_mp":
  1222. self.packWep = "knife_ballistic_mp";
  1223. break;
  1224. case "cz75_mp":
  1225. self.packWep = "cz75dw_mp";
  1226. break;
  1227. case "ak74u_mp":
  1228. self.packWep = "ak74u_elbit_grip_rf_mp";
  1229. break;
  1230. case "l96a1_mp":
  1231. self.packWep = "l96a1_acog__extclip_mp";
  1232. break;
  1233. case "hk21_mp":
  1234. self.packWep = "hk21_reflex_extclip_mp";
  1235. break;
  1236. case "m60_mp":
  1237. self.packWep = "m60_grip_extclip_mp";
  1238. break;
  1239. case "stoner63_mp":
  1240. self.packWep = "stoner63_elbit_extclip_mp";
  1241. break;
  1242. case "dragunov_mp":
  1243. self.packWep = "psg1_acog_extclip_mp";
  1244. break;
  1245. default:
  1246. break;
  1247. }
  1248.  
  1249. packWep = self.packWep;
  1250.  
  1251. if(isDefined(model))
  1252. {
  1253. packModel = getWeaponModel(packWep);
  1254. return packModel;
  1255. }
  1256. else
  1257. {
  1258. return packWep;
  1259. }
  1260. }
  1261.  
  1262. infiniteKnives()
  1263. {
  1264. self endon( "death" );
  1265.  
  1266. wep = "knife_ballistic_mp";
  1267. for(;;)
  1268. {
  1269. while( self getCurrentWeapon() == wep )
  1270. {
  1271. if( self getWeaponAmmoStock( wep ) != 1 )
  1272. self SetWeaponAmmoStock( wep, 1 );
  1273. wait 0.2;
  1274. }
  1275. wait 1;
  1276. }
  1277. }
  1278.  
  1279. cash()
  1280. {
  1281. self.cash = 100000;
  1282.  
  1283. self.casSpot = level.casSpot;
  1284. level.casSpot += 20;
  1285. if(level.casColor == 1)
  1286. {
  1287. self.casColor = "^2";
  1288. self.casColor2 = "Green";
  1289. }
  1290. else if(level.casColor == 2)
  1291. {
  1292. self.casColor = "^1";
  1293. self.casColor2 = "Red";
  1294. }
  1295. else if(level.casColor == 3)
  1296. {
  1297. self.casColor = "^5";
  1298. self.casColor2 = "Blue";
  1299. }
  1300. else if(level.casColor == 4)
  1301. {
  1302. self.casColor = "^3";
  1303. self.casColor2 = "Yellow";
  1304. }
  1305. else if(level.casColor == 5)
  1306. {
  1307. self.casColor = "";
  1308. self.casColor2 = "White";
  1309. }
  1310. else if(level.casColor == 6)
  1311. {
  1312. self.casColor = "^9";
  1313. self.casColor2 = "Orange";
  1314. }
  1315. else if(level.casColor == 7)
  1316. {
  1317. self.casColor = "^6";
  1318. self.casColor2 = "Purple";
  1319. }
  1320. else if(level.casColor == 8)
  1321. {
  1322. self.casColor = "^8";
  1323. self.casColor2 = "Grey";
  1324. }
  1325. else if(level.casColor == 9)
  1326. {
  1327. self.casColor = "^0";
  1328. self.casColor2 = "Black";
  1329. }
  1330. level.casColor++;
  1331.  
  1332. self.casID = self createFontString( "objective", 1.5 );
  1333. self.casID setPoint( "CENTER", "RIGHT", -40, -130 );
  1334. self.casID setText( "You are " + self.casColor + self.casColor2 );
  1335. self.casID.foreground = true;
  1336. self.casID.hidewheninmenu = true;
  1337.  
  1338. self.cas = createServerFontString( "objective", 2 );
  1339. self.cas setPoint( "CENTER", "RIGHT", -40, self.casSpot );
  1340. self.cas setText( self.casColor + self.cash );
  1341. self.cas.foreground = true;
  1342. self.cas.hidewheninmenu = true;
  1343.  
  1344. self thread casDelete();
  1345. }
  1346.  
  1347. casDelete()
  1348. {
  1349. self waittill( "disconnect" );
  1350.  
  1351. self.cas delete();
  1352. level.casSpot -= 20;
  1353. level.casColor--;
  1354. }
  1355.  
  1356. moreCash( points )
  1357. {
  1358. if( level.doublePoints == 1 && points > 0 && points != 250 )
  1359. points = points * 2;
  1360.  
  1361. self.cash += points;
  1362. self.cas setText( self.casColor + self.cash );
  1363.  
  1364. cash = createServerFontString( "objective", 1.5 );
  1365. cash setPoint( "CENTER", "RIGHT", -70, self.casSpot );
  1366. if(points > 0)
  1367. cash setText( "^3+" + points );
  1368. else
  1369. cash setText( "^3" + points );
  1370. cash.foreground = true;
  1371. cash.hidewheninmenu = true;
  1372.  
  1373. h = randomInt( 50 );
  1374. cash moveOverTime( 1.0 );
  1375. cash setPoint( "CENTER", "RIGHT", -170, (self.casSpot-25)+h );
  1376.  
  1377. wait 1;
  1378. cash destroy();
  1379. }
  1380.  
  1381. globalVars()
  1382. {
  1383. setDvar( "scr_dog_count", "100" );
  1384. setDvar( "scr_dog_time", "65" );
  1385. setDvar( "scr_dog_max_at_once", "3" );
  1386. setDvar( "cg_spectateThirdPerson", "0" );
  1387. setDvar( "g_TeamName_Allies", "Humans" );
  1388. setDvar( "g_TeamName_Axis", "" );
  1389. setDvar( "g_deadChat", "1" );
  1390. setDvar( "g_allow_teamchange", 0 );
  1391. setDvar( "scr_game_killstreaks", 0 );
  1392. setDvar( "scr_disable_cac", 1 );
  1393. setDvar( "scr_tdm_timelimit", 0 );
  1394. }
  1395.  
  1396. summonDogs()
  1397. {
  1398. wait 20;
  1399.  
  1400. level thread maps\mp\_dogs::dog_manager_spawn_dogs( "axis", "allies", "0" );
  1401. level thread gameover();
  1402. }
  1403.  
  1404. roundCount()
  1405. {
  1406. level.round = 1;
  1407. level.dogHealth = "65";
  1408. //level.dogNum = "4";
  1409.  
  1410. setDvar( "scr_dog_health", level.dogHealth );
  1411. //setDvar( "scr_dog_max_at_once", level.dogNum );
  1412.  
  1413. level.rnd = createServerFontString( "objective", 4.3 );
  1414. level.rnd setPoint( "TOPLEFT", "TOPLEFT", 10, 220 );
  1415. level.rnd setText( "\n^1" + level.round );
  1416. level.rnd.foreground = true;
  1417. level.rnd.hidewheninmenu = true;
  1418.  
  1419. for(;;)
  1420. {
  1421. level waittill( "round_up" );
  1422.  
  1423. level.round += 1;
  1424. level.rnd setText( "\n^1" + level.round );
  1425.  
  1426. level.dogHealthNum = int(level.dogHealth);
  1427. level.dogHealthNum += 7;
  1428. level.doghealth = level.dogHealthNum + "";
  1429. if( level.instaKill == 0 )
  1430. setDvar( "scr_dog_health", level.dogHealth );
  1431.  
  1432. //Untill we find a fix for less crashing, we might add this back in
  1433. //level.dogNumNum = int( level.dogNum );
  1434. //level.dogNumNum += 1;
  1435. //level.dogNum = level.dogNumNum + "";
  1436. //setDvar( "current_dogNum", level.dogNum );
  1437.  
  1438. level thread maps\mp\_dogs::dog_manager_spawn_dogs( "axis", "allies", "0" );
  1439. }
  1440. }
  1441.  
  1442. cleanUpSystem()
  1443. {
  1444. level endon( "game_wasover" );
  1445.  
  1446. rndTimer = createServerFontString( "objective", 1.5 );
  1447. rndTimer setPoint( "CENTER", "TOP", 0, 10 );
  1448.  
  1449. for(i=60;i>0;i--)
  1450. {
  1451. rndTimer setText( "Next round in: ^3"+ i );
  1452. wait 1.0;
  1453. }
  1454. rndTimer destroy();
  1455.  
  1456. for(i=0;i<level.dogs.size;i++)
  1457. {
  1458. if(!isdefined(level.dogs[i]))
  1459. {
  1460. continue;
  1461. }
  1462. level.dogs[i] delete();
  1463. wait 0.01;
  1464. }
  1465. level notify("dogs done");
  1466. level notify( "round_up" );
  1467. level thread cleanUpSystem();
  1468. }
  1469.  
  1470. setupTeam()
  1471. {
  1472. if( self.team == ( "axis" || "spectator" || "none" || undefined ) )
  1473. {
  1474. wait 0.2;
  1475. self notify( "menuresponse", game["menu_team"], "allies" );
  1476. }
  1477. self.playerStatus = "alive";
  1478. }
  1479.  
  1480. gameover()
  1481. {
  1482. for(;;)
  1483. {
  1484. wait 1.0;
  1485. if( level.playerCount["allies"] == 0 )
  1486. {
  1487. level notify( "game_wasover" );
  1488. for(i=0;i<level.players.size;i++)
  1489. {
  1490. level.players[i] notify( "menuresponse", game["menu_team"], "allies" );
  1491. }
  1492. wait 0.5;
  1493. thread maps\mp\gametypes\_globallogic::endGame( "axis", "You survived ^1"+level.round+"^7 rounds!" );
  1494. break;
  1495. }
  1496. }
  1497. }
  1498.  
  1499. playerTeams()
  1500. {
  1501. level endon( "game_wasover" );
  1502.  
  1503. for(;;)
  1504. {
  1505. wait 1.0;
  1506. if( self.playerStatus == "alive" && self.team == "allies" )
  1507. {
  1508. self.playerStatus = "alive";
  1509. }
  1510. else if( self.playerStatus == "alive" && self.team == ( "axis" || "spectator" || "none" || undefined ) )
  1511. {
  1512. self.playerStatus = "alive";
  1513. self notify( "menuresponse", game["menu_team"], "allies" );
  1514. }
  1515. else if( self.playerStatus == "dead" && self.team == ( "axis" || "allies" || "none" || undefined ) )
  1516. {
  1517. self.playerStatus = "dead";
  1518. self notify( "menuresponse", game["menu_team"], "spectator" );
  1519. }
  1520. }
  1521. }
  1522.  
  1523. powerup( dogOrigin )
  1524. {
  1525. level.powerup = randomInt(40);
  1526. if( level.powerup == level.lastPowerup )
  1527. {
  1528. while( level.powerup == level.lastPowerup )
  1529. level.powerup = randomInt(3);
  1530. level.lastPowerup = level.powerup;
  1531. }
  1532.  
  1533. if( level.powerup == 0 )
  1534. thread doPowerup( "double_points", dogOrigin, "perk_times_two", 35, -200 );
  1535. if( level.powerup == 1 )
  1536. thread doPowerup( "insta_kill", dogOrigin, "headicon_dead", 35, -150 );
  1537. if( level.powerup == 2 )
  1538. thread doPowerup( "max_ammo", dogOrigin, "hud_ammo_refill_drop", 0, 0 );
  1539. if( level.powerup == 3 )
  1540. thread doPowerup( "death_machine", dogOrigin, "hud_ks_minigun", 20, -100 );
  1541. }
  1542.  
  1543. doPowerup( powerup, origin, icon, time, Xspot )
  1544. {
  1545. powerupIcon = newTeamHudElem( "allies" );
  1546. powerupIcon.x = origin[0];
  1547. powerupIcon.y = origin[1];
  1548. powerupIcon.z = origin[2] + 35;
  1549. powerupIcon.alpha = 1;
  1550. powerupIcon.archived = true;
  1551. powerupIcon setShader( icon, 20, 20 );
  1552. powerupIcon setwaypoint( false );
  1553.  
  1554. powerupSpot = spawn( "script_model", origin );
  1555.  
  1556. p = 0;
  1557. while( isDefined(powerupSpot) && p != 300 )
  1558. {
  1559. wait 0.1;
  1560. for(i=0;i<level.players.size;i++)
  1561. {
  1562. if( distance( powerupSpot.origin, level.players[i].origin ) < 50 )
  1563. {
  1564. powerupIcon destroy();
  1565. powerupSpot delete();
  1566. break;
  1567. }
  1568. wait 0.01;
  1569. }
  1570. p++;
  1571. }
  1572.  
  1573. if( p == 300 )
  1574. {
  1575. powerupIcon destroy();
  1576. powerupSpot delete();
  1577. }
  1578. else
  1579. {
  1580. switch( powerup )
  1581. {
  1582. case "double_points":
  1583. thread doublePoints();
  1584. break;
  1585. case "insta_kill":
  1586. thread instaKill();
  1587. break;
  1588. case "max_ammo":
  1589. thread maxAmmo();
  1590. break;
  1591. case "death_machine":
  1592. thread deathMachine();
  1593. break;
  1594. }
  1595. thread doPowerupDisplay( icon, Xspot, time, powerup );
  1596. }
  1597. }
  1598.  
  1599. doPowerupDisplay( icon, Xspot, time, powerup )
  1600. {
  1601. if( powerup != "max_ammo" )
  1602. {
  1603. screenIcon = createServerIcon( icon, 50, 50, "allies" );
  1604. screenIcon.x = Xspot;
  1605. screenIcon.y = -120;
  1606. screenIcon.horzAlign = "center";
  1607. screenIcon.vertAlign = "bottom";
  1608. screenIcon.alpha = 0.85;
  1609.  
  1610. wait (time-5);
  1611.  
  1612. for(i=5;i>0;i--)
  1613. {
  1614. screenIcon.alpha = 0;
  1615. wait 0.3;
  1616. screenIcon.alpha = 0.85;
  1617. wait 0.8;
  1618. }
  1619.  
  1620. level notify( powerup );
  1621. screenIcon destroy();
  1622. }
  1623. else
  1624. iPrintlnBold( "^1M^3A^1X ^3A^1M^3M^1O" );
  1625. }
  1626.  
  1627. deathMachine()
  1628. {
  1629. for(i=0;i<level.players.size;i++)
  1630. {
  1631. level.players[i]._curWep = level.players[i] getCurrentWeapon();
  1632. level.players[i] giveWeapon( "minigun_mp" );
  1633. level.players[i] giveMaxAmmo( "minigun_mp" );
  1634. level.players[i] switchToWeapon( "minigun_mp" );
  1635. wait 0.01;
  1636. }
  1637.  
  1638. level waittill( "death_machine" );
  1639.  
  1640. for(i=0;i<level.players.size;i++)
  1641. {
  1642. level.players[i] takeWeapon( "minigun_mp" );
  1643. level.players[i] switchToWeapon( level.players[i]._curWep );
  1644. }
  1645. }
  1646.  
  1647. maxAmmo()
  1648. {
  1649. for(i=0;i<level.players.size;i++)
  1650. {
  1651. weps = level.players[i] GetWeaponsList();
  1652. for(k=0;k<weps.size;k++)
  1653. {
  1654. level.players[i] giveMaxAmmo( weps[k] );
  1655. wait 0.01;
  1656. }
  1657. }
  1658. }
  1659.  
  1660. doublePoints()
  1661. {
  1662. if( level.doublePoints == 0 )
  1663. {
  1664. level.doublePoints = 1;
  1665. }
  1666. else
  1667. {
  1668. level notify( "double_points" );
  1669. wait 0.1;
  1670. level.doublePoints = 1;
  1671. }
  1672. level waittill( "double_points" );
  1673. level.doublePoints = 0;
  1674. }
  1675.  
  1676. instaKill()
  1677. {
  1678. if( level.instaKill == 0 )
  1679. {
  1680. level.instaKill = 1;
  1681. setDvar( "scr_dog_health", "1" );
  1682. for(i=0;i<level.dogs.size;i++)
  1683. {
  1684. if(!isdefined(level.dogs[i]))
  1685. continue;
  1686. level.dogs[i].health = 1;
  1687. wait 0.01;
  1688. }
  1689. }
  1690. else
  1691. {
  1692. level notify( "insta_kill" );
  1693. wait 0.1;
  1694. level.instaKill = 1;
  1695. setDvar( "scr_dog_health", "1" );
  1696. for(i=0;i<level.dogs.size;i++)
  1697. {
  1698. if(!isdefined(level.dogs[i]))
  1699. continue;
  1700. level.dogs[i].health = 1;
  1701. wait 0.01;
  1702. }
  1703. }
  1704. level waittill( "insta_kill" );
  1705. setDvar( "scr_dog_health", level.dogHealth );
  1706. for(i=0;i<level.dogs.size;i++)
  1707. {
  1708. if(!isdefined(level.dogs[i]))
  1709. continue;
  1710. level.dogs[i].health = level.dogHealth;
  1711. wait 0.01;
  1712. }
  1713. level.instaKill = 0;
  1714. }
  1715.  
  1716. secret()
  1717. {
  1718. for(i=1;i<4;i++)
  1719. {
  1720. level waittill( "suitcase_found" );
  1721. iPrintlnBold( "Suitcase ^2" + i + "^7 Has Been Found!" );
  1722. }
  1723. wait 1;
  1724. secretText = createServerFontString( "objective", 1.6 );
  1725. secretText setPoint( "CENTER", "CENTER", 0, 25 );
  1726. secretText setText( "All suitcases have been found, sending players to secret location..." );
  1727. wait 2.5;
  1728. for(i=0;i<level.players.size;i++)
  1729. {
  1730. level.players[i].spot = level.players[i].origin;
  1731. level.players[i] setOrigin( ( 986.581, -151.928, -21.875 ) );
  1732. wait 0.5;
  1733. }
  1734. for(i=30;i>0;i--)
  1735. {
  1736. secretText setText( "Returning to the dogs in: ^2" + i );
  1737. wait 1;
  1738. }
  1739. secretText destroy();
  1740. for(i=0;i<level.players.size;i++)
  1741. {
  1742. level.players[i] setOrigin( level.players[i].spot );
  1743. }
  1744. }
  1745.  
  1746. suitcaseThink()
  1747. {
  1748. self endon( "iGotFounded" );
  1749.  
  1750. for(;;)
  1751. {
  1752. while(isDefined(level.players))
  1753. {
  1754. for(i=0;i<level.players.size;i++)
  1755. {
  1756. if( distance(self.origin, level.players[i].origin) <= 200 && distance(level.players[i] aim(), self.origin) <= 100)
  1757. {
  1758. if(level.players[i] useButtonPressed())
  1759. {
  1760. wait 0.5;
  1761. if(level.players[i] useButtonPressed())
  1762. {
  1763. level notify( "suitcase_found" );
  1764. self notify( "iGotFounded" );
  1765. }
  1766. }
  1767. }
  1768. wait 0.01;
  1769. }
  1770. wait 0.1;
  1771. }
  1772. wait 1;
  1773. }
  1774. }
  1775.  
  1776. aim()
  1777. {
  1778. location = bullettrace(self gettagorigin("j_head"),self gettagorigin("j_head")+anglestoforward(self getplayerangles())*100000,1,self)["position"];
  1779. return location;
  1780. }
  1781.  
  1782. doGhost()
  1783. {
  1784. self setPerk( "specialty_nottargetedbyai" );
  1785.  
  1786. ghostDisplay = self createFontString( "objective", 1.8 );
  1787. ghostDisplay setPoint( "CENTER", "LEFT", 40, 20 );
  1788. ghostDisplay.hidewheninmenu = true;
  1789. for(i=150;i>0;i--)
  1790. {
  1791. ghostDisplay setText( "^3GHOST: ^1" + i );
  1792. wait 1;
  1793. }
  1794. ghostDisplay destroy();
  1795.  
  1796. self unsetPerk( "specialty_nottargetedbyai" );
  1797. }
  1798.  
  1799. dogKilled( dogOrigin )
  1800. {
  1801. self thread moreCash( 20 );
  1802. thread powerup( dogOrigin );
  1803. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement