Overf1rst 1 496 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 18 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 8 марта, 2021 (изменено) 53 минуты назад, ian98 сказал: насколько сложно сделать режим одной жизни в оригинальном Зов Припяти? Нужно ли для этого лезть в движок? Или это все на скриптах да конфигах можно реализовать? В мечтах, чтобы этот режим выступал в роли пятого уровня сложности при старте новой игры. Прежде чем что-то грандиозное сделать, задайте себе пару вопросов: А зачем оно? А нужно ли? Есть ли смысл в этом? Помню, в ЗП когда включено диалоговое окно с сохранениями, есть кнопка, которая может удалить сохранения. Уверен точно, что это меню реализовано через скрипты, а значит вызов удаления сохранения можно реализовать из скриптов. Предлагаю такой алгоритм: 1. В момент сохранения проверить, включён ли режим одна жизнь. Проверять, происходит ли сохранение в данный момент можно таким способом в момент апдейта актёра: if get_hud():GetCustomStatic("game_saved")~=nil then Если да, то записываем имя сохранения в таблицу для сохранений (пригодится в будущем). Также нужно записать количество сделанных сохранений. Таблица будет иметь вид: {[a] = "save_name"} Также нужно сделать проверку: Сначала запишем имя сейва: local last_save_name Потом объявим local last_save_name if save_name~=last_save_name then -- Если появился новый сейв с новым названием ..заполним таблицу.. end 2. Если игрок умер, и таблица с сохранениями не равна nil или не пустая: Передаём какой-нибудь переменной аргумент из таблицы сохранений (название сохранения передаём), и вызываем функцию, которая удаляет сохранения. В качестве аргумента передаём переменную. Функция должна иметь примерно такой вид: Но перед этим надо будет распарсить таблицу с помощью ipairs. local save_name .. Парсим таблицу.. save_name = v -- это, что после знака = saves_count = k -- это [a] ..... function on_actor_death() for i = 1, saves_count do if t and t ~= nil then -- Проверим ещё раз на всякий случай функция, удаляющая сейв(save_name) end end end Дополнено 8 минуты спустя Всё необходимые функции вы можете найти в файлах ui_load_dialog и ui_save_dialog Изменено 8 марта, 2021 пользователем liner 1 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 8 марта, 2021 Функция на удаление сейва: ui_load_dialog.delete_save_game(filename) Дополнено 2 минуты спустя 2 минуты назад, denis2000 сказал: liner ian98 Как мне кажется, это можно сделать гораздо проще, если включен такой режим - запретить сохранение в меню и в автосейвах. Тогда название будет отображать всю правду:))) Вышел из игры - весь прогресс пропал. Думаю вы поняли о чём я. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 951 Опубликовано 8 марта, 2021 (изменено) liner Я это понял ранее чем вы напомнили, поэтому и удалил сообщение. Минус вашего метода: вы не можете контролировать все методы сохранения и как следствие удалить все сохранения задействованные в этом прохождении. Поэтому я, подумав решил, предложить внедрение в сейв генерируемого в момент старта новой игры ключа. В случае смерти ключ генерируется заново и при загрузке сейва сравнивается с тем, что сохранено и при несовпадении... ну например закидывать ГГ в специальную локацию - могилу откуда нет выхода, кроме как начать новую игру с новым ключем (решение за разработчиком, что делать и как ограничивать игрока). Это позволит контролировать абсолютно все сохранения: быстрые, через меню, автосейвы в контрольных местах сюжета, сохранения вручную через консоль. Изменено 8 марта, 2021 пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kalambur 25 Опубликовано 9 марта, 2021 Подскажите пожалуйста, могу ли я сделать у себя в dead air инвентарь как в ЗП с одним индикатором типо как там кровотичение, радиация ? Мне нужно только один такой индыкатор чтобы я туда впихнул индыкатор Жажды, у меня там индекатор с полоской здоровье и сытость я хочу уменьшить эти полоски здоровья и сытости и впихнуть туда кружок с индыкатором жажды, чтобы не было его на экране, ибо у меня нет никаких индыкаторов на экране кроме полоски выносливости ну и патрончики....вопрос ищо один, можно ли это сделать без правки движка ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Edge 0 Опубликовано 9 марта, 2021 Подскажите где-нибудь можно увеличить силу захвата актором динамических объектов или тех же трупов? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stepan_sovok1917 41 Опубликовано 9 марта, 2021 (изменено) В 05.03.2021 в 09:08, Yura001 сказал: Здравствуйте, нашёл гайд по созданию собственного проводника в зп. Для телепортации пишут скрипт где напрямую указывают вектор и координаты. Есть ли какой-нибудь способ сделать это без указания координат напрямую? Например воткнуть смарт кавер и тепать в него. В 05.03.2021 в 13:19, denis2000 сказал: Yura001 local object = get_story_object("стори_ид_смарта") local position = object:position() npc:set_npc_position(position) В 05.03.2021 в 13:19, denis2000 сказал: стори_ид_смарта 1) Смарт кавера, или смарт террейна? 2)стори айди задаётся в game_story_ids.ltx? Изменено 9 марта, 2021 пользователем Stepan_sovok1917 Паблик ВК Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 951 Опубликовано 9 марта, 2021 (изменено) 1 час назад, Stepan_sovok1917 сказал: Смарт кавера, или смарт террейна? Смарт-чего угодно. 1 час назад, Stepan_sovok1917 сказал: стори айди задаётся в game_story_ids.ltx? Нет в кастомдате объекта. Изменено 9 марта, 2021 пользователем denis2000 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stepan_sovok1917 41 Опубликовано 9 марта, 2021 denis2000 Логику смарта обязательно прописывать? Паблик ВК Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kalambur 25 Опубликовано 9 марта, 2021 Как заставить иконку индыкатора с hud_wnd.... показать иконку в инвентаре ? Например от жажды ! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 951 Опубликовано 9 марта, 2021 2 часа назад, Stepan_sovok1917 сказал: Логику смарта обязательно прописывать? У смарт-террейна нет логики, у него конфиг и он обязателен. 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kamr4d 21 Опубликовано 10 марта, 2021 Приветствую. Не подскажите ли с помощью каких скриптов можно сделать так, чтобы при приближении к какому - либо существу (бюреру например) на ГГ накладывался определенный партикл (жгучего пуха). Еще интересует, каким образом можно сделать предмет, который при использовании его в определенном смарте давал бы ГГ определенную info. Мне это для квеста надо. И еще можно ли сделать так, чтобы при входе ГГ в определенный смарт на него накладывался постэфект? Если подскажите хоть с одним из пунктов, буду очень благодарен) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 951 Опубликовано 10 марта, 2021 5 часов назад, Kamr4d сказал: с помощью каких скриптов можно сделать так, чтобы при приближении к какому - либо существу (бюреру например) на ГГ накладывался определенный партикл Насколько я помню партикл можно проигать в определенных координатах или на определенном суставе модели, а значит на камере его проиграть без правок движка не получиться. 5 часов назад, Kamr4d сказал: каким образом можно сделать предмет, который при использовании его в определенном смарте давал бы ГГ определенную info Читайте колбеки на использование предметов 5 часов назад, Kamr4d сказал: можно ли сделать так, чтобы при входе ГГ в определенный смарт на него накладывался постэфект? В смарт - нет, в рестриктор - да: [sr_idle] on_info = {=actor_in_zone(имя_рестриктора)} %=run_postprocess(имя_постпроцесса:ид_постпроцесса:true)% 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kamr4d 21 Опубликовано 10 марта, 2021 denis2000 Благодарю за помощь 7 минут назад, denis2000 сказал: Насколько я помню партикл можно проигать в определенных координатах или на определенном суставе модели, а значит на камере его проиграть без правок движка не получиться. Читайте колбеки на использование предметов В смарт - нет, в рестриктор - да: [sr_idle] on_info = {=actor_in_zone(имя_рестриктора)} %=run_postprocess(имя_постпроцесса:ид_постпроцесса:true)% Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 10 марта, 2021 (изменено) Как правильно пользоваться функцией math.floor? В лог я вывел числа без округления и с округлением. По правилам математики, например, число 1,6 должно округлиться до 2, но почему-то в игре округляется до 1. Спойлер [LUA] Total item helm_battle_dolg bonus without math.floor: 1.25 [LUA] Total item helm_battle_dolg bonus: 1 [LUA] Total item wpn_saiga bonus without math.floor: 2.65 [LUA] Total item wpn_saiga bonus: 2 вызов из скрипта: log("Total item "..tostring(itm:section()).." bonus without math.floor: "..tostring(cost_bonus+cond_bonus+weight_bonus+bonus-cond_fine)) log("Total item "..tostring(itm:section()).." bonus: "..tostring(math.floor(cost_bonus+cond_bonus+weight_bonus+bonus-cond_fine))) Изменено 10 марта, 2021 пользователем liner Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
molodoy_chelovek 124 Опубликовано 10 марта, 2021 liner math.floor округляет до меньшего числа. Тебе нужно использовать math.ceil. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 10 марта, 2021 Как выдать из таблицы тайник ГГ, который не был облутан ранее ГГ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 951 Опубликовано 10 марта, 2021 liner treasure_manager.get_treasure_manager():give_random() Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 230 Опубликовано 11 марта, 2021 Такой вопрос. Существует мод DH(динамические шапки). Он отображает правильно каски и противогазы на гг, как и, скорее всего, должно было бы быть, но проблема в том, что мод отображает все правильно только пока гг жив. Как только актор погибает, то каска на нем не видна как и в оригинале, что обидно т.к по сути шутер от первого лица и модель персонажа нашего мы видим лишь в катсценах и как раз вот во время смерти. Так вот, я пытался ковырять мод, смотреть там что-то, понятное дело я почти ничего не знаю, но может автор того мода просто забыл что-то простое, что-то что можно поправить одной волшебной строчкой? А может есть другие моды с другим названием, но похожие по наполнению? Связи с автором того мода нет у меня. Он где-то остался тааааам, в прошлом, на старом добром АМК. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 790 Опубликовано 12 марта, 2021 (изменено) Вылет. Происходит при входе в игру, не во время загрузки на уровень, а во время запуска самой игры через файл exe. Спойлер Последние строчки в логе: xrEngine.exe caused an EXCEPTION_ACCESS_VIOLATION in module VCRUNTIME140.dll at 0000000015CB1C81, strstr()+0353 byte(s) stack trace: 0x0000000015CB1C81 VCRUNTIME140.dll, strstr + 353 byte(s) 0x000000002335883D xrGame.dll, CxImage::`copy constructor closure' + 2207501 byte(s) 0x00000000233584D7 xrGame.dll, CxImage::`copy constructor closure' + 2206631 byte(s) 0x00000000233582CA xrGame.dll, CxImage::`copy constructor closure' + 2206106 byte(s) 0x0000000023507437 xrGame.dll, CDialogHolder::IR_UIOnMouseMove + 1686647 byte(s) 0x0000000023506A02 xrGame.dll, CDialogHolder::IR_UIOnMouseMove + 1684034 byte(s) 0x00000000234646CA xrGame.dll, CDialogHolder::IR_UIOnMouseMove + 1019658 byte(s) 0x0000000023465FE2 xrGame.dll, CDialogHolder::IR_UIOnMouseMove + 1026082 byte(s) 0x0000000023039AD4 xrGame.dll, CDialogHolder::operator= + 9671348 byte(s) 0x0000000022E82304 xrGame.dll, CDialogHolder::operator= + 7871204 byte(s) 0x00000000400294B1 xrEngine.exe, CRenderDevice::Run + 593 byte(s) 0x00000000400D2BBF xrEngine.exe, InitSound2 + 847 byte(s) 0x00000000400D3819 xrEngine.exe, InitSound2 + 4009 byte(s) 0x00000000400D39B9 xrEngine.exe, InitSound2 + 4425 byte(s) 0x00000000400E5F8A xrEngine.exe, CApplication::load_draw_internal + 66410 byte(s) 0x00000000613D7C24 KERNEL32.DLL, BaseThreadInitThunk + 20 byte(s) 0x000000006304D721 ntdll.dll, RtlUserThreadStart + 33 byte(s) [error][ 487] : Попытка обращения к неверному адресу. Полный лог вылета: xray_tbilly.log Подскажите, что делать? Раньше с таким не сталкивался. Изменено 12 марта, 2021 пользователем Крим Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 12 марта, 2021 8 часов назад, ian98 сказал: Такой вопрос. Существует мод DH(динамические шапки). Он отображает правильно каски и противогазы на гг, как и, скорее всего, должно было бы быть, но проблема в том, что мод отображает все правильно только пока гг жив. Как только актор погибает, то каска на нем не видна как и в оригинале, что обидно т.к по сути шутер от первого лица и модель персонажа нашего мы видим лишь в катсценах и как раз вот во время смерти. Так вот, я пытался ковырять мод, смотреть там что-то, понятное дело я почти ничего не знаю, но может автор того мода просто забыл что-то простое, что-то что можно поправить одной волшебной строчкой? А может есть другие моды с другим названием, но похожие по наполнению? Связи с автором того мода нет у меня. Он где-то остался тааааам, в прошлом, на старом добром АМК. Зачем оставлять включённым UI, если при смерти ГГ включается вид от 3-го лица? Мне кажется, это будет плохо смотреться и мешаться. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 230 Опубликовано 12 марта, 2021 liner а можно ли? Там шапки к юи привязаны? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 951 Опубликовано 12 марта, 2021 liner Я тоже не понял при чем здесь UI. Вы что имели ввиду? Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kalambur 25 Опубликовано 12 марта, 2021 (изменено) Подскажите пожалуйста, как сделать progress_bar для пояса вот так.... есть подсказка, но как с ней обращатся не знаю.... condition_progress_bar = "1"></dragdrop_belt> Изменено 12 марта, 2021 пользователем Kalambur Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 790 Опубликовано 12 марта, 2021 Kalambur сам разбирайся. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paradox27kms 15 Опубликовано 13 марта, 2021 (изменено) Выдал инфу о тайниках через рестиктор но в игре появляется всего одна метка и она перемещается на метке ГГ P.S я понял в чем ошибка, вердикт могу сделать такой что капец тут пысы намудрили с тайниками, сделали ещё более геморную систему Дополнено 25 минуты спустя Тогда вот новый вопрос, у меня нпс важные привязанные к анимпоинту в оффлайне судя по карте гуляют по зоне а когда приходишь к тому месту куда они привязаны они туда телепортируются но со временем Изменено 13 марта, 2021 пользователем Paradox27kms Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты