jwm614

jwm614 Skybase BO2 update

Jan 17th, 2015
626
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 36.48 KB | None | 0 0
  1. init()
  2. {    
  3.     PrecacheModel("veh_t6_drone_overwatch_light");
  4.     PrecacheModel( "prop_suitcase_bomb" );    
  5.     PrecacheItem("m32_wager_mp");
  6.     PrecacheItem("minigun_wager_mp");
  7.     level.activesky1 = 0;  
  8.     level deathBarrier();
  9.     level.basebool = false;
  10.     level.clientid = 0;  
  11.     level thread onplayerconnect();
  12. }
  13.  
  14. onplayerconnect()
  15. {
  16.   level endon("game_ended");
  17.     for(;;)
  18.     {
  19.         level waittill( "connecting", player );        
  20.         player.clientid = level.clientid;
  21.         level.clientid++;        
  22.         player thread onplayerspawned();
  23.         skybaseinit(player);
  24.     }
  25. }
  26.  
  27. /*Jwm614 Skybase start */
  28.  
  29.  
  30. deathBarrier()
  31. {
  32.     ents = getEntArray();
  33.     for ( index = 0; index < ents.size; index++ )
  34.     {
  35.         if(isSubStr(ents[index].classname, "trigger_hurt"))
  36.         {
  37.                 ents[index].origin = (0, 0, 9999999);
  38.         }
  39.     }
  40. }
  41. skybaseinit(player)
  42. {
  43.    
  44.         player.skyStringCreated1 = [];
  45.         player.skybaserHintString1 = [];
  46.         player.nearsky = [];
  47.         player.currentskybaseHint1 = "";
  48.         player.string = false;
  49.         player.mysteryBoxWeaponReady = [];
  50.    
  51. }
  52. skybasetoggle()
  53. {
  54.     if(!level.basebool)
  55.     {
  56.         //self MenuClosing();//
  57.         self iprintlnbold("Aim At Position And Shoot To Spawn SkyBase");
  58.         level.basebool = true;        
  59.         self waittill("weapon_fired");
  60.         self toggle();        
  61.        
  62.     }
  63.     else
  64.     {
  65.         self iprintlnbold("SkyBase Deleted");
  66.         self toggledelete();
  67.         level.basebool = false;
  68.     }    
  69. }
  70. toggle()
  71. {
  72.         level endon("game_ended");
  73.         level endon("delete");
  74.         self endon("death");
  75.         level thread deleteonleave();
  76.         level.vec = anglestoforward(self getPlayerAngles());
  77.         level.center1 = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+(level.vec[0] * 2000, level.vec[1] * 2000, level.vec[2] * 2000), 0, self)[ "position" ];
  78.         level.center = spawn("script_origin", level.center1);
  79.         level.lift = [];
  80.         h=0;
  81.         k=0;
  82.         level.origin = level.center.origin;
  83.         for(i=0;i<64;i++)
  84.         {
  85.             if(i<=15)
  86.                 level.lift[k] = spawn("script_model", level.origin+(-52,52,h));
  87.             else if(i<=31 && i>15)
  88.                 level.lift[k] = spawn("script_model", level.origin+(52,52,h-1120));
  89.             else if(i<=47 && i>31)
  90.                 level.lift[k] = spawn("script_model", level.origin+(-52,-52,h-2240));
  91.             else if(i<=63 && i>47)
  92.                 level.lift[k] = spawn("script_model", level.origin+(52,-52,h-3370));
  93.             level.lift[i].angles = (0,0,90);
  94.             h+=70;
  95.             k++;
  96.         }
  97.         level.center moveto(level.center.origin+(0,0,15), 0.05);
  98.         wait 0.05;
  99.         level.elevator = [];
  100.         level.elevator[0] = spawn("script_model", level.origin+(0,52,-15));
  101.         level.elevator[0].angles = (0,90,0);
  102.         level.elevator[1] = spawn("script_model", level.origin+(0,-52,-15));
  103.         level.elevator[1].angles = (0,90,0);
  104.         level.elevator[2] = spawn("script_model", level.origin+(42,0,-15));          
  105.         level.elevator[3] = spawn("script_model", level.origin+(-42,0,-15));
  106.         level.elevator[3].angles = (0,0,0);
  107.         level.elevator[4] = spawn("script_model", level.origin+(0,0,-15));
  108.  
  109.         level.base = level.center.origin+(-110,182,1050);
  110.  
  111.         level.elevatorcontrol = [];
  112.         level.elevatorcontrol[0] = spawn("script_model", level.origin+(0,-52,13.75));
  113.         level.elevatorcontrol[0] setModel( "t6_wpn_supply_drop_ally" );  
  114.         level.elevatorcontrol[0].angles = (0,-90,0);
  115.         level.elevatorcontrol[0] linkto(level.center);
  116.  
  117.         level.elevatorcontrol[1] = spawn("script_model", level.origin+(0,-52,28.75));
  118.         level.elevatorcontrol[1] setModel( "prop_suitcase_bomb" );
  119.         level.elevatorcontrol[1].angles = (0,180,0);
  120.         level.elevatorcontrol[1] linkto(level.center);
  121.         level.elevatorcontrol[1].type = "control";      
  122.  
  123.         level.elevatorcontrol[2] = spawn("script_model", level.base+(-40,20,28));
  124.         level.elevatorcontrol[2] setModel( "t6_wpn_supply_drop_ally" );
  125.         level.elevatorcontrol[2].angles = (0,180,0);
  126.  
  127.         level.elevatorcontrol[3] = spawn("script_model", level.base+(-40,20,42));
  128.         level.elevatorcontrol[3] setModel( "prop_suitcase_bomb" );
  129.         level.elevatorcontrol[3].angles = (0,90,0);
  130.         level.elevatorcontrol[3].type = "control";
  131.  
  132.         level.elevatorcontrol[4] = spawn("script_model", level.origin+(85,84,30));
  133.         level.elevatorcontrol[4] setModel( "prop_suitcase_bomb" );
  134.         level.elevatorcontrol[4].angles = (0,135,0);
  135.         level.elevatorcontrol[4].type = "control";
  136.  
  137.         level.elevatorcontrol[5] = spawn("script_model", level.base+(0,224,28));
  138.         level.elevatorcontrol[5] setModel( "t6_wpn_supply_drop_ally" );
  139.         level.elevatorcontrol[5].angles = (0,135,0);
  140.  
  141.         level.elevatorcontrol[6] = spawn("script_model", level.base+(205,224,28));
  142.         level.elevatorcontrol[6] setModel( "t6_wpn_supply_drop_ally" );
  143.         level.elevatorcontrol[6].angles = (0,405,0);
  144.  
  145.         level.elevatorcontrol[7] = spawn("script_model", level.base+(100,252,28));
  146.         level.elevatorcontrol[7] setModel( "t6_wpn_supply_drop_ally" );
  147.         level.elevatorcontrol[7].angles = (0,90,0);
  148.  
  149.         level.elevatorcontrol[8] = spawn("script_model", level.base+(0,224,42));
  150.         level.elevatorcontrol[8] setModel( "prop_suitcase_bomb" );
  151.         level.elevatorcontrol[8].angles = (0,405,0);
  152.         level.elevatorcontrol[8].type = "right";
  153.  
  154.         level.elevatorcontrol[9] = spawn("script_model", level.base+(205,224,42));
  155.         level.elevatorcontrol[9] setModel( "prop_suitcase_bomb" );
  156.         level.elevatorcontrol[9].angles = (0,-405,0);
  157.         level.elevatorcontrol[9].type = "left";
  158.  
  159.         level.elevatorcontrol[10] = spawn("script_model", level.base+(100,252,42));
  160.         level.elevatorcontrol[10] setModel( "prop_suitcase_bomb" );
  161.         level.elevatorcontrol[10].angles = (0,0,0);
  162.         level.elevatorcontrol[10].type = "forward";
  163.  
  164.         level.elevatorcontrol[11] = spawn("script_model", level.base+(240,20,42));
  165.         level.elevatorcontrol[11] setModel( "prop_suitcase_bomb" );
  166.         level.elevatorcontrol[11].angles = (0,-90,0);
  167.         level.elevatorcontrol[11].type = "dock";
  168.  
  169.         level.elevatorcontrol[12] = spawn("script_model", level.base+(240,20,28));
  170.         level.elevatorcontrol[12] setModel( "t6_wpn_supply_drop_ally" );
  171.  
  172.         level.elevatorcontrol[13] = spawn("script_model", level.base+(240,110,28));
  173.         level.elevatorcontrol[13] setModel( "t6_wpn_supply_drop_ally" );
  174.         level.elevatorcontrol[13].angles = (0,0,0);
  175.  
  176.         level.elevatorcontrol[14] = spawn("script_model", level.base+(240,110,42));
  177.         level.elevatorcontrol[14] setModel( "prop_suitcase_bomb" );
  178.         level.elevatorcontrol[14].angles = (0,-90,0);
  179.         level.elevatorcontrol[14].type = "up";
  180.  
  181.         level.elevatorcontrol[15] = spawn("script_model", level.base+(-40,110,28));
  182.         level.elevatorcontrol[15] setModel( "t6_wpn_supply_drop_ally" );
  183.         level.elevatorcontrol[15].angles = (0,180,0);
  184.  
  185.         level.elevatorcontrol[16] = spawn("script_model", level.base+(-40,110,42));
  186.         level.elevatorcontrol[16] setModel( "prop_suitcase_bomb" );
  187.         level.elevatorcontrol[16].type = "down";
  188.         level.elevatorcontrol[16].angles = (0,90,0);
  189.  
  190.         level.elevatorcontrol[17] = spawn("script_model", level.origin+(-85,84,13.75));
  191.         level.elevatorcontrol[17] setModel( "t6_wpn_supply_drop_ally" );
  192.         level.elevatorcontrol[17].angles = (0,-45,0);
  193.  
  194.         level.elevatorcontrol[18] = spawn("script_model", level.origin+(-85,84,28.75));
  195.         level.elevatorcontrol[18] setModel( "prop_suitcase_bomb" );
  196.         level.elevatorcontrol[18].angles = (0,-135,0);
  197.         level.elevatorcontrol[18].type = "forcedock";
  198.  
  199.         level.elevatorcontrol[19] = spawn("script_model", level.base+(175,-45,28));
  200.         level.elevatorcontrol[19] setModel( "t6_wpn_supply_drop_ally" );
  201.         level.elevatorcontrol[19].angles = (0,-90,0);
  202.  
  203.         level.elevatorcontrol[20] = spawn("script_model", level.base+(175,-45,42));
  204.         level.elevatorcontrol[20] setModel( "prop_suitcase_bomb" );
  205.         level.elevatorcontrol[20].angles = (0,180,0);
  206.         level.elevatorcontrol[20].type = "destroy";
  207.  
  208.         level.elevatorcontrol[21] = spawn("script_model", level.base+(30,-45,28));
  209.         level.elevatorcontrol[21] setModel( "t6_wpn_supply_drop_ally" );
  210.         level.elevatorcontrol[21].angles = (0,-90,0);
  211.         level.elevatorcontrol[21].type = "mystery";
  212.  
  213.         level.elevatorcontrol[22] = spawn("script_model", level.origin+(85,84,13.75));
  214.         level.elevatorcontrol[22] setModel( "t6_wpn_supply_drop_ally" );
  215.         level.elevatorcontrol[22].angles = (0,225,0);
  216.  
  217.         level.center2 = spawn("script_origin", level.center.origin);
  218.         level.center2 linkto(level.center);
  219.         level.elevatorPlatform = [];
  220.         level.elevatorPlatform[0] = spawn("script_model", level.origin+(0,-40,-15));
  221.         level.elevatorPlatform[0].angles = (0,90,0);
  222.         level.elevatorPlatform[1] = spawn("script_model", level.origin+(0,0,-15));
  223.         level.elevatorPlatform[1].angles = (0,90,0);
  224.         level.elevatorPlatform[2] = spawn("script_model", level.origin+(0,40,-15));
  225.         level.elevatorPlatform[2].angles = (0,90,0);
  226.         level.elevatorBase = [];
  227.         j = 0;
  228.         w = 0;
  229.         for(x=0;x<4;x++)
  230.         {
  231.             for(i=0;i<6;i++)
  232.             {
  233.                 level.elevatorBase[j] = spawn("script_model", level.base+(i*40,w,0));
  234.                 j++;
  235.             }
  236.             w+= 70;
  237.         }
  238.         level.BaseCenter = spawn("script_origin", level.base+(110,126,0));
  239.         level.BaseCenterOrigAng = level.BaseCenter.angles;
  240.         level.BaseCenterOrigOrigin = level.BaseCenter.origin;
  241.         for(i=5;i<=level.elevatorcontrol.size - 1;i++)
  242.         {
  243.                 level.elevatorcontrol[i] linkto(level.BaseCenter);
  244.         }
  245.         level.elevatorcontrol[17] unlink();
  246.         level.elevatorcontrol[18] unlink();
  247.         level.elevatorcontrol[22] unlink();
  248.         level.elevatorcontrol[2] linkto(level.BaseCenter);
  249.         level.elevatorcontrol[3] linkto(level.BaseCenter);
  250.         foreach(elevatorbase in level.elevatorBase)
  251.         {
  252.                 elevatorbase setModel( "t6_wpn_supply_drop_ally" );  
  253.                 elevatorbase linkto(level.BaseCenter);
  254.         }
  255.         foreach(platform in level.elevatorPlatform)
  256.         {
  257.                 platform linkto(level.center2);
  258.                 platform setModel( "t6_wpn_supply_drop_ally" );  
  259.  
  260.         }
  261.         foreach(elevator in level.elevator)
  262.         {
  263.                 elevator setmodel("t6_wpn_supply_drop_ally");
  264.                 elevator linkto(level.center);
  265.         }
  266.         foreach(lift in level.lift)
  267.         {
  268.                 lift setmodel("t6_wpn_supply_drop_ally");
  269.         }  
  270.         level.elevatorcontrol[1] thread Sky_Think1();
  271.         level.elevatorcontrol[1] thread Sky_Player_Think1(level.activesky1);
  272.         level.elevatorcontrol[3] thread Sky_Think1();
  273.         level.elevatorcontrol[3] thread Sky_Player_Think1(level.activesky1);
  274.         level.elevatorcontrol[4] thread Sky_Think1();
  275.         level.elevatorcontrol[4] thread Sky_Player_Think1(level.activesky1);
  276.         level.elevatorcontrol[8] thread Sky_Think1();
  277.         level.elevatorcontrol[8] thread Sky_Player_Think1(level.activesky1);
  278.         level.elevatorcontrol[9] thread Sky_Think1();
  279.         level.elevatorcontrol[9] thread Sky_Player_Think1(level.activesky1);
  280.         level.elevatorcontrol[10] thread Sky_Think1();
  281.         level.elevatorcontrol[10] thread Sky_Player_Think1(level.activesky1);
  282.         level.elevatorcontrol[11] thread Sky_Think1();
  283.         level.elevatorcontrol[11] thread Sky_Player_Think1(level.activesky1);
  284.         level.elevatorcontrol[14] thread Sky_Think1();
  285.         level.elevatorcontrol[14] thread Sky_Player_Think1(level.activesky1);
  286.         level.elevatorcontrol[16] thread Sky_Think1();
  287.         level.elevatorcontrol[16] thread Sky_Player_Think1(level.activesky1);
  288.         level.elevatorcontrol[18] thread Sky_Think1();
  289.         level.elevatorcontrol[18] thread Sky_Player_Think1(level.activesky1);
  290.         level.elevatorcontrol[20] thread Sky_Think1();
  291.         level.elevatorcontrol[20] thread Sky_Player_Think1(level.activesky1);
  292.         level.elevatorcontrol[21] thread Sky_Think1();
  293.         level.elevatorcontrol[21] thread MysteryBox_Think();
  294.         level.elevatorcontrol[21] thread Sky_Player_Think1(level.activesky1);
  295. }
  296.  
  297.  
  298.  Sky_Think1()
  299. {
  300.     level endon("game_ended");
  301.      level endon("delete");
  302.      
  303.     localskybaseNumber1 = level.activesky1;
  304.     level.SkybaseInUse = false;
  305.     level.EleInUse = false;
  306.     level.activesky1++;
  307.  
  308.     for(;;)
  309.     {
  310.        
  311.         self waittill ("triggeruse" , player, localskybaseNumber1);  
  312.        
  313.                 if(player isHost())
  314.                 {
  315.                         //put functions u want only host to b able too use here from below then delete the function below
  316.                        
  317.                         if(self.type == "destroy")
  318.                         {
  319.                             if(player Usebuttonpressed())  
  320.                             {  
  321.                                 self endon("endNuke");
  322.                                
  323.                                 level.elevatorcontrol[2] setmodel("t6_wpn_supply_drop_axis");
  324.                                 level.elevatorcontrol[19] setmodel("t6_wpn_supply_drop_axis");
  325.                                 level.plane = spawn("script_model", level.center.origin+(30000,0,5000));
  326.                                 level.plane setmodel("veh_t6_drone_overwatch_light");
  327.                                 level.plane.angles = (0,-180,0);
  328.                                 level.plane moveto((level.center.origin[0],level.center.origin[1],1000), 5);
  329.                                 wait 5;
  330.                                 level._effect["emp_flash"] = loadfx("weapon/emp/fx_emp_explosion");
  331.                                 playfx(level._effect["emp_flash"], level.plane.origin);
  332.                                 self playsound("wpn_rocket_explode");
  333.                                 level.plane hide();
  334.                                 foreach(lift in level.lift)
  335.                                 {
  336.                                     lift unlink();
  337.                                     lift PhysicsLaunch( level.plane.origin, ( 10000,0,10000) );
  338.                                 }
  339.                                 foreach(elevator in level.elevator)
  340.                                 {
  341.                                     elevator unlink();
  342.                                     elevator PhysicsLaunch( level.plane.origin, (-10,0,1000) );
  343.                                 }
  344.                                 foreach(platform in level.elevatorPlatform)
  345.                                 {
  346.                                     platform unlink();
  347.                                     platform PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
  348.                                 }
  349.                                 level.elevatorcontrol[0] unlink();
  350.                                 level.elevatorcontrol[1] unlink();
  351.                                 level.elevatorcontrol[4] unlink();
  352.                                 level.elevatorcontrol[17] unlink();
  353.                                 level.elevatorcontrol[18] unlink();
  354.                                 level.elevatorcontrol[0] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
  355.                                 level.elevatorcontrol[1] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
  356.                                 level.elevatorcontrol[4] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
  357.                                 level.elevatorcontrol[17] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
  358.                                 level.elevatorcontrol[18] PhysicsLaunch( level.plane.origin, (1000,1000,1000) );
  359.                                 level notify("exploded");
  360.                                 level.plane delete();
  361.                                 self notify("endNuke");
  362.                             }
  363.                         }
  364.                         if(self.type == "forcedock")
  365.                         {
  366.                             if(player Usebuttonpressed())  
  367.                             {
  368.                                 level.SkybaseInUse = true;
  369.                                 speed = distance(level.BaseCenter.origin, level.BaseCenterOrigOrigin)/1000;
  370.                                 level.BaseCenter moveto(level.BaseCenterOrigOrigin, 1);//, speed*0.8, speed*0.2);
  371.                                 level.BaseCenter rotateto(level.BaseCenterOrigAng, 3, 2, 1);                    
  372.                                 wait 0.05;
  373.                                 level.SkybaseInUse = false;
  374.                             }
  375.                         }
  376.                     }
  377.                     else if(!player ishost())
  378.                         player iprintlnbold("^1You must be host");
  379.                         //non-host functions below
  380.                 if(self.type == "left" || self.type == "right")
  381.                 {                      
  382.                     while(player Usebuttonpressed())  
  383.                     {  
  384.                         if(self.type == "left")
  385.                         {    
  386.                             level.SkybaseInUse = true;
  387.                             self linkplayers();                                
  388.                             level.BaseCenter rotateyaw(-2, 0.05);
  389.                             wait 0.05;
  390.                             unlinkplayers();
  391.                             level.SkybaseInUse = false;
  392.                         }
  393.                         else
  394.                         {
  395.                             level.SkybaseInUse = true;
  396.                             self linkplayers();    
  397.                             level.BaseCenter rotateyaw(2, 0.05);
  398.                             wait 0.05;
  399.                             unlinkplayers();
  400.                             level.SkybaseInUse = false;
  401.                         }
  402.                     }
  403.                 }
  404.                 if(self.type == "forward")
  405.                 {
  406.                     while(player Usebuttonpressed())  
  407.                     {
  408.                         level.SkybaseInUse = true;
  409.                         self linkplayers();                            
  410.                         level.vec = anglestoright(level.BaseCenter.angles);
  411.                         center = BulletTrace( level.BaseCenter.origin, level.BaseCenter.origin+(level.vec[0] * -100, level.vec[1] * -100, level.vec[2] * -100), 0, self)[ "position" ];
  412.                         level.BaseCenter moveto(center, 0.05);
  413.                         wait 0.05;
  414.                         unlinkplayers();
  415.                         level.SkybaseInUse = false;
  416.                     }
  417.                 }
  418.                 if(self.type == "dock" )
  419.                 {
  420.                     while(player Usebuttonpressed())  
  421.                     {  
  422.                         if(self.type == "dock")
  423.                         {
  424.                             level.SkybaseInUse = true;
  425.                             self linkplayers();
  426.                             speed = distance(level.BaseCenter.origin, level.BaseCenterOrigOrigin)/1000;
  427.                             level.BaseCenter moveto(level.BaseCenterOrigOrigin, 1);//, speed*0.8, speed*0.2);
  428.                             level.BaseCenter rotateto(level.BaseCenterOrigAng, 3, 2, 1);
  429.                             while(level.BaseCenter.origin != level.BaseCenterOrigOrigin)
  430.                             wait 0.05;
  431.                             unlinkplayers();
  432.                             level.SkybaseInUse = false;
  433.                                                
  434.                         }
  435.                                  
  436.                         wait 0.05;
  437.                     }
  438.                 }
  439.                 if(self.type == "up" || self.type == "down")
  440.                 {
  441.                     while(player Usebuttonpressed())  
  442.                     {  
  443.                         if(self.type == "up")
  444.                         {
  445.                             level.SkybaseInUse = true;
  446.                             self linkplayers();    
  447.                             level.BaseCenter moveto(level.BaseCenter.origin+(0,0,10), 0.05);
  448.                             wait 0.05;
  449.                             unlinkplayers();
  450.                             level.SkybaseInUse = false;
  451.                         }
  452.                         else
  453.                         {
  454.                                  level.SkybaseInUse = true;
  455.                              self linkplayers();      
  456.                              level.BaseCenter moveto(level.BaseCenter.origin-(0,0,10), 0.05);
  457.                              wait 0.05;
  458.                              unlinkplayers();
  459.                              level.SkybaseInUse = false;
  460.                         }
  461.                     }
  462.                 }
  463.                    
  464.                 if(self.type == "mystery")
  465.                 {
  466.                     if (player UseButtonPressed())
  467.                     {
  468.                          level.SkybaseInUse = false;
  469.                          if(!level.SkybaseInUse && !self.mysteryBoxInUse )
  470.                         {
  471.                             level.SkybaseInUse = true;
  472.                             wait 0.10;
  473.                             player.currentskybaseHint1 = "";
  474.                             player.isUsingMysteryBox = true;
  475.                             self.mysteryBoxInUse = true;
  476.                             self notify("triggerMysteryBox", player, localskybaseNumber1);
  477.                         }
  478.                         else if(player.mysteryBoxWeaponReady[localskybaseNumber1])
  479.                         {
  480.                             wait 0.10;
  481.                             self notify("tookMysteryBoxWeapon");
  482.                             level.SkybaseInUse = false;
  483.                         }
  484.                         wait 0.10;
  485.                     }    
  486.                 }
  487.            
  488.             if(self.type == "control")
  489.             {
  490.                 if (player UseButtonPressed() && !level.EleInUse)
  491.                 {
  492.                         level.EleInUse = true;
  493.                     if(distance(level.elevatorcontrol[1].origin, player.origin) <60)
  494.                         place = "elevator";
  495.                     else
  496.                         place = "";
  497.                            
  498.                     if(place == "elevator")
  499.                         self eleylinkplayers();
  500.                        
  501.                     if(level.elevatorDirection == "up")
  502.                     {
  503.                            
  504.                         level.elevatorDirection = "down";
  505.                         level.center moveto(level.center.origin+(0,0,1050), 2);
  506.                     }
  507.                     else
  508.                     {
  509.                         level.center2 unlink();
  510.                         foreach(platform in level.elevatorPlatform)
  511.                             platform linkto(level.center2);
  512.                         level.center2 moveto(level.center2.origin-(0,112,0), 3);
  513.                         wait 3.1;
  514.                         level.center2 linkto(level.center);
  515.                         level.center moveto(level.center.origin-(0,0,1050), 2);
  516.                         level.elevatorDirection = "up";
  517.                     }
  518.                     wait 2.5;
  519.                        
  520.                     if(place == "elevator")
  521.                         unlinkplayers();
  522.                        
  523.                     if(level.elevatorDirection == "down")
  524.                     {
  525.                         level.center2 unlink();
  526.                         foreach(platform in level.elevatorPlatform)
  527.                            platform linkto(level.center2);
  528.                            level.center2 moveto(level.center2.origin+(0,112,0), 3);
  529.                            wait 3.5;
  530.                     }  
  531.                     level.EleInUse = false;  
  532.                 }  
  533.             }            
  534.         level.SkybaseInUse = false;
  535.     }
  536.     wait 0.05;
  537. }
  538.                
  539. Sky_Player_Think1(localskybaseNumber1)
  540. {
  541.     level endon("game_ended");
  542.     self endon("disconnect");
  543.     level endon("delete");
  544.     level.elevatorDirection = "up";
  545.     self.mysteryBoxInUse = false;
  546.  
  547.     for(;;)
  548.     {
  549.         foreach(player in level.players)
  550.         {
  551.             if (!isDefined(player.skyStringCreated1[localskybaseNumber1]))
  552.             {
  553.                
  554.                 player.skybaserHintString1[localskybaseNumber1] = player createFontString("objective", 1.5);
  555.                 player.skybaserHintString1[localskybaseNumber1] setText(player.currentskybaseHint1);
  556.                 player.skybaserHintString1[localskybaseNumber1].x = 0;
  557.                 player.skybaserHintString1[localskybaseNumber1].y = -50;
  558.                 player.skybaserHintString1[localskybaseNumber1].color = (1,1,1);
  559.                 player.skybaserHintString1[localskybaseNumber1].alpha = 0;
  560.                 player.skybaserHintString1[localskybaseNumber1].sort = 8;
  561.                 player.skybaserHintString1[localskybaseNumber1].alignX = "center";
  562.                 player.skybaserHintString1[localskybaseNumber1].alignY = "bottom";
  563.                 player.skybaserHintString1[localskybaseNumber1].horzAlign = "center";
  564.                 player.skybaserHintString1[localskybaseNumber1].vertAlign = "bottom";
  565.                 player.skyStringCreated1[localskybaseNumber1] = true;                
  566.                 player.nearsky[localskybaseNumber1] = false;
  567.             }
  568.             if (player.nearsky[localskybaseNumber1] && !level.SkybaseInUse )
  569.             {
  570.                 player.skybaserHintString1[localskybaseNumber1] setText(player.currentskybaseHint1);
  571.                 player.skybaserHintString1[localskybaseNumber1].alpha = 1;
  572.             }
  573.             else
  574.                 player.skybaserHintString1[localskybaseNumber1].alpha = 0;
  575.  
  576.             if(Distance(self.origin, player.origin) <= 60)
  577.             {
  578.                  player.nearsky[localskybaseNumber1] = true;
  579.                 if(self.type == "right")
  580.                     player.currentskybaseHint1 = "Hold ^3[{+activate}]^7 to go left";
  581.                 if(self.type == "left")  
  582.                     player.currentskybaseHint1 = "Hold ^3[{+activate}]^7 to go right";
  583.                 if(self.type == "forward")
  584.                     player.currentskybaseHint1 = "Hold ^3[{+activate}]^7 to go forward";
  585.                 if(self.type == "up")
  586.                     player.currentskybaseHint1 = "Hold ^3[{+activate}]^7 to go up";
  587.                 if(self.type == "down")
  588.                     player.currentskybaseHint1 = "Hold ^3[{+activate}]^7 to go down";
  589.                 if(self.type == "dock")
  590.                     player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to redock";
  591.                 if(self.type == "forcedock")  
  592.                     player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to force redock [Host Only]";
  593.                 if(self.type == "destroy")                    
  594.                         player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to remove access [Host Only]";
  595.                 if(self.type == "control")
  596.                 {
  597.                     if(distance(level.elevatorcontrol[1].origin, player.origin) <60)
  598.                     {
  599.                             if(level.elevatorDirection == "up")
  600.                             player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to go up";
  601.                             if(level.elevatorDirection == "down")                
  602.                                 player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to go down";
  603.                             if(level.EleInUse)  
  604.                                     player.currentskybaseHint1 = "";
  605.                     }
  606.                     else
  607.                     {
  608.                         if(level.elevatorDirection == "up")
  609.                             player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to Send Elevator up";
  610.                         if(level.elevatorDirection == "down")                
  611.                             player.currentskybaseHint1 = "Press ^3[{+activate}]^7 to Send Elevator down";
  612.                         if(level.EleInUse)  
  613.                                 player.currentskybaseHint1 = "";
  614.                     }
  615.                 }
  616.                 if(self.type == "mystery")
  617.                 {
  618.                     if ( !self.mysteryBoxInUse )
  619.                     {
  620.                         player.currentskybaseHint1 = "Press ^3[{+activate}]^7 To Use Mystery Box";
  621.                         player.mysteryBoxWeaponReady[localskybaseNumber1] = false;  
  622.                     }
  623.                     else if ( self.mysteryBoxInUse &&  player.mysteryBoxWeaponReady[localskybaseNumber1] )                    
  624.                        player.currentskybaseHint1 = "Press ^3[{+activate}]^7 To Take Weapon";                    
  625.                 }
  626.                 if(player UseButtonPressed() && isAlive(player))
  627.                 {
  628.                    self notify("triggeruse" , player, localskybaseNumber1);
  629.                    wait 0.05;
  630.                 }
  631.             }
  632.             else
  633.                 player.nearsky[localskybaseNumber1] = false;
  634.             wait 0.0001;
  635.         }
  636.         wait 0.01;
  637.     }
  638. }
  639.  
  640. MysteryBox_Think()
  641. {
  642.     level endon("game_ended");
  643.     level endon("doneforge");
  644.     self.timedOut = false;
  645.  
  646.     for (;;)
  647.     {
  648.         self waittill("triggerMysteryBox", player, localskybaseNumber1);              
  649.         level.currentWeapon = spawn("script_model", self.origin + (0,0,20));
  650.         level.currentWeapon.angles = self.angles + (0, 90, 0);
  651.         self thread MysteryBox_WeaponMover_Think();
  652.                
  653.         self waittill("mysteryBoxWeaponMoverFinished");
  654.         level.SkybaseInUse = false;
  655.         self thread MysteryBox_Timeout_Think();
  656.         player.mysteryBoxWeaponReady[localskybaseNumber1] = true;              
  657.              
  658.         self waittill_any("tookMysteryBoxWeapon", "mysteryBoxWeaponTimedOut");
  659.         wait 0.50;
  660.         if (!self.timedOut)
  661.             player replaceWeaponWorld(self.currentWeaponReturn, "All");
  662.             level.currentWeapon hide();
  663.             player.isUsingMysteryBox = false;
  664.             player.mysteryBoxWeaponReady[localskybaseNumber1] = false;
  665.             self.mysteryBoxInUse = false;
  666.             self.timedOut = false;
  667.             level.SkybaseInUse = false;
  668.             wait 0.01;
  669.     }
  670. }
  671.  
  672. MysteryBox_Timeout_Think()
  673. {
  674.     level endon("game_ended");
  675.     level endon("doneforge");
  676.     self endon("tookMysteryBoxWeapon");
  677.        
  678.     wait 12;
  679.     self.timedOut = true;
  680.     self notify("mysteryBoxWeaponTimedOut");
  681. }
  682.  
  683. MysteryBox_WeaponMover_Think()
  684. {
  685.     level endon("game_ended");
  686.         level endon("doneforge");
  687.  
  688.     self.weaponArray = ReturnWeaponArray("All");
  689.     level.currentWeapon MoveTo(level.currentWeapon.origin + (0, 0, 20), 10, 2, 2);
  690.     for (i = 0; i < 30; i++)
  691.     {
  692.         tempRandomWeapon = self.weaponArray[randomint(self.weaponArray.size)];
  693.         level.currentWeapon SetModel(GetWeaponModel(tempRandomWeapon));
  694.         self.currentWeaponReturn = tempRandomWeapon;
  695.         wait 0.30;
  696.     }
  697.     self notify("mysteryBoxWeaponMoverFinished");
  698.     wait 3;
  699.     level.currentWeapon MoveTo(self.origin, 10, 2, 2);
  700. }
  701.  
  702. toggledelete()
  703. {
  704.     level notify("delete");
  705.     foreach(elevatorbase in level.elevatorBase)
  706.         elevatorbase delete();
  707.     foreach(platform in level.elevatorPlatform)
  708.         platform delete();  
  709.     foreach(elevator in level.elevator)
  710.         elevator delete();
  711.     foreach(lift in level.lift)
  712.         lift delete();
  713.     foreach(elevatorcontrol in level.elevatorcontrol)
  714.         elevatorcontrol delete();
  715.     foreach(player in level.players)
  716.     {
  717.        for (j = 0; j < level.activesky1; j++)
  718.        {
  719.            if(isDefined(player.skybaserHintString1[j]))
  720.             player.skybaserHintString1[j].alpha = 0;
  721.        }
  722.     }      
  723.     level.activesky1 = 0;
  724.     level.basebool = false;  
  725. }
  726.  
  727.  
  728. linkplayers()
  729. {
  730.         foreach(player in level.players)
  731.         {
  732.                 if(Distance(level.elevatorcontrol[10].origin, player.origin) <= 300 && isAlive(player))
  733.                 {
  734.                         player.fakelink = spawn("script_origin", player.origin);
  735.                         player playerlinkto(player.fakelink);
  736.                         player.fakelink linkto(self);
  737.                 }
  738.                
  739.         }
  740.  
  741. }
  742. unlinkplayers()
  743. {
  744.         foreach(player in level.players)
  745.         {
  746.                 player unlink();
  747.                 player.fakelink delete();
  748.         }
  749. }
  750. eleylinkplayers()
  751. {
  752.         foreach(player in level.players)
  753.         {
  754.                 if(Distance(level.elevatorcontrol[1].origin, player.origin) <= 100 && isAlive(player))
  755.                 {
  756.                     player.fakelink = spawn("script_origin", player.origin);
  757.                         player playerlinkto(player.fakelink);
  758.                         player.fakelink linkto(self);
  759.                 }
  760.         }
  761.  
  762. }
  763. deleteonleave()
  764. {
  765.     for(;;)
  766.     {
  767.         level waittill("game_ended");
  768.         toggledelete();
  769.        
  770.     }
  771. }
  772.  
  773. ReturnWeaponArray(category)
  774. {
  775.                
  776.     level.WeaponArray["All"][0] = "mp7_mp";
  777.     level.WeaponArray["All"][1] = "pdw57_mp";
  778.     level.WeaponArray["All"][2] = "vector_mp";
  779.     level.WeaponArray["All"][3] = "insas_mp";
  780.     level.WeaponArray["All"][4] = "qcw05_mp";
  781.     level.WeaponArray["All"][5] = "evoskorpion_mp";
  782.     level.WeaponArray["All"][6] = "peacekeeper_mp";
  783.     level.WeaponArray["All"][7] = "tar21_mp";
  784.     level.WeaponArray["All"][8] = "type95_mp";
  785.     level.WeaponArray["All"][9] = "sig556_mp";
  786.     level.WeaponArray["All"][10] = "sa58_mp";
  787.     level.WeaponArray["All"][11] = "hk416_mp";
  788.     level.WeaponArray["All"][12] = "scar_mp";
  789.     level.WeaponArray["All"][13] = "saritch_mp";
  790.     level.WeaponArray["All"][14] = "xm8_mp";
  791.     level.WeaponArray["All"][15] = "an94_mp";
  792.     level.WeaponArray["All"][16] = "870mcs_mp";
  793.     level.WeaponArray["All"][17] = "saiga12_mp";
  794.     level.WeaponArray["All"][18] = "ksg_mp";
  795.     level.WeaponArray["All"][19] = "srm1216_mp";
  796.     level.WeaponArray["All"][20] = "mk48_mp";
  797.     level.WeaponArray["All"][21] = "qbb95_mp";
  798.     level.WeaponArray["All"][22] = "lsat_mp";
  799.     level.WeaponArray["All"][23] = "hamr_mp";
  800.     level.WeaponArray["All"][24] = "svu_mp";
  801.     level.WeaponArray["All"][25] = "dsr50_mp";
  802.     level.WeaponArray["All"][26] = "ballista_mp";
  803.     level.WeaponArray["All"][27] = "as50_mp";
  804.     level.WeaponArray["All"][28] = "fiveseven_mp";
  805.     level.WeaponArray["All"][29] = "fnp45_mp";
  806.     level.WeaponArray["All"][30] = "beretta93r_mp";
  807.     level.WeaponArray["All"][31] = "judge_mp";
  808.     level.WeaponArray["All"][32] = "kard_mp";
  809.     level.WeaponArray["All"][33] = "smaw_mp";
  810.     level.WeaponArray["All"][34] = "usrpg_mp";
  811.     level.WeaponArray["All"][35] = "fhj18_mp";
  812.     level.WeaponArray["All"][36] = "minigun_wager_mp";
  813.     level.WeaponArray["All"][37] = "m32_wager_mp";
  814.     level.WeaponArray["All"][38] = "riotshield_mp";
  815.     level.WeaponArray["All"][39] = "crossbow_mp";
  816.     level.WeaponArray["All"][40] = "knife_ballistic_mp";
  817.     level.WeaponArray["All"][41] = "knife_held_mp";
  818.    
  819.     if (category == "All")
  820.         return level.WeaponArray["All"];
  821. }
  822.  
  823. isValidWeapon(WeaponRef)
  824. {
  825.     if (StrTok(WeaponRef, "_")[1] != "dw")
  826.         WeaponRef = StrTok(WeaponRef, "+")[0];
  827.     else
  828.         WeaponRef = StrTok(WeaponRef, "_")[0] + "_mp";
  829.         self.validReturn = WeaponRef;
  830.         self.TempWeaponArray = ReturnWeaponArray("All");
  831.     for (i = 0; i < self.TempWeaponArray.size; i++)
  832.     {
  833.         if (self.TempWeaponArray[i] == WeaponRef)
  834.         {      
  835.             return true;
  836.         }
  837.     }
  838.     return false;
  839. }
  840. replaceWeaponWorld(weapon, category)
  841. {
  842.     self.currentWeapon = self GetCurrentWeapon();
  843.     if (isValidWeapon(self.currentWeapon))
  844.     {
  845.         self.currentWeaponNew = self.validReturn;
  846.         if (weapon != self.currentWeapon )
  847.         {            
  848.             self TakeWeapon(self.currentWeapon);
  849.             self GiveWeapon(weapon,0,false);
  850.             self setWeaponAmmoClip(weapon, weaponClipSize(weapon));
  851.             self GiveStartAmmo(weapon);
  852.             self SwitchToWeapon(weapon);
  853.         }
  854.  
  855.     }
  856.                
  857. }
  858.  
  859. /*Skybase end */
Advertisement
Add Comment
Please, Sign In to add comment