Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Sync 29 Опубликовано 2 Апреля 2011 Поделиться Опубликовано 2 Апреля 2011 Прошу помощи у специалистов. Давным-давно, "когда еще людей на свете не было" , Vano_Santuri в этой теме предложил вариант определения координат ГГ через выход в меню и кнопку "Титры": function main_menu:OnButton_credits_clicked() local text local vid local gvid local a = vector() local text a = db.actor:position() vid = db.actor:level_vertex_id() gvid = db.actor:game_vertex_id() text = "Позиция:\\nX= "..a.x.."\\nY= "..a.y.."\\nZ= "..a.z.."\\nlevel_vertex= "..vid.."\\ngame_vertex_id= "..gvid news_manager.send_tip(db.actor, text, nil, nil, 30000) end Мне захотелось получать еще и направление взгляда и я чуть-чуть переработал код: function main_menu:OnButton_credits_clicked() local vid = db.actor:level_vertex_id() local gvid = db.actor:game_vertex_id() local a = db.actor:position() local dir = db.actor:direction() local text = "Позиция:\\nX= "..a.x.."\\nY= "..a.y.."\\nZ= "..a.z.."\\nDirX= "..dir.x.."\\nDirY= "..dir.y.."\\nDirZ= "..dir.z.."\\nlevel_vertex= "..vid.."\\ngame_vertex_id= "..gvid news_manager.send_tip(db.actor, text, nil, nil, 30000) end Все работает, цифирки исправно выдаются на экран. Однако у меня появились два вопроса. 1. Все ли здесь верно? 2. При задании стартовой позиции ГГ в all.spawn и начале новой игры direction у меня вроде бы вообще не учитывается. Влияет только параметр upd:o_torso. Так и должно быть? Старый сюжет ТЧ - в топку! Ссылка на комментарий
KD87 718 Опубликовано 2 Апреля 2011 Поделиться Опубликовано 2 Апреля 2011 Sync, так и есть. А position задает параметр upd:position. Ссылка на комментарий
Sync 29 Опубликовано 2 Апреля 2011 Поделиться Опубликовано 2 Апреля 2011 У меня сегодня просто день вопросов. Слышал, что в "Зове Припяти" в скрипте db.script есть таблица level_doors = {}, которая содержит список всех дверей на уровне, чтобы НПС могли, бегая по этому уровню, открывать нужные двери. В "ТЧ" такого нет. Можно ли каким-либо образом изменить логику двери (например, Сидоровича), чтобы ее с любой стороны могли открывать НПС? Если подскажете, как это сделать, то дальше можно не читать. Запасной вариант есть - спавн рестриктора возле двери и отслеживание входа в него НПС. Но он мне кажется более сложным и что-то пока не работает. 1. В all.spawn на нужном уровне (в моем случае - на Затоне) размещаю рестриктор с такой секцией логики: [logic] active = sr_idle [sr_idle] on_actor_inside = %+ship_open_door% on_actor_outside = %-ship_open_door% 2. Выделенный жирным инфопоршень регистрирую в одном из файлов с инфопоршнями. 3. Вношу изменения (также выделены жирным) в логику двери: [logic] active = ph_door@closed [ph_door@locked] locked = false snd_open_start = trader_door_unlock on_info = {+esc_trader_can_leave} ph_door@closed %=play_snd(device\door_servomotor)% [ph_door@closed] closed = true locked = false on_info = {+ship_open_door} ph_door@open on_use = ph_door@open %-esc_close_door% snd_open_start = trader_door_open_start snd_close_start = trader_door_close_start snd_close_stop = trader_door_close_stop [ph_door@open] closed = false locked = false on_info = {+esc_close_door} ph_door@closed on_info = {-ship_open_door} ph_door@closed on_use = ph_door@closed snd_open_start = trader_door_open_start snd_close_start = trader_door_close_start snd_close_stop = trader_door_close_stop После входа ГГ (экспериментирую на нем) в зону рестриктора дверь распахивается, после выхода - захлопывается. Но пока не все гладко. Во-первых, находясь в зоне рестриктора, невозможно "вручную" закрыть дверь, а вне рестриктора - ее открыть (пробовал). Во-вторых, и это более важно, нужно, чтобы дверь открывалась при приближении к ней не ГГ, а НПС. Как это сделать, вообще не представляю. Буду очень признателен за любую помощь. KD87, Charsi, спасибо за помощь в решении прошлого вопроса. Старый сюжет ТЧ - в топку! Ссылка на комментарий
_Призрак_ 11 Опубликовано 7 Апреля 2011 Поделиться Опубликовано 7 Апреля 2011 Каким образом можно узнать, достиг ли НПС прописанного ему вейпоинта? Freedom Ссылка на комментарий
Vano_Santuri 33 Опубликовано 7 Апреля 2011 Поделиться Опубликовано 7 Апреля 2011 _Призрак_, Проще туда сунуть спейс_рестриктор и вызвать функцию... (Это вариант, как альтернатива, если нет предусмотренного метода) Что-то кончается, что-то начинается... Ссылка на комментарий
_Призрак_ 11 Опубликовано 7 Апреля 2011 Поделиться Опубликовано 7 Апреля 2011 (изменено) Дело в том что я сделал очень интересный дебагер - при наведении на НПС прицела, на экран выводится информация о нем - имя, айди, сид (если есть), смарт, количество НПС в сматре, активную логику, бест_дангер и здоровье + в логе сохраняется позиция НПС и его гейм/левел вертикс. На случай когда АИ-сетка глючит. Но во время тестов я понял что хотелось бы знать на какой вейпоинт идет НПС и достиг ли он его. Поэтому вариант со спейсами не прокатит Изменено 7 Апреля 2011 пользователем _Призрак_ Freedom Ссылка на комментарий
Тимыч 0 Опубликовано 8 Апреля 2011 Поделиться Опубликовано 8 Апреля 2011 Здравствуйте, я пытался сделать мод про вояк, но сталкнулся с такой проблемой, мне надо поставить все диалоги Сидоровича одному вояке, прописываю диалог нужному НПС ну и вообщем, прихожу я к этому генералу, а у него не то что нет диалолгов Сидора, он даже говорить со мной не хочет. В чём дело подскажите пожалуйста. Ссылка на комментарий
=VENOM= 50 Опубликовано 8 Апреля 2011 Поделиться Опубликовано 8 Апреля 2011 Поподробнее бы ... Вообще, ГГ разговаривает с военными и при этом не хочет говорить только с этим конкретным "генералом"? Или вообще не запускаются диалоги с военными? Во втором случае нужно править xr_meet.script - найти строку с перечислением группировок и удалить из неё вот этот фрагмент: or npc_community == "military" В первом случае... где прописывал диалоги этому генералу - в профиле непися или в его логике? Ссылка на комментарий
Garry_Galler 7 Опубликовано 8 Апреля 2011 Поделиться Опубликовано 8 Апреля 2011 _Призрак_, В utils есть весь нужный функционал. path_parse_waypoints(pathname) - получить таблицу данных по каждой точке пути -- узнать, находится ли stalker рядом с точкой path_point пути patrol_path true\false function stalker_at_waypoint(stalker, patrol_path, path_point) Ссылка на комментарий
Whisper 29 Опубликовано 9 Апреля 2011 Поделиться Опубликовано 9 Апреля 2011 Камрады, помогите новичку - как прописать прямо в диалоге проигрывание в нужном месте коротенького звука, чтобы сам диалог замирал на время проигрывания(и как вариант - нет)? Ссылка на комментарий
=VENOM= 50 Опубликовано 9 Апреля 2011 Поделиться Опубликовано 9 Апреля 2011 Просто воткни в конструктор диалога в нужную фразу action с функцией, включающей проигрывание звука, например: <action>dialogs.tra_la_la</action> А в файл dialogs.script добавь функцию: function tra_la_la(first_speaker, second_speaker) local snd_obj = xr_sound.get_safe_sound_object([[monsters\poltergeist\die_2]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) end Только измени путь к нужному тебе файлу. Ссылка на комментарий
@"StreloK" 2 Опубликовано 9 Апреля 2011 Поделиться Опубликовано 9 Апреля 2011 Люди, такой вопрос-возможно-ли реализовать (если я например сделаю модель) многоствольную стационарную турель типо ЗПУ-4? Prefiero morir de pie, que vivir siempre arrodillado. Ссылка на комментарий
Silver Raven 197 Опубликовано 9 Апреля 2011 Поделиться Опубликовано 9 Апреля 2011 (изменено) Отменяю вопрос преведущего поста. Такая ошибка: FATAL ERROR [error]Expression : start_node && path [error]Function : CXml::NavigateToNode [error]File : E:\stalker\sources\trunk\xrXMLParser\xrXMLParser.cpp [error]Line : 97 [error]Description : NavigateToNode failed in XML file [error]Arguments : gameplay\alex_mod_dialogs.xml Насколько я знаю, подобный лог часто появляется при наличии синтаксической ошибки в диалоге. Но я проверил свой диалог XML Validator, он ошибок не нашел... В чем же дело? Диалог: <?xml version="1.0" encoding="windows-1251" ?> <game_dialogs> <dialog id="labx8_test_nps_qest_start"> <dont_has_info>labx8_find_documents_done</dont_has_info> <phrase_list> <phrase id="0"> <text>labx8_test_nps_dialog_0_start</text> <next>1</next> </phrase> <phrase id="1"> <text>labx8_test_nps_dialog_1_start</text> <give_info>labx8_find_documents</give_info> <next>2</next> </phrase> <phrase id="2"> <text>labx8_test_nps_dialog_2_start</text> <action>dialogs.break_dialog</action> </phrase> </phrase_list> </dialog> <dialog id="labx8_test_nps_qest_done"> <has_info>labx8_find_documents</has_info> <dont_has_info>labx8_find_documents_done</dont_has_info> <phrase_list> <phrase id="1"> <text>labx8_test_nps_dialog_1_complite</text> <next>2</next> <next>3</next> </phrase> <phrase id="2"> <text>labx8_test_nps_dialog_2_complite</text> <precondition>alex_mod.labx8_documents_have</precondition> <action>alex_mod.labx8_documents_done</action> <next>4</next> </phrase> <phrase id="3"> <text>labx8_test_nps_dialog_1_no_complite</text> <next>6</next> </phrase> <phrase id="4"> <text>labx8_test_nps_dialog_3_complite</text> <action>alex_mod.give_labx8_qest_nagrada</action> <next>5</next> </phrase> <phrase id="5"> <text>labx8_test_nps_dialog_4_complite</text> <action>dialogs.break_dialog</action> </phrase> <phrase id="6"> <text>labx8_test_nps_dialog_2_no_complite</text> <next>7</next> </phrase> <phrase id="7"> <text>labx8_test_nps_dialog_3_no_complite</text> <action>dialogs.break_dialog</action> </phrase> </phrase_list> </dialog> <dialog id="labx8_test_nps_qest_hello_dialog"> <phrase_list> <dont_has_info>labx8_find_documents_done</dont_has_info> <phrase id="1"> <text>labx8_test_nps_qest_hello_dialog_1</text> <next>2</next> </phrase> <phrase id="2"> <text>labx8_test_nps_qest_hello_dialog_2</text> <action>dialogs.break_dialog</action> </phrase> </phrase_list> </dialog> </game_dialogs> Зарегестрирован в system.ltx Изменено 9 Апреля 2011 пользователем Stalker_AleX333 aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
Whisper 29 Опубликовано 9 Апреля 2011 Поделиться Опубликовано 9 Апреля 2011 =VENOM=, Спасибо, только диалог не стопорится во время проигрывания(звук идет на фоне) - этим можно как-то управлять? И звук только в ogg должен быть, wav совсем не понимает? Ссылка на комментарий
=VENOM= 50 Опубликовано 9 Апреля 2011 Поделиться Опубликовано 9 Апреля 2011 Stalker_AleX333, у тебя второй и третий диалоги начинаются сразу с фразы "1", а должны начинаться всегда с "0", если не ошибаюсь ... Whisper, насчёт притормаживания диалога никогда не задумывался даже ... Возможно, проще сделать два последовательных диалога - первый обрывается с тем звуком, который тебе нужен, а второй активировать следом, снова "обратившись" к NPC? Игра подерживает только ogg, есть куча конвертеров, которыми легко и просто можно перегнать любой звукофайл (не только wav) в ogg. Только если это будет каким-то "мировым" звуком (выстрел, музыка из репродукторв и т.п.), тогда придётся прогонять его (wav) через SDK - это тоже очень просто. Ссылка на комментарий
Whisper 29 Опубликовано 9 Апреля 2011 Поделиться Опубликовано 9 Апреля 2011 =VENOM=, Со звуком уже разобрался, перевел в огг. Но прерывать диалог там никак - там именно нужно, чтобы на длину звука(1-3 с.) диалог замер(ждем сообщения на экране от непися с которым общаемся, очередного), а потом ехало все дальше. Ссылка на комментарий
Garry_Galler 7 Опубликовано 9 Апреля 2011 Поделиться Опубликовано 9 Апреля 2011 Просто воткни в конструктор диалога в нужную фразу action с функцией, включающей проигрывание звука, например: <action>dialogs.tra_la_la</action> Абсолютно не нужно. Цитата из справочника: "Фразе можно сопоставить звук. Для этого в каталог sounds\characters_voice\dialogs\ нужно поместить звук с именем, как у тега "text" и расширением "*.ogg". Но говорить будут только NPC." Ссылка на комментарий
Whisper 29 Опубликовано 9 Апреля 2011 Поделиться Опубликовано 9 Апреля 2011 Garry_Galler, Спасибо, полезно, но в данному случае фразу выдает функция, так-как она динамическая сама по себе. А и, кстати, за что отвечает параметр priority в dialogs.xml ? Ссылка на комментарий
Garry_Galler 7 Опубликовано 9 Апреля 2011 Поделиться Опубликовано 9 Апреля 2011 priority - произвольное целое число. Имеет смысл только для диалогов актора. Диалоги сортируются по этому признаку в окне выбора Почитай тему про диалоги в справочнике по функциям и классам. malandrinus там все расписал. Ссылка на комментарий
Whisper 29 Опубликовано 9 Апреля 2011 Поделиться Опубликовано 9 Апреля 2011 Спасибо, читаю-изучаю! Разбил фразу на две части(да и звуков тоже два, на самом деле), первая статическая и проигрывает по встроенному методу, а вторая - функцией. Но паузы никакой нет, поэтому звуки только сливаются. Есть какие-то задержки? Типа ничего не делать пару секунд? Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти