Special Aircraft Service

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1] 2 3 4 ... 10
 1 
 on: Today at 08:39:49 PM 
Started by WxTech - Last post by WxTech
Aircraft.msgCollision() controls what happens when a plane contacts objects and suffers damage. For wreckage { if(actor instanceof Wreckage) } it looks like that stuff is simply ignored. Could be a potentially fruitful area to add more things to worry about.  ;) A check could be done based on the wreckage chunk size, a threshold below which is ignored. Meaning only the bigger bits can cause damage. And of course a user control could be supplied (if not a difficulty option for a more sophisticated approach, eventually?) to enable/disable this.


Code: [Select]
public void msgCollision(Actor actor, String s, String s1)  //called by AircraftState.update(), for small chance of exploding engine instead being total destruction
{
if(isNet() && isNetMirror())
return;
if(actor instanceof ActorCrater)
{
if(!s.startsWith("Gear"))
return;
if(netUser() != null && netUser() == ((ActorCrater)actor).netOwner)
return;
}
if(this == World.getPlayerAircraft())
TimeSkip.airAction(1);
FM.dryFriction = 1.0F;
if(s.startsWith("Pilot"))
if(this == World.getPlayerAircraft() && !World.cur().diffCur.Vulnerability)
{
return;
} else
{
int i = s.charAt(5) - 49;
killPilot(this, i);
return;
}
if(s.startsWith("Head"))
if(this == World.getPlayerAircraft() && !World.cur().diffCur.Vulnerability)
{
return;
} else
{
int j = s.charAt(4) - 49;
killPilot(this, j);
return;
}
if(actor instanceof Wreckage)
{
if(s.startsWith("CF_"))
return;
if(actor.getOwner() == this)
return;
if(netUser() != null && netUser() == ((Wreckage)actor).netOwner)
{
return;
} else
{
actor.collide(false);
nextDMGLevels(3, 0, s, this);
return;
}
}
if(actor instanceof Paratrooper)
{
FM.getSpeed(v1);
actor.getSpeed(Vd);
Vd.x -= v1.x;
Vd.y -= v1.y;
Vd.z -= v1.z;
if(Vd.length() > 30D)
{
setDamager(actor, 4);
nextDMGLevels(4, 0, s, actor);
}
return;
}
if((actor instanceof RocketryRocket) && s1.startsWith("Wing"))
{
RocketryRocket rocketryrocket = (RocketryRocket)actor;
Loc loc = new Loc();
Point3d point3d = new Point3d();
Vector3d vector3d = new Vector3d();
Vector3d vector3d1 = new Vector3d();
pos.getAbs(loc);
point3d.set(actor.pos.getAbsPoint());
loc.transformInv(point3d);
boolean flag = point3d.y > 0.0D;
vector3d.set(0.0D, flag ? hierMesh().collisionR() : -hierMesh().collisionR(), 0.0D);
loc.transform(vector3d);
point3d.set(FM.Loc);
point3d.add(vector3d);
actor.pos.getAbs(loc);
loc.transformInv(point3d);
vector3d.set(FM.Vwld);
actor.pos.speed(vector3d1);
vector3d.sub(vector3d1);
loc.transformInv(vector3d);
vector3d.z += (flag ? 1.0D : -1D) * FM.getW().x * (double)hierMesh().collisionR();
if(vector3d.x * vector3d.x + vector3d.y * vector3d.y < 4D)
{
if(point3d.y * vector3d.z > 0.0D)
rocketryrocket.sendRocketStateChange('a', this);
else
rocketryrocket.sendRocketStateChange('b', this);
return;
}
rocketryrocket.sendRocketStateChange(flag ? 'l' : 'r', this);
}
if(FM.turnOffCollisions && (s.startsWith("Wing") || s.startsWith("Arone") || s.startsWith("Keel") || s.startsWith("Rudder") || s.startsWith("Stab") || s.startsWith("Vator") || s.startsWith("Nose") || s.startsWith("Tail")))
return;
if((actor instanceof Aircraft) && Actor.isValid(actor) && getArmy() == actor.getArmy())
{
double d = Engine.cur.land.HQ(FM.Loc.x, FM.Loc.y);
Aircraft aircraft = (Aircraft)actor;
if(FM.Loc.z - (double)(2.0F * FM.Gears.H) < d && aircraft.FM.Loc.z - (double)(2.0F * aircraft.FM.Gears.H) < d)
setDamagerExclude(actor);
}
if(s != null && hierMesh().chunkFindCheck(s) != -1)
{
hierMesh().setCurChunk(s);
hierMesh().getChunkLocObj(tmpLoc1);
Vd.set(FM.Vwld);
FM.Or.transformInv(Vd);
Vd.normalize();
Vd.negate();
Vd.scale(2000F / FM.M.mass);
Vd.cross(tmpLoc1.getPoint(), Vd);
FM.getW().x += (float)Vd.x;
FM.getW().y += (float)Vd.y;
FM.getW().z += (float)Vd.z;
}
setDamager(actor, 4);
nextDMGLevels(4, 0, s, actor);
}

 2 
 on: Today at 07:57:38 PM 
Started by Zflyer48 - Last post by UberDemon
Thank you so much.  Sheer awesomeness.

 3 
 on: Today at 07:12:58 PM 
Started by WxTech - Last post by WxTech
The search results for "kamikaze" in all B.A.T. 4.0 classes. Maneuver.class seems to provide the best 'universal' determinant. Is there any other mission related action that would be 'kamikaze'-like?


Code: [Select]
Search "kamikaze" (24 hits in 8 files)
  C:\IL2 Stuff\SELF_CONTAINED_DECOMP_COMP_BAT_4.0\Java_BAT_WW2\com\maddox\il2\ai\air\AirGroup.java (1 hit)
Line 993:             maneuver.kamikaze = true;
  C:\IL2 Stuff\SELF_CONTAINED_DECOMP_COMP_BAT_4.0\Java_BAT_WW2\com\maddox\il2\ai\air\Maneuver.java (6 hits)
Line 232:         kamikaze = false;
Line 4937:             groundAttackKamikaze(target_ground, f);
Line 5059:                 groundAttackKamikaze(target_ground, f);
Line 5555:     private void groundAttackKamikaze(Actor actor, float f)
Line 10396:     public boolean kamikaze;
Line 10535:     public static final int GATTACK_KAMIKAZE = 46;
  C:\IL2 Stuff\SELF_CONTAINED_DECOMP_COMP_BAT_4.0\Java_BAT_WW2\com\maddox\il2\ai\air\ManString.java (1 hit)
Line 49:         "RANVERSMAN   ", "CUBAN        ", "CUBAN_INVERT ", "GATTACK      ", "PLT_OFFLINE  ", "HANG_ON      ", "KAMIKAZE     ", "ATTACK_B_HAR ", "DELAY        ", "DITCH        ",
  C:\IL2 Stuff\SELF_CONTAINED_DECOMP_COMP_BAT_4.0\Java_BAT_WW2\com\maddox\il2\objects\air\FI_103_V1.java (1 hit)
Line 111:         ((Pilot)FM).kamikaze = true;
  C:\IL2 Stuff\SELF_CONTAINED_DECOMP_COMP_BAT_4.0\Java_BAT_WW2\com\maddox\il2\objects\air\KI_48_II_KAMIKAZE.java (8 hits)
Line 4: // Source File Name:   KI_48_II_KAMIKAZE.java
Line 23: public class KI_48_II_KAMIKAZE extends KI_48
Line 27:     public KI_48_II_KAMIKAZE()
Line 33:         return "KAMIKAZE_";
Line 101:         Class class1 = com.maddox.il2.objects.air.KI_48_II_KAMIKAZE.class;
Line 103:         Property.set(class1, "iconFar_shortClassName", "Kamikaze");
Line 104:         Property.set(class1, "meshName", "3do/plane/Ki-48-II(Multi1)/KAMIKAZE_hier.him");
Line 106:         Property.set(class1, "meshName_ja", "3do/plane/Ki-48-II(ja)/KAMIKAZE_hier.him");
  C:\IL2 Stuff\SELF_CONTAINED_DECOMP_COMP_BAT_4.0\Java_BAT_WW2\com\maddox\il2\objects\sounds\Voice.java (1 hit)
Line 138:             if(((Maneuver)aircraft.FM).kamikaze)
  C:\IL2 Stuff\SELF_CONTAINED_DECOMP_COMP_BAT_4.0\Java_BAT_WW2\com\maddox\il2\objects\vehicles\planes\KI_48_II_KAMIKAZE.java (3 hits)
Line 4: // Source File Name:   KI_48_II_KAMIKAZE.java
Line 9: public class KI_48_II_KAMIKAZE
Line 12:     public KI_48_II_KAMIKAZE()
  C:\IL2 Stuff\SELF_CONTAINED_DECOMP_COMP_BAT_4.0\Java_BAT_WW2\com\maddox\il2\objects\vehicles\planes\Plane.java (3 hits)
Line 7015:     public static class KI_48_II_KAMIKAZE extends PlaneGeneric
Line 7018:         public KI_48_II_KAMIKAZE()
Line 13862:         new PlaneGeneric.SPAWN(com.maddox.il2.objects.vehicles.planes.Plane$KI_48_II_KAMIKAZE.class);

 4 
 on: Today at 06:11:27 PM 
Started by SAS~Storebror - Last post by Matz
Hi Mike,
This intrigued me and I make no claim to technical expertise.

I have the words of of one of, if not the most experienced test pilots ever - Eric "Winkle" Brown (Wings On My Sleeve).

He tested a captured Me163B in the hectic days soon after the German surrender. I have summarised his record of the flight details as
 - take off at 280kmh, (u/c jettison speed not noted), then accelerating to 725kmh to then climb at 45 degrees to 32,000ft in 2.5 minutes.

He then still had fuel left as he thottled back "to prevent compressability issues". 

Given that he planned his flights based on the actual Me163B Pilot Notes, maybe this is closer to what the aircraft was actually operated at rather than the "possible" climb angle of 70 degress?

 5 
 on: Today at 03:45:00 PM 
Started by stanislao - Last post by Hubberranz
What a bunch of gorgeous skins ! Glad you could orvecome the difficulties you had !   8)

 6 
 on: Today at 03:43:28 PM 
Started by Whiskey_Sierra_972 - Last post by Knochenlutscher
The problem goes back to Stock and Modded content,
it's not a BAT problem per se.
Second thing, it stays pretty darn low on any Fixes priority list honestly.
It's very cosmetic, one Fix is reknown for Stock 1946 called adapted Generic Skin usage.
I don't mean a pure Blank. This relagates the Problem to any User who cares about it.

 7 
 on: Today at 03:24:30 PM 
Started by SAS~Storebror - Last post by Seb
Hi Mike
Maybe this film will add something to the discussion.
Regards
Seb

[video][/video]

 8 
 on: Today at 03:05:38 PM 
Started by WxTech - Last post by WxTech
Collisions with objects, including while taxying at low speed, are handled elsewhere.

 9 
 on: Today at 02:29:06 PM 
Started by SAS~Storebror - Last post by Kopfdorfer
Hi Storebror ,
Sorry no technical expertise to be expected of me , however one detail in the insert you used as the basis of your
model caught my eye as odd.
It struck me as strange that while accelerating to climb velocity the aircraft would keep attached the take-off dolly
and only jettison it AFTER achieving the climb velocity. For an aircraft where fuel was so precious it would seem
to me to be more sensible to jettison the dolly once safe operating speed was achieved , then jettison the dolly
for the acceleration to climb speed.
This would at least save some fuel for the rest of the operation.
There are technically approved Pilot's Guide Procedural manuals for most Allied aircraft that are available for download .
I presume there are the same sort of thing for LW aircraft . Is this so ? Are you using one for reference ?
I just had a quick look online (anglophile search , though ).
The book that comes up is the following :
                                           The Me 163 Komet: A Detailed Guide to the Luftwaffe's Rocket-Powered Interceptor
                                           (Airframe Album #10). Franks, Richard. Published by Valiant Wings
Apologies if this is way back in your search process and you are well past this point.

Kopfdorfer

 10 
 on: Today at 02:15:06 PM 
Started by WxTech - Last post by Kopfdorfer
Does this encompass the effect of a non-ordnance carrying aircraft when colliding with a ship (other body?)?

Pages: [1] 2 3 4 ... 10

Page created in 0.063 seconds with 19 queries.