modnkind, она может вылезти по самым разным причинам. В основном, появляется после попыток соединить что-то несовместимое, например, применить к рендеру физическое тело вместо обычной сетки SCX Владелец сайта PROMODS.RU Администратор сайта streetlegalmods.com (GOM-TEAM) Разработчик Street Legal Racing: Redline v2.3.1 Skype: skype_raxat PayPal: eversoft@bk.ru E-mail: ceo@image-code.com
Приветствую всех. Ребят, помогите пожалуйста разобраться. В общем скачивал чистую le2mwm (или сам собирал, не важно), главное что ни одного мода нет. Далее качал много разных машин, протестированных для 2.2.1MWM и для le2mwm и почти со всеми одна и та же проблема, машины появляются в кузовах, но стоит зайти в б\у гараж, то сразу ошибка !Script error
Я в принципе догадываюсь, что проблема кроется где-то в VT или CarMarket.class, но как это исправить ума не приложу. Прошу, выручайте, не могу без подержанных авто играть(
FalconRR, проблема действительно в VT. Хотя LE2MWM тоже далеко не самый лучший патч.
Сейчас я попробую объяснить как сделать рабочим не только дилера, но и Valo City.
Для начала декодируем "*.rpk" через resdecode.exe (еще есть программа "Resource Converter"). В полученном "*.rdb" ищем "VT" и меняем названия у "*VT.class" и "*models.class" на уникальные для всей папки cars. (номера 1 и 2 на скриншоте) Также в "*.rdb" запоминаем TypeID для наших кузовов (номер 3). Все, можно конвертировать "*.rdb" обратно в "*.rpk" через resconvert.exe.
Далее открываем "\scripts\src" и ищем там "*.java" кузова (если нет, то либо придется создавать самому и искать ID стоковых деталей, либо не менять название у "*models.class" в "*.rpk", но город работать точно перестанет, да и вылетов будет много). И меняем там название нашего "*models" (номер 4). Далее переименовываем "*VT.java" и "*models. java", либо берем у любой другой машины.
В файле "*models. java" меняем имена класса, конструктора и значение "make" меняем на "MAKE_CUSTOM" (номер 6 на скриншоте)
В файле "*VT.java" меняем имя класса, конструктора, путь к скриптам авто (номер 7 на скриншоте). Также меняем несуществующие TypeID на те, которые запомнили в "*.rdb".
Lyoncha, Спасибо огромное, все сделал точно по инструкции, но с последним пунктом не совсем разобрался, какой путь к скриптам нужен? Или нужно еще что-то переименовать? У меня выдает ошибку: !syntax error in file cars\racers\HONDA_Civic_Si_2013_data\scripts\Class\src\HONDA_VT.java at line 14
Сами файлы машины называются HONDA_Civic_Si_2013_data и HONDA_Civic_Si_2013.rpk Все остальное переименовал по инструкции на HONDA_models и HONDA_VT Прикладываю скрин HONDA_VT.java Подскажите, где ошибка?
edit Понял свою ошибку, надо к id в конце приписать "r", тогда игра запускается, но при заходе на б\у стоянку та же самая ошибка(
FalconRR, извини, немного неточно я написал как его прописывать. Там надо указывать название rpk файла, т.е. у тебя он будет выглядеть так: cars.racers.HONDA_Civic_Si_2013:0x00000006r
Lyoncha, Не прошло и года, но я разобрался, надо переписывать машина.java и VT, иначе никак не выходит. Спасибо за помощь и участие.
Теперь вопрос ко всем: существуют ли такие скрипты, или что-то похожее: 1 Чтобы сразу снимать всю подвеску, кажется несколько лет назад натыкался на что-то подобное. 2 Скрипт для удобной работы с двигателем. Попробую объяснить, иногда накупишь разных деталей, ну там разные поршни, шатуны и т.д и вот каждый раз вылавливать их из двигателя, чтобы поменять на друглй не очень удобно. Может есть что-то, что позволит, скажем снять коленвал и поставить другой, без разбора двигателя. 3 Очень бы хотелось скрипт гравитации, как в 2.3.0Le, мега полезная вещь, он существует в отрыве от LE? Или может подскажете, как перенести его из LE в другую сборку, если это возможно. 4 Существуют ли исходники в открытом доступе к каталогу jack v2 p4 4.4.2?
FalconRR, привет. отвечу на несколько твоих вопросов: 4) исходников наверное нету. Все сборки делаются из не полных исходников версии 2.2.1 3) Гравитация делается очень легко но нужно уметь писать код и хоть немного разбираться в том что пишешь (дам подсказку 1 нужно создать кнопку в гараже, 2 в кнопке должно быть условие если нажать на кнопку делается действие а повторное возвращает(см. в Garage.java и Config.java) и 3 без исходников для 2.3.0 LE наверное ты мало что сделаешь. 2) в игре есть зависимости по деталям по этому скрипт такой не нужен ( игра приближённая к реальности ) 1) как вариант можно посмотреть как сделано в каталоге (Catalog.java) по поводу наборов готовой подвеске и сделать обратное действие. P.S. лично моё мнение. Уважаю SLRR
FalconRR, Razeil, исходники заливались куда-то, вот только не помню куда. И это, пожалуй, сделало данную сборку лучшей среди остальных. Catalog.java я скину FalconRR в ЛС.
Что касается остальных пунктов, то это вполне реализуемо. Я так полагаю, в п.1 достаточно перебрать слоты, относящиеся к подвеске, и просто снимать с них детали, в п.2 примерно то же самое (тоже перебором слотов). В п.3 я бы использовал exe от 2.3.0LE и либо попытался написать свою кнопку, либо просто утащил нужный class оттуда же.
Lyoncha, хочу тебя расстроить исходники от 2.3.0 ЛЕ пока не доступны и утащить нужный класс не получиться слишком много изменений! самый лучший способ если делать свою сборку начать с версии 2.2.1 для понятия кода и наличие исходников! Catalog.java для FalconRR, не подойдёт 2.3.0 ЛЕ! Уважаю SLRR
Спасибо всем огромное, нашел все, что искал, советы очень помогли. Но, прошу еще помощи, переношу из Flatout Edition в джека гравитацию, перенес куски кода из garage.java и gamelogic, получилось так:
final static int CMD_TRACKSELECT = 132; final static int CMD_DRIVERELECT = 133; final static int CMD_FO_TRACK = 134; final static int CMD_GRAV_CTRL = 135;
g = m.addItem( new ResourceRef( frontend:0x0129r ), CMD_MECHANIC, "Install/Remove parts" ); g = m.addItem( new ResourceRef( frontend:0x0128r ), CMD_TUNE, "Fine tune specific parts" ); g = m.addItem( new ResourceRef( frontend:0x012Cr ), CMD_PAINT,"Body paint" ); g = m.addItem( new ResourceRef( frontend:0x0127r ), CMD_TEST, "Test engine and steering" ); g = m.addItem( new ResourceRef( MW_Mod:0x0055r ), CMD_TIME, "Advance time 1 hour" ); g = m.addItem( new ResourceRef( frontend:0x012Ar ), CMD_TIME_6H, "Advance time 6 hours" ); g = m.addItem( new ResourceRef( frontend:0x0129r ), CMD_GRAV_CTRL, "Switch gravity control" ); g = m.addItem( new ResourceRef( Osd.RID_BACK ), CMD_MAINMENU, "Go back to Main Menu" );
m.addItem( new ResourceRef( frontend:0x0129r ), CMD_MECHANIC, "Install/Remove parts" ); m.addItem( new ResourceRef( frontend:0x0128r ), CMD_TUNE, "Fine tune specific parts" ); m.addItem( new ResourceRef( frontend:0x012Cr ), CMD_PAINT,"Body paint" ); m.addItem( new ResourceRef( frontend:0x0127r ), CMD_TEST, "Test engine and steering" ); m.addItem( new ResourceRef( frontend:0x0129r ), CMD_GRAV_CTRL, "Switch gravity control" );
osdCommand( CMD_TEST ); } else if( cmd == CMD_GRAV_CTRL ) { Integrator.gravity = 1-Integrator.gravity; if ( Integrator.gravity < 0 ) { new SfxRef( GameLogic.SFX_GRAV_S_ON ).play(); // GameLogic.changeActiveSection( new MainMenu() ); map = null; map = new GroundRef( misc.dealer2:0x0001r ); Config.gravity = 0.0; GameLogic.changeActiveSection( new Garage() ); }else if ( Integrator.gravity > 0 ) { new SfxRef( GameLogic.SFX_GRAV_S_OFF ).play(); // GameLogic.changeActiveSection( new MainMenu() ); map = null; map = new GroundRef( misc.dealer2:0x0001r ); Config.gravity = 9.6; GameLogic.changeActiveSection( new Garage() ); } } else if( cmd == CMD_MENU )
final public static int SFX_ENTERGARAGE = frontend:0x007Dr; final public static int SFX_LEAVEGARAGE = frontend:0x007Cr; final public static int SFX_WRENCH = frontend:0x007Br; final public static int SFX_HORN = sound:0x0015r; final public static int SFX_DECAL = frontend:0x009Er; final public static int SFX_SPRAY = frontend:0x009Cr; final public static int SFX_DRAGDROP = frontend:0x009Dr; final public static int SFX_GRAV_S_ON = frontend:0x02D1r; final public static int SFX_GRAV_S_OFF = frontend:0x02E1r;
GTR-X-ITE, Она под первым спойлером, а именно: Integrator.gravity = 1-Integrator.gravity;
И еще маленький вопросик, после frontend идет id иконки, вроде этого frontend:0x012Cr, так вот, где узнать эти id, если я вдруг захочу добавить новую иконку, какой id вписывать? Что-то ну никак не могу понять.
FalconRR, сам по себе Integrator существует? Может ты пытаешься обратиться к тому, чего нет. А ресурсы выглядят так: "[rpk_name]:[typeid]r" т.е. frontend это имя rpk, а 0x012C typeid ресурса в этом rpk.
Post edited by Lyoncha - Вторник, 2015-01-06, 22:36:40
Lyoncha, Ну я описал все действия, какие сделал. Integrator это что? это .class или кусок кода в каком то другом .class? Насчет иконок, я в принципе догадывался, поскольку сборка авто в машина.java похожа, только там понятно где искать рпк, а вот здесь frontend.rpk я не нашел, по этому меня сбило это с толку, пойду искать дальше)))
Мдя... совсем слепой стал, он оказывается в корне, этот frontend, спасибо за наводку.
Post edited by FalconRR - Вторник, 2015-01-06, 22:55:01
FalconRR, Integrator это объект (как параменная, только для класса), а вот где он должен объявляться я не знаю, т.к. не имею исходников Flatout Live Edition. Попробуй поискать по имени (Integrator) и скопируй недостающие строки. Либо подредактируй список импортов (import .... в начале файла).
Post edited by Lyoncha - Вторник, 2015-01-06, 23:51:48
FalconRR,для начала тебе нужно добавить что-то вроде переменной в гараже.java int Gravity = -1; тогда код будет выглядеть так if( cmd == CMD_GRAV_CTRL ) { if ( Gravity == (-1) ) { new SfxRef( GameLogic.SFX_GRAV_S_ON ).play(); map = null; map = new GroundRef(misc.dealer2:0x0001r); Config.gravity = 0.0; GameLogic.changeActiveSection( GameLogic.garage ); } else { new SfxRef( GameLogic.SFX_GRAV_S_OFF ).play(); map = null; map = new GroundRef(misc.dealer2:0x0001r); Config.gravity = 9.8; GameLogic.changeActiveSection( GameLogic.garage ); }
Gravity=Gravity*(-1); } else И это правильный код у меня так работает.(только я делал без звуков).
Добавлено (2015-01-07, 15:06:39) --------------------------------------------- FalconRR, перенос кода не совсем правильно лучше всего понимать то что пишешь.
Добавлено (2015-01-07, 15:33:18) --------------------------------------------- FalconRR, и ещё для замены иконок тебе нужно открыть Frontend.rpk с помощью resdecode и resconvert в итоге у тебя получиться Frontend.rbd открываешь его блокнотом нажимаешь CTRL+F и водишь 0x012C к примеру и там будет такая строчка sourcefile frontend\textures\buttons\icons\Time8.png и вот тебе нужно (то что выделено заменить на своё). и главное собери файл обратно в Frontend.rpk. А теперь для добавления ты можешь использовать любой ид главное что бы он не повторялся (пример typeid0x0000D124 это стандартная иконка а ты добавляешь свою и новый ид будет такой typeid 0x0000Y124 ) а в java будет записываться frontend:0xY124.
Razeil, Спасибо большое, вроде получилось. Насчет переноса кода... я понимаю, что это не правильно, но пока мои познания слишком малы, чтобы что-то самому написать. С иконками я разобрался, я в принципе знал, что делать, просто тупил и не мог найти frontend.rpk, но все равно спасибо, лишней помощи не бывает.
Добавлено (2015-01-09, 10:15:51) --------------------------------------------- Ребят, опять нужна ваша помощь. В общем пытаюсь редактировать каталог от джека, хочу создать новый раздел для двигателя. В принципе почти разобрался, но есть проблема, там есть такие блоки:
//-----------------------------------------Other engines Index osd.createBG( new ResourceRef(Misc.catalog:0x0009r) );
Так вот, меня интересуют строки ( main22Group = osd.endGroup() ); и( parts22Group = osd.endGroup() ); откуда брать эти группы? Если в создаваемом разделе поставить тоже 22 или другое уже существующее значение, то все работает, раздел появляется, можно зайти в каждый подраздел, но части в нем содержатся от того двигателя, от которого взято значение. А вот если поставить новое значение, 23 например, то при попытке зайти в каталог, получается примерно следующее:
!Cannot parse "main23Group" in file "java.game.Catalog" at line 1272 !Unknown field name "main23Group" in file "java.game.Catalog" at line 1272 !Cannot parse "parts23Group" in file "java.game.Catalog" at line 1703 !Unknown field name "parts23Group" in file "java.game.Catalog" at line 1703 !Cannot parse "main23Group" in file "java.game.Catalog" at line 2346 !Unknown field name "main23Group" in file "java.game.Catalog" at line 2346 !Cannot parse "parts23Group" in file "java.game.Catalog" at line 3694 !Unknown field name "parts23Group" in file "java.game.Catalog" at line 3694
Подскажите, откуда брать эти значения или может нужно где-то новые задавать? Сам не додумаюсь. Заранее благодарен.
FalconRR, я бы посоветовал тебе почитать книги по программированию, прежде чем браться за доработку java файлов. Тогда многие вопросы ушли бы сами собой. Ошибка у тебя элементарная, просто не объявлена переменная (не создан объект). Это подсказывает даже сам "error.log".
Решается просто, находишь (Ctrl+F -> "main22Group" -> Find) строчку где объявлены все группы, дописывешь в конце новую ( "main23Group" ). То же самое проделываешь и с "parts23Group".
Всем привет и доброго времени суток. Подскажите пожалуйста вв таком вопросе?: Как найти и исправить данную ошибку и в чем она заключается? Как я понял неопознаный параметр(характер) на 9ой строке в Файле //* Но что за параметр(характер) я не совсем понял и как определять 9 строку?
!Unrecognized character: _ (95) @ line 9 in file .\cars\racers\mazda_rx3_data\scripts\src\_main_Mazda.java at line 9