Advertisement
irishstorm

Ac130

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