Сповіщення
Очистити все

Система апгрейдов


NazarTmm
Ранг:
Досвідчений
Роль:
Модмейкер
Угруповання:
Бандити
Записи:
35
Приєднався:
10 місяців тому
Початок теми  

Для редагування вже існуючих апгрейдів на прикладі АК74 нам обов'язково знадобляться файли:
1. configs\weapons\upgrades\w_ak74_up.ltx
2. configs\text\ua\st_items_weapons_upgrades.xml
3. configs\weapons\upgrades_properties.ltx
4. configs\weapons\w_ak74.ltx
5. configs\ui\textures_descr\ui_ingame2_common.xml

Отже, почнемо, відкривши файл №1. Бачимо вже звичну нам параметро-секційну структуру файлу:

[секція1]
параметр1 = значення1
параметр2 = значення2
параметр3 = значення3
...

[секція2]
параметр1 = значення1
параметр2 = значення2
...

Усі секції у файлі №1 можна розбити на три типи:
1. Показують вартість, зміни та значення описів при апгрейді. Ці секції - головні, ними йде посилання з секцій других типів. Розглянемо параметри з прикладу секції:

[up_sect_c_ak74]
cost = 1600
value = -30

cam_dispersion = -0.21;0.7
cam_dispersion_inc = -0.21;0.7
cam_step_angle_horz = -0.21;0.7

zoom_cam_dispersion = -0.2;0.6
zoom_cam_dispersion_inc = -0.2;0.6
zoom_cam_step_angle_horz = -0.2;0.6

Параметр cost означає ціну, яку має заплатити гравець для здійснення апгрейду.

Параметр значення. Ми знаємо, що у багатьох апгрейдів є такі, описи яких зводиться до типу: [характеристика] [+ чи -] [значення]%. Наприклад: "Віддача -30%". Значення, що показується у разі береться з параметра value (інші випадки, у яких опис не підходить під цю схему, наприклад, " не стріляє дробом " розглянемо потім). Увага: це значення є словесним описом і ніяк не впливає на характеристики зброї. Тобто можна в нашій секції поставити value = -10000. Суть апгрейду не зміниться, змінюється тільки його опис.

Параметри зміни параметрів. Далі йдуть зміни характеристик зброї. У значеннях параметрів вказується зміна, що стосується старих характеристик. Допустимо, перед апгрейдом було:

cam_dispersion = 0.7
Вказавши параметри у файлі №1:

cam_dispersion = -0.21
cam_dispersion = -0.21
у результаті отримуємо:

cam_dispersion = 0.49
cam_dispersion = 0.49
2. Основні секції апгрейду. Знову розглянемо параметри:

[up_c_ak74]
scheme_index = 0, 2
known = 1
effects = up_gr_ac_ak74
section = up_sect_c_ak74
property = prop_recoil

precondition_functor = inventory_upgrades.precondition_functor_a
precondition_parameter = true

effect_functor = inventory_upgrades.effect_functor_a
effect_parameter = something_here

; ui
prereq_functor = inventory_upgrades.prereq_functor_a
prereq_tooltip_functor = inventory_upgrades.prereq_tooltip_functor_a
prereq_params = up_c_ak74
name = st_upg_porsh_recoil
description = st_upg_porsh_recoil_descr
icon = ui_wp_upgrade_41
[up_c_ak74]
scheme_index = 0, 2
known = 1
effects = up_gr_ac_ak74
section = up_sect_c_ak74
property = prop_recoil

precondition_functor = inventory_upgrades.precondition_functor_a
precondition_parameter = true

effect_functor = inventory_upgrades.effect_functor_a
effect_parameter = something_here

; ui
prereq_functor = inventory_upgrades.prereq_functor_a
prereq_tooltip_functor = inventory_upgrades.prereq_tooltip_functor_a
prereq_params = up_c_ak74
name = st_upg_porsh_recoil
description = st_upg_porsh_recoil_descr
icon = ui_wp_upgrade_41

Параметр scheme_index вказує положення іконки апгрейду в дереві апгрейдів (воно з'являється при натисканні кнопки "поліпшити"). Докладніше на цьому параметрі зупинимося у другому спойлері.

Параметри ефектів. Всім добре відомо, що ап №1 у другому стовпці дерева апів можна отримати лише тоді, коли проведено апи №1 та №3 у першому стовпці. Для відкриття апів після проведення інших служить параметр effects, що включає інші апгрейди. Він надає посилання на секцію №3. Докладніше на них зупинимося трохи нижче.

Параметр section вказує на секцію №1. Від цього значення залежить зміни при апе.

Параметр property вказує тип апу, що проводиться. Типи апів можна взяти на початку файла №3. Докладніше про цей параметр у спойлері №3.

Типи апов:

prop_weight;; Вага
prop_silencer;; Глушник
prop_underbarrel_slot;; Кріплення підствольника
prop_reliability;; Надійність
prop_bullet_speed;; Настильність
prop_recoil;; Віддача
prop_ammo_size;; Патрони
prop_grenade_launcher;; Підствольник
prop_scope_4x;; Приціл 4
prop_scope_1.6x;; Приціл 1.6
prop_rpm;; Швидкострільність
prop_calibre;; калібр (9x18, 5x45)
prop_dispersion;; Точність
prop_inertion;; Зручність

prop_armor;; Броня
prop_damage;; Пошкодження
prop_durability;; Зносостійкість (міцність)
prop_restore_bleeding;; Зменшення кровотечі
prop_restore_health;;Відновлення здоров'я
prop_night_vision;;Прилад нічного бачення
prop_power;;Відновлення стаміни
prop_tonnage;; Переносима вага
prop_radio_chem;;Радіо-хім захист
prop_thermo_electro;; Термо-електро захист
prop_psy;; Псі захист
prop_artefact;; Слот для артефактів

Параметр prereq_params. У значенні параметра вказуйте розділ, в якому знаходиться параметр. Потрібно для скриптових цілей.

Параметр name містить посилання текстовий блок з файлу №2. У нашому випадку:

name = st_upg_porsh_recoil
<string id="st_upg_porsh_recoil">
<text>Модифікація газового поршня</text>
</string>
<string id="st_upg_porsh_recoil">
<text>Модифікація газового поршня</text>
</string>
Параметр description схожий на параметр name, але стосується опису апгрейду. Тут:

description = st_upg_porsh_recoil_descr
description = st_upg_porsh_recoil_descr
<string id="st_upg_porsh_recoil_descr">
<text>Встановлення компенсатора газового поршня дозволяє зменшити віддачу</text>
</string>
<string id="st_upg_porsh_recoil_descr">
<text>Встановлення компенсатора газового поршня дозволяє зменшити віддачу</text>
</string>
Параметр icon містить вказівник на опис іконок у файлі №5.
Ось структура файлу:

<texture id="[вказівник на іконку]" x="[координата x верхнього лівого пікселя іконки]" y="[координата y верхнього лівого пікселя іконки]" width="[ширина іконки]" height="[висота]" />
<texture id="[вказівник на іконку]" x="[координата x верхнього лівого пікселя іконки]" y="[координата y верхнього лівого пікселя іконки]" width="[ширина іконки]" height="[висота]" />
У нашому випадку:

<texture id="ui_wp_upgrade_41" x="420" y="944" width="70" height="40" />
<texture id="ui_wp_upgrade_41" x="420" y="944" width="70" height="40" />

3. Секції, що об'єднують апгрейди до груп апгрейдів. (У єдиному параметрі elements вказуються апгрейди, що входять у групу, тобто. посилання на секції других типів) З групи апгрейдів може бути проведений тільки один апгрейд (у першому стовпці може бути проведений тільки один з апгрейдів - №1 або №2). При включенні групи апгрейдів включаються всі апгрейди, що входять до групи. Для включення групи необхідно, щоб усі апгрейди з ефектом включення цієї групи було проведено. (Для відкриття групи апгрейдів up_gr_ac_ak74 необхідно, щоб були проведені апгрейди up_gr_a_ak74 та up_gr_c_ak74. Назви тут ні до чого: у головних секціях (тип секції №2) цих двох апгрейдів параметр effects набуває значення up_gr_ac_

Таким чином, кожен апгрейд:
1. Має якісь параметри.
2. Має якийсь опис.
3. Належить до якоїсь групи апгрейдів.

Тепер кілька важливих зауважень:
1. У файлі №4 (конфіг самого АК74 та його унікальних модифікацій) є кілька параметрів:

Параметр upgrades. У його значеннях перераховуються групи апгрейдів, апгрейди яких можна провести на чистому АК74. Перелік йде через кому. Після останньої групи апгрейдів кома не потрібна.
Параметр installed_upgrades вказує апгрейди, які вже були проведені в цій зброї. Тут зазначаються групи апгрейдів, а самі апгрейди, тобто. секції другого типу.

 

 

 

 


   
Цитата
Теги теми