Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include maps\mp\_utility;
- #include maps\mp\gametypes\_hud_messages;
- #include common_scripts\utility;
- /*******************************************************************
- // _littleBird.gsc
- //
- // Holds all the littlebird specific functions
- //
- // Jordan Hirsh Jan. 6th 2009
- ********************************************************************/
- ///////////////////////////// popatrz na kod od helikopterow moze znajdziesz cos na ta ziemie
- init()
- {
- //precacheTurret( "minigun_littlebird_mp" );
- precacheModel( "vehicle_little_bird_minigun_left" );
- precacheModel( "vehicle_little_bird_minigun_right" );
- level.attackLB = [];
- level.lbStrike = 0;
- level.killStreakFuncs["littlebird_flyable"] = ::tryUseLbStrike;
- }
- tryUseLbStrike( lifeId )
- {
- self endon("disconnect");
- self endon("death");
- if ( level.lbStrike >= 6 )
- {
- self iPrintLnBold( &"MP_AIR_SPACE_TOO_CROWDED" );
- return false;
- }
- result = self selectLbStrikeLocation( lifeId );
- if ( !isDefined( result ) || !result )
- return false;
- level.lbStrike++;
- return true;
- }
- startLBStrike( lifeId, origin, owner, team, yawDir )
- {
- owner endon("disconnect");
- self endon("disconnect");
- owner endon("death");
- owner.nieRespilemGoJeszcze = false;
- while ( isDefined( level.airstrikeInProgress ) )
- {
- level waittill ( "begin_airstrike" );
- }
- level.airstrikeInProgress = true;
- num = 17 + randomint(3);
- trace = bullettrace(origin, origin + (0,0,-1000000), false, undefined);
- targetpos = trace["position"];
- yaw = yawDir;
- if ( level.teambased )
- {
- players = level.players;
- for ( i = 0; i < level.players.size; i++ )
- {
- player = level.players[i];
- playerteam = player.pers["team"];
- if ( isdefined( playerteam ) )
- {
- if ( playerteam == team )
- player iprintln( "Little Bird inbound");
- }
- }
- }
- level.airstrikeInProgress = undefined;
- owner notify ( "begin_airstrike" );
- level notify ( "begin_airstrike" );
- if ( !isDefined( owner ) )
- return;
- callStrike( lifeId, owner, targetpos, yaw );
- }
- doLbStrike( lifeId, owner, requiredDeathCount, coord, startPoint, endPoint, direction )
- {
- self endon( "death" );
- self endon( "disconnect" );
- self endon( "gone" );
- self endon( "game_ended" );
- if ( !isDefined( owner ) )
- return;
- lb = spawnAttackLittleBird( owner, startPoint, endPoint, coord );
- lb.lifeId = lifeId;
- lb endon( "death" );
- lb endon( "gone" );
- lb endon( "death" );
- lb.smoking = false;
- lb.puszczaj = true;
- level.iloscHeli++;
- lb.playersinheli = 0;
- lb thread czymadymic();
- lb.passagersinheli = 0;
- lb.ReloadMissile = 0;
- lb endon( "death" );
- lb.graczwheli = "";
- lb.Pasazerwheli = "";
- lb.Kierowca = spawn( "script_origin", lb.origin );
- lb.Kierowca EnableLinkTo();
- lb.Kierowca LinkTo( lb, "tag_pilot1", (0,0,-25), (0,0,0) );
- lb.Pasazer = spawn( "script_origin", lb.origin );
- lb.Pasazer EnableLinkTo();
- lb.Pasazer LinkTo( lb, "tag_pilot2", (0,0,-25), (0,-75,0) );
- lb.mgTurret = spawnTurret( "misc_turret", lb.origin, "pavelow_minigun_mp" );
- lb.mgTurret LinkTo( lb, "tag_pilot2", (20,-20,-15), (0,-75,0) );
- lb.mgTurret setModel( "weapon_minigun" );
- lb.mgTurret.angles = lb.angles;
- lb.mgTurret.owner = lb.owner;
- lb.mgTurret.team = lb.mgTurret.owner.team;
- lb.mgTurret SetPlayerSpread( .65 );
- lb.mgTurret SetDefaultDropPitch( 25 );
- lb.mgTurret MakeUnusable();
- lb thread watchDeath();
- totalDist = Distance2d( startPoint, coord );
- midTime = ( totalDist / lb.speed ) / 1.9 * .1 + 6.5;
- assert ( isDefined( lb ) );
- lb SetMaxPitchRoll( 45, 45 );
- lb setVehGoalPos( coord + (0, 0, 2000), 1 );
- // forward = lb getTagOrigin("tag_ground");
- // end = self thread vector_Scal(anglestoforward(lb.angles + (90,0,0)),1000000);
- // SPLOSIONlocation = BulletTrace( forward, end, 0, lb)[ "position" ];
- wait( midTime - 1 );
- /* pointX = RandomFloatRange( coord[0]-1200, coord[0]+1200 );
- pointY = RandomFloatRange( coord[1]-1200, coord[1]+1200 );
- newHeight = lb maps\mp\killstreaks\_harrier::traceGroundPoint(pointX,pointY);
- wait .5;
- lb setVehGoalPos( (coord[0], coord[1], newHeight) - (0, 0, 25), 1 );*/
- lb setVehGoalPos( (coord[0], coord[1], owner.origin[2]) + (0, 0, 165), 1 );
- // lb setVehGoalPos( (coord[0], coord[1], SPLOSIONlocation[2]) + (0, 0, 265), 1 );
- /*level.Kolizje = [];
- level.Kolizje[0] = spawn("script_model", lb.origin);
- level.Kolizje[0] LinkTo( lb, "tag_pilot1", (0,0,0), (0,0,0) );
- level.Kolizje[1] = spawn("script_model", lb.origin+(0,0,-40));
- level.Kolizje[1] LinkTo( lb, "tag_pilot1", (0,0,-40), (0,0,0) );
- level.Kolizje[2] = spawn("script_model", lb.origin+(0,20,-40));
- level.Kolizje[2] LinkTo( lb, "tag_pilot1", (0,0,0), (0,20,-40) );
- level.Kolizje[3] = spawn("script_model", lb.origin+(20,0,-40));
- level.Kolizje[3] LinkTo( lb, "tag_pilot1", (20,0,-40), (0,0,0) );
- level.Kolizje[4] = spawn("script_model", lb.origin+(0,20,40));
- level.Kolizje[4] LinkTo( lb, "tag_pilot1", (0,20,40), (0,0,0) );
- level.Kolizje[5] = spawn("script_model", lb.origin+(20,0,40));
- level.Kolizje[5] LinkTo( lb, "tag_pilot1", (20,0,40), (0,0,0) );
- foreach(kolizja in level.Kolizje)
- kolizja CloneBrushmodelToScriptmodel( level.airDropCrateCollision );*/
- //target = undefined;
- //lb SetHoverParams( 0, 0, 0 );
- lb SetJitterParams( (0,0,0), 0, 0 );
- lb SetTurningAbility( 0 );
- foreach(player in level.players)
- player thread sterowanieHeli( lb );
- return true;
- }
- czymadymic()
- {
- self endon( "disconnect" );
- self endon( "gone" );
- self endon( "death" );
- level endon( "game_ended" );
- for(;;) {
- if ( self.health <= 500 && ( !isDefined( self.smoking ) || !self.smoking ) && self.puszczaj )
- {
- self thread playDamageEfx();
- self.smoking = true;
- self.puszczaj = false;
- }
- wait .1;
- }
- }
- sterowanieHeli( lb )
- {
- //self endon( "death" );
- self endon( "disconnect" );
- lb endon( "gone" );
- lb endon( "death" );
- level endon( "game_ended" );
- lb.indentyfikator = lb + RandomInt( 100000 );
- lb SetJitterParams( (5,0,5), 0.5, 1.5 );
- lb SetTurningAbility( 0.09 );
- for(;;)
- {
- self thread usuwanietekstow(lb);
- self thread wsiadaniedoheli(lb);
- self thread poruszanieheli(lb);
- wait .05;
- }
- }
- usuwanietekstow(lb)
- {
- self endon( "disconnect" );
- lb endon( "gone" );
- lb endon( "death" );
- level endon( "game_ended" );
- if(distance(lb.origin, self gettagorigin("j_head")) >150 || distance(lb.origin, self gettagorigin("j_head")) <65)
- self clearLowerMessage( lb.indentyfikator );
- wait .05;
- }
- wsiadaniedoheli(lb)
- {
- self endon( "disconnect" );
- lb endon( "gone" );
- lb endon( "death" );
- level endon( "game_ended" );
- if(distance(lb.origin, self gettagorigin("j_head")) <150 && distance(lb.origin + (0,0,-35), self gettagorigin("j_head")) > 65 && lb.playersinheli == 0)
- {
- self setLowerMessage( lb.indentyfikator, "Press ^3[{+reload}]^7 to get in as pilot", undefined, 50 );
- if(self maps\mp\gametypes\_rank::isButtonPressed("X") == 1 && lb.playersinheli == 0)
- {
- self.maxhealth = 9999999;
- lb.oldowner = lb.owner;
- self.health = self.maxhealth;
- self.wlaczonapierwszaosoba = true;
- self clearLowerMessage( lb.indentyfikator );
- //player setclientdvar("cg_thirdPerson", 1);
- lb.playersinheli++;
- lb.graczwheli = self.name;
- if(lb.graczwheli == lb.Pasazerwheli) {
- lb.Pasazerwheli = "";
- lb.passagersinheli--;
- }
- self DisableWeapons();
- self.nieNiszczTekstu = true;
- lb.owner = self;
- lb.team = self.team;
- lb.mgTurret1.owner = self;
- lb.mgTurret2.owner = self;
- lb.mgTurret1.team = self.team;
- lb.mgTurret2.team = self.team;
- lb.mgTurret1 SetSentryOwner( self );
- lb.mgTurret2 SetSentryOwner( self );
- if(lb.oldowner != lb.owner) {
- foreach(pilot in level.players) {
- if(lb.oldowner == pilot) { self.nieRespilemGoJeszcze = true; lb.oldowner = undefined; }
- }
- }
- self thread maps\mp\gametypes\_rank::doHeliZycie(lb);
- self SetStance( "crouch" );
- //player PlayerLinkTo( lb.Kierowca, undefined, 0, 80, 80, 0, 150, false );
- self PlayerLinkTo( lb.Kierowca, undefined, 0, 10, 10, 10, 10, false );
- wait .25;
- }
- } else if(distance(lb.origin, self gettagorigin("j_head")) <150 && distance(lb.origin + (0,0,-35), self gettagorigin("j_head")) > 65 && lb.passagersinheli <= 0 && self.name != lb.graczwheli && lb.owner.team == self.team) {
- self setLowerMessage( lb.indentyfikator, "Press ^3[{+reload}]^7 to get in as passenger", undefined, 50 );
- if(self maps\mp\gametypes\_rank::isButtonPressed("X") == 1 && lb.passagersinheli <= 0)
- {
- self.nieNiszczTekstu = true;
- self.maxhealth = 9999999;
- self.health = self.maxhealth;
- self clearLowerMessage( lb.indentyfikator );
- wait .05;
- lb.passagersinheli++;
- lb.Pasazerwheli = self.name;
- if(lb.Pasazerwheli == lb.graczwheli) {
- lb.graczwheli = "";
- lb.playersinheli--;
- }
- self SetStance( "crouch" );
- //player hide();
- self PlayerLinkTo( lb.Pasazer, undefined, 1, 25, 55, 30, 50, false );
- wait .05;
- //lb.mgTurret ShowToPlayer(player);
- lb.mgTurret MakeUsable();
- lb.mgTurret useby(self);
- //lb.mgTurret MakeUnusable();
- //player hide();
- wait .25;
- }
- }
- wait .05;
- }
- poruszanieheli(lb)
- {
- self endon( "disconnect" );
- lb endon( "gone" );
- lb endon( "death" );
- level endon( "game_ended" );
- if (distance(lb.origin + (0,0,-35), self gettagorigin("j_head")) < 65 && lb.graczwheli == self.name) {
- if (self FragButtonPressed()) {
- //forward = self getTagOrigin("j_head");
- forward = self getTagOrigin("tag_eye");
- end = self thread vector_Scal(anglestoforward(lb.angles),1000000);
- SPLOSIONlocation = BulletTrace( forward, end, 0, lb)[ "position" ];
- lb SetMaxPitchRoll( 20, 20 );
- wait .0001;
- lb Vehicle_SetSpeed( lb.speed, 60 );
- wait .0001;
- lb setVehGoalPos( (SPLOSIONlocation[0],SPLOSIONlocation[1], lb.origin[2]), 1 );
- // wait 1.3;
- // lb setVehGoalPos( lb.origin + (0, 0, 0.25), 1 );
- wait .0001;
- }
- if (self maps\mp\gametypes\_rank::isButtonPressed("Right") == 1) {
- lb Vehicle_SetSpeed( 75, 40 );
- lb SetYawSpeed( 90, 65, 65, 0.1 );
- wait .0001;
- lb setgoalyaw(lb.angles[ 1 ] - 15);
- }
- if (self maps\mp\gametypes\_rank::isButtonPressed("Y") == 1) {
- if(self.wlaczonapierwszaosoba) {
- self Unlink();
- self setclientdvar("cg_thirdPerson", 1);
- self PlayerLinkTo( lb.Kierowca, undefined, 0, 80, 80, 0, 150, false );
- self.wlaczonapierwszaosoba = false;
- //player PlayerLinkTo( lb.Kierowca, undefined, 0, 10, 10, 10, 10, false );
- } else {
- self Unlink();
- self setclientdvar("cg_thirdPerson", 0);
- //player PlayerLinkTo( lb.Kierowca, undefined, 0, 80, 80, 0, 150, false );
- self PlayerLinkTo( lb.Kierowca, undefined, 2, 10, 10, 10, 10, false );
- self.wlaczonapierwszaosoba = true;
- }
- }
- if(self maps\mp\gametypes\_rank::isButtonPressed("RT") == 1) {
- if(lb.ReloadMissile < 3)
- {
- self thread lbMissileFire( lb );
- lb.ReloadMissile++;
- self thread WatchReload( lb );
- }
- }
- if (self maps\mp\gametypes\_rank::isButtonPressed("Infor") == 1) {
- self clearLowerMessage( lb.indentyfikator );
- self.nieNiszczTekstu = false;
- lb.mgTurret MakeUnusable();
- lb.Pasazer Delete();
- lb.Kierowca Delete();
- lb heliDestroyed();
- }
- if (self maps\mp\gametypes\_rank::isButtonPressed("Up") == 1) {
- lb Vehicle_SetSpeed( lb.speed, 60 );
- wait .0001;
- lb setVehGoalPos( lb.origin + (0, 0, 50), 1 );
- wait .0001;
- lb SetMaxPitchRoll( 0, 0 );
- wait .0001;
- }
- if (self maps\mp\gametypes\_rank::isButtonPressed("Down") == 1) {
- lb SetMaxPitchRoll( 0, 0 );
- wait .0001;
- lb Vehicle_SetSpeed( 10, 200 );
- wait .0001;
- lb.angles = lb.angles + (2,0,0);
- wait .0001;
- lb SetMaxPitchRoll( 0, 0 );
- wait .0001;
- }
- if (self maps\mp\gametypes\_rank::isButtonPressed("Left") == 1) {
- lb Vehicle_SetSpeed( 75, 40 );
- lb SetYawSpeed( 90, 65, 65, 0.1 );
- wait .0001;
- lb setgoalyaw(lb.angles[ 1 ] + 15);
- }
- if (self MeleeButtonPressed()) {
- lb Vehicle_SetSpeed( lb.speed, 60 );
- wait .0001;
- lb setVehGoalPos( lb.origin - (0, 0, 50), 1 );
- wait .0001;
- lb SetMaxPitchRoll( 0, 0 );
- wait .0001;
- }
- if(self AttackButtonPressed()) {
- lb.mgTurret1 ShootTurret();
- lb.mgTurret2 ShootTurret();
- }
- if(self maps\mp\gametypes\_rank::isButtonPressed("X") == 1)
- {
- lb.playersinheli--;
- lb.graczwheli = "";
- self.maxhealth = 100;
- self.health = self.maxhealth;
- self setclientdvar("cg_thirdPerson", 0);
- self Unlink();
- self clearLowerMessage( lb.indentyfikator );
- self EnableWeapons();
- self SetStance( "stand" );
- self.nieNiszczTekstu = false;
- //player show();
- }
- } else if(distance(lb.origin + (0,0,-35), self gettagorigin("j_head")) < 65 && lb.Pasazerwheli == self.name) {
- if(self maps\mp\gametypes\_rank::isButtonPressed("Up") == 1) {
- lb.mgTurret MakeUsable();
- wait .005;
- lb.mgTurret useby(self);
- wait .25;
- //lb.mgTurret MakeUnusable();
- wait .25;
- }
- if(self maps\mp\gametypes\_rank::isButtonPressed("B") == 1)
- {
- lb.passagersinheli--;
- lb.Pasazerwheli = "";
- self.nieNiszczTekstu = false;
- self.maxhealth = 100;
- self.health = self.maxhealth;
- lb.mgTurret MakeUnusable();
- self Unlink();
- lb.mgTurret MakeUnusable();
- self clearLowerMessage( lb.indentyfikator );
- self EnableWeapons();
- self SetStance( "stand" );
- lb.mgTurret MakeUsable();
- //lb.mgTurret MakeUnusable();
- }
- }
- wait .05;
- }
- lbMissileFire( lb )
- {
- self endon("disconnect");
- self endon("death");
- //lb endon( "death" );
- //lb endon( "gone" );
- lbMissile = spawn( "script_model", lb GetTagOrigin( "tag_ground" ) - (0,0,30) );
- lbMissile setModel( level.cobra_missile_models["cobra_Hellfire"] );
- lbMissile.angles = lb GetTagAngles("tag_ground") + (12,0,0);
- lbMissile Solid();
- lbMissile endon("MissleExploded");
- forward = lb GetTagOrigin( "tag_ground" );
- end = vector_Scal(anglestoforward(lb.angles + (12,0,0)), 1000000);
- endPoint = BulletTrace( forward, end, 0, self )[ "position" ];
- lbMissile.team = self.team;
- lbMissile.owner = self.owner;
- lbMissile thread TrailSmoke( lbMissile, endPoint );
- lbMissile thread DeleteAfterTime( lbMissile, endPoint );
- lbMissile playSound( level.heli_sound["allies"]["missilefire"] );
- lbMissile MoveTo( endPoint, (distance(self.origin, endPoint) / 2000) );
- for(;;)
- {
- if(lbMissile.origin == endPoint)
- {
- level.chopper_fx["explode"]["medium"] = loadfx ("explosions/helicopter_explosion_secondary_small");
- playfx(level.chopper_fx["explode"]["medium"], lbMissile.origin);
- RadiusDamage( lbMissile.origin, 280, 1000, 50, self );
- lbMissile playSound( level.heli_sound["axis"]["hit"] );
- lbMissile hide();
- lbMissile delete();
- lbMissile notify("MissleExploded");
- break;
- }
- wait 0.05;
- }
- }
- WatchReload( lb )
- {
- self endon("disconnect");
- lb endon( "death" );
- for(;;)
- {
- if(lb.ReloadMissile >= 3)
- {
- self iPrintLnBold("Reloading Missiles");
- wait 5;
- self iPrintLnBold("Finished Reload");
- lb.ReloadMissile = 0;
- break;
- }
- else
- break;
- break;
- wait 0.05;
- }
- }
- DeleteAfterTime( entity_t, endPoint_t )
- {
- self endon("disconnect");
- self endon("MissleExploded");
- for(;;)
- {
- if(entity_t.origin != endPoint_t)
- {
- wait 10;
- if(entity_t.origin != endPoint_t)
- entity_t.origin = endPoint_t;
- }
- wait 0.05;
- }
- }
- TrailSmoke( entity_t, endPoint_t )
- {
- self endon("disconnect");
- self endon("MissleExploded");
- while( entity_t.origin != endPoint_t )
- {
- playFXOnTag( level.fx_airstrike_contrail, entity_t, "tag_origin" );
- wait 0.3;
- }
- }
- vector_scal(vec, scale)
- {
- vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale);
- return vec;
- }
- // spawn helicopter at a start node and monitors it
- spawnAttackLittleBird( owner, pathStart, pathGoal, coord )
- {
- self endon( "death" );
- owner endon("disconnect");
- owner endon("death");
- forward = vectorToAngles( pathGoal - pathStart );
- lb = spawnHelicopter( owner, pathStart/2, forward, "littlebird_mp" , "vehicle_little_bird_armed" );
- lb endon( "death" );
- lb endon( "gone" );
- if ( !isDefined( lb ) )
- return;
- lb.speed = 400;
- lb.health = 1000;
- lb setCanDamage( true );
- lb.owner = owner;
- lb.team = owner.team;
- lb SetMaxPitchRoll( 45, 45 );
- lb Vehicle_SetSpeed( lb.speed, 60 );
- lb.damageCallback = ::Callback_VehicleDamage;
- lb.mgTurret1 = spawnTurret( "misc_turret", lb.origin, "pavelow_minigun_mp" );
- lb.mgTurret1 linkTo( lb, "tag_minigun_attach_right", (0,0,0), (12,0,0) );
- lb.mgTurret1 setModel( "vehicle_little_bird_minigun_right" );
- lb.mgTurret1.angles = lb.angles;
- lb.mgTurret1.owner = lb.owner;
- lb.mgTurret1.team = lb.mgTurret1.owner.team;
- lb.mgTurret1 LaserOn();
- lb.mgTurret1 SetPlayerSpread( .65 );
- lb.mgTurret1 makeTurretInoperable();
- lb.mgTurret1 = lb.mgTurret1;
- lb.mgTurret1 SetDefaultDropPitch( 0 );
- lb.mgTurret2 = spawnTurret( "misc_turret", lb.origin, "pavelow_minigun_mp" );
- lb.mgTurret2 linkTo( lb, "tag_minigun_attach_left", (0,0,0), (12,0,0) );
- lb.mgTurret2 setModel( "vehicle_little_bird_minigun_right" );
- lb.mgTurret2 SetPlayerSpread( .65 );
- lb.mgTurret2.angles = lb.angles;
- lb.mgTurret2.owner = lb.owner;
- lb.mgTurret2.team = lb.mgTurret2.owner.team;
- lb.mgTurret2 LaserOn();
- lb.mgTurret2 makeTurretInoperable();
- lb.mgTurret2 = lb.mgTurret2;
- lb.mgTurret2 SetDefaultDropPitch( 0 );
- level.littlebird_flyable[level.littlebird_flyable.size] = lb;
- return lb;
- }
- callStrike( lifeId, owner, coord, yaw )
- {
- self endon("disconnect");
- self endon("death");
- direction = ( 0, yaw, 0 );
- planeHalfDistance = 24000;
- planeFlyHeight = 850;
- planeFlySpeed = 7000;
- if ( isdefined( level.airstrikeHeightScale ) )
- planeFlyHeight *= level.airstrikeHeightScale;
- startPoint = coord + vector_multiply( anglestoforward( direction ), -1 * planeHalfDistance );
- startPoint += ( 0, 0, planeFlyHeight );
- endPoint = coord + vector_multiply( anglestoforward( direction ), planeHalfDistance );
- endPoint += ( 0, 0, planeFlyHeight );
- owner endon("disconnect");
- owner endon("death");
- requiredDeathCount = owner.lifeId;
- level thread doLbStrike( lifeId, owner, requiredDeathCount, coord, startPoint, endPoint, direction );
- }
- waitForLbStrikeCancel()
- {
- self waittill( "cancel_location" );
- self setblurforplayer( 0, 0.3 );
- }
- selectLbStrikeLocation( lifeId )
- {
- self setClientDvar( "ui_selecting_location", "1");
- self beginLocationSelection( "map_artillery_selector", true, 750 );
- self.selectingLocation = true;
- self setblurforplayer( 10.3, 0.3 );
- self thread waitForLbStrikeCancel();
- self thread endSelectionOn( "cancel_location" );
- self thread endSelectionOn( "death" );
- self thread endSelectionOn( "disconnect" );
- self thread endSelectionOn( "used" );
- self thread endSelectionOnGameEnd();
- self endon( "stop_location_selection" );
- self waittill( "confirm_location", location, locationYaw);
- self setblurforplayer( 0, 0.3 );
- self thread finishLbStrikeUsage( lifeId, location, ::useLbStrike, locationYaw );
- return true;
- }
- finishLbStrikeUsage( lifeId, location, usedCallback, locationYaw )
- {
- self notify( "used" );
- wait ( 0.05 );
- self thread stopLbStrikeLocationSelection( false );
- self thread isRideKillstreak( "littlebird_mp" );
- self thread [[usedCallback]]( lifeId, location, locationYaw );
- return true;
- }
- endSelectionOn( waitfor )
- {
- self endon( "stop_location_selection" );
- self waittill( waitfor );
- self thread stopLbStrikeLocationSelection( (waitfor == "disconnect") );
- }
- endSelectionOnGameEnd()
- {
- self endon( "stop_location_selection" );
- level waittill( "game_ended" );
- self thread stopLbStrikeLocationSelection( false );
- }
- stopLbStrikeLocationSelection( disconnected )
- {
- if ( !disconnected )
- {
- self setblurforplayer( 0, 0.3 );
- self endLocationSelection();
- self.selectingLocation = undefined;
- }
- self notify( "stop_location_selection" );
- }
- useLbStrike( lifeId, pos, yawDir )
- {
- self thread gotLocations( pos );
- thread startLBStrike( lifeId, pos, self, self.pers["team"], yawDir );
- }
- Callback_VehicleDamage( inflictor, attacker, damage, dFlags, meansOfDeath, weapon, point, dir, hitLoc, timeOffset, modelIndex, partName )
- {
- self endon( "gone" );
- if ( ( attacker == self || ( isDefined( attacker.pers ) && attacker.pers["team"] == self.team ) ) && ( attacker != self.owner || meansOfDeath == "MOD_MELEE" ) )
- return;
- self.inflictor = inflictor;
- self.attacker = attacker;
- self Vehicle_FinishDamage( inflictor, attacker, damage, dFlags, meansOfDeath, weapon, point, dir, hitLoc, timeOffset, modelIndex, partName );
- }
- playDamageEfx()
- {
- self endon( "death" );
- self endon( "gone" );
- deathAngles = self getTagAngles( "tag_deathfx" );
- for(;;) {
- playFx( level.chopper_fx["smoke"]["trail"], self getTagOrigin( "tag_deathfx" ), anglesToForward( deathAngles ), anglesToUp( deathAngles ) );
- wait .05;
- }
- }
- watchDeath()
- {
- self endon( "gone" );
- self waittill( "death" );
- foreach(player in level.players) {
- player endon("disconnect");
- if(player.maxhealth > 100 && self.graczwheli == player.name || player.maxhealth > 100 && self.Pasazerwheli == player.name || player.health > 100 && self.Pasazerwheli == player.name || player.health > 100 && self.graczwheli == player.name) {
- player.maxhealth = 100;
- player.health = player.maxhealth;
- }
- if(self.owner == player) player.nieRespilemGoJeszcze = true;
- //player [[level.callbackPlayerDamage]]( self.inflictor, self.attacker, 500, 8, "MOD_RIFLE_BULLET", "pavelow_minigun_mp", (0,0,0), (0,0,0), "none", 0 );
- if(self.graczwheli == player.name || self.Pasazerwheli == player.name) { wait .05; player [[level.callbackPlayerDamage]]( self.inflictor, self.attacker, 500, 8, "MOD_RIFLE_BULLET", "pavelow_minigun_mp", (0,0,0), (0,0,0), "none", 0 ); RadiusDamage( self.origin, 350, 1000, 300, self ); player.nieNiszczTekstu = false; player setclientdvar("cg_thirdPerson", 0); player EnableWeapons(); }
- }
- if(self.Pasazerwheli != "") self.Pasazerwheli = "";
- if(self.imietegowheli != "") self.imietegowheli = "";
- if(self.graczwheli != "") self.graczwheli = "";
- if(self.playersinheli > 0) self.playersinheli--;
- if(self.passagersinheli > 0) self.passagersinheli--;
- self thread heliDestroyed();
- if(isDefined(self.Kierowca)) self.Kierowca delete();
- if(isDefined(self.Pasazer)) self.Pasazer delete();
- if(isDefined(self.mgTurret)) self.mgTurret delete();
- /*if(isDefined(level.Kolizje)) {
- foreach(kolizja in level.Kolizje)
- kolizja delete();
- }*/
- //level.littleBirds--;
- level.lbStrike--;
- return;
- }
- heliDestroyed()
- {
- self endon( "gone" );
- if (! isDefined(self) )
- return;
- level.iloscHeli--;
- self Vehicle_SetSpeed( 25, 5 );
- self thread lbSpin( RandomIntRange(180, 220) );
- wait( RandomFloatRange( .5, 1.5 ) );
- lbExplode();
- }
- lbExplode()
- {
- self endon( "gone" );
- forward = ( self.origin + ( 0, 0, 1 ) ) - self.origin;
- playfx ( level.chopper_fx["explode"]["air_death"], self.origin, forward );
- deathAngles = self getTagAngles( "tag_deathfx" );
- playFx( level.chopper_fx["explode"]["air_death"]["littlebird"], self getTagOrigin( "tag_deathfx" ), anglesToForward( deathAngles ), anglesToUp( deathAngles ) );
- self playSound( "cobra_helicopter_crash" );
- self notify ( "explode" );
- if ( isDefined( self.mgTurret1 ) )
- self.mgTurret1 delete();
- if ( isDefined( self.mgTurret2 ) )
- self.mgTurret2 delete();
- self delete();
- wait 5.05;
- self notify( "gone" );
- }
- lbSpin( speed )
- {
- self endon( "explode" );
- playfxontag( level.chopper_fx["explode"]["medium"], self, "tail_rotor_jnt" );
- self thread trail_fx( level.chopper_fx["smoke"]["trail"], "tail_rotor_jnt", "stop tail smoke" );
- self setyawspeed( speed, speed, speed );
- while ( isdefined( self ) )
- {
- self settargetyaw( self.angles[1]+(speed*0.9) );
- wait ( 1 );
- }
- }
- trail_fx( trail_fx, trail_tag, stop_notify )
- {
- self notify( stop_notify );
- self endon( stop_notify );
- self endon( "death" );
- self endon( "gone" );
- for ( ;; )
- {
- playfxontag( trail_fx, self, trail_tag );
- wait( 0.05 );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement