Сборка стеллажей своими руками

Сборка стеллажей своими руками
Сборка стеллажей своими руками

 Что же такое мод?


Мод (сокр. от «модификация») — модификация или дополнение к компьютерной игре, написанное, как правило, сторонними разработчиками или любителями с помощью SDK, прилагающегося к игре или специальных, разработанных для модифицирования игр любительских программ. В отличие от адд-она, при его разработке часто радикально изменяет баланс сил (в стратегических играх) или набор оружия и возможности героя (в 3D-шутерах).

Мутатор — модификация игры, которая лишь частично изменяет игру. В отличие от модов, которые, как правило, нельзя совмещать (в игре одновременно может быть активно не более одного мода), в одной игре может быть одновременно включено несколько мутаторов.

Порядок, в котором применяются мутаторы, может быть важен. Например, если за мутатором «без снайперской винтовки» применяется мутатор «превратить всё оружие в снайперские винтовки», снайперские винтовки исчезают, а всё остальное оружие превращается в винтовки. Если же применить мутаторы в обратном порядке, исчезает всё оружие.

Подключение мутаторов существует лишь в некоторых играх. Например, они имеются в Unreal Tournament и в трилогии S.T.A.L.K.E.R.

В данное время для игр серии S.T.A.L.K.E.R. было написанно много интересных модов и мутаторов. Кстати, сама компания GSC только "ЗА" любительские моды, ведь с модами растёт и популярность к серии. И многие новички наверное то же хотели бы создать свои моды. Благо доступность многих сайтов позволяет новичкам освоиться в данном направлении. На мой взгляд самыми успешными являются 2 из них: сайт команды АМК и STALKER Inside.

Сегодня я расскажу как сделать свою первую мутацию, а может и свой первый мод.

Сразу хотелось бы сказать новичкам, чтобы стать настоящим мододелом, нужно большое терпение, усидчивость и руки из нужного места. Кстати, голова то же не помешает.

Итак, приступим. Создание модов можно разделить на несколько частей.

  1. Работа с конфигурационными файлами (далее просто конфигами)
  2. Работа со скриптами
  3. Работа с 3D моделями
  4. Работа с текстурами
  5. Работа со звуковыми файлами и видео
  6. Работа с all.spawn-ом

Сразу оговорюсь, если вы новичок, лучше всего начинать с конфигов и текстур.
Данная статья написана для новичков и заострять внимание на различных деталях я пока не буду. Теперь разберемся со структурой файлов и форматами.
  1. Все ресурсы игры запакованы в такие архивы gemedata.db
  2. Если их распаковать специальной программой (Unpacker), то в папке с установленной игрой мы увидим папку gamedata.

Рассмотрим её структуру:
  • ai - искусственный интеллект (далее АИ)
  • anims – папка с разными экранными эффектами (в формате anm и ppe)
  • configs – папка со всеми игровыми конфигами
  • levels – уровни
  • meshes – 3D модели
  • scripts - скрипты
  • shaders – шейдеры (разные спец. эффекты)
  • sounds – звуки
  • spawns - спавн
  • textures – текстуры
  1. Все текстуры в игре используют формат DDS
  2. Открыть их можно через программу WTV
  3. А редактировать с помощью Paint.NET или Photoshop+плагин

Теперь давайте разберёмся со структурой папки

textures:

  • act – папка с текстурами сталкеров, монстров
  • artifact – текстуры артефактов
  • briks – кирпичные стены
  • controller – текстура удара контролёра
  • crete - бетон
  • decal – пыль, плакаты, надписи, мусор
  • detail – пыль, камни, осколки
  • door – текстуры дверей и люков
  • ed
  • editor -
  • floor – пол: бетон, линолеум
  • fx – разные мелочи
  • glas - жалюзи
  • glass - окна
  • glow – свет от солнца и ламп
  • grad – эффекты света
  • grnd – текстуры земли
  • internal – свет от фонарика
  • intro – загрузочные картинки локаций
  • item – игровые предметы: хлеб, колбаса, водка, детекторы, аптечки
  • lights – свет от солнца и ламп
  • map – текстуры карт
  • mtl – текстуры металла
  • outro – видео концовок игры
  • pfx – эффекты аномалий и артефактов (их свечение)
  • prop – текстуры плакатов, приборов, оборудования, бочек, балонов
  • roof - шифер
  • sign – плакаты
  • sky – текстуры неба
  • staff – фон
  • terrain – текстуры террейна
  • tile – керамическая плитка
  • trees - деревья
  • ui – текстуры иконок, и разных менюшек, пда
  • veh – текстуры автомобилей, вертолётов, вагонов
  • vine – текстуры плюща
  • wall – стены домов
  • water - вода
  • wind – текстуры окон
  • wm – текстуры крови и следов от пуль
  • wood – текстуры дерева
  • wpn – текстуры оружия
Все звуки игры имеют формат OGG

Редактировать советую с помощью AudaCity

Так как урок у нас для новичков, то я не буду рассказывать о 3D моделировании. Я расскажу как сделать "новую" модель и добавить ей новую текстуру.

Все модели в формате OGF. Их удобно просматривать с помощью OGFViewer

Давайте сделаем новую модель сталкеру на основе модели обычного нейтрала.

Нам потребуется:

  1. Hex Editor
  2. Paint.NET или Photoshop
  3. 3D-модель из директории meshes/actors/stalker_neutral/stalker_neutral_2.ogf
  4. Текстура textures/act/act_stalker_neutral_2.dds

Запускаем Paint.NET или Photoshop и редактируем текстуру по вкусу:


ДО                                                                   ПОСЛЕ

Сохраняем с новым именем в эту же папку.

ВАЖНО: если имя текстуры было 12 символов, оно и должно остаться 12 символами!!!

Пример:  act_stalker_neutral_2.dds стало act_stalker_neutral_n.dds


Открываем OGF модель с помощью Hex Editor-а, и видим такое окно:

Спойлер

Находим поиском такой текст: act_stalker_neutral_2

Спойлер


Это имя текстуры - переименовываем на наш текст  

Спойлер

Сохраняем. Всё. Осталось прописать нашу модель любому из сталкеров, например Бороде, но это мы научимся делать позже. Такой трюк с заменой текстуры можно проделать с любой моделью.

Конфиги главная часть всего сталкера (не считая скриптов). Сами файлы имеют форматы xml и ltx. Мы будем открывать их блокнотом. Теперь разберёмся со структурой.


Папка configs:

  • сreatures – папка с конфигами НПС, группировок (НПС или NPC - сталкеры, монстры)
  • environment – папка с конфигами погодных эффектов
  • gameplay – второстепенные конфиги НПС, инфопорции, диалоги
  • misc – конфиги артефактов, предметов, еды, одежды, звуков, заданий
  • models – конфиги моделей
  • mp – мультиплеер
  • prefetch – неважно
  • scripts – логика НПС, мутантов, аномалий (НЕ ПУТАТЬ СО СКРИПТАМИ!)
  • text – русские тексты (диалоги, пункты меню, имена сталкеров и т.д.)
  • ui – конфиги положения иконок
  • weapons – конфиги оружия
  • weathers – конфиги погоды
  • zones – конфиги аномалий


FAQ


Вопрос: Как сделать главного героя бессмертным, бесконечно выносливым?

Ответ: Параметры, отвечающие за потерю НР находятся в файле gamedata/configs/creatures/actor.ltx, эти строки:

  • satiety_critical = 0.0 ; критическое значения сытости (в процентах от 0..1) когда здоровье начианает уменьшаться
  • radiation_health_v = 0.004 ; уменьшение здоровья при воздействии радиации
  • health_hit_part = 1.0 ; процент хита, уходящий на отнимание здоровья
  • power_hit_part = 0.1 ; процент хита, уходящий на отнимание силы
  • bleeding_v = 0.002 ;0.0005 ; потеря крови при номинальной ране в секунду
Cделайте их равными 0.0, и вы бессмертны.
  • wound_incarnation_v = 0.0001 ;0.003 ;скорость заживления раны
  • min_wound_size = 0.0256 ;минимальный размер раны, после которого она считается зажившей
  • psy_health_v = 0.001 ;скорость восстановления psy-здоровья
Увеличьте эти параметры в несколько раз

Для бесконечной выносливости обнулите эти параметры:

  • walk_power = 0.00001 ; умешьшение силы за секнду во время ходьбы без учета веса ноши
  • walk_weight_power = 0.00005 ; умешьшение силы за секнду во время ходьбы с учетом веса ноши, для максимального допустимого веса
Для увеличения высоты прыжка, измените этот параметр:
  • jump_speed = 6

Вопрос: Как изменить длину палочки прицела?

Ответ: в gamedataconfigssystem.ltx отредактировать эти строки:
[hud_cursor]
;все размерv в процентах от длинv экрана

  • cross_length = 0.015 ; длина "палочки" прицела
  • min_radius = 0.0 ; минимальнvй радиус прицела (при нулевой дисперсии)
  • max_radius = 1.0 ; максимальнvй радиус
  • radius_lerp_speed = 0.08 ; скорость интерполљции положений прицела
  • cross_color = 0.7,0.7,0.7,0.5 ; цвет прицела
  • disp_scale = 0.08 ; масштаб прицела (относительно радиан)

Вопрос: Как изменить параметры конкретного оружия?

Ответ: Параметры стволов заданы в конфигурационных файлах по адресу gamedata/configs/weapons
Возьмем, для примера, конфиг w_g36.ltx. Он делится на разделы:

  • Первый раздел
Здесь хранится общая информация о оружии - его класс, тип, ссылки на спавн и т.д. Нас интересуют следующие строки:
  • description = enc_weapons1_wpn-g36 - ссылка на string_id, из которого игра подгружает описание этого оружия.
  • ef_main_weapon_type = 2 - основной тип, к которому принадлежит оружие
  • ef_weapon_type = 6 - подтип, к которому принадлежит оружие
  • Второй раздел
Содержит модификаторы, которые даются к углу зрения/дальности обзора NPC, держащего это оружие в руках:
  • holder_range_modifier = 1.85 - во сколько раз увеличивается eye_range
  • holder_fov_modifier = 0.3 - во сколько раз увеличивается eye_fov
  • Третий раздел
Содержит данные о самом оружии, его некоторых характеристиках:
  • cost = 18000 - базовая цена (торговцы умножают её на некоторый коэффициент)
  • weapon_class = assault_rifle - класс оружия (здесь - штурмовая винтовка)
  • ammo_mag_size = 30 - размер магазина
  • ammo_class = ammo_5.56x45_ss190, ammo_5.56x45_ap - типы используемых патронов
  • grenade_class = ammo_m209 - тип используемых гранат
  • fire_modes = 1, -1 - режимы ведения огня
  • hand_dependence = 1 - засивимость о рук (?) - возможно, речь идет о качании ствола
  • single_handed = 0 - держится ли только в одной руке
  • slot = 2 - слот в инвентаре
  • animation_slot = 2 - вид анимации (для пистолета/для винтовки)
  • inv_name = wpn-g36 - ссылка на имя, отображаемое в инвентаре, тоже берется из string table, как и описание
  • inv_name_short = wpn-g36 - короткое имя; в данном случае используется то же самое
  • inv_weight = 3.6 - вес
  • inv_grid_width = 5 - координаты первого угла иконки по x
  • inv_grid_height = 2 - координаты первого угла иконки по y
  • inv_grid_x = 0 - координаты второго угла иконки по x
  • inv_grid_y = 10 - координаты второго угла иконки по y
  • Четвертый раздел
В четвертом разделе хранится информация о износе/отдаче оружия. Практически все параметры там снабжены комментариями, поэтому приведу лишь самые интересные:
  • cam_relax_speed = 5.7 - скорость возврата в исходное положение
  • cam_dispersion = 0.2 - увеличения угла (в градусах) с каждым выстрелом
  • fire_dispersion_condition_factor = 5 - увеличение дисперсии в процентах при максимальном износе
  • misfire_probability = 0.003 - вероятность осечки при максимальном износе
  • misfire_condition_k = 0.05 - порог (в данном случае - 5%), после которого оружие может заклинивать
  • condition_shot_dec = 0.0002 - увеличение износа при каждом выстреле
  • Пятый раздел
Здесь хранится множество параметров, из которых наиболее интересны эти:
  • PDM_disp_base = 3.0 - множитель, на который умножается базовая дисперсия оружия, когда ГГ (Главный Герой) стоит на месте в полный рост;
  • PDM_disp_vel_factor = 1.3 - множитель, на который умножается базовая дисперсия оружия, когда ГГ крутит оружием или бежит;
  • PDM_disp_accel_factor = 1.3 - множитель, на который умножается базовая дисперсия оружия, когда ГГ бежит в спринте;
  • PDM_crouch = 1.0 - множитель, на который умножается базовая дисперсия оружия, когда ГГ идет пригнувшись;
  • PDM_crouch_no_acc = 1.0 - множитель, на который умножается базовая дисперсия оружия, когда ГГ стоит на месте, пригнувшись;
  • hit_power = 0.50, 0.54, 0.57, 0.60 - сила выстрела
  • hit_impulse = 105 - импульс пули (сила, которую летящая пуля передает жертве, влияет на поведение ragdoll-тела)
  • hit_type = fire_wound - тип причиняемых повреждений, в данном случае - пулевые ранения (параметр в синглплеере ни на что не влияет)
  • fire_distance = 600 - максимальная дистанция для выстрела
  • bullet_speed = 925 - начальная скорость пули
  • hud = wpn_g36_hud - внешний вид оружия
  • Шестой раздел
  • position = -0.026, -0.132, 0.0 - позиция по отношению к игроку (?)
  • orientation = 0, 0, 0 - направление, в которое смотрит ствол (?)
  • Седьмой раздел
Содержит описания визуальной стороны оружия и некоторые другие параметры:
  • startup_ammo = 90 - как нетрудно догадаться, стартовое количество патронов (в синглплеере ни на что не влияет)
  • visual = weaponsg36wpn_g36.ogf - модель оружия, используемая NPC, а также игроком при виде от третьего лица
  • ph_mass = 4 - физическая масса, используемая при расчетах
  • scope_status = 1 - ситуация со съемным прицелом
  • silencer_status = 0 - ситуация со съемным глушителем
  • grenade_launcher_status = 0 - ситуация с подствольным гранатометом
Параметры:
  • 0 - нет, новый прикрепить нельзя
  • 1 - уже есть, несъемный
  • 2 - нет, но можно установить новый
  • zoom_enabled = true - есть ли зум (прицеливание)
  • scope_zoom_factor = 33.3 - какой зум дает прицеливание (здесь - 1.8х)
  • scope_texture = wpnwpn_crosshair_g36 - текстура прицельной сетки
  • shell_point = 0.15, 0.0, -0.05 - точка вылета гильз
  • shell_dir = 0.0, 1.0, 0.0
  • fire_point = -0.000000,0.062000,0.134000 - точка выстрела
  • fire_point2 = 0.30, 0.00, 0.05 - точка выстрела (2)
  • fire_bone = wpn_body
  • orientation = 0, 0, 0 - направление
  • position = 0, 0, 0 - позиция
  • visual = weapons/g36/wpn_g36_hud.ogf - модель, отображаемая у нас в руках

Изменение описаний

Описания оружия хранятся в файле: ...S.T.A.L.K.E.R/gamedata/configs/text/rus/string_table_enc_weapons.xml

В нем хранятся строки с названиями и описаниями, на которые ссылаются конфиги оружия. Например, тот же G36 ссылается сюда:

[...]

Штурмовая винтовка немецкого производства, представляющая собой первоклассный образец
современного оружия - лёгкого, надёжного и эргономичного.n Боеприпасы:n обычный 5,56x45 мм
SS109,n бронебойный 5,56x45 мм АР.
[...]

ГП37
[...]Меняя их содержимое, мы меняем описания/названия данного оружия.


Вопрос: Как изменить параметры конкретного боеприпаса?

Ответ: Параметры амуниции заданы в файле по адресу gamedata/configs/weapons/weapons.ltx

например:

  • visual = weapons/ammo/ammo_556x45_ss190.ogf - модель коробки с патронами
  • description = enc_weapons1_ammo_ammo-5.56x45-ss190 - ссылка на string_id, из которого игра подгружает описание этого типа патронов
  • cost = 320 - стоимость одной коробки
  • box_size = 30 - количество патронов в одной коробке
  • inv_name = ammo-5.56x45-ss190 - ссылка на string_id, содержащий имя для инвентаря
  • inv_name_short = ammo-5.56x45-ss190_s - ссылка на string_id, содержащий краткое имя для инвентаря
  • inv_weight = 0.33 - вес
  • inv_grid_width = 2 - координаты первого угла иконки по x
  • inv_grid_height = 1 - координаты первого угла иконки по y
  • inv_grid_x = 14 - координаты второго угла иконки по x
  • inv_grid_y = 11 - координаты второго угла иконки по y
  • k_dist = 1 - коэффициент дальности, сама дальность - в стволе, тупо расстояние.
  • k_disp = 2.5 - кучность, завязана с кучностью в стволе
  • k_hit = 1 - убойность, завязана с убойностью в стволе
  • k_impulse = 1 - чисто наскока эффектно ногами непись дрыгнет во время кердыка
  • k_pierce = 1 - коэффициент наскока испорится броня при попадании
  • impair = 1 - коэффициент износа ствола от пули
  • buck_shot = 1 - кол-во составляющих в пуле (напр картечь - 4, пуля - 1)
  • tracer = on - является ли патрон трассирующим (on/off)
  • wm_size = 0.05 - визуальный размер дырки на стене от пули

Вопрос: Как редактировать торговцев, торговлю с обычными сталкерами?

Ответ: Все настройки, связанные с ассортиментом торговцев в игре, находятся в файлах gamedata/configs/misc/trade_.ltx Для всех остальных сталкеров - gamedata/configs/misc/trade_generic.ltx


Структура файла

  • Секция [trader_generic_buy]
Эта секция описывает какие товары торговец будет покупать.

Название предмета = минимальная цена покупки, максимальная цена покупки

Например:

wpn_vintorez = 0.5, 0.7 - Это значит что торговец купит оружие от 50% полной его стоимости до 70%, т.е. если Винторез стоит 1000, то торговец купит его в диапазоне от 500 до 700 рублей. Диапазон зависит от отношения торговца к Меченому - чем лучше, тем дороже купит.

  • Секция [supplies_start]
Эта секция описывает какие товары у торговца будут вначале.
Название предмета = количество, вероятность появления

Например:

bandage = 5, 1 - Это значит что у торговеца всегда будут 5 бинтов, с 100 процентной вероятностью появления в магазине.
bandage = 5, 0.6 - А тут уже вероятность появления 60%. Т.е. бинты не всегда будут.

  • Секция [supplies_after_]
Тоже самое, что в секции [supplies_start], но после выполнения квестов торговца.
  • Секция [trader_start_sell]
Эта секция описывает за какую цену торговец будет продавать.

Название предмета = минимальная цена продажи, максимальная цена продажи

Например:

wpn_vintorez = 1, 2 - Это значит что торговец продаст оружие от 100% полной его стоимости до 200%, т.е. если Винторез стоит 1000, то торговец продаст его в диапазоне от 1000 до 2000 рублей. Диапазон зависит от отношения торговца к Меченому - чем лучше, тем дешевле продаст

  • Секция [trader_after__sell]
Тоже самое, что в секции [trader_start_sell], но после выполнения квестов торговца.

деньги торговцев правятся в character_desc_название локации.xml.

Например, в character_desc_escape.xml такая строка: (если infinitive="1" - бесконечные деньги)

Вопрос: Как редактировать костюмы?

Ответ: Итак, секции с параметрами находятся в файле configs/misc/outfit.ltx

Рассмотрим, например, параметры классического костюма сталкера.

[stalker_outfit]:outfit_base ; название секции костюма. именно к нему игра будет обращаться. outfit_base -
базовая (наследуемая) секция (изменять строго не рекомендуется).

  • visual = equipmentsstalker_suit ; модель, используемая для сложенного костюма, лежащего на земле.
  • actor_visual = actorsherostalker_hood.ogf ; модель, используемая для игрока, когда на нем надет костюм.
  • inv_name = stalker_outfit_name ; название в инвентаре.
  • inv_name_short = stalker_outfit_name ; название в инвентаре (в принципе, можно здесь продублировать значение предыдущего параметра - так чаще всего и делают).
  • description = stalker_outfit_description ; ссылка на текстовую строку
  • с описанием.
  • inv_weight = 5.0 ; вес.

; далее идут параметры иконки в инвентаре.

inv_grid_width = 2
inv_grid_height = 3
inv_grid_x = 6
inv_grid_y = 15
full_icon_name = npc_icon_stalker_outfit ; название иконки.

cost = 15000 ; базовая цена (см. примечание 2).
full_scale_icon = 14,11 ; иконка сталкера в костюме в полный рост (отображается в инвентаре справа).
nightvision_sect = effector_nightvision_bad ; тип ПНВ ("плохой" - зеленый, "хороший" - синий).

; ниже идут параметры защиты владельца от различных типов воздействий,
обеспечиваемые костюмом.

  • burn_protection = 0.5 ; защита от воздействия огня (костры, аномалия "Жарка" и т.д.).
  • strike_protection = 0.5 ; защита от ударов (наносятся мутантами, например, псевдогигантом).
  • shock_protection = 0.5 ; защита от поражения электричеством.
  • wound_protection = 0.4 ; защита от ранений (наносятся мутантами, например, собаками, кровососами и т.д.).
  • radiation_protection = 0.5 ; защита от радиации.
  • telepatic_protection = 0.0 ; защита от пси-воздействия (например, присутствие контроллера серьезно влияет на psy_health).
  • chemical_burn_protection = 0.5 ; защита от химического воздействия.
  • explosion_protection = 0.3 ; защита от взрывов/осколков.
  • fire_wound_protection = 0.3 ; защита от огнестрельного оружия (наиболее важный параметр для большинства костюмов).
  • power_loss = 0.87
  • bones_koeff_protection = gilet_antigas_damage

[sect_stalker_outfit_immunities] ; коэффициенты иммунитета самого костюма, то есть - то, насколько сильно он сам подвержен повреждениям от различных типов воздействий. по значениям каждого типа - см. выше.
  • burn_immunity = 0.03
  • strike_immunity = 0.01
  • shock_immunity = 0.03
  • wound_immunity = 0.015
  • radiation_immunity = 0.00
  • telepatic_immunity = 0.00
  • chemical_burn_immunity = 0.03
  • explosion_immunity = 0.03
  • fire_wound_immunity = 0.01

Вопрос: Как сделать так, чтобы стволы не убирались сами?

Ответ: Изменить эти строки в файле gamedata/scripts/sr_no_weapon.script

function action_no_weapon:zone_enter()
self.state = state_inside
bind_stalker.restore_weapon(self.object:id())
end
function action_no_weapon:zone_leave()
self.state = state_outside
bind_stalker.restore_weapon(self.object:id())
end


Вопрос: Как реализовать качание прицела?

Ответ: Конфиги, отвечающие за эту особенность, в файле gamedata/configs/misc/effectors.ltx:

[zoom_inertion_effector]

  • camera_move_epsilon = 0.03 ;разница между двумя векторами направления камера, когда считается что камера двинулась
  • disp_min = 0.01
  • speed_min = 0.00001
  • zoom_aim_disp_k = 1.0 ; коэффициенты соотношения полной дисперсии стрельбы
  • zoom_aim_speed_k = 0.0025 ; и покачивания прицела
  • delta_time = 3000 ; время через которое эффектор меняет направление движения (в милисекундах)

Вопрос: Как "изменить" рост главного героя?

Ответ: В файле gamedata/configs/creatures/actor.ltx поменять параметр camera_height_factor = 0.92


Вопрос: Где лежат конфиги артефактов?

Ответ: Все артефакты описаны в файле gamedata/configs/misc/artefacts.ltx

Вопрос: Как восстановить активацию артефактов?

Ответ: Распишу по пунктам как добавить например к "огненому шару" аномалию Жарка...

Открываете файл: gamedata/config/misc/artefacts.ltx

И там в самом начале файла такая секция:

;Артефакты, которые при активизации создают аномальные зоны

;формат: {секция_артефакта} = {секция_зоны},Radius,Power

[artefact_spawn_zones]

af_medusa = zone_mosquito_bald_weak, 2.0, 30.0

Обозначает что артефакт af_medusa при активации создаст аномальную зону zone_mosquito_bald_weak с радиусом 2 метра и мощностью 30 (возможно влияет и на время жизни аномалии)

Кончается этот список по идее строчкой: mp_af_electra_flash = zone_witches_galantine, 3, 50.0

и сразу после неё пишете: af_fireball = zone_zharka_static, 3, 30.0

В принципе можно прописать там не статик а zone_zharka_weak незнаю что из них правильнее использовать... статик работает тоже.В той-же папке есть файл zone_zharka, где описаны свойства зон _weak, _average, _strong( слабая, средняя, сильная), а также зона zone_zharka_static.

После этого у вас игра станет вылетать с ошибкой про невозможность обнаружить последовательность описывающую анимацию активации аномалии.

А это всё там же в начале файла чуть ниже того где вы добавили новый артефакт в список есть такие строчки:

  • [af_activation_gravi]

;----------------------------------------------------------------------------------------------------------------------------------------

;format:                        time(sec),    sound_name,                 light_R,G,B,      light_range,        particle_name,                        af_animation_name

;----------------------------------------------------------------------------------------------------------------------------------------

starting                    =    5.0,        anomalygravi_idle00,    0.5, 1.0, 1.5,      5.0,            "anomaly2artefact_gravi_blast_start",    "idle"

flying                        =    2.0,        anomalygravi_idle01,    0.8, 1.0, 1.2,      3.0,            "anomaly2artefactartefact_gravi",                "idle"

idle_before_spawning        =    5.0,        anomalygravi_blowout5,    1.0, 1.0, 1,        0.0,            "anomaly2artefact_gravi_blast_finished",    "idle"              

spawning                    =    1,          anomalygravity_entrance,    0.9, 1.1, 1.01,      0.0,        "",        "idle"

Что как раз и описывает анимацию..


По-хорошему надо написать свою анимацию к жарке но это честно говоря не обязательно... потому что нам сейчас важна не красота а работоспособность.... Так вот... из заголовка "[af_activation_gravi]" берем название последовательности af_activation_gravi и ищем сам артефакт af_fireball (кто уже забыл зачем, мы на него собирались вешать новую активацию)

Найдете что-то вроде:

  • [af_fireball]:af_base

GroupControlSection    = spawn_group

$spawn             = "artifactszharka fireball"

$npc            = on                ; option for Level Editor

;$prefetch         = 3

cform           = skeleton

class           = ARTEFACT

visual                = physicsanomalyartefact_fire.ogf

description            = enc_zone_artifact_af-fireball

inv_name            = af-fireball

И где-нибудь тут добавляете строчку: artefact_activation_seq = af_activation_gravi


И на этом всё. Прописываем в artefacts.ltx в блоке [af_base]:identity_immunities вместо ;slot=10 вот это: slot=1. Насколько я знаю, знак ; зоначает, что строка закомментирована(неактивна) У себя я прописывал slot=1 между строчками inv_name = af-electra-moonlight inv_name_short = inv_weight = 0.05 slot = 1 inv_grid_x = 10 inv_grid_y = 10 для того артефакта, который хочу активировать.

В игре берем артефакт в первый слот и активируем.

В данной части я не буду рассказывать как писать скрипты с нуля. Мы только изучим самый важный из них, на первое время достаточно.
  1. Все скрипты в сталкере написаны на языке программирования Lua. Имеют формат .script
  2. И их можно открыть обычным блокнотом.
  3. Все скрипты которые мы напишем, будут работать через основной скрипт bind_stalker.script

Как заспавнить (создать, добавить на локу) оружие, предмет, еду и т.д.?


Открываем файл bind_stalker.script и в нём ищем такие строки (ищем с помощью «Ctrl+F»)
            pda.fill_sleep_zones()

            end


И между ними пишем:

            my_spawn.spawn()


Всё это выглядит как:

            pda.fill_sleep_zones()

            my_spawn.spawn()

            end
 


Теперь создаём в папке gamedata/scripts/ файл с именем my_spawn.script (Не путать расширение spawn и scripts. В первом случае это функция в скрипте, во втором формат файла) И в нём пишем
 
function spawn()

            alife():create("NAME",vector():set(X,Y,Z),L_V,G_V)

end
 


Где NAME – имя объекта который спавним (wpn_ak74, medkit, vodka, kolbasa, stalker_outfit и т.д.)

X,Y,Z – координаты

L_V, G_V – левел и гейм вертекс


Всё, заходим в игру, бежим в нужное место и видим наш предмет.
 
Удачи. Продолжение следует…

P.S.: Некоторые туторы я брал с сайта PG, на авторство не претендую. Я лишь подправил ошибки.



Сборка стеллажей своими руками

Сборка стеллажей своими руками

Сборка стеллажей своими руками

Сборка стеллажей своими руками

Сборка стеллажей своими руками

Сборка стеллажей своими руками

Сборка стеллажей своими руками

Сборка стеллажей своими руками