Advertisement
JoBoz

MapEdit.gsc

May 6th, 2011
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.14 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. Your Content here!
  412. }
  413.  
  414. Favela()
  415. {
  416. Your Content here!
  417. }
  418.  
  419. HighRise()
  420. {
  421. Your Content here!
  422. }
  423.  
  424. Invasion()
  425. {
  426. Your Content here!
  427. }
  428.  
  429. Karachi()
  430. {
  431. Your Content here!
  432. }
  433.  
  434. Quarry()
  435. {
  436. Your Content here!
  437. }
  438.  
  439. Rundown()
  440. {
  441. Your Content here!
  442. }
  443.  
  444. Rust()
  445. {
  446. Your Content here!
  447. }
  448.  
  449. Scrapyard()
  450. {
  451. Your Content here!
  452. }
  453.  
  454. Skidrow()
  455. {
  456. Your Content here!
  457. }
  458.  
  459. SubBase()
  460. {
  461. Your Content here!
  462. }
  463.  
  464.  
  465. Terminal()
  466. {
  467. Your Content here!
  468. }
  469.  
  470. Underpass()
  471. {
  472. Your Content here!
  473. }
  474.  
  475. Wasteland()
  476. {
  477. Your Content here!
  478. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement