Перейти к контенту

[SoC] Ковыряемся в файлах


Halford

Рекомендуемые сообщения

6 часов назад, Возрождённый сказал:

[...] Все равно у меня какое-то навязчивое подозрение, что они не совсем правильно работают...

 

По-хорошему, нужно не "гасить симптомы" отключением шкал, а править логику в ui_wpn_params.script под конкретную ТТХ-систему.

 

В конктексте какой базы вопрос? Если AMK, то шкалы завязаны на новые параметры в секциях стволов: hit_rate, disp_rate, а также на порядок секций патронов в ammo_section (первой должна идти секция наиболее "продвинутого" типа боеприпасов: дротик для шотганов etc.). В противном случае шкалы будут врать, и сильно. На моем опыте, практически ни в одном моде, построенном на базе AMK, не удосужились внести соответствующие правки, зато на "вранье" шкал не жаловался только ленивый)

Если речь о ванили, то там есть "проблемки" со шкалой "Точность". Она зависит даже от базовой дисперсии актора, хотя в идеале должно рассматриваться оружие, зажатое в тиски. Простейший вариант исправления на более-менее "честную" логику -- в олдовом Zenobian Mod (использую их метод в своем аддоне), но ничто не мешает разработать свой, особенно при использовании нестандартной ТТХ-системы: скажем, TrickSR и т.д.

 

Изменено пользователем The ReapeR
  • Спасибо 1

New Level Changer 5.08: Раритеты

ReapeR build 3: Раритеты

 

Я на YouTube: Vincent Vega

Поделиться этим сообщением


Ссылка на сообщение

@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 и названию секции сможешь найти конкретное место.

 

Изменено пользователем The ReapeR
  • Полезно 1

New Level Changer 5.08: Раритеты

ReapeR build 3: Раритеты

 

Я на YouTube: Vincent Vega

Поделиться этим сообщением


Ссылка на сообщение

@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

Просто пара примеров, с оптимизацией использования переменных и однотипных вызовов.

 

Изменено пользователем The ReapeR
  • Спасибо 1
  • Согласен 1

New Level Changer 5.08: Раритеты

ReapeR build 3: Раритеты

 

Я на YouTube: Vincent Vega

Поделиться этим сообщением


Ссылка на сообщение

@Капрал Хикс,

все верно, 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

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...