Advertisement
JoBoz

Untitled

May 15th, 2011
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.09 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. level.elevator_model["enter"] = maps\mp\gametypes\_teams::getTeamFlagModel( "allies" );
  10. level.elevator_model["exit"] = maps\mp\gametypes\_teams::getTeamFlagModel( "axis" );
  11. precacheModel( level.elevator_model["enter"] );
  12. precacheModel( level.elevator_model["exit"] );
  13. wait 1;
  14. if(getDvar("mapname") == "mp_afghan"){ /** Afghan **/
  15. level thread Afghan();
  16. level.doCustomMap = 1;
  17. }
  18. if(getDvar("mapname") == "mp_boneyard"){ /** Scrapyard **/
  19. level thread Scrapyard();
  20. level.doCustomMap = 1;
  21. }
  22. if(getDvar("mapname") == "mp_brecourt"){ /** Wasteland **/
  23. level thread Wasteland();
  24. level.doCustomMap = 1;
  25. }
  26. if(getDvar("mapname") == "mp_checkpoint"){ /** Karachi **/
  27. level thread Karachi();
  28. level.doCustomMap = 1;
  29. }
  30. if(getDvar("mapname") == "mp_derail"){ /** Derail **/
  31. level thread Derail();
  32. level.doCustomMap = 1;
  33. }
  34. if(getDvar("mapname") == "mp_estate"){ /** Estate **/
  35. level thread Estate();
  36. level.doCustomMap = 1;
  37. }
  38. if(getDvar("mapname") == "mp_favela"){ /** Favela **/
  39. level thread Favela();
  40. level.doCustomMap = 1;
  41. }
  42. if(getDvar("mapname") == "mp_highrise"){ /** HighRise **/
  43. level thread HighRise();
  44. level.doCustomMap = 1;
  45. }
  46. if(getDvar("mapname") == "mp_nightshift"){ /** Skidrow **/
  47. level thread Skidrow();
  48. level.doCustomMap = 1;
  49. }
  50. if(getDvar("mapname") == "mp_invasion"){ /** Invasion **/
  51. level thread Invasion();
  52. level.doCustomMap = 1;
  53. }
  54. if(getDvar("mapname") == "mp_quarry"){ /** Quarry **/
  55. level thread Quarry();
  56. level.doCustomMap = 1;
  57. }
  58. if(getDvar("mapname") == "mp_rundown"){ /** Rundown **/
  59. level thread Rundown();
  60. level.doCustomMap = 1;
  61. }
  62. if(getDvar("mapname") == "mp_rust"){ /** Rust **/
  63. level thread Rust();
  64. level.doCustomMap = 1;
  65. }
  66. if(getDvar("mapname") == "mp_subbase"){ /** SubBase **/
  67. level thread SubBase();
  68. level.doCustomMap = 1;
  69. }
  70. if(getDvar("mapname") == "mp_terminal"){ /** Terminal **/
  71. level thread Terminal();
  72. level.doCustomMap = 1;
  73. }
  74. if(getDvar("mapname") == "mp_underpass"){ /** Underpass **/
  75. level thread Underpass();
  76. level.doCustomMap = 1;
  77. }
  78. if(level.doCustomMap == 1){
  79. level.gameState = "starting";
  80. level thread CreateMapWait();
  81. } else {
  82. level.gameState = "starting";
  83. wait 15;
  84. level notify("CREATED");
  85. }
  86. }
  87.  
  88. CreateMapWait()
  89. {
  90. for(i = 30; i > 0; i--)
  91. {
  92. level.TimerText destroy();
  93. level.TimerText = level createServerFontString( "objective", 1.5 );
  94. level.TimerText setPoint( "CENTER", "CENTER", 0, -100 );
  95. level.TimerText setText("^3Wait for the map to be created: " + i);
  96. foreach(player in level.players)
  97. {
  98. player freezeControls(true);
  99. player VisionSetNakedForPlayer("mpIntro", 0);
  100. }
  101. wait 1;
  102. }
  103. level notify("CREATED");
  104. foreach(player in level.players)
  105. {
  106. player freezeControls(false);
  107. player VisionSetNakedForPlayer(getDvar("mapname"), 0);
  108. }
  109. }
  110.  
  111. CreateElevator(enter, exit, angle)
  112. {
  113. flag = spawn( "script_model", enter );
  114. flag setModel( level.elevator_model["enter"] );
  115. wait 0.01;
  116. flag = spawn( "script_model", exit );
  117. flag setModel( level.elevator_model["exit"] );
  118. wait 0.01;
  119. self thread ElevatorThink(enter, exit, angle);
  120. }
  121.  
  122. CreateBlocks(pos, angle)
  123. {
  124. block = spawn("script_model", pos );
  125. block setModel("com_plasticcase_friendly");
  126. block.angles = angle;
  127. block Solid();
  128. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  129. wait 0.01;
  130. }
  131.  
  132. CreateDoors(open, close, angle, size, height, hp, range)
  133. {
  134. offset = (((size / 2) - 0.5) * -1);
  135. center = spawn("script_model", open );
  136. for(j = 0; j < size; j++){
  137. door = spawn("script_model", open + ((0, 30, 0) * offset));
  138. door setModel("com_plasticcase_enemy");
  139. door Solid();
  140. door CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  141. door EnableLinkTo();
  142. door LinkTo(center);
  143. for(h = 1; h < height; h++){
  144. door = spawn("script_model", open + ((0, 30, 0) * offset) - ((70, 0, 0) * h));
  145. door setModel("com_plasticcase_enemy");
  146. door Solid();
  147. door CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  148. door EnableLinkTo();
  149. door LinkTo(center);
  150. }
  151. offset += 1;
  152. }
  153. center.angles = angle;
  154. center.state = "open";
  155. center.hp = hp;
  156. center.range = range;
  157. center thread DoorThink(open, close);
  158. center thread DoorUse();
  159. center thread ResetDoors(open, hp);
  160. wait 0.01;
  161. }
  162.  
  163. CreateRamps(top, bottom)
  164. {
  165. D = Distance(top, bottom);
  166. blocks = roundUp(D/30);
  167. CX = top[0] - bottom[0];
  168. CY = top[1] - bottom[1];
  169. CZ = top[2] - bottom[2];
  170. XA = CX/blocks;
  171. YA = CY/blocks;
  172. ZA = CZ/blocks;
  173. CXY = Distance((top[0], top[1], 0), (bottom[0], bottom[1], 0));
  174. Temp = VectorToAngles(top - bottom);
  175. BA = (Temp[2], Temp[1] + 90, Temp[0]);
  176. for(b = 0; b < blocks; b++){
  177. block = spawn("script_model", (bottom + ((XA, YA, ZA) * b)));
  178. block setModel("com_plasticcase_friendly");
  179. block.angles = BA;
  180. block Solid();
  181. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  182. wait 0.01;
  183. }
  184. block = spawn("script_model", (bottom + ((XA, YA, ZA) * blocks) - (0, 0, 5)));
  185. block setModel("com_plasticcase_friendly");
  186. block.angles = (BA[0], BA[1], 0);
  187. block Solid();
  188. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  189. wait 0.01;
  190. }
  191.  
  192. CreateGrids(corner1, corner2, angle)
  193. {
  194. W = Distance((corner1[0], 0, 0), (corner2[0], 0, 0));
  195. L = Distance((0, corner1[1], 0), (0, corner2[1], 0));
  196. H = Distance((0, 0, corner1[2]), (0, 0, corner2[2]));
  197. CX = corner2[0] - corner1[0];
  198. CY = corner2[1] - corner1[1];
  199. CZ = corner2[2] - corner1[2];
  200. ROWS = roundUp(W/55);
  201. COLUMNS = roundUp(L/30);
  202. HEIGHT = roundUp(H/20);
  203. XA = CX/ROWS;
  204. YA = CY/COLUMNS;
  205. ZA = CZ/HEIGHT;
  206. center = spawn("script_model", corner1);
  207. for(r = 0; r <= ROWS; r++){
  208. for(c = 0; c <= COLUMNS; c++){
  209. for(h = 0; h <= HEIGHT; h++){
  210. block = spawn("script_model", (corner1 + (XA * r, YA * c, ZA * h)));
  211. block setModel("com_plasticcase_friendly");
  212. block.angles = (0, 0, 0);
  213. block Solid();
  214. block LinkTo(center);
  215. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  216. wait 0.01;
  217. }
  218. }
  219. }
  220. center.angles = angle;
  221. }
  222.  
  223. CreateWalls(start, end)
  224. {
  225. D = Distance((start[0], start[1], 0), (end[0], end[1], 0));
  226. H = Distance((0, 0, start[2]), (0, 0, end[2]));
  227. blocks = roundUp(D/55);
  228. height = roundUp(H/30);
  229. CX = end[0] - start[0];
  230. CY = end[1] - start[1];
  231. CZ = end[2] - start[2];
  232. XA = (CX/blocks);
  233. YA = (CY/blocks);
  234. ZA = (CZ/height);
  235. TXA = (XA/4);
  236. TYA = (YA/4);
  237. Temp = VectorToAngles(end - start);
  238. Angle = (0, Temp[1], 90);
  239. for(h = 0; h < height; h++){
  240. block = spawn("script_model", (start + (TXA, TYA, 10) + ((0, 0, ZA) * h)));
  241. block setModel("com_plasticcase_friendly");
  242. block.angles = Angle;
  243. block Solid();
  244. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  245. wait 0.001;
  246. for(i = 1; i < blocks; i++){
  247. block = spawn("script_model", (start + ((XA, YA, 0) * i) + (0, 0, 10) + ((0, 0, ZA) * h)));
  248. block setModel("com_plasticcase_friendly");
  249. block.angles = Angle;
  250. block Solid();
  251. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  252. wait 0.001;
  253. }
  254. block = spawn("script_model", ((end[0], end[1], start[2]) + (TXA * -1, TYA * -1, 10) + ((0, 0, ZA) * h)));
  255. block setModel("com_plasticcase_friendly");
  256. block.angles = Angle;
  257. block Solid();
  258. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  259. wait 0.001;
  260. }
  261. }
  262.  
  263. CreateCluster(amount, pos, radius)
  264. {
  265. for(i = 0; i < amount; i++)
  266. {
  267. half = radius / 2;
  268. power = ((randomInt(radius) - half), (randomInt(radius) - half), 500);
  269. block = spawn("script_model", pos + (0, 0, 1000) );
  270. block setModel("com_plasticcase_friendly");
  271. block.angles = (90, 0, 0);
  272. block PhysicsLaunchServer((0, 0, 0), power);
  273. block Solid();
  274. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  275. block thread ResetCluster(pos, radius);
  276. wait 0.05;
  277. }
  278. }
  279.  
  280. ElevatorThink(enter, exit, angle)
  281. {
  282. self endon("disconnect");
  283. while(1)
  284. {
  285. foreach(player in level.players)
  286. {
  287. if(Distance(enter, player.origin) <= 50){
  288. player SetOrigin(exit);
  289. player SetPlayerAngles(angle);
  290. }
  291. }
  292. wait .25;
  293. }
  294. }
  295.  
  296. DoorThink(open, close)
  297. {
  298. while(1)
  299. {
  300. if(self.hp > 0){
  301. self waittill ( "triggeruse" , player );
  302. if(player.team == "allies"){
  303. if(self.state == "open"){
  304. self MoveTo(close, level.doorwait);
  305. wait level.doorwait;
  306. self.state = "close";
  307. continue;
  308. }
  309. if(self.state == "close"){
  310. self MoveTo(open, level.doorwait);
  311. wait level.doorwait;
  312. self.state = "open";
  313. continue;
  314. }
  315. }
  316. if(player.team == "axis"){
  317. if(self.state == "close"){
  318. self.hp--;
  319. player iPrintlnBold("HIT");
  320. wait 1;
  321. continue;
  322. }
  323. }
  324. } else {
  325. if(self.state == "close"){
  326. self MoveTo(open, level.doorwait);
  327. }
  328. self.state = "broken";
  329. wait .5;
  330. }
  331. }
  332. }
  333.  
  334. DoorUse(range)
  335. {
  336. self endon("disconnect");
  337. while(1)
  338. {
  339. foreach(player in level.players)
  340. {
  341. if(Distance(self.origin, player.origin) <= self.range){
  342. if(player.team == "allies"){
  343. if(self.state == "open"){
  344. player.hint = "Press ^3[{+activate}] ^7to ^2Close ^7the door";
  345. }
  346. if(self.state == "close"){
  347. player.hint = "Press ^3[{+activate}] ^7to ^2Open ^7the door";
  348. }
  349. if(self.state == "broken"){
  350. player.hint = "^1Door is Broken";
  351. }
  352. }
  353. if(player.team == "axis"){
  354. if(self.state == "close"){
  355. player.hint = "Press ^3[{+activate}] ^7to ^2Attack ^7the door";
  356. }
  357. if(self.state == "broken"){
  358. player.hint = "^1Door is Broken";
  359. }
  360. }
  361. if(player.buttonPressed[ "+activate" ] == 1){
  362. player.buttonPressed[ "+activate" ] = 0;
  363. self notify( "triggeruse" , player);
  364. }
  365. }
  366. }
  367. wait .045;
  368. }
  369. }
  370.  
  371. ResetDoors(open, hp)
  372. {
  373. while(1)
  374. {
  375. level waittill("RESETDOORS");
  376. self.hp = hp;
  377. self MoveTo(open, level.doorwait);
  378. self.state = "open";
  379. }
  380. }
  381.  
  382. ResetCluster(pos, radius)
  383. {
  384. wait 5;
  385. self RotateTo(((randomInt(36)*10), (randomInt(36)*10), (randomInt(36)*10)), 1);
  386. level waittill("RESETCLUSTER");
  387. self thread CreateCluster(1, pos, radius);
  388. self delete();
  389. }
  390.  
  391. roundUp( floatVal )
  392. {
  393. if ( int( floatVal ) != floatVal )
  394. return int( floatVal+1 );
  395. else
  396. return int( floatVal );
  397. }
  398.  
  399. Afghan()
  400. {
  401. // Your Content here!
  402. }
  403.  
  404. Derail()
  405. {
  406. // Your Content here!
  407. }
  408.  
  409. Estate()
  410. {
  411. self thread Tank();
  412. }
  413.  
  414. Tank(pos, angle)
  415. {
  416. tank = spawn("script_model", pos );
  417. tank setModel("vehicle_m1a1_abrams_dmg");
  418. tank.angles = angle;
  419. tank Solid();
  420. tank CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  421. tank.headIcon = newHudElem();
  422. tank.headIcon.x = tank.origin[0];
  423. tank.headIcon.y = tank.origin[1];
  424. tank.headIcon.z = tank.origin[2] + 50;
  425. tank.headIcon.alpha = 0.85;
  426. tank.headIcon setShader( "cardicon_tank_01", 2,2 );
  427. tank.headIcon setWaypoint( true, true, false );
  428. trigger = spawn( "trigger_radius", pos, 0, 50, 50 );
  429. trigger.angles = angle;
  430. trigger thread TankThink(pos, angle);
  431. wait 0.01;
  432. }
  433.  
  434. TankThink(pos, angle)
  435. {
  436. self endon("disconnect");
  437. tank = spawn("script_model", pos );
  438. tank setModel("vehicle_m1a1_abrams_dmg");
  439. tank.angles = angle;
  440. tank Solid();
  441. tank CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  442.  
  443.  
  444. while(1)
  445. {
  446. self waittill( "trigger", player );
  447. if(player.tank != 1)
  448. if(Distance(pos, Player.origin) <= 75){
  449. Player setLowerMessage("activate", "Press ^3[{+activate}]^7 to Drive Tank [^31750^7]" );}
  450. if(Distance(pos, Player.origin) >50){
  451. Player ClearLowerMessage("activate", 1);}
  452. if(Distance(pos, Player.origin) <= 75 && player.tank != 1 && player.cash >= 1750 && player useButtonPressed())
  453. {
  454. player ClearLowerMessage("activate", 1);
  455. player.cash -= 1750;
  456. tank delete();
  457. player thread Tanker();
  458. wait 60;
  459. player thread Exitted();
  460. wait 1;
  461. }
  462. else if(Distance(pos, Player.origin) <= 75 && player.tank != 1 && player.cash <= 1750 && player useButtonPressed())
  463. {
  464. player iPrintln("You do not have enough points!");
  465. wait 1;
  466. }
  467. wait .25;
  468. }
  469. }
  470.  
  471.  
  472.  
  473. Tanker()
  474. {
  475. self endon ("death");
  476. self endon ("exitTank");
  477.  
  478. self setModel("vehicle_m1a1_abrams_dmg");
  479. self _clearPerks();
  480. self allowJump(false);
  481. self DisableWeaponSwitch();
  482. self _disableUsability();
  483. self.moveSpeedScaler = 0.6;
  484. self setClientDvar("cg_thirdPerson", 1);
  485. self setClientDvar("cg_thirdPersonRange", "1024");
  486. self thread TankAims();
  487. self thread Turret();
  488. self maps\mp\perks\_perks::givePerk("specialty_quieter");
  489. }
  490.  
  491. TankAims()
  492. {
  493. self endon ( "disconnect" );
  494. self endon ( "death" );
  495. self endon ("exitTank");
  496.  
  497. self notifyOnPlayerCommand("[{+toggleads_throw}]", "+toggleads_throw");
  498. while(1)
  499. {
  500. self takeAllWeapons();
  501. self waittill("[{+toggleads_throw}]");
  502. wait 0.3;
  503. self setClientDvar("cg_thirdPerson", 0);
  504. self giveWeapon("ac130_40mm_mp", 0, false);
  505. self switchToWeapon("ac130_40mm_mp");
  506. self waittill( "weapon_fired" );
  507. self playSound( "bmp_fire" );
  508. self setClientDvar("cg_thirdPerson", 1);
  509. self takeAllWeapons();
  510. self giveWeapon("ac130_40mm_mp", 0, false);
  511. self switchToWeapon("ac130_40mm_mp");
  512. wait 0.0005;
  513. }
  514. }
  515.  
  516. Turret()
  517. {
  518. self endon ( "disconnect" );
  519. self endon ( "death" );
  520. self endon ("exitTank");
  521.  
  522. self EnableLinkTo();
  523. self notifyOnPlayerCommand( "T", "+reload");
  524.  
  525. for (;;)
  526. {
  527. self waittill( "T" );
  528. Turret = spawnTurret( "misc_turret", self.origin+(50,0,50), "pavelow_minigun_mp" );
  529. Turret LinkTo("self");
  530. Turret setModel( "weapon_minigun" );
  531. Turret.angles = self.angles;
  532. Turret MakeUsable();
  533. Turret useby(self);
  534. Turret EnableLinkTo();
  535. self PlayerLinkTo( Turret, 0.5 );
  536. wait 7;
  537. Turret delete();
  538. self Unlink(Turret);
  539. }
  540. }
  541.  
  542. ChangeAppearance(Type,MyTeam)
  543. {
  544. ModelType=[];
  545. ModelType[0]="GHILLIE";
  546. ModelType[1]="SNIPER";
  547. ModelType[2]="LMG";
  548. ModelType[3]="ASSAULT";
  549. ModelType[4]="SHOTGUN";
  550. ModelType[5]="SMG";
  551. ModelType[6]="RIOT";
  552. if(Type==7){MyTeam=randomint(2);Type=randomint(7);}
  553. team=get_enemy_team(self.team);if(MyTeam)team=self.team;
  554. self detachAll();
  555. [[game[team+"_model"][ModelType[Type]]]]();
  556. }
  557.  
  558. Exitted()
  559. {
  560. self thread ChangeAppearance(5,1);
  561. self setClientDvar("cg_thirdPerson", 0);
  562. self giveWeapon("ump45_mp");
  563. self giveWeapon("spas12_mp");
  564. self switchToWeapon("ump45_mp");
  565. self.moveSpeedScaler = 1;
  566. self allowJump(true);
  567. self allowSprint(true);
  568. self notify ("exitTank");
  569. }
  570. }
  571.  
  572. Favela()
  573. {
  574. // Your Content here!
  575. }
  576.  
  577. HighRise()
  578. {
  579. // Your Content here!
  580. }
  581.  
  582. Invasion()
  583. {
  584. // Your Content here!
  585. }
  586.  
  587. Karachi()
  588. {
  589. // Your Content here!
  590. }
  591.  
  592. Quarry()
  593. {
  594. // Your Content here!
  595. }
  596.  
  597. Rundown()
  598. {
  599. // Your Content here!
  600. }
  601.  
  602. Rust()
  603. {
  604. // Your Content here!
  605. }
  606.  
  607. Scrapyard()
  608. {
  609. // Your Content here!
  610. }
  611.  
  612. Skidrow()
  613. {
  614. CreateElevator((-750, -1340, 136), (-737, -1751, 280), (0, 180, 0));
  615. CreateRamps((-1000, -1688, 260), (-888, -1688, 260));
  616. CreateElevator((-1089, -1774, 280), (-275, -1783, 448), (0, 270, 0));
  617. CreateElevator((-448, -2649, 448), (-190, -2400, 624), (0, 180, 0));
  618. CreateElevator((369, -2605, 624), (1480, 1174, 120), (0, 180, 0));
  619. CreateRamps((2215, 1020, 160), (2215, 1350, 160));
  620. CreateWalls((-2605, 1040, 68), (-2605, 1312, 290));
  621. CreateRamps((-2297, 1310, 115), (-2585, 1310, 220));
  622. CreateRamps((-2297, 1043, 115), (-2585, 1043, 220));
  623. CreateGrids((-2580, 1095, 225), (-2285, 1260, 225), (0, 0, 0));
  624. CreateDoors((-2280, 1173, 245), (-2280, 1173, 120), (90, 0, 0), 10, 2, 5, 50);
  625. CreateElevator((-2575, 1047, 100), (-1900, 1288, 465), (0, 0, 0));
  626. CreateElevator((-2575, 1304, 100), (-1900, 1065, 465), (0, 0, 0));
  627. CreateRamps((-1606, 377, 330), (-1430, 377, 417));
  628. CreateRamps((-1032, 244, 436), (-900, 244, 447));
  629. CreateElevator((-451, 753, 372), (336, 681, 576), (0, 180, 0));
  630. CreateRamps((-2008, 213, 322), (-1890, 213, 322));
  631. CreateRamps((-2008, 213, 190), (-1890, 213, 190));
  632. CreateRamps((-1132, 685, 440), (-1410, 685, 440));
  633. CreateRamps((625, 378, 615), (625, 266, 615));
  634. CreateRamps((-2585, 1250, 105), (-2365, 1250, 105));
  635. CreateRamps((-2585, 1105, 105), (-2365, 1105, 105));
  636. mgTurret1 = spawnTurret( "misc_turret", (102, 951, 620), "pavelow_minigun_mp" );
  637. mgTurret1 setModel( "weapon_minigun" );
  638. mgTurret1.angles = (0, 180, 0);
  639. mgTurret1 = spawnTurret( "misc_turret", (-1606, 1179, 565), "pavelow_minigun_mp" );
  640. mgTurret1 setModel( "weapon_minigun" );
  641. mgTurret1.angles = (0, 0, 0);
  642. }
  643.  
  644. SubBase()
  645. {
  646. // Your Content here!
  647. }
  648.  
  649.  
  650. Terminal()
  651. {
  652. // Your Content here!
  653. }
  654.  
  655. Underpass()
  656. {
  657. // Your Content here!
  658. }
  659.  
  660. Wasteland()
  661. {
  662. // Your Content here!
  663. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement