Добавление новой машины в игру (полное клонирование)

Форум Административный раздел Системный раздел для главной FAQ
Сообщений: 7 • Страница 1 из 1 1
Аватара
В данной статье я подробно распишу как добавить новую машину в игру на основе существующей путём "полного клонирования".

Такой метод нужен в двух ситуациях.
Первая, когда требуется перенести в Меридиан машину из Аркады.
И вторая, когда требуется ввести в любую игру полностью новую машину (когда есть изготовленные в Майе модели).

Сам метод клонирования работает по принципу четырёх шагов:
1. Находим нужное.
2. Копируем.
3. Здесь-же вставляем.
4. Переименовываем.
----------------------------------------------------------------------------------------------------------------------------------------------
Для начала, первое (маленькое) отступление.
-----------------------------------------------------------------------------------------------------------------------------------------------
Напомню три главных правила при редактировании хемулей машин (и оружия тоже):
1. Соблюдать регистр букв.
(Если, к примеру, имя детали машины (кабина, кузов, подвеска и т.д.) в настройках - BigfootCab_01, то и в продаже (да и в остальных файлах)
оно должно быть именно BigfootCab_01 а не bigfootcab_01.)
2. Пробелы в именах недопустимы.
(Если имя детали - BigfootCab_01, то оно и должно быть BigfootCab_01 а не BigfootCab 01.)
3. Внимательность и точность.
(Достаточно в скрипте пропустить, или добавить лишний слеш/точку/стрелку (и т.д.) и игра вылетит .)
Так-же не стоит забывать предварительно делать копию (оригинал) изменяемого файла.
---------------------------------------------------------------------------------------------------------------------------------------------------
Теперь второе (большое и намного более важное) отступление.
---------------------------------------------------------------------------------------------------------------------------------------------------
Всё, что я опишу ниже (добавление машины в игру) без минимального базовых знаний работы движка игры будет не очень полезно.
Точнее, если всё сделать "строчка в строчку" то работать будет, но при минимальной ошибке будет беда.
Для примера - обезьяну можно научить получать банан при нажатии жёлтой кнопки, а апельсин при нажатии оранжевой
(обезьяны, в отличие от собак, цвета различают).
Но при этом обезьяна никогда не поймёт взаимосвязь между кнопкой (и её цветом) и самим фруктом (как и почему он к ней попадает).
Чтоб этого избежать, очень кратко (насколько смогу) опишу взаимосвязи (как я их понимаю (точнее проследил)), так как и близко не претендую на профи в Махине.
Естественно, опишу то, что касается исключительно машин.

Итак, движёк сначала "читает" файлы карты.
Находит прописанную машину (имя) и начинает проверку наличия таковой (по имени) в data\gamedata\gameobjects\vehicles.xml
Так-же, параллельно, проверяет data\gamedata\gameobjects\vehicleparts.xml на наличие детапей (кабин, кузовов, колёс и т.д.)
Если не находит - игра вылетает.
Если находит, начинает проверку прописанных в настройках ресурсов в файле data\gamedata\resourcetypes.xml.
Не находит - вылет.
Находит, начинает проверку прописанных в настройках моделей.
Для этого проверяет на наличие моделей файл data\models\animmodels.xml
Не находит - вылет.
Находит, проверяет "прописку" их в data\models\servers.xml
Не находит - вылет.
Находит - проверяет "прописку" модели в servers.xml загружаемой на данный момент карты (data\maps\<имя карты>\servers.xml)
Не находит - загружает игру, но вместо непрописанных моделей (каждой) будет выведена первая прописанная (по списку) модель
из файла data\models\servers.xml, по умолчанию - cargo (ящик).
Находит - загружает игру, и с машиной всё в порядке.

Естественно, параллельно считываются
data\gamedata\vehicleparttypes.xml - слоты оружия (если не находит, выводит безоружную машину)
data\if\diz\model_names.xml - имена машины и деталей (если не находит, выводит английские названия из настроек)
data\if\strings\uidescription.xml - описания машины и деталей в энциклопедии (если не находит, выводит английские названия добавляя вконце "_diz missing")
Все три последние файла не критичны, игра работать будет.

Короче, мораль такова - для нормальной (без вылетов) работы машины всё должно быть КОРРЕКТНО прописано КАК МИНИМУМ в:
data\gamedata\gameobjects\vehicles.xml
data\gamedata\gameobjects\vehicleparts.xm
data\gamedata\resourcetypes.xml
data\models\animmodels.xml
data\models\servers.xml
И в КАЖДОЙ карте в data\maps\<имя карты>\servers.xml
----------------------------------------------------------------------------------------------------------------------------------------------------------
Так, с теорией вроде закончил, перейдём к практике.

Сейчас я добавлю в Меридиан вторго Бойца, ибо вставляю в игру Бигфут, так что буду всё описывать пошагово, как делаю сам.
(Не переживайте, в Махине процесс полностью идеентичен)
Используемые материалы: гелевая шариковая ручка и лист бумаги.
(можно, конечно, создать текстовый документ, но мне на бумаге проще)
Используемый софт: "Блокнот" или "Текстовый редактор WordPad(MFC)".
Игра, естественно, должна быть распакована.
(У меня она, правда, нераспакована. Просто у меня на другом винте лежат распакованные ресурсы всех трёх игр, беру когда что-то надо оттуда, так мне удобнее.)

Далее, Боец имеет такие модели:
4 колеса, 1 шасси, 4 подвески (2 пер. и 2 зад.) и 3 кабины.
Перво-наперво придумываем имена для машины и всех деталей и моделей и записываем на листок бумаги.
-----------------------------------------------------------------------------------
Имя машины, (рус) - "Бигфут", (настройки) - Bigfoot

Ресурс шасси - BIGFOOT_CHASSIS
Ресурс кабины - BIGFOOT_CABIN
Ресурс кузова - BIGFOOT_BASKET

Имена колёс:
bigfootWheel01l
bigfootWheel01r
bigfootWheel02l
bigfootWheel02r

Имена подвесок:
bigfootSusp01l
bigfootSusp01r
bigfootSusp02l
bigfootSusp02r

Имя шасси - bigfootChassis

Имена кабин:
(рус) - "Кабина Бигфута (уровень 1)", (настройки) - bigfootCab01
(рус) - "Кабина Бигфута (уровень 2)", (настройки) - bigfootCab02
(рус) - "Кабина Бигфута (уровень 3)", (настройки) - bigfootCab03

Имя кузова, который создадим сами, (рус) - "Кузов Бигфута", (настройки) - bigfootCargo01

Папка с моделями - bigfoot
Папка с иконками - bigfoot
---------------------------------------------------------------------------------------------------------------------------
Всё, с именами разобрались, начинаем создавать свою машину.
------------------------------------------------------------------------------------------------------------------------------------------
Часть 1 - Клонирование моделей
------------------------------------------------------------------------------------------------------------------------------------------
Ну тут всё довольно просто.
Открываем папку data\models\vehicles
Выбираем и копируем папку fighter (целиком, со всем содержимым) и тут-же вставляем.
Получилось две папки с одинаковым содержимым (моделями и текстурами), "fighter" и "Копия fighter"
Папку "Копия fighter" переименовываем в bigfoot (не забываем об орфографии, именно bigfoot, с маленькой буквы).
И всё, модели клонированы.
------------------------------------------------------------------------------------------------------------------------------------------
Часть 2 - Прописывание моделей для движка в animmodels.xml
------------------------------------------------------------------------------------------------------------------------------------------
1. Открываем в "Блокноте" data\models\animmodels.xml (не забываем сделать аварийную копию файла).
2. Вбиваем в поиск имя стандартной модели шасси Бойца (shassis01.sam) и находим описание модели:
Спойлер
Код: Ctrl+A, Ctrl+C
       <model
id="fighterChassis"
shadow="1"
windwavy="0"
file="data\models\vehicles\fighter\shassis01.sam">
<action
name="DEATH1"
skin="8">
<lp
id="w"
effect_id="ET_PS_VEH_EXP_SHASSIS_BIG"
restartOnAnimationChange="0"
ImmediateRemove="0" />
</action>

<action
name="DEATH2"
skin="8">
<lp
id="w"
effect_id="ET_PS_VEH_EXP_SHASSIS1_BIG"
restartOnAnimationChange="0"
ImmediateRemove="0" />
</action>
</model>
3. Клонируем (копируем весь блок, и тут-же вставляем) и получаем две идеинтичные модели:
Спойлер
Код: Ctrl+A, Ctrl+C
       <model
id="fighterChassis"
shadow="1"
windwavy="0"
file="data\models\vehicles\fighter\shassis01.sam">
<action
name="DEATH1"
skin="8">
<lp
id="w"
effect_id="ET_PS_VEH_EXP_SHASSIS_BIG"
restartOnAnimationChange="0"
ImmediateRemove="0" />
</action>

<action
name="DEATH2"
skin="8">
<lp
id="w"
effect_id="ET_PS_VEH_EXP_SHASSIS1_BIG"
restartOnAnimationChange="0"
ImmediateRemove="0" />
</action>
</model>

<model
id="fighterChassis"
shadow="1"
windwavy="0"
file="data\models\vehicles\fighter\shassis01.sam">
<action
name="DEATH1"
skin="8">
<lp
id="w"
effect_id="ET_PS_VEH_EXP_SHASSIS_BIG"
restartOnAnimationChange="0"
ImmediateRemove="0" />
</action>

<action
name="DEATH2"
skin="8">
<lp
id="w"
effect_id="ET_PS_VEH_EXP_SHASSIS1_BIG"
restartOnAnimationChange="0"
ImmediateRemove="0" />
</action>
</model>
4. В новосозданном блоке меняем имя папки модели (fighter в пути к модели) и имя модели (строка id="fighterChassis"), для замены берём имена записанные ранее на листе, получаем такое:
Спойлер
Код: Ctrl+A, Ctrl+C
       <model
id="bigfootChassis"
shadow="1"
windwavy="0"
file="data\models\vehicles\bigfoot\shassis01.sam">
<action
name="DEATH1"
skin="8">
<lp
id="w"
effect_id="ET_PS_VEH_EXP_SHASSIS_BIG"
restartOnAnimationChange="0"
ImmediateRemove="0" />
</action>

<action
name="DEATH2"
skin="8">
<lp
id="w"
effect_id="ET_PS_VEH_EXP_SHASSIS1_BIG"
restartOnAnimationChange="0"
ImmediateRemove="0" />
</action>
</model>
Шасси готово, переходим к колёсам.
5. Вбиваем в поиск имя модели колеса Бойца (sml_maxim01_gun.sam) и находим все четыре:
Спойлер
Код: Ctrl+A, Ctrl+C
       <model
id="fighterWheel01l"
shadow="1"
shadowVolume="1"
windwavy="0"
file="data\models\vehicles\fighter\wheel01l.sam">
<action
name="DEATH1"
skin="8">
<lp
id="8"
effect_id="ET_PS_VEH_EXP_WHEEL_MED"
restartOnAnimationChange="1"
ImmediateRemove="0" />
</action>

<action
name="DEATH2"
skin="8">
<lp
id="8"
effect_id="ET_PS_VEH_EXP_WHEEL1_MED"
restartOnAnimationChange="1"
ImmediateRemove="0" />
</action>
</model>

<model
id="fighterWheel01r"
shadow="1"
shadowVolume="1"
windwavy="0"
file="data\models\vehicles\fighter\wheel01r.sam">
<action
name="DEATH1"
skin="8">
<lp
id="8"
effect_id="ET_PS_VEH_EXP_WHEEL_MED"
restartOnAnimationChange="1"
ImmediateRemove="0" />
</action>

<action
name="DEATH2"
skin="8">
<lp
id="8"
effect_id="ET_PS_VEH_EXP_WHEEL1_MED"
restartOnAnimationChange="1"
ImmediateRemove="0" />
</action>
</model>

<model
id="fighterWheel02l"
shadow="1"
shadowVolume="1"
windwavy="0"
file="data\models\vehicles\fighter\wheel02l.sam">
<action
name="DEATH1"
skin="8">
<lp
id="8"
effect_id="ET_PS_VEH_EXP_WHEEL_MED"
restartOnAnimationChange="1"
ImmediateRemove="0" />
</action>

<action
name="DEATH2"
skin="8">
<lp
id="8"
effect_id="ET_PS_VEH_EXP_WHEEL1_MED"
restartOnAnimationChange="1"
ImmediateRemove="0" />
</action>
</model>

<model
id="fighterWheel02r"
shadow="1"
shadowVolume="1"
windwavy="0"
file="data\models\vehicles\fighter\wheel02r.sam">
<action
name="DEATH1"
skin="8">
<lp
id="8"
effect_id="ET_PS_VEH_EXP_WHEEL_MED"
restartOnAnimationChange="1"
ImmediateRemove="0" />
</action>

<action
name="DEATH2"
skin="8">
<lp
id="8"
effect_id="ET_PS_VEH_EXP_WHEEL1_MED"
restartOnAnimationChange="1"
ImmediateRemove="0" />
</action>
</model>

6. Клонируем все четыре, и, так-же как у шасси, меняем во всех имя папки модели и имена моделей (берём записанные ранее на листе), получаем такое:
Спойлер
Код: Ctrl+A, Ctrl+C
       <model
id="bigfootWheel01l"
shadow="1"
shadowVolume="1"
windwavy="0"
file="data\models\vehicles\bigfoot\wheel01l.sam">
<action
name="DEATH1"
skin="8">
<lp
id="8"
effect_id="ET_PS_VEH_EXP_WHEEL_MED"
restartOnAnimationChange="1"
ImmediateRemove="0" />
</action>

<action
name="DEATH2"
skin="8">
<lp
id="8"
effect_id="ET_PS_VEH_EXP_WHEEL1_MED"
restartOnAnimationChange="1"
ImmediateRemove="0" />
</action>
</model>

<model
id="bigfootWheel01r"
shadow="1"
shadowVolume="1"
windwavy="0"
file="data\models\vehicles\bigfoot\wheel01r.sam">
<action
name="DEATH1"
skin="8">
<lp
id="8"
effect_id="ET_PS_VEH_EXP_WHEEL_MED"
restartOnAnimationChange="1"
ImmediateRemove="0" />
</action>

<action
name="DEATH2"
skin="8">
<lp
id="8"
effect_id="ET_PS_VEH_EXP_WHEEL1_MED"
restartOnAnimationChange="1"
ImmediateRemove="0" />
</action>
</model>

<model
id="bigfootWheel02l"
shadow="1"
shadowVolume="1"
windwavy="0"
file="data\models\vehicles\bigfoot\wheel02l.sam">
<action
name="DEATH1"
skin="8">
<lp
id="8"
effect_id="ET_PS_VEH_EXP_WHEEL_MED"
restartOnAnimationChange="1"
ImmediateRemove="0" />
</action>

<action
name="DEATH2"
skin="8">
<lp
id="8"
effect_id="ET_PS_VEH_EXP_WHEEL1_MED"
restartOnAnimationChange="1"
ImmediateRemove="0" />
</action>
</model>

<model
id="bigfootWheel02r"
shadow="1"
shadowVolume="1"
windwavy="0"
file="data\models\vehicles\bigfoot\wheel02r.sam">
<action
name="DEATH1"
skin="8">
<lp
id="8"
effect_id="ET_PS_VEH_EXP_WHEEL_MED"
restartOnAnimationChange="1"
ImmediateRemove="0" />
</action>

<action
name="DEATH2"
skin="8">
<lp
id="8"
effect_id="ET_PS_VEH_EXP_WHEEL1_MED"
restartOnAnimationChange="1"
ImmediateRemove="0" />
</action>
</model>

Колёса есть, займёмся подвеской.
7. Вбиваем в поиск имя модели подвески Бойца (sml_maxim01_gun.sam) и находим все четыре:
Спойлер
Код: Ctrl+A, Ctrl+C
       <model
id="fighterSusp01l"
shadow="1"
windwavy="0"
file="data\models\vehicles\fighter\suspension01l.sam">
</model>

<model
id="fighterSusp01r"
shadow="1"
windwavy="0"
file="data\models\vehicles\fighter\suspension01r.sam">
</model>

<model
id="fighterSusp02l"
shadow="1"
windwavy="0"
file="data\models\vehicles\fighter\suspension02l.sam">
</model>

<model
id="fighterSusp02r"
shadow="1"
windwavy="0"
file="data\models\vehicles\fighter\suspension02r.sam">
</model>
8. Клонируем, меняем имена папки и моделей с листочка, получаем:
Спойлер
Код: Ctrl+A, Ctrl+C
       <model
id="bigfootSusp01l"
shadow="1"
windwavy="0"
file="data\models\vehicles\bigfoot\suspension01l.sam">
</model>

<model
id="bigfootSusp01r"
shadow="1"
windwavy="0"
file="data\models\vehicles\bigfoot\suspension01r.sam">
</model>

<model
id="bigfootSusp02l"
shadow="1"
windwavy="0"
file="data\models\vehicles\bigfoot\suspension02l.sam">
</model>

<model
id="bigfootSusp02r"
shadow="1"
windwavy="0"
file="data\models\vehicles\bigfoot\suspension02r.sam">
</model>
Подвеска есть, теперь кабины.
9. Ищем первую кабину Бойца (), находим такое:
Спойлер
Код: Ctrl+A, Ctrl+C
       <model
id="fighterCab01"
shadow="1"
shadowVolume="1"
windwavy="0"
file="data\models\vehicles\fighter\cab01.sam">

<action
name="STAND1">
<lp
id="LP_EXH01"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH02"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH03"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH04"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH05"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH06"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />
</action>

<action
name="MOVE1">
<lp
id="LP_EXH01"
effect_id="ET_PS_EXHAUST_POW_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH02"
effect_id="ET_PS_EXHAUST_POW_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH03"
effect_id="ET_PS_EXHAUST_POW_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH04"
effect_id="ET_PS_EXHAUST_POW_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH05"
effect_id="ET_PS_EXHAUST_POW_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH06"
effect_id="ET_PS_EXHAUST_POW_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />
</action>

<action
name="MOVE2">
<lp
id="LP_EXH01"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH02"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH03"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH04"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH05"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH06"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />
</action>

<action
name="RESERVED2">
<lp
id="LP_LIGHT01"
effect_id="ET_PS_HLIGHT"
restartOnAnimationChange="0" />

<lp
id="LP_LIGHT02"
effect_id="ET_PS_HLIGHT"
restartOnAnimationChange="0" />

<lp
id="LP_LIGHT03"
effect_id="ET_PS_HLIGHT"
restartOnAnimationChange="0" />

<lp
id="LP_PROJECTOR"
effect_id="ET_PS_PROJECTOR_FIGHTER_CAB01"
restartOnAnimationChange="0" />
</action>
</model>
10. Клонируем, меняем имена папки и модели с листочка, получаем:
Спойлер
Код: Ctrl+A, Ctrl+C
       <model
id="bigfootCab01"
shadow="1"
shadowVolume="1"
windwavy="0"
file="data\models\vehicles\bigfoot\cab01.sam">

<action
name="STAND1">
<lp
id="LP_EXH01"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH02"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH03"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH04"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH05"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH06"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />
</action>

<action
name="MOVE1">
<lp
id="LP_EXH01"
effect_id="ET_PS_EXHAUST_POW_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH02"
effect_id="ET_PS_EXHAUST_POW_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH03"
effect_id="ET_PS_EXHAUST_POW_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH04"
effect_id="ET_PS_EXHAUST_POW_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH05"
effect_id="ET_PS_EXHAUST_POW_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH06"
effect_id="ET_PS_EXHAUST_POW_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />
</action>

<action
name="MOVE2">
<lp
id="LP_EXH01"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH02"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH03"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH04"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH05"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />

<lp
id="LP_EXH06"
effect_id="ET_PS_EXHAUST_SMOKE1"
restartOnAnimationChange="0"
ImmediateRemove="0" />
</action>

<action
name="RESERVED2">
<lp
id="LP_LIGHT01"
effect_id="ET_PS_HLIGHT"
restartOnAnimationChange="0" />

<lp
id="LP_LIGHT02"
effect_id="ET_PS_HLIGHT"
restartOnAnimationChange="0" />

<lp
id="LP_LIGHT03"
effect_id="ET_PS_HLIGHT"
restartOnAnimationChange="0" />

<lp
id="LP_PROJECTOR"
effect_id="ET_PS_PROJECTOR_FIGHTER_CAB01"
restartOnAnimationChange="0" />
</action>
</model>
11. Так-же клонируем вторую (fighterCab02 в bigfootCab02) и третью (fighterCab03 в bigfootCab03) кабины. (писать не буду, общий принцип, думаю, уже понятен)
12. С кабинами закончили, теперь кузов. Так-как его небыло, создадим новый.
Просто добавляем сдесь-же, в любом месте файла, например сразу после кабин, вот такой блок:
Спойлер
Код: Ctrl+A, Ctrl+C
       <model
id="bigfootCargo01"
shadow="0"
shadowVolume="0"
windwavy="0"
file="data\models\ammo\shell01.sam" />
Здесь для кузова (так как его, как такового нет) я использовал модель простой гильзы (shell01.sam).
Если вы работаете не с Меридианом а с Махиной, то имя должно быть shell01.gam
Вот и кузов готов (при желании их можно сделать несколько).

Сохраняем и закрываем файл animmodels.xml, больше к нему возвращаться не будем.

Всё, с моделями закончили, перейдём к деталям.
------------------------------------------------------------------------------------------------------------------------------------------
Часть 3 - Прописывание деталей машины в servers.xml
------------------------------------------------------------------------------------------------------------------------------------------
Итак, в предыдущей части мы прописали все модели создав такие 13 деталей:
bigfootChassis
bigfootWheel01l
bigfootWheel01r
bigfootWheel02l
bigfootWheel02r
bigfootSusp01l
bigfootSusp01r
bigfootSusp02l
bigfootSusp02r
bigfootCab01
bigfootCab02
bigfootCab03
bigfootCargo01
Теперь эти детали надо прописать движку.

1. Открываем data\models\servers.xml
Детали в нём прописываются таким видом:
Спойлер
Код: Ctrl+A, Ctrl+C
       <Item
id="fighterChassis"
file="data\models\AnimModels.xml" />
2. Чтоб лишний раз не заморачиваться с клонированием по отдельности каждой детали Бойца,
просто клонируйте 13 раз любую деталь и введя полученные выше имена, чтоб получился такой блок:
Спойлер
Код: Ctrl+A, Ctrl+C
       <Item
id="bigfootChassis"
file="data\models\AnimModels.xml" />
<Item
id="bigfootWheel01l"
file="data\models\AnimModels.xml" />
<Item
id="bigfootWheel01r"
file="data\models\AnimModels.xml" />
<Item
id="bigfootWheel02l"
file="data\models\AnimModels.xml" />
<Item
id="bigfootWheel02r"
file="data\models\AnimModels.xml" />
<Item
id="bigfootSusp01l"
file="data\models\AnimModels.xml" />
<Item
id="bigfootSusp01r"
file="data\models\AnimModels.xml" />
<Item
id="bigfootSusp02l"
file="data\models\AnimModels.xml" />
<Item
id="bigfootSusp02r"
file="data\models\AnimModels.xml" />
<Item
id="bigfootCab01"
file="data\models\AnimModels.xml" />
<Item
id="bigfootCab02"
file="data\models\AnimModels.xml" />
<Item
id="bigfootCab03"
file="data\models\AnimModels.xml" />
<Item
id="bigfootCargo01"
file="data\models\AnimModels.xml" />
3. Сохраняем файл, предварительно скопировав вышеописанный блок в буфер.
4. Вставляем блок из буфера во ВСЕ servers.xml ВСЕХ карт вашей игры.
Для Меридиана это:
data\maps\r5m1\servers.xml
data\maps\r5m2\servers.xml
data\maps\r6m1\servers.xml
data\maps\r6m2\servers.xml
data\maps\sin\servers.xml
data\maps\menu\servers.xml (необязательно, только если хотите использовать в меню)
Для Махины:
data\maps\r1m1\servers.xml
data\maps\r1m2\servers.xml
data\maps\r1m3\servers.xml
data\maps\r1m4\servers.xml
data\maps\r2m1\servers.xml
data\maps\r2m2\servers.xml
data\maps\r3m1\servers.xml
data\maps\r3m2\servers.xml
data\maps\r4m1\servers.xml
data\maps\r4m2\servers.xml
data\maps\mainmenu\servers.xml (необязательно, только если хотите использовать в меню)
Если этого не сделать, на картах, в servers.xml которых модели непрописаны, вместо них будет выведен ящик.

Всё, с деталями закончили, переходим к ресурсам.
------------------------------------------------------------------------------------------------------------------------------------------
Часть 4 - Создание ресурсов в resourcetypes.xml
------------------------------------------------------------------------------------------------------------------------------------------
1. Открываем data\gamedata\resourcetypes.xml
Здесь прописаны разнообразные ресурсы.
Нам важны ресурсы машин машин (раздел VEHICLE_PART, подразделы CHASSIS, CABIN и BASKET)
Спойлер
Код: Ctrl+A, Ctrl+C
       <Type Name="VEHICLE_PART">
<Type Name="CHASSIS" geomsize="5 5">
<Type Name="ROBOT1_CHASSIS" />
<Type Name="ROBOT2_CHASSIS" />
<Type Name="ROBOT3_CHASSIS" />
<Type Name="ROBOT4_CHASSIS" />
<Type Name="SML1_CHASSIS" />
<Type Name="SML2_CHASSIS" />
<Type Name="SML3_CHASSIS" />
<Type Name="SML4_CHASSIS" />
<Type Name="HUNTER_CHASSIS" />
<Type Name="CRUISER_CHASSIS" />
<Type Name="FIGHTER_CHASSIS" />
<Type Name="DOZER_CHASSIS" />
<Type Name="ROBOSCOUT_CHASSIS" />
<Type Name="SCOUT_CHASSIS" />
<Type Name="BUG_CHASSIS" />
<Type Name="MOLOKOVOZ_CHASSIS" />
<Type Name="BELAZ_CHASSIS" />
<Type Name="URAL_CHASSIS" />
<Type Name="MIROTVOREC_CHASSIS" />
<Type Name="MIROTVOREC_TRAILER_CHASSIS" />
<Type Name="MOLOKOVOZ_TRAILER_CHASSIS" />
<Type Name="TANK_CHASSIS" />
<Type Name="SCOUT_CHASSIS_MUL" />
<Type Name="FIGHTER_CHASSIS_MUL" />
<Type Name="HUNTER_CHASSIS_MUL" />
<Type Name="CRUISER_CHASSIS_MUL" />
<Type Name="BUG_CHASSIS_MUL" />
<Type Name="MOLOKOVOZ_CHASSIS_MUL" />
<Type Name="URAL_CHASSIS_MUL" />
<Type Name="BELAZ_CHASSIS_MUL" />
<Type Name="MIROTVOREC_CHASSIS_MUL" />
</Type>

<Type Name="CABIN" geomsize="5 5">
<Type Name="ROBOT1_CABIN" />
<Type Name="ROBOT2_CABIN" />
<Type Name="ROBOT3_CABIN" />
<Type Name="ROBOT4_CABIN" />
<Type Name="SML1_CABIN" />
<Type Name="SML2_CABIN" />
<Type Name="SML3_CABIN" />
<Type Name="SML4_CABIN" />
<Type Name="HUNTER_CABIN" />
<Type Name="CRUISER_CABIN" />
<Type Name="BUG_CABIN" />
<Type Name="URAL_CABIN" />
<Type Name="BELAZ_CABIN" />
<Type Name="MOLOKOVOZ_CABIN" />
<Type Name="DOZER_CABIN" />
<Type Name="ROBOSCOUT_CABIN" />
<Type Name="SCOUT_CABIN" />
<Type Name="FIGHTER_CABIN" />
<Type Name="MIROTVOREC_CABIN" />
<Type Name="MIROTVOREC_TRAILER_CABIN" />
<Type Name="TANK_CABIN" />
<Type Name="SCOUT_CABIN_MUL" />
<Type Name="FIGHTER_CABIN_MUL" />
<Type Name="HUNTER_CABIN_MUL" />
<Type Name="CRUISER_CABIN_MUL" />
<Type Name="BUG_CABIN_MUL" />
<Type Name="MOLOKOVOZ_CABIN_MUL" />
<Type Name="URAL_CABIN_MUL" />
<Type Name="BELAZ_CABIN_MUL" />
<Type Name="MIROTVOREC_CABIN_MUL" />
</Type>

<Type Name="BASKET" geomsize="5 5">
<Type Name="BELAZ_BASKET" />
<Type Name="MOLOKOVOZ_BASKET" />
<Type Name="BUG_BASKET" />
<Type Name="URAL_BASKET" />
<Type Name="MOLOKOVOZ_TRAILER_BASKET" />
<Type Name="MIROTVOTEC_BASKET" />
<Type Name="FAKE_BASKET" />
<Type Name="FAKE_BIGBASKET" />
<Type Name="BUG_BASKET_MUL" />
<Type Name="MOLOKOVOZ_BASKET_MUL" />
<Type Name="URAL_BASKET_MUL" />
<Type Name="BELAZ_BASKET_MUL" />
<Type Name="MIROTVOTEC_BASKET_MUL" />
</Type>

<Type Name="STATIC_AUTO_GUN_DOT" />
</Type>
2. В каждый подраздел добавляем по типу (взятому с листка) BIGFOOT_CHASSIS, BIGFOOT_CABIN и BIGFOOT_BASKET
Получаем такое:
Спойлер
Код: Ctrl+A, Ctrl+C
       <Type Name="VEHICLE_PART">
<Type Name="CHASSIS" geomsize="5 5">
<Type Name="BIGFOOT_CHASSIS" />
<Type Name="ROBOT1_CHASSIS" />
<Type Name="ROBOT2_CHASSIS" />
<Type Name="ROBOT3_CHASSIS" />
<Type Name="ROBOT4_CHASSIS" />
<Type Name="SML1_CHASSIS" />
<Type Name="SML2_CHASSIS" />
<Type Name="SML3_CHASSIS" />
<Type Name="SML4_CHASSIS" />
<Type Name="HUNTER_CHASSIS" />
<Type Name="CRUISER_CHASSIS" />
<Type Name="FIGHTER_CHASSIS" />
<Type Name="DOZER_CHASSIS" />
<Type Name="ROBOSCOUT_CHASSIS" />
<Type Name="SCOUT_CHASSIS" />
<Type Name="BUG_CHASSIS" />
<Type Name="MOLOKOVOZ_CHASSIS" />
<Type Name="BELAZ_CHASSIS" />
<Type Name="URAL_CHASSIS" />
<Type Name="MIROTVOREC_CHASSIS" />
<Type Name="MIROTVOREC_TRAILER_CHASSIS" />
<Type Name="MOLOKOVOZ_TRAILER_CHASSIS" />
<Type Name="TANK_CHASSIS" />
<Type Name="SCOUT_CHASSIS_MUL" />
<Type Name="FIGHTER_CHASSIS_MUL" />
<Type Name="HUNTER_CHASSIS_MUL" />
<Type Name="CRUISER_CHASSIS_MUL" />
<Type Name="BUG_CHASSIS_MUL" />
<Type Name="MOLOKOVOZ_CHASSIS_MUL" />
<Type Name="URAL_CHASSIS_MUL" />
<Type Name="BELAZ_CHASSIS_MUL" />
<Type Name="MIROTVOREC_CHASSIS_MUL" />
</Type>

<Type Name="CABIN" geomsize="5 5">
<Type Name="BIGFOOT_CABIN" />
<Type Name="ROBOT1_CABIN" />
<Type Name="ROBOT2_CABIN" />
<Type Name="ROBOT3_CABIN" />
<Type Name="ROBOT4_CABIN" />
<Type Name="SML1_CABIN" />
<Type Name="SML2_CABIN" />
<Type Name="SML3_CABIN" />
<Type Name="SML4_CABIN" />
<Type Name="HUNTER_CABIN" />
<Type Name="CRUISER_CABIN" />
<Type Name="BUG_CABIN" />
<Type Name="URAL_CABIN" />
<Type Name="BELAZ_CABIN" />
<Type Name="MOLOKOVOZ_CABIN" />
<Type Name="DOZER_CABIN" />
<Type Name="ROBOSCOUT_CABIN" />
<Type Name="SCOUT_CABIN" />
<Type Name="FIGHTER_CABIN" />
<Type Name="MIROTVOREC_CABIN" />
<Type Name="MIROTVOREC_TRAILER_CABIN" />
<Type Name="TANK_CABIN" />
<Type Name="SCOUT_CABIN_MUL" />
<Type Name="FIGHTER_CABIN_MUL" />
<Type Name="HUNTER_CABIN_MUL" />
<Type Name="CRUISER_CABIN_MUL" />
<Type Name="BUG_CABIN_MUL" />
<Type Name="MOLOKOVOZ_CABIN_MUL" />
<Type Name="URAL_CABIN_MUL" />
<Type Name="BELAZ_CABIN_MUL" />
<Type Name="MIROTVOREC_CABIN_MUL" />
</Type>

<Type Name="BASKET" geomsize="5 5">
<Type Name="BIGFOOT_BASKET" />
<Type Name="BELAZ_BASKET" />
<Type Name="MOLOKOVOZ_BASKET" />
<Type Name="BUG_BASKET" />
<Type Name="URAL_BASKET" />
<Type Name="MOLOKOVOZ_TRAILER_BASKET" />
<Type Name="MIROTVOTEC_BASKET" />
<Type Name="FAKE_BASKET" />
<Type Name="FAKE_BIGBASKET" />
<Type Name="BUG_BASKET_MUL" />
<Type Name="MOLOKOVOZ_BASKET_MUL" />
<Type Name="URAL_BASKET_MUL" />
<Type Name="BELAZ_BASKET_MUL" />
<Type Name="MIROTVOTEC_BASKET_MUL" />
</Type>

<Type Name="STATIC_AUTO_GUN_DOT" />
</Type>
С ресурсами покончено, переходим к двум последним (важнейшим) файлам настройки машины и деталей.


bat13 13.08.2014

Третий Закон: Любая достаточно развитая технология неотличима от магии. (Кларк)
Аватара
------------------------------------------------------------------------------------------------------------------------------------------
Часть 5 - Клонирование деталей машины в vehicleparts.xm
------------------------------------------------------------------------------------------------------------------------------------------
Тут сделаю небольшое отступление по поводу структуры данного файла (vehicleparts.xm).

Файл состоит из четырёх частей, сверху вниз:
В первой (начинается со строки <Folder Name = "Chassis">) прописаны все шасси.
Во второй (начинающейся с <Folder Name = "Cabins">) прописаны все кабины.
В третьей (начинающейся с <Folder Name = "Cabins">) прописаны все кузова.
В четвёртой (начинающейся с <Folder Name = "Cabins">) прописаны все колёса и подвески.

1. Открываем data\gamedata\gameobjects\vehicleparts.xm и находим шасси Бойца (fighterChassis)
Спойлер
Код: Ctrl+A, Ctrl+C
       <Prototype
Class = "Chassis"
Name = "fighterChassis"
ModelFile = "fighterChassis"
ResourceType = "FIGHTER_CHASSIS"
NodeScale = "1 1 1"
Mass = "130.0"

MaxHealth = "550"
MaxFuel = "40.0"

Price = "4000"
RepairCoef = "2.5"

BrakingSound ="ET_S_BRAKE01"
PneumoSound ="ET_S_PNEUMO_BRAKE01"
GearShiftSound ="ET_S_GEAR_SHIFT01"
LoadPoints = "LP_CAB01" >
<GroupsHealth
Main = "10000"
/>
</Prototype>
2. Клонируем шасси и меняем:
Имя детали (Name = "fighterChassis") на bigfootChassis
Имя модели (ModelFile = "fighterChassis") на bigfootChassis
Ресурс (ResourceType = "FIGHTER_CHASSIS") на BIGFOOT_CHASSIS
Спойлер
Код: Ctrl+A, Ctrl+C
       <Prototype
Class = "Chassis"
Name = "bigfootChassis"
ModelFile = "bigfootChassis"
ResourceType = "BIGFOOT_CHASSIS"
NodeScale = "1 1 1"
Mass = "130.0"

MaxHealth = "550"
MaxFuel = "40.0"

Price = "4000"
RepairCoef = "2.5"

BrakingSound ="ET_S_BRAKE01"
PneumoSound ="ET_S_PNEUMO_BRAKE01"
GearShiftSound ="ET_S_GEAR_SHIFT01"
LoadPoints = "LP_CAB01" >
<GroupsHealth
Main = "10000"
/>
</Prototype>
3. Далее находим первую кабину Бойца (fighterCab01)
Спойлер
Код: Ctrl+A, Ctrl+C
       <Prototype
Class = "Cabin"
Name = "fighterCab01"
ModelFile = "fighterCab01"
ResourceType = "FIGHTER_CABIN"
NodeScale = "1 1 1"

Durability = "150"
DurCoeffsForDamageTypes = "30 20 20"
VisibleInEncyclopedia = "false"
Mass = "3.0"

RepairCoef = "1.5"

MaxPower = "100"
EngineHighSound = "ET_S_ENGINE_FIGHTER_1_HIGH"
MaxTorque = "100"

Price = "6500"

BlowEffect = "ET_PS_VEH_PART_BLOW_SMALL_CAB"
MaxSpeed = "120.0"

FuelConsumption = "0.06"
LP_Scales = "LP_THORN1 0.90528, LP_THORN2 0.90528, LP_THORN4 0.9483, LP_THORN5 0.9483, LP_THORN3 1.2149, LP_THORN6 1.025, LP_THORN7 0.90528, LP_THORN8 0.90528, LP_THORN10 0.9483, LP_THORN11 0.9483, LP_THORN9 1.2149, LP_THORN12 1.025, LP_THORN13 0.90528, LP_THORN14 0.90528, LP_THORN16 0.9483, LP_THORN17 0.9483, LP_THORN15 1.2149, LP_THORN18 1.025"
LoadPoints = "LP_SML01" >
<GadgetDescription>
<Slot
ResourceType = "GADGET_COMMON"
MaxAmount = "1" />
</GadgetDescription>
<GroupsHealth
Main = "5"
/>
</Prototype>
4. Клонируем кабину и меняем:
Имя детали (Name = "fighterCab01") на bigfootCab01
Имя модели (ModelFile = "fighterCab01") на bigfootCab01
Ресурс (ResourceType = "FIGHTER_CABIN") на BIGFOOT_CABIN
Спойлер
Код: Ctrl+A, Ctrl+C
       <Prototype
Class = "Cabin"
Name = "bigfootCab01"
ModelFile = "bigfootCab01"
ResourceType = "BIGFOOT_CABIN"
NodeScale = "1 1 1"

Durability = "150"
DurCoeffsForDamageTypes = "30 20 20"
VisibleInEncyclopedia = "false"
Mass = "3.0"

RepairCoef = "1.5"

MaxPower = "100"
EngineHighSound = "ET_S_ENGINE_FIGHTER_1_HIGH"
MaxTorque = "100"

Price = "6500"

BlowEffect = "ET_PS_VEH_PART_BLOW_SMALL_CAB"
MaxSpeed = "120.0"

FuelConsumption = "0.06"
LP_Scales = "LP_THORN1 0.90528, LP_THORN2 0.90528, LP_THORN4 0.9483, LP_THORN5 0.9483, LP_THORN3 1.2149, LP_THORN6 1.025, LP_THORN7 0.90528, LP_THORN8 0.90528, LP_THORN10 0.9483, LP_THORN11 0.9483, LP_THORN9 1.2149, LP_THORN12 1.025, LP_THORN13 0.90528, LP_THORN14 0.90528, LP_THORN16 0.9483, LP_THORN17 0.9483, LP_THORN15 1.2149, LP_THORN18 1.025"
LoadPoints = "LP_SML01" >
<GadgetDescription>
<Slot
ResourceType = "GADGET_COMMON"
MaxAmount = "1" />
</GadgetDescription>
<GroupsHealth
Main = "5"
/>
</Prototype>
Точно так-же поступаем со второй (fighterCab02) и третьей (fighterCab03) кабинами.

Далее кузов. Поскольку по стандарту был общий кузов для Бойца, Охотника и т.д. то мы создадим свой.
Как образец используем второй кузов Вэна, так как у него имеется слот под спецвооружение.

5. Находим второй кузов Вэна (bugCargo02)
Спойлер
Код: Ctrl+A, Ctrl+C
       <Prototype
Class = "Basket"
Name = "bugCargo02"
ModelFile = "bugCargo02"
ResourceType = "BUG_BASKET"

Durability = "60"
DurCoeffsForDamageTypes = "11 12 12"
NodeScale = "1 1 1"
BlowEffect = "ET_PS_VEH_PART_BLOW_SMALL_CAB"

Price = "1000"
RepairCoef = "0.5"

Mass = "1.0"
LP_Scales = "LP_THORN1 0.78655, LP_THORN4 0.78655, LP_THORN2 0.71266, LP_THORN3 0.71266, LP_THORN5 0.78655, LP_THORN8 0.78655, LP_THORN6 0.71266, LP_THORN7 0.71266, LP_THORN9 0.78655, LP_THORN12 0.78655, LP_THORN10 0.71266, LP_THORN11 0.71266"
LoadPoints = "NO_LP" >

<RepositoryDescription
RepositorySize = "4 6">
<Slot
Name = "BASKET_SPECIAL_WEAPON"
Pos = "10 10"
/>
</RepositoryDescription>

<GroupsHealth
Main = "0"
/>
</Prototype>
6. Клонируем кузов и меняем:
Имя детали (Name = "bugCargo02") на bigfootCargo01
Имя модели (ModelFile = "bugCargo02") на bigfootCargo01
Ресурс (ResourceType = "BUG_BASKET") на BIGFOOT_BASKET
Объём кузова (RepositorySize = "4 6") немного уменьшаем (4 4)
Спойлер
Код: Ctrl+A, Ctrl+C
       <Prototype
Class = "Basket"
Name = "bigfootCargo01"
ModelFile = "bigfootCargo01"
ResourceType = "BIGFOOT_BASKET"

Durability = "60"
DurCoeffsForDamageTypes = "11 12 12"
NodeScale = "1 1 1"
BlowEffect = "ET_PS_VEH_PART_BLOW_SMALL_CAB"

Price = "1000"
RepairCoef = "0.5"

Mass = "1.0"
LP_Scales = "LP_THORN1 0.78655, LP_THORN4 0.78655, LP_THORN2 0.71266, LP_THORN3 0.71266, LP_THORN5 0.78655, LP_THORN8 0.78655, LP_THORN6 0.71266, LP_THORN7 0.71266, LP_THORN9 0.78655, LP_THORN12 0.78655, LP_THORN10 0.71266, LP_THORN11 0.71266"
LoadPoints = "NO_LP" >

<RepositoryDescription
RepositorySize = "4 4">
<Slot
Name = "BASKET_SPECIAL_WEAPON"
Pos = "10 10"
/>
</RepositoryDescription>

<GroupsHealth
Main = "0"
/>
</Prototype>
7. Находим первое колесо Бойца (fighterWheel01l)
Спойлер
Код: Ctrl+A, Ctrl+C
       <Prototype
Class = "Wheel"
Name = "fighterWheel01l"
ModelFile = "fighterWheel01l"
NodeScale = "1 1 1"
Mass = "9"
SuspensionModelFile = "fighterSusp01l"
SuspensionCFM = "0.002"
SuspensionERP = "0.25"
SuspensionRange = "0.25"
mU = "1.0"
EffectType = "SMALLWHEEL" />
8. Клонируем колесо и меняем:
Имя детали (Name = "fighterWheel01l") на bigfootWheel01l
Имя модели колеса (ModelFile = "fighterWheel01l") на bigfootWheel01l
Имя модели подвески (ModelFile = "fighterSusp01l") на bigfootSusp01l
Спойлер
Код: Ctrl+A, Ctrl+C
       <Prototype
Class = "Wheel"
Name = "bigfootWheel01l"
ModelFile = "bigfootWheel01l"
NodeScale = "1 1 1"
Mass = "9"
SuspensionModelFile = "bigfootSusp01l"
SuspensionCFM = "0.002"
SuspensionERP = "0.25"
SuspensionRange = "0.25"
mU = "1.0"
EffectType = "SMALLWHEEL" />
Так-же поступаем и с остальными тремя колёсами (fighterWheel01r, fighterWheel02l и fighterWheel02r)

Всё, сохраняем изменения и закрываем vehicleparts.xml и переходим к клонированию самой машины.
------------------------------------------------------------------------------------------------------------------------------------------
Часть 6 - Клонирование машины в vehicles.xml
------------------------------------------------------------------------------------------------------------------------------------------
Этот файл тоже имеет свои особенности.
Он как бы делится на две части, в одной прописаны настройки машин, во второй - прототипы используемых в игре машин.
Так как движёк игры считывает файл "сверху вниз", первыми (вначале) идут настройки, далее (к концу) прототипы.
Если, к примеру, прототип Бойца прописать перед настройками самого Бойца, движёк его проигнорирует, и, влучшем случае, не выведет машину в игре.
Ну, прототипы будем делать позже, перед установкой машины в продажу, а пока клонируем саму машину (настройки).
1. Открываем data\gamedata\gameobjects\vehicles.xml и находим настройки Бойца
Спойлер
Код: Ctrl+A, Ctrl+C
       <Prototype
Class = "Vehicle"
Name = "Fighter"
ResourceType = "VEHICLE"

DiffRatio = "15.0"
MaxEngineRpm = "8500"
LowGearShiftLimit = "1500"
HighGearShiftLimit = "2000"
AdditionalWheelsHover = "0.1"
SteeringSpeed = "0.5"
MinNotIdleRpm = "500"
IdleEngineSoundSpeed = "0.5"
EngineRpmForNormalSound = "3000"

SteeringN = "3.0"
SteeringTime = "3.0"

HornSound = "ET_S_HORN03"
DriftCoeff = "0.01"
DecisionMatrix = "vehiclemain.lua"
LookRadius = "250.0"
IntersectionRadius = "5.0"
TakingRadius = "30.0"
CameraHeight = "4"
CameraMaxDist = "16"
HitForce = "50"
MassSize = "4 3 7.5"
MassTranslation = "0 -1.2 -0.2"
DestroyEffectPiercing = "ET_PS_VEH_EXP1_MED"
DestroyEffectBlast = "ET_PS_VEH_EXP2_MED"
DestroyEffectEnergy = "ET_PS_VEH_EXP3_MED"
DestroyEffectWater = "ET_PS_VEH_EXP2_MED"
ForMultiplayer="true"
WheelSpringCoeffSmall = "4000.0"
WheelSpringCoeffBig = "7000.0"
WheelUpDampingCoeff = "100.0f"
WheelDownDampingCoeff = "600.0f"
WheelSuspensionRange = "0.5"
WheelCriticalSuspensionDelta = "0.25"
AllowedRoles = "roleCheater roleBarrier"

GadgetWeaponForDrop = "cooling_system_guns"
GadgetVehicleForDrop = "additional_stability"

Abstract = "true" >

<MainPartDescription id = "CHASSIS" partResourceType = "FIGHTER_CHASSIS">
<PartDescription id = "CABIN" partResourceType = "FIGHTER_CABIN" lpName = "LP_CAB01" >
<PartDescription id="CABIN_SMALL_GUN" partResourceType = "SMALL_GUN" lpName = "LP_SML01" />
<PartDescription id="CABIN_BIG_GUN_2" partResourceType = "BIG_GUN" lpName = "LP_BIG01" />
</PartDescription>
<PartDescription id = "BASKET" partResourceType="FAKE_BIGBASKET" lpName = "LP_CAB01" >
<PartDescription id="BASKET_SPECIAL_WEAPON" partResourceType = "SPECIAL_WEAPON"/>
</PartDescription>

</MainPartDescription>

<Parts>
<Part id = "CHASSIS" Prototype = "fighterChassis" />
</Parts>

<Wheels>
<Wheel Prototype = "fighterWheel01l" steering = "correct" />
<Wheel Prototype = "fighterWheel01r" steering = "correct" />
<Wheel Prototype = "fighterWheel02l" />
<Wheel Prototype = "fighterWheel02r" />
</Wheels>
</Prototype>
2. Клонируем машину и меняем:
Имя машины (Name = "Fighter") на Bigfoot
Ресурс шасси (<MainPartDescription id = "CHASSIS" partResourceType = "FIGHTER_CHASSIS">) на BIGFOOT_CHASSIS
Ресурс кабины (<PartDescription id = "CABIN" partResourceType = "FIGHTER_CABIN" lpName = "LP_CAB01" >) на BIGFOOT_CABIN
Ресурс кузова (<PartDescription id = "BASKET" partResourceType="FAKE_BIGBASKET" lpName = "LP_CAB01" >) на BIGFOOT_BASKET
Имя шасси (<Part id = "CHASSIS" Prototype = "fighterChassis" />) на bigfootChassis
Имена всех четырёх колёс (fighterWheel01l и т.д.) на bigfootWheel01l и т.д.
Спойлер
Код: Ctrl+A, Ctrl+C
       <Prototype
Class = "Vehicle"
Name = "Bigfoot"
ResourceType = "VEHICLE"

DiffRatio = "15.0"
MaxEngineRpm = "8500"
LowGearShiftLimit = "1500"
HighGearShiftLimit = "2000"
AdditionalWheelsHover = "0.1"
SteeringSpeed = "0.5"
MinNotIdleRpm = "500"
IdleEngineSoundSpeed = "0.5"
EngineRpmForNormalSound = "3000"

SteeringN = "3.0"
SteeringTime = "3.0"

HornSound = "ET_S_HORN03"
DriftCoeff = "0.01"
DecisionMatrix = "vehiclemain.lua"
LookRadius = "250.0"
IntersectionRadius = "5.0"
TakingRadius = "30.0"
CameraHeight = "4"
CameraMaxDist = "16"
HitForce = "50"
MassSize = "4 3 7.5"
MassTranslation = "0 -1.2 -0.2"
DestroyEffectPiercing = "ET_PS_VEH_EXP1_MED"
DestroyEffectBlast = "ET_PS_VEH_EXP2_MED"
DestroyEffectEnergy = "ET_PS_VEH_EXP3_MED"
DestroyEffectWater = "ET_PS_VEH_EXP2_MED"
ForMultiplayer="true"
WheelSpringCoeffSmall = "4000.0"
WheelSpringCoeffBig = "7000.0"
WheelUpDampingCoeff = "100.0f"
WheelDownDampingCoeff = "600.0f"
WheelSuspensionRange = "0.5"
WheelCriticalSuspensionDelta = "0.25"
AllowedRoles = "roleCheater roleBarrier"

GadgetWeaponForDrop = "cooling_system_guns"
GadgetVehicleForDrop = "additional_stability"

Abstract = "true" >

<MainPartDescription id = "CHASSIS" partResourceType = "BIGFOOT_CHASSIS">
<PartDescription id = "CABIN" partResourceType = "BIGFOOT_CABIN" lpName = "LP_CAB01" >
<PartDescription id="CABIN_SMALL_GUN" partResourceType = "SMALL_GUN" lpName = "LP_SML01" />
<PartDescription id="CABIN_BIG_GUN_2" partResourceType = "BIG_GUN" lpName = "LP_BIG01" />
</PartDescription>
<PartDescription id = "BASKET" partResourceType="BIGFOOT_BASKET" lpName = "LP_CAB01" >
<PartDescription id="BASKET_SPECIAL_WEAPON" partResourceType = "SPECIAL_WEAPON"/>
</PartDescription>

</MainPartDescription>

<Parts>
<Part id = "CHASSIS" Prototype = "bigfootChassis" />
</Parts>

<Wheels>
<Wheel Prototype = "bigfootWheel01l" steering = "correct" />
<Wheel Prototype = "bigfootWheel01r" steering = "correct" />
<Wheel Prototype = "bigfootWheel02l" />
<Wheel Prototype = "bigfootWheel02r" />
</Wheels>
</Prototype>
Сохраняем изменения и закрываем vehicles.xml, машина готова.
------------------------------------------------------------------------------------------------------------------------------------------
Часть 7 - Иконки
------------------------------------------------------------------------------------------------------------------------------------------
Теперь мы создадим иконки для деталей нашей новой машины, чтоб при покупке их в магазине не выводились белые квадраты.
Итак, иконки нам потребуются для четырёх деталей:
bigfootCab01
bigfootCab02
bigfootCab03
bigfootCargo01

Для начала клонируем сами иконки:
1. Открываем папку data\if\ico\inventorydlg
2. Находим папку fighter и клонируем её.
3. Полученную копию переименовываем в bigfoot
4. Заходим (в новосозданную папку bigfoot) и переименовываем:
fighter_cab01.dds в bigfoot_cab01.dds
fighter_cab02.dds в bigfoot_cab02.dds
fighter_cab03.dds в bigfoot_cab03.dds
fighter_cargo.dds в bigfoot_cargo01.dds
5. Открываем data\if\ico\modelicons.xml
6. Добавляем в любом месте файла (но обязательно после строки <icons>) такие строки:
Спойлер
Код: Ctrl+A, Ctrl+C
       <Item id="bigfoot_cab01" file="data\if\ico\InventoryDlg\bigfoot\bigfoot_cab01.dds" file1=""/>
<Item id="bigfoot_cab01" file="data\if\ico\InventoryDlg\bigfoot\bigfoot_cab01.dds" file1=""/>
<Item id="bigfoot_cab01" file="data\if\ico\InventoryDlg\bigfoot\bigfoot_cab01.dds" file1=""/>
<Item id="bigfoot_cargo01" file="data\if\ico\InventoryDlg\bigfoot\bigfoot_cargo01.dds" file1=""/>
Сохраняем изменения и закрываем modelicons.xml, иконки готовы.
------------------------------------------------------------------------------------------------------------------------------------------
Часть 8 - Создание прототипов машин в vehicles.xml
------------------------------------------------------------------------------------------------------------------------------------------
На данном этапе мы полностью добавили машину, её детали и сами модели.
Теперь у нас есть возможность добавить машину и детали в продажу и использовать её, но только для игрока.
Чтобы иметь возможность добавлять машины для AI (караванов, миссий, инфекшн-зон и т.д.) требуется создать прототипы.
Прототип, это как-бы список комплектации авто, какая у него кабина, кузов и вооружение, и будет ли отображаться в энциклопедии.
1. Открываем data\gamedata\gameobjects\vehicles.xml
2. Находим прототипы Бойца (Fighter01, Fighter02 и Fighter03)
Спойлер
Код: Ctrl+A, Ctrl+C
       <Prototype
Class = "Vehicle"
Name = "Fighter01"
ParentPrototype = "Fighter"
VisibleInEncyclopedia = "false">
<Parts>
<Part id = "CABIN" Prototype = "fighterCab01" />
<Part id = "CABIN_SMALL_GUN" Prototype = "specter01" />
<Part id = "BASKET" Prototype = "fighterCargo01" />
</Parts>
</Prototype>

<Prototype
Class = "Vehicle"
Name = "Fighter02"
VisibleInEncyclopedia = "false"
ParentPrototype = "Fighter">
<Parts>
<Part id = "CABIN" Prototype = "fighterCab02" />
<Part id = "CABIN_SMALL_GUN" Prototype = "kord01" />
<Part id = "CABIN_BIG_GUN_2" Prototype = "rapier01" />
<Part id = "BASKET" Prototype = "fighterCargo01" />
</Parts>
</Prototype>

<Prototype
Class = "Vehicle"
Name = "Fighter03"
VisibleInEncyclopedia = "false"
ParentPrototype = "Fighter">
<Parts>
<Part id = "CABIN" Prototype = "fighterCab03" />
<Part id = "CABIN_SMALL_GUN" Prototype = "hornet01" />
<Part id = "CABIN_BIG_GUN_2" Prototype = "vulcan01" />
<Part id = "BASKET" Prototype = "fighterCargo01" />
</Parts>
</Prototype>
3. Клонируем их и меняем, в первом прототипе:
Имя прототипа (Name = "Fighter01") на Bigfoot01
Основу прототипа (ParentPrototype = "Fighter") на Bigfoot
Кабину (<Part id = "CABIN" Prototype = "fighterCab01" />) на bigfootCab01
Кузов (<Part id = "BASKET" Prototype = "fighterCargo01" />) на bigfootCargo01

Во втором прототипе:
Имя прототипа (Name = "Fighter02") на Bigfoot02
Основу прототипа (ParentPrototype = "Fighter") на Bigfoot
Кабину (<Part id = "CABIN" Prototype = "fighterCab02" />) на bigfootCab02
Кузов (<Part id = "BASKET" Prototype = "fighterCargo01" />) на bigfootCargo01

В третьем прототипе:
Имя прототипа (Name = "Fighter03") на Bigfoot03
Основу прототипа (ParentPrototype = "Fighter") на Bigfoot
Кабину (<Part id = "CABIN" Prototype = "fighterCab03" />) на bigfootCab03
Кузов (<Part id = "BASKET" Prototype = "fighterCargo01" />) на bigfootCargo01
Активацию для энциклопедии (VisibleInEncyclopedia = "false") на true
Получаем:
Спойлер
Код: Ctrl+A, Ctrl+C
       <Prototype
Class = "Vehicle"
Name = "Bigfoot01"
ParentPrototype = "Bigfoot"
VisibleInEncyclopedia = "false">
<Parts>
<Part id = "CABIN" Prototype = "bigfootCab01" />
<Part id = "CABIN_SMALL_GUN" Prototype = "specter01" />
<Part id = "BASKET" Prototype = "bigfootCargo01" />
</Parts>
</Prototype>

<Prototype
Class = "Vehicle"
Name = "Bigfoot02"
VisibleInEncyclopedia = "false"
ParentPrototype = Bigfoot">
<Parts>
<Part id = "CABIN" Prototype = "bigfootCab02" />
<Part id = "CABIN_SMALL_GUN" Prototype = "kord01" />
<Part id = "CABIN_BIG_GUN_2" Prototype = "rapier01" />
<Part id = "BASKET" Prototype = "bigfootCargo01" />
</Parts>
</Prototype>

<Prototype
Class = "Vehicle"
Name = "Bigfoot03"
VisibleInEncyclopedia = "true"
ParentPrototype = "Bigfoot">
<Parts>
<Part id = "CABIN" Prototype = "bigfootCab03" />
<Part id = "CABIN_SMALL_GUN" Prototype = "hornet01" />
<Part id = "CABIN_BIG_GUN_2" Prototype = "vulcan01" />
<Part id = "BASKET" Prototype = "bigfootCargo01" />
</Parts>
</Prototype>
Здесь немного проясню.
Вы можете создать и 10 и 100 прототипов с разными деталями и вооружением.
И любой из них может отображаться в энциклопедии (имея значение VisibleInEncyclopedia = "true")
Любой, НО ТОЛЬКО ОДИН ИЗ ВСЕХ. То есть, ОДИН (любой) имеет значение "true", ВСЕ ОСТАЛЬНЫЕ - "false"
Так-же если все будут отключены ("false"), всё будет работать, просто машина не появится в энциклопедии.
Но если же для энциклопндии будут включены ("true") ДВА ИЛИ БОЛЕЕ прототипа, ИГРА ВЫЛЕТИТ!!!
Так что будьте внимательны.
Сохраняем изменения и закрываем vehicles.xml, прототипы машин готовы.
------------------------------------------------------------------------------------------------------------------------------------------
Часть 9 - Имена и описания
------------------------------------------------------------------------------------------------------------------------------------------
Теперь имеются три прототипа и четыре детали.
Но если добавить их на данном этапе противникам, то при наведении на них прицела увидим имена "типа Bigfoot01"
То-же имя увидим и в энциклопедии, кроме того в описании будет "Bigfoot01_diz MISSING!!!"
В магазине же увидим bigfootCab01, bigfootCab02, bigfootCab03 и bigfootCargo01
Сейчас мы это исправим.
1. Открываем data\if\diz\model_names.xml находим кабины Бойца:
Спойлер
Код: Ctrl+A, Ctrl+C
       <Item
id="fighterCab01"
locForm="0"
value="Питбуль (уровень 1)" />

<Item
id="fighterCab02"
locForm="0"
value="Доберман (уровень 2)" />

<Item
id="fighterCab03"
locForm="0"
value="Полис (уровень 3)" />
2. Клонируем все три и меняем имена и названия:
Спойлер
Код: Ctrl+A, Ctrl+C
       <Item
id="bigfootCab01"
locForm="0"
value="Кабина Бигфута (уровень 1)" />

<Item
id="bigfootCab02"
locForm="0"
value="Кабина Бигфута (уровень 2)" />

<Item
id="bigfootCab03"
locForm="0"
value="Кабина Бигфута (уровень 3)" />
3. Сюда-же, в любом месте файла добавляем имя для кузова:
Спойлер
Код: Ctrl+A, Ctrl+C
       <Item
id="bigfootCargo01"
locForm="0"
value="Кузов Бигфута" />
4. Так-же добавляем имена для прототипов машин:
Спойлер
Код: Ctrl+A, Ctrl+C
       <Item
id="Bigfoot01"
locForm="0"
value="Бигфут" />
<Item
id="Bigfoot02"
locForm="0"
value="Бигфут" />
<Item
id="Bigfoot03"
locForm="0"
value="Бигфут" />
Сохраняем изменения и закрываем model_names.xmll, имена готовы.
5. Открываем data\if\strings\uidescription.xml и находим описание Бойца
Спойлер
Код: Ctrl+A, Ctrl+C
       <string
id="Fighter01_diz"
value="Эта необычно выглядящая модель несет на себе достаточно вооружения, чтобы представлять опасность и сама по себе. А учитывая, что бандиты редко нападают поодиночке..." />
6. Клонируем и меняем имя и описание
Спойлер
Код: Ctrl+A, Ctrl+C
       <string
id="Bigfoot01_diz"
value="Легкобронированный автомобиль высокой проходимости. Может нести на себе довольно неплохое вооружение, а в сочетании с проходимостью и маневренностью может представлять собой довольно серьёзную угрозу." />
Сохраняем изменения и закрываем uidescription.xml, описание готово.
------------------------------------------------------------------------------------------------------------------------------------------
Часть 10 - Добавляем машину в продажу
------------------------------------------------------------------------------------------------------------------------------------------
Теперь осталось последнее, добавить машину и детали в продажу, запустить игру и проверить.
1. Открываем data\maps\r5m1\dynamicscene.xml и находим город Малое Яблоко (TheApple), он выглядит так:
Спойлер
Код: Ctrl+A, Ctrl+C
       <Object
Name="TheApple"
Belong="1110"
Prototype="r5m1_Apple"
Pos="3611.704 367.524 880.792"
PointOfViewInInterface="50.000 50.000 50.000"
CaravanLocations=""
CaravanPaths=""
TreasureLocations="DynKlad_loc_1 DynKlad_loc_2"
ReachLocations=""
DestroyLocations="InfectionZoneZ1"
IsSellingDrugs="0"
IsBuyingDrugs="1">
<Object
Name="TheApple_Shop"
Belong="1110"
Prototype="shop">
</Object>

<Object
Name="TheApple_Workshop"
Belong="1110"
Prototype="workshop">
<CabinsAndBaskets>
<Item
Prototype="scoutCab01" />
<Item
Prototype="scoutCab01" />
<Item
Prototype="scoutCab01" />
<Item
Prototype="bugCab01" />
<Item
Prototype="bugCab01" />
<Item
Prototype="bugCab01" />
<Item
Prototype="bugCargo01" />
<Item
Prototype="bugCargo01" />
<Item
Prototype="bugCargo01" />
</CabinsAndBaskets>

<Vehicles>
<Item
Prototype="ScoutForSale"
Pos="0.000 369.722 0.000">
</Item>
</Vehicles>
</Object>

<Object
Name="TheApple_Bar"
Belong="1110"
Prototype="bar">
<Object
Name="TheApple_Bar_Barman"
Belong="1110"
Prototype="NPC"
ModelName="r2_man"
cfg="8"
NpcType="BARMAN"
SpokenCount="0" />

<Object
Name="TheApple_Bar_Ralf_NPC"
Belong="1110"
Prototype="NPC"
ModelName="r2_man"
skin="2"
cfg="314"
helloReplyNames="r5m1_Aplle_Bar_Ralf_1_N01"
SpokenCount="0" />

<Object
Name="TheApple_Bar_TreasureMan_NPC"
Belong="1110"
Prototype="NPC"
ModelName="r1_man"
cfg="58"
helloReplyNames="r5m1_TreasureMan_1_N01 r5m1_TreasureMan_2_N01"
SpokenCount="0" />

<Object
Name="TheApple_BuyerNarkota_NPC"
Belong="1110"
Prototype="NPC"
ModelName="r2_man"
skin="1"
cfg="132"
helloReplyNames="r5m1_BuyerNarkota_1_N01"
SpokenCount="0" />
</Object>

<Object
Name="TheApple_defend"
Belong="1110"
Prototype="location"
Pos="3678.537 377.436 938.897"
Radius="50.000"
Active="0" />

<Object
Name="TheApple_deploy"
Belong="1110"
Prototype="location"
Pos="3678.537 377.436 938.897"
Radius="50.000" />

<Object
Name="TheApple_enter"
Belong="1110"
Prototype="location"
Pos="3678.537 377.436 938.897"
Radius="96.112" />

<Parts>
<AttackTeam
present="no" />
</Parts>

<EntryPath />

<ExitPath />
</Object>
Из города нам нужна мастерская (раздел TheApple_Workshop)
Она, в свою очередь состоит из двух блоков, кабины икузова (<CabinsAndBaskets>) и машины (<Vehicles>)
Вот они то нам и нужны.
1. В блок кабин и кузовов
Спойлер
Код: Ctrl+A, Ctrl+C
       <CabinsAndBaskets>
<Item
Prototype="scoutCab01" />
<Item
Prototype="scoutCab01" />
<Item
Prototype="scoutCab01" />
<Item
Prototype="bugCab01" />
<Item
Prototype="bugCab01" />
<Item
Prototype="bugCab01" />
<Item
Prototype="bugCargo01" />
<Item
Prototype="bugCargo01" />
<Item
Prototype="bugCargo01" />
</CabinsAndBaskets>
Добавляем созданные кабины и кузов, чтоб вышло так
Спойлер
Код: Ctrl+A, Ctrl+C
       <CabinsAndBaskets>
<Item
Prototype="scoutCab01" />
<Item
Prototype="scoutCab01" />
<Item
Prototype="scoutCab01" />
<Item
Prototype="bugCab01" />
<Item
Prototype="bugCab01" />
<Item
Prototype="bugCab01" />
<Item
Prototype="bugCargo01" />
<Item
Prototype="bugCargo01" />
<Item
Prototype="bugCargo01" />
<Item
Prototype="bigfootCab01" />
<Item
Prototype="bigfootCab02" />
<Item
Prototype="bigfootCab03" />
<Item
Prototype="bigfootCargo01" />
</CabinsAndBaskets>
2. В блок машин
Спойлер
Код: Ctrl+A, Ctrl+C
       <Vehicles>
<Item
Prototype="ScoutForSale"
Pos="0.000 369.722 0.000">
</Item>
</Vehicles>
Добавляем нашу машину, чтоб вышло так
Спойлер
Код: Ctrl+A, Ctrl+C
       <Vehicles>
<Item
Prototype="ScoutForSale"
Pos="0.000 369.722 0.000">
</Item>
<Item
PosX="6"
PosY="0"
Flags="16"
Prototype="Bigfoot"
Pos="0.000 369.722 0.000">
<Parts>
<BASKET
present="1"
Flags="16"
Prototype="bigfootCargo01" />

<CABIN
present="1"
Flags="16"
Prototype="bigfootCab01" />

<CHASSIS
present="1"
Flags="16"
Prototype="bigfootChassis" />
</Parts>

<Repository />
</Item>
</Vehicles>
Можно, конечно, было ранее создать ещё один (безоружный) профиль с именем BigfootForSale,
и просто прописать его в продажу, а не прописывать все детали. Но так точнее.
Сохраняем изменения и закрываем dynamicscene.xml, машина уже в продаже.
------------------------------------------------------------------------------------------------------------------------------------------
Часть 11 - Проверка в игре
------------------------------------------------------------------------------------------------------------------------------------------
Ну что-ж, вот и финал. Машина полностью прописана.
Теперь запускаем игру, НАЧИНАЕМ НОВУЮ ИГРУ, едем в Малое Яблоко и всё проверяем, магазин, энциклопедию и саму машину.
Начинать надо обязательно новую игру, а не грузиться с сохранения, так как мы добавили новую машину, детали и модели.
А в старом сохранении они не записаны, и игра вылетит.

Теперь у вас имеется второй Боец с набором всех деталей и под другим именем.
И теперь вам достаточно подменить модели и текстуры в data\models\vehicles\bigfoot своими,
и перерисовать иконки в data\if\ico\InventoryDlg\bigfoot под новые модели,
и получите полностью новую машину.

Удачи.

bat13 13.08.2014

__________!///_ _____
_________( @@ )_____
_______ooO-(_)-o o____
Пришёл, увидел, забанил. Ещё вопросы?


Если у Вас нет бана - это не Ваша заслуга - это наше упущение.
Уровень профиля от John
Аватара
Спойлер

"kto" писал(а):

4. Вставляем блок из буфера во ВСЕ servers.xml ВСЕХ карт вашей игры.
Для Меридиана это:
data\maps\r5m1\servers.xml
data\maps\r5m2\servers.xml
data\maps\r6m1\servers.xml
data\maps\r6m2\servers.xml
data\maps\sin\servers.xml
data\maps\menu\servers.xml (необязательно, только если хотите использовать в меню)
Для Махины:
data\maps\r1m1\servers.xml
data\maps\r1m2\servers.xml
data\maps\r1m3\servers.xml
data\maps\r1m4\servers.xml
data\maps\r2m1\servers.xml
data\maps\r2m2\servers.xml
data\maps\r3m1\servers.xml
data\maps\r3m2\servers.xml
data\maps\r4m1\servers.xml
data\maps\r4m2\servers.xml
data\maps\mainmenu\servers.xml (необязательно, только если хотите использовать в меню)
Если этого не сделать, на картах, в servers.xml которых модели непрописаны, вместо них будет выведен ящик.


Мне вот всегда было интересно, если это автомобили, использоваться значит, в принципе, могут везде, дак почему бы их вместо этого просто не прописать в commonservers.xml?

Никогда не думал, что Ex Machina начнет мне причинять боль...
Аватара

"Rusya_27" писал(а):

Мне вот всегда было интересно, если это автомобили, использоваться значит, в принципе, могут везде, дак почему бы их вместо этого просто не прописать в commonservers.xml?

Ну, наверное потому, что движёк считывает данные о местонахождении настроек моделей из servers.xml (основного, и тех что в картах).
А данные о местонажождении описаний звуковых и визуальных эффектов из commonservers.xml.
И подругому не умеет. :D

Третий Закон: Любая достаточно развитая технология неотличима от магии. (Кларк)
Аватара
bat13, ну у меня в моде v 1.2 половина новых моделей прописана только в commonservers.xml и тем не менее считываются игрой игрой. :D Или еще, как по твоему, из-за чего в servers карт не прописаны все стандартные автомобили?

Добавлено:
Поправочка: залез сейчас в файлы первой части и увидел, что там все именно так, модели нужно прописывать в servers карт. А вот для Меридиана то что я писал вполне актуально.

Никогда не думал, что Ex Machina начнет мне причинять боль...
Аватара

"Rusya_27" писал(а):

bat13, ну у меня в моде v 1.2 половина новых моделей прописана только в commonservers.xml


Не знаю как у тебя, у меня, к примеру, в Махине 1.2 (чистой, с оригинального диска "Антология Ex Machina"), в commonservers.xml нет даже раздела AnimatedModelsServer (может у тебя Стим-версия, или мод какой-либо стоит, незнаю)
Поэтому и делаю всё как по учебнику. :) Это помогает избегать глюков.
А вот в Меридиане раздел AnimatedModelsServer уже есть, но я, по привычке, и в нём прописываю в servers.xml
Да и какая разница, в каком из файлов, если либо в один, либо в другой полюбому прописывать надо, иначе игра вылетит.

"Rusya_27" писал(а):

Или еще, как по твоему, из-за чего в servers карт не прописаны все стандартные автомобили?

Для того, чтобы движёк не грузил лишнюю информацию.
Зачем, например, при загрузке Края считывать все данные о Боссах, тарелке, роботах (и ещё сотнях моделей) которые там не применяются?
Поэтому, если объект (дом, дерево, кабина, мост, человек) прописан в servers.xml или в commonservers.xml (или в обоих сразу) - игра не вылетит.
Но если при этом он не прописан в servers.xml карты, то на этой карте движёк вместо объекта (дома, дерева, кабины, моста, человека) выведет ящик.
Вот такие-вот пироги... :D

Третий Закон: Любая достаточно развитая технология неотличима от магии. (Кларк)
Аватара
Согласен, я ведь потом дописал, что мое маленькое замечание актуально только для Меридиана. Просто при добавлении машин в Меридиан можно сэкономить немного времени и вместо servers пяти карт, прописать модели только в commonservers.

Никогда не думал, что Ex Machina начнет мне причинять боль...
Сообщений: 7 • Страница 1 из 1 1