Показать сообщение отдельно
Старый 27.11.2015, 18:57   #216
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,085
Радость

Это основной класс:
PHP код:
// Source File Name:   RocketX4_F.java

package com.maddox.il2.objects.weapons;

import com.maddox.JGP.*;
import com.maddox.il2.ai.MsgExplosion;
import com.maddox.il2.ai.World;
import com.maddox.il2.ai.air.NearestTargets;
import com.maddox.il2.ai.air.Pilot;
import com.maddox.il2.engine.*;
import com.maddox.il2.fm.FlightModel;
import com.maddox.il2.fm.RealFlightModel;
import com.maddox.il2.objects.air.Aircraft;
import com.maddox.il2.objects.air.TypeX4Carrier;
import com.maddox.rts.*;
import java.io.IOException;
import java.io.PrintStream;

// Referenced classes of package com.maddox.il2.objects.weapons:
//            Rocket

public class RocketX4_F extends Rocket
{
    static class 
SPAWN
        
implements NetSpawn
    
{

        public 
void netSpawn(int iNetMsgInput netmsginput)
        {
            
NetObj netobj netmsginput.readNetObj();
            if(
netobj == null)
                return;
            try
            {
                
Actor actor = (Actor)netobj.superObj();
                
Point3d point3d = new Point3d(netmsginput.readFloat(), netmsginput.readFloat(), netmsginput.readFloat());
                
Orient orient = new Orient(netmsginput.readFloat(), netmsginput.readFloat(), 0.0F);
                
float f netmsginput.readFloat();
                
RocketX4_F RocketX4_f = new RocketX4_F(actornetmsginput.channel(), ipoint3dorientf);
            }
            catch(
Exception exception)
            {
                
System.out.println(exception.getMessage());
                
exception.printStackTrace();
            }
        }

        
SPAWN()
        {
        }
    }

    class 
Mirror extends ActorNet
    
{

        public 
void msgNetNewChannel(NetChannel netchannel)
        {
            if(!
Actor.isValid(actor()))
                return;
            if(
netchannel.isMirrored(this))
                return;
            try
            {
                if(
netchannel.userState == 0)
                {
                    
NetMsgSpawn netmsgspawn actor().netReplicate(netchannel);
                    if(
netmsgspawn != null)
                    {
                        
postTo(netchannelnetmsgspawn);
                        
actor().netFirstUpdate(netchannel);
                    }
                }
            }
            catch(
Exception exception)
            {
                
NetObj.printDebug(exception);
            }
        }

        public 
boolean netInput(NetMsgInput netmsginput)
            
throws IOException
        
{
            if(
netmsginput.isGuaranted())
                return 
false;
            if(
isMirrored())
            {
                
out.unLockAndSet(netmsginput0);
                
postReal(Message.currentTime(true), out);
            }
            
RocketX4_F.p.netmsginput.readFloat();
            
RocketX4_F.p.netmsginput.readFloat();
            
RocketX4_F.p.netmsginput.readFloat();
            
int i netmsginput.readShort();
            
int j netmsginput.readShort();
            
float f = -(((float)180F) / 32000F);
            
float f1 = ((float)90F) / 32000F;
            
RocketX4_F.or.set(ff10.0F);
            
pos.setAbs(RocketX4_F.pRocketX4_F.or);
            return 
true;
        }

        
NetMsgFiltered out;

        public 
Mirror(Actor actorNetChannel netchannelint i)
        {
            
super(actornetchanneli);
            
out = new NetMsgFiltered();
        }
    }

    class 
Master extends ActorNet
        
implements NetUpdate
    
{

        public 
void msgNetNewChannel(NetChannel netchannel)
        {
            if(!
Actor.isValid(actor()))
                return;
            if(
netchannel.isMirrored(this))
                return;
            try
            {
                if(
netchannel.userState == 0)
                {
                    
NetMsgSpawn netmsgspawn actor().netReplicate(netchannel);
                    if(
netmsgspawn != null)
                    {
                        
postTo(netchannelnetmsgspawn);
                        
actor().netFirstUpdate(netchannel);
                    }
                }
            }
            catch(
Exception exception)
            {
                
NetObj.printDebug(exception);
            }
        }

        public 
boolean netInput(NetMsgInput netmsginput)
            
throws IOException
        
{
            return 
false;
        }

        public 
void netUpdate()
        {
            try
            {
                
out.unLockAndClear();
                
pos.getAbs(RocketX4_F.pRocketX4_F.or);
                
out.writeFloat((float)RocketX4_F.p.x);
                
out.writeFloat((float)RocketX4_F.p.y);
                
out.writeFloat((float)RocketX4_F.p.z);
                
RocketX4_F.or.wrap();
                
int i = (int)((RocketX4_F.or.getYaw() * 32000F) / 180F);
                
int j = (int)((RocketX4_F.or.tangage() * 32000F) / 90F);
                
out.writeShort(i);
                
out.writeShort(j);
                
post(Time.current(), out);
            }
            catch(
Exception exception)
            {
                
NetObj.printDebug(exception);
            }
        }

        
NetMsgFiltered out;

        public 
Master(Actor actor)
        {
            
super(actor);
            
out = new NetMsgFiltered();
        }
    }


    public 
boolean interpolateStep()
    {
        
float f Time.tickLenFs();
        
float f1 = (float)getSpeed(null);
        
f1 += (320F f1) * 0.1F f;
        
pos.getAbs(p, or);
        
v.set(1.0D0.0D0.0D);
        or.
transform(v);
        
v.scale(f1);
        
setSpeed(v);
        
p.+= v.* (double)f;
        
p.+= v.* (double)f;
        
p.+= v.* (double)f;
        if(
isNet() && isNetMirror())
        {
            
pos.setAbs(p, or);
            return 
false;
        }
        if(
Actor.isValid(getOwner()))
        {
            if((
getOwner() != World.getPlayerAircraft() || !((RealFlightModel)fm).isRealMode()) && (fm instanceof Pilot))
            {
                
Pilot pilot = (Pilot)fm;
                if(
pilot.target != null)
                {
                    
pilot.target.Loc.get(pT);
                    
pT.sub(p);
                    or.
transformInv(pT);
                    if(
pT.> -10D)
                    {
                        
double d Aircraft.cvt(fm.Skill0.0F3F15F0.0F);
                        if(
pT.d)
                            ((
TypeX4Carrier)fm.actor).typeX4CAdjSideMinus();
                        if(
pT.< -d)
                            ((
TypeX4Carrier)fm.actor).typeX4CAdjSidePlus();
                        if(
pT.< -d)
                            ((
TypeX4Carrier)fm.actor).typeX4CAdjAttitudeMinus();
                        if(
pT.d)
                            ((
TypeX4Carrier)fm.actor).typeX4CAdjAttitudePlus();
                    }
                }
            }
            or.
increment(25F * ((TypeX4Carrier)fm.actor).typeX4CgetdeltaAzimuth(), 25F * ((TypeX4Carrier)fm.actor).typeX4CgetdeltaTangage(), 0.0F);
            or.
setYPR(or.getYaw(), or.getPitch(), 0.0F);
            ((
TypeX4Carrier)fm.actor).typeX4CResetControls();
        }
        
pos.setAbs(p, or);
        if(
Time.current() > tStart)
        {
            
hunted NearestTargets.getEnemy(9, -1p800D0);
            if(
Actor.isValid(hunted))
            {
                
float f2 = (float)p.distance(hunted.pos.getAbsPoint());
                if((
hunted instanceof Aircraft) && (f2 20F || f2 65F))
                {
                    
doExplosionAir();
                    
postDestroy();
                    
collide(false);
                    
drawing(false);
                }
                
prevd f2;
            } else
            {
                
prevd 1000F;
            }
        }
        if(!
Actor.isValid(getOwner()) || !(getOwner() instanceof Aircraft))
        {
            
doExplosionAir();
            
postDestroy();
            
collide(false);
            
drawing(false);
            return 
false;
        } else
        {
            return 
false;
        }
    }

    public 
RocketX4_F()
    {
        
fm null;
        
tStart 0L;
        
prevd 1000F;
    }

    public 
RocketX4_F(Actor actorNetChannel netchannelint iPoint3d point3dOrient orientfloat f)
    {
        
fm null;
        
tStart 0L;
        
prevd 1000F;
        
net = new Mirror(thisnetchanneli);
        
pos.setAbs(point3dorient);
        
pos.reset();
        
pos.setBase(actornulltrue);
        
doStart(-1F);
        
v.set(1.0D0.0D0.0D);
        
orient.transform(v);
        
v.scale(f);
        
setSpeed(v);
        
collide(false);
    }

    public 
void start(float fint i)
    {
        
Actor actor pos.base();
        if(
Actor.isValid(actor) && (actor instanceof Aircraft))
        {
            if(
actor.isNetMirror())
            {
                
destroy();
                return;
            }
            
net = new Master(this);
        }
        
doStart(f);
    } 
----------------------------
Ниже продолжение:

Последний раз редактировалось Vasya; 28.11.2015 в 08:21.
Vasya вне форума   Ответить с цитированием