AviaSkins.Forums

AviaSkins.Forums (http://forum.aviaskins.com/index.php)
-   Моделирование и конструирование (http://forum.aviaskins.com/forumdisplay.php?f=18)
-   -   Несколько вопросов по Java (http://forum.aviaskins.com/showthread.php?t=3499)

Skvorez 14.01.2015 00:36

Цитата:

Сообщение от Vasya (Сообщение 135963)
В фм - в прынципе - ничего такого трогать не надо - там всё как надо, я смотрел., правда для себя я немного подкрутил мотор - типа перевёл на 100 бензин, потому как нервы не выдерживают ждать пока Як наберёт высоту., после установки модной воды и её эффектов(по моему от Карсмастера) у меня даже на второй скорости изображения появились сильные тормоза - изображение покадровое., поэтому приходится подыматься как в реале., по сравнения с Яком-1 - Эмиль-4(7) просто истребитель(рально хорошо летит).
О деле: посмотрите пожалуйста все готовые мои джава-файлы для всех модных самолётов, Яков в частности - вы там увидите как я расписывал вооружение и, вообще, какие отличия есть в наполнении джава-файлов ранних и поздних Яков из той большой сборки что я перебрал и выложил готовые в своей ветке., эти джава-файлы приведены в соответствие с патчем 4.12.2 и хорошо без проблемм компиляться, все батники для их компиляции есть в наличии в Лаб_4.12., так же - думаю это важно - те строки что вам советывали удалить есть во всех дефолтных классах всех самолётов., я эти строки вставлял и в переделанные основные классы(джава-вайлы) и в классы переделанных кокпитов., почему? - каши маслом не испортишь, какую то нагрузку они несут для работы джавы., бывало даже что джава отказывалась компилировать нужный мне джава-файл в класс и писала - "нет статуса"., поэтому и щитаю вредным удалять эти нужные строки., кстати - в свой новосозданный джава-файл можно просто скопировать эти строки из ближайшего джава-файла, я их часто брал из джава-файла Як-11, он почти в самом низу папки айр.
Так же я сначала долго(несколько месяцев) учился переписывать(с нуля) все нужные строки вооружения, теперь чужие ошибки в новых открытых классах, если они есть, бросаються в глаза сразу.
Потом желательно научиться читать и понимать текст кодов что начинаються так: protected void hitBone - там описываеться работа двигателя и не только. Но это потом, для начала важно изучить коды открывания фонарей, работы шасси, закрылков и подобную мелочь., для вписывания кокпитов нужно не пропускать скобку, часто в модах теряют строку Property.set(class1, "LOSElevation", 1.0989F); что бы самолёт летал без проблемм за разные страны, можно удалять строки типа Property.set(class1, "PaintScheme_ru", new PaintSchemeFCSPar05());
Готовые коды вооружений можно брать из моих джава-файлов, заменяя в них название пушек или пулемётов и бозапас., почти всё вооружение выписано хорошо и нормально компилиться. Там есть ещё разные тонкости - вчера переписал вооружение для И-180, из-за перепутаных нулей и единиц оружие имело неправильное сведение и стреляло выше линии прицеливания., это потому что в основном классе И-180 не изменили чуть-чуть код. В основном джава-файле Яка (YAK.java) уже проставлено открывание фонаря на наружке и отрегулировано., старые коды из вариантов патчей 4.09 и 4.10 работали не правильно в патче 4.12.2., так же он сделан как в патче 4.12.2 - в сборке Яков что я выкладывал присутствует именно этот файл.
На последок - успехов в мододелании!!! :ok:
Что нужно - спрашивайте. :law:

Спасибо

Skvorez 14.01.2015 00:38

Спрошу и здесь: Ошибка java :484: not a ststement classnotfoundexception

Что бы это значило?

carsmaster 14.01.2015 01:17

Цитата:

Сообщение от Skvorez (Сообщение 135973)
Спрошу и здесь: Ошибка java :484: not a ststement classnotfoundexception

Что бы это значило?


Цитата с ЗАПА, авторство Лакота
Источник: http://dispersalfield.ru/main/index....pic,237.0.html


Причин бывает много, назову несколько.
Первая - если открыть нужный исходник ОТДЕЛЬНО от других файлов,
то некотрые внешние связи будут описаны неправильно.
Второе - есть там (почти везде ) "лихая" конструкция проверки существования.
Вот так открывается -



static java.lang.Class _mthclass$(java.lang.String s)
{
return java.lang.Class.forName(s);
java.lang.ClassNotFoundException classnotfoundexception;
classnotfoundexception;
throw new NoClassDefFoundError(classnotfoundexception.getMes sage());
}



А выгледеть должна так -



static java.lang.Class _mthclass$(java.lang.String s)
{
java.lang.Class class1;
try
{
class1 = java.lang.Class.forName(s);
}
catch(java.lang.ClassNotFoundException classnotfoundexception)
{
throw new NoClassDefFoundError(classnotfoundexception.getMes sage());
}
return class1;
}


Жизнь показывает, что эту фигню вообще можно удалить...

Это бывает чаще всего...

Третье - дефолтное оружие надо переписывать СТОПУДОВО в новую конструкцию.
Четвертое - строчка ПРИКРЕПЛЕНИЯ кокпита открывается неправильно , без выделеного -


com.maddox.rts.Property.set(class1, "cockpitClass", new java.lang.Class[]{CockpitAN_2.class});


Пятое - Не объявленное окружение в заголовке.
Если добавили обращения к внешним классам - потрудитесь добавить описание пакетов.
Шестое - СИНТАКСИС и ПУНКТУАЦИЯ...

deSAD 14.01.2015 12:46

Цитата:

Сообщение от Skvorez (Сообщение 135919)
Цитата:

Сообщение от deSAD (Сообщение 135897)
"клуб авск"? Я что-то пропустил? :I'm_thinking:

http://forum.aviaskins.com/forumdisplay.php?f=46

А! Так этот "клуб" открыт для всех желающих :thx: Разве что раздел "Проекты" ... ну так это исправить недолго ;)

Vasya 14.01.2015 23:34

Цитата:

Сообщение от Skvorez (Сообщение 135973)
Спрошу и здесь: Ошибка java :484: not a ststement classnotfoundexception

Что бы это значило?

Ещё раз внимательно перечитайте мой пост и мои письма - я объяснял эту проблемму., но повторюсь - в среду компиляции нельзя вкидать листочки джава-файлов открытых в других средах и даже куски текста из таких листочков в свои джава-файлы вставлять нельзя. Викиньте из среды все новые джава-файлы и оставьте только те что компиляться., потом возьмите любой джава-файл из тех что компиляться, переименуйте так как вы хотите назвать новый самолёт мода, в имени не должно быть тире типа такого: - ., только такое: _ ., вписывайте туда наполнение собирая и подбирая куски кодов из тех джава-файлов что у вас уже есть., если нужно откройте класс, даже если он более раннего патча, но тут же - в этой среде, обязательно замените этот неправильно декопилирюющийся кусок на правильный:
static java.lang.Class _mthclass$(java.lang.String s)
{
java.lang.Class class1;
try
{
class1 = java.lang.Class.forName(s);
}
catch(java.lang.ClassNotFoundException classnotfoundexception)
{
throw new NoClassDefFoundError(classnotfoundexception.getMes sage());
}
return class1;
}
Потом закройте, сохраните изменения. откройте и берите те коды что вам нужно в новый джава-файл что вы собираете., обязательно сравнивайте с похожим дефолтным самолётом или с теми моими что у вас есть, они почти все адаптированы к последнему патчу. Куски кодов команд требуют так же и прописку в начале джава-файла., вот основные из них:

import com.maddox.il2.engine.HierMesh;
import com.maddox.JGP.Point3d;
import com.maddox.JGP.Tuple3d;
import com.maddox.JGP.Vector3d;
import com.maddox.il2.ai.*;
import com.maddox.il2.ai.air.Pilot;
import com.maddox.il2.ai.air.Maneuver;
import com.maddox.il2.ai.air.Pilot;
import com.maddox.il2.ai.RangeRandom;
import com.maddox.il2.ai.Wing;
import com.maddox.il2.ai.World;
import com.maddox.il2.engine.*;
import com.maddox.il2.engine.HierMesh;
import com.maddox.il2.engine.Orientation;
import com.maddox.il2.fm.*;
import com.maddox.il2.fm.FlightModel;
import com.maddox.il2.fm.FlightModelMain;
import com.maddox.il2.fm.Turret;
import com.maddox.il2.game.Main3D;
import com.maddox.il2.game.AircraftHotKeys;
import com.maddox.il2.game.HUD;
import com.maddox.il2.objects.sounds.SndAircraft;
import com.maddox.il2.objects.sounds.Voice;
import com.maddox.il2.objects.weapons.*;
import com.maddox.il2.objects.Wreckage;
import com.maddox.il2.objects.weapons.BombSC50;
import com.maddox.util.HashMapInt;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Random;
import com.maddox.rts.Property;
import com.maddox.rts.*;
Таких ссылок на коды ещё много есть.
Если всё сделать тщательно - компиляция будет без проблемм.
Но давайте научимся компилировать простые классы, изменять в них вооружение, понимать простые коды из дефолтных классов.
Опять написал много - хочеться помочь просто. :ok:

Skvorez 15.01.2015 00:02

Цитата:

Сообщение от Vasya (Сообщение 136025)
Опять написал много - хочеться помочь просто. :ok:

Да нет напротив. Спасибо. Просто у меня как то все неровно все получается. То компеляться
***********
* AIR.INI *
***********
PA18 air.PA18 usa01 SUMMER



***********************
* PLANE_RU.PROPERTIES *
***********************
PA18 Piper PA-18 Super Cub, 1949

http://s019.radikal.ru/i604/1501/23/9c9a0cbcfbf5.jpg


то не желают. Видимо не научился еще.

Vasya 15.01.2015 00:41

Цитата:

Сообщение от Skvorez (Сообщение 136027)
Да нет напротив. Спасибо. Просто у меня как то все неровно все получается. То компеляться
***********
* AIR.INI *
***********
PA18 air.PA18 usa01 SUMMER



***********************
* PLANE_RU.PROPERTIES *
***********************
PA18 Piper PA-18 Super Cub, 1949

http://s019.radikal.ru/i604/1501/23/9c9a0cbcfbf5.jpg


то не желают. Видимо не научился еще.

Хочу такой - а где скачать?!
И на карту ссылку - пожалуйста подарите.

Skvorez 15.01.2015 01:09

Цитата:

Сообщение от Vasya (Сообщение 136031)
Хочу такой - а где скачать?!

Пока ВИП

Цитата:

И на карту ссылку - пожалуйста подарите.
Это Бессарабия - дефолт

Skvorez 25.01.2015 22:29

Класс компелиться нормально, хешируется как положено. Запись в айр ини вроде правильную делаю. На запуске вижу такую хрень:

[17:41:07] FM called 'FlightModels/JB.fmd:J_B' is being loaded from File: 'j_b'
[17:41:07] FM called 'FlightModels/JB.fmd:J_B' is being loaded from Alternative File: 'j_b'
[17:41:07] FM called 'FlightModels/JB.fmd:J_B' is being loaded from File: 'j_b'
[17:41:07] FM called 'FlightModels/JB.fmd:J_B' is being loaded from Alternative File: 'j_b'
[17:41:07] FM called 'FlightModels/L-39C.fmd:L39' is being loaded from File: 'l39'
[17:41:07] FM called 'FlightModels/L-39C.fmd:L39' is being loaded from Alternative File: 'l39'
[17:41:07] Main begin: PlMisAir: class 'air.B_45A' not found
[17:41:07] java.lang.RuntimeException: PlMisAir: class 'air.B_45A' not found
[17:41:07] at com.maddox.il2.gui.GUIQuick.fillArrayPlanes(GUIQui ck.java:1527)
[17:41:07] at com.maddox.il2.gui.GUIQuick.<init>(GUIQuick.java:2 006)
[17:41:07] at com.maddox.il2.gui.GUI.create(GUI.java:160)
[17:41:07] at com.maddox.il2.game.Main3D.beginApp(Main3D.java:18 85)
[17:41:07] at com.maddox.il2.game.Main3D.beginApp(Main3D.java:15 79)
[17:41:07] at com.maddox.il2.game.MainWin3D.beginApp(MainWin3D.j ava:212)
[17:41:07] at com.maddox.il2.game.Main.exec(Main.java:432)
[17:41:07] at com.maddox.il2.game.GameWin3D.main(GameWin3D.java: 235)
[25.01.2015 17:41:07] -------------- END log session -------------


Что это может быть?

The Radge 26.01.2015 12:13

Может то быть, например, отсутствие класса B_45,
если в каком-то другом классе от обозначен как...

public class <name> extends B_45

deSAD 26.01.2015 12:21

Цитата:

Сообщение от Skvorez (Сообщение 136656)
Класс компелиться нормально, хешируется как положено.

Стесняюсь спросить ... а называется он как? :rolleyes:
Цитата:

Сообщение от Skvorez (Сообщение 136656)
Запись в айр ини вроде правильную делаю.

И как она "вроде" выглядит?

Vasya 26.01.2015 17:31

Джава-файл в студию., эта проблемма решаеться не сложно, такое проходил.

Skvorez 26.01.2015 20:54

Вложений: 1
Цитата:

Сообщение от deSAD (Сообщение 136692)
Стесняюсь спросить ... а называется он как? :rolleyes:
И как она "вроде" выглядит?

B-45A air.B_45A 1 usa01 summer

Цитата:

Сообщение от Vasya (Сообщение 136708)
Джава-файл в студию., эта проблемма решаеться не сложно, такое проходил.

Полностью на скрепке

// Decompiled by DJ v3.10.10.93 Copyright 2007 Atanas Neshkov Date: 25.01.2015 21:12:11
// Home Page: http://members.fortunecity.com/neshkov/dj.html http://www.neshkov.com/dj.html - Check often for new version!
// Decompiler options: packimports(3)
// Source File Name: B_45A.java

package com.maddox.il2.objects.air;

import com.maddox.JGP.Tuple3d;
import com.maddox.il2.ai.BulletEmitter;
import com.maddox.il2.ai.World;
import com.maddox.il2.ai.air.Pilot;
import com.maddox.il2.engine.*;
import com.maddox.il2.fm.*;
import com.maddox.il2.game.AircraftHotKeys;
import com.maddox.il2.game.HUD;
import com.maddox.il2.objects.sounds.SndAircraft;
import com.maddox.il2.objects.weapons.Bomb;
import com.maddox.il2.objects.weapons.BombJATO;
import com.maddox.rts.*;
import com.maddox.util.HashMapInt;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Random;

// Referenced classes of package com.maddox.il2.objects.air:
// B_45X, PaintSchemeBMPar02, TypeBomber, AircraftLH,
// Aircraft, NetAircraft

public class B_45A extends B_45X
implements TypeBomber
{

public B_45A()
{
bHasBoosters = true;
boosterFireOutTime = -1L;
bpos = 1.0F;
bcurpos = 1.0F;
btme = -1L;
bSightAutomation = false;
bSightBombDump = false;
fSightCurDistance = 0.0F;
fSightCurForwardAngle = 0.0F;
fSightCurSideslip = 0.0F;
fSightCurAltitude = 3000F;
fSightCurSpeed = 200F;
fSightCurReadyness = 0.0F;
}

public void destroy()
{
doCutBoosters();
super.destroy();
}

public void doFireBoosters()
{
Eff3DActor.New(this, findHook("_Booster1"), null, 1.0F, "3DO/Effects/Rocket/RocketSmokeWhite.eff", 30F);
Eff3DActor.New(this, findHook("_Booster2"), null, 1.0F, "3DO/Effects/Rocket/RocketSmokeWhite.eff", 30F);
}

public void doCutBoosters()
{
for(int i = 0; i < 2; i++)
if(booster[i] != null)
{
booster[i].start();
booster[i] = null;
}

}

public void onAircraftLoaded()
{
super.onAircraftLoaded();
for(int i = 0; i < 2; i++)
try
{
booster[i] = new BombJATO();
((Actor) (booster[i])).pos.setBase(this, findHook("_BoosterH" + (i + 1)), false);
((Actor) (booster[i])).pos.resetAsBase();
booster[i].drawing(true);
}
catch(Exception exception)
{
debugprintln("Structure corrupt - can't hang Starthilferakete..");
}

}


static
{
Class class1 = com.maddox.il2.objects.air.B_45A.class;
new NetAircraft.SPAWN(class1);
Property.set(class1, "iconFar_shortClassName", "B-45A");
Property.set(class1, "meshName", "3DO/Plane/B-45A(Multi1)/hier.him");
Property.set(class1, "PaintScheme_us", new PaintSchemeBMPar02());
Property.set(class1, "yearService", 1943F);
Property.set(class1, "yearExpired", 1956.6F);
Property.set(class1, "FlightModel", "FlightModels/JB.fmd:J_B");
Property.set(class1, "cockpitClass", new Class[] {
com.maddox.il2.objects.air.CockpitJetBomber.class, com.maddox.il2.objects.air.CockpitJetBomber_Bombar dier.class
});

Skvorez 27.01.2015 20:18

Ну и? Ни кто не знает ответа?

Asura 28.01.2015 09:41

Цитата:

Property.set(class1, "cockpitClass", new Class[] {
com.maddox.il2.objects.air.CockpitJetBomber.class, com.maddox.il2.objects.air.CockpitJetBomber_Bombar dier.class
});
В строке CockpitJetBomber_Bombar dier закрался пробел - это тут опечатка или в коде так же?

Попробуй так:
Property.set(class1, "cockpitClass", new java.lang.Class[] {
com.maddox.il2.objects.air.CockpitJetBomber.class, com.maddox.il2.objects.air.CockpitJetBomber_Bombardier.class
});

Skvorez 28.01.2015 11:44

Цитата:

Сообщение от Asura (Сообщение 136793)
В строке CockpitJetBomber_Bombar dier закрался пробел - это тут опечатка или в коде так же?

Попробуй так:
Property.set(class1, "cockpitClass", new java.lang.Class[] {
com.maddox.il2.objects.air.CockpitJetBomber.class, com.maddox.il2.objects.air.CockpitJetBomber_Bombardier.class
});

Спасибо

С уважением

Vasya 30.01.2015 20:08

У меня всё получилось - всё грузится, краша нет. Нужно - как я уже неоднократно писал - сделать для нового самолёта все свои классы, которыми он пользуется и очень тщательно проверить на совместимость. Так же в Иле должны присутствовать все классы вооружения, в частности - бомбы Джатко, которые упоминаються в коде класса В-45А.
--------------------------------------
Дополнение: папку с модом нужно именовать только аглицкими бук(в)ами. :umora:
--------------------------------------
Такие мысли!

Skvorez 31.01.2015 20:22

Ракеты цель захватывать отказываются. Почему?

tarakan67 31.01.2015 20:28

Активацию нажимаешь(В)?

Skvorez 31.01.2015 20:35

Цитата:

Сообщение от tarakan67 (Сообщение 136945)
Активацию нажимаешь(В)?

нет. А это нужно кноппель назначить?


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

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