Overf1rst 1 502 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 19 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Toplol4ik 41 Опубликовано 12 января 8 часов назад, BadTrip сказал: по какому признаку в него вписывается данный id? BadTrip Абсолютно любой, разницы нет, но для удобства лучше использовать такой же как и в оригинале, просто изменив цифры. Также его нужно прописать в npc_profile 1 Просто создаю свой мод... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
bsanek628 2 Опубликовано 13 января (изменено) Народ, подскажите, как решить проблему? SGM 2.2. Квест "Бездна" - найти 3 документа в тёмной долине, в Х18. Так вот, проблема такая, иногда 1 из трёх документов проваливается в текстуры. Как его вытащить? Фича там в том, что лаборатория проходится с первого раза - без перезагрузки. Дело в том, что там скрипт, который "запоминает" сколько ты нашёл документов в текущем прохождении (к примеру 2 дока из 3-ёх) и при загрузке раннего сейва, до входа в лабораторию, этих двух документов, которые ты нашёл до перезагрузки, там уже не будет. И приходится переигрывать либо полностью этот квест, либо полностью всю локацию. А без закрытия этого квеста недоступны Военные склады. Изменено 13 января пользователем bsanek628 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 971 Опубликовано 13 января (изменено) bsanek628 Спавн квестовых предметов в этом моде рандомный, выбор одной из заданных точек происходит в момент первого посещения локации. Ищите. Лень искать - гуглите места спавна, лень гуглить - читерите... Изменено 13 января пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BadTrip 2 Опубликовано 13 января bsanek628 Есть вариант решения, он немного запарный, просто нужно уточнить, ты точно уверен, что предмет проваливается в текстуры? Ты использовал Демо рекорд чтобы найти его? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
bsanek628 2 Опубликовано 13 января (изменено) 4 часа назад, denis2000 сказал: bsanek628 Спавн квестовых предметов в этом моде рандомный, выбор одной из заданных точек происходит в момент первого посещения локации. Ищите. Лень искать - гуглите места спавна, лень гуглить - читерите... Прохожу не первый раз. Знаю, что там рандом. Но периодически у меня вот эти проваливались под пол. Изменено 13 января пользователем bsanek628 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 971 Опубликовано 13 января (изменено) bsanek628 Значит поместите предмет в инвентарь вот этим способом: [ Спавн предмета в рюкзак ГГ ] Секция документов x18_secret_docks_1, x18_secret_docks_2, x18_secret_docks_3 Изменено 13 января пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Diesel 225 Опубликовано 13 января (изменено) denis2000 denis2000 denis2000, не соответствует требованию. Нужна новая игра. Спавнить нужно через уимайнменю.скрипт, что бы хабар спавнился перед гг по нажатию клавиши в меню. Или как то так. Дополнено 21 минуты спустя Там кстати есть и через меню. Я с телефона туплю. Дополнено 27 минуты спустя Сига с телефона жопно работает. Реклама в пол экрана. Изменено 13 января пользователем Diesel Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Novik 21 Опубликовано 13 января Переделывал билдовскую свалку, перетекстурил террейн и обекты. сделал квадраты по краям террейна, размер получился примерно 1500x1500 И дошло дело до снимка карты, и вот такое вот получается. Слишком темная и видно туман, как можно исправить? я так понял это из за размеров? Другие карты скринил на других локациях всё нормально. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 293 Опубликовано 13 января Исправляю баги в моде. Есть три проблемы которые не знаю как решить: 1. В пда на глобальной карте не показывает отметки на локации, как буд-то уровень не подключён к игре, хотя прописывал её в game_levels и game_maps_single. Плюс сама текстура карты какая-то сплющенная. Если что карта из чн. 2. Изменил худ на вариант из Legend Returns и обрамление мини-карты теперь квадратное, а сама текстура террейна круглая. Пробовал по урокам в интернете копировать zone_map из чн, тогда мини-карта вообще пропадает. А если копировать этот файл из legend returns, то баг не решается. 3. У нпс дающего квест на поиск предмета сразу есть диалог игрока, что он нашёл предмет. Как сделать так, чтобы когда игрок возьмёт предмет который нужен, будет выдаваться инфопоршень, который можно будет прописать в has_info для диалога? Тогда диалог будет доступен только при поднятии предмета. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 659 Опубликовано 13 января (изменено) 2 часа назад, Skala сказал: 3. У нпс дающего квест на поиск предмета сразу есть диалог игрока, что он нашёл предмет. Как сделать так, чтобы когда игрок возьмёт предмет который нужен, будет выдаваться инфопоршень, который можно будет прописать в has_info для диалога? Тогда диалог будет доступен только при поднятии предмета. В ЗП есть готовая проверка в логике на наличие предмета {=actor_has_item(item_section)} ;проверка, что предмет есть {!actor_has_item(item_section)} ;проверка, что предмета нет Если нужно несколько предметов одного типа, то надо писать кастомный скрипт, могу подсказать, как, если надо. Если критично что-то делать именно на факт поднятия предмета с земли, то (если не ошибаюсь) тогда нужно дописать нужные проверки в bind_stalker.script в функцию actor_binder:on_item_take (она активируется каждый раз, когда что-то поднимается). Дополнено 9 минуты спустя Skala на этих проверках логики можно выдавать инфу или забирать ее. Но если нужно проверку именно на диалог, то можно прописать свою функцию в dialogs.script по типу (дайте ей уникальное название и укажите нужный item_section) function actor_has_my_item(first_speaker, second_speaker) return db.actor:object("item_section") ~= nil end И потом в диалоге добавляете проверку <precondition>dialogs.actor_has_my_item</precondition> Только с названием своей функции. Изменено 13 января пользователем Mawrak 1 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Prostomod 1 316 Опубликовано 14 января Кто-то сталкивался с проблемой, что озвучка НПС не всегда срабатывает? Ситуация: реализую катсцену с гопстопом, и для неё вытащил звук из ЧН (просто распаковал и перенёс как есть). Когда игрок заходит в нужный рестриктор, я выдаю поршень, который сменяет секцию логики НПС на другую и вызывает функцию проигрывания звука у НПС. И в этой логике работает всё как задумано, за исключением проигрывания звука. Секция переключается, но звук работает через раз: можно подправить немного какой-то скрипт (например, добавить лишний принт в лог) и звук заработает, а потом убрать, и снова сломается, а потом поменять логику, и способ перестанет работать. Спойлер Секции точно переключаются т.к. анимации у НПС меняются на те, что прописаны в секции + другие действия происходят. Перед переключением со второй секции дальше гарантировано проходит более 15 секунд. [walker@start] path_walk = gopnik_start_walk path_look = gopnik_start_look combat_ignore_cond = {=is_enemy_actor -esc_hungry_deputat_attack} true, false combat_ignore_keep_when_attacked = false def_state_standing = hide on_info = {+esc_hungry_deputat_gopstop_process} walker@gopstop %=play_sound(esc_gopstop) =reset_npc()% ;переключение происходит, но звук иногда не проигрывается meet = no_meet [walker@gopstop] team = esc_smart_terrain_5_2_gopniks path_walk = gopnik_start_walk path_look = gopnik_start_look combat_ignore_cond = {=is_enemy_actor -esc_hungry_deputat_attack} true, false combat_ignore_keep_when_attacked = false def_state_moving = assault def_state_standing = threat_na on_info = {+esc_hungry_deputat_start_dialog +esc_hungry_deputat_pass} sleeper@end meet = no_meet Спойлер Функция для сброса анимаций НПС: local function reset_animation(npc) local state_mgr = db.storage[npc:id()].state_mgr if state_mgr == nil then return end local planner = npc:motivation_action_manager() state_mgr.animation:set_state(nil, true) state_mgr.animation:set_control() state_mgr.animstate:set_state(nil, true) state_mgr.animstate:set_control() state_mgr:set_state("idle", nil, nil, nil, state_mgr.fast_set_true) -- planner:update() -- planner:update() -- planner:update() state_mgr:update() state_mgr:update() state_mgr:update() state_mgr:update() state_mgr:update() state_mgr:update() state_mgr:update() npc:set_body_state(move.standing) npc:set_mental_state(anim.free) end function reset_npc( actor, npc ) reset_animation( npc ) end Спойлер [esc_gopstop] type = npc npc_prefix = false path = scenario\escape\esc_robbery_scene_stop shuffle = rnd idle = 1,1,100 Предупрежу заранее: используется СоС с кастомными правками движка, поэтому понимаю, что тут только пальцем в небо тыкать можно, ища причину. Интересует, встречал ли кто-нибудь подобный баг вообще (чистый ЗП или модифицированный движок - без разницы, только хорошо бы указать это), и если встречали, то как чинили? Мод в разработке - X-7: Эпицентр Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Diesel 225 Опубликовано 14 января (изменено) опять я не вовремя... Дополнено 8 минуты спустя 3 часа назад, Prostomod сказал: встречал ли кто-нибудь подобный баг Это не баг. Последнее время часто встречаю делки алсофта в движках x64, у которых не работает апдата. Эти делки отключают звук при малейшем перепаде напряжения в сети (шутка), при подвисании компа. Точно отключается бэграундная музыка и еще некоторые зацикленные звуки (например звук в меню). Затестируй x64, моего разлива пиво : https://disk.yandex.ru/d/Pd0RR_2Cc-UFWQ Знаю что не поможет. Это как реклама вовремя подоспевшая. Изменено 14 января пользователем Diesel 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
NewValveCom 125 Опубликовано 14 января Как установить диалог с раненным врагом? В логике поставил схему раненного с возможностью установить диалог, при этом самой возможности открыть диалог нету (как я понял чисто из-за того, что непись враждебный к игроку): Спойлер [walker] path_walk = ranen_walk path_look = ranen_lookcombat_ignore_cond = true wounded = woundedmeet = meet [wounded] hp_state = 101|wounded_heavy hp_state_see = 101|wounded_heavy hp_victim = 101|actor hp_cover = 101|false hp_fight = 101|false autoheal = falsehelp_start_dialog = npc_dialog [meet]use = true Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 885 Опубликовано 14 января 26 минут назад, NewValveCom сказал: как я понял чисто из-за того, что непись враждебный к игроку Попробуй в wound дописать ещё это: enable_talk = true Дополнено 3 минуты спустя 3 часа назад, Prostomod сказал: что озвучка НПС не всегда срабатывает? НПС может быть занят дефолтной репликой, попробуй так, при переключении пиши: on_info = {+esc_hungry_deputat_gopstop_process} walker@gopstop %=stop_sound =reset_npc()% А уже в следующей секции проигрывай звук сразу: on_info = %=play_sound(esc_gopstop)% 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Yara 118 Опубликовано 14 января 13 часов назад, Novik сказал: И дошло дело до снимка карты Выставить погоду map, её конфиг взять из ЧН, там дальность видимости выше. Скринить на статике, на остальных рендерах нужно временно отключить солнце (r2_sun 0), для увеличения освещённости повышать значения команд: r2_sun_lumscale (_amb / _hemi). 9 часов назад, Skala сказал: 1. В секции уровня, параметром global_rect настраивается его положение на глобальной карте. Это можно сделать в фотошопе, открыв ui_global_map.dds и map_escape.dds, к примеру: 10 часов назад, Skala сказал: 2. Круглое в квадратное - только через правку движка. 1 https://sites.google.com/view/xray-sdk-0-4-smg Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
NewValveCom 125 Опубликовано 14 января (изменено) 11 часов назад, Neptun сказал: Попробуй в wound дописать ещё это: enable_talk = true Не сработало( Та же ситуация. Спойлер [walker] path_walk = ranen_walk path_look = ranen_look combat_ignore_cond = true wounded = wounded meet = meet [wounded] hp_state = 101|wounded_heavy hp_state_see = 101|wounded_heavy hp_victim = 101|actor hp_cover = 101|false hp_fight = 101|falseenable_talk = true autoheal = false help_start_dialog = npc_dialog Изменено 14 января пользователем NewValveCom Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 971 Опубликовано 14 января NewValveCom Если у вас есть секция meet и там заданы параметры разговора НПС, то параметр help_start_dialog не нужен. Спойлер [remark@wound] wounded = wounded@duel meet = meet@wounded [wounded@duel] hp_state = 101|wounded_heavy@help_heavy hp_state_see = 101|wounded_heavy@help_heavy hp_victim = 101|nil hp_cover = 101|false hp_fight = 101|false autoheal = false not_for_help = true enable_talk = true [meet@wounded] use = true meet_dialog = esc_quest_dangerous_business_shmiga_last_dialog abuse = false allow_break = false trade_enable = false close_anim = nil close_victim = nil close_distance = 0 far_distance = 0 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Domovoi 29 Опубликовано 14 января Приветствую! Как изменить направление дождя и скорость того как он идёт? Партиклы? Или всё таки как-то через конфиги? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
NewValveCom 125 Опубликовано 15 января 7 часов назад, denis2000 сказал: NewValveCom Если у вас есть секция meet и там заданы параметры разговора НПС, то параметр help_start_dialog не нужен. Пример (Показать контент) [remark@wound] wounded = wounded@duel meet = meet@wounded [wounded@duel] hp_state = 101|wounded_heavy@help_heavy hp_state_see = 101|wounded_heavy@help_heavy hp_victim = 101|nil hp_cover = 101|false hp_fight = 101|false autoheal = false not_for_help = true enable_talk = true [meet@wounded] use = true meet_dialog = esc_quest_dangerous_business_shmiga_last_dialog abuse = false allow_break = false trade_enable = false close_anim = nil close_victim = nil close_distance = 0 far_distance = 0 Также безрезультатно... Спойлер [logic@stalker_second_artemiy] suitable = {=check_npc_name(stalker_second_artemiy)} active = walker@leader prior = 200 [walker@leader] path_walk = ranen_walk path_look = ranen_look combat_ignore_cond = true on_info = {+bulat_ansleep_dialog_end} remark@wound [remark@wound] wounded = wounded@artem on_info = {+artemiy_first_dialog_end} %=remove_npc% meet = meet@wounded [wounded@artem] hp_state = 101|wounded_heavy@help_heavy hp_state_see = 101|wounded_heavy@help_heavy hp_victim = 101|nil hp_cover = 101|false hp_fight = 101|false autoheal = false not_for_help = true enable_talk = true [meet@wounded] use = true meet_dialog = artemiy_first_dialog abuse = false allow_break = false trade_enable = false close_anim = nil close_victim = nil close_distance = 0 far_distance = 0 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Policai 1 333 Опубликовано 15 января NewValveCom А у Вас в самом файле character_desc_локация у нпс этот диалог прописан? Группа мода в VK Мод делался и тестировался на железе i5-11400, 32Гб ОЗУ, Radeon RX580 Разрешение 2560 х 1440. ВСЕ на максималке Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
NewValveCom 125 Опубликовано 15 января 1 минуту назад, Policai сказал: NewValveCom А у Вас в самом файле character_desc_локация у нпс этот диалог прописан? Да. Когда ставлю неписю %=actor_neutral% (т.к. он враг) -- диалог есть и тот который должен. Проблема просто в том, что даже нет возможности вызвать окно диалога (нажмите F чтобы поговорить). С самим диалогом всё ок. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Policai 1 333 Опубликовано 15 января 2 часа назад, NewValveCom сказал: Когда ставлю неписю %=actor_neutral% (т.к. он враг) -- диалог есть и тот который должен. Добавь с логику.use = {=actor_enemy} true Группа мода в VK Мод делался и тестировался на железе i5-11400, 32Гб ОЗУ, Radeon RX580 Разрешение 2560 х 1440. ВСЕ на максималке Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
NewValveCom 125 Опубликовано 15 января 10 часов назад, Policai сказал: use = {=actor_enemy} true Пробовал, не выходит. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 676 Опубликовано 15 января (изменено) 5 часов назад, NewValveCom сказал: Пробовал, не выходит. NewValveCom , за разговор с раненым отвечает функция process_npc_usability(npc) в файле xr_meet.script Сама функция вызывается на апдейте сталкеров в файле xr_motivator.script Если вы хотите, чтобы раненый, неважно друг он вам или враг, разговаривал с ГГ, то нужно в файле xr_meet.script функцию process_npc_usability(npc) поменять на такую: Спойлер function process_npc_usability(npc) local wounded = db.storage[npc:id()].wounded if xr_wounded.is_wounded(npc) then if wounded.enable_talk then npc:enable_talk() else npc:disable_talk() end return end local meet = db.storage[npc:id()].meet local use = meet.meet_manager.use if use == "true" then if xr_corpse_detection.is_under_corpse_detection(npc) or xr_help_wounded.is_under_help_wounded(npc) then npc:disable_talk() else npc:enable_talk() end elseif use == "false" then npc:disable_talk() if npc:is_talking() then npc:stop_talk() end end end Тогда, если в секции wounded прописать enable_talk = true, то и раненые враги будут с вами вести разговор. З.Ы. Но я всегда делал по другому. Если ГГ подходит к раненому нпс врагу, НПС первым начинал разговор. В этом случае ничего в скриптах менять не нужно. Изменено 15 января пользователем makdm Терпение... И все получится. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 971 Опубликовано 16 января (изменено) Domovoi Гуглите настройки погоды. На счет направления не знаю, а за интенсивность точно есть параметр rain_density. Изменено 16 января пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты