Advertisement
body_guard

MapEdit.gsc

Sep 5th, 2011
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.70 KB | None | 0 0
  1. //http://www.se7ensins.com/forums/topic/344409-release-trampoline/
  2. #include common_scripts\utility;
  3. #include maps\mp\_utility;
  4. #include maps\mp\gametypes\_hud_util;
  5.  
  6.  
  7.  
  8. init()
  9. {
  10. level.doCustomMap = 0;
  11. level.doorwait = 2;
  12. level.elevator_model["enter"] = maps\mp\gametypes\_teams::getTeamFlagModel( "allies" );
  13. level.elevator_model["exit"] = maps\mp\gametypes\_teams::getTeamFlagModel( "axis" );
  14. precacheModel( level.elevator_model["enter"] );
  15. precacheModel( level.elevator_model["exit"] );
  16. wait 1;
  17. if(getDvar("mapname") == "mp_afghan"){ /** Afghan **/
  18. level thread Afghan();
  19. level.doCustomMap = 1;
  20. }
  21. if(getDvar("mapname") == "mp_boneyard"){ /** Scrapyard **/
  22. level thread Scrapyard();
  23. level.doCustomMap = 1;
  24. }
  25. if(getDvar("mapname") == "mp_brecourt"){ /** Wasteland **/
  26. level thread Wasteland();
  27. level.doCustomMap = 1;
  28. }
  29. if(getDvar("mapname") == "mp_checkpoint"){ /** Karachi **/
  30. level thread Karachi();
  31. level.doCustomMap = 1;
  32. }
  33. if(getDvar("mapname") == "mp_derail"){ /** Derail **/
  34. level thread Derail();
  35. level.doCustomMap = 1;
  36. }
  37. if(getDvar("mapname") == "mp_estate"){ /** Estate **/
  38. level thread Estate();
  39. level.doCustomMap = 1;
  40. }
  41. if(getDvar("mapname") == "mp_favela"){ /** Favela **/
  42. level thread Favela();
  43. level.doCustomMap = 1;
  44. }
  45. if(getDvar("mapname") == "mp_highrise"){ /** HighRise **/
  46. level thread HighRise();
  47. level.doCustomMap = 1;
  48. }
  49. if(getDvar("mapname") == "mp_nightshift"){ /** Skidrow **/
  50. level thread Skidrow();
  51. level.doCustomMap = 1;
  52. }
  53. if(getDvar("mapname") == "mp_invasion"){ /** Invasion **/
  54. level thread Invasion();
  55. level.doCustomMap = 1;
  56. }
  57. if(getDvar("mapname") == "mp_quarry"){ /** Quarry **/
  58. level thread Quarry();
  59. level.doCustomMap = 1;
  60. }
  61. if(getDvar("mapname") == "mp_rundown"){ /** Rundown **/
  62. level thread Rundown();
  63. level.doCustomMap = 1;
  64. }
  65. if(getDvar("mapname") == "mp_rust"){ /** Rust **/
  66. level thread Rust();
  67. level.doCustomMap = 1;
  68. }
  69. if(getDvar("mapname") == "mp_subbase"){ /** SubBase **/
  70. level thread SubBase();
  71. level.doCustomMap = 1;
  72. }
  73. if(getDvar("mapname") == "mp_terminal"){ /** Terminal **/
  74. level thread Terminal();
  75. level.doCustomMap = 1;
  76. }
  77. if(getDvar("mapname") == "mp_underpass"){ /** Underpass **/
  78. level thread Underpass();
  79. level.doCustomMap = 1;
  80. }
  81. if(level.doCustomMap == 1){
  82. level.gameState = "starting";
  83. }
  84. }
  85.  
  86.  
  87. CreateElevator(enter, exit, angle)
  88. {
  89. flag = spawn( "script_model", enter );
  90. flag setModel( level.elevator_model["enter"] );
  91. wait 0.01;
  92. flag = spawn( "script_model", exit );
  93. flag setModel( level.elevator_model["exit"] );
  94. wait 0.01;
  95. self thread ElevatorThink(enter, exit, angle);
  96. }
  97.  
  98. CreateBlocks(pos, angle)
  99. {
  100. block = spawn("script_model", pos );
  101. block setModel("com_plasticcase_friendly");
  102. block.angles = angle;
  103. block Solid();
  104. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  105. wait 0.01;
  106. }
  107.  
  108. CreateDoors(open, close, angle, size, height, hp, range)
  109. {
  110. offset = (((size / 2) - 0.5) * -1);
  111. center = spawn("script_model", open );
  112. for(j = 0; j < size; j++){
  113. door = spawn("script_model", open + ((0, 30, 0) * offset));
  114. door setModel("com_plasticcase_enemy");
  115. door Solid();
  116. door CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  117. door EnableLinkTo();
  118. door LinkTo(center);
  119. for(h = 1; h < height; h++){
  120. door = spawn("script_model", open + ((0, 30, 0) * offset) - ((70, 0, 0) * h));
  121. door setModel("com_plasticcase_enemy");
  122. door Solid();
  123. door CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  124. door EnableLinkTo();
  125. door LinkTo(center);
  126. }
  127. offset += 1;
  128. }
  129. center.angles = angle;
  130. center.state = "open";
  131. center.hp = hp;
  132. center.range = range;
  133. center thread DoorThink(open, close);
  134. center thread DoorUse();
  135. center thread ResetDoors(open, hp);
  136. wait 0.01;
  137. }
  138.  
  139. CreateRamps(top, bottom)
  140. {
  141. D = Distance(top, bottom);
  142. blocks = roundUp(D/30);
  143. CX = top[0] - bottom[0];
  144. CY = top[1] - bottom[1];
  145. CZ = top[2] - bottom[2];
  146. XA = CX/blocks;
  147. YA = CY/blocks;
  148. ZA = CZ/blocks;
  149. CXY = Distance((top[0], top[1], 0), (bottom[0], bottom[1], 0));
  150. Temp = VectorToAngles(top - bottom);
  151. BA = (Temp[2], Temp[1] + 90, Temp[0]);
  152. for(b = 0; b < blocks; b++){
  153. block = spawn("script_model", (bottom + ((XA, YA, ZA) * b)));
  154. block setModel("com_plasticcase_friendly");
  155. block.angles = BA;
  156. block Solid();
  157. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  158. wait 0.01;
  159. }
  160. block = spawn("script_model", (bottom + ((XA, YA, ZA) * blocks) - (0, 0, 5)));
  161. block setModel("com_plasticcase_friendly");
  162. block.angles = (BA[0], BA[1], 0);
  163. block Solid();
  164. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  165. wait 0.01;
  166. }
  167.  
  168. CreateGrids(corner1, corner2, angle)
  169. {
  170. W = Distance((corner1[0], 0, 0), (corner2[0], 0, 0));
  171. L = Distance((0, corner1[1], 0), (0, corner2[1], 0));
  172. H = Distance((0, 0, corner1[2]), (0, 0, corner2[2]));
  173. CX = corner2[0] - corner1[0];
  174. CY = corner2[1] - corner1[1];
  175. CZ = corner2[2] - corner1[2];
  176. ROWS = roundUp(W/55);
  177. COLUMNS = roundUp(L/30);
  178. HEIGHT = roundUp(H/20);
  179. XA = CX/ROWS;
  180. YA = CY/COLUMNS;
  181. ZA = CZ/HEIGHT;
  182. center = spawn("script_model", corner1);
  183. for(r = 0; r <= ROWS; r++){
  184. for(c = 0; c <= COLUMNS; c++){
  185. for(h = 0; h <= HEIGHT; h++){
  186. block = spawn("script_model", (corner1 + (XA * r, YA * c, ZA * h)));
  187. block setModel("com_plasticcase_friendly");
  188. block.angles = (0, 0, 0);
  189. block Solid();
  190. block LinkTo(center);
  191. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  192. wait 0.01;
  193. }
  194. }
  195. }
  196. center.angles = angle;
  197. }
  198.  
  199. CreateWalls(start, end)
  200. {
  201. D = Distance((start[0], start[1], 0), (end[0], end[1], 0));
  202. H = Distance((0, 0, start[2]), (0, 0, end[2]));
  203. blocks = roundUp(D/55);
  204. height = roundUp(H/30);
  205. CX = end[0] - start[0];
  206. CY = end[1] - start[1];
  207. CZ = end[2] - start[2];
  208. XA = (CX/blocks);
  209. YA = (CY/blocks);
  210. ZA = (CZ/height);
  211. TXA = (XA/4);
  212. TYA = (YA/4);
  213. Temp = VectorToAngles(end - start);
  214. Angle = (0, Temp[1], 90);
  215. for(h = 0; h < height; h++){
  216. block = spawn("script_model", (start + (TXA, TYA, 10) + ((0, 0, ZA) * h)));
  217. block setModel("com_plasticcase_friendly");
  218. block.angles = Angle;
  219. block Solid();
  220. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  221. wait 0.001;
  222. for(i = 1; i < blocks; i++){
  223. block = spawn("script_model", (start + ((XA, YA, 0) * i) + (0, 0, 10) + ((0, 0, ZA) * h)));
  224. block setModel("com_plasticcase_friendly");
  225. block.angles = Angle;
  226. block Solid();
  227. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  228. wait 0.001;
  229. }
  230. block = spawn("script_model", ((end[0], end[1], start[2]) + (TXA * -1, TYA * -1, 10) + ((0, 0, ZA) * h)));
  231. block setModel("com_plasticcase_friendly");
  232. block.angles = Angle;
  233. block Solid();
  234. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  235. wait 0.001;
  236. }
  237. }
  238.  
  239. CreateCluster(amount, pos, radius)
  240. {
  241. for(i = 0; i < amount; i++)
  242. {
  243. half = radius / 2;
  244. power = ((randomInt(radius) - half), (randomInt(radius) - half), 500);
  245. block = spawn("script_model", pos + (0, 0, 1000) );
  246. block setModel("com_plasticcase_friendly");
  247. block.angles = (90, 0, 0);
  248. block PhysicsLaunchServer((0, 0, 0), power);
  249. block Solid();
  250. block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
  251. block thread ResetCluster(pos, radius);
  252. wait 0.05;
  253. }
  254. }
  255.  
  256. ElevatorThink(enter, exit, angle)
  257. {
  258. self endon("disconnect");
  259. while(1)
  260. {
  261. foreach(player in level.players)
  262. {
  263. if(Distance(enter, player.origin) <= 50){
  264. player SetOrigin(exit);
  265. player SetPlayerAngles(angle);
  266. }
  267. }
  268. wait .25;
  269. }
  270. }
  271.  
  272. DoorThink(open, close)
  273. {
  274. while(1)
  275. {
  276. if(self.hp > 0){
  277. self waittill ( "triggeruse" , player );
  278. if(player.team == "allies"){
  279. if(self.state == "open"){
  280. self MoveTo(close, level.doorwait);
  281. wait level.doorwait;
  282. self.state = "close";
  283. continue;
  284. }
  285. if(self.state == "close"){
  286. self MoveTo(open, level.doorwait);
  287. wait level.doorwait;
  288. self.state = "open";
  289. continue;
  290. }
  291. }
  292. if(player.team == "axis"){
  293. if(self.state == "close"){
  294. self.hp--;
  295. player iPrintlnBold("HIT");
  296. wait 1;
  297. continue;
  298. }
  299. }
  300. } else {
  301. if(self.state == "close"){
  302. self MoveTo(open, level.doorwait);
  303. }
  304. self.state = "broken";
  305. wait .5;
  306. }
  307. }
  308. }
  309.  
  310. drawTrampoline()
  311. {
  312. level.tramp = [];
  313. trampNum = 0;
  314. for(x=1;x<=18;x++) {
  315. for(y=1;y<=19;y++) {
  316. level.tramp[trampNum] = spawn("script_model", (0+(x*58), 0+(y*28),44.5));
  317. level.tramp[trampNum] setModel("com_plasticcase_friendly");
  318. trampNum++;
  319. }
  320. }
  321. }
  322. monitorTramp()
  323. {
  324. self endon("death");
  325. self endon("disconnect");
  326. for(;;) {
  327. foreach(pkg in level.tramp) {
  328. if(distance(self.origin, pkg.origin)<20){
  329. self iprintln("You should be jumping!");
  330. v = self getVelocity();
  331. z = randomIntRange(700,900);
  332. pkg rotateYaw(360, 0.05);
  333. foreach(dbag in level.players) {
  334. if(distance(dbag, self)<15)
  335. self setVelocity((v[0],v[1],z+300));
  336. else
  337. self setVelocity((v[0],v[1],z));
  338. }
  339. }
  340. }
  341. wait 0.05;
  342. }
  343. }
  344.  
  345. DoorUse(range)
  346. {
  347. self endon("disconnect");
  348. while(1)
  349. {
  350. foreach(player in level.players)
  351. {
  352. if(Distance(self.origin, player.origin) <= self.range){
  353. if(player.team == "allies"){
  354. if(self.state == "open"){
  355. player.hint = "Press ^3[{+activate}] ^7to ^2Close ^7the door";
  356. }
  357. if(self.state == "close"){
  358. player.hint = "Press ^3[{+activate}] ^7to ^2Open ^7the door";
  359. }
  360. if(self.state == "broken"){
  361. player.hint = "^1Door is Broken";
  362. }
  363. }
  364. if(player.team == "axis"){
  365. if(self.state == "close"){
  366. player.hint = "Press ^3[{+activate}] ^7to ^2Attack ^7the door";
  367. }
  368. if(self.state == "broken"){
  369. player.hint = "^1Door is Broken";
  370. }
  371. }
  372. if(player.buttonPressed[ "+activate" ] == 1){
  373. player.buttonPressed[ "+activate" ] = 0;
  374. self notify( "triggeruse" , player);
  375. }
  376. }
  377. }
  378. wait .045;
  379. }
  380. }
  381.  
  382. ResetDoors(open, hp)
  383. {
  384. while(1)
  385. {
  386. level waittill("RESETDOORS");
  387. self.hp = hp;
  388. self MoveTo(open, level.doorwait);
  389. self.state = "open";
  390. }
  391. }
  392.  
  393. ResetCluster(pos, radius)
  394. {
  395. wait 5;
  396. self RotateTo(((randomInt(36)*10), (randomInt(36)*10), (randomInt(36)*10)), 1);
  397. level waittill("RESETCLUSTER");
  398. self thread CreateCluster(1, pos, radius);
  399. self delete();
  400. }
  401.  
  402. roundUp( floatVal )
  403. {
  404. if ( int( floatVal ) != floatVal )
  405. return int( floatVal+1 );
  406. else
  407. return int( floatVal );
  408. }
  409.  
  410. Afghan()
  411. {
  412.  
  413. }
  414.  
  415. Derail()
  416. {
  417.  
  418. }
  419.  
  420. Estate()
  421. {
  422.  
  423. }
  424.  
  425. Favela()
  426. {
  427.  
  428. }
  429. HighRise()
  430. {
  431.  
  432. }
  433. Karachi()
  434. {
  435.  
  436. }
  437.  
  438. Quarry()
  439. {
  440.  
  441. }
  442.  
  443. Rundown()
  444. {
  445. }
  446.  
  447. Rust()
  448. {
  449. self CreateWalls((98.5244, 1367.77, 129.875), (-115.078, 1362.44, 129.875));
  450. self CreateWalls((98.5244, 1367.77, 129.875), (86.3354, 1671.27, -127.875));
  451. self CreateWalls((86.3354, 1671.27, -127.875), (-170.696, 1658.05, -128.915));
  452. self CreateWalls((-170.696, 1658.05, -128.915), (-115.078, 1362.44, 129.875));
  453. }
  454.  
  455. Scrapyard()
  456. {
  457.  
  458. }
  459.  
  460. Skidrow()
  461. {
  462.  
  463. }
  464.  
  465. SubBase()
  466. {
  467.  
  468. }
  469.  
  470. Underpass()
  471. {
  472.  
  473. }
  474.  
  475. Wasteland() //by Yamato and Erikkire
  476. {
  477.  
  478. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement