Введение
Что же такое мод?
Мод (сокр. от «модификация») — модификация или дополнение к компьютерной игре, написанное, как правило, сторонними разработчиками или любителями с помощью SDK, прилагающегося к игре или специальных, разработанных для модифицирования игр любительских программ. В отличие от адд-она, при его разработке часто радикально изменяет баланс сил (в стратегических играх) или набор оружия и возможности героя (в 3D-шутерах).
Мутатор — модификация игры, которая лишь частично изменяет игру. В отличие от модов, которые, как правило, нельзя совмещать (в игре одновременно может быть активно не более одного мода), в одной игре может быть одновременно включено несколько мутаторов.
Порядок, в котором применяются мутаторы, может быть важен. Например, если за мутатором «без снайперской винтовки» применяется мутатор «превратить всё оружие в снайперские винтовки», снайперские винтовки исчезают, а всё остальное оружие превращается в винтовки. Если же применить мутаторы в обратном порядке, исчезает всё оружие.
Подключение мутаторов существует лишь в некоторых играх. Например, они имеются в Unreal Tournament и в трилогии S.T.A.L.K.E.R.
В данное время для игр серии S.T.A.L.K.E.R. было написано много интересных модов и мутаторов. Кстати, сама компания GSC только "ЗА" любительские моды, ведь с модами растёт и популярность к серии. И многие новички наверное то же хотели бы создать свои моды. Благо доступность многих сайтов позволяет новичкам освоиться в данном направлении. На мой взгляд самыми успешными являются 2 из них: сайт команды АМК и STALKER Inside.
Сегодня я расскажу как сделать свою первую мутацию, а может и свой первый мод.
Сразу хотелось бы сказать новичкам, чтобы стать настоящим мододелом, нужно большое терпение, усидчивость и руки из нужного места. Кстати, голова то же не помешает.
Итак, приступим. Создание модов можно разделить на несколько частей.
- Работа с конфигурационными файлами (далее просто конфигами)
- Работа со скриптами
- Работа с 3D моделями
- Работа с текстурами
- Работа со звуковыми файлами и видео
- Работа с all.spawn-ом
Сразу оговорюсь, если вы новичок, лучше всего начинать с конфигов и текстур.
Данная статья написана для новичков и заострять внимание на различных деталях я пока не буду.
Структура файлов
Теперь разберемся со структурой файлов и форматами.
- Все ресурсы игры запакованы в такие архивы gemedata.db*
- Если их распаковать специальной программой (Unpacker), то в папке с установленной игрой мы увидим папку gamedata.
Рассмотрим её структуру:
- ai - искусственный интеллект (далее АИ)
- anims – папка с разными экранными эффектами (в формате anm и ppe)
- configs – папка со всеми игровыми конфигами
- levels – уровни
- meshes – 3D модели
- scripts - скрипты
- shaders – шейдеры (разные спец. эффекты)
- sounds – звуки
- spawns - спавн
- textures – текстуры
Часть первая: Текстуры
- Все текстуры в игре используют формат DDS
- Открыть их можно через программу WTV
- А редактировать с помощью 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
Давайте сделаем новую модель сталкеру на основе модели обычного нейтрала.
Нам потребуется:
- Hex Editor
- Paint.NET или Photoshop
- 3D-модель из директории meshes/actors/stalker_neutral/stalker_neutral_2.ogf
- Текстура 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 для того артефакта, который хочу активировать.
В игре берем артефакт в первый слот и активируем.
Часть пятая: Скрипты
В данной части я не буду рассказывать как писать скрипты с нуля. Мы только изучим самый важный из них, на первое время достаточно.
- Все скрипты в сталкере написаны на языке программирования Lua. Имеют формат *.script
- И их можно открыть обычным блокнотом.
- Все скрипты которые мы напишем, будут работать через основной скрипт 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, на авторство не претендую. Я лишь подправил ошибки.

Ты думаешь чайники и новички станут это читать?
многабукаф, ниасилиль :(
А можно, поподробнее про шкурки и модели?
А, всё, не надо. Просто картинок не было, когда спрашивал.
гуууд,(29.05.11 23:24)ДА Я ПРОЧИТАЛ ВСЁ!!! ДА Я ЧАЙНИК И МНЕ ПО}{` ЛАЗИЮ ПОКА В КОНФИГАХ НУ НИЧо научусь!
подробно это в какой степени. точнее о чём?
Что тут сложного, я вот все прочитал и не ною, хороший гайд +10
А какой фаил отвечает за инвентарь ГГ в начале игры?
gamedata\configs\character_desc_general.xml
Как-то шрифт маловат и большей части картинок нету.