Как создать новый артефакт

Материал из Modders-wiki - Библиотека знаний модмейкеров S.T.A.L.K.E.R.
Перейти к: навигация, поиск
Unpack.pngТребуется распакованная gamedata
Перед тем, как приступить, предварительно распакуйте игровые архивы.
Без наличия оригинальных файлов, внести в них изменения не получится!


Как создать новый артефакт
How add new artefact.png
Описание
АвторvanStal
СоавторАномальный
Тип статьируководство
АктуальностьЗП
Необходимый софтТекстовый редактор
Необходимые файлыartefacts.ltx, devices.ltx, ui_detector_artefact.xml, конфиг логики аномальной зоны

Этот короткий урок научит вас создавать новый артефакт[1].
Откройте любым текстовым редактором файл artefacts.ltx. В этом файле находятся все артефакты доступные в игре. Впишите в него следующий код:

[af_имя_артефакта]:af_base
$spawn    = "artefacts\gravitational_1_medusa" ; название каталога\универсальное имя в X-Ray SDK
class    = ARTEFACT   ; Класс для набора читаемых параметров
visual    = dynamics\artefacts\af_medusa.ogf ;путь к визуалу вашего арта
description   = st_af_test_descr ;ссылка на описание
inv_name   = st_af_test_name ;ссылка на имя в инвентаре
inv_name_short          = st_af_test_name ;ссылка на имя
inv_weight   = 0.5 ; вес

inv_grid_x   = 9 ;кординаты иконки нашего арта по x
inv_grid_y   = 4 ;кординаты иконки нашего арта по y
inv_grid_width   = 1 ;ширина иконки
inv_grid_height   = 1 ;высота иконки

cost    = 4000 ;цена

jump_height   = .5 ; высота подскока артефакта     

particles   = artefact\af_gravi_idle ;дефолтный партиклы
det_show_particles  = artefact\af_gravi_show ;партикл появления артефакта
det_hide_particles  = artefact\af_gravi_hide ;партикл исчезновения артефакта

af_rank    = 1 ; ранк артефакта (0-3, 0-дефолт, 3-максимальный)

lights_enabled = true           ; подсветка, при true - активна, false - нет

trail_light_color   = 0.4,0.4,0 ; оттенок подсветки
trail_light_range   = 2.0 ; яркость света

;скорости увеличения (уменьшения)
health_restore_speed  = 0 ;восcтановление здоровья
radiation_restore_speed  = -0.002 ;выведение радиации (при отрицательном значении радиация выводится)
satiety_restore_speed  = 0 ;востановление сытости
power_restore_speed  = 0 ;востановление стамины (силы)
bleeding_restore_speed  = 0 ;заживление ран

hit_absorbation_sect  = af_test_absorbation ; подключение секции иммунитетов

additional_inventory_weight = 0 ; изменение веса с которым можно бегать
additional_inventory_weight2 = 0 ; изменение максимально подымаемого веса

artefact_activation_seq  = af_activation_bold ; имя секции для активации артефакта, в оригинальной игре не активна

[af_test_absorbation] ; имя секции иммунитетов
burn_immunity    = 0 ; к огню
strike_immunity   = 0 ; к ударам и падениям
shock_immunity    = 0 ; к электричеству
wound_immunity    = 0 ; к рваным ранам
radiation_immunity   = 0 ; к радиации
telepatic_immunity   = 0 ; к ментальному воздействию
chemical_burn_immunity          = 0 ; к химическим ожогам
explosion_immunity   = 0 ; к осколочным ранениям
fire_wound_immunity           = 0 ; к огнестрельным ранениям

Сохраните. Далее откройте файл devices.ltx и найдите там строку [detector_scientific], и чуть ниже строки вида:

af_class_27  = af_oasis_heart
af_sound_27_  = detectors\art_beep1
af_freq_27              = 0.05, 2

После этих строк напишите следующий код:

af_class_28  = af_имя_артефакта 
af_sound_28_  = detectors\art_beep1
af_freq_28               = 0.05, 2

Это нужно для того, чтобы нужный детектор мог "засветить" артефакт. Стоит также отметить, что этот артефакт можно будет обнаружить только с помощью детектора "Сварог".
В файл gamedata\configs\ui\ui_detector_artefact.xml добавьте код:

    <palette id="af_имя_артефакта" width="0.0015" height="0.0015" stretch="1" alignment="c">
      <texture shader="hud\p3d">ui_temp_ad3_artefact</texture>
    </palette>

Почти все готово. Теперь артефакт еще нужно приписать аномалии. Откройте файл необходимой вам аномалии в папке gamedata/configs/scripts/имя_уровня/anomaly/, после чего найдите в нем подобный код:

artefacts = af_cristall, af_fireball, af_dummy_glassbeads, af_eye, af_fire
coeff = 3, 3, 2, 2, 1

Перепишите его таким образом:

artefacts = af_cristall, af_fireball, af_dummy_glassbeads, af_eye, af_fire, af_имя_артефакта
coeff = 3, 3, 2, 2, 1, коэффицент_спавна_вашего_арта(1, 2 или 3)

На этом все. Удачи!

Источники