Показать сообщение отдельно
Старый 07.11.2017, 00:28   #262
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Доброго времени суток. Пытаюсь создать прожектор для подвижных объектов в Ил-е. Если с 3д моделькой чуть разобрался то с классами забуксовал. С моей колокольни, прожектор должен прописываться как орудие. Да он и по строению похож на пушку: основа-Body часть наводящаяся по горизонтали Head, по вертикали-Gun. Но если у орудия есть свой хук _ShellStart, то тут его нет. Зато есть два меша в районе линзы прожектора: Ray_ON и Ray_OFF. Ray_OFF- визуализируется у прожектора в неактивном состоянии, Ray_ON- когда прожектор горит. Есть и два хука coneNear и coneFar, приаттаченных к меш-у Ray_ON.
Есть класс дефолтного прожектора ПВО

/* Searchlight - Decompiled by JODE
* Visit http://jode.sourceforge.net/
*/
package com.maddox.il2.objects.vehicles.lights;
import com.maddox.il2.ai.ground.TgtFlak;
import com.maddox.il2.objects.vehicles.artillery.AAA;

public abstract class Searchlight
{
/*synthetic*/ static Class class$com$maddox$il2$objects$vehicles$lights$Searc hlight$SL_ManualBlue;

public static class SL_ManualBlue extends SearchlightGeneric
implements TgtFlak, AAA
{
}

/*synthetic*/ static Class class$(String string) {
Class var_class;
try {
var_class = Class.forName(string);
} catch (ClassNotFoundException classnotfoundexception) {
throw new NoClassDefFoundError(classnotfoundexception
.getMessage());
}
return var_class;
}

static {
new SearchlightGeneric.SPAWN
((class$com$maddox$il2$objects$vehicles$lights$Sea rchlight$SL_ManualBlue
== null)
? (class$com$maddox$il2$objects$vehicles$lights$Sear chlight$SL_ManualBlue
= (class$
("com.maddox.il2.objects.vehicles.lights.Searchlig ht$SL_ManualBlue")))
: class$com$maddox$il2$objects$vehicles$lights$Searc hlight$SL_ManualBlue);
}
}



И подопытный класс зенитки 21-к На основе этого класса пытаюсь создать класс для прожектора.

/* Cannon21K - Decompiled by JODE
* Visit http://jode.sourceforge.net/
*/
package com.maddox.il2.objects.weapons;
import com.maddox.JGP.Vector3d;
import com.maddox.il2.engine.BulletProperties;
import com.maddox.il2.engine.GunGeneric;
import com.maddox.il2.engine.GunProperties;
import com.maddox.il2.engine.Loc;

public class Cannon21K extends CannonAntiAirGeneric
{
protected float Specify(GunProperties gunproperties) {
gunproperties.aimMaxDist = 9200.0F;
gunproperties.sound = "weapon.zenitka_37c";
BulletProperties bulletproperties = gunproperties.bullet[0];
bulletproperties.timeLife = 10.5F;
bulletproperties.addExplTime = 1.5F;
bulletproperties.power = 0.052F;
bulletproperties.powerType = 1;
bulletproperties.powerRadius = 60.0F;
bulletproperties.kalibr = 0.045F;
bulletproperties.massa = 1.065F;
bulletproperties.speed = 880.0F;
bulletproperties.traceMesh = "3do/effects/tracers/20mmBlue/mono.sim";
bulletproperties.traceTrail = null;
bulletproperties.traceColor = -755040256;
bulletproperties = gunproperties.bullet[1];
bulletproperties.power = 0.074F;
bulletproperties.powerType = 0;
bulletproperties.powerRadius = 80.0F;
bulletproperties.kalibr = 0.045F;
bulletproperties.massa = 1.41F;
bulletproperties.speed = 760.0F;
bulletproperties.traceMesh = "3do/effects/tracers/20mmOrange/mono.sim";
bulletproperties.traceTrail = null;
bulletproperties.traceColor = -770532113;
return 46.0F;
}

public Bullet createNextBullet(Vector3d vector3d, int i,
GunGeneric gungeneric, Loc loc,
Vector3d vector3d_0_, long l) {
return new BulletAntiAirBigUSSR(vector3d, i, gungeneric, loc,
vector3d_0_, l, explodeAtHeight);
}
}

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

Последний раз редактировалось tvister; 07.11.2017 в 02:42.
tvister вне форума   Ответить с цитированием