S.T.A.L.K.E.R.: Shadow of Chernobyl - Модификации - Создание модов - Добавление проводника

В ТЧ есть единственный момент ,когда в результате диалога с НПС ,ГГ перемещается. Это диалог с О - сознанием. После отказа от вступления, ГГ перемещается на АЭС 2. Если использовать эту функцию ,можно создать в ТЧ проводника.
Примечание: Проводник не будет перемещаться вместе с вами ,как в ЗП. Вы будете перемещаться в одиночку ,как в ЧН.
Для этого:
1)Для этого в gamedata/scripts находим файл dialogs_aes.script. В нём имеется следующая функция
function osoznanie_decline(npc, actor)
    db.actor:disable_info_portion("oso_init_dialog")
npc:stop_talk()
    actor:stop_talk()
xr_effects.enable_ui(db.actor, nil)   
local point = patrol("mon_jump_aes2_walk")
local look = patrol("mon_jump_aes2_look")

db.actor:set_actor_position(point:point(0))
local dir = look:point(0):sub(point:point(0))
db.actor:set_actor_direction(-dir:getH())

end
2)Копируем эту функцию ,допустим ,в escape_dialog из директории gamedatascripts
3)Обратите внимание на вот этот фрагмент из функции: db.actor:disable_info_portion("oso_init_dialog"). Здесь функция ссылается на инфопоршень ,но на Кордоне данный инфопоршень не прописан. Тогда
4)Переименовываем данный инфопоршень так ,как вам удобно ,например db.actor:disable_info_portion("esc_init_dialog"). Примечание: Название инфопоршня это "esc_init_dialog" , (то ,что за скобками ,переименовывать не надо). Затем добавляем инфопоршень в файл info_101escape.xml из директории gamedata/config/gameplay. В этом файле добавляем следующее:
5)Итак ,функция есть ,инфопоршень тоже есть. Теперь нужны координаты. Обратите внимание на следующий фрагмент функции:
local point = patrol("mon_jump_aes2_walk")
local look = patrol("mon_jump_aes2_look")
Здесь функция ссылается на определённые координаты на АЭС2. Но нам нужны координаты на Кордоне. Для этого открываем way_101_escape.ltx и там дописываем пути. Например вот так:

[mon_jump_esc8_look]
points = p0
p0:name = wp00
p0:position = -239.110947,-19.788391,-134.999161
p0:game_vertex_id = 8
p0:level_vertex_id = 16191


[mon_jump_esc8_walk]
points = p0
p0:name = wp00
p0:position = -238.017761,-19.888292,-140.161987
p0:game_vertex_id = 47
p0:level_vertex_id = 17468
Всё пути есть. Только теперь в функции ,переименуйте фрагмент:
local point = patrol("mon_jump_aes2_walk")
local look = patrol("mon_jump_aes2_look")

На фрагмент:
local point = patrol("mon_jump_esc8_walk")
local look = patrol("mon_jump_esc8_look")

Теперь осталось только привязать всё это к диалогу. Я взял диалог с Кузнецовым.
Открываем файл dialogs_escape.xml и находим следующие строки:


        dialogs.is_not_wounded
        
            
                esc_bridge_soldiers_start_12
                13
            
Это фраза "Мне надо дальше". Сюда вставляем активизацию нашей функции. Получется следующее:


        dialogs.is_not_wounded
        
            
                esc_bridge_soldiers_start_12
                escape_dialog.osoznanie_decline  Здесь следующая структура: Название_скрипта. Название_функции
                13
            
Вот ,собственно и всё. Теперь после фразы "Мне надо дальше" вы переместитесь к бункеру Сидоровича.
 

Комментарии: 3
Ваш комментарий

А как же проводник на кордоне, который там находится перед встречей с доктором?

1

Green_Soul Разработчики забыли сделать диалог чтобы он проводил в нужную точку зоны.

0

Вобще прикольно но диалог нужен просьба - сделать диалог

0