S.T.A.L.K.E.R.: Call of Pripyat - Другое - Модостроительство - Все о модах

Введение

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

Мод (сокр. от «модификация») — модификация или дополнение к компьютерной игре, написанное, как правило, сторонними разработчиками или любителями с помощью 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 модели

Так как урок у нас для новичков, то я не буду рассказывать о 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 ; минимальный радиус прицела (при нулевой дисперсии)
  • max_radius = 1.0 ; максимальный радиус
  • 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, на авторство не претендую. Я лишь подправил ошибки.

23
46
Комментарии:  46
Ваш комментарий

Ты думаешь чайники и новички станут это читать?

многабукаф, ниасилиль :(

А можно, поподробнее про шкурки и модели?

А, всё, не надо. Просто картинок не было, когда спрашивал.

гуууд,(29.05.11 23:24)ДА Я ПРОЧИТАЛ ВСЁ!!! ДА Я ЧАЙНИК И МНЕ ПО}{` ЛАЗИЮ ПОКА В КОНФИГАХ НУ НИЧо научусь!

подробно это в какой степени. точнее о чём?

Что тут сложного, я вот все прочитал и не ною, хороший гайд +10

А какой фаил отвечает за инвентарь ГГ в начале игры?

gamedata\configs\character_desc_general.xml

Как-то шрифт маловат и большей части картинок нету.

ЗАГРУЗИТЬ ВСЕ КОММЕНТАРИИ