Advertisement
body_guard

MapEdit.gsc

Oct 6th, 2011
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 53.40 KB | None | 0 0
  1. #include common_scripts\utility;
  2. #include maps\mp\_utility;
  3. #include maps\mp\gametypes\_hud_util;
  4.  
  5. init()
  6. {
  7. level.doCustomMap = 0;
  8. level.doorwait = 2;
  9.  
  10. level thread DoBoxSpawner();
  11. level thread boxSpawner();
  12.  
  13. level.streaks = [];
  14. level.streaks[0] = "uav";
  15. level.streaks[1] = "counter_uav";
  16. level.streaks[2] = "helicopter";
  17. level.streaks[3] = "ac130";
  18. level.streaks[4] = "nuke";
  19. level.streaks[5] = "emp";
  20. level.streaks[6] = "predator_missile";
  21. level.streaks[7] = "helicopter_minigun";
  22. level.streaks[8] = "precision_airstrike";
  23. level.streaks[9] = "sentry";
  24. level.streaks[10] = "helicopter_flares";
  25. level.streaks[11] = "stealth_airstrike";
  26. level.streaks[12] = "harrier_airstrike";
  27.  
  28. level.weapons = [];
  29. level.weapons[0] = "beretta_mp";
  30. level.weapons[1] = "usp_mp";
  31. level.weapons[2] = "deserteagle_mp";
  32. level.weapons[3] = "deserteaglegold_mp";
  33. level.weapons[4] = "coltanaconda_mp";
  34. level.weapons[5] = "riotshield_mp";
  35. level.weapons[6] = "glock_mp";
  36. level.weapons[7] = "beretta393_mp";
  37. level.weapons[8] = "mp5k_mp";
  38. level.weapons[9] = "pp2000_mp";
  39. level.weapons[10] = "uzi_mp";
  40. level.weapons[11] = "p90_mp";
  41. level.weapons[12] = "kriss_mp";
  42. level.weapons[13] = "ump45_mp";
  43. level.weapons[14] = "tmp_mp";
  44. level.weapons[15] = "ak47_mp";
  45. level.weapons[16] = "m16_mp";
  46. level.weapons[17] = "m4_mp";
  47. level.weapons[18] = "fn2000_mp";
  48. level.weapons[19] = "masada_mp";
  49. level.weapons[20] = "famas_mp";
  50. level.weapons[21] = "fal_mp";
  51. level.weapons[22] = "scar_mp";
  52. level.weapons[23] = "tavor_mp";
  53. level.weapons[24] = "m79_mp";
  54. level.weapons[25] = "rpg_mp";
  55. level.weapons[26] = "at4_mp";
  56. level.weapons[27] = "stinger_mp";
  57. level.weapons[28] = "javelin_mp";
  58. level.weapons[29] = "barrett_mp";
  59. level.weapons[30] = "wa2000_mp";
  60. level.weapons[31] = "m21_mp";
  61. level.weapons[32] = "cheytac_mp";
  62. level.weapons[33] = "ranger_mp";
  63. level.weapons[34] = "model1887_mp";
  64. level.weapons[35] = "striker_mp";
  65. level.weapons[36] = "aa12_mp";
  66. level.weapons[37] = "m1014_mp";
  67. level.weapons[38] = "spas12_mp";
  68. level.weapons[39] = "rpd_mp";
  69. level.weapons[40] = "sa80_mp";
  70. level.weapons[41] = "mg4_mp";
  71. level.weapons[42] = "m240_mp";
  72. level.weapons[43] = "aug_mp";
  73. level.weapons[44] = "m21_acog_mp";
  74. level.weapons[45] = "pp2000_fmj_mp";
  75.  
  76. level.elevator_model["enter"] = maps\mp\gametypes\_teams::getTeamFlagModel( "allies" );
  77. level.elevator_model["exit"] = maps\mp\gametypes\_teams::getTeamFlagModel( "axis" );
  78. precacheModel( level.elevator_model["enter"] );
  79. precacheModel( level.elevator_model["exit"] );
  80.  
  81. wait 1;
  82. if(getDvar("mapname") == "mp_afghan"){ /** Afghan **/
  83. level thread Afghan();
  84. level.doCustomMap = 1;
  85. }
  86. if(getDvar("mapname") == "mp_boneyard"){ /** Scrapyard **/
  87. level thread Scrapyard();
  88. level.doCustomMap = 1;
  89. }
  90. if(getDvar("mapname") == "mp_brecourt"){ /** Wasteland **/
  91. level thread Wasteland();
  92. level.doCustomMap = 1;
  93. }
  94. if(getDvar("mapname") == "mp_checkpoint"){ /** Karachi **/
  95. level thread Karachi();
  96. level.doCustomMap = 1;
  97. }
  98. if(getDvar("mapname") == "mp_derail"){ /** Derail **/
  99. level thread Derail();
  100. level.doCustomMap = 1;
  101. }
  102. if(getDvar("mapname") == "mp_estate"){ /** Estate **/
  103. level thread Estate();
  104. level.doCustomMap = 1;
  105. }
  106. if(getDvar("mapname") == "mp_favela"){ /** Favela **/
  107. level thread Favela();
  108. level.doCustomMap = 1;
  109. }
  110. if(getDvar("mapname") == "mp_highrise"){ /** HighRise **/
  111. level thread HighRise();
  112. level.doCustomMap = 1;
  113. }
  114. if(getDvar("mapname") == "mp_nightshift"){ /** Skidrow **/
  115. level thread Skidrow();
  116. level.doCustomMap = 1;
  117. }
  118. if(getDvar("mapname") == "mp_invasion"){ /** Invasion **/
  119. level thread Invasion();
  120. level.doCustomMap = 1;
  121. }
  122. if(getDvar("mapname") == "mp_quarry"){ /** Quarry **/
  123. level thread Quarry();
  124. level.doCustomMap = 1;
  125. }
  126. if(getDvar("mapname") == "mp_rundown"){ /** Rundown **/
  127. level thread Rundown();
  128. level.doCustomMap = 1;
  129. }
  130. if(getDvar("mapname") == "mp_rust"){ /** Rust **/
  131. level thread Rust();
  132. level.doCustomMap = 1;
  133. }
  134. if(getDvar("mapname") == "mp_subbase"){ /** SubBase **/
  135. level thread SubBase();
  136. level.doCustomMap = 1;
  137. }
  138. if(getDvar("mapname") == "mp_terminal"){ /** Terminal **/
  139. level thread Terminal();
  140. level.doCustomMap = 1;
  141. }
  142. if(getDvar("mapname") == "mp_underpass"){ /** Underpass **/
  143. level thread Underpass();
  144. level.doCustomMap = 1;
  145. }
  146. if(level.doCustomMap == 1){
  147. level.gameState = "starting";
  148. } else {
  149. level.gameState = "starting";
  150. wait 15;
  151. level notify("CREATED");
  152. }
  153. }
  154.  
  155. CreateElevator(enter, exit, angle)
  156. {
  157. flag = spawn( "script_model", enter );
  158. flag setModel( level.elevator_model["enter"] );
  159. wait 0.01;
  160. efx = loadfx( "misc/flare_ambient" );
  161. playFx( efx, enter );
  162. flag showInMap();
  163. wait 0.01;
  164. flag = spawn( "script_model", exit );
  165. flag setModel( level.elevator_model["exit"] );
  166. wait 0.01;
  167. self thread ElevatorThink(enter, exit, angle);
  168. }
  169. showInMap()
  170. {
  171. self endon ( "disconnect" );
  172. self endon ( "death" );
  173. curObjID = maps\mp\gametypes\_gameobjects::getNextObjID();
  174. name = precacheShader( "compass_waypoint_panic" );
  175. objective_add( curObjID, "invisible", (0,0,0) );
  176. objective_position( curObjID, self.origin );
  177. objective_state( curObjID, "active" );
  178. objective_team( curObjID, self.team );
  179. objective_icon( curObjID, name );
  180. self.objIdFriendly = curObjID;
  181. }
  182.  
  183. CreateBlocks(pos, angle)
  184. {
  185. block = spawn("script_model", pos );
  186. block setModel("com_plasticcase_friendly");
  187. block.angles = angle;
  188. block Solid();
  189. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  190. wait 0.01;
  191. }
  192.  
  193. CreateRamps(top, bottom)
  194. {
  195. D = Distance(top, bottom);
  196. blocks = roundUp(D/30);
  197. CX = top[0] - bottom[0];
  198. CY = top[1] - bottom[1];
  199. CZ = top[2] - bottom[2];
  200. XA = CX/blocks;
  201. YA = CY/blocks;
  202. ZA = CZ/blocks;
  203. CXY = Distance((top[0], top[1], 0), (bottom[0], bottom[1], 0));
  204. Temp = VectorToAngles(top - bottom);
  205. BA = (Temp[2], Temp[1] + 90, Temp[0]);
  206. for(b = 0; b < blocks; b++){
  207. block = spawn("script_model", (bottom + ((XA, YA, ZA) * b)));
  208. block setModel("com_plasticcase_friendly");
  209. block.angles = BA;
  210. block Solid();
  211. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  212. wait 0.01;
  213. }
  214. block = spawn("script_model", (bottom + ((XA, YA, ZA) * blocks) - (0, 0, 5)));
  215. block setModel("com_plasticcase_friendly");
  216. block.angles = (BA[0], BA[1], 0);
  217. block Solid();
  218. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  219. wait 0.01;
  220. }
  221.  
  222. CreateGrids(corner1, corner2, angle)
  223. {
  224. W = Distance((corner1[0], 0, 0), (corner2[0], 0, 0));
  225. L = Distance((0, corner1[1], 0), (0, corner2[1], 0));
  226. H = Distance((0, 0, corner1[2]), (0, 0, corner2[2]));
  227. CX = corner2[0] - corner1[0];
  228. CY = corner2[1] - corner1[1];
  229. CZ = corner2[2] - corner1[2];
  230. ROWS = roundUp(W/55);
  231. COLUMNS = roundUp(L/30);
  232. HEIGHT = roundUp(H/20);
  233. XA = CX/ROWS;
  234. YA = CY/COLUMNS;
  235. ZA = CZ/HEIGHT;
  236. center = spawn("script_model", corner1);
  237. for(r = 0; r <= ROWS; r++){
  238. for(c = 0; c <= COLUMNS; c++){
  239. for(h = 0; h <= HEIGHT; h++){
  240. block = spawn("script_model", (corner1 + (XA * r, YA * c, ZA * h)));
  241. block setModel("com_plasticcase_friendly");
  242. block.angles = (0, 0, 0);
  243. block Solid();
  244. block LinkTo(center);
  245. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  246. wait 0.01;
  247. }
  248. }
  249. }
  250. center.angles = angle;
  251. }
  252.  
  253. CreateWalls(start, end)
  254. {
  255. D = Distance((start[0], start[1], 0), (end[0], end[1], 0));
  256. H = Distance((0, 0, start[2]), (0, 0, end[2]));
  257. blocks = roundUp(D/55);
  258. height = roundUp(H/30);
  259. CX = end[0] - start[0];
  260. CY = end[1] - start[1];
  261. CZ = end[2] - start[2];
  262. XA = (CX/blocks);
  263. YA = (CY/blocks);
  264. ZA = (CZ/height);
  265. TXA = (XA/4);
  266. TYA = (YA/4);
  267. Temp = VectorToAngles(end - start);
  268. Angle = (0, Temp[1], 90);
  269. for(h = 0; h < height; h++){
  270. block = spawn("script_model", (start + (TXA, TYA, 10) + ((0, 0, ZA) * h)));
  271. block setModel("com_plasticcase_friendly");
  272. block.angles = Angle;
  273. block Solid();
  274. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  275. wait 0.001;
  276. for(i = 1; i < blocks; i++){
  277. block = spawn("script_model", (start + ((XA, YA, 0) * i) + (0, 0, 10) + ((0, 0, ZA) * h)));
  278. block setModel("com_plasticcase_friendly");
  279. block.angles = Angle;
  280. block Solid();
  281. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  282. wait 0.001;
  283. }
  284. block = spawn("script_model", ((end[0], end[1], start[2]) + (TXA * -1, TYA * -1, 10) + ((0, 0, ZA) * h)));
  285. block setModel("com_plasticcase_friendly");
  286. block.angles = Angle;
  287. block Solid();
  288. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  289. wait 0.001;
  290. }
  291. }
  292.  
  293. CreateCluster(amount, pos, radius)
  294. {
  295. for(i = 0; i < amount; i++)
  296. {
  297. half = radius / 2;
  298. power = ((randomInt(radius) - half), (randomInt(radius) - half), 500);
  299. block = spawn("script_model", pos + (0, 0, 1000) );
  300. block setModel("com_plasticcase_friendly");
  301. block.angles = (90, 0, 0);
  302. block PhysicsLaunchServer((0, 0, 0), power);
  303. block Solid();
  304. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  305. block thread ResetCluster(pos, radius);
  306. wait 0.05;
  307. }
  308. }
  309.  
  310. ElevatorThink(enter, exit, angle)
  311. {
  312. self endon("disconnect");
  313. while(1)
  314. {
  315. foreach(player in level.players)
  316. {
  317. if(Distance(enter, player.origin) <= 50){
  318. player SetOrigin(exit);
  319. player SetPlayerAngles(angle);
  320. }
  321. }
  322. wait .25;
  323. }
  324. }
  325.  
  326. CreateDoors(open, close, angle, size, height, hp, range)
  327. {
  328. offset = (((size / 2) - 0.5) * -1);
  329. center = spawn("script_model", open );
  330. for(j = 0; j < size; j++){
  331. door = spawn("script_model", open + ((0, 30, 0) * offset));
  332. door setModel("com_plasticcase_enemy");
  333. door Solid();
  334. door CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  335. door EnableLinkTo();
  336. door LinkTo(center);
  337. for(h = 1; h < height; h++){
  338. door = spawn("script_model", open + ((0, 30, 0) * offset) - ((70, 0, 0) * h));
  339. door setModel("com_plasticcase_enemy");
  340. door Solid();
  341. door CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  342. door EnableLinkTo();
  343. door LinkTo(center);
  344. }
  345. offset += 1;
  346. }
  347. center.angles = angle;
  348. center.state = "open";
  349. center.hp = hp;
  350. center.range = range;
  351. center thread DoorThink(open, close);
  352. center thread DoorUse();
  353. center thread ResetDoors(open, hp);
  354. wait 0.01;
  355. }
  356.  
  357. DoorThink(open, close)
  358. {
  359. while(1)
  360. {
  361. if(self.hp > 0){
  362. self waittill ( "triggeruse" , player );
  363. if(player.team == "allies"){
  364. if(self.state == "open"){
  365. self MoveTo(close, level.doorwait);
  366. wait level.doorwait;
  367. self.state = "close";
  368. continue;
  369. }
  370. if(self.state == "close"){
  371. self MoveTo(open, level.doorwait);
  372. wait level.doorwait;
  373. self.state = "open";
  374. continue;
  375. }
  376. }
  377. if(player.team == "axis"){
  378. if(self.state == "close"){
  379. self.hp--;
  380. player iPrintlnBold("HIT");
  381. wait 1;
  382. continue;
  383. }
  384. }
  385. } else {
  386. if(self.state == "close"){
  387. self MoveTo(open, level.doorwait);
  388. }
  389. self.state = "broken";
  390. wait .5;
  391. }
  392. }
  393. }
  394.  
  395. DoorUse(range)
  396. {
  397. self endon("disconnect");
  398. while(1)
  399. {
  400. foreach(player in level.players)
  401. {
  402. if(Distance(self.origin, player.origin) <= self.range){
  403. if(player.team == "allies"){
  404. if(self.state == "open"){
  405. player.hint = "Press ^3[{+activate}] ^7to ^2Close ^7the door";
  406. }
  407. if(self.state == "close"){
  408. player.hint = "Press ^3[{+activate}] ^7to ^2Open ^7the door";
  409. }
  410. if(self.state == "broken"){
  411. player.hint = "^1Door is Broken";
  412. }
  413. }
  414. if(player.team == "axis"){
  415. if(self.state == "close"){
  416. player.hint = "Press ^3[{+activate}] ^7to ^2Attack ^7the door";
  417. }
  418. if(self.state == "broken"){
  419. player.hint = "^1Door is Broken";
  420. }
  421. }
  422. if(player.buttonPressed[ "+activate" ] == 1){
  423. player.buttonPressed[ "+activate" ] = 0;
  424. self notify( "triggeruse" , player);
  425. }
  426. }
  427. }
  428. wait .045;
  429. }
  430. }
  431.  
  432. ResetDoors(open, hp)
  433. {
  434. while(1)
  435. {
  436. level waittill("RESETDOORS");
  437. self.hp = hp;
  438. self MoveTo(open, level.doorwait);
  439. self.state = "open";
  440. }
  441. }
  442.  
  443. ResetCluster(pos, radius)
  444. {
  445. wait 5;
  446. self RotateTo(((randomInt(36)*10), (randomInt(36)*10), (randomInt(36)*10)), 1);
  447. level waittill("RESETCLUSTER");
  448. self thread CreateCluster(1, pos, radius);
  449. self delete();
  450. }
  451.  
  452. roundUp( floatVal )
  453. {
  454. if ( int( floatVal ) != floatVal )
  455. return int( floatVal+1 );
  456. else
  457. return int( floatVal );
  458. }
  459.  
  460. //-------------------------------KillstreakBox-------------------------------------
  461.  
  462. StreakBox(pos, angle)
  463. {
  464. box = spawn("script_model", pos);
  465. box setModel("com_plasticcase_beige_big");
  466. box.angles = angle;
  467. box Solid();
  468. box CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  469. level.trigger = spawn( "trigger_radius", pos, 0, 50, 50 );
  470. level.trigger.angles = angle;
  471. level.trigger thread StreakBoxGive(pos, angle,box);
  472. wait 0.01;
  473. }
  474. StreakBoxGive(pos,angle,box)
  475. {
  476. self endon("disconnect");
  477. while(1)
  478. {
  479. self waittill( "trigger", player );
  480. if(Distance(pos, Player.origin) <= 50)
  481. {
  482. Player setLowerMessage("activate", "^7Hold ^2[{+activate}]^7 for a Random Killstreak" );
  483. }
  484. if(Distance(pos, Player.origin) >50)
  485. {
  486. Player ClearLowerMessage("activate", 1);
  487. }
  488. if(Distance(pos, Player.origin) <= 75 && player useButtonPressed())
  489. {
  490. player ClearLowerMessage("activate", 1);
  491. player playsound( "vending_machine_button_press" );
  492. box thread Effects(box);
  493. player thread Bar();
  494. wait 4.5;
  495. player playsound( "vending_machine_soda_drop" );
  496. player maps\mp\killstreaks\_killstreaks::giveKillstreak( level.streaks[RandomInt( level.streaks.size )], true );
  497. wait 1;
  498. }
  499. wait .25;
  500. }
  501. }
  502. Effects(box)
  503. {
  504. flare = loadfx("misc/flare_ambient_green");
  505. fx1 = SpawnFx(flare, box.origin);
  506. TriggerFX(fx1);
  507. fx2 = SpawnFx(flare, box.origin+(0,0,5));
  508. TriggerFX(fx2);
  509. wait 5;
  510. fx1 delete();
  511. fx2 delete();
  512. }
  513. Bar()
  514. {
  515. duration = 4.0;
  516. bar = createPrimaryProgressBar( 25 );
  517. barText = createPrimaryProgressBarText( 25 );
  518. barText setText( "^2Getting Streak" );
  519. bar updateBar( 0, 1 / duration );
  520. bar.color = (1, 0, 0);
  521. for(i=0;i<4;i++)
  522. {
  523. self playSound( "ui_mp_nukebomb_timer" );
  524. wait 1;
  525. }
  526. wait 3.5;
  527. bar destroyElem();
  528. barText destroyElem();
  529. }
  530.  
  531.  
  532. //------------------------------EliteWeaponBox-------------------------------------
  533.  
  534. RandomWeapon(pos, angle)
  535. {
  536. level.block = spawn("script_model", pos);
  537. level.block setModel("com_plasticcase_beige_big");
  538. level.block.angles = angle;
  539. level.block Solid();
  540. level.block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  541. invisblock = spawn("script_model", pos+(0,0,60));
  542. invisblock Solid();
  543. invisblock.angles = angle;
  544. invisblock CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  545. level.block thread RandomWeaponThink(pos, angle);
  546. level.trigger = spawn( "trigger_radius", pos, 0, 50, 50 );
  547. level.trigger.angles = angle;
  548. level.trigger thread RandomWeaponThink(pos, angle);
  549. wait 0.01;
  550. }
  551.  
  552. RandomWeaponThink(pos, angle)
  553. {
  554. self endon("disconnect");
  555. level endon("endrandom");
  556. while(1)
  557. {
  558. self waittill( "trigger", player );
  559. if(Distance(pos, Player.origin) <= 75)
  560. {
  561. Player setLowerMessage("activate", "^7Hold ^2[[{+activate}]]^7 for a Random Weapon!" );
  562. }
  563. if(Distance(pos, Player.origin) >50)
  564. {
  565. Player ClearLowerMessage("activate", 1);
  566. }
  567. if(Distance(pos, Player.origin) <= 75 && player useButtonPressed())
  568. {
  569. player ClearLowerMessage("activate", 1);
  570. player playsound( "vending_machine_soda_drop" );
  571. player thread giveWeaponFunc(pos);
  572. level.wep = spawn("script_model", pos+(0,5,0));
  573. level.wep.angles = angle;
  574. level.wep MoveTo(level.wep.origin+(0,0,50), 3);
  575. while(1)
  576. {
  577. boxWeapon = level.weapons[RandomInt( level.weapons.size )];
  578. level.wep setModel(GetWeaponModel(boxWeapon));
  579. wait 1.0; //0.13 = Original to spawn fast!
  580. }
  581. }
  582. wait .25;
  583. }
  584. }
  585.  
  586. giveWeaponFunc(pos)
  587. {
  588. level endon("boxend");
  589. wait 8;
  590. level notify("endrandom");
  591. boxWeapon = level.weapons[RandomInt( level.weapons.size )];
  592. level.wep setModel(GetWeaponModel(boxWeapon));
  593. wait 0.1;
  594. while(1)
  595. {
  596. if(Distance(pos, self.origin) <= 75)
  597. {
  598. self setLowerMessage("trade", "^7Hold ^2[[{+activate}]]^7 to Trade Weapons!" );
  599. }
  600. else
  601. {
  602. if(Distance(pos, self.origin) >50) self ClearLowerMessage("trade", 1);
  603. }
  604. if(Distance(pos, self.origin) <= 75 && self useButtonPressed())
  605. {
  606. self ClearLowerMessage("trade", 1);
  607. self notify("newWeapon");
  608. wait 0.1;
  609. self takeWeapon(self getCurrentWeapon());
  610. self _giveWeapon(boxWeapon);
  611. self switchToWeapon(boxWeapon);
  612. self giveMaxAmmo(boxWeapon);
  613. self.firstweapon = 0;
  614. self thread GunSpecials();
  615. wait 0.01;
  616. level.wep delete();
  617. level notify("boxend");
  618. }
  619. wait 0.01;
  620. }
  621. }
  622. GunSpecials()
  623. {
  624. self endon ( "death" );
  625. self endon ( "disconnect" );
  626. self thread monitorSpecial("Crossbow");
  627. }
  628. monitorSpecial(Special)
  629. {
  630. self endon("death");
  631. switch(Special)
  632. {
  633. case "Crossbow": self setWeaponAmmoClip("m21_acog_mp", 1);
  634. for(;;)
  635. {
  636. stock = self getWeaponAmmoStock("m21_acog_mp");
  637. self waittill("weapon_fired");
  638. if(self getCurrentWeapon() == "m21_acog_mp")
  639. {
  640. while(self getWeaponAmmoClip("m21_acog_mp") == 0)
  641. {
  642. wait .05;
  643. }
  644. self setWeaponAmmoClip("m21_acog_mp", 1);
  645. self setWeaponAmmoStock("m21_acog_mp", stock - 1);
  646. }
  647. }
  648. break;
  649. case "CrossbowTwo": for(;;)
  650. {
  651. wep = self getCurrentWeapon();
  652. clip = self getWeaponAmmoClip(wep);
  653. stock = self getWeaponAmmoStock(wep);
  654. if(wep == "m21_acog_fmj_mp") if(clip != 0) self setWeaponAmmoClip(wep, 1);
  655. wait 0.05;
  656. }
  657. break;
  658. }
  659. }
  660.  
  661. //-------------------------------EliteAmmoBox--------------------------------------
  662.  
  663. AmmOMatic(pos, angle)
  664. {
  665. block = spawn("script_model", pos );
  666. block setModel("com_plasticcase_beige_big");
  667. block.angles = angle;
  668. block Solid();
  669. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  670. invisblock = spawn("script_model", pos+(0,0,60));
  671. invisblock Solid();
  672. invisblock.angles = angle;
  673. invisblock CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  674. block.headIcon = newHudElem();
  675. block.headIcon.x = block.origin[0];
  676. block.headIcon.y = block.origin[1];
  677. block.headIcon.z = block.origin[2] + 50;
  678. block.headIcon.alpha = 0.85;
  679. block.headIcon setShader( "waypoint_ammo_friendly", 10,10 );
  680. block.headIcon setWaypoint( true, true, false );
  681. trigger = spawn( "trigger_radius", pos, 0, 50, 50 );
  682. trigger.angles = angle;
  683. trigger thread ammoThink(pos);
  684. wait 0.01;
  685. }
  686. ammoThink(pos)
  687. {
  688. self endon("disconnect");
  689. while(1)
  690. {
  691. self waittill( "trigger", player );
  692. if(Distance(pos, Player.origin) <= 50)
  693. {
  694. Player setLowerMessage("activate", "^7Hold ^2[[{+activate}]]^7 for an Ammo Refill!" );
  695. }
  696. if(Distance(pos, Player.origin) >50)
  697. {
  698. Player ClearLowerMessage("activate", 1);
  699. }
  700. if(Distance(pos, Player.origin) <= 75 && player useButtonPressed())
  701. {
  702. player ClearLowerMessage("activate", 1);
  703. player playsound( "vending_machine_soda_drop" );
  704. player maps\mp\killstreaks\_airdrop::refillAmmo();
  705. player playLocalSound( "ammo_crate_use" );
  706. wait 1;
  707. }
  708. wait .25;
  709. }
  710. }
  711.  
  712. //-------------------------------SpawnWeapon---------------------------------------
  713.  
  714. SpawnWeapon(WFunc,Weapon,WeaponName,Location,TakeOnce)
  715. {
  716. self endon("disconnect");
  717. weapon_model=getWeaponModel(Weapon);
  718. if(weapon_model=="")weapon_model=Weapon;
  719. Wep=spawn("script_model",Location+(0,0,3));
  720. Wep setModel(weapon_model);
  721. //Wep.angles=angle;
  722. for(;;)
  723. {
  724. foreach(player in level.players)
  725. {
  726. Radius=distance(Location,player.origin);
  727. if(Radius<80)
  728. {
  729. player setLowerMessage(WeaponName,"^7Press ^2[[{+activate}]]^7 to swap for "+WeaponName);
  730. if(player UseButtonPressed())wait 0.2;
  731. if(player UseButtonPressed())
  732. {
  733. if(!isDefined(WFunc))
  734. {
  735. player takeWeapon(player getCurrentWeapon());
  736. player _giveWeapon(Weapon);
  737. player switchToWeapon(Weapon);
  738. player clearLowerMessage("pickup",1);
  739. wait 2;
  740. if(TakeOnce)
  741. {
  742. Wep delete();
  743. return;
  744. }
  745. }
  746. else
  747. {
  748. player clearLowerMessage(WeaponName,1);
  749. player [[WFunc]]();
  750. wait 5;
  751. }
  752. }
  753. }
  754. else
  755. {
  756. player clearLowerMessage(WeaponName,1);
  757. }
  758. wait 0.1;
  759. }
  760. wait 0.5;
  761. }
  762. }
  763.  
  764.  
  765. //----------------------EliteAmoWeaponBoxCoordinates--------------------------------
  766.  
  767. DoBoxSpawner()
  768. {
  769. while(1)
  770. {
  771. level waittill("endrandom");
  772. wait 9;
  773. level.block delete();
  774. level.wep delete();
  775. level.trigger delete();
  776. level notify("boxend");
  777. if(getDvar("mapname") == "mp_rust")
  778. {
  779. RandomWeapon((980.017, -2902.83, -194.751),(0, 0, 0));
  780. RandomWeapon((-4414.36, 4129.99, -205.952),(0, 0, 0));
  781. AmmOMatic((572.622, 1756.53, 272.251),(0, 0, 0));
  782.  
  783. }
  784. if(getDvar("mapname") == "mp_afghan")
  785. {
  786. RandomWeapon((1893,2678,375),(0,90,0));
  787. }
  788. if(getDvar("mapname") == "mp_highrise")
  789. {
  790. RandomWeapon((1656,7450,2832), (0, 90, 0));
  791. }
  792. if(getDvar("mapname") == "mp_invasion")
  793. {
  794. RandomWeapon((-2122,-535,272), (0, 0, 0));
  795. }
  796. if(getDvar("mapname") == "mp_favela")
  797. {
  798. RandomWeapon((9881,18431,13635), (0, 90, 0));
  799. }
  800. if(getDvar("mapname") == "mp_checkpoint")
  801. {
  802. RandomWeapon((31, -609, 717), (0, 0, 0));
  803. }
  804. if(getDvar("mapname") == "mp_quarry")
  805. {
  806. RandomWeapon((-3503,63,92), (0, 0, 0));
  807. }
  808. if(getDvar("mapname") == "mp_subbase")
  809. {
  810. RandomWeapon((106,764,33), (0,90,0));
  811. }
  812. if(getDvar("mapname") == "mp_nightshift")
  813. {
  814. RandomWeapon((1243,-252,34),(0,0,0));
  815. }
  816. if(getDvar("mapname") == "mp_strike")
  817. {
  818. RandomWeapon((-1312,113,223),(0,90,0));
  819. }
  820. if(getDvar("mapname") == "mp_vacant")
  821. {
  822. RandomWeapon((1107,768,-47),(0,90,0));
  823. }
  824. if(getDvar("mapname") == "mp_underpass")
  825. {
  826. RandomWeapon((720,-248,320),(0,90,0));
  827. }
  828. if(getDvar("mapname") == "mp_rundown")
  829. {
  830. RandomWeapon((3024,187,1274),(0,0,0));
  831. }
  832. if(getDvar("mapname") == "mp_fuel2")
  833. {
  834. RandomWeapon((1416,-89,94),(0,90,0));
  835. }
  836. if(getDvar("mapname") == "mp_storm")
  837. {
  838. RandomWeapon((-25,-22,0),(0,90,0));
  839. }
  840. if(getDvar("mapname") == "mp_derail")
  841. {
  842. RandomWeapon((1319,-386,-15),(0,0,0));
  843. }
  844. if(getDvar("mapname") == "mp_estate")
  845. {
  846. RandomWeapon((-622,-326,-44),(0,-105,0));
  847. }
  848. if(getDvar("mapname") == "mp_boneyard")
  849. {
  850. RandomWeapon((455,-616,-135),(0,0,0));
  851. }
  852. if(getDvar("mapname") == "mp_terminal")
  853. {
  854. RandomWeapon((-595,324,40),(0,0,0));
  855. }
  856. if(getDvar("mapname") == "mp_brecourt")
  857. {
  858. RandomWeapon((1912,-2706,242),(0,90,0));
  859. }
  860. if(getDvar("mapname") == "mp_overgrown")
  861. {
  862. RandomWeapon((2656,-3011,-10),(0,90,0));
  863. }
  864. if(getDvar("mapname") == "mp_compact")
  865. {
  866. RandomWeapon((1967,2355,216),(0,0,0));
  867. }
  868. if(getDvar("mapname") == "mp_crash")
  869. {
  870. RandomWeapon((1514,447,140),(0,0,0));
  871. }
  872. if(getDvar("mapname") == "mp_abandon")
  873. {
  874. RandomWeapon((-724,9603,595),(0,90,0));
  875. }
  876. if(getDvar("mapname") == "mp_complex")
  877. {
  878. RandomWeapon((2516,-2276,748),(0,90,0));
  879. }
  880. if(getDvar("mapname") == "mp_trailerpark")
  881. {
  882. RandomWeapon((1200,-2561,250),(0,-90,0));
  883. }
  884. wait 1;
  885. }
  886. }
  887. boxSpawner()
  888. {
  889. wait 1;
  890. iPrintLnBold("^3Random Weapon Box^7 spawned!");
  891. level.block delete();
  892. level.trigger delete();
  893. if(getDvar("mapname") == "mp_rust")
  894. {
  895. RandomWeapon((980.017, -2902.83, -194.751),(0, 0, 0));
  896. RandomWeapon((-4414.36, 4129.99, -205.952),(0, 0, 0));
  897. AmmOMatic((572.622, 1756.53, 272.251),(0, 0, 0));
  898. }
  899. if(getDvar("mapname") == "mp_afghan")
  900. {
  901. RandomWeapon((1893,2678,375),(0,90,0));
  902. }
  903. if(getDvar("mapname") == "mp_highrise")
  904. {
  905. RandomWeapon((1656,7450,2832), (0, 90, 0));
  906. }
  907. if(getDvar("mapname") == "mp_invasion")
  908. {
  909. RandomWeapon((-2122,-535,272), (0, 0, 0));
  910. }
  911. if(getDvar("mapname") == "mp_favela")
  912. {
  913. RandomWeapon((9881,18431,13635), (0, 90, 0));
  914. }
  915. if(getDvar("mapname") == "mp_checkpoint")
  916. {
  917. RandomWeapon((31, -609, 717), (0, 0, 0));
  918. }
  919. if(getDvar("mapname") == "mp_quarry")
  920. {
  921. RandomWeapon((-3503,63,92), (0, 0, 0));
  922. }
  923. if(getDvar("mapname") == "mp_subbase")
  924. {
  925. RandomWeapon((106,764,33), (0,90,0));
  926. }
  927. if(getDvar("mapname") == "mp_nightshift")
  928. {
  929. RandomWeapon((1243,-252,34),(0,0,0));
  930. }
  931. if(getDvar("mapname") == "mp_strike")
  932. {
  933. RandomWeapon((-1312,113,223),(0,90,0));
  934. }
  935. if(getDvar("mapname") == "mp_vacant")
  936. {
  937. RandomWeapon((1107,768,-47),(0,90,0));
  938. }
  939. if(getDvar("mapname") == "mp_underpass")
  940. {
  941. RandomWeapon((720,-248,320),(0,90,0));
  942. }
  943. if(getDvar("mapname") == "mp_rundown")
  944. {
  945. RandomWeapon((3024,187,1274),(0,0,0));
  946. }
  947. if(getDvar("mapname") == "mp_fuel2")
  948. {
  949. RandomWeapon((1416,-89,94),(0,90,0));
  950. }
  951. if(getDvar("mapname") == "mp_storm")
  952. {
  953. RandomWeapon((-25,-22,0),(0,90,0));
  954. }
  955. if(getDvar("mapname") == "mp_derail")
  956. {
  957. RandomWeapon((1319,-386,-15),(0,0,0));
  958. }
  959. if(getDvar("mapname") == "mp_estate")
  960. {
  961. RandomWeapon((-622,-326,-44),(0,-105,0));
  962. }
  963. if(getDvar("mapname") == "mp_boneyard")
  964. {
  965. RandomWeapon((455,-616,-135),(0,0,0));
  966. }
  967. if(getDvar("mapname") == "mp_terminal")
  968. {
  969. RandomWeapon((-595,324,40),(0,0,0));
  970. }
  971. if(getDvar("mapname") == "mp_brecourt")
  972. {
  973. RandomWeapon((1912,-2706,242),(0,90,0));
  974. }
  975. if(getDvar("mapname") == "mp_overgrown")
  976. {
  977. RandomWeapon((2656,-3011,-10),(0,90,0));
  978. }
  979. if(getDvar("mapname") == "mp_compact")
  980. {
  981. RandomWeapon((1967,2355,216),(0,0,0));
  982. }
  983. if(getDvar("mapname") == "mp_crash")
  984. {
  985. RandomWeapon((1514,447,140),(0,0,0));
  986. }
  987. if(getDvar("mapname") == "mp_abandon")
  988. {
  989. RandomWeapon((-724,9603,595),(0,90,0));
  990. }
  991. if(getDvar("mapname") == "mp_complex")
  992. {
  993. RandomWeapon((2516,-2276,748),(0,90,0));
  994. }
  995. if(getDvar("mapname") == "mp_trailerpark")
  996. {
  997. RandomWeapon((1200,-2561,250),(0,-90,0));
  998. }
  999. }
  1000.  
  1001.  
  1002. //-----------------------------Moving Platform--------------------------------------
  1003.  
  1004. CreatePlate(corner1, corner2, arivee, angle, time)
  1005. {
  1006. W = Distance((corner1[0], 0, 0), (corner2[0], 0, 0));
  1007. L = Distance((0, corner1[1], 0), (0, corner2[1], 0));
  1008. H = Distance((0, 0, corner1[2]), (0, 0, corner2[2]));
  1009. CX = corner2[0] - corner1[0];
  1010. CY = corner2[1] - corner1[1];
  1011. CZ = corner2[2] - corner1[2];
  1012. ROWS = roundUp(W/55);
  1013. COLUMNS = roundUp(L/30);
  1014. HEIGHT = roundUp(H/20);
  1015. XA = CX/ROWS;
  1016. YA = CY/COLUMNS;
  1017. ZA = CZ/HEIGHT;
  1018. center = spawn("script_model", corner1);
  1019. for(r = 0; r <= ROWS; r++){
  1020. for(c = 0; c <= COLUMNS; c++){
  1021. for(h = 0; h <= HEIGHT; h++){
  1022. block = spawn("script_model", (corner1 + (XA * r, YA * c, ZA * h)));
  1023. block setModel("com_plasticcase_friendly");
  1024. block.angles = (0, 0, 0);
  1025. block Solid();
  1026. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  1027. block thread Escalatore((corner1 + (XA * r, YA * c, ZA * h)), (arivee + (XA * r, YA * c, ZA * h)), time);
  1028. wait 0.01;
  1029. }
  1030. }
  1031. }
  1032. center.angles = angle;
  1033. center thread Escalatore(corner1, arivee, time);
  1034. center CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  1035. }
  1036.  
  1037. Escalatore(depart, arivee, time)
  1038. {
  1039. while(1)
  1040. {
  1041. if(self.state == "open"){
  1042. self MoveTo(depart, time);
  1043. wait (time*2.5);
  1044. self.state = "close";
  1045. continue;
  1046. }
  1047. if(self.state == "close"){
  1048. self MoveTo(arivee, time);
  1049. wait (time*2.5);
  1050. self.state = "open";
  1051. continue;
  1052. }
  1053. }
  1054. }
  1055.  
  1056. CreateAsc(depart, arivee, angle, time)
  1057. {
  1058. Asc = spawn("script_model", depart );
  1059. Asc setModel("com_plasticcase_friendly");
  1060. Asc.angles = angle;
  1061. Asc Solid();
  1062. Asc CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  1063.  
  1064. Asc thread Escalator(depart, arivee, time);
  1065. }
  1066.  
  1067. Escalator(depart, arivee, time)
  1068. {
  1069. while(1)
  1070. {
  1071. if(self.state == "open"){
  1072. self MoveTo(depart, time);
  1073. wait (time*1.5);
  1074. self.state = "close";
  1075. continue;
  1076. }
  1077. if(self.state == "close"){
  1078. self MoveTo(arivee, time);
  1079. wait (time*1.5);
  1080. self.state = "open";
  1081. continue;
  1082. }
  1083. }
  1084. }
  1085.  
  1086. CreateCircle(depart, pass1, pass2, pass3, pass4, arivee, angle, time)
  1087. {
  1088. Asc = spawn("script_model", depart );
  1089. Asc setModel("com_plasticcase_friendly");
  1090. Asc.angles = angle;
  1091. Asc Solid();
  1092. Asc CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  1093.  
  1094. Asc thread Circle(depart, arivee, pass1, pass2, pass3, pass4, time);
  1095. }
  1096.  
  1097. Circle(depart, pass1, pass2, pass3, pass4, arivee, time)
  1098. {
  1099. while(1)
  1100. {
  1101. if(self.state == "open"){
  1102. self MoveTo(depart, time);
  1103. wait (time*1.5);
  1104. self.state = "op";
  1105. continue;
  1106. }
  1107. if(self.state == "op"){
  1108. self MoveTo(pass1, time);
  1109. wait (time);
  1110. self.state = "opi";
  1111. continue;
  1112. }
  1113. if(self.state == "opi"){
  1114. self MoveTo(pass2, time);
  1115. wait (time);
  1116. self.state = "opa";
  1117. continue;
  1118. }
  1119. if(self.state == "opa"){
  1120. self MoveTo(pass3, time);
  1121. wait (time);
  1122. self.state = "ope";
  1123. continue;
  1124. }
  1125. if(self.state == "ope"){
  1126. self MoveTo(pass4, time);
  1127. wait (time);
  1128. self.state = "close";
  1129. continue;
  1130. }
  1131. if(self.state == "close"){
  1132. self MoveTo(arivee, time);
  1133. wait (time);
  1134. self.state = "open";
  1135. continue;
  1136. }
  1137. }
  1138. }
  1139.  
  1140. //------------------------------SpawnModel-----------------------------------------
  1141.  
  1142. SpawnModel(Model,Location)
  1143. {
  1144. self endon("disconnect");
  1145. Obj=spawn("script_model",Location);
  1146. Obj PhysicsLaunchServer((0,0,0),(0,0,0));
  1147. Obj.angles=self.angles+(0,90,0);
  1148. Obj setModel(Model);
  1149. }
  1150.  
  1151. CreateTac(pos)
  1152. {
  1153. efx=loadfx("misc/flare_ambient");
  1154. playFx(efx,pos);
  1155. wait 0.01;
  1156. }
  1157.  
  1158.  
  1159. //---------------------------ChromeForgePatch--------------------------------------
  1160.  
  1161. CreateCrate(pos,angles)
  1162. {
  1163. crate=spawn("script_model",pos);
  1164. crate CloneBrushmodelToScriptmodel(level.airDropCrateCollision);
  1165. crate setModel("com_plasticcase_friendly");
  1166. crate .angles=angles;
  1167. }
  1168.  
  1169. //------------------------------CreateTurret----------------------------------------
  1170.  
  1171. CreateTurret(type,angles,location)
  1172. {
  1173. if(!isDefined(location)|| !isDefined(type))return;
  1174. if(!isDefined(angles))angles =(0,0,0);
  1175. if(type=="sentry")
  1176. {
  1177. turret=spawnTurret("misc_turret",location,"sentry_minigun_mp");
  1178. turret setModel("sentry_minigun");
  1179. turret.angles=angles;
  1180. }
  1181. else if(type=="minigun")
  1182. {
  1183. turret=spawnTurret("misc_turret",location+(0,0,40),"pavelow_minigun_mp");
  1184. turret setModel("weapon_minigun");
  1185. turret.angles=angles;
  1186. }
  1187. }
  1188.  
  1189. //------------------------------UsePredators----------------------------------------
  1190.  
  1191. UsePredators()
  1192. {
  1193. maps\mp\killstreaks\_remotemissile::tryUsePredatorMissile(self.pers["killstreaks"][0].lifeId);
  1194. }
  1195.  
  1196. //-----------------------------EliteForceMod----------------------------------------
  1197.  
  1198. CreateForce(start,end)
  1199. {
  1200. D=Distance((start[0],start[1],0),(end[0],end[1],0));
  1201. H=Distance((0,0,start[2]),(0,0,end[2]));
  1202. blocks=roundUp(D/55);
  1203. height=roundUp(H/30);
  1204. CX=end[0] - start[0];
  1205. CY=end[1] - start[1];
  1206. CZ=end[2] - start[2];
  1207. XA =(CX/blocks);
  1208. YA =(CY/blocks);
  1209. ZA =(CZ/height);
  1210. TXA =(XA/4);
  1211. TYA =(YA/4);
  1212. Temp=VectorToAngles(end - start);
  1213. Angle =(0,Temp[1],90);
  1214. for(h=0;h < height;h++)
  1215. {
  1216. block=spawn("script_model",(start +(TXA,TYA,10)+((0,0,ZA)* h)));
  1217. block setModel(level.chopper_fx["light"]["belly"]);
  1218. block.angles=Angle;
  1219. block Solid();
  1220. block CloneBrushmodelToScriptmodel(level.airDropCrateCollision);
  1221. wait 0.001;
  1222. for(i=1;i < blocks;i++)
  1223. {
  1224. block=spawn("script_model",(start +((XA,YA,0)* i)+(0,0,10)+((0,0,ZA)* h)));
  1225. block setModel(level.chopper_fx["light"]["belly"]);
  1226. block.angles=Angle;
  1227. block Solid();
  1228. block CloneBrushmodelToScriptmodel(level.airDropCrateCollision);
  1229. wait 0.001;
  1230. }
  1231. block=spawn("script_model",((end[0],end[1],start[2])+(TXA * -1,TYA * -1,10)+((0,0,ZA)* h)));
  1232. block setModel(level.chopper_fx["light"]["belly"]);
  1233. block.angles=Angle;
  1234. block Solid();
  1235. block CloneBrushmodelToScriptmodel(level.airDropCrateCollision);
  1236. wait 0.001;
  1237. }
  1238. }
  1239.  
  1240. //----------------------------BunkerCoordinates-------------------------------------
  1241.  
  1242. Afghan()
  1243. {
  1244. CreateGrids((9760,2840,100),(10036,2554,100));
  1245. CreateElevator((567,-273,45),(9339,2680,91));
  1246. CreateWalls((10059,2854,115),(10061,2533,350));
  1247. CreateWalls((10061,2533,115),(9733,2539,350));
  1248. CreateWalls((10059,2854,115),(9744,2850,350));
  1249. CreateWalls((9721,2569,115),(9726,2671,250));
  1250. CreateRamps((10029,2794,115),(10030,2540,245));
  1251. CreateGrids((9980,2564,250),(9733,2819,250));
  1252. CreateDoors((9732,2842,129),(9732,2742,129),(90,0,0),7,2,15,100);
  1253. CreateWalls((9721,2847,265),(9703,2547,279));
  1254. CreateElevator((1007.13, 3888.57, 248.281), (4098.51, 5446.58, 304.981), (0, 0, 0));
  1255. CreateElevator((2575.16, 4353.22, 584.133), (394.045, 2967.83, 314.233), (0, 0, 0));
  1256. CreateElevator((2691.72, 3639.65, 181.272), (967.125, 2643.1, 645.427), (0, 0, 0));
  1257. CreateElevator((1074.88, 2089.08, 783.496), (317.012, 2053.36, 317.38), (0, 0, 0));
  1258. CreateElevator((85.1311, 1213.9, 187.671), (-1830.19, 355.599, 444.485), (0, 0, 0));
  1259. CreateElevator((-1050.73, -268.436, 306.563), (-582.358, -974.874, -20.0596), (0, 0, 0));
  1260. CreateElevator((2112.69, -283.516, 136.125), (3709.7, -135.408, 367.125), (0, 0, 0));
  1261. CreateElevator((4069.39, 638.996, 75.4322), (4079.31, 645.086, 290.125), (0, 0, 0));
  1262. CreateElevator((3292.68, 653.365, 58.6039), (3284.05, 646.118, 290.125), (0, 0, 0));
  1263. CreateElevator((3746.02, 1048.91, 133.37), (3947.55, 1357.73, 287.125), (0, 0, 0));
  1264. CreateElevator((4156.67, 2840.19, 143.035), (4027.01, 3936.15, 646.596), (0, 0, 0));
  1265. CreateElevator((7440.68, 2646.32, -14.4369), (5935.59, 6322.05, 107.898), (0, 0, 0));
  1266. CreateElevator((4975.24, 5369.36, 317.693), (4975.24, 5369.36, 317.693), (0, 0, 0));
  1267. CreateElevator((-2471.97, -760.438, -1455.88), (-2471.97, -760.438, -1455.88), (0, 0, 0));
  1268. CreateElevator((7602.12, 1666.33, -49.5199), (5615.74, 2132.16, -149.136), (0, 0, 0));
  1269. CreateElevator((5857.28, 2651.93, -27.6137), (1236.96, 1552.65, 458.1), (0, 0, 0));
  1270. CreateElevator((1591.86, 3333.68, 250.572), (1648.92, 593.186, 214.946), (0, 0, 0));
  1271. CreateElevator((345.006, 1507.44, 184.288), (1467.25, -262.455, 173.845), (0, 0, 0));
  1272. CreateElevator((2005.56, 1407.27, 23.559), (2118.82, 2672.57, 221.393), (0, 0, 0));
  1273. }
  1274.  
  1275. Derail()
  1276. {
  1277. CreateElevator((841,-3370,272),(-3491,-1801,871));
  1278. CreateGrids((-3702,-1776,854),(-3350,-1295,854));
  1279. CreateWalls((-3673,-1835,860),(-3333,-1842,930));
  1280. CreateWalls((-3336,-1286,868),(-3723,-1294,1060));
  1281. CreateWalls((-3723,-1294,868),(-3723,-1610,1060));
  1282. CreateWalls((-3336,-1286,868),(-3325,-1606,1060));
  1283. CreateDoors((-3354,-1618,868),(-3554,-1618,868),(90,0,90),14,2,15,100);
  1284. CreateRamps((-3645,-1323,868),(-3364,-1317,1040));
  1285. CreateGrids((-3364,-1379,1038),(-3704,-1619,1038));
  1286. }
  1287.  
  1288. Estate()
  1289. {
  1290. CreateWalls((2596,1607,194), (2289,1619,293));
  1291. CreateWalls((2592,1576,194), (2578,1282,293));
  1292. CreateWalls((2286,1586,194), (2270,1291,293));
  1293. CreateDoors((2436,1285,194), (2645,1284,194), (90,0,90),12,2,15,125);
  1294. CreateRamps((2401,1276,191), (2386,1051,85));
  1295. CreateRamps((2449,1289,191), (2456,1071,85));
  1296. CreateGrids((2277,1282,284),(2586,1518,284));
  1297. CreateRamps((2289,1573,284), (2487,1564,194));
  1298. CreateRamps((2100,1417,413), (2255,1414,284));
  1299. CreateGrids((2093,1439,400),(1999,1234,400));
  1300. CreateRamps((2763,1424,413), (2616,1424,284));
  1301. CreateWalls((2111,1225,414),(2113,1373,430));
  1302. CreateWalls((2111,1225,414),(1973,1224,430));
  1303. CreateWalls((1973,1224,414),(1975,1449,430));
  1304. CreateWalls((2104,1468,414),(1975,1449,430));
  1305. CreateWalls((2885,1269,414),(2731,1272,430));
  1306. CreateWalls((2885,1269,414),(2888,1463,430));
  1307. CreateWalls((2888,1463,414),(2754,1471,430));
  1308. CreateWalls((2725,1267,414),(2736,1383,430));
  1309. CreateWalls((2516,364,59), (2496,1278,158));
  1310. CreateWalls((2300,385,98), (2340,1283,165));
  1311. CreateWalls((2526,332,59), (2295,352,165));
  1312. CreateRamps((2827,1481,440),(2822,1580,540));
  1313. CreateRamps((2011,1476,440),(2019,1578,540));
  1314. CreateElevator((1603,-192,59), (2393,401,87));
  1315. CreateGrids((2848,1596,541),(2007,1677,541));
  1316. CreateWalls((2083,1581,555), (2741,1579,565));
  1317. CreateWalls((2878,1691,555),(1980,1690,570));
  1318. CreateWalls((2878,1691,555),(2871,1585,570));
  1319. CreateWalls((1980,1690,555),(1965,1589,570));
  1320. }
  1321.  
  1322. Favela()
  1323. {
  1324. CreateElevator((-1945,803,8),(-285,-8242,-831),(0,0,0));
  1325. CreateWalls((-130,-8889,-825),(-411,-8889,-650));
  1326. CreateWalls((-411,-8658,-825),(-411,-8889,-650));
  1327. CreateWalls((-130,-8889,-825),(-130,-8658,-650));
  1328. CreateRamps((-203,-8859,-830),(-380,-8859,-721));
  1329. CreateGrids((-380,-8811,-721),(-160,-8688,-721),(0,0,0));
  1330. CreateDoors((-128,-8685,-831),(-223,-8685,-831),(90,0,90),10,2,15,100);
  1331. CreateWalls((-130,-8175,-825),(-130,-8658,-650));
  1332. CreateWalls((-411,-8658,-825),(-411,-8175,-650));
  1333. CreateWalls((-159,-8163,-831),(-381,-8166,-700));
  1334. }
  1335. HighRise()
  1336. {
  1337. CreateRamps((-1339,7576,2934),(-1164,8219,2932));
  1338. CreateGrids((112,7664,3040),(337,7893,3040));
  1339. CreateWalls((160,7908,3055),(362,7910,3250));
  1340. CreateWalls((359,7663,3045),(362,7910,3250));
  1341. CreateDoors((159,7877,3055),(159,7677,3055),(90,0,0),8,2,15,100);
  1342. CreateWalls((160,7877,3055),(160,7814,3250));
  1343. CreateRamps((331,7843,3055),(328,7663,3190));
  1344. CreateGrids((275,7663,3185),(190,7878,3185));
  1345. CreateWalls((151,7664,3155),(159,7792,3230));
  1346. }
  1347. Invasion()
  1348. {
  1349. CreateElevator((-377,-1820,264),(-870,2271,248));
  1350. CreateWalls((-1008,2578,248),(-987,3183,500));
  1351. CreateWalls((-987,3183,248),(-665,3185,500));
  1352. CreateWalls((-665,3185,248),(-691,2595,500));
  1353. CreateDoors((-695,2593,256),(-858,2593,256),(90,0,90),10,2,15,100);
  1354. CreateRamps((-968,2990,248),(-973,2710,340));
  1355. CreateGrids((-705,2589,345),(-974,2687,345));
  1356. CreateWalls((-978,2572,359),(-721,2572,369));
  1357. CreateWalls((-971,3518,255),(-457,3593,300));
  1358. CreateRamps((-716,2700,345),(-699,3083,344));
  1359. CreateGrids((-702,3007,345),(-958,3153,345));
  1360. CreateBlocks((-836,3741,290),(90,0,0));
  1361. CreateBlocks((-1003,2539,410),(90,0,0));
  1362. CreateBlocks((-699,2540,410),(90,0,0));
  1363. CreateBlocks((-1005,2486,410),(90,0,0));
  1364. CreateWalls((-821,3001,359),(-963,3001,450));
  1365. CreateDoors((-826,3001,359),(-726,3001,359),(90,0,90),6,2,15,74);
  1366. }
  1367. Karachi()
  1368. {
  1369. CreateElevator((-593,1764,96),(246,817,744));
  1370. CreateWalls((-579,386,744),(-582,652,900));
  1371. CreateWalls((-579,386,744),(-404,380,900));
  1372. CreateWalls((-582,652,744),(-406,663,900));
  1373. CreateDoors((-393,410,744),(-393,510,744),(90,0,0),9,2,15,100);
  1374. CreateRamps((-552,624,850),(-549,434,740));
  1375. CreateGrids((-492,627,850),(-423,411,850));
  1376. CreateWalls((-380,409,844),(-380,594,894));
  1377. CreateGrids((-380,634,850),(-165,617,850));
  1378. CreateGrids((-130,647,850),(-22,384,850));
  1379. CreateWalls((-157,588,864),(-161,373,894));
  1380. CreateWalls((-161,373,864),(0,367,894));
  1381. CreateWalls((-138,667,864),(9,665,894));
  1382. CreateWalls((0,367,864),(9,665,894));
  1383. CreateRamps((-89,231,973),(-87,362,890));
  1384. CreateGrids((-55,234,965),(-276,116,965));
  1385. CreateWalls((-137,240,980),(-297,245,1000));
  1386. CreateWalls((-297,245,980),(-299,107,1000));
  1387. CreateWalls((-299,107,980),(-34,108,1000));
  1388. CreateWalls((-34,108,980),(-35,237,1000));
  1389. CreateRamps((-469,176,1159),(-292,179,1006));
  1390. CreateGrids((-471,143,1147),(-610,387,1147));
  1391. CreateWalls((-452,222,1161),(-449,395,1171));
  1392. CreateWalls((-449,395,1161),(-631,395,1171));
  1393. CreateWalls((-631,395,1161),(-628,128,1171));
  1394. CreateWalls((-628,128,1161),(-461,124,1171));
  1395. CreateRamps((-602,-45,1320),(-604,116,1187));
  1396. CreateGrids((-610,-69,1320),(-243,-175,1320));
  1397. CreateWalls((-220,-55,1334),(-215,-187,1344));
  1398. CreateWalls((-215,-187,1334),(-632,-184,1344));
  1399. CreateWalls((-632,-184,1334),(-632,-63,1344));
  1400. CreateWalls((-250,-41,1334),(-550,-46,1344));
  1401. }
  1402.  
  1403. Quarry()
  1404. {
  1405. CreateElevator((-5048,1663,-94),(-6982,-2524,748));
  1406. CreateGrids((-6471,-2338,748),(-6031,-2534,748));
  1407. CreateWalls((-6000,-2552,763),(-6001,-2332,950));
  1408. CreateWalls((-6001,-2332,763),(-6216,-2332,950));
  1409. CreateWalls((-6217,-2552,763),(-6005,-2552,950));
  1410. CreateRamps((-6054,-2512,763),(-6212,-2524,900));
  1411. CreateGrids((-6223,-2470,891),(-6023,-2352,891));
  1412. CreateWalls((-6248,-2344,906),(-6238,-2534,925));
  1413. CreateDoors((-6226,-2448,763),(-6226,-2448,963),(90,0,0),8,2,15,75);
  1414. }
  1415.  
  1416. Rundown()
  1417. {
  1418. }
  1419.  
  1420. Rust()
  1421. {
  1422.  
  1423. CreateTac((594.374, -9651.31, -155.59));
  1424. CreateTac((387.418, -8202.57, -287.591));
  1425. CreateTac((1734.78, -10075.2, -192.363));
  1426. CreateTac((1734.78, -10075.2, -192.363));
  1427. CreateTac((13017.8, -13504.1, -239.873));
  1428. CreateTac((705.168, 967.347, -200.956));
  1429.  
  1430. CreateTurret("sentry",0,(630.664, 1665.79, 512.251));
  1431. CreateBlocks((773, 1080, 258), (0, 90, 0));
  1432. CreateRamps((745, 1570, 383), (745, 1690, 273));
  1433. CreateDoors((565, 1540, 295), (653, 1540, 295), (90, 90, 0), 3, 2, 15, 60);
  1434. CreateGrids((773, 1135, 258), (533, 1795, 258), (0, 0, 0));
  1435. CreateGrids((695, 1795, 378), (533, 1540, 378), (0, 0, 0));
  1436. CreateGrids((773, 1540, 498), (533, 1795, 498), (0, 0, 0));
  1437. CreateWalls((533, 1795, 278), (773, 1795, 498));
  1438. CreateWalls((790, 1795, 278), (790, 1540, 498));
  1439. CreateWalls((515, 1540, 278), (515, 1795, 498));
  1440. CreateWalls((773, 1540, 278), (715, 1540, 378));
  1441. CreateWalls((590, 1540, 278), (533, 1540, 378));
  1442. CreateWalls((773, 1540, 398), (533, 1540, 428));
  1443. CreateWalls((773, 1540, 458), (740, 1540, 498));
  1444. CreateWalls((566, 1540, 458), (533, 1540, 498));
  1445. CreateRamps((376.487, -8116.39, -309.734),(597.738, -9664.79, -168.652));
  1446. CreateRamps((761.496, 1082.41, 268.125),(1487.17, 1004.01, -132.729));
  1447. CreateRamps((1196.07, 1200, -103.875),(1385.72, 1189.4, -235.665));
  1448. CreateRamps((-269.467, 803.671, -132.875),(-255.766, 1039.92, -235.517));
  1449. CreateElevator((-756.23, -5357.28, -231.667),(-4114.06, -5353.85, 1223.66));
  1450. CreateElevator((-1948.55, 5347.99, -50.1143),(-9901.73, 304.533, 1315.93));
  1451. CreateElevator((1636.57, -222.69, -224.475),(1690.81, -279.993, -209.872));
  1452. CreateElevator((-523.164, -280.326, -219.107),(-468.875, -224.875, -208.082));
  1453. CreateElevator((1685.62, 1860.73, -216.46),(1629.07, 1797.74, -215.573));
  1454. CreateElevator((707.904, 965.688, -200.893),(676.526, 1672.43, 392.625));
  1455. CreateElevator((1733.48, -10073.6, -191.971),(24085.4, -10409, -252.715));
  1456. CreateElevator((13017, -13501.8, -239.875),(-1820.95, -9452.82, -254.131));
  1457. self thread SpawnWeapon(undefined,"cheytac_fmj_xmags_mp","Intervention",(649.053, 1541.41, 431.581),0,(0, -1.53809, 0));
  1458. self thread SpawnWeapon(undefined,"cheytac_fmj_xmags_mp","Intervention",(-1194.88, -3553.31, -274.198),0,(0, 92.7026, 0));
  1459. self thread SpawnWeapon(undefined,"aug_mp","AUG-HBAR",(-1017.22, -3496.44, -278.581),0,(0, -70.1477, 0));
  1460. self thread SpawnWeapon(undefined,"rpg_mp","RPG",(-492.354, -3206.39, -243.524),0,(0, 227.554, 0));
  1461. }
  1462.  
  1463.  
  1464. Scrapyard()
  1465. {
  1466. CreateBlocks((420, 1636, 174), (0, 0, 0));
  1467. CreateBlocks((475, 1636, 174), (0, 0, 0));
  1468. CreateBlocks((530, 1636, 174), (0, 0, 0));
  1469. CreateBlocks((585, 1636, 174), (0, 0, 0));
  1470. CreateBlocks((640, 1636, 174), (0, 0, 0));
  1471. CreateBlocks((695, 1636, 174), (0, 0, 0));
  1472. CreateBlocks((750, 1636, 174), (0, 0, 0));
  1473. CreateBlocks((805, 1636, 174), (0, 0, 0));
  1474. CreateBlocks((860, 1636, 174), (0, 0, 0));
  1475. CreateBlocks((420, 1606, 174), (0, 0, 0));
  1476. CreateBlocks((475, 1606, 174), (0, 0, 0));
  1477. CreateBlocks((530, 1606, 174), (0, 0, 0));
  1478. CreateBlocks((585, 1606, 174), (0, 0, 0));
  1479. CreateBlocks((640, 1606, 174), (0, 0, 0));
  1480. CreateBlocks((695, 1606, 174), (0, 0, 0));
  1481. CreateBlocks((750, 1606, 174), (0, 0, 0));
  1482. CreateBlocks((805, 1606, 174), (0, 0, 0));
  1483. CreateBlocks((860, 1606, 174), (0, 0, 0));
  1484. CreateBlocks((420, 1576, 174), (0, 0, 0));
  1485. CreateBlocks((475, 1576, 174), (0, 0, 0));
  1486. CreateBlocks((530, 1576, 174), (0, 0, 0));
  1487. CreateBlocks((585, 1576, 174), (0, 0, 0));
  1488. CreateBlocks((640, 1576, 174), (0, 0, 0));
  1489. CreateBlocks((695, 1576, 174), (0, 0, 0));
  1490. CreateBlocks((750, 1576, 174), (0, 0, 0));
  1491. CreateBlocks((805, 1576, 174), (0, 0, 0));
  1492. CreateBlocks((860, 1576, 174), (0, 0, 0));
  1493. CreateBlocks((-1541, -80, 1), (0, 90, -33.3));
  1494. CreateBlocks((-1517.7, -80, 16.3), (0, 90, -33.3));
  1495. CreateBlocks((-1494.4, -80, 31.6), (0, 90, -33.3));
  1496. CreateBlocks((-1471.1, -80, 46.9), (0, 90, -33.3));
  1497. CreateBlocks((-1447.8, -80, 62.2), (0, 90, -33.3));
  1498. CreateBlocks((-1424.5, -80, 77.5), (0, 90, -33.3));
  1499. CreateBlocks((-1401.2, -80, 92.8), (0, 90, -33.3));
  1500. CreateBlocks((-1377.9, -80, 108.1), (0, 90, -33.3));
  1501. CreateBlocks((-1354.6, -80, 123.4), (0, 90, -33.3));
  1502. CreateElevator((10, 1659, -72), (860, 1606, 194), (0, 180, 0));
  1503. CreateDoors((1992, 266, -130), (1992, 336, -130), (90, 0, 0), 2, 2, 5, 50);
  1504. CreateDoors((1992, 710, -130), (1992, 640, -130), (90, 0, 0), 2, 2, 5, 50);
  1505. CreateWalls((-2350, 2300, -55), (-2475, 2300, 100));
  1506. CreateWalls((-2625, 2300, -55), (-2750, 2300, 100));
  1507. CreateDoors((-2450, 2300, -47), (-2550, 2300, -47), (90, 180, 90), 4, 2, 20, 75);
  1508. CreateWalls((-2750, 2300, -55), (-2750, 2700, 100));
  1509. CreateWalls((-2750, 2700, -55), (-2350, 2700, 100));
  1510. CreateWalls((-2350, 2700, -55), (-2350, 2300, 100));
  1511. CreateElevator((-379, -320, -140), (-174, 1750, -68));
  1512. CreateElevator((-174, 2000, -68), (-1756, 1664,-98));
  1513. CreateRamps((-2400, 2700, 50), (-2400, 2400, -70));
  1514. CreateGrids((-2450, 2300, 50), (-2750, 2700, 50), (0, 0, 0));
  1515. CreateWalls((-2475, 2300, 50), (-2750, 2300, 100));
  1516. CreateBlocks((-2750, 2150, 120), (90, 0, 0));
  1517. }
  1518.  
  1519. Skidrow()
  1520. {
  1521. CreateGrids((-2602,1305,71), (-3565,1040,71));
  1522. CreateWalls((-3594,1312,71), (-3596,1040,173));
  1523. CreateRamps((-3330,1177,86),(-3130,1177,245));
  1524. CreateGrids((-2829,1047,240),(-3107,1304,240));
  1525. CreateWalls((-2822,1041,252),(-2822,1310,264));
  1526. CreateElevator((1746,213,250), (-967.258,1296.74,120.125), (0,0,0));
  1527. CreateElevator((132,-1870,40), (-967.258,1296.74,120.125), (0,0,0));
  1528. CreateWalls((-219,1027,116), (-208,1313,225));
  1529. CreateElevator((-205.616,1309.97,224.975), (-3713.27,1155.56,-68.7639), (0,0,0));
  1530. CreateElevator((-221.71,1014.72,224.675), (-3713.27,1155.56,-68.7639), (0,0,0));
  1531. CreateBlocks((-215,1357,150), (0,-139.818,0));
  1532. CreateWalls((-187,1033,124), (-188,970,170));
  1533. CreateWalls((-1555,1056,163), (-1557,1295,177));
  1534. }
  1535.  
  1536. SubBase()
  1537. {
  1538. CreateElevator((-691,-2381,62), (-649,3261,286));
  1539. CreateElevator((-44,-2093,3), (-626,3717,334));
  1540. CreateElevator((-841,-2766,0), (-610,4095,374));
  1541. CreateElevator((-1392,4267,679), (-1959,-7129,298));
  1542. CreateElevator((-2556,-7004,203), (-1374,-973,256));
  1543. CreateGrids((-1810,3421,731), (-2104,3702,731));
  1544. CreateWalls((-1771,3693,745), (-2137,3703,845));
  1545. CreateWalls((-2146,3672,745), (-2139,3403,845));
  1546. CreateWalls((-2108,3396,745), (-1783,3404,845));
  1547. CreateBlocks((-1757,3652,731), (0,-92.8784,0));
  1548. CreateRamps((-2090,3693,835), (-2079,3494,745));
  1549. CreateGrids((-2016,3690,846), (-1796,3408,846));
  1550. CreateDoors((-1778,3606,745), (-1777,3443,745), (90,0,180),11,2,15,125);
  1551. CreateGrids((-1979,3724,976), (-1775,3394,976));
  1552. CreateRamps((-2015,3394,976), (-2019,3633,860));
  1553. CreateWalls((-1762,3703,860), (-1762,3387,880));
  1554. CreateWalls((-1745,3737,990), (-1746,3378,1010));
  1555. CreateWalls((-1472,-1182,264), (-1519,-1180,343));
  1556. CreateWalls((-864,-1182,264), (-911,-1182,343));
  1557. CreateWalls((-1111,-915,296), (-968,-916,351));
  1558. CreateWalls((-1383,-915,296), (-1240,-915,351));
  1559. CreateWalls((-834,-1296,264), (-835,-1343,343));
  1560. CreateWalls((-1136,-1859,226), (-1183,-1860,319));
  1561. CreateWalls((-1304,-1861,8), (-1445,-1859,100));
  1562. CreateWalls((-1063,-916,128), (-918,-916,211));
  1563. CreateWalls((-1271,-917,160), (-1160,-916,215));
  1564. }
  1565.  
  1566. Terminal()
  1567. {
  1568. CreateElevator((5607.91, 4215.25, 76.125), (4845.98, 3878.68, 448.125), (0, 0, 0));
  1569. CreateElevator(( 4176.79, 12.4729, 76.125), (616.874, 3284, 342.16), (0, 0, 0));
  1570. CreateElevator((2790.04, 2923.79, 76.125), (-893.355, 4400.5, 44.125), (0, 0, 0));
  1571. CreateElevator((-1825.02, 3928.91, 184.125), (-885.587, 4460.1, 392.125), (0, 0, 0));
  1572. CreateElevator((-1055.7, 6129.03, 320.125), (126.873, 6223.09, 720.125), (0, 0, 0));
  1573. CreateElevator((2470.72, 6951.36, 40.125), (4111.86, 7268.85, 464.125), (0, 0, 0));
  1574. CreateElevator((2160.57, 5761.26, 592.125), (488.621, 5547.19, 448.125), (0, 0, 0));
  1575. CreateElevator((2867.86, 3612.9, 48.125), (2976.19, 4080.16, 192.125), (0, 0, 0));
  1576. CreateElevator((4093.52, 2189.88, 193.125), (2565.06, 6173.29, 372.125), (0, 0, 0));
  1577. CreateElevator((1076.34, 7240.17, 192.125), (1694.92, 2644.26, 363.928), (0, 0, 0));
  1578. CreateElevator((1439.13, 4638.87, 167.977), (4943.35, 2936.57, 464.125), (0, 0, 0));
  1579. CreateElevator((3368.12, 6979.52, 464.125), (682.8, 5722.05, 720.125), (0, 0, 0));
  1580. CreateElevator((-1314.36, 5317.9, 460.125), (-878.244, 4461.33, 536.126), (0, 0, 0));
  1581. }
  1582.  
  1583. Underpass()
  1584. {
  1585.  
  1586. }
  1587.  
  1588. Wasteland()
  1589. {
  1590. CreateWalls((2094,-1762,42),(2094,-2019,685));
  1591. CreateWalls((1790,-2019,42),(2094,-2019,685));
  1592. CreateWalls((2094,-1762,42),(1790,-1762,685));
  1593. CreateRamps((2057,-1841,38),(2057,-1988,135));
  1594. CreateDoors((1790,-2022,32),(1790,-1916,32),(90,0,0),8,2,15,125);
  1595. CreateGrids((1779,-1792,135),(2021,-1988,135),(0,0,0));
  1596. CreateRamps((2057,-1841,155),(2057,-1988,246));
  1597. CreateGrids((1779,-1792,246),(2021,-1988,246),(0,0,0));
  1598. CreateWalls((1759,-1782,149),(1759,-1988,165));
  1599. CreateWalls((1760,-1792,260),(1755,-1997,275));
  1600. CreateBlocks((2056,-1805,137),(0,0,0));
  1601. CreateRamps((2057,-1841,275),(2057,-1988,370));
  1602. CreateGrids((1779,-1792,370),(2021,-1988,370),(0,0,0));
  1603. CreateWalls((1759,-1777,384),(1761,-1988,394));
  1604. CreateBlocks((2056,-1805,246),(0,0,0));
  1605. CreateRamps((2057,-1841,410),(2057,-1988,518));
  1606. CreateGrids((1779,-1792,518),(2021,-1988,518),(0,0,0));
  1607. CreateBlocks((2056,-1805,375),(0,0,0));
  1608. CreateWalls((1759,-1777,532),(1760,-1988,542));
  1609. CreateRamps((2057,-1841,535),(2057,-1988,648));
  1610. CreateBlocks((2056,-1805,525),(0,0,0));
  1611. }
  1612.  
  1613.  
  1614.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement