Пятница, 29.03.2024, 16:44
Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » S.T.A.L.K.E.R. Модострение » S.T.A.L.K.E.R. Shadow of Chernobyl » Возвращаем Ниву к езде (В этом уроке мы возвратим вырезанную Ниву из игры...)
Возвращаем Ниву к езде
Vavilov8Дата: Воскресенье, 09.09.2012, 22:48 | Сообщение # 1
VIP
Группа: Администраторы
Сообщений: 42
Репутация: 0
Статус: Offline
Как известно из множества вырезанного из игры особо запомнился транспорт. Сейчас мы вернём один "экземпляр" всем известную "Ниву". Для "воскрешения" понадобится 2 файла:
Code

gamedata/config/creatures/vechicles.ltx и gamedata/spawns/all.spawn    
а также текстовый редактор и ACDC входящий в состав X-ray Game asset tools.


1. Распакуем файл all.spawn при помощи программы от bardak как распаковывать написано в readme.txt значит описывать данный этап не буду.

2. Находим файл alife_l01_escape.ltx как видно там структура, что-то вроде этого:
Code

[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. заменять имеющееся не будем, а просто в самом конце напишем:

Code

[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 открываем его и дописываем там:

Code

[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" по этому принципу можно заспавнить авто на любой локации.

Еще один способ воскресить транспорт

Все это хорошо, но есть еще один простой способ воскресить вырезанный из игры транспорт.
1. Для начала нам нужно файл vehicles.ltx (находится в creatures) внести в файл system.ltx. Вот так:
Code
#include "creatures\vehicles.ltx:


То есть добавить его в число прочих файлов (по крайней мере у меня он не был туда внесен), откуда игра будет брать необходимую информацию.

2. Добавить в файл vehicles.ltx полный конфиг машины. Например уазика. Вот готовый пример:
Code

[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.

3. Создать скриптовую функцию по спавну машины. Мой пример:

Code

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) и вписываем туда в секцию:
Code
<group name="kb_grp_common">


Code

<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. У меня уазик "выдает" мой уникальный (то есть новый) торговец после диалога с ним. Вот конец моего диалога из файла dialogs_escape:
Code

<phrase id="8">    
<text>escape_buy_uaz_8</text>    
<action>escape_dialog.buy_uaz</action>    
<next>9</next>    
</phrase>    
<phrase id="9">    
<text>escape_buy_uaz_9</text>    
</phrase>    
</phrase_list>    
</dialog>


Вот собственно и все. И никаких изменений в all.spawn.

Автор: Jesh

Дополнил: erlik
 
Форум » S.T.A.L.K.E.R. Модострение » S.T.A.L.K.E.R. Shadow of Chernobyl » Возвращаем Ниву к езде (В этом уроке мы возвратим вырезанную Ниву из игры...)
  • Страница 1 из 1
  • 1
Поиск: