Заводные запчасти
|
|
TsP
|
Дата: Воскресенье, 26.10.2014, 10:39 | Сообщение # 1
|
Никакой
Группа: Проверенный
Сообщений: 9
Награды: 0
Репутация: 60
Статус: Гдето лазит
|
Хелло! У меня проблема: не знаю как сделать так, чтобы без определенной детали двигателя машина на заводилась. Например, без генератора выскочит окошко "the alternator is missing". Есть исходники нужного двигателя, и в джаве генератора (двигло_alternator.java) я нашел такие строчки: public String isDynoable() { Part p;
p = partOnSlot( 42 ); if (!p) return "the alternator is missing the drive belt.";
return super.isDynoable(); } Правда, здесь написано про ремень от генератора. Ну да не суть (или суть?). В других исходниках частей, без которых тачка не должна завестись, таких строчек нет. Собсно, вопросы: 1. Что надо прописать в джавах других частей движка,чтобы без них он не завелся? 2. 42 - это слот генератора? 3. p - что это? 4. Почему в других джавах нет такого? 5. Как запихнуть буковки под спойлер? Скорее всего, проблема в моих незнаниях джавы. Плак плак, тогда.
З.Ы. Слышал, что Джек выложил исходники своей сборки. Поэтому: 6. Куда Джек выложил исходники свой сборки?
Подпись отключена!!!
Сообщение отредактировал TsP - Воскресенье, 26.10.2014, 11:09
|
|
|
|
RC95612
|
Дата: Понедельник, 27.10.2014, 13:04 | Сообщение # 2
|
ModZona.Ru
Группа: Проверенный
Сообщений: 620
Награды: 13
Репутация: 114
Статус: Гдето лазит
|
TsP, 1. Подозреваю, что тоже самое, заменить только номер слота и текстовую строку. 2. Да. 3. p - это переменная типа boolean, которая может содержать значения true или false. 4. Потому что разработчики не посчитали это нужным. Что имеем в итоге: для того, чтобы двигатель не заводился без определённой детали, в яву этой детали нужно добавить: Код public String isDynoable() { Part p;
p = partOnSlot( <номер слота детали> ); //здесь условие, при соблюдении которого двигатель заведётся if (!p) //ветвь кода, которая выполняется при отсутствии детали return "<текст при попытке завести>"; //вывод будет таким: Engine cannot start because <текст>
return super.isDynoable(); //эта строка даёт разрешение завести двигатель, если условия соблюдены }
Подпись отключена!!!
|
|
|
|
TsP
|
Дата: Понедельник, 27.10.2014, 15:10 | Сообщение # 3
|
Никакой
Группа: Проверенный
Сообщений: 9
Награды: 0
Репутация: 60
Статус: Гдето лазит
|
RC95612, Круто и познавательно. В джаве блока нашлось это: Код crankshaft_slot_ID = 33; crankshaft_bearing_slot_ID = 41; cylinder_head_slot_ID = 19; transmission_slot_ID = 35; oil_pan_slot_ID = 31; У меня такое ощущение, что здесь прописаны ид не всех частей, без которых движок не заведется. К тому же, есть еще одна непонятка: в том же файле есть это: Код public String isDynoable() { Part p;
p = partOnSlot( 32 ); if (!p) return "the engine is missing the alternator.";
return super.isDynoable(); } Получается, 32 - генератор. А в файле, собсно, генератора, как я уже писал, это: Код public String isDynoable() { Part p;
p = partOnSlot( 42 ); if (!p) return "the alternator is missing the drive belt.";
return super.isDynoable(); } Значит, если двигатель есть, то проверяется наличие генератора. Если и он есть, то он проверяет, есть ли к нему ремень. Вопрос: 1. Где объявляются остальные ид? В ките двигателя нашлось вот это: Код inv.insertItem( parts.engines.Toyota_4A_GE:0x0000A001r ); // Shimutshibu_72er_crankshaft inv.insertItem( parts.engines.Toyota_4A_GE:0x0000A002r ); // Shimutshibu_149er_connecting_rods inv.insertItem( parts.engines.Toyota_4A_GE:0x0000A003r ); // Shimutshibu_94er_LC_pistons inv.insertItem( parts.engines.Toyota_4A_GE:0x0000A005r ); // Shimutshibu_RC_DDSB8C_cylinder_head inv.insertItem( parts.engines.Toyota_4A_GE:0x0000A007r ); // Shimutshibu_WRC_cylinder_head_cover Вопрос: 2. Почему в комментариях написано Shimutshibu, а в аргументе и в игре - Toyota_4A_GE? А в его конфиге это: Код slot 0.000 0.000 0.000 0.000 0.000 0.000 1 ; engine_block_OUT
slot 0.000 0.000 0.000 0.000 0.000 0.000 33 ; engine_block_crankshaft_IN slotdmgmode 0x00000002
slot 0.000 0.000 0.000 0.000 0.000 0.000 19 ; engine_block_cylinder_head_IN slotdmgmode 0x0000000E
slot 0.000 0.000 0.000 0.000 0.000 0.000 35 ; engine_block_transmission_IN slotdmgmode 0x0000000A
slot 0.000 0.000 0.000 0.000 0.000 0.000 32 ; engine_block_alternator_IN slotdmgmode 0x00000002
slot 0.00 0.000 0.000 0.000 0.000 0.000 31 ; engine_block_oil_pan_IN slotdmgmode 0x00000002
slot 0.000 0.000 0.000 0.000 0.000 0.000 41 ; engine_block_crankshaft_bearing_IN slotdmgmode 0x00000002
slot 0.000 0.000 0.000 0.000 0.000 0.000 648 ; radiator slot 0.000 0.000 0.000 0.000 0.000 0.000 649 ; oilfiltr or sandwich slot 0.000 0.000 0.000 0.000 0.000 0.000 650 ; ecu Но все же это не все ид. Вопросы: 3. Что такое slotdmgmode? 4. Почему для блока написано OUT (выход), для некоторых - IN (вход), а для последних трех вообще ничего не написано? Возможно, я нашел решение 1-го вопроса. Почти во всех конфигах есть такие строчки: Код slot 0.000 0.000 0.000 0.000 0.000 0.000 <цифра> ; <название_части>_OUT В остальных - что-то похожее на отрывок из конфига движка, который я привел выше. Но если цифра - это и есть слот, то тогда непонятно назначение тех же самых цифорок в конфиге двигателя и в его джаве. Я сильно не уверен в определениях, которые использовал, но без них никак. Вопрос: 5. Можно ли использовать ид из конфигов в шаблоне, который ты вывел?
Подпись отключена!!!
|
|
|
|
RC95612
|
Дата: Вторник, 28.10.2014, 19:05 | Сообщение # 4
|
ModZona.Ru
Группа: Проверенный
Сообщений: 620
Награды: 13
Репутация: 114
Статус: Гдето лазит
|
Цитата TsP ( ) Получается, 32 - генератор Вовсе не факт, это может быть любая деталь, для отсутствия которой автор поленился изменить текст ошибки. Номера слотов лучше смотреть в .cfg, например: Код attach 0x00000041 [color=green]33[/color]; Baiern_Kraftwerk_2_5_block->engine_block_crankshaft_IN Зелёным выделен номер слота. Цитата TsP ( ) 2. Почему в комментариях написано Shimutshibu, а в аргументе и в игре - Toyota_4A_GE? Потому что скрипты двигателя не написаны с нуля, а переделаны из скриптов Shimutshibu. Цитата TsP ( ) 4. Почему для блока написано OUT (выход), для некоторых - IN (вход), а для последних трех вообще ничего не написано? Это необязательные пояснения, означают они примерно вот что: OUT - это место на более приоритетной (той, которую ставить надо в первую очередь) детали, куда крепится текущая, IN - место на текущей детали, куда крепится менее приоритетная. Последние три строчки добавлены автором мода, поэтому не содержат пояснений.
Подпись отключена!!!
|
|
|
|
TsP
|
Дата: Среда, 29.10.2014, 08:03 | Сообщение # 5
|
Никакой
Группа: Проверенный
Сообщений: 9
Награды: 0
Репутация: 60
Статус: Гдето лазит
|
Теперь вроде все, разобрался
Подпись отключена!!!
|
|
|
|