Overf1rst 1 496 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 18 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
WildAx 2 Опубликовано 3 февраля, 2021 8 часов назад, denis2000 сказал: WildAx КМБ Урок 26а 1. Вам нужно задавать вопрос в соотвествующей теме! 2. В ЗП это делает движок. news_manager.send_tip(db.actor,"Получены деньги "..tostring(bringed_money),0,"kingpin",4000,nil) Хочу подкорректировать текст, чтобы после "Получены деньги" Н-ое кол-во денег, писало "руб." Как это правильно вставить? Скриптами ещё не занимался, вот только планирую начать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Overf1rst 1 496 Опубликовано 3 февраля, 2021 news_manager.send_tip(db.actor, "Получены деньги: " .. tostring(bringed_money) .. " руб.", 0, "kingpin", 4000, nil) Раз уж начал, первый совет: не делай локализацию непосредственно в скрипте, а используй систему перевода строк! 1 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
WildAx 2 Опубликовано 3 февраля, 2021 (изменено) 53 минуты назад, Overfirst сказал: news_manager.send_tip(db.actor, "Получены деньги: " .. tostring(bringed_money) .. " руб.", 0, "kingpin", 4000, nil) Раз уж начал, первый совет: не делай локализацию непосредственно в скрипте, а используй систему перевода строк! Спасибо за ответ. На счёт скрипта, я их ещё не трогал, взял готовый от автора постами выше, как только начну вникать работу с ними, учту все советы ? Глупый вопрос, в игре несколько визуалов комбеза новичка под одним кодом "novice_outfit", в игре у торгаша визуально выбор происходит рандомно? кожаный плащ бандита и куртка с джинсами сталкера новичка. Хотелось бы их разделить. Изменено 3 февраля, 2021 пользователем WildAx Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Шубин 21 Опубликовано 3 февраля, 2021 1 час назад, WildAx сказал: в игре несколько визуалов комбеза новичка под одним кодом "novice_outfit" В оригинальной игре один костюм с таким названием. И у него, разумеется, только один визуал. Тут надо прояснить, что имеете в виду. Есть визуал самого костюма, лежащего на земле. Есть визуал ГГ от 3-го лица в этом костюме. Но у любого костюма только один визуал одного типа. Конкретно этому костюму прописан визуал ГГ в плаще. Можно сменить его на визуал в куртке. Но два визуала сделать нельзя. Можно сделать отдельный костюм с отдельным визуалом. Куртка и плащ, например. Это реализовано в паках от Газика. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
WildAx 2 Опубликовано 3 февраля, 2021 1 минуту назад, Сергей Шубин сказал: В оригинальной игре один костюм с таким названием. И у него, разумеется, только один визуал. Тут надо прояснить, что имеете в виду. Есть визуал самого костюма, лежащего на земле. Есть визуал ГГ от 3-го лица в этом костюме. Но у любого костюма только один визуал одного типа. Конкретно этому костюму прописан визуал ГГ в плаще. Можно сменить его на визуал в куртке. Но два визуала сделать нельзя. Можно сделать отдельный костюм с отдельным визуалом. Куртка и плащ, например. Это реализовано в паках от Газика. Так и думал, спасибо за ответ, буду заниматься. Дополнено 14 минуты спустя Overfirst ещё на эту же тему про скрипт на лут денег со сталкеров, как изменить иконку сообщения? у меня там сталкер в капюшоне ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 234 Опубликовано 3 февраля, 2021 (изменено) Не могу найти ничего по этому поводу. Вообще. А проблема серьезная, это ж прям косяк, который никто(?) не поправил ни в одном моде за 14 лет(еще с ТЧ). Как сделать, чтобы оружие попавшее в руки нпс меняло свой кондишн всего 1 раз. Чтобы выбив ружье, например, в плохом состоянии ты не пошел с этим же ружьем к другому нпс и не починил его просто скинув нпсу в руки. Единственное, что я смог сделать это отключить охоту за оружием, т.е они за стволами теперь не ходят и не обращают на них внимания, но только если оружие не на пути или не брошено прям в руки главным героем. Можно в m_stalker вместимость их инвентарей порезать, чтобы они просто не могли взять новое оружие вообще, но это не самый удовлетворяющий меня вариант, ибо часть лута в них в таком случае может не появлятся(не вмещатся), а рассчитать сколько кг хватит всем нпс как-то сложно. Это надо под каждый профиль inv_max_weight высчитывать оглядываясь на количество лута в рюкзаке. Делать, чтобы у всех нпс было убитое оружие, блин, тоже не хочется. Ограничивать по рангу тоже не хочется. НПС должны ходить со всем оружием и не менять его состояние каждый раз, когда оно попадает к ним в инвентарь. Должны делать это 1 раз. Почему это не таааак. Изменено 4 февраля, 2021 пользователем ian98 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Policai 1 323 Опубликовано 4 февраля, 2021 Вы на ТЧ и делаете... в ЗП нет такой проблемы.. Группа мода в VK Мод делался и тестировался на железе i5-11400, 32Гб ОЗУ, Radeon RX580 Разрешение 2560 х 1440. ВСЕ на максималке Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 234 Опубликовано 4 февраля, 2021 (изменено) Policai Ну как это нет такой проблемы. Заснял видео даже. ЗП, самая последняя версия в стим. А это видео чуть подольше, но лучше соответствует написанному выше Наблюдаем за мкой. Я ее подобрал в одном кондишне, отнес другому нпс и вкинув в него починил и обзавелся патронами. Изменено 4 февраля, 2021 пользователем ian98 тывы Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 951 Опубликовано 4 февраля, 2021 (изменено) 13 часов назад, WildAx сказал: как изменить иконку сообщения? Текущая иконка в этом скрипте под именем "kingpin". Список иконок для сообщений через скрипт news_manager.script представлен в этом самом скрипте в таблице tips_icons. Естественно список иконок можно менять. ian98 Пробуйте так, в скрипте death_manager.script замените оригинальную функцию на такую: function set_weapon_drop_condition(item) local condition = (math.random(40)+40)/100 if condition < item:condition() then item:set_condition(condition) end end Или такую: function set_weapon_drop_condition(item) local condition = (math.random(40)+40)/100 if item:condition() > 0.99 then item:set_condition(condition) end end В первом случае устанавливается случайное состояние выпадающего ствола, только тогда, когда оно меньше текущего. Во втором случае только если ствол в идеальном состоянии (создан при спавне НПС). Изменено 4 февраля, 2021 пользователем denis2000 2 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 234 Опубликовано 4 февраля, 2021 В файлах spawn_section.. под некоторыми профилями стоит custom_data = scripts/люьоеназвание.ltx. Если посмотреть эти кастом даты, то можно понять, что это логика слегка правленная под какие-то сценки. Вот. Меня конкретно интересует секция(?) [meet] и строка в ней trade_enabled = false - запрет на торговлю. Раз такая строка существует, то становится ясно, что по дефолту там стоит true. В обшем, был бы рад понять где и как вместо true поставить false, чтобы потом разрешать торговать по своему усмотрению прописывая trade_enabled = true Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0ouch 143 Опубликовано 4 февраля, 2021 ian98, смотрите в файле xr_meet.script 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 234 Опубликовано 4 февраля, 2021 (изменено) Stgs гляну. Иногда поражаюсь своей несообразительности. Я даже не пытался поискать что-то с meet связанное... Да, в xr_meet.script прямо русским языком написано Устанавливаем дефолты. Дальше находим def.trade_enable и прописываем false. Полностью отключает трейд. Спасибо за наводку. Не полностью. Нужна помощь. При выполнение определенных условий трейд возвращается. Это, возможно, как-то связано с xr_logic, но я там кроме слова кондлист ничего не разобрал... Изменено 4 февраля, 2021 пользователем ian98 Сложные слова( Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
WildAx 2 Опубликовано 4 февраля, 2021 Ковырялся сидел в конфиге погоды, по гайду пытался настроить, ничего путного не вышло. Мне нужен плотный туман. Подскажите что по чём пожалуйста ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 234 Опубликовано 4 февраля, 2021 (изменено) итакисяк ичерез косяк, но своего добился. Насколько это грамотно не могу сказать, будут ли приколы не знаю, но пока все работает как надо - полностью отключенный трейд для всех, за исключением особых персонажей. Сделал я это вот так: Спойлер if xr_wounded.is_wounded(self.npc) then self.trade_enable = false else local trade_enable = xr_logic.pick_section_from_condlist(db.actor, self.npc, self.a.trade_enable) --printf("npc [%s] self %s *** %s", self.npc:name(), tostring(self.trade_enable), tostring(trade_enable)) if self.trade_enable ~= trade_enable then if trade_enable == "true1" then self.npc:enable_trade() else self.npc:disable_trade() end self.trade_enable = trade_enable end end end Теперь вписывая уже в configs\scripts trade_enable = true1 получаем нпц, с которым можно поторговать. Все остальные не умеют. Изменено 5 февраля, 2021 пользователем ian98 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ZonaChe 405 Опубликовано 4 февраля, 2021 (изменено) WildAx Здаров. Если я тебя правильно понял, тогда по пути --> gamedata\configs\weathers\ во всех файлах ищешь строки fog_density = 0.9 --> туман rain_density = 0.05 --> дождь. Может быть и так rain_density = 1.0 ; = 1.0 ; = 0.0 и меняешь значения на свои, 0 --> мин. Максимальное значение не знаю, потому что оно, может быть больше единицы. Есть ещё fog_distance = 350 fog_color = 0.21, 0.21, 0.27 rain_distance = 350 rain_color = 0.21, 0.21, 0.27 но с ними я не игрался. Лучше это делать не стандартным блокнотом, а Notepad++ пользуясь поиском и заменой (значок бинокля) Изменено 4 февраля, 2021 пользователем digital defender 1 Прямой дороги тебе, сталкер. Мимо аномалий, через артефакты... Я всегда хотел отвечать людям добром, но жизнь научала отвечать взаимностью... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 790 Опубликовано 5 февраля, 2021 Кратко: помогите. В чем предположительно может скрываться проблема? Спойлер FATAL ERROR [error]Expression : fatal error [error]Function : lua_pcall_failed [error]File : c:\xray\forward frontier\public build\src\layers\xrrender\resourcemanager_scripting.cpp [error]Line : 101 [error]Description : <no expression> [error]Arguments : LUA error: ....r. call of pripyat\gamedata\scripts\xr_motivator.script:161: attempt to index local 'smart_task' (a nil value) stack trace: Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 234 Опубликовано 5 февраля, 2021 (изменено) Спойлер --******************************* Телепорт на первую точку пути работы смарттеррейна...***************************** local se_obj = alife():object(self.object:id()) if se_obj ~= nil then if db.spawned_vertex_by_id[se_obj.id] ~= nil then self.object:set_npc_position(level.vertex_position(db.spawned_vertex_by_id[se_obj.id])) db.spawned_vertex_by_id[se_obj.id] = nil elseif db.offline_objects[se_obj.id] ~= nil and db.offline_objects[se_obj.id].level_vertex_id ~= nil then printf("changing position for object[%s] from %s to %s : level vertex [%s] to [%s]", se_obj:name(), vec_to_str(se_obj.position), vec_to_str(level.vertex_position(db.offline_objects[se_obj.id].level_vertex_id)), tostring(se_obj.m_level_vertex_id), tostring(db.offline_objects[se_obj.id].level_vertex_id)) self.object:set_npc_position(level.vertex_position(db.offline_objects[se_obj.id].level_vertex_id)) elseif se_obj.m_smart_terrain_id ~= 65535 then local smart_terrain = alife():object(se_obj.m_smart_terrain_id) if smart_terrain.arriving_npc[se_obj.id] == nil then local smart_task = smart_terrain.job_data[smart_terrain.npc_info[se_obj.id].job_id].alife_task self.object:set_npc_position(smart_task:position()) end end end --****************************************************************************************************************** Крим предпложительно в xr_motivator.script 161 строчка что-то со смарт таском a nil value пустота или чет типо того, чего быть там не должно. Ну, об этом лог говорит) ес че Дополнено 25 минуты спустя Мне бы хотелось перенести некоторые свойства брони на автомат, а именно максимально переносимый вес, чтобы автомат был нам абузой в рюкзаке и разгружал рюкзак находясь в слоте для оружия по примеру с экзоскелетом. Банально скопировав отвечающие за эти свойства строчки желаемого результата не получил. Не знаю как быть. Вот эти строчки я пытался вставлять. additional_inventory_weight = 30 additional_inventory_weight2 = 30 Изменено 5 февраля, 2021 пользователем ian98 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Шубин 21 Опубликовано 5 февраля, 2021 3 часа назад, ian98 сказал: Банально скопировав отвечающие за эти свойства строчки желаемого результата не получил. Не знаю как быть. У оружия нет таких параметров - additional_inventory_weight. Поэтому прописывать их бесполезно. Чтобы эти строки читались, нужно править движок игры. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 5 февраля, 2021 К Как заставить симуляционных НПС (и не только) пользоваться боевыми смарткаверами во время боя? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 672 Опубликовано 5 февраля, 2021 36 минут назад, liner сказал: Как заставить симуляционных НПС (и не только) пользоваться боевыми смарткаверами во время боя? Те, которые под эксклюзивной, прямо писАть переход на логику smartcover при наличии врага. Те, которые симуляционные, то в файле gulag_general.script, по аналогиии с animpoint. Правда придется прописать условие ( _precondition_function ) для перехода в логику smartcover и проставить соответствующий приоритет. Терпение... И все получится. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ZonaChe 405 Опубликовано 5 февраля, 2021 Здоровеньки були, здрасти. Рисую худ (перерисовываю оригинал) и вот возникла проблемка: миникарту нарисовал с тенью, не проблема. Проблема возникла с тенями под полосками заметности и слышимости. Создал ui_actor_hint_wnd_b.dds (1024х1024) самой тени с учетом сдвига. Создал ui_actor_hint_wnd_b.xml с координатами текстур. СПОЙЛЕР 1. В motion_icon.xml продублировал оригинальные строки со своими x="20" y="20" (просто для пробы), строки с 2 по 8-ю. СПОЙЛЕР 2. Хотелось бы, чтобы полоски выводились с тенями синхронно, примерно так СПОЙЛЕР 3. P.S. Я не программер, поэтому желательно разъяснить по пальцам. Это просьба. Если кому понадобится, могу дать исходники для исправления. Спойлер <w> <file name="ui\ui_actor_hint_wnd_b"> <texture id="ui_inGame2_Radar_blue_bar_b" x="544" y="239" width="204" height="204" /> <texture id="ui_inGame2_Radar_green_bar_b" x="753" y="239" width="204" height="204" /> </file> </w> Спойлер <window> <window rel_size="1.25" width="10" height="10" alignment="c"/> <luminosity_progress x="20" y="20" width="10" height="10" alignment="c" stretch="1" sector_count="24" clockwise="1" begin_angle="-0.227" end_angle="0.835" blend="0"> <texture>ui_inGame2_Radar_green_bar_b</texture> </luminosity_progress> <noise_progress x="10" y="20" width="20" height="10" stretch="1" alignment="c" sector_count="24" clockwise="0" begin_angle="3.365" end_angle="4.37" blend="0"> <texture>ui_inGame2_Radar_blue_bar_b</texture> </noise_progress> <window rel_size="1.25" width="10" height="10" alignment="c"/> <luminosity_progress x="10" y="10" width="10" height="10" alignment="c" stretch="1" sector_count="24" clockwise="1" begin_angle="-0.227" end_angle="0.835" blend="0"> <texture>ui_inGame2_Radar_green_bar</texture> </luminosity_progress> <noise_progress x="10" y="10" width="10" height="10" stretch="1" alignment="c" sector_count="24" clockwise="0" begin_angle="3.365" end_angle="4.37" blend="0"> <texture>ui_inGame2_Radar_blue_bar</texture> </noise_progress> </window> Спойлер Прямой дороги тебе, сталкер. Мимо аномалий, через артефакты... Я всегда хотел отвечать людям добром, но жизнь научала отвечать взаимностью... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 234 Опубликовано 6 февраля, 2021 (изменено) Существуют ли clsidы брони? Если да, то где их можно найти? У меня не получается в гугле. Подозреваю, что их просто нет в природе, ну или никто из новичков не интересовался, а все опытные и так все знали всегда. Дополнено 5 минуты спустя Еще интересно, можно ли настроить кнопку ВЗЯТЬ ВСЕ. Чтобы гг брал все за исключением некоторых предметов? Должно быть не оч сложно, если возможно, знать бы где искать. Изменено 6 февраля, 2021 пользователем ian98 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 672 Опубликовано 6 февраля, 2021 3 часа назад, ian98 сказал: Существуют ли clsidы брони? Если да, то где их можно найти? В файле lua_help.script C++ class clsid { 1 Терпение... И все получится. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 234 Опубликовано 6 февраля, 2021 makdm Вродь смотрел там. Ну, гляну еще. А с кнопкой не подскажешь? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Little Frenchman 542 Опубликовано 6 февраля, 2021 Возможно, кто-то пользуется или пользовался таким модулем, как таймеры от Артоса(там не только таймеры, но и ряд других фишек)? Объясните мне, пожалуйста, как их правильно запускать? Ибо наблюдаются нечастые, но стабильные проблемы, а именно: таймеры не срабатывают, если запущено несколько штук сразу, или не срабатывают, если на момент запуска другой таймер не успел завершиться. Это делает их функционал ограниченным, а таймеры нужны всегда. Может, есть какие-то тонкости? Запускаю так: Спойлер start_real_timer(4, "mod_timer_functions.sg_vodka_use1") Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты