Advertisement
Guest User

Untitled

a guest
Dec 23rd, 2011
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 16.86 KB | None | 0 0
  1. #include maps\mp\_utility;
  2. #include common_scripts\utility;
  3. #include maps\mp\gametypes\_hud_util;
  4.  
  5. //Predator by Puffiamo. Remember to add my credit on your mod :)
  6. //Steam: Puffiamo94
  7. spawDrone()
  8. {
  9.     wait 0.05;
  10.     level.ac130player = undefined;
  11.     level.myDebug = 0;
  12.     level.Dronemodel = spawn( "script_model", level.Drone getTagOrigin( "tag_player" ) );
  13.     level.Dronemodel setModel( "vehicle_uav_static_mp" );
  14.     level.Dronemodel playLoopSound( "veh_ac130_ext_dist" );
  15.    
  16.     level.Dronemodel setCanDamage( true );
  17.     level.Dronemodel.maxhealth = 1000;
  18.     level.Dronemodel.health = level.Dronemodel.maxhealth;
  19.     level.DroneInUse = false;
  20.  
  21.     level.Dronemodel linkTo( level.Drone, "tag_player", ( 0, 80, 32 ), ( -25, 0, 0 ) );
  22.     level.Drone.planeModel = level.Dronemodel;
  23.  
  24.     DroneCameraModel = spawn( "script_model", level.Drone getTagOrigin( "tag_player" ) );
  25.     DroneCameraModel setModel( "tag_origin" );
  26.  
  27.     DroneCameraModel linkTo( level.Drone, "tag_player", ( 0, 0, 32 ), ( -25, 0, 0 ) );
  28.     level.Drone.cameraModel = DroneCameraModel;
  29.    
  30.     level.Droneplayer = level.players[0];
  31. }
  32.  
  33. enterDrone( player, lifeId )
  34. {
  35.     level.status = "^2CONNECTED";
  36.     if(level.myDebug==1)
  37.         player iPrintLnBold( "Stai entrando nel Predator!" );
  38.     player thread attachPlayer( player );
  39.     player DisableWeapons();
  40.     player thread HUD( player );
  41.     player thread waitHellFireFire( player, lifeId );
  42.     player thread kickFromDrone( player );
  43.     player ThermalVisionOn();
  44.     player ThermalVisionFOFOverlayOn();
  45. }
  46.  
  47. exitingDrone( player )
  48. {
  49.     player unlink();
  50.     player notify("exiting_drone");
  51.     //level.ac130player = undefined;
  52. }
  53.  
  54. waitHellFireFire( player, lifeId )
  55. {
  56.     player endon("stop_timer_drone");
  57.    
  58.     player notifyOnPlayerCommand("MOUSE1", "+attack");
  59.     player waittill("MOUSE1");
  60.     player notify("hellfire_fired");
  61.     if(level.myDebug==1)
  62.         player iPrintLnBold( "Hai appena sparato un missile!" );
  63.     player stopLocalSound( "missile_incoming" );
  64.     self.HUDItem[ "thermal_mode" ] settext ( "FIRED" );
  65.     //forward = AnglesToForward( level.Drone.angles );
  66.     //CurrentDroneLocation = level.Drone GetTagOrigin( "tag_origin" );
  67.     //HellFire = MagicBullet( "remotemissile_projectile_mp", CurrentDroneLocation, forward, player );
  68.     //player thread HellFireEyes( player, HellFire );
  69.     _fire( lifeId, player );
  70. }
  71.  
  72. kickFromDrone( player )
  73. {
  74.     player endon("hellfire_fired");
  75.     wait 5;
  76.     player playLocalSound( "missile_incoming" );
  77.     self.HUDItem[ "thermal_mode" ] settext ( "^1LOSING CONNECTION" );
  78.     wait 5;
  79.     player stopLocalSound( "missile_incoming" );
  80.     player playLocalSound( "fasten_seatbelts" );
  81.     player notify("stop_timer_drone");
  82.     player thread exitingDrone( player );
  83.     self.HUDItem[ "coordinate_agl" ] Destroy();
  84.     self.HUDItem[ "coordinate_lat" ] Destroy();
  85.     self.HUDItem[ "coordinate_long" ] Destroy();
  86.     self.HUDItem[ "thermal_mode" ] Destroy();
  87.     self.HUDItem[ "drone_instruction" ] Destroy();
  88.     player EnableWeapons();
  89.     player ThermalVisionOff();
  90.     player ThermalVisionFOFOverlayOff();
  91. }
  92.  
  93. HellFireEyes( player, HellFire )
  94. {
  95.     player CameraLinkTo( HellFire, "tag_origin" );
  96.     player ControlsLinkTo( HellFire );
  97. }
  98.  
  99. HUD( player )
  100. {
  101.     player endon("stop_timer_drone");
  102.    
  103.     thread overlay_coords();
  104.     player notifyOnPlayerCommand("MOUSE1", "+attack");
  105.     for(i=0;i<2;i++)
  106.     {
  107.         player waittill("MOUSE1");
  108.         self thread exitingDrone( self );      
  109.     }
  110. }
  111.  
  112. attachPlayer( player )
  113. {
  114.     self PlayerLinkWeaponviewToDelta( level.Drone, "tag_player", 1.0, 35, 35, 35, 35 );
  115.     self setPlayerAngles( level.Drone getTagAngles( "tag_player" ) );  
  116. }
  117.  
  118. rotatePlane( toggle )
  119. {
  120.    
  121.     if (toggle == "on")
  122.     {
  123.         rampupDegrees = 10;
  124.         rotateTime = ( level.Drone_Speed[ "rotate" ] / 360 ) * rampupDegrees;
  125.         level.Drone rotateyaw( level.Drone.angles[ 2 ] + rampupDegrees, rotateTime, rotateTime, 0 );
  126.        
  127.         for (;;)
  128.         {
  129.             level.Drone rotateyaw( 360, level.Drone_Speed[ "rotate" ] );
  130.             wait level.Drone_Speed[ "rotate" ];
  131.         }
  132.     }
  133.     else if (toggle == "off")
  134.     {
  135.         slowdownDegrees = 10;
  136.         rotateTime = ( level.Drone_Speed[ "rotate" ] / 360 ) * slowdownDegrees;
  137.         level.Drone rotateyaw( level.Drone.angles[ 2 ] + slowdownDegrees, rotateTime, 0, rotateTime );
  138.     }
  139. }
  140.  
  141. overlay_coords( player )
  142. {  
  143.     self.HUDItem[ "thermal_mode" ] = newClientHudElem( self );
  144.     self.HUDItem[ "thermal_mode" ].x = -80;
  145.     self.HUDItem[ "thermal_mode" ].y = 50;
  146.     self.HUDItem[ "thermal_mode" ].alignX = "right";
  147.     self.HUDItem[ "thermal_mode" ].alignY = "top";
  148.     self.HUDItem[ "thermal_mode" ].horzAlign = "right";
  149.     self.HUDItem[ "thermal_mode" ].vertAlign = "top";
  150.     self.HUDItem[ "thermal_mode" ].fontScale = 2.5;
  151.     self.HUDItem[ "thermal_mode" ] settext ( "^2CONNECTED" );
  152.     self.HUDItem[ "thermal_mode" ].alpha = 1.0;
  153.        
  154.     self.HUDItem[ "coordinate_long" ] = newClientHudElem( self );
  155.     self.HUDItem[ "coordinate_long" ].x = -100;
  156.     self.HUDItem[ "coordinate_long" ].y = 0;
  157.     self.HUDItem[ "coordinate_long" ].alignX = "right";
  158.     self.HUDItem[ "coordinate_long" ].alignY = "top";
  159.     self.HUDItem[ "coordinate_long" ].horzAlign = "right";
  160.     self.HUDItem[ "coordinate_long" ].vertAlign = "top";
  161.     self.HUDItem[ "coordinate_long" ].fontScale = 2.5;
  162.     self.HUDItem[ "coordinate_long" ].alpha = 1.0;
  163.    
  164.     self.HUDItem[ "coordinate_lat" ] = newClientHudElem( self );
  165.     self.HUDItem[ "coordinate_lat" ].x = 0;
  166.     self.HUDItem[ "coordinate_lat" ].y = 0;
  167.     self.HUDItem[ "coordinate_lat" ].alignX = "right";
  168.     self.HUDItem[ "coordinate_lat" ].alignY = "top";
  169.     self.HUDItem[ "coordinate_lat" ].horzAlign = "right";
  170.     self.HUDItem[ "coordinate_lat" ].vertAlign = "top";
  171.     self.HUDItem[ "coordinate_lat" ].fontScale = 2.5;
  172.     self.HUDItem[ "coordinate_lat" ].alpha = 1.0;
  173.    
  174.     self.HUDItem[ "coordinate_agl" ] = newClientHudElem( self );
  175.     self.HUDItem[ "coordinate_agl" ].x = 0;
  176.     self.HUDItem[ "coordinate_agl" ].y = 20;
  177.     self.HUDItem[ "coordinate_agl" ].alignX = "right";
  178.     self.HUDItem[ "coordinate_agl" ].alignY = "top";
  179.     self.HUDItem[ "coordinate_agl" ].horzAlign = "right";
  180.     self.HUDItem[ "coordinate_agl" ].vertAlign = "top";
  181.     self.HUDItem[ "coordinate_agl" ].fontScale = 2.5;
  182.     self.HUDItem[ "coordinate_agl" ].label = ( &"AC130_HUD_AGL" );
  183.     self.HUDItem[ "coordinate_agl" ].alpha = 1.0;
  184.        
  185.  
  186.  
  187.         self.HUDItem[ "coordinate_long" ] setValue( abs( int( self.origin[0] ) ) );
  188.         self.HUDItem[ "coordinate_lat" ] setValue( abs( int( self.origin[1] ) ) );
  189.        
  190.         pos = physicstrace( self.origin, self.origin - ( 0, 0, 100000 ) );
  191.         if( ( isdefined( pos ) ) && ( isdefined( pos[2] ) ) )
  192.         {
  193.             alt = ( ( self.origin[2] - pos[2] ) * 1.5 );
  194.             self.HUDItem[ "coordinate_agl" ] setValue( abs( int( alt ) ) );
  195.         }
  196.    
  197.     self waittill("remove_hud");
  198.     self.HUDItem[ "coordinate_agl" ] Destroy();
  199.     self.HUDItem[ "coordinate_lat" ] Destroy();
  200.     self.HUDItem[ "coordinate_long" ] Destroy();
  201.     self.HUDItem[ "thermal_mode" ] Destroy();
  202.     self EnableWeapons();
  203.     self ThermalVisionOff();
  204.     self ThermalVisionFOFOverlayOff();
  205. }
  206.  
  207. init()
  208. {
  209.     // Need for the drone
  210.     level.Drone_Speed[ "move" ] = 250;
  211.     level.Drone_Speed[ "rotate" ] = 70;
  212.    
  213.  
  214.     minimapOrigins = getEntArray( "minimap_corner", "targetname" );
  215.     level.DroneOrigin = (0,0,0);
  216.    
  217.     if ( miniMapOrigins.size )
  218.         level.DroneOrigin = maps\mp\gametypes\_spawnlogic::findBoxCenter( miniMapOrigins[0].origin, miniMapOrigins[1].origin );
  219.    
  220.     level.Drone = spawn( "script_model", level.DroneOrigin+(0,0,4000) );
  221.     level.Drone setModel( "c130_zoomrig" );
  222.     level.Drone.angles = ( 0, 115, 0 );
  223.     level.Drone.owner = undefined;
  224.  
  225.     level.DroneInUse = false;
  226.    
  227.  
  228.     thread rotatePlane( "on" );
  229.     // ---------------------------------------------------------------------------------------
  230.     mapname = getDvar( "mapname" );
  231.     if ( mapname == "mp_suburbia" )
  232.     {
  233.         level.missileRemoteLaunchVert = 7000;
  234.         level.missileRemoteLaunchHorz = 10000;
  235.         level.missileRemoteLaunchTargetDist = 2000;
  236.     }
  237.     else if ( mapname == "mp_mainstreet" )
  238.     {
  239.         level.missileRemoteLaunchVert = 7000;
  240.         level.missileRemoteLaunchHorz = 10000;
  241.         level.missileRemoteLaunchTargetDist = 2000;
  242.     }
  243.     else
  244.     {
  245.         level.missileRemoteLaunchVert = 14000000;
  246.         level.missileRemoteLaunchHorz = 7000000;
  247.         level.missileRemoteLaunchTargetDist = 1500000;
  248.     }  
  249.     precacheItem( "remotemissile_projectile_mp" );
  250.     precacheString( &"MP_CIVILIAN_AIR_TRAFFIC" );
  251.    
  252.     setDvar("missileRemoteSteerPitchRange", "-360 360");
  253.     setDvar("missileRemoteFOV", 60);
  254.     setDvar("missileRemoteSpeedUp", 20000);
  255.     setDvar("missileRemoteSteerPitchRate", 160);
  256.     setDvar("missileRemoteSteerYawRate", 160);
  257.     setDvar("player_spectateSpeedScale", 20);
  258.        
  259.     level.rockets = [];
  260.    
  261.     level.killstreakFuncs["predator_missile"] = ::tryUsePredatorMissile;
  262.    
  263.     level.missilesForSightTraces = [];
  264. }
  265.  
  266.  
  267. tryUsePredatorMissile( lifeId )
  268. {
  269.     if ( isDefined( level.civilianJetFlyBy ) )
  270.     {
  271.         self iPrintLnBold( &"MP_CIVILIAN_AIR_TRAFFIC" );
  272.         return false;
  273.     }
  274.    
  275.    
  276.     self setUsingRemote( "remotemissile" );
  277.     result = self maps\mp\killstreaks\_killstreaks::initRideKillstreak();
  278.     if ( result != "success" )
  279.     {
  280.         if ( result != "disconnect" )
  281.             self clearUsingRemote();
  282.  
  283.         return false;
  284.     }
  285.     self thread enterDrone( self, lifeId ); // Modified Predator
  286.     //level thread _fire( lifeId, self );   // Standard Predator
  287.     self clearUsingRemote();
  288.     return true;
  289.    
  290. }
  291.  
  292.  
  293. getBestSpawnPoint( remoteMissileSpawnPoints )
  294. {
  295.     validEnemies = [];
  296.  
  297.     foreach ( spawnPoint in remoteMissileSpawnPoints )
  298.     {
  299.         spawnPoint.validPlayers = [];
  300.         spawnPoint.spawnScore = 0;
  301.     }
  302.    
  303.     foreach ( player in level.players )
  304.     {
  305.         if ( !isReallyAlive( player ) )
  306.             continue;
  307.  
  308.         if ( player.team == self.team )
  309.             continue;
  310.        
  311.         if ( player.team == "spectator" )
  312.             continue;
  313.        
  314.         bestDistance = 999999999;
  315.         bestSpawnPoint = undefined;
  316.    
  317.         foreach ( spawnPoint in remoteMissileSpawnPoints )
  318.         {
  319.             //could add a filtering component here but i dont know what it would be.
  320.             spawnPoint.validPlayers[spawnPoint.validPlayers.size] = player;
  321.        
  322.             potentialBestDistance = Distance2D( spawnPoint.targetent.origin, player.origin );
  323.            
  324.             if ( potentialBestDistance <= bestDistance )
  325.             {
  326.                 bestDistance = potentialBestDistance;
  327.                 bestSpawnpoint = spawnPoint;   
  328.             }  
  329.         }
  330.        
  331.         assertEx( isDefined( bestSpawnPoint ), "Closest remote-missile spawnpoint undefined for player: " + player.name );
  332.         bestSpawnPoint.spawnScore += 2;
  333.     }
  334.  
  335.     bestSpawn = remoteMissileSpawnPoints[0];
  336.     foreach ( spawnPoint in remoteMissileSpawnPoints )
  337.     {
  338.         foreach ( player in spawnPoint.validPlayers )
  339.         {
  340.             spawnPoint.spawnScore += 1;
  341.            
  342.             if ( bulletTracePassed( player.origin + (0,0,32), spawnPoint.origin, false, player ) )
  343.                 spawnPoint.spawnScore += 3;
  344.        
  345.             if ( spawnPoint.spawnScore > bestSpawn.spawnScore )
  346.             {
  347.                 bestSpawn = spawnPoint;
  348.             }
  349.             else if ( spawnPoint.spawnScore == bestSpawn.spawnScore ) // equal spawn weights so we toss a coin.
  350.             {          
  351.                 if ( coinToss() )
  352.                     bestSpawn = spawnPoint;
  353.             }
  354.         }
  355.     }
  356.    
  357.     return ( bestSpawn );
  358. }
  359.  
  360. drawLine( start, end, timeSlice, color )
  361. {
  362.     drawTime = int(timeSlice * 20);
  363.     for( time = 0; time < drawTime; time++ )
  364.     {
  365.         line( start, end, color,false, 1 );
  366.         wait ( 0.05 );
  367.     }
  368. }
  369. _fire( lifeId, player )
  370. {
  371.     remoteMissileSpawnArray = getEntArray( "remoteMissileSpawn" , "targetname" );
  372.     //assertEX( remoteMissileSpawnArray.size > 0 && getMapCustom( "map" ) != "", "No remote missile spawn points found.  Contact friendly neighborhood designer" );
  373.    
  374.     foreach ( spawn in remoteMissileSpawnArray )
  375.     {
  376.         if ( isDefined( spawn.target ) )
  377.             spawn.targetEnt = getEnt( spawn.target, "targetname" );
  378.     }
  379.    
  380.     if ( remoteMissileSpawnArray.size > 0 )
  381.         remoteMissileSpawn = player getBestSpawnPoint( remoteMissileSpawnArray );
  382.     else
  383.         remoteMissileSpawn = undefined;
  384.    
  385. //  if ( isDefined( remoteMissileSpawn ) )
  386. //  {  
  387.         startPos = remoteMissileSpawn.origin;  
  388.         targetPos = AnglesToForward( level.Drone.angles );//remoteMissileSpawn.targetEnt.origin;
  389.  
  390.         //thread drawLine( startPos, targetPos, 30, (0,1,0) );
  391.  
  392.         //vector = vectorNormalize( startPos - targetPos );    
  393.         //startPos = vector_multiply( vector, 14000 ) + targetPos;
  394.  
  395.         //thread drawLine( startPos, targetPos, 15, (1,0,0) );
  396.        
  397.         rocket = MagicBullet( "remotemissile_projectile_mp", level.Dronemodel.origin-(0,0,-200), targetPos, player );
  398. //  }
  399. /*  else
  400.     {
  401.         upVector = (0, 0, level.missileRemoteLaunchVert );
  402.         backDist = level.missileRemoteLaunchHorz;
  403.         targetDist = level.missileRemoteLaunchTargetDist;
  404.    
  405.         forward = AnglesToForward( player.angles );
  406.         startpos = player.origin + upVector + forward * backDist * -1;
  407.         targetPos = player.origin + forward * targetDist;
  408.        
  409.         rocket = MagicBullet( "remotemissile_projectile_mp", startpos, targetPos, player );
  410.     }
  411. */
  412.     if ( !IsDefined( rocket ) )
  413.     {
  414.         player clearUsingRemote();
  415.         return;
  416.     }
  417.    
  418.     rocket thread maps\mp\gametypes\_weapons::AddMissileToSightTraces( player.team );
  419.    
  420.     rocket thread handleDamage();
  421.    
  422.     rocket.lifeId = lifeId;
  423.     rocket.type = "remote";
  424.     MissileEyes( player, rocket );
  425. }
  426.  
  427. /#
  428. _fire_noplayer( lifeId, player )
  429. {
  430.     upVector = (0, 0, level.missileRemoteLaunchVert );
  431.     backDist = level.missileRemoteLaunchHorz;
  432.     targetDist = level.missileRemoteLaunchTargetDist;
  433.  
  434.     forward = AnglesToForward( player.angles );
  435.     startpos = player.origin + upVector + forward * backDist * -1;
  436.     targetPos = player.origin + forward * targetDist;
  437.    
  438.     rocket = MagicBullet( "remotemissile_projectile_mp", startpos, targetPos, player );
  439.  
  440.     if ( !IsDefined( rocket ) )
  441.         return;
  442.  
  443.     rocket thread handleDamage();
  444.    
  445.     rocket.lifeId = lifeId;
  446.     rocket.type = "remote";
  447.    
  448.     player CameraLinkTo( rocket, "tag_origin" );
  449.     player ControlsLinkTo( rocket );
  450.  
  451.     rocket thread Rocket_CleanupOnDeath();
  452.  
  453.     wait ( 2.0 );
  454.  
  455.     player ControlsUnlink();
  456.     player CameraUnlink(); 
  457. }
  458. #/
  459.  
  460. handleDamage()
  461. {
  462.     self endon ( "death" );
  463.     self endon ( "deleted" );
  464.  
  465.     self setCanDamage( true );
  466.  
  467.     for ( ;; )
  468.     {
  469.       self waittill( "damage" );
  470.      
  471.       println ( "projectile damaged!" );
  472.     }
  473. }  
  474.  
  475.  
  476. MissileEyes( player, rocket )
  477. {
  478.     //level endon ( "game_ended" );
  479.     player endon ( "joined_team" );
  480.     player endon ( "joined_spectators" );
  481.  
  482.     rocket thread Rocket_CleanupOnDeath();
  483.     player thread Player_CleanupOnGameEnded( rocket );
  484.     player thread Player_CleanupOnTeamChange( rocket );
  485.    
  486.     player VisionSetMissilecamForPlayer( "black_bw", 0 );
  487.  
  488.     player endon ( "disconnect" );
  489.  
  490.     if ( isDefined( rocket ) )
  491.     {
  492.         player VisionSetMissilecamForPlayer( game["thermal_vision"], 1.0 );
  493.         player thread delayedFOFOverlay();
  494.         player CameraLinkTo( rocket, "tag_origin" );
  495.         player ControlsLinkTo( rocket );
  496.  
  497.         if ( getDvarInt( "camera_thirdPerson" ) )
  498.             player setThirdPersonDOF( false );
  499.    
  500.         rocket waittill( "death" );
  501.         self notify("remove_hud");
  502.  
  503.         // is defined check required because remote missile doesnt handle lifetime explosion gracefully
  504.         // instantly deletes its self after an explode and death notify
  505.         if ( isDefined(rocket) )
  506.             player maps\mp\_matchdata::logKillstreakEvent( "predator_missile", rocket.origin );
  507.        
  508.         player ControlsUnlink();
  509.         player freezeControlsWrapper( true );
  510.    
  511.         // If a player gets the final kill with a hellfire, level.gameEnded will already be true at this point
  512.         if ( !level.gameEnded || isDefined( player.finalKill ) )
  513.             player thread staticEffect( 0.5 );
  514.  
  515.         wait ( 0.5 );
  516.        
  517.         player ThermalVisionFOFOverlayOff();
  518.        
  519.         player CameraUnlink();
  520.        
  521.         if ( getDvarInt( "camera_thirdPerson" ) )
  522.             player setThirdPersonDOF( true );
  523.        
  524.     }
  525.    
  526.     player clearUsingRemote();
  527. }
  528.  
  529.  
  530. delayedFOFOverlay()
  531. {
  532.     self endon ( "death" );
  533.     self endon ( "disconnect" );
  534.     level endon ( "game_ended" );
  535.    
  536.     wait ( 0.15 );
  537.    
  538.     self ThermalVisionFOFOverlayOn();
  539. }
  540.  
  541. staticEffect( duration )
  542. {
  543.     self endon ( "disconnect" );
  544.    
  545.     staticBG = newClientHudElem( self );
  546.     staticBG.horzAlign = "fullscreen";
  547.     staticBG.vertAlign = "fullscreen";
  548.     staticBG setShader( "white", 640, 480 );
  549.     staticBG.archive = true;
  550.     staticBG.sort = 10;
  551.  
  552.     static = newClientHudElem( self );
  553.     static.horzAlign = "fullscreen";
  554.     static.vertAlign = "fullscreen";
  555.     static setShader( "ac130_overlay_grain", 640, 480 );
  556.     static.archive = true;
  557.     static.sort = 20;
  558.    
  559.     wait ( duration );
  560.    
  561.     static destroy();
  562.     staticBG destroy();
  563. }
  564.  
  565.  
  566. Player_CleanupOnTeamChange( rocket )
  567. {
  568.     rocket endon ( "death" );
  569.     self endon ( "disconnect" );
  570.  
  571.     self waittill_any( "joined_team" , "joined_spectators" );
  572.  
  573.     if ( self.team != "spectator" )
  574.     {
  575.         self ThermalVisionFOFOverlayOff();
  576.         self ControlsUnlink();
  577.         self CameraUnlink();   
  578.  
  579.         if ( getDvarInt( "camera_thirdPerson" ) )
  580.             self setThirdPersonDOF( true );
  581.     }
  582.     self clearUsingRemote();
  583.    
  584.     level.remoteMissileInProgress = undefined;
  585. }
  586.  
  587.  
  588. Rocket_CleanupOnDeath()
  589. {
  590.     entityNumber = self getEntityNumber();
  591.     level.rockets[ entityNumber ] = self;
  592.     self waittill( "death" );  
  593.    
  594.     level.rockets[ entityNumber ] = undefined;
  595. }
  596.  
  597.  
  598. Player_CleanupOnGameEnded( rocket )
  599. {
  600.     rocket endon ( "death" );
  601.     self endon ( "death" );
  602.    
  603.     level waittill ( "game_ended" );
  604.    
  605.     self ThermalVisionFOFOverlayOff();
  606.     self ControlsUnlink();
  607.     self CameraUnlink();   
  608.  
  609.     if ( getDvarInt( "camera_thirdPerson" ) )
  610.         self setThirdPersonDOF( true );
  611. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement