Статистика Форума
Последние обновленные темы
Самые популярные темы
Активисты форума
Авторитеты форума
Bioshock 2

Ответил: WurDalaK
Mass Effect

Ответил: greendayone82
Dead Space

Ответил: greendayone82
Беседы у костра

Создал: WurDalaK; ответов: 2105
Вопросы по модострою

Создал: WurDalaK; ответов: 1161
Ходка №1

Создал: Алеся; ответов: 301
Какой трек у вас сейчас и...

Создал: Never; ответов: 65
Злой админ

Создал: WurDalaK; ответов: 54
WurDalaK

Постов: 2057
Возрожденный

Постов: 1621
Wo1fRam

Постов: 592
Алеся

Постов: 183
Marsel

Постов: 174
WurDalaK

Уважение: 28
Venus

Уважение: 23
Never

Уважение: 17
Возрожденный

Уважение: 13
Wo1fRam

Уважение: 13

  • Страница 1 из 1
  • 1
Модератор форума: WurDalaK  
Форум » Уроки по созданию модов » Конфиги, скрипты и прочие мелочи » Учим техника делать все апгрейды
Учим техника делать все апгрейды
  WurDalaK
Дата: Пятница, 19.04.2013, 23:47 | Сообщение # 1
Mysterious asari
Статус
Страж
Группа Администраторы
Сообщений 2057
Награды 9
-
28
+
В папке gamedata\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.

Хочешь сказать спасибо? Ставь + в репутацию!
Спрятать подпись Спрятать все подписи
 
Форум » Уроки по созданию модов » Конфиги, скрипты и прочие мелочи » Учим техника делать все апгрейды
  • Страница 1 из 1
  • 1
Поиск:
Мини-чат
Яндекс.Метрика