📌 Обновление Форума
  • Страница 1 из 1
  • 1
Форум сталкер » S.T.A.L.K.E.R.: Школа моддинга » Уроки, вопросы по созданию модов » Как научить механика делать все апгрейды (научить механика делать апгрейды)
Как научить механика делать все апгрейды
Anubis

AnubisОфлайн

Сталкер зоны

Алхимик зоны

Сталкерское уважение

plus «85» plus

plus «4» plus

Ранг:


1 05:07:10, 2022.01.05 Посты: «325» Титул: Хранитель Зоны
Как научить механика делать все апгрейды
- в configs\weapons\ лежат конфиги оружия
- у каждого оружия в основной секции есть параметр upgrades, который содержит все доступные для этого оружия апгрейды.
- второй параметр installed_upgrades содержит все предустановленные апгрейды, в основном на квестовых пушках.
- третий парамет upgrade_scheme - схема установки апгрейдов, иначе говоря ссылка на inventory_upgrade.xml, в котором задано графическое отображение иконок.

на примере ПМ-а смотрим, что
Цитата
upgrades = up_gr_ab_pm, up_gr_cd_pm, up_gr_e_pm, up_gr_f_pm, up_gr_g_pm, up_gr_h_pm
installed_upgrades =
upgrade_scheme = upgrade_scheme_u10a


ищем для начала up_gr_ab_pm. находим этот параметр в configs\weapons\upgrades\w_pm_up.ltx
Цитата
Цитата
[up_gr_ab_pm]
elements = up_a_pm, up_b_pm


up_a_pm находится в этом же файле, в этой секции сразу видим следующее:
Цитата
scheme_index = 0, 0
effects = up_gr_ac_pm
section = up_sect_a_pm
property = prop_rpm


scheme_index - положение иконки, в данном случае это первый столбик первая строка.
effects - это ссылка на секцию
Цитата
[up_gr_ac_pm]
elements = up_ac_pm


section - это ссылка на секцию в файле w_pm_up.ltx, в котором прописано следующее (пояснений не требует):
Цитата
[up_sect_a_pm]
cost = 120
value = +25
rpm = 50


property - это ссылка на xml-описатель, в данном случае он равен "скорострельность"
смотрим далее:
Цитата
precondition_functor = inventory_upgrades.precondition_functor_a
precondition_parameter = a & b
effect_functor = inventory_upgrades.effect_functor_a
effect_parameter = on_weapon_upgrade_something_here


precondition_functor - это ссылка на ф-ию из inventory_upgrades.script, которая смотрит к какому механику мы приперлись, и в зависимости от его умения разрешает или запрещает проведение апгрейда.
precondition_parameter пока непонятен.
effect_functor - ф-ия отнимания денег за проведенный апгрейд
Цитата
prereq_functor = inventory_upgrades.prereq_functor_a
prereq_tooltip_functor = inventory_upgrades.prereq_tooltip_functor_a
prereq_params = money(1000), item(habar)
name = st_upg_zatvor_rpm
description = st_upg_zatvor_rpm_descr
icon = ui_wp_upgrade_01


prereq_functor - судя по скриптам не используется, также как и ее параметры.
name - название апгрейда
description - описание апгрейда
icon - иконка. все берется из xml файла соттветсвующего выбраному языку.

вернемся в параметру effects. он указывает на нечто с названием up_ac_pm, такую же секцию апгрейда, но уже для параметра "отдача". это апгрейд второго уровня, и он зависит от up_a_pm и up_c_pm.

в итоге имеем, что ключевой точкой является параметр upgrades в файле конкретного ствола.

теперь, что нужно сделать, чтобы имет возможность установить все апгрейды. еще раз взглянем на этот параметр:
Цитата
upgrades = up_gr_ab_pm, up_gr_cd_pm, up_gr_e_pm, up_gr_f_pm, up_gr_g_pm, up_gr_h_pm

так как up_gr_ab_pm ссылается на секцию, в которой прописаны сразу два апгрейда, то игра считает эти апгрейды взаимоисключающими. поэтому нам надо просто разбить этот параметр на две части. вот исправленная строчка:
Цитата
upgrades = up_gr_a_pm, up_gr_b_pm, up_gr_c_pm, up_gr_d_pm, up_gr_e_pm, up_gr_f_pm, up_gr_g_pm, up_gr_h_pm


однако, секций up_gr_a_pm, up_gr_b_pm, up_gr_c_pm, up_gr_d_pm в файле апгрейдов для ствола может и не быть, поэтому заглянем в конец файла w_pm_up.ltx (мы ведь над ПМ-ом изгаляемся), и убедимся, что действительно, секций нет. добавляем:
Цитата
[up_gr_a_pm]
elements = up_a_pm
[up_gr_b_pm]
elements = up_b_pm
[up_gr_c_pm]
elements = up_c_pm
[up_gr_d_pm]
elements = up_d_pm


теперь самое главное. почти у каждого ствола есть несколько заранее модифицированных двойников, и они описаны обычно в конце конфига этого ствола. для ПМ-а это аж 3 секции: wpn_pm_minigame, wpn_pm_up и wpn_pm_9x19. и каждой из них за каким-то прописан параметр upgrades в точности повторяющий значение родительского класса. на кой делать наследование и повторять параметры - я не понимаю, но из-за этого придется для каждого модифицированного ствола скопировать этот параметр с разделенными апгрейдами.
А еще лучше закомментировать эту строку, оставив только параметр installed_upgrades.



Форум сталкер » S.T.A.L.K.E.R.: Школа моддинга » Уроки, вопросы по созданию модов » Как научить механика делать все апгрейды (научить механика делать апгрейды)
  • Страница 1 из 1
  • 1
Поиск:

Заходили: 🚸 Anubis, valiksuper12, andrejmcp, XavkRaider