..::STALKER.BY::.. http://stalker.by/forum/ |
|
Добавляем проводника http://stalker.by/forum/viewtopic.php?f=534&t=3436 |
Страница 1 из 1 |
Автор: | СКАУТ [ 15 июн 2011, 19:19 ] |
Заголовок сообщения: | Добавляем проводника |
SoC. Добавляем проводника [править] Теория В ТЧ есть единственный момент, когда в результате диалога с НПС, ГГ перемещается. Это диалог с "О-Сознанием". После отказа от вступления, ГГ перемещается на АЭС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 из директории gamedata\scripts 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. В этом файле добавляем следующее: <info_portion id="esc_init_dialog"></info_portion> 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 и находим следующие строки: Код: <dialog id="esc_bridge_soldiers_start"> <precondition>dialogs.is_not_wounded</precondition> <phrase_list> <phrase id="12"> <text>esc_bridge_soldiers_start_12</text> <next>13</next> </phrase> Это фраза "Мне надо дальше". Сюда вставляем активизацию нашей функции. Получется следующее: Код: <dialog id="esc_bridge_soldiers_start"> <precondition>dialogs.is_not_wounded</precondition> <phrase_list> <phrase id="12"> <text>esc_bridge_soldiers_start_12</text> <action>escape_dialog.osoznanie_decline</action> Здесь следующая структура: <action>Название_скрипта. Название_функции</action> <next>13</next> </phrase> Вот, собственно и всё. Теперь после фразы "Мне надо дальше" вы переместитесь к бункеру Сидоровича. Я делал также но чуток исправил: Код: function osoznanie_decline(npc, actor) --Поршень не нужен, он всёравно удаляется npc:stop_talk() actor:stop_talk() xr_effects.enable_ui(db.actor, nil) local point = patrol("mon_jump_aes2_walk") local look = point -- указать можно только один путь 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 Автор: mma Дооформил: DarkST Подправил: Бродяга Категория: Скрипты Просьба не оставлять коментарии типа: "спасибо за инфу", "прикольно" ну и т.п. |
Страница 1 из 1 | Часовой пояс: UTC + 2 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |