SoC. Техника в игре — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
(→Техника в игре) |
(→Техника в игре) |
||
Строка 146: | Строка 146: | ||
Вот собственно и все. И никаких изменений в all.spawn. | Вот собственно и все. И никаких изменений в all.spawn. | ||
+ | |||
Дополнил '''erlik''' | Дополнил '''erlik''' |
Версия 17:35, 11 июня 2009
Техника в игре
Как известоно из множества вырезаного из игры особо запомнился транспорт Сейчас мы вернём один "экземпляр" все известнуюю "Ниву" Для "воскрешения" понадобиться: 2 файла
gamedata/config/creatures vechicles.ltx и gamedata/spawns all.spawn а также текстовый редактор и ACDC_10004_AMK
1. распакуем файл all.spawn при помощи проги от AMK-team как распаковывать написано в readme.txt значит описывать данный этап не буду.
2. находим файл alife_l01_escape.ltx как видно там структура что то вроде этого:
[0] ; cse_abstract properties section_name = breakable_object name = meshes\brkbl#0.ogf position = −79.4930877685547,-3.16186141967773,-76.9341430664063 direction = 0.581841766834259,-1.45571649074554,-0.267672836780548 ; cse_alife_object properties game_vertex_id = 0 distance = 0 level_vertex_id = 594270 object_flags = 0xffffffba ; cse_visual properties visual_name = meshes\brkbl#0 ; cse_alife_object_breakable properties health = 1
тоесть очень простая...
3. заменять имеющееся не будем, а просто в самом конце напишем:
[870] ; cse_abstract properties section_name = m_car name = niva position = -239,8912,-19,43,-123,0998 direction = 0.581841766834259,-1.45571649074554,-0.267672836780548 ; cse_alife_object properties game_vertex_id = 0 distance = 0 level_vertex_id = 594270 object_flags = 0xffffffba ; cse_visual properties visual_name = physics\vehicles\niva\veh_niva_u_01 ; cse_alife_object_breakable properties health = 1
где "niva" это секция в ltx файле которая будет использоваться для параметров объекта а "visual_name" это расположение модели "health = 1" следовательно здоровье разделы "position" и "direction" взяты с "долгоблуждающего" по сети файла all.spawn где автомобили находились прямо возле выхода от Сидоровича для выбора других координат можна использовать команду консоли "rs_stats = 1" после чего сохраняем изменения компилируем all.spawn помещаем его в gamedata\spawns теперь нам понадобиться файл vechicles.ltx в gamedata/config/creatures открываем его и дописываем там:
[niva] GroupControlSection = spawn_group $spawn = "vehicles\niva" class = SCRPTCAR cform = skeleton visual = physics\vehicles\niva\veh_niva_u_01.ogf actor_visual = physics\vehicles\niva\veh_niva_u_01.ogf ef_equipment_type = 3 ph_mass = 100000 script_binding = bind_physic_object.init
всё начинаем новую игру, после выхода от Сидора вы увидите Ниву, для того чтобы её завести набирите в консоле "bind turn_engine kb" по этом принципу можна заспавнить авто на любой локации
Еще один способ воскресить транспорт
Все это хорошо, но есть еще один простой способ воскресить вырезанный из игры транспорт. Первое. Для начал нам нужно файл vehicles.ltx (находится в creatures) внести в файл sistem.ltx. Вот так:
#include "creatures\vehicles.ltx"
То есть добавить его в число прочих файлов (по крайней мере у меня он не был туда внесен), откуда игра будет брать необходимую информацию.
Второе. Добавить в файл vehicles.ltx полный конфиг машины. Например уазика. Вот готовый пример:
[vehicle_uaz]
GroupControlSection = spawn_group
$spawn = "vehicles\vehicle_uaz"
class = SCRPTCAR
cform = skeleton
visual = physics\vehicles\uaz\veh_uaz_u_01.ogf
actor_visual = physics\vehicles\uaz\veh_uaz_u_01.ogf
ef_equipment_type = 3
ph_mass = 99000
script_binding = bind_physic_object.init
ph_skeleton_airr_lin_factor = 2.0
ph_skeleton_airr_ang_factor = 0.0
ph_skeleton_hinger_factor1 = 1.0
ph_skeleton_ddelay = 15.0
ph_skel_fatal_impulse_factor = 12.0
ph_skel_shot_up_factor = 0.25
ph_after_death_velocity_factor = 0.75
Характеристики машин можно менять в файлах лежащих в models\vehicles.
Третье. Создать скриптовую функцию по спавну машины. Мой пример:
function buy_uaz (position, total)
alife():create("vehicle_uaz",vector():set(-245.01445007324,-18.792783737183,-107.14138031006),12480,8)
end
Название функции - buy_uaz - может быть любое. Саму функцию надо положить в какой-нибудь скриптовый файл в папке scripts. У меня она лежит в escape_dialog.script.
Для того, чтобы можно было заводить машину не залезая в консоль открываем файл ui_keybinding (находится в config\ui) и вписываем туда в секцию
<group name="kb_grp_common">
это:
<command id="kb_cam_1" exe="cam_1"/>
<command id="kb_cam_2" exe="cam_2"/>
<command id="kb_cam_3" exe="cam_3"/>
<command id="kb_turn_engine" exe="turn_engine"/>
Теперь у нас в меню управления можно назначить клавиши для "завести двигатель" и переключение камеры на вид от 1, 2, 3 лица.
Уазик появляется неподалеку от бункера Сидоровича после активации action escape_dialog.buy_uaz вставленного в диалог к NPC. У меня уазик "выдает" мой уникальный (то есть новый) торговец после диалога с ним. Вот конец диалога:
<phrase id="8">
<text>escape_buy_uaz_8</text>
<action>escape_dialog.buy_uaz</action>
<next>9</next>
</phrase>
Вот собственно и все. И никаких изменений в all.spawn.
Дополнил erlik
Авторы
Статья создана: