Im_YouViolateMe

[GSC] The Floor is Lava by YouViolateMe

Jul 19th, 2015
11,618
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 22.43 KB | None | 0 0
  1. /*
  2. *    Black Ops 2 - GSC Studio by iMCSx
  3. *
  4. *    Creator : YouViolateMe
  5. *    Project : The Floor Is Lava v1.5
  6. *        Mode : Multiplayer
  7. *    Date : 2015/07/18 - 18:17:39  
  8. *
  9. */ 
  10.  
  11. #include maps\mp\_utility;
  12. #include common_scripts\utility;
  13. #include maps\mp\gametypes\_hud_util;
  14. #include maps\mp\gametypes\_hud_message;
  15.  
  16. init()
  17. {
  18.     level thread onPlayerConnect();
  19.    
  20.     level.checkpoint = (0,0,0);
  21.     level.result = 0;
  22.     level.GameIsEnding = false;
  23.     level.debug = false;
  24.    
  25.     precacheModel("t6_wpn_supply_drop_hq");
  26.     precacheModel("t6_wpn_supply_drop_allies");
  27.     precacheModel("t6_wpn_supply_drop_axis");
  28.     precacheModel("mp_flag_green");
  29.    
  30.     wait .1;
  31.    
  32.     hurt_triggers = getentarray( "trigger_hurt", "classname" );
  33.     foreach(barrier in hurt_triggers)
  34.     {
  35.         if (isDefined(barrier))
  36.             barrier.origin += (0, 0, 9999999);
  37.     }
  38.    
  39.     level thread spawnthings();
  40.    
  41. }
  42.  
  43. onPlayerConnect()
  44. {
  45.     for(;;)
  46.     {
  47.         level waittill("connected", player);
  48.         player thread onPlayerSpawned();
  49.     }
  50. }
  51.  
  52. onPlayerSpawned()
  53. {
  54.     self endon("disconnect");
  55.     level endon("game_ended");
  56.    
  57.     self._checkpoint = level.checkpoint;
  58.     self.currentCrate = "";
  59.    
  60.     if (self isHost())
  61.         maps\mp\gametypes\_globallogic_utils::pausetimer();
  62.  
  63.     for(;;)
  64.     {  
  65.         self waittill("spawned_player");
  66.        
  67.         self thread monitorButtons();
  68.         self thread monitorPlayer();
  69.        
  70.         self thread WelcomeMessage("^1The Floor Is Lava", "^5YouViolateMe is King");
  71.        
  72.         self setperk("specialty_fallheight");
  73.         self freezecontrols(false);
  74.        
  75.         self iprintln("^2Welcome to The Floor is Lava, remade by YouViolateMe!");
  76.         self iprintln("^5Press [{+actionslot 1}] to start/load last checkpoint!");
  77.     }
  78. }
  79.  
  80. WelcomeMessage(text, text1)
  81. {
  82.     hmb=spawnstruct();
  83.     hmb.titleText=text;
  84.     hmb.notifyText=text1;
  85.     hmb.hideWhenInMenu=true;
  86.     hmb.archived=false;
  87.     self thread maps\mp\gametypes\_hud_message::notifyMessage(hmb);
  88. }
  89.  
  90. monitorPlayer()
  91. {
  92.     self endon("death");
  93.     self endon("disconnect");
  94.     level endon("game_ended");
  95.    
  96.     for(;;)
  97.     {
  98.         if (self.origin[2] <= -500)
  99.             self setOrigin(self._checkpoint);
  100.        
  101.         self disableweapons();
  102.            
  103.         wait 0.05;
  104.     }
  105. }
  106.  
  107. monitorButtons()
  108. {
  109.     self endon("death");
  110.     self endon("disconnect");
  111.     level endon("game_ended");
  112.    
  113.     for(;;)
  114.     {
  115.         if (self ActionSlotOneButtonPressed())
  116.         {
  117.             self setOrigin(self._checkpoint);
  118.         }
  119.         if (self isHost())
  120.         {
  121.             if (self ActionSlotTwoButtonPressed())
  122.             {
  123.                 self iprintln("Press [{+melee}] to exit noclip");
  124.                 self thread Noclip();
  125.                 wait .2;
  126.             }
  127.         }
  128.         if (level.debug == true)
  129.         {
  130.             if (self ActionSlotThreeButtonPressed())
  131.             {
  132.                 exitLevel(false);
  133.             }
  134.             self iprintln(self.origin);
  135.         }
  136.         wait 0.1;
  137.     }
  138. }
  139.  
  140. Noclip()
  141. {
  142.     self endon("stop_noclip");
  143.     self endon("disconnect");
  144.     self.originObj = spawn( "script_origin", self.origin, 1 );
  145.     self.originObj.angles = self.angles;
  146.     self playerlinkto( self.originObj, undefined );
  147.     self disableweapons();
  148.     for(;;)
  149.     {
  150.         if(self fragbuttonpressed())
  151.         {
  152.             normalized = anglesToForward( self getPlayerAngles() );
  153.             scaled = vectorScale( normalized, 20 );
  154.             originpos = self.origin + scaled;
  155.             self.originObj.origin = originpos;
  156.         }
  157.         else if(self meleeButtonPressed())
  158.         {
  159.             self unlink();
  160.             self enableweapons();
  161.             self.originObj delete();
  162.             self notify("stop_noclip");
  163.         }
  164.         wait 0.05;
  165.     }
  166. }
  167.  
  168.  
  169. spawnthings()
  170. {
  171.     //directions from starting crate
  172.     //+ & 1 == forward
  173.     //+ & 2 == left
  174.     //- & 1 == backward
  175.     //- & 2 == right
  176.    
  177.     if (getDvar("mapname") == "mp_carrier")
  178.     {
  179.         SpawnBase((-3209.56, 10082.1, 8507.74), 1);
  180.         NewSet((-3209.56, 10082.1, 8507.74), 210, 4, 1);
  181.         NewSet((-2574.54, 10242.2, 8507.74), 220, 4, 2);
  182.         GuessingBlocks((-2565.74, 11229.3, 8507.74), 300, 2, 2);
  183.         Staircase((-2418.32, 11527.6, 8507.74), 85, 30, 10, 1);
  184.         Staircase((-2698.16, 11527.6, 8507.74), -85, 30, 10, 1);
  185.         Checkpoint((-3583.59, 11537, 8795.94), 1);
  186.         Checkpoint((-1521.41, 11537, 8795.94), 1);
  187.         NewSet((-1532.74, 12000.4, 8352.58), 160, 3, 2);
  188.         NewSet((-3577.23, 12000.4, 8352.58), 160, 3, 2);
  189.         NewSet((-1654.76, 12318, 8352.58), -160, 4, 1);
  190.         NewSet((-3433.47, 12315.9, 8352.58), 160, 4, 1);
  191.         SidewaysMover((-2711.18, 12312.6, 8352.58), 200, 2, 1);
  192.         SidewaysMover((-2309.34, 12312.6, 8352.58), -200, 2, 1);
  193.         Checkpoint((-2516.7, 12505.1, 8352.58), 2);
  194.         GuessingBlocks((-2510.52, 12854.9, 8352.58), 300, 5, 2);
  195.         Elevator((-2510.52, 14174.5, 8352.58), 400, 2);
  196.         NewSet((-2510.52, 14074.5, 8552.58), -180, 7, 2);
  197.         Checkpoint((-2395.37, 12920.5, 8552.58), 1);
  198.         Pouncer((-2185.32, 12920.5, 8552.58), 200, 8, 1);
  199.         FinishLine((-425.583, 12920.5, 8350.13), 1);
  200.     }
  201.     if (getDvar("mapname") == "mp_hijacked")
  202.     {
  203.         SpawnBase((2490.38, 6595.07, 1654.87), 1);
  204.         NewSet((2761.07, 6593.14, 1654.87), 160, 10, 1);
  205.         NewSet((4219.92, 6647.34, 1648.89), 160, 10, 2);
  206.         Staircase((4226.87, 8194.93, 1648.89), 85, 30, 6, 2);
  207.         Checkpoint((4235.02, 8786.92, 1804.51), 2);
  208.         NewSet((4423.53, 8780.71, 1804.51), 160, 2, 1);
  209.         NewSet((4580.35, 8562.42, 1804.51), -160, 3, 2);
  210.         Staircase((4494.85, 8238.83, 1804.51), -85, 30, 6, 1);
  211.         NewSet((3932.23, 8241.64, 1970), -175, 3, 1);
  212.         SidewaysMover((3414.29, 8237.55, 1970), -200, 4, 1);
  213.         Elevator((2693.68, 8242.81, 1970), 500, 1);
  214.         Checkpoint((2562.92, 8244.12, 2356.15), 1);
  215.         Pouncer((2380.99, 8255.38, 2356.15), -200, 6, 1);
  216.         NewSet((1233.84, 8259.38, 2356.15), 190, 10, 2);
  217.         Pouncer((1410.56, 9973.16, 2365.15), 200, 6, 1);
  218.         NewSet((2587.52, 9973.59, 2365.15), -190, 3, 2);
  219.         Checkpoint((2580.5, 9423.17, 2365.15), 2);
  220.         NewSet((2860.44, 9424.34, 2354.24), 190, 10, 1);
  221.         GuessingBlocks((4886.03, 9421.25, 2354.24), 300, 5, 1);
  222.         FinishLine((6200.54, 9414.63, 2354.24), 1);
  223.     }
  224.     if (getDvar("mapname") == "mp_socotra")
  225.     {
  226.         //Directions
  227.         // - + 1 = Back wards
  228.         // - + 2 = Right
  229.         // + & 2 = Left
  230.         // + & 1 = forward
  231.    
  232.         SpawnBase((14048.1, -107.322, 15658.5), 1);
  233.         NewSet((14298.6, -113.185, 15658.5), 200, 10, 1);
  234.         NewSet((16099.8, -47.6367, 15673.7), 200, 10, 2);
  235.         Staircase((16194.2, 1749.72, 15670.3), 100, 35, 6, 1);
  236.         NewSet((16807.3, 1736.49, 15839.7), 100, 1, 1);
  237.         Checkpoint((16909.2, 1748.2, 15834.8), 1);
  238.         NewSet((16989.2, 1750.01, 15851.2), 200, 10,  2);
  239.         Staircase((17115, 3552.4, 15852), 100, 35, 8, 1);
  240.         NewSet((17814.8, 3407.37, 16090.2), -200, 10, 2);
  241.         Staircase((17933.1, 1603.06, 16104.4), 100, 40, 10, 1);
  242.         SidewaysMover((18834.4, 1475.88, 16461.7), -200, 5, 2);
  243.         NewSet((18830.9, 581.13, 16459.2), 200, 15, 1);
  244.         Checkpoint((21749.3, 579.443, 16447.5), 1);
  245.         Staircase((21747.9, 713.326, 16450.9), 100, 35, 8, 2);
  246.         Staircase((21751.5, 471.107, 16456.8), -100, 35, 8, 2);
  247.         Elevator((21745.4, 1537.64, 16687.3), 500, 2);//Start of Advanced route
  248.         NewSet((21752.9, -375.785, 16694.5), -150, 5, 2);//Start of easy route
  249.         Pouncer((21750, 1626.13, 17118.1), 240, 6, 2);
  250.         NewSet((21746.8, 2940.92, 17119.1), 255, 3, 1);
  251.         SidewaysMover((21745.5, -1084.62, 16688.5), 150, 6, 1);
  252.         SidewaysMover((22361.6, 2939.43, 17119.3), -255, 6, 2);
  253.         GuessingBlocks((22795.1, -1099.22, 16635.8), 300, 3, 1);
  254.         Pouncer((22365.9, 1573.4, 17095.6), 250, 6, 1);
  255.         FinishLine((23532.4, -1093.53, 16619.9), 1);//Finish of easy route
  256.         Checkpoint((23737.2, 1582.5, 17075.7), 1);
  257.         GuessingBlocks((24056.3, 1582.95, 17028.4), 200, 6, 1);
  258.         FinishLine((25177.9, 1584.68, 16994.1), 1);//Finish for advanced route
  259.     }
  260.     if (getDvar("mapname") == "mp_turbine")
  261.     {
  262.         SpawnBase((-698.2, 1405.14, 4202.49), 1);
  263.         Elevator((-878.04, 1355.14, 4202.49), 1250, 1);
  264.         Elevator((-878.04, 1455.14, 4202.49), 1250, 1);
  265.         NewSet((-941.952, 1405.14, 5414.89), -200, 10, 1);
  266.         Checkpoint((-2971.952, 1405.14, 5414.89), 2);
  267.         Staircase((-2975.14, 1554.46, 5414.89), 100, 40, 5, 2);
  268.         Staircase((-2878.57, 1958.28, 5614.89), 100, 40, 5, 1);
  269.         Staircase((-2478.54, 1871.62, 5814.89), -100, 40, 5, 2);
  270.         Staircase((-2588.6, 1473.33, 6014.89), -100, 40, 5, 1);
  271.         Staircase((-2975.14, 1554.46, 6214.89), 100, 40, 5, 2);
  272.         Staircase((-2878.57, 1958.28, 6414.89), 100, 40, 5, 1);
  273.         Staircase((-2478.54, 1871.62, 6614.89), -100, 40, 5, 2);
  274.         Staircase((-2588.6, 1473.33, 6814.89), -100, 40, 5, 1);
  275.         Staircase((-2975.14, 1554.46, 7014.89), 100, 40, 5, 2);
  276.         Staircase((-2878.57, 1958.28, 7214.89), 100, 40, 5, 1);
  277.         Staircase((-2478.54, 1871.62, 7414.89), -100, 40, 5, 2);
  278.         Staircase((-2588.6, 1473.33, 7614.89), -100, 40, 5, 1);
  279.         NewSet((-2990.64, 1560.08, 7797.54), 150, 5, 2);
  280.         Checkpoint((-2990.64, 2350.08, 7797.54), 2);
  281.         SidewaysMover((-3253.32, 2350.4, 7797.54), -200, 6, 1);
  282.         TPBlocks((-4370.42, 2350.4, 7797.54), -80, 6, 1);
  283.         Checkpoint((-4883.07, 2350.4, 7797.54), 2);
  284.         Pouncer((-4883.07, 2166.21, 7797.54), -210, 10, 2);
  285.         GuessingBlocks((-5184.11, 273.859, 7797.54), -300, 4, 1);
  286.         FinishLine((-6210.1, 273.859, 7797.54), 1);
  287.  
  288.         //Strafers((-4378.04, 2350.4, 7797.54), -50, 3, 1, 1);
  289.        
  290.         //1 = x axis
  291.         //2 = y axis
  292.     }
  293.    
  294.     //all my custom functions
  295. }
  296.  
  297. NewSet(startcoords, dist, numtospawn, angletype)
  298. {
  299.     for(i = 0; i < numtospawn; i++)
  300.     {
  301.         x = 0;
  302.         y = 0;
  303.        
  304.         if (angletype == 1)
  305.             x = (i * dist);
  306.         else
  307.             y = (i * dist);
  308.            
  309.         model = spawn("script_model", startcoords + (x, y, 0));
  310.         model setModel("t6_wpn_supply_drop_ally");
  311.         model.name = "Crate_" + level.result;
  312.                
  313.         if (angletype == 1)
  314.             model.angles = (0,0,0);
  315.         else
  316.             model.angles = (0,90,0);
  317.            
  318.         level.result++;
  319.        
  320.         model thread SetCurrentCrate();
  321.     }
  322. }
  323.  
  324. Staircase(startcoords, dist, height, numtospawn, angletype)
  325. {
  326.     for(i = 0; i < numtospawn; i++)
  327.     {
  328.         x = 0;
  329.         y = 0;
  330.        
  331.         if (angletype == 1)
  332.             x = (i * dist);
  333.         else
  334.             y = (i * dist);
  335.            
  336.         model = spawn("script_model", startcoords + (x, y, (height * i)));
  337.         model setModel("t6_wpn_supply_drop_ally");
  338.         model.name = "Crate_" + level.result;
  339.                
  340.         if (angletype == 1)
  341.             model.angles = (0,0,0);
  342.         else
  343.             model.angles = (0,90,0);
  344.            
  345.         level.result++;
  346.        
  347.         model thread SetCurrentCrate();
  348.     }
  349. }
  350.  
  351. Checkpoint(origin, angletype)
  352. {  
  353.         model = spawn("script_model", origin);
  354.         model setModel("t6_wpn_supply_drop_axis");
  355.         model.name = "Crate_" + level.result;
  356.        
  357.         if (angletype == 1)
  358.             model.angles = (0,0,0);
  359.         else
  360.             model.angles = (0,90,0);
  361.            
  362.         level.result++;
  363.        
  364.         model thread CheckpointSave();
  365. }
  366.  
  367. CheckpointSave()
  368. {
  369.     self endon("death");
  370.     level endon("game_ended");
  371.    
  372.     for(;;)
  373.     {
  374.         foreach(player in level.players)
  375.         {
  376.             if (Distance(player.origin, self.origin) < 30)
  377.             {
  378.                 player.currentCrate = self.name;
  379.                 if (player._checkpoint != self.origin)
  380.                 {
  381.                     player._checkpoint = self.origin;
  382.                     player iprintlnbold("^2Checkpoint!");
  383.                 }
  384.             }
  385.         }
  386.         wait 0.05;
  387.     }
  388. }
  389.  
  390. SidewaysMover(startcoords, dist, numtospawn, angletype)
  391. {
  392.     for(i = 0; i < numtospawn; i++)
  393.     {
  394.         x = 0;
  395.         y = 0;
  396.        
  397.         if (angletype == 1)
  398.             x = (i * dist);
  399.         else
  400.             y = (i * dist);
  401.            
  402.         model = spawn("script_model", startcoords + (x, y, 0));
  403.         model setModel("t6_wpn_supply_drop_ally");
  404.         model.name = "Crate_" + level.result;
  405.                
  406.         if (angletype == 1)
  407.             model.angles = (0,0,0);
  408.         else
  409.             model.angles = (0,90,0);
  410.            
  411.         level.result++;
  412.        
  413.         model thread SetCurrentCrate();
  414.     }
  415.     for(i = 0; i < numtospawn; i++)
  416.     {
  417.         x = 0;
  418.         y = 0;
  419.         z = 80;
  420.        
  421.         if (angletype == 1)
  422.             x = (i * dist) - (dist / 2);
  423.         else
  424.             y = (i * dist) - (dist / 2);
  425.            
  426.         model = spawn("script_model", startcoords + (x, y, z));
  427.         model setModel("t6_wpn_supply_drop_ally");
  428.         model solid();
  429.         model.name = "Crate_" + level.result;
  430.                
  431.         if (angletype == 1)
  432.             model.angles = (0,0,0);
  433.         else
  434.             model.angles = (0,90,0);
  435.            
  436.         level.result++;
  437.        
  438.         model thread sidewaysmoverthink(startcoords + (x, y, z), angletype);
  439.     }
  440. }
  441.  
  442. sidewaysmoverthink(startcoords, angletype)
  443. {
  444.     self endon("death");
  445.     level endon("game_ended");
  446.    
  447.     for(;;)
  448.     {
  449.         x = 0;
  450.         y = 0;
  451.         z = 30;
  452.        
  453.         if (angletype == 2)
  454.             x = 225;
  455.         else
  456.             y = 225;
  457.            
  458.         self moveto(startcoords + (x, y, 0), 2);
  459.         wait 3;
  460.         self moveto(startcoords, 2);
  461.         wait 3;
  462.     }
  463. }
  464.  
  465. Elevator(startcoords, height, angletype)
  466. {
  467.     model = spawn("script_model", startcoords);
  468.     model setModel("t6_wpn_supply_drop_ally");
  469.     model.name = "Crate_" + level.result;
  470.    
  471.     if (angletype == 1)
  472.         model.angles = (0,0,0);
  473.     else
  474.         model.angles = (0,90,0);
  475.        
  476.     level.result++;
  477.    
  478.     model thread elevatorthink(startcoords, height);
  479.     model thread elevatorplayerthink(startcoords, height);
  480. }
  481.  
  482. elevatorthink(startcoords, height)
  483. {
  484.     self endon("death");
  485.     level endon("game_ended");
  486.    
  487.     for(;;)
  488.     {      
  489.         self moveto(startcoords + (0, 0, height), 3);
  490.         wait 4;
  491.         self moveto(startcoords, 3);
  492.         wait 4;
  493.     }
  494. }
  495.  
  496. elevatorplayerthink(startcoords, height)
  497. {
  498.     self endon("death");
  499.     level endon("game_ended");
  500.    
  501.     for(;;)
  502.     {
  503.         foreach(player in level.players)
  504.         {
  505.             if (Distance(player.origin, self.origin) < 40)
  506.             {
  507.                 if (player.currentCrate != self.name)
  508.                 {
  509.                         player.currentCrate = self.name;
  510.                         player playerLinkTo(self);
  511.                         player iprintlnbold("Get ready to jump!");
  512.                 }
  513.                 else
  514.                 {
  515.                     if (self.origin == startcoords + (0, 0, height))
  516.                     {
  517.                         player unlink();
  518.                         player iprintlnbold("Jump!");
  519.                         wait 2;
  520.                     }
  521.                 }
  522.             }
  523.         }
  524.         wait 0.05;
  525.     }
  526. }
  527.  
  528. Pouncer(startcoords, dist, numtospawn, angletype)
  529. {
  530.     for(i = 0; i < numtospawn; i++)
  531.     {
  532.         x = 0;
  533.         y = 0;
  534.        
  535.         if (angletype == 1)
  536.             x = (i * dist);
  537.         else
  538.             y = (i * dist);
  539.            
  540.         model = spawn("script_model", startcoords + (x, y, 0));
  541.         model setModel("t6_wpn_supply_drop_ally");
  542.         model.name = "Crate_" + level.result;
  543.                
  544.         if (angletype == 1)
  545.             model.angles = (0,0,0);
  546.         else
  547.             model.angles = (0,90,0);
  548.            
  549.         level.result++;
  550.        
  551.         model thread SetCurrentCrate();
  552.     }
  553.     for(i = 0; i < numtospawn; i++)
  554.     {
  555.         x = 0;
  556.         y = 0;
  557.         z = 160;
  558.        
  559.         if (angletype == 1)
  560.             x = (i * dist) - (dist / 2);
  561.         else
  562.             y = (i * dist) - (dist / 2);
  563.            
  564.         model = spawn("script_model", startcoords + (x, y, z));
  565.         model setModel("t6_wpn_supply_drop_ally");
  566.         model solid();
  567.         model.name = "Crate_" + level.result;
  568.                
  569.         if (angletype == 1)
  570.             model.angles = (0,0,0);
  571.         else
  572.             model.angles = (0,90,0);
  573.            
  574.         level.result++;
  575.        
  576.         model thread pouncerthink(startcoords + (x, y, z));
  577.     }
  578. }
  579.  
  580. pouncerthink(startcoords)
  581. {
  582.     self endon("death");
  583.     level endon("game_ended");
  584.    
  585.     for(;;)
  586.     {
  587.         foreach(player in level.players)
  588.         {
  589.             if ((Distance(player.origin, self.origin) < 175) && self.origin == startcoords)
  590.             {  
  591.                 self moveto(startcoords - (0, 0, 700), 2.5);
  592.                 wait 2.5;
  593.                 self moveto(startcoords, 2);
  594.                 wait 2;
  595.             }
  596.         }
  597.         wait 0.05;
  598.     }
  599. }
  600.  
  601. GuessingBlocks(startcoords, dist, numtospawn, angletype) //this function took me 2 hours to make
  602. {
  603.     for(i = 0; i < numtospawn; i++)
  604.     {
  605.         x = 0;
  606.         y = 0;
  607.        
  608.         if (angletype == 1)
  609.             x = (i * dist);
  610.         else
  611.             y = (i * dist);
  612.            
  613.         model = spawn("script_model", startcoords + (x, y, 0));
  614.         model setModel("t6_wpn_supply_drop_ally");
  615.         model.name = "Crate_" + level.result;
  616.                
  617.         if (angletype == 1)
  618.             model.angles = (0,0,0);
  619.         else
  620.             model.angles = (0,90,0);
  621.            
  622.         level.result++;
  623.        
  624.         model thread SetCurrentCrate();
  625.     }
  626.     for(i = 0; i < numtospawn; i++)
  627.     {
  628.         x = 0;
  629.         y = 0;
  630.         z = 0;
  631.         if (angletype == 1)
  632.         {
  633.             x = (i * dist) - (dist / 2);
  634.             y = 100;
  635.         }  
  636.         else
  637.         {
  638.             y = (i * dist) - (dist / 2);
  639.             x = 100;
  640.         }
  641.        
  642.         randomblock = randomintrange(0, 3);
  643.                    
  644.         for(d = 0; d < 3; d++)
  645.         {
  646.             x2 = 0;
  647.             y2 = 0;
  648.            
  649.             if (angletype == 1)
  650.             {
  651.                 y2 = y - (100 * d);
  652.                 model = spawn("script_model", startcoords + (x, y2, z));
  653.                 model setModel("t6_wpn_supply_drop_ally");
  654.                 model.name = "Crate_" + level.result;
  655.                
  656.                 if (angletype == 2)
  657.                     model.angles = (0,0,0);
  658.                 else
  659.                     model.angles = (0,90,0);
  660.                    
  661.                 level.result++;
  662.                
  663.                 if (d != randomblock)
  664.                     model thread resetPlace();
  665.             }  
  666.             else
  667.             {
  668.                 x2 = x - (100 * d);
  669.                
  670.                 model = spawn("script_model", startcoords + (x2, y, z));
  671.                 model setModel("t6_wpn_supply_drop_ally");
  672.                 model.name = "Crate_" + level.result;
  673.                
  674.                 if (angletype == 2)
  675.                     model.angles = (0,0,0);
  676.                 else
  677.                     model.angles = (0,90,0);
  678.                    
  679.                 level.result++;
  680.                
  681.                 if (d != randomblock)
  682.                     model thread resetPlace();
  683.             }
  684.         }
  685.     }
  686. }
  687.  
  688. resetPlace()
  689. {
  690.     self endon("death");
  691.     level endon("game_ended");
  692.    
  693.     for(;;)
  694.     {
  695.         foreach(player in level.players)
  696.         {
  697.             if (Distance(player.origin, self.origin) < 40)
  698.             {
  699.                 player setOrigin(player._checkpoint);
  700.                 player iprintlnbold("^1Wrong one!");
  701.             }
  702.         }
  703.         wait 0.05;
  704.     }
  705. }
  706.  
  707. FinishLine(pos, angletype)
  708. {
  709.     model = spawn("script_model", pos);
  710.     model setModel("t6_wpn_supply_drop_axis");
  711.     model.name = "Crate_" + level.result;
  712.    
  713.     flag = spawn("script_model", pos + (0,0, 20));
  714.     flag setModel("mp_flag_green");
  715.     flag.name = "FinishLineFlag";
  716.    
  717.     if (angletype == 1)
  718.         model.angles = (0,0,0);
  719.     else
  720.         model.angles = (0,90,0);
  721.    
  722.     level.result += 2;
  723.    
  724.     model thread WaitForFinish();
  725. }
  726.  
  727. WaitForFinish()
  728. {
  729.     self endon("death");
  730.     level endon("game_ended");
  731.    
  732.     for(;;)
  733.     {
  734.         foreach(player in level.players)
  735.         {
  736.             if (Distance(player.origin, self.origin) < 40)
  737.             {
  738.                 if (level.GameIsEnding == false)
  739.                 {
  740.                     level.GameIsEnding = true;
  741.                     player iprintlnbold("^2You won!");
  742.                     wait 1;
  743.                     level thread maps/mp/gametypes/_globallogic::endgame("tie", player.name + " has ^2won ^7The Floor is Lava!");
  744.                 }
  745.             }
  746.         }
  747.         wait 0.05;
  748.     }
  749. }
  750.  
  751. TPBlocks(startcoords, dist, pairstospawn, angletype)
  752. {
  753.     for(i = 0; i < pairstospawn; i++)
  754.     {  
  755.         x = 0;
  756.         y = 0;
  757.         z = 0;
  758.         if (angletype == 1)
  759.         {
  760.             //x = (i * dist) - (dist / 2);
  761.             x = i * dist;
  762.             y = 60;
  763.         }  
  764.         else
  765.         {
  766.             //y = (i * dist) - (dist / 2);
  767.             y = i * dist;
  768.             x = 60;
  769.         }
  770.        
  771.         for(d = 0; d < 3; d++)
  772.         {
  773.             x2 = 0;
  774.             y2 = 0;
  775.            
  776.             if (angletype == 1)
  777.             {
  778.                 y2 = y - (60 * d);
  779.                 model = spawn("script_model", startcoords + (x, y2, z));
  780.                 model setModel("t6_wpn_supply_drop_ally");
  781.                 model.name = "Crate_" + level.result;
  782.                
  783.                 if (angletype == 2)
  784.                     model.angles = (0,0,0);
  785.                 else
  786.                     model.angles = (0,90,0);
  787.                    
  788.                 level.result++;
  789.                
  790.                 model thread SetCurrentCrate();
  791.                 model thread WaitToDissapear();
  792.             }  
  793.             else
  794.             {
  795.                 x2 = x - (60 * d);
  796.                
  797.                 model = spawn("script_model", startcoords + (x2, y, z));
  798.                 model setModel("t6_wpn_supply_drop_ally");
  799.                 model.name = "Crate_" + level.result;
  800.                
  801.                 if (angletype == 2)
  802.                     model.angles = (0,0,0);
  803.                 else
  804.                     model.angles = (0,90,0);
  805.                    
  806.                 level.result++;
  807.                
  808.                 model thread SetCurrentCrate();
  809.                 model thread WaitToDissapear();
  810.             }
  811.         }
  812.     }
  813. }
  814.  
  815. WaitToDissapear()
  816. {
  817.     self endon("death");
  818.     level endon("game_ended");
  819.    
  820.     for(;;)
  821.     {
  822.         waittime = randomintrange(5, 15);
  823.         waittime2 = randomintrange(5, 15);
  824.         wait(waittime);
  825.         self.origin = self.origin + (0, 0, 5000);
  826.         wait(waittime2);
  827.         self.origin = self.origin - (0, 0, 5000);
  828.     }
  829. }
  830.  
  831. SetCurrentCrate()
  832. {
  833.     self endon("death");
  834.     level endon("game_ended");
  835.    
  836.     for(;;)
  837.     {
  838.         foreach(player in level.players)
  839.         {
  840.             if (Distance(player.origin, self.origin) < 30)
  841.             {
  842.                 player.currentCrate = self.name;
  843.             }
  844.         }
  845.         wait 0.05;
  846.     }
  847. }
  848.  
  849. SpawnBase(centercoords, angletype)
  850. {
  851.     center = spawn("script_model", centercoords);
  852.     center setModel("t6_wpn_supply_drop_ally");
  853.     center.name = "Crate_" + level.result;
  854.    
  855.     level.checkpoint = centercoords;
  856.    
  857.     if (angletype == 1)
  858.         center.angles = (0,0,0);
  859.     else
  860.         center.angles = (0,90,0);
  861.    
  862.     level.result++;
  863.    
  864.     for(i = 1; i < 4; i++)
  865.     {
  866.         x = 0;
  867.         y = 0;
  868.        
  869.         if (angletype == 1)
  870.             x = (i * 40);
  871.         else
  872.             y = (i * 40);
  873.        
  874.         model = spawn("script_model", centercoords + (x, y, 0));
  875.         model setModel("t6_wpn_supply_drop_ally");
  876.         model.name = "Crate_" + level.result;
  877.                
  878.         if (angletype == 1)
  879.             model.angles = (0,0,0);
  880.         else
  881.             model.angles = (0,90,0);
  882.        
  883.         model thread SetCurrentCrate();
  884.        
  885.         level.result++;
  886.     }
  887.    
  888.     for(i = 1; i < 4; i++)
  889.     {
  890.         x = 0;
  891.         y = 0;
  892.        
  893.         if (angletype == 1)
  894.         {
  895.             x = (i * 40);
  896.         }
  897.         else
  898.         {
  899.             y = (i * 40);
  900.         }
  901.        
  902.         model = spawn("script_model", centercoords - (x, y, 0));
  903.         model setModel("t6_wpn_supply_drop_hq");
  904.         model.name = "Crate_" + level.result;
  905.                
  906.         if (angletype == 1)
  907.             model.angles = (0,0,0);
  908.         else
  909.             model.angles = (0,90,0);
  910.            
  911.         model thread SetCurrentCrate();
  912.        
  913.         level.result++;
  914.     }
  915.    
  916.     for(i = 0; i < 4; i++)
  917.     {
  918.         x = 0;
  919.         y = 0;
  920.        
  921.         if (angletype == 1)
  922.         {
  923.             y = -60;
  924.             x = (i * 40);
  925.         }
  926.         else
  927.         {
  928.             x = -60;
  929.             y = (i * 40);
  930.         }
  931.        
  932.         model = spawn("script_model", centercoords + (x, y, 0));
  933.         model setModel("t6_wpn_supply_drop_ally");
  934.         model.name = "Crate_" + level.result;
  935.                
  936.         if (angletype == 1)
  937.             model.angles = (0,0,0);
  938.         else
  939.             model.angles = (0,90,0);
  940.        
  941.         model thread SetCurrentCrate();
  942.        
  943.         level.result++;
  944.     }
  945.    
  946.     for(i = 0; i < 4; i++)
  947.     {
  948.         x = 0;
  949.         y = 0;
  950.        
  951.         if (angletype == 1)
  952.         {
  953.             y = -60;
  954.             x = (i * -40);
  955.         }
  956.         else
  957.         {
  958.             x = -60;
  959.             y = (i * -40);
  960.         }
  961.        
  962.         model = spawn("script_model", centercoords + (x, y, 0));
  963.         model setModel("t6_wpn_supply_drop_ally");
  964.         model.name = "Crate_" + level.result;
  965.                
  966.         if (angletype == 1)
  967.             model.angles = (0,0,0);
  968.         else
  969.             model.angles = (0,90,0);
  970.        
  971.         model thread SetCurrentCrate();
  972.        
  973.         level.result++;
  974.     }
  975.    
  976.     for(i = 0; i < 4; i++)
  977.     {
  978.         x = 0;
  979.         y = 0;
  980.        
  981.         if (angletype == 1)
  982.         {
  983.             y = 60;
  984.             x = (i * 40);
  985.         }
  986.         else
  987.         {
  988.             x = 60;
  989.             y = (i * 40);
  990.         }
  991.        
  992.         model = spawn("script_model", centercoords + (x, y, 0));
  993.         model setModel("t6_wpn_supply_drop_ally");
  994.         model.name = "Crate_" + level.result;
  995.                
  996.         if (angletype == 1)
  997.             model.angles = (0,0,0);
  998.         else
  999.             model.angles = (0,90,0);
  1000.            
  1001.         model thread SetCurrentCrate();
  1002.        
  1003.         level.result++;
  1004.     }
  1005.    
  1006.     for(i = 0; i < 4; i++)
  1007.     {
  1008.         x = 0;
  1009.         y = 0;
  1010.        
  1011.         if (angletype == 1)
  1012.         {
  1013.             y = 60;
  1014.             x = (i * -40);
  1015.         }
  1016.         else
  1017.         {
  1018.             x = 60;
  1019.             y = (i * -40);
  1020.         }
  1021.        
  1022.         model = spawn("script_model", centercoords + (x, y, 0));
  1023.         model setModel("t6_wpn_supply_drop_ally");
  1024.         model.name = "Crate_" + level.result;
  1025.                
  1026.         if (angletype == 1)
  1027.             model.angles = (0,0,0);
  1028.         else
  1029.             model.angles = (0,90,0);
  1030.        
  1031.         model thread SetCurrentCrate();
  1032.        
  1033.         level.result++;
  1034.     }
  1035. }
Advertisement
Add Comment
Please, Sign In to add comment