Как создать мод для S.T.A.L.K.E.R
Если вы не знаете, как сделать невидимые аномалии, как изменить силуоружия, как изменить носимый вес и пр., то вы пришли по адресу. В этой
статье мы рассмотрим структуру файлов и папок Сталкера, а также вы
сможете научиться создавать свои собственные модификации.
Вступление:
Как вы наверно заметили, в папке с игрой содержатся несколько файлов
типа gamedata.dbN , где N – это число или буква. Это игровые архивы, в
которые запакованы все файлы конфигураций, видеоролики, музыка, звуки,
скрипты и прочее. Можно их править HEX-editor’ом, но лучше скачать
специальную утилитку STALKER_Data_Unpacke
и распаковать в отдельную папку(с именем gamedata, позже поймёте
почему) их содержимое. Вот после этого можно начать разгребать весь тот
мусор, который вы извлекли.
Структура файлов и папок:
Рассмотрим, что-же содержится в папке gamedata:
Папка ai – в ней содержатся файлы типа *.efd, через которые очевидно управляется искусственный интеллект тех же npc например.
Папка anims – здесь и так всё понятно, игровая анимация, а также эффекты камеры.
Папка config содержит в себе многие игровые параметры, к ней мы ещё вернёмся.
Папка levels – это игровые уровни, ака локации, на которые поделена игра (как карты в CS)
Папка meshes – игровые модели, в формате .ogf
Папка scripts – скрипты
Папка shaders – шейдеры, для двух рендеров(DX8 и 9)
Папка sounds – звуки и музыка, кот. используются в игре. Формат .ogg*
Папка spawns – отвечает за самую ужасную вещь в игре – респаун противников и др. людей, животных.
Папка textures – в ней содержаться текстуры домов, оружия, монстров и др. Формат - .dds(DirectDraw Surface Image)
Файлы:
game.graph, gamemtl.xr, lanims.xr, particles.xr, resource.h, senvironment.xr, shaders.xr, shaders_xrlc.xr, stalkergame.inf.
Введение в моддинг:
Именно с папкой config придётся работать для редактирования многих параметров игры.
Но начнём сначала:
Перед тем, как начать редактирование файлов игры, нужно в каталог Сталкера поместить ту самую папку gamedata, в которую были извлечены игровые файлы.
*Все файлы нам не понадобятся, поэтому можно оставить только папки config, scripts(а конкретно файл se_respawn*****ipt), textures, sounds, а всё остальное удалить(а можно и не удалять)
Также хочу заметить, что если распаковать все архивы .dbN в папку с игрой, то это может дать несколько дополнительных FPS.
Текстуры:
В папке textures лежат файлы формата .dds, которые можно открыть программой Adobe Photoshop с установленным DDS-плагином.
Плагин.
Скрин с корректными настройками.
Скрипты:
se_respawn.sсript – файл, отвечающий за респаун. Время респауна
можно уменьшить, путём небольших изменений в этом файле. Он открывается
обычным блокнотом(notepad). Ищем в нём строку
idle_time:setHMSms( 0, 0, 0, math.random(self.idl
и меняем её на
idle_time:setHMSms( math.random(X, Y), 0, 0, math.random(self.idl
где X и Y - числа, задают диапазон случайной переменной в часах отвечающей за респаун.
Звуки и музыка:
Любой файл в папке sounds
можно заменить на другой, но при этом нужно сохранить все параметры
звукового файла, который был использован в игре. Например, чтобы
заменить музыку в приёмнике у Сидоровича, нужно файл sounds\scripts\magni
Average bitrate : 60 kbps
Nominal bitrate : 80 kbps
Channels : 1
Sampling rate: 44100 Hz.
Config/Weapons:
Параметры оружия вы можете найти в папке config\weapons, файлы типа w_ak74.ltx открываются тоже блокнотом. Разберём содержимое файла например w_groza.ltx
Во первых стоит обратить внимание на значение пременной(буду их так
называть) cost, это цена оружия, т.е. сколько гроза будет стоить у
продавца.
Переменная weapon_class означает, к какому классу относится оружие, в данном случае - assault_rifle.
ammo_limit – лимит боеприпасов(в игре не используется)
ammo_mag_size – размер магазина. Можно поставить например 900, тогда о перезарядке можно совсем не вспоминать.
ammo_class – класс патронов, используемых оружием. Здесь [/b]ammo_9x39_pab9[/
hit_power – сила оружия. Чем больше, тем лучше
silencer_hit_power - сила оружия, когда на него одет глушитель.
misfire_probability - вероятность осечки при максимальном износе.
condition_shot_dec - увеличение износа при каждом выстреле.
visual – модель оружия.
zoom_enabled - поддерживается ли оптика.
Config/Сreatures:
actor.ltx – параметры главного героя. В этой же папке находятся файлы с параметрами npc, монстров и пр.
Рассмотрим некоторые переменные на примере actor.ltx
visual – модель персонажа.
max_walk_weight - максимальный вес, при достижении которого игрок перестает двигаться.
pickup_info_radius – радиус от ГГ, в котром над предметами выводятся их названия.
camera_height_factor
disp_base – разброс. Если уменьшать, то и разлёт уменьшается соответственно.
wound_incarnation_v - скорость заживления раны.
cant_sprint_power_be
hit_probability_gd_n
hit_probability_gd_s
hit_probability_gd_v
hit_probability_gd_m
Эти строчки отвечают за вероятность попадания по вам, при разных
уровнях сложности. Хотите чтобы враги стреляли не очень метко,
уменьшайте значения.
Также в файле присутсвуют комментарии на русском языке, так что разобраться в остальных переменных не составит труда.
Config/System.ltx:
start_blood_size - размер раны чтоб начала капать кровь.
stop_blood_size - размер раны чтоб кровь остановилась.
max_weight – вес, с которым ГГ может бежать.
Config/Misc:
В дополнение к конфигам оружия:
cвойства патронов находятся в файле weapons.ltx, а бронежилетов – в outfit.ltx.
Свойства артефактов находятся в файле artefacts.ltx и файлах zone_ART.ltx, предметов – items. ltx,
где ART – название артефакта(например zone_gravi.ltx).
Параметры артефактов:
health_restore_speed
radiation_restore_sp
idle_particles – если закоментить её символами «--« -, то аномалия исчезнет. Чтобы отключить звуковое оповещение, то находим строку visible_by_detector и меняем on на off.
Иммунитеты:
strike_immunity - удар.
shock_immunity - электрошок.
chemical_burn_immuni
telepatic_immunity - телепатия.
radiation_immunity - радиация.
wound_immunity - разрыв.
explosion_immunity - взрыв.
fire_wound_immunity - огнестрел.
items.ltx:
Параметры предметов:
В этом файле в квадратных скобках написан тот предмет, чьи параметры идут ниже, за квадр. скобками. Например: [kolbasa]:identity_i
Параметры на примере колбасы:
class – к какому классу принадлежит предмет.
visual – модель.
cost – цена.
eat_health – сколько восстанавливает здоровья.(если будет 0, то колбаса лечить не будет.)
eat_power - сколько восстанавливает силы.
eat_radiation - сколько выводит/или добавляет радиации. (Насчёт этого не уверен, надо тестить.)
inv_weight – вес предмета.
Outfit.ltx:
Параметры костюмов:
actor_visual – модель костюма.
inv_weight – вес костюма.
cost – цена костюма.
коэффициенты иммунитета самого костюма:
burn_immunityсм. коэффиц.
...
fire_wound_immunity
; NO RESISTANCE
burn_protection - коэффициент защиты от огня
strike_protection - коэффициент защиты от пуль
shock_protection - коэффициент защиты от молний
wound_protection- коэффициент защиты от кровотечений (?)
radiation_protection
telepatic_protection
chemical_burn_protec
explosion_protection
fire_wound_protectio
nightvision_sect – тип ночного видения(плохой/хорош
Торговцы:
Вещи, которые продают торговцы можно отредактировать(доба
Итак, поехали:
Структура файла на самом деле очень проста, под зачком ; прописаны сами предметы, а после него – комментарий(чтоб понятно было). Например ;Аммуниция.
В квадратные скобки заключены([barman_generic_buy]
В самом начале(практически) файла trade_barman.ltx идёт строка содержания [barman_generic_buy]
Сами предметы например:
;Артефакты
af_medusa= 1,0.3
af_cristall_flower= 1,0.3
af_night_star= 1,0.3
af_vyvert= 1,0.3
af_gravi= 1,0.3
af_gold_fish= 1,0.3
af_blood= 1,0.3
af_mincer_meat= 1,0.3
или
;ADDONS
wpn_addon_scope= 0.7,0.2
wpn_addon_scope_susa
Посмотрим какие ещё "условия" содержит этот файл и их значение:
[supplies_start]- начальный ассортимент
[supplies_after_dark
[supplies_after_brai
[barman_start_sell]- цены по которым торговец(бармен в данн. сл.) продает в начале
[barman_after_darkva
[barman_after_brain_
Итак: чтобы добавить предмет к торговцу, после строки [supplies_start],
находим интересующую нас категорию(а это может быть:
;Аммуниция/;Оружие/;
прописанных в данной категории предметов добавляем ещё одну строчку для
своего предмета(а именно название модели(т.к. оно совпадает с названием самого предмета) и после знака = параметры(о них чуть ниже)). Ну я так и знал что вы ничего не поймёте, поэтому пример:
Чтобы добавить бармену винтовку Гаусса, находим строки после условия [supplies_start] -
;Оружие
wpn_pb= 3,0.6
wpn_walther= 3,0.6
wpn_mp5= 3,0.6
wpn_ak74u= 3,0.5
и внизу прописываем wpn_gauss= N,n.n
*о значениях после знака = см. ниже.
Все имена оружия, амуниции, снаряжения и т.п. можно найти в папках gamedata\meshes\equi
gamedata\meshes\weap
Заметьте, что wpn_gauss нужно писать без расширения .ogf
Значения:
После знака = у вальтера например стоит цифра 3, а после запятой – 0,6.
Первое, для гаусса у нас стоит N, это количество(в штуках) предметов. Т.е. если поставить значение 999, то у бармена будет 999 гауссов.
А второе:
1. В разделах supplies вторая цифра это вероятность появления данного предмета (от 0.1 до 1).
2. В разделе buy
- первая цифра максимальная цена покупки, вторая минимальная (зависит
от отношения торговца к Меченному - рейтинг,
репутация)[Предполож
3. Соответственно в разделах sell - первая цифра минимальная цена продажи, вторая - максимальная (точнее множитель на "истинную цену" предмета).
В итоге должно получиться:
[supplies_start]
;Оружие
wpn_pb= 3,0.6
wpn_walther= 3,0.6
wpn_mp5= 3,0.6
wpn_ak74u= 3,0.5
wpn_gauss= 6,1
И тогда у торговца мы получим ровно 6 винтовок Гаусса.
Создание рандомного выбора муз. заставки главного меню:
При заходе на экран главного меня муз. заставка будет выбираться случайно из добавленных вами.
1. В директорию gamedata\sounds\musi
2. В текстовом редакторе открыть файл gamedata\config\ui\u
и заменить на:
3. В этом же файле найти строку:
music\wasteland2
и ниже нее выставить следующую строку:
music\my_music
4. Сохранить файл.
5. Если требуется вставить больше муз. заставок, то в параметре random укажите их количество.
Автор идеи - VM
NPC покупают оружие:
Чтобы обычные сталкеры и др. npc могли покупать у ГГ оружие, нужно править файл gamedata\config\misc
После строки [generic_buy] находим строку ;Оружие и после неё у каждого вида ставим зачения N и n.n.
Можно например так:
;Оружие
wpn_pm= 0.08,0.12
wpn_pb;NO TRADE
wpn_fort= 0.08,0.12
wpn_hpsa= 0.08,0.12
wpn_beretta= 0.08,0.12
wpn_walther= 0.08,0.12
wpn_sig220;NO TRADE
…
…
А чтобы у npc продавалось оружие, нужно проделать тоже самое, только после строки [generic_sell]
Метод я проверял, вроде как работает.
Чтобы после покупки персонаж не выкидывал купленное оружие(а также чтобы подбирал его с земли), в файле gamedata\config\crea
и строку use_single_item_rule
Объекты, которые можно перемещать:
В файле system.ltx в конце есть строка [ph_capture_visuals]
//Monsters
monsters\mutant_boar
monsters\krovosos\kr
monsters\kontroler\k
monsters\dog\dog
monsters\flesh\flesh
monsters\dog\dog_cmn
monsters\flesh\flesh
monsters\poltergeist
monsters\pseudodog\p
monsters\snork\snork
monsters\burer\burer
monsters\chimera\chi
monsters\cat\cat
monsters\zombi\zombi
monsters\rat\rat_1
monsters\tushkano\tu
Как сделать так, чтоб не убиралось из рук оружие в некоторых локациях?:
В файле gamedata\scripts\sr_
bind_stalker.hide_we
bind_stalker.restore
и в файле zone_no_weapon*****i
Способ подходит и для предыдущего файла.
Как приделать к оружию оптику, глушитель, подствольник?:
Находим в файле оружия строку ;addons и пишем после(без комментарие естественно(или перед ними ставьте
;addons
scope_status = 2 0 - нет,1 - несъемный, 2 - можно ставить прицел
silencer_status = 0 0 - нет,1 - несъемный, 2 - можно ставить глушитель
grenade_launcher_sta
zoom_enabled = true Вкл/выкл возможность зума
scope_zoom_factor = 50 значение зума
scope_name = wpn_addon_scope название прицепляемого прицела
scope_x = 47 положение прицела на картинке, x
scope_y = 0 положение прицела на картинке, y
silencer_name = wpn_addon_silencer название глушителя
silencer_x = 218 положение глушителя на картинке, x
silencer_y = 9 положение глушителя на картинке, y
grenade_launcher_nam
grenade_launcher_x = 126 положение подствольника на картинке, x
grenade_launcher_y = 24 положение подствольника на картинке, y
КАК ИЗМЕНИТЬ НОСИМЫЙ ВЕС?
В файле \gamedata\config\cre
находим переменную max_item_mass – это максимальный вес при достижении
которго игрок перестает двигаться
max_walk_weight - максимальный вес, до достижения которого можно передвигаться
В файле \gamedata\config\ system.ltx изменяем переменную max_weight – это вес который игрок несет не напрягаясь.