Для тех кто для переписывает коды ракет Хоминг -
для того что бы ракеты не ловили всё что шевелиться и даже стоит по стойке смирно, а только сбивали самолёты, можно заменить часть кода на такую конструкцию:
PHP код:
КОД:
public boolean interpolateStep()
{
float f = Time.tickLenFs();
float f1 = (float)getSpeed((Vector3d)null);
f1 += (320F - f1) * 0.1F * f;
pos.getAbs(p, or);
v.set(1.0D, 0.0D, 0.0D);
or.transform(v);
v.scale(f1);
setSpeed(v);
p.x += v.x * (double)f;
p.y += v.y * (double)f;
p.z += v.z * (double)f;
if(isNet() && isNetMirror())
{
pos.setAbs(p, or);
return false;
}
if(Time.current() > tStart + 350L)
if(!isValid(victim))
{
if((victim = NearestTargets.getEnemy(0, -1, p, 14000D, 0)) != null)
{
if(victim instanceof BridgeSegment)
victim = null;
else
if(victim instanceof Soldier)
victim = null;
else
if(victim instanceof Paratrooper)
victim = null;
else
if(victim instanceof WeakBody)
victim = null;
else
if(victim instanceof ArtilleryGeneric)
victim = null;
else
if(victim instanceof TankGeneric)
victim = null;
else
if(victim instanceof CarGeneric)
victim = null;
else
if(victim instanceof PlaneGeneric)
victim = null;
else
if(victim instanceof BeaconGeneric)
victim = null;
else
if(victim instanceof AeroanchoredGeneric)
victim = null;
else
if(getOwner().getArmy() == victim.getArmy())
if(victim instanceof Aircraft)
victim = null;
if(victim != null)
{
victim.pos.getAbs(pT);
pT.sub(p);
or.transformInv(pT);
if(pT.y > pT.x / 4D || pT.y < -pT.x / 4D || pT.z > pT.x / 4D || pT.z < -pT.x / 4D)
victim = null;
}
}
or.increment(0.0F, 0.0F, 720F * f);
} else
{
victim.pos.getAbs(pT);
pT.sub(p);
or.transformInv(pT);
if(pT.x > 0.0D)
{
if(pT.y > 0.10000000000000001D)
deltaAzimuth = -1F;
if(pT.y < -0.10000000000000001D)
deltaAzimuth = 1.0F;
if(pT.z < -0.10000000000000001D)
deltaTangage = -1F;
if(pT.z > 0.10000000000000001D)
deltaTangage = 1.0F;
or.increment(60F * f * deltaAzimuth, 60F * f * deltaTangage, 720F * f);
deltaAzimuth = deltaTangage = 0.0F;
} else
{
victim = null;
}
}
pos.setAbs(p, or);
return false;
}
ПРОПЕРТИСЫ:
PHP код:
import com.maddox.JGP.*;
import com.maddox.JGP.Point3d;
import com.maddox.JGP.Vector3d;
import com.maddox.il2.ai.World;
import com.maddox.il2.objects.air.Aircraft;
import com.maddox.il2.ai.air.NearestTargets;
import com.maddox.il2.ai.air.Pilot;
import com.maddox.il2.ai.ground.TgtTank;
import com.maddox.il2.engine.*;
import com.maddox.il2.fm.FlightModel;
import com.maddox.il2.fm.RealFlightModel;
import com.maddox.il2.game.Main3D;
import com.maddox.il2.game.Selector;
import com.maddox.il2.objects.weapons.RocketX5L.Master;
import com.maddox.il2.objects.weapons.RocketX5L.Mirror;
import com.maddox.il2.objects.air.Aircraft;
import com.maddox.il2.objects.air.Paratrooper;
import com.maddox.il2.objects.bridges.BridgeSegment;
import com.maddox.il2.objects.humans.Soldier;
import com.maddox.il2.objects.ships.BigshipGeneric;
import com.maddox.il2.objects.ships.WeakBody;
import com.maddox.il2.objects.vehicles.artillery.ArtilleryGeneric;
import com.maddox.il2.objects.vehicles.tanks.TankGeneric;
import com.maddox.il2.objects.vehicles.cars.CarGeneric;
import com.maddox.il2.objects.vehicles.planes.PlaneGeneric;
import com.maddox.il2.objects.vehicles.radios.BeaconGeneric;
import com.maddox.il2.objects.vehicles.aeronautics.AeroanchoredGeneric;
import com.maddox.rts.*;
PHP код:
СТАРТ:
public void start(float f, int i)
{
Actor actor = pos.base();
if(isValid(actor) && (actor instanceof Aircraft))
{
if(actor.isNetMirror())
{
destroy();
return;
}
net = new RocketX5L.Master(this);
}
doStart(f);
}
private void doStart(float f)
{
super.start(-1F, 0);
fm = ((Aircraft)getOwner()).FM;
tStart = Time.current();
if(Config.isUSE_RENDER())
flame.drawing(true);
pos.getAbs(p, or);
or.setYPR(or.getYaw(), or.getPitch(), 0.0F);
pos.setAbs(p, or);
if(isNet() && isNetMirror())
return;
if(getOwner() == World.getPlayerAircraft() && ((RealFlightModel)fm).isRealMode())
victim = Selector.look(true, false, Main3D.cur3D()._camera3D[Main3D.cur3D().getRenderIndx()], World.getPlayerAircraft().getArmy(), -1, World.getPlayerAircraft(), false);
}
Всем пожалуйста!
-------------------
П.С. Ещё нужно убрать захват командного пункта на аэродроме. Бывает попадает.
Последняя редакция 28 ноября.