The ReapeR 72 Опубликовано 15 Апреля 2018 (изменено) 6 часов назад, Возрождённый сказал: [...] Все равно у меня какое-то навязчивое подозрение, что они не совсем правильно работают... По-хорошему, нужно не "гасить симптомы" отключением шкал, а править логику в ui_wpn_params.script под конкретную ТТХ-систему. В конктексте какой базы вопрос? Если AMK, то шкалы завязаны на новые параметры в секциях стволов: hit_rate, disp_rate, а также на порядок секций патронов в ammo_section (первой должна идти секция наиболее "продвинутого" типа боеприпасов: дротик для шотганов etc.). В противном случае шкалы будут врать, и сильно. На моем опыте, практически ни в одном моде, построенном на базе AMK, не удосужились внести соответствующие правки, зато на "вранье" шкал не жаловался только ленивый) Если речь о ванили, то там есть "проблемки" со шкалой "Точность". Она зависит даже от базовой дисперсии актора, хотя в идеале должно рассматриваться оружие, зажатое в тиски. Простейший вариант исправления на более-менее "честную" логику -- в олдовом Zenobian Mod (использую их метод в своем аддоне), но ничто не мешает разработать свой, особенно при использовании нестандартной ТТХ-системы: скажем, TrickSR и т.д. Изменено 15 Апреля 2018 пользователем The ReapeR 1 New Level Changer 5.08: Раритеты ReapeR build 3: Раритеты Я на YouTube: Vincent Vega Поделиться этим сообщением Ссылка на сообщение
The ReapeR 72 Опубликовано 15 Апреля 2018 (изменено) @AndrewMor, так у тебя переменная src нил. Нужно выше по коду смотреть, где она инициализируется и места всех присвоений. UPD: так это ж ванильная parse_condlist(). Где-то ты ее вызываешь, передавая последним аргументом нил вместо строки. Можно в самом ее начале добавить дебаг-вывод всех входных аргументов, так проще будет найти проблемный вызов. Например: function parse_condlist(npc, section, field, src) + dbglog("xr_logic.parse_condlist: %s [%s] %s %s", npc and npc:name() or "<nil>", tostring(section), tostring(field), src or "<nil>") local lst = {} -- 1) Разбиваем на разделенные запятыми части: [...] где dbglog() -- любимый вариант выхлопа. Для уменьшения спама можно занести вывод под if not src или if src == nil (if src ~= "" etc.). Вообще, она предназначена для парсинга т.н. кондишен-листов, которые обитают, в основном, в config/scripts/, config/misc/task_manager.ltx, config/misc/treasure_manager.ltx и в оллспавне (поле cond, секция [logic] в custom_data). Так что проблема может быть и не скриптовой. По имени NPC и названию секции сможешь найти конкретное место. Изменено 15 Апреля 2018 пользователем The ReapeR 1 New Level Changer 5.08: Раритеты ReapeR build 3: Раритеты Я на YouTube: Vincent Vega Поделиться этим сообщением Ссылка на сообщение
The ReapeR 72 Опубликовано 16 Апреля 2018 (изменено) @dPlayer, function have_any() return (db.actor:item_in_slot(1) or db.actor:item_in_slot(2) or db.actor:item_in_slot(6)) ~= nil end function have_any_opt() local act = db.actor -- сомнительный по выигрышу шоткат, после ZRP шарахаюсь от любого дублирования return (act:item_in_slot(1) or act:item_in_slot(2) or act:item_in_slot(6)) ~= nil end Просто пара примеров, с оптимизацией использования переменных и однотипных вызовов. Изменено 16 Апреля 2018 пользователем The ReapeR 1 1 New Level Changer 5.08: Раритеты ReapeR build 3: Раритеты Я на YouTube: Vincent Vega Поделиться этим сообщением Ссылка на сообщение
The ReapeR 72 Опубликовано 18 Апреля 2018 @Капрал Хикс, все верно, ui_wpn_params.script. В Zeno 0.115 там изменена функция get_wpn_accuracy() (мог ошибиться в названии, пишу с работы; она самая нижняя в файле). В ванили там запрашивается, помимо базовой дисперсии оружия и коэффициента "стандартного" (FMJ, дробь) патрона, еще и дисперсия актора и проч (плюс танцы с неведомыми меджиками). В модификации расчет совершается только из комбинации базовой дисперсии, коэффициента патрона и fire_distance, плюс нормализуется k_disp для ближнебойных патронов типа дроби (чтобы не занижать показатели у шотганов). Вообще, эти шкалы -- большой простор для фантазии, особенно при глобальном ребалансе ТТХ. Их ВСЕГДА можно сделать честными и красивыми, главное -- спроектировать подходящие под "боевой базис" своей модификации алгоритмы. @Charsi, во, кстати, давно хотел узнать (плюсовые сорцы никогда не читал). Не сталкивался случаем, в перечислении содержимого т.н. surprise_box и тайников ведь нельзя аддон сразу на оружие нацепить, только вместе с ним положить? Я про подобные: wpn_ak74_m1, ammo_5.45x39_fmj, 60, wpn_addon_silencer, medkit, 3 Как вешать их в профилях NPC и на свободнолежащие стволы через флаги, знаю, а тут очевидного решения не вижу :Z 1 New Level Changer 5.08: Раритеты ReapeR build 3: Раритеты Я на YouTube: Vincent Vega Поделиться этим сообщением Ссылка на сообщение