Overf1rst 1 503 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 19 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DimoNULL 3 Опубликовано 4 ноября Что такое колбэки и что такое рестикторы Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 976 Опубликовано 4 ноября (изменено) DimoNULL Call back (обратный вызов) - это когда движок вызывает определенную скриптовую функцию в ответ на определенное событие. Например на событие поднятие предмета ГГ вызывается функция actor_binder:on_item_take из bind_stalker.script. Space restrictor (Пространственный ограничитель) - специальный спавн-объект обладающий двумя основными функциями: 1. Запуск скриптовой логики 2. Ограничение игрового пространства для мобов. Изменено 4 ноября пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DimoNULL 3 Опубликовано 5 ноября В 04.11.2024 в 20:59, denis2000 сказал: DimoNULL Space restrictor (Пространственный ограничитель) - специальный спавн-объект обладающий двумя основными функциями: 1. Запуск скриптовой логики 2. Ограничение игрового пространства для мобов. То есть я могу при помощи него накинуть какую то логику на объект? Вместо того, что бы пробегаться по всем объектам, сверять тот ли это объект который мне нужен, я могу сделать это через рестиктор? Надеюсь я правильно понял. Но вот что значит "ограничение пространства для мобов" я чет вообще не понимаю Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 661 Опубликовано 5 ноября (изменено) Где в конфигах указывается длина полоски бронебойности костюма в UI? Именно визуальная часть. У меня у брони прописан hit_fraction_actor = 0.35 но в инвентаре полоска брони оказывается полностью пустой. Изменено 5 ноября пользователем Mawrak Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Prostomod 1 316 Опубликовано 5 ноября (изменено) 20 часов назад, DimoNULL сказал: Но вот что значит "ограничение пространства для мобов" я чет вообще не понимаю Ну если очень грубо говоря, то с помощью него ты помечаешь определённую область игрового пространства, в которой действует ограничение на передвижение болванчиков. То есть, сделать так, чтобы болванчик (или все мобы и НПС) ходил только там где надо и не заходил куда-нибудь, куда ему не надо, даже если там для него есть АИ-сетка (например, которая проходит через стену и только ради того, чтобы на уровне была единая сетка). Есть 4 типа рестрикторов: NONE, NOT A, IN и OUT. В чём отличие первых двух - я так и не понял до конца, пусть более осведомлённые в этом вопросе меня дополнят. А вот IN и OUT рестрикторы очень сильно отличаются от первых двух. IN - это ограничение внутри области для передвижения НПС: если рестриктор помечен как IN, то НПС не будут в него входить. Удобно, если надо, например, протянуть АИ-сетку сквозь меш (чтобы на уровне сетка была валидна) и избежать ситуаций, когда болванчики будут пробегать через стену в этом месте. OUT наоборот - ограничение вне области для передвижения НПС. Если поставить его, то НПС сможет передвигаться только внутри области. Это очень хорошо подходит, если надо сделать так, чтобы НПС находились в определённом месте и не сбегали на другой конец карты. Рестрикторы можно настроить как в SDK, так и в логике НПС. Если сделать рестриктор IN или OUT в SDK, то он будет влиять на всех болванчиков на уровне (в моём опыте OUT рестрикторы через SDK оказались бесполезны). А если рестриктор сделать как NOT A (или NONE, кто-нибудь, пожалуйста, объясните чем они отличаются:)) в SDK, а в логике НПС или моба прописать in_restr/out_restr = "имя рестриктора", то тогда этот рестриктор будет типа IN или OUT только для определённого НПС. Можно даже таким образом один и тот же растриктор сделать типом IN для одних НПС (например, атакующих, но которые не должны подходить в упор) и OUT для других (например, тем кто отбивается и не должны случайно пойти в атаку). Дополнено 10 минуты спустя 20 часов назад, DimoNULL сказал: То есть я могу при помощи него накинуть какую то логику на объект? Вместо того, что бы пробегаться по всем объектам, сверять тот ли это объект который мне нужен, я могу сделать это через рестиктор? Скорее, более эффективно проверять наступление каких-нибудь событий. Например, если надо выдать инфопоршень при поднятии предмета, то вместе того, чтобы каждый тик проверять, есть ли у нас нужный предмет в инвентаре и нет ли нужного поршня (чтобы кучу раз не выдавать его, если предмет в инвентаре валяется), мы можем просто один раз при срабатывании коллбека on_item_take (то есть когда игрок поднимает какой-нибудь предмет) проверить, что поднялся именно нужный предмет. И таким образом, это положительно скажется на быстродействии игры. Ну а через рестриктор можно, например, сделать какую-нибудь логику, которая не должна быть привязана к какому-нибудь физическому объекту (например, координировать действия НПС и других объектов в катсцене), либо делать проверки на нахождение чего-либо в нужном месте (и обратное). Изменено 6 ноября пользователем Prostomod 1 1 Мод в разработке - X-7: Эпицентр Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
sakrav 0 Опубликовано 6 ноября (изменено) Здравствуйте, подскажите полнейшему чайнику. А как начать? есть подробный примерный гайд? очень хочется начать этим заниматься Заранее спасибо! :) Изменено 6 ноября пользователем sakrav Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stinger 24 Опубликовано 7 ноября sakrav начать что? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Prostomod 1 316 Опубликовано 7 ноября sakrav Попробуй с мелочей: подкорректировать значения в конфигах, прописать новый предмет в продажу, мб скрипт простой накидать или диалог сделай. Главное - с чего-то небольшого, и потихоньку пытаться усложнять себе задачу. Туториалов в интернете полно. Мод в разработке - X-7: Эпицентр Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Ilia_Onoprienko 0 Опубликовано 7 ноября Здравствуйте, можете, пожалуйста, подсказать, как создать свой сюжетный мод? У меня есть идея и желание, но не знаю, как создать Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Prostomod 1 316 Опубликовано 7 ноября Mawrak Вообще, полоска прогрессии показывает значение от 0 до 1, а формула, переводящая значение защиты брони в значение для полоски зашито в движок. Но это так, к слову. Я глянул что у тебя не так, и причина в том, что у тебя потеряны коэффициенты защиты для костей для этого костюма. Что имеется в виду. Защита от пуль в сталкере работает сложнее, чем просто "режем урон на значение коэффициента защиты помноженный на состояние брони" (то есть сложнее, чем защита от аномалий). При получении урона там работает сложная система, в которой в том числе участвуют коэффициенты костей. То есть, реально сделать так, чтобы, например, в ноги НПС урон не проходил, а в голову проходил полный урон, и для этого нужно править не коэффициенты защиты костюма, а коэффициенты защиты костей. Ссылка на секцию с коэффициентами костей прописывается в ключе bones_koeff_protection, и в ней находится список костей с 2 значениями: коэффициент урона и брони. А теперь поясняю подробнее, что у тебя не так. У тебя куда-то потерялись секции body_damage_50 и head_damage_40, из которых состоит секция actor_mix_50_40, которая прописана как секция коэффициентов костей. Я не знаю, по каким причинам IX-Ray не вылетел из-за несуществующей секции, но обработалось такое просто: у тебя назначались костям стандартные значения, которые прописаны в движке: полный урон в кость и 0 брони. А виджет характеристик костюма на самом деле показывает тебе броню на кости bip01_spine. А так как значение брони, "считанное" из конфига равняется 0 (потому что из-за невалидной секции у тебя все кости имеют такие параметры защиты), то у тебя броня на этой кости равняется 0, что и показал тебе виджет. И да: это также означает, что твоя броня на самом деле вообще не защищала от пуль. Так что в перестрелке не было разницы, бегать в броне или без неё. 1 Мод в разработке - X-7: Эпицентр Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 661 Опубликовано 8 ноября Prostomod спасибо большое за разъяснения, это многое объясняет Дополнено 9 минуты спустя Prostomod а теперь прикол, приписал туда actor_armor_medium, а отображается это только при наведении мышки (внизу на UI пустая полоска): Спойлер Если прописываю actor_armor_exo то вроде и там и там видно. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CiberZold 882 Опубликовано 8 ноября Mawrak у тебя как то странно этот и ещё один научник прописаны, зачем добавлен параметр fire_wound_protection? он все равно движком не используется, для защиты от пуль используется параметр bones_koeff_protection, где указывается секция которые обычно в файле damages.ltx, там как раз я такой секции не нашёл она у тебя почему то в самом outfite прописана. лучше сделай новый костюм как в оригинале, как в той же экзе, в конфиг брони в bones_koeff_protection пропиши новую секцию , и файле damages её создай по аналогии с экзой, только заполни уже нужными для данной брони параметрами брони костей. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 661 Опубликовано 8 ноября (изменено) 1 час назад, CiberZold сказал: fire_wound_protection это остаток из мода, откуда я выдрал его, там походу изменен движок, я знаю что он не используется в ванили и уже удалил параметр в новой версии Изменено 8 ноября пользователем Mawrak Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vladvexa188 6 Опубликовано 8 ноября Как в ЗП сделать из обычной метки квеста, полупрозрачный круг как этот: Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 976 Опубликовано 8 ноября (изменено) vladvexa188 Ничего не мешает добавить в любой момент любую метку на нужный объект: level.map_add_object_spot(id_объекта, имя_метки, описание_метки) И удалить: level.map_remove_object_spot(id_объекта, имя_метки) Изменено 8 ноября пользователем denis2000 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vladvexa188 6 Опубликовано 8 ноября 57 минут назад, denis2000 сказал: vladvexa188 Ничего не мешает добавить в любой момент любую метку на нужный объект: level.map_add_object_spot(id_объекта, имя_метки, описание_метки) И удалить: level.map_remove_object_spot(id_объекта, имя_метки) Ти по вот так? xrEffects: function val_start_find_shelter() level.map_add_object_spot(val_find_safehouse_sr, crlc_mdl, val_find_safehouse_text) end Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Ilia_Onoprienko 0 Опубликовано 8 ноября Можете подсказать как сделать сюжет на зп с сткоп Дополнено 2 минуты спустя Здравствуйте, подскажите как сделать сюжет на сталкер зов Припяти с Stcop Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 661 Опубликовано 8 ноября Ilia_Onoprienko берешь СДК, изучаешь его, собираешь спавн. Или спавнишь НПС по скриптам. Диалоги все прописываются в профили НПС и потом создаются в специальных файлах (папка configs/gameplay). Логика НПС прописывается в конфигах (configs/scripts). Слишком общий вопрос, чтобы конкретнее ответить, тут вопросница для конкретных вопросов по конкретным проблемам. Как это все выучить? По ютуб-туториалам, либо статьям, плюс метод проб и ошибок, и я бы сказал в первую очередь полагаться на последнее. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 976 Опубликовано 8 ноября vladvexa188 Самое примитивное: function add_map_spot(actor, npc, p) local obj_id = get_story_object_id(p[1]) level.map_add_object_spot(obj_id, p[2], p[3]) end 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 661 Опубликовано 8 ноября Prostomod короче как я понял в дополнение к тому что ты писал, у костюмов, блокирующих шлем, нельзя указывать actor_head_damage_absent как основу для секции (как сделано у actor_armor_medium), иначе UI дурит, при том только в одном месте, а в другом показывает броню. Честно говоря треш это тот еще, по хорошему надо будет залезть в движок и переделать это все в корне (все равно это UI полоски и так не совпадают с реальными значениями нормально). Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Ilia_Onoprienko 0 Опубликовано 8 ноября (изменено) Можете подсказать, как сделать мод на «Зов Припяти» с STCoP 3.3 и графическим паком без всяких программ или подскажите прогу, которая сделает квест за меня, просто очень хочется свой мод. Изменено 8 ноября пользователем Ilia_Onoprienko 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hrust 533 Опубликовано 8 ноября (изменено) Нужно выводить раздельно броню головы и броню костюма. P.S. куда-то потерялись магнитуды у артефактов, не обращайте внимания. Изменено 8 ноября пользователем Hrust 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RicoNRT 252 Опубликовано 8 ноября (изменено) 1 час назад, Ilia_Onoprienko сказал: которая сделает квест за меня Чё за бред? Как ты представляешь, что за ТЕБЯ какая-тот программа будет квест делать? И как ты без программ собрался квесты делать? Ты на ап про тоже без программ заходишь? Всё делается своим трудом, иначе если бы всё так просто было, то каждый месяц выходило-бы по 50-60 модов. Изменено 8 ноября пользователем RicoNRT Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 293 Опубликовано 8 ноября Ilia_Onoprienko За тебя никто ничего не сделает. Моды делают своими ручками. Скачай SDK 0.7 - это игровой редактор, через который ПЫС делали все 3 части сталкера. Также вместо обычного блокнота скачай Notepad ++, потому что он куда удобнее. На ютубе есть куча уроков по моддингу, советую тебе посмотреть Бориса Шепелёва, Андрея Непряхина, Шеву сталкера и S_Grez. Ещё в инете есть много текстовых уроков. Нет программ, которые за тебя всё сделают, есть только проги, которые упростят жизнь. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vladvexa188 6 Опубликовано 8 ноября 8 часов назад, denis2000 сказал: vladvexa188 Самое примитивное: function add_map_spot(actor, npc, p) local obj_id = get_story_object_id(p[1]) level.map_add_object_spot(obj_id, p[2], p[3]) end Спасибо за самое примитивное! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты