Показать сообщение отдельно
Старый 19.02.2010, 15:05   #25
Novichok8
Местный
 
Регистрация: 24.12.2007
Адрес: Россия(СССР)
Сообщений: 987
Отправить сообщение для Novichok8 с помощью ICQ Отправить сообщение для Novichok8 с помощью Skype™
По умолчанию

case 26: // '\032'
float f9 = Alt;
float f18 = 0.4F;
if(Actor.isAlive(AP.way.takeoffAirport) && (AP.way.takeoffAirport instanceof AirportCarrier))
{
f9 -= ((AirportCarrier)AP.way.takeoffAirport).height();
f18 = 0.95F;
if(Alt < 9F && Vwld.z < 0.0D)
Vwld.z *= 0.84999999999999998D;
if(CT.bHasCockpitDoorControl)
AS.setCockpitDoor(actor, 1);
}
if(first)
{
setCheckGround(false);
CT.BrakeControl = 1.0F;
CT.GearControl = 1.0F;
CT.PowerControl = 0.0F;
if(CT.bHasArrestorControl)
AS.setArrestor(actor, 0);
setSpeedMode(8);
if(f9 > 7.21F && AP.way.Cur() == 0)
{
EI.setEngineRunning();
Aircraft.debugprintln(actor, "in the air - engines running!.");
}
if(!Actor.isAlive(AP.way.takeoffAirport))
direction = actor.pos.getAbsOrient().getAzimut();
if(actor instanceof HE_LERCHE3)
{
maneuver = 69;
break;
}
}
if(Gears.onGround())
{
if(EI.engines[0].getStage() == 0)
{
CT.PowerControl = 0.0F;
setSpeedMode(8);
if(World.Rnd().nextFloat() < 0.05F && mn_time > 1.0F || mn_time > 8F)
{
push();
push(64);
submaneuver = 0;
maneuver = 0;
safe_pop();
break;
}
} else
{
Po.set(Loc);
Vpl.set(60D, 0.0D, 0.0D);
Or.transform(Vpl);
Po.add(Vpl);
pd.set(Po);




if(canTakeoff)
{
CT.PowerControl = 1.1F;
setSpeedMode(11);

} else
{
setSpeedMode(8);
CT.BrakeControl = 1.0F;
boolean flag3 = true;
if(mn_time < 8F)
flag3 = false;
if(actor != War.getNearestFriendAtPoint(Pd, (Aircraft)actor, 70F))
if(actor instanceof G4M2E)
{
if(War.getNearestFriendAtPoint(Pd, (Aircraft)actor, 70F) !=

((G4M2E)actor).typeDockableGetDrone())
flag3 = false;
} else
{
flag3 = false;
}
if(Actor.isAlive(AP.way.takeoffAirport) && AP.way.takeoffAirport.takeoffRequest > 0)
flag3 = false;
if(flag3)
{
canTakeoff = true;
if(Actor.isAlive(AP.way.takeoffAirport))
AP.way.takeoffAirport.takeoffRequest = 300;
}
}
}
if(EI.engines[0].getStage() == 6 && CT.bHasWingControl && CT.getWing() > 0.001F)
AS.setWingFold(actor, 0);
} else
if(canTakeoff)
{
CT.PowerControl = 1.1F;
setSpeedMode(11);
}
if(CT.FlapsControl == 0.0F && CT.getWing() < 0.001F)
CT.FlapsControl = 0.4F;
if(EI.engines[0].getStage() == 6 && CT.getPower() > f18)
{
CT.BrakeControl = 0.0F;
brakeShoe = false;
float f22 = (Vmin * M.getFullMass()) / M.massEmpty;
float f24 = 12F * (getSpeed() / f22 - 0.2F);
if(Gears.bIsSail)
f24 *= 2.0F;
if(Gears.bFrontWheel)
f24 = Gears.Pitch + 4F;
if(f24 < 1.0F)
f24 = 1.0F;
if(f24 > 10F)
f24 = 10F;
float f27 = 1.5F;
if(Actor.isAlive(AP.way.takeoffAirport) && (AP.way.takeoffAirport instanceof AirportCarrier) &&

!Gears.isUnderDeck())
{
CT.GearControl = 0.0F;
if(f9 < 0.0F)
{
f24 = 18F;
f27 = 0.05F;
} else
{
f24 = 14F;
f27 = 0.3F;
}
}
if(Or.getTangage() < f24)
dA = -0.7F * (Or.getTangage() - f24) + f27 * (float)getW().y + 0.5F * (float)getAW().y;
else
dA = -0.1F * (Or.getTangage() - f24) + f27 * (float)getW().y + 0.5F * (float)getAW().y;
CT.ElevatorControl += (dA - CT.ElevatorControl) * 3F * f;
} else
{
CT.ElevatorControl = 1.0F;
}
AFo.setDeg(Or.getAzimut(), direction);
double d1 = AFo.getDiffRad();
if(EI.engines[0].getStage() == 6)
{
CT.RudderControl = 8F * (float)d1;
if(d1 > -1D && d1 < 1.0D)
{
if(Actor.isAlive(AP.way.takeoffAirport) && CT.getPower() > 0.3F)
{
double d2 = AP.way.takeoffAirport.ShiftFromLine(this);
double d3 = 3D - 3D * Math.abs(d1);
if(d3 > 1.0D)
d3 = 1.0D;
double d5 = 0.25D * d2 * d3;
if(d5 > 1.5D)
d5 = 1.5D;
if(d5 < -1.5D)
d5 = -1.5D;
CT.RudderControl += (float)d5;
}
} else
{
CT.BrakeControl = 1.0F;
}
}
CT.AileronControl = -0.05F * Or.getKren() + 0.3F * (float)getW().y;
if(f9 > 5F && !Gears.isUnderDeck())
CT.GearControl = 0.0F;
float f28 = 1.0F;
if(hasBombs())
f28 *= 1.7F;
if(f9 > 120F * f28 || getSpeed() > Vmin * 1.8F * f28 || f9 > 80F * f28 && getSpeed() > Vmin * 1.6F *

f28 || f9 > 40F * f28 && getSpeed() > Vmin * 1.3F * f28 && mn_time > 60F + (float)((Aircraft)actor).aircIndex() *

3F)
{
CT.FlapsControl = 0.0F;
CT.GearControl = 0.0F;
rwLoc = null;
if(actor instanceof TypeGlider)
push(24);
maneuver = 0;
brakeShoe = false;
turnOffCollisions = false;
if(CT.bHasCockpitDoorControl)
AS.setCockpitDoor(actor, 0);
pop();
}
if(actor instanceof TypeGlider)
{
CT.BrakeControl = 0.0F;
CT.ElevatorControl = 0.05F;
canTakeoff = true;
}
break;
вот сам код взлета
Novichok8 вне форума   Ответить с цитированием