Advertisement
irishstorm

Ac130

May 8th, 2011
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.73 KB | None | 0 0
  1. #include maps\mp\gametypes\_spawnlogic;
  2. #include maps\mp\_createdvar;
  3. #include common_scripts\utility;
  4. main()
  5. {
  6.     precachemodel("c130_zoomrig");
  7.     precachemodel("vehicle_ac130_low");
  8.    
  9.     precacheShader( "ac130_overlay_25mm" );
  10.     precacheShader( "ac130_overlay_40mm" );
  11.     precacheShader( "ac130_overlay_105mm" );
  12.    
  13.     precacheitem("ac130_105mm_mp");
  14.     precacheitem("ac130_25mm_mp");
  15.     precacheitem("ac130_40mm_mp");
  16.     precacheitem("ac130_mp");
  17.    
  18.     //corners = GetEntArray("minimap_corner", "targetname");
  19.    
  20.     level.ac130         = false;
  21.     level.ac130_Weap    = false;
  22.     level.ac130_speed   = createdvar( "nrm_ac130_speed"     , 120,  0, 1000, "int" );               //Default 120
  23.     level.Ac130_Cost    = 0;                                        //Default 15,000
  24.     level.AC130_Spam    = 0;
  25.     level.ac130_Offset  = ( -100, 0, 0 );
  26.     level.ac130_Angles  = ( 0, -90, 40 );
  27.    
  28.     //level.MapCenter = VectorScale( corners[0].origin + corners[1].origin, 0.5 );
  29.     //level.MapCenter = self.origin + ( 2000, 0 ,0 );
  30.     thread OnConnected();
  31.     thread Ac130_Trigger();
  32. }
  33.  
  34. OnConnected()
  35. {
  36.     level endon("game_ended");
  37.    
  38.     for( ;; )
  39.     {
  40.         level waittill("connected", player );
  41.         player thread OnSpawned();
  42.     }
  43. }
  44.  
  45. OnSpawned()
  46. {
  47.     level endon("game_ended");
  48.     self endon("disconnect");
  49.    
  50.     for( ;; )
  51.     {
  52.         self waittill("spawned");
  53.         self thread DoAc130();
  54.     }
  55. }
  56.  
  57. DoAc130()
  58. {
  59.     level endon("game ended");
  60.     self endon("disconnect");
  61.     self endon("death");
  62.     self endon("joined_spectators");
  63.    
  64.     for( ;; )
  65.     {
  66.         self waittill("weapon_change");
  67.        
  68.         if( self GetCurrentWeapon() == "ac130_mp" )
  69.             self thread WaitForAc130Use();
  70.     }
  71. }
  72.  
  73. WaitForAc130Use()
  74. {
  75.     level endon("game_ended");
  76.     self endon("disconnect");
  77.     self endon("death");
  78.     self endon("joined_spectators");
  79.     self endon("weapon_changed");
  80.    
  81.     self waittill("weapon_fired");
  82.     self thread Ac130();
  83. }
  84.  
  85. Ac130()
  86. {
  87.     level endon("game_ended");
  88.     self endon("disconnect");
  89.     self endon("death");
  90.     self endon("joined_spectators");
  91.    
  92.     if ( isDefined( level.ac130 ) && level.ac130 )
  93.     {
  94.         self giveWeapon( "ac130_105mm_mp" );
  95.         self switchToWeapon( "ac130_105mm_mp" );
  96.        
  97.         level.ac130 = spawn( "script_model", self.origin );
  98.         level.ac130 setModel( "c130_zoomrig" );
  99.         level.ac130 hide();
  100.        
  101.         self hide();
  102.        
  103.         level.ac130_Weap = true;
  104.        
  105.         self setAc130Vision(true);
  106.         self LinkTo( level.ac130, "tag_player", ( 0, 0, 0 ), ( 0, 0, 0 ));
  107.        
  108.         level.ac130_model = spawn( "script_model", self.origin + ( 2000, 0, 0) );
  109.         level.ac130_model setModel( "vehicle_ac130_low" );
  110.         level.ac130_model LinkTo( level.ac130, "tag_player", level.ac130_Offset, level.ac130_Angles );
  111.         level.ac130 rotateyaw( 720, level.ac130_speed);
  112.        
  113.         wait level.ac130_speed;
  114.        
  115.         self Unlink();
  116.         self show();
  117.         self thread Respawn();
  118.         level.ac130 delete();
  119.         level.ac130_model delete();
  120.        
  121.     }
  122.    
  123.     else
  124.     {
  125.         self Unlink();
  126.         self show();
  127.         level.ac130_Weap = false;
  128.         level.ac130 delete();
  129.     }
  130. }
  131.  
  132. overlay()
  133. {
  134.     level.ac130_overlay = newClientHudElem( self );
  135.     level.ac130_overlay.x = 0;
  136.     level.ac130_overlay.y = 0;
  137.     level.ac130_overlay.alignX = "center";
  138.     level.ac130_overlay.alignY = "middle";
  139.     level.ac130_overlay.horzAlign = "center";
  140.     level.ac130_overlay.vertAlign = "middle";
  141.     level.ac130_overlay.foreground = true;
  142.     level.ac130_overlay setshader ("ac130_overlay_105mm", 640, 480);
  143.    
  144.     level.ac130_use = newClientHudElem( self );
  145.     level.ac130_use.alignX = "center";
  146.     level.ac130_use.alignY = "middle";
  147.     level.ac130_use.alpha = 1;
  148.     level.ac130_use.hideWhenInMenu = true;
  149.     level.ac130_use.x = 324;
  150.     level.ac130_use.y = 455;
  151.     level.ac130_use settext ( "Press ^3[{+activate}]^7 to switch weapons." );
  152.     level.ac130_use.font = "default";
  153.     level.ac130_use.fontscale = 1.5;
  154.    
  155.     wait level.ac130_speed;
  156.    
  157.     level.ac130_overlay destroy();
  158.     level.ac130_use destroy();
  159. }
  160.  
  161. changeWeapons()
  162. {
  163.     if ( isDefined( level.ac130_Weap ) && level.ac130_Weap )
  164.     {
  165.         weapon = [];
  166.    
  167.         weapon[0] = spawnstruct();
  168.         weapon[0].overlay = "ac130_overlay_105mm";
  169.         weapon[0].fov = "1";
  170.         weapon[0].name = "105mm";
  171.         weapon[0].sound = "ac130_105mm_fire";
  172.         weapon[0].weapon = "ac130_105mm_mp";
  173.    
  174.         weapon[1] = spawnstruct();
  175.         weapon[1].overlay = "ac130_overlay_40mm";
  176.         weapon[1].fov = "0.50";
  177.         weapon[1].name = "40mm";
  178.         weapon[1].sound = "ac130_40mm_fire";
  179.         weapon[1].weapon = "ac130_40mm_mp";
  180.        
  181.         weapon[2] = spawnstruct();
  182.         weapon[2].overlay = "ac130_overlay_25mm";
  183.         weapon[2].fov = "0.30";
  184.         weapon[2].name = "25mm";
  185.         weapon[2].sound = "ac130_25mm_fire";
  186.         weapon[2].weapon = "ac130_25mm_mp";
  187.    
  188.         currentWeapon = 0;
  189.         level.currentWeapon = weapon[currentWeapon].name;
  190.        
  191.         while(level.ac130_Weap)
  192.         {
  193.             while(level.ac130_Weap && !self useButtonPressed() )
  194.                 wait 0.05;
  195.        
  196.             currentWeapon++;
  197.             if (currentWeapon >= weapon.size)
  198.                 currentWeapon = 0;
  199.             level.currentWeapon = weapon[currentWeapon].name;
  200.        
  201.             level.ac130_overlay setShader (weapon[currentWeapon].overlay, 640, 480);
  202.             self setClientDvar( "cg_fovscale", weapon[currentWeapon].fov );
  203.             self takeAllWeapons();
  204.             self giveWeapon( weapon[currentWeapon].weapon );
  205.             self switchToWeapon( weapon[currentWeapon].weapon );
  206.        
  207.             while(level.ac130_Weap && self useButtonPressed() )
  208.                 wait 0.05;
  209.         }
  210.     }
  211. }
  212.  
  213. Respawn()
  214. {
  215.     level.ac130 = false;
  216.     level.ac130_Weap = false;
  217.     self [[level.onSpawnPlayer]]();
  218.     wait 0.1;// If you Remove this you will FUCK EVERYTHING UP so leave it alone!
  219.     self takeAllWeapons();
  220.     self setAc130Vision(false);
  221.     self setClientDvar("cg_fovscale", "1");
  222.     self thread GiveWeaponsBack();
  223.    
  224.     if ( isDefined( level.ac130_overlay ) && isDefined( level.ac130_use ) )
  225.     {
  226.         level.ac130_overlay destroy();
  227.         level.ac130_use destroy();
  228.     }
  229. }
  230.  
  231. WeaponsList()
  232. {
  233.     self.weapons = self GetWeaponsList();
  234.    
  235.     for( i = 0; i < self.weapons.size; i++ )
  236.         self takeWeapon(self.weapons[i]);
  237. }
  238.  
  239. GiveWeaponsBack()
  240. {
  241.     level endon("game_ended");
  242.     self endon("disconnect");
  243.     self endon("death");
  244.     self endon("joined_spectators");
  245.    
  246.     for( i = 0; i < self.weapons.size; i++ )
  247.     {
  248.         self giveWeapon( self.weapons[i] );
  249.         primaryWeapons = self GetWeaponsListPrimaries();
  250.         self SwitchToWeapon(primaryWeapons[1]);
  251.     }
  252. }
  253.  
  254. SetAc130Vision(on)
  255. {
  256.     if( isDefined( self ) )
  257.     {
  258.         if( on )
  259.         {
  260.             self setClientDvars(
  261.             "r_filmtweakenable", "1",
  262.             "r_filmusetweaks", "1",
  263.             "r_filmtweakdesaturation", "1",
  264.             "r_filmtweakdarktint", "2 2 2",
  265.             "r_filmtweakbrightness", "0",
  266.             "r_filmtweakcontrast", "1.5",
  267.             "r_glowtweakenable", "1",
  268.             "r_glowusetweaks", "1",
  269.             "r_glowtweakbloomcutoff", "0",
  270.             "r_glowtweakbloomdesaturation", "1",
  271.             "r_glowtweakbloomintensity0", "2",
  272.             "r_glowtweakradius0", "0.5",
  273.             "r_glowtweakrayexpansion", "0",
  274.             "r_glowtweakrayintensity", "0");
  275.         }
  276.         else
  277.         {
  278.             self setClientDvars(
  279.             "r_filmtweakenable", "0",
  280.             "r_filmusetweaks", "0",
  281.             "r_glowtweakenable", "0",
  282.             "r_glowusetweaks", "0");
  283.         }
  284.     }
  285. }
  286.  
  287. //Buy Trigger
  288.  
  289. Ac130_Trigger()
  290. {
  291.     Ac130_buy  = getentarray( "buy_ac130","targetname" );
  292.    
  293.     if( isDefined( Ac130_buy ) )
  294.     {
  295.         for( i = 0; i < Ac130_buy.size; i++ )
  296.         Ac130_buy[i] thread Bought_Ac130();
  297.     }
  298. }
  299.  
  300. Bought_Ac130()
  301. {
  302.  
  303.     while(1)
  304.     {
  305.         self waittill( "trigger", player );
  306.        
  307.         if( player.score >= level.Ac130_Cost && !player.isZombie )
  308.         {
  309.             level.AC130_Spam+= 1;
  310.             player.score -= level.Ac130_Cost;
  311.             player giveWeapon( "ac130_mp" );
  312.             player switchToWeapon( "ac130_mp" );
  313.         }
  314.        
  315.         else if( player.score < level.Ac130_Cost && !player.isZombie )
  316.         {
  317.             player iprintlnbold("You Need ^1" + ( level.Ac130_Cost - player.score ) + "^7 Points");
  318.             player playLocalSound( "deny" );
  319.         }
  320.        
  321.         else if( player.isZombie )
  322.         {
  323.             player iprintlnbold("^1Zombies^7 Cant Fly, Silly!");
  324.             player playLocalSound( "deny" );
  325.         }
  326.        
  327.         if( level.AC130_Spam >= 1 )
  328.         {
  329.             wait level.ac130_speed;
  330.             level.AC130_Spam = 0;
  331.         }
  332.     }
  333. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement