Overf1rst 1 541 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Тень Чернобыля. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 7 4 1 3 1 4 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sumrak6835 248 Опубликовано 23 июня 11 часов назад, Andrey_Spider сказал: В чем может быть проблема? Для каждого уровня графы собрал? Надо сначала создать АИ-сетки для ВСЕХ уровней, графы для каждого уровня, потом общий граф, затем аллспавн. В игру закидывать: файлы level.ai и level.gct для всех уровней в каждую папку, game.graph и all.spawn. Также в конфиги всё прописать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CIDOPOBICH 4 Опубликовано 25 июня Доброго времени суток. Как в SDK сделать так, чтобы нпс ходил по определённым точкам, допустим мне надо, чтобы он ходил вокруг дома. Как это реализовать? у Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
FacingSlave 163 Опубликовано 25 июня CIDOPOBICH Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CIDOPOBICH 4 Опубликовано 27 июня Как выдать инфопоршень после проверки предмета у ГГ? У меня есть квест, который должен появиться после поднятия определённого предмета. function have_pda(task, objective) if db.actor ~= nil then return db.actor:object("kostyak_pda") ~= nil then db.actor.give_infoportion("def_otkl_task_start") end end На форумах нашел такой код. Но при поднятии предмета не завершается квест "найти этот предмет" и не появляется следующий. P.S. в info_l02_garbage указал выдачу квеста: <info_portion id ="def_otkl_task_start"> <task>def_otkl_task</task> </info_portion> у Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CIDOPOBICH 4 Опубликовано 29 июня Добрый день, возникла проблема. В SDK заспавнил оружие и костюм, а они оказались полностью сломанные, Used AI Locations отключил. Еще в настройках оружия написано 0 патронов в магазине, а спавнится 63 патрона у Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Yara 145 Опубликовано 29 июня (изменено) CIDOPOBICH Либо у них item condition 0, либо разные классы (class) в секциях сдк / игра. Флаг Used AI Locations на это не влияет. 17 часов назад, CIDOPOBICH сказал: Насчёт классов не понял, где их посмотреть? Для примера, открываешь w_mp5.ltx (в геймдате сдк) и находишь параметр class. Его значение должно совпадать с аналогичным значением в w_mp5.ltx (в игровой геймдате / дб). Изменено 30 июня пользователем Yara https://sites.google.com/view/xray-sdk-0-4-smg Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CIDOPOBICH 4 Опубликовано 29 июня 4 часа назад, Yara сказал: CIDOPOBICH Либо у них item condition 0, либо разные классы (class) в секциях сдк / игра. Флаг Used AI Locations на это не влияет. Вот настройки предмета в SDK Спойлер Насчёт классов не понял, где их посмотреть? у Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 840 Опубликовано 1 июля (изменено) del Изменено 2 июля пользователем Mawrak Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CiberZold 1 259 Опубликовано 2 июля (изменено) В 30.06.2025 в 00:36, CIDOPOBICH сказал: Насчёт классов не понял, где их посмотреть? в файлах конфигах например, строка class у МР5 обычно ставят class = WP_LR300, это автоматическое оружие, при этом в отличии от класса WP_AK74, движок не требует от него указания в конфигах характеристик подствольного гранатомёта например, движок понимает, что это класс для оружия без подствольника, потому его обычно лепят на ПП, и пулемёты, а для класса СВД можно не указывать режим огня, потому что опять же движок понимает, что это класс для винтовок без автоматического огня. Изменено 2 июля пользователем CiberZold Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CIDOPOBICH 4 Опубликовано 3 июля Испробовал все способы, но никак не получается. Как выдать инфопоршень при наличии определённого предмета у ГГ? Например, у меня задание "найти кпк", когда игрок поднимает kostyak_pda, выдаётся инфопоршень bar_comp у Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gambimo 3 Опубликовано 3 июля (изменено) CIDOPOBICH В папке скриптов в файле bind_stalker ищи сторочку: function actor_binder:on_item_take (obj) После этой строчки вставляй такую конструкцию: if obj:section() == "Техническое_название_предмета" and not has_alife_info("Инфопошень_который_выдаётся") then db.actor:give_info_portion("Инфопошень_который_выдаётся") end В итоге должно выйти вот так: Спойлер Изменено 3 июля пользователем Gambimo 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CiberZold 1 259 Опубликовано 3 июля 10 минут назад, CIDOPOBICH сказал: Например, у меня задание "найти кпк" раз есть задание, то это можно делать через игровые таски, у тебя есть задание <game_task id="что-то"> внутри него есть подзадания, найти ПДА например <objective> <text>Найти ПДА</text> внутри можно указать функции завершения этого подзадания, любая функция которая пока у тебя есть это задание на постоянном апдейте проверяет наличие предмета в рюкзаке и выдаёт true если такой предмет есть <function_complete>тут функция проверки предмета</function_complete> <infoportion_fail></infoportion_fail> дополнительно можно указать инфопоршни провала задания и успеха а можно указать какой инфопоршень выдаст игра после выполнения этого подзадания ,т.к. выполнение это наличие ПДА , то при поднятии ПДА игра и выдаст нужный инфопоршень: <infoportion_set_complete>bar_comp</infoportion_set_complete> 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
FacingSlave 163 Опубликовано 3 июля (изменено) CIDOPOBICH есть способ в bind.stalker такую фичу делал на тч, чуток потом скину Дополнено 41 минуты спустя CIDOPOBICH в bind_stalker есть такая функция: function actor_binder:on_item_take (obj) В ней такие строчки кидаешь: if obj:section() == "квестовый предмет" and not has_alife_info("инфопоршень") then db.actor:give_info_portion("инфопоршень") end Дальше уже таск в инфопоршне выдаешь и все Либо через рестриктор, создаешь условие для квестового предмета, потом в рестриктор условие кидаешь а уже потом выдает инфопоршень Изменено 3 июля пользователем FacingSlave 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CIDOPOBICH 4 Опубликовано 4 июля Как можно сделать проверку на наличие определённого кол-ва предметов в инвентаре? Допустим есть задание, где игроку нужно найти 5 энергетиков. Нашёл 5 энергетиков, квест выполнен. Заранее спасибо! Дополнено 18 минуты спустя Впервые столкнулся с такой проблемой. До этого делал диалоги, всё было нормально. Но сейчас что-то пошло не так. Я прописал сам диалог, его перевод, а в игре отображаются кодовые названия, а не текст. Перепроверил правильность написания, всё ок. Что делать? Спойлер <dialog id ="dv_sv_guard_task"> <dont_has_info>dv_find_wpn_start</dont_has_info> <phrase_list> <phrase id ="0"> <text>dv_sv_guard_task_0</text> <next>1</next> </phrase> <phrase id ="1"> <text>dv_sv_guard_task_1</text> <next>2</next> <next>21</next> </phrase> <phrase id ="2"> <text>dv_sv_guard_task_2</text> <action>dialogs.break_dialog</action> <give_info>dv_find_wpn_start</give_info> </phrase> <phrase id ="21"> <text>dv_sv_guard_task_21</text> <action>dialogs.break_dialog</action> </phrase> </phrase_list> </dialog> Спойлер <string id="dv_sv_guard_task_0"> <text>Мне нужны деньги, у вас есть какая-нибудь работа?</text> </string> <string id="dv_sv_guard_task_1"> <text>Работа? Хм-м... думаю да. Нашему отряду нужно новое снаряжение. Подсобишь?</text> </string> <string id="dv_sv_guard_task_2"> <text>Конечно.</text> </string> <string id="dv_sv_guard_task_21"> <text>Прости, я не готов пока.</text> </string> у Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 1 152 Опубликовано 4 июля CIDOPOBICH может файл stable_dialogs_darkvalley.xml не там лежит... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CIDOPOBICH 4 Опубликовано 4 июля 3 минуты назад, macron сказал: CIDOPOBICH может файл stable_dialogs_darkvalley.xml не там лежит... Проверил, лежит по пути gamedata\config\text\rus 1 у Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 1 152 Опубликовано 4 июля 2 часа назад, CIDOPOBICH сказал: Проверил, лежит по пути gamedata\config\text\rus Попробуй еще в eng засунуть, может у тебя ww версия... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
FacingSlave 163 Опубликовано 4 июля 9 часов назад, CIDOPOBICH сказал: Как можно сделать проверку на наличие определённого кол-ва предметов в инвентаре? Допустим есть задание, где игроку нужно найти 5 энергетиков. Нашёл 5 энергетиков, квест выполнен. Заранее спасибо! Проверял много способов но у меня работает только такой: function название(first_speaker, second_speaker) local n=3 ----- количество сколько нужно local count=0 db.actor:iterate_inventory(function (dummy, item) if item:section()=="квестовый предмет" then count=count+1 end end, nil) if count>=n then return true else return false end end Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 840 Опубликовано 6 июля Сущесвтует ли какой-то пример или реализация скриптового таймера (в чистом lua, не логика), который мог бы пережить сейв-лоад? То есть чтобы отсчет продолжался даже после сейв-лоада. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DarkSnowder 101 Опубликовано 7 июля Всем здравия. Вот в чём может быть причина того, что НПС не занимает конкретно свое место в гулаге? Решил создать обновлённый лагерь для Бара, куда вписал всех нужных мне персонажей, но конкретно двое из них наотрез отказываются занимать свои позиции. На примере Иванцова: Спойлер t = { section = "logic@bar_dolg_ivantsov", idle = 0, prior = 5, state = {0}, in_rest = "", out_rest = "", predicate = function(obj_info) return obj_info.profile_name == "bar_dolg_ivantsov" end } table.insert(sj, t) Спойлер ; Иванцов (ivantsov) [logic@bar_dolg_ivantsov] active = walker@bar_dolg_ivantsov on_death = death@bar_dolg_ivantsov [walker@bar_dolg_ivantsov] path_walk = ivantsov_walk path_look = ivantsov_look meet = meet@bar_dolg_ivantsov def_state_standing = guard [death@bar_dolg_ivantsov] on_info = %+sar2_death_41% [meet@bar_dolg_ivantsov] meet_state = 5 | guard@talk_hello meet_state_wpn = 5 | guard@talk_hello use = true use_wpn = true victim = 5 | actor victim_wpn = 5 | actor В конфигах самого Иванцова проблем нет - в игре он спокойно появляется и "живёт". Но свое законное место в лагере он не занимает. Сам лагерь в игре работает без сбое - другие долговцы спокойно свои позиции занимают. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CIDOPOBICH 4 Опубликовано 7 июля Всех приветствую. Не могу разобраться в классах оружия и костюмов. На локациях спавнятся в 0 убитые. Скопировал файлы конфигов оружия и брони в игру, но всё осталось прежним. Прошу помощи, разобраться поподробнее. у Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
monk 483 Опубликовано 9 июля Всем привет. Какие именно текстуры нужно поменять, чтобы на статическом освещении избавиться от рожицы в свете фонаря? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AfterGlow 603 Опубликовано 9 июля Mawrak логика = луа. CIDOPOBICH посмотри кондишн в сдк. monk в папке fx глянь. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
monk 483 Опубликовано 9 июля 20 минут назад, AfterGlow сказал: в папке fx глянь. Сам спросил - сам нашёл: internal_light_att.dds 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 840 Опубликовано 9 июля (изменено) 1 час назад, AfterGlow сказал: Mawrak логика = луа. что я имел ввиду: логика = работает в пределах локации так как висит на объекте (такой таймер сделать это 5 секунд, я бы не спрашивал) lua = таймер будет продолжаться при смене локации (обычный таймер я уже сделал, это тоже легко, но он отключается при загрузке сейва, естественно) В принципе у меня есть идея сделать это на основе рюкзака, в котором предметы будут обозначать обратный отсчет. Пока не пробовал, но по идее должно работать. Изменено 9 июля пользователем Mawrak 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты