Overf1rst 1 515 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 19 10 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 1 025 Опубликовано 26 февраля стрелок_2009 Ну, как сказать, GeJorge в SGM 2.2 для каждого ствола вывел его базовые характеристики с форматированием и цветовым выделением, а вас что-то сдерживает. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
NewValveCom 125 Опубликовано 2 марта Возможно ли (не прошу сделать) сделать скрипт, противоположный npc_in_actor_frustrum? Т.е. выдать инфопоршень, когда НПС исчезает с поля зрения актора. Пытался сделать таким образом: Спойлер function npc_out_of_actor_frustrum(npc) local actor_dir = device().cam_dir local npc_dir = npc:position():sub(db.actor:position()) local yaw = yaw_degree3d(actor_dir, npc_dir) news_manager.send_tip(db.actor, "g_man_ischez", nil, "seeker", nil, nil) return yaw > 35 end Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 1 025 Опубликовано 2 марта 5 часов назад, NewValveCom сказал: противоположный npc_in_actor_frustrum? Противоположная - это инверсия: not npc_in_actor_frustrum(npc) function npc_out_actor_frustrum(npc) return not npc_in_actor_frustrum(npc) end 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
NewValveCom 125 Опубликовано 2 марта 6 часов назад, denis2000 сказал: Противоположная - это инверсия: not npc_in_actor_frustrum(npc) function npc_out_actor_frustrum(npc) return not npc_in_actor_frustrum(npc) end Вешаю условие исчезновения сталкера после пропажи с поля зрения согласно скрипту - не работает. Спойлер [logic@stalker_noname] suitable = {=check_npc_name(stalker_noname)} active = walker@1 prior = 200 [walker@1] path_walk = man_1_walk on_info = {+noname_spawn} remark@1 meet = no_meet [remark@1] target = story | actor on_info = {=npc_in_actor_frustrum} %+noname_frustrumed% on_info2 = {+noname_forgot} walker@2 anim = wait meet = no_meet close_snd_hello = nil close_snd_bye = nil [walker@2] path_walk = man_2_walk on_info = {=npc_out_actor_frustrum} %=send_tip(test:got_duty_light_armor) =remove_npc% meet = no_meet Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 1 025 Опубликовано 2 марта NewValveCom Где прописана функция какие и как туда передаются параметры? Подумайте и ответьте на эти вопросы. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Вереск 35 Опубликовано 3 марта Продолжаю копаться в звуковых файлах ЗП/ЧН. Появился вопрос по поводу того, как конкретно работают периоды в файле configs\environment\sound_channels.ltx Вот пример секции звуковых каналов: [crows_01] max_distance = 30.000000 min_distance = 20.000000 period0 = 50000 period1 = 55000 period2 = 7000 period3 = 20000 sounds = ambient\creatures\crow_01, ambient\creatures\crow_02 Как конкретно работают period0, period1, period2, period3? Они просто считывают указанное в них время и не играют звук во время него или между period0 - period1 высчитывается среднее время и звук не играется во время него? И в чём измеряются эти цифры (секунды/миллисекунды?). Обычно тыкал на подбор, но сейчас стало интересно, как всё же это устроено. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 1 025 Опубликовано 3 марта Вот что написано по этим параметрам в движке: period 0 эта опция определяет минимальный интервал времени запуска (в секундах). period 1 эта опция определяет максимальный интервал времени запуска (в секундах). period 2 эта опция отвечает за минимальный интервал паузы (в секундах). period 3 эта опция отвечает за максимальный интервал паузы (в секундах). Однако имхо не в секундах, а в милисекундах. Должно соблюдаться period 0 < period 1, а period 2 < period 3 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
monk 460 Опубликовано 3 марта (изменено) Возможно ли НПС прописать/убрать какие либо партиклы скриптом/логикой? Свечение, горение, дым, пар, искры и т.п. Изменено 3 марта пользователем monk Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 698 Опубликовано 3 марта 13 минут назад, monk сказал: Возможно ли НПС прописать/убрать какие либо партиклы скриптом/логикой? В ЗП, когда ГГ движется в Путепроводе под Припятью, отыгрываются партиклы зеленого дыма прямо "перед носом" ГГ. Создается иллюзия, что ГГ находится в облаке ядовитых испарений. В ЧН, над головой Стрелка в битве на ЧАЭС, горит прямо защитный Нимб какой-то, пока Шрам шмаляет по нему из Гаусс пушки. Все это партиклы, которые отыгрываются на НПС. Привязка идет к определенной кости скелета. Можете подсмотреть как это сделано в ресурсах игр ЗП и ЧН. 1 Терпение... И все получится. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Вереск 35 Опубликовано 4 марта 21 час назад, denis2000 сказал: Вот что написано по этим параметрам в движке: period 0 эта опция определяет минимальный интервал времени запуска (в секундах). period 1 эта опция определяет максимальный интервал времени запуска (в секундах). period 2 эта опция отвечает за минимальный интервал паузы (в секундах). period 3 эта опция отвечает за максимальный интервал паузы (в секундах). Однако имхо не в секундах, а в милисекундах. Должно соблюдаться period 0 < period 1, а period 2 < period 3 Спасибо за помощь, а то никак не мог понять, как они конкретно роботают. Если не сложно и знаешь, подскажи ещё по такому вопросу - возможно ли создать для локации отдельные наборы эмбиентов со своими звуковыми каналами? На форуме читал где-то, что для этого достаточно кинуть в папку, находящуюся по пути configs\environment\ambients, файл с названием локации (к примеру escape.ltx) в нём прописать секции (day, night, evening, morning и т.п.), потом в sound_channels.ltx создать необходимые звуковые каналы и на локации будут играть именно они. Попробовал, но ничего из этого не работает по итогу. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
стрелок_2009 7 Опубликовано 4 марта Сделал новую карту для игры и разместил на ней локации (оригинальные) и открывая карту в КПК локации смещены, потом где-то вычитал что надо изменить параметр round_rect , изменил его и теперь карта в КПК и миникарте отметки смещены Что делать? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 1 025 Опубликовано 4 марта 7 часов назад, Вереск сказал: Попробовал, но ничего из этого не работает по итогу. Не удивительно! Делать надо так: 1. В файле gamedata\configs\game_maps_single.ltx в секции локации прописываем параметр weathers например: weathers = door 2. В папку gamedata\configs\environment\weathers\ добавляем файл door.ltx в котором указываем параметр ambient например: ambient = door2 3. В файл gamedata\configs\environment\ambients.ltx добавляем секцию door2 с параметром sound_channels = door3 4. В файл gamedata\configs\environment\sound_channels.ltx добавляем секцию door3 с параметром sounds = ambient\rnd_outdoor\rnd_shooting_1, ambient\rnd_outdoor\rnd_shooting_2, ambient\rnd_outdoor\rnd_shooting_4, ambient\rnd_outdoor\rnd_shooting_5, ambient\rnd_outdoor\rnd_shooting_7 В результате имеем локацию с постоянной канонадой на фоне. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Вереск 35 Опубликовано 5 марта 22 часа назад, denis2000 сказал: Не удивительно! Делать надо так: 1. В файле gamedata\configs\game_maps_single.ltx в секции локации прописываем параметр weathers например: weathers = door 2. В папку gamedata\configs\environment\weathers\ добавляем файл door.ltx в котором указываем параметр ambient например: ambient = door2 3. В файл gamedata\configs\environment\ambients.ltx добавляем секцию door2 с параметром sound_channels = door3 4. В файл gamedata\configs\environment\sound_channels.ltx добавляем секцию door3 с параметром sounds = ambient\rnd_outdoor\rnd_shooting_1, ambient\rnd_outdoor\rnd_shooting_2, ambient\rnd_outdoor\rnd_shooting_4, ambient\rnd_outdoor\rnd_shooting_5, ambient\rnd_outdoor\rnd_shooting_7 В результате имеем локацию с постоянной канонадой на фоне. Так это получается для каждой локации придётся свою погоду делать. А если у меня к примеру Атмосфер 3, как база используется, то для каждой локации дублировать его секции, а это уже по моему глупо. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 1 025 Опубликовано 5 марта В 04.03.2025 в 13:44, Вереск сказал: достаточно кинуть в папку, находящуюся по пути configs\environment\ambients, файл с названием локации (к примеру escape.ltx) в нём прописать секции (day, night, evening, morning и т.п.), потом в sound_channels.ltx создать необходимые звуковые каналы и на локации будут играть именно они. О, а такая схема тоже осталась в движке и работает с секциями: [day], [default], [evening], [morning], [night], [rain], [tuman] Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Вереск 35 Опубликовано 6 марта 7 часов назад, denis2000 сказал: О, а такая схема тоже осталась в движке и работает с секциями: [day], [default], [evening], [morning], [night], [rain], [tuman] Видимо нет, потому что не работает она. Если можешь, опиши подробней, как она действует, возможно что-то не правильно я делал. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 1 025 Опубликовано 6 марта (изменено) 3 часа назад, Вереск сказал: Видимо нет, потому что не работает она. Точно работает: 1. Я предварительно прошерстил исходники движка и она там не вырезана, что меня очень удивили - вед это анахронизм. 2. Я проверил ее работу точно по описанию - все заработало. 3 часа назад, Вереск сказал: возможно что-то не правильно я делал. Так выкладываете правки... Изменено 6 марта пользователем denis2000 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Вереск 35 Опубликовано 6 марта 7 часов назад, denis2000 сказал: Точно работает: 1. Я предварительно прошерстил исходники движка и она там не вырезана, что меня очень удивили - вед это анахронизм. 2. Я проверил ее работу точно по описанию - все заработало. Так выкладываете правки... А исходники CoC'a глянуть могёшь? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 1 025 Опубликовано 6 марта 18 минут назад, Вереск сказал: А исходники CoC'a глянуть могёшь? Там в этом месте нет значимых отличий от оригинала. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
NewValveCom 125 Опубликовано Четверг в 17:09 С out_of_frustrum разобрался. Нужно было в ещё один скрипт функцию вписать (о чём я не сразу подумал). Сделал скрипт на смену текстуры мапы ПДА во время нахождения актора в зоне. Спойлер function on_info(info_id) if xr_conditions.actor_in_zone(actor, nil, {"tonneled"}) then if info_id == "ui_pda" then level.start_stop_menu(level.main_input_receiver(), true) elseif info_id == "ui_pda_hide" then level.start_stop_menu(PdaNoiseWnd(), true) end end end class "PdaNoiseWnd" (CUIScriptWnd) function PdaNoiseWnd:__init() super() self:Init(0,0,1024,768) self.ClickBtnExit = function() level.start_stop_menu(self, true) end self.noise = CUIStatic() self.noise:InitTexture("ui\\ui_no_signal") self.noise:SetOriginalRect(0,0,1024,768) self.noise:Init(3,20,891,643) self:AttachChild(self.noise) end function PdaNoiseWnd:OnKeyboard(dik, keyboard_action) CUIScriptWnd.OnKeyboard(self, dik, keyboard_action) if keyboard_action == ui_events.WINDOW_KEY_PRESSED then if dik == DIK_keys.DIK_ESCAPE or dik == DIK_keys.DIK_P or dik == DIK_keys.DIK_H or dik == DIK_keys.DIK_M then self:ClickBtnExit() end end return true end По итогу безлоговый вылет. Буду благодарен, если подскажете, ГДЕ может быть ошибка. Дополнено 33 минуты спустя Также хочу дополнить. В прошлой модификации добавил функцию боя нпс с ножом. Всё было хорошо, но спустя время, перенеся в другой мод все необходимые файлы, скрипты, функции - нпс просто подходят к актору и... всё. С ножом по сути подходят к нему вплотную и ничего не делают. Все скрипты я кинул и зарегистрировал. Анимация knife_fire зарегистрировал в state_lib. Что я упускаю? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 123 Опубликовано Пятница в 08:22 NewValveCom Возможно схема meet перебивает схему боя. В планировщике точно всё добавили? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
NewValveCom 125 Опубликовано Пятница в 11:22 2 часа назад, Mass сказал: NewValveCom Возможно схема meet перебивает схему боя. В планировщике точно всё добавили? Удалил секцию meet - не помогло. По скриптам анимаций, самих функций боя с ножем я всё добавил. Дополнено 44 минуты спустя Насчёт планировщика. Вот биндер в xr_combat.script Спойлер ---------------------------------------------------------------------------------------------------------------------- -- binder ---------------------------------------------------------------------------------------------------------------------- function add_to_binder(npc, ini, scheme, section, storage) local manager = npc:motivation_action_manager() manager:add_evaluator( xr_evaluators_id.script_combat, this.evaluator_check_combat("script_combat",storage) ) local action = manager:action(stalker_ids.action_combat_planner) action:add_precondition(world_property(xr_evaluators_id.script_combat, false)) xr_combat_zombied.add_to_binder ( npc, ini, storage, manager ) xr_combat_camper.add_to_binder ( npc, ini, storage, manager ) --------------------------------------------------------------------------------------------------- xr_combat_knife.add_to_binder ( npc, ini, storage, manager ) --------------------------------------------------------------------------------------------------- end Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
FFFFF 0 Опубликовано Пятница в 15:56 (изменено) Здравствуйте. Игра вылетает с известным описанием. Вроде зарегистрировал смарт везде: в геим графс, смарт террэин маск, но однако это происходит. Спойлер FATAL ERROR [error]Expression : fatal error [error]Function : CInifile::r_section [error]File : D:\prog_repository\sources\trunk\xrCore\Xr_ini.cpp [error]Line : 502 [error]Description : <no expression> [error]Arguments : Can't open section 'tm_smart1'. Please attach [*.ini_log] file to your bug report Изменено Пятница в 16:01 пользователем FFFFF Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mass 123 Опубликовано Пятница в 16:05 4 часа назад, NewValveCom сказал: Удалил секцию meet Она тут ни причём. Нужно смотреть планировщик и экшен Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
N42 766 Опубликовано Пятница в 17:40 (изменено) В 06.03.2025 в 20:09, NewValveCom сказал: level.start_stop_menu(level.main_input_receiver(), true) Это только в тч (и чн вроде) работает (если не используешь какой-то движок, который восстанавливает) Изменено Пятница в 17:48 пользователем N42 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 1 090 Опубликовано Пятница в 17:46 1 час назад, FFFFF сказал: Игра вылетает с известным описанием. В конфигах не найдена секция [tm_smart1] на которую что-то (в спавне? в скриптах? в смарттеррейнах?) ссылается. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты