Advertisement
JoBoz

MapEdit.gsc //Help

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