AviaSkins.Forums

AviaSkins.Forums (http://forum.aviaskins.com/index.php)
-   Вопросы Новичка8 (http://forum.aviaskins.com/forumdisplay.php?f=17)
-   -   Точки аэродрома и рулежка (http://forum.aviaskins.com/showthread.php?t=1306)

"Sotka" 14.02.2010 12:09

М... Ну, это очень хорошо, но не можешь ли ты их заставить доехать до точки филда? Ибо то, что ты сейчас сделал, легко создаётся при помощи тестовых ВПП в толстом редакторе.

Novichok8 14.02.2010 14:46

не едут они как не пробывал.
тестовая впп перегрождает обычную и они врезаються да и ставить 20 штук не удобно.

Novichok8 14.02.2010 14:48

public static void make(ArrayList arraylist, Point2f[][] point2fs,
Point2f[][] point2fs_0_, Point2f[][] point2fs_1_) {
if (arraylist != null) {
ArrayList arraylist_2_ = new ArrayList();
double d = 4000000.0;
if (arraylist.size() == 4)
d = 2890000.0;
while (arraylist.size() > 0) {
Loc loc = (Loc) arraylist.remove(0);
boolean bool = false;
AirportStatic airportstatic = null;
for (int i = 0; i < arraylist_2_.size(); i++) {
airportstatic = (AirportStatic) arraylist_2_.get(i);
if (airportstatic.oppositeRunway(loc) != null) {
bool = true;
break;
}
}
if (bool) {
airportstatic.runway.add(new Runway(loc));
int i = airportstatic.runway.size();
p3d.set(0.0, 0.0, 0.0);
for (int i_3_ = 0; i_3_ < i; i_3_++) {
loc = ((Runway) airportstatic.runway.get(i_3_)).loc;
p3d.x += loc.getPoint().x;
p3d.y += loc.getPoint().y;
p3d.z += loc.getPoint().z;
}
p3d.x /= (double) i;
p3d.y /= (double) i;
p3d.z /= (double) i;
airportstatic.pos.setAbs(p3d);
} else {
if (Engine.cur.land.isWater(loc.getPoint().x,
loc.getPoint().y))
airportstatic = new AirportMaritime();
else
airportstatic = new AirportGround();
airportstatic.pos = new ActorPosStatic(airportstatic, loc);
airportstatic.runway.add(new Runway(loc));
arraylist_2_.add(airportstatic);
}
}
}
}
вот стандартный код этого.

p3d.set(0.0, 0.0, 0.0); тут я значения увеличил и они взлетают хоть откуда но содяться на 1 впп почему то 2 снесло в море.

Novichok8 14.02.2010 14:50

public static final int PT_RUNWAY = 1;
public static final int PT_TAXI = 2;
public static final int PT_STAY = 4;
вот эти переменные как вообще использовать? что они есть что их нет все одно.

Novichok8 19.02.2010 15:05

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;
вот сам код взлета


Текущее время: 19:28. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot