Руководство по созданию модификаций S.T.A.L.K.E.R. для начинающих.
Если вы не знаете, как сделать невидимые аномалии, как изменить силу
оружия, как изменить носимый вес и пр., то вы пришли по адресу. В этой
статье мы рассмотрим структуру файлов и папок Сталкера, а также вы
сможете научиться создавать свои собственные модификации.
Вступление:
Как вы наверно заметили, в папке с игрой содержатся несколько файлов
типа gamedata.dbN , где N – это число или буква. Это игровые архивы, в
которые запакованы все файлы конфигураций, видеоролики, музыка, звуки,
скрипты и прочее. Можно их править HEX-editor’ом, но лучше скачать
специальную утилитку STALKER_Data_Unpacker и распаковать в отдельную
папку(с именем 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.
В звуках, кстати, можно найти много интересного, например: в папке
sounds\car содержатся звуки машин(которых в игре нет), а
sounds\music\harmonica_1.ogg – файл губной гармошки. Ах да, чуть не
забыл, самый главный лол, это файл sounds\car\trabantnoise.ogg
Введение в моддинг:
Именно с папкой config придётся работать для редактирования многих параметров игры.
Но начнём сначала:
Перед тем, как начать редактирование файлов игры, нужно в каталог
Сталкера поместить ту самую папку gamedata, в которую были извлечены
игровые файлы.
*Все файлы не понадобятся, поэтому можно оставить
только папки config, scripts(а конкретно файл se_respawn*****ipt),
textures, sounds, а всё остальное удалить(а можно и не удалять)
Стоит обратить внимание на токой факт , если распаковать все архивы .dbN
в папку с игрой, то это может дать несколько дополнительных FPS.
Текстуры:
В папке textures лежат файлы формата .dds, которые можно открыть
программой Nero PhotoSnap Viewer(входит в состав NERO7) например или
windows texture viewer (63кб), и там же отредактировать по вкусу. Так,
например, существует мод, уменьшающий размер PDA Меченого. Текстура PDA
находится по адресу textures\ui\ui_pda.dds.
Скрипты:
se_respawn*****ipt – файл, отвечающий за респаун. Время респауна можно
уменьшить, путём небольших изменений в этом файле. Он открывается
обычным блокнотом(notepad). Ищем в нём строку
idle_time:setHMSms( 0, 0, 0, math.random(self.idle_spawn_min, self.idle_spawn_max)*1000)
и меняем её на
idle_time:setHMSms( math.random(X, Y), 0, 0, math.random(self.idle_spawn_min, self.idle_spawn_max)*1000)
где X и Y - числа, задают диапазон случайной переменной в часах отвечающей за респаун.
Звуки и музыка:
Любой файл в папке sounds можно заменить на другой, но при этом нужно
сохранить все параметры звукового файла, который был использован в игре.
Например, чтобы заменить музыку в приёмнике у Сидоровича, нужно файл
sounds\scripts\magnitofon\magnitofon_2.ogg, заменить на любой другой.(У
оригинального файла винамп мне выдал свойства:
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 – класс патронов, используемых оружием. Здесь ammo_9x39_pab9, ammo_9x39_sp5, ammo_9x39_ap.
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 – высота ГГ. По умолчанию стоит 0.85, но можно увеличить рост ГГ до 0.95 например.
disp_base – разброс. Если уменьшать, то и разлёт уменьшается соответственно.
wound_incarnation_v - скорость заживления раны.
cant_sprint_power_begin - порог силы меньше которого актер не может бежать в спринте.
hit_probability_gd_novice
hit_probability_gd_stalker
hit_probability_gd_veteran
hit_probability_gd_master
Эти строчки отвечают за вероятность попадания по вам, при разных
уровнях сложности. Хотите чтобы враги стреляли не очень метко,
уменьшайте значения.
Также в файле присутсвуют комментарии на русском языке, так что разобраться в остальных переменных не составит труда.
Config/System.ltx:
start_blood_size - размер раны чтоб начала капать кровь.
stop_blood_size - размер раны чтоб кровь остановилась.
max_weight – вес, с которым ГГ может бежать.
Config/Misc.ltx:
В дополнение к конфигам оружия:
cвойства патронов находятся в файле weapons.ltx, а бронежилетов – в outfit.ltx.
Свойства артефактов находятся в файле artefacts.ltx и файлах zone_ART.ltx, предметов – items. ltx,
где ART – название артефакта(например zone_gravi.ltx).
Параметры артефактов:
health_restore_speed - скорость восстановления здоровья (0.0001 = +100%)
radiation_restore_speed - скорость накопления радиации (0.0004 = 4).
Если поставить отрицательное число, то артефакт будет ускорять выведение
радиации.
idle_particles – если закоментить её символами «--« -,
то аномалия исчезнет. Чтобы отключить звуковое оповещение, то находим
строку visible_by_detector и меняем on на off.
Иммунитеты:
strike_immunity - удар.
shock_immunity - электрошок.
chemical_burn_immunity - химический ожог.
telepatic_immunity - телепатия.
radiation_immunity - радиация.
wound_immunity - разрыв.
explosion_immunity - взрыв.
fire_wound_immunity - огнестрел.
items.ltx:
Параметры предметов:
В этом файле в квадратных скобках написан тот предмет, чьи параметры
идут ниже, за квадр. скобками. Например: [kolbasa]:identity_immunities.
Параметры на примере колбасы:
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_protection - коэффициент защиты от хим. ожогов.
explosion_protection - коэффициент защиты от взрыва
fire_wound_protection - коэффициент защиты от кровотечений(от огня)
nightvision_sect – тип ночного видения(плохой/хороший). Если ПНВ нету,
то строку добавить, если его нужно убрать, строку закомментируйте(--).
Торговцы:
Вещи, которые продают торговцы можно отредактировать(добавить/убрать) в
файлах с именем [b]trade_YYY.ltx[.B], где YYY – это имя
торговца(например trade_barman.ltx)
Итак, поехали:
Структура
файла на самом деле очень проста, под зачком ; прописаны сами предметы, а
после него – комментарий(чтоб понятно было). Например ;Аммуниция.
В квадратные скобки заключены([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_susat = 0.7, 0.2
Посмотрим какие ещё "условия” содержит этот файл и их значение:
[supplies_start] - начальный ассортимент
[supplies_after_darkvalley] - ассортимент, после выполнения квеста в тёмной долине
[supplies_after_brain] - ассортимент, после "выжигателя мозгов”
[barman_start_sell] - цены по которым торговец(бармен в данн. сл.) продает в начале
[barman_after_darkvalley_sell] - аналогично
[barman_after_brain_sell]
Итак: чтобы добавить предмет к торговцу, после строки [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\equipments,
gamedata\meshes\weapons, gamedata\meshes\food.
Заметьте, что wpn_gauss нужно писать без расширения .ogf
Значения:
После знака = у вальтера например стоит цифра 3, а после запятой – 0,6.
Первое, для гаусса у нас стоит N, это количество(в штуках) предметов.
Т.е. если поставить значение 999, то у бармена будет 999 гауссов.
А второе:
1. В разделах supplies вторая цифра это вероятность появления данного предмета.
2. В разделе buy - первая цифра максимальная цена покупки, вторая
минимальная (зависит от отношения торговца к Меченному - рейтинг,
репутация)[Предположительно. – прим.]
3. Соответственно в разделах
sell - первая цифра минимальная цена продажи, вторая - максимальная
(точнее множитель на "истинную цену" предмета). Tnx GreyL.
В итоге должно получиться:
[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, 0.6
И тогда у торговца мы получим ровно 6 винтовок Гаусса.
Создание рандомного выбора муз. заставки главного меню:
При заходе на экран главного меня муз. заставка будет выбираться случайно из добавленных вами.
1. В директорию gamedata\sounds\music\ положить два канальных ogg-файла
с нужной музыкой, например: my_music_l.ogg (левый канал) и
my_music_r.ogg (правый канал)
2. В текстовом редакторе открыть файл gamedata\config\ui\ui_mm_main.xml, найти в нем строку:
и заменить на:
3. В этом же файле найти строку:
music\wasteland2
и ниже нее выставить следующую строку:
music\my_music
4. Сохранить файл.
5. Если требуется вставить больше муз. заставок, то в параметре random укажите их количество.
NPC покупают оружие:
Чтобы обычные сталкеры и др. npc могли покупать у ГГ оружие, нужно
править файл gamedata\config\misc\trade_generic.ltx. Его структура точно
такая же, как и у любого другого торговца.
После строки [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\creatures\m_stalker.ltx строку can_select_items = off
меняем на can_select_items = on
и строку use_single_item_rule = on меняем на use_single_item_rule = off .
Транспорт:
Транспорт в игре есть! Пока способ заспаунить его не известен
общественности, но тем не менее в сети появился файл all.spawn,
копируйте его в папку gamedata\spawns. Мод предназначен только для
пропатченной версии игры(1.0001). После начала новой игры в первой
локации рядом с Сидоровичем появятся несколько машин, в т. ч. и Камаз.
Чтобы включить двигатель в консоли пишем [b]bind turn_engine kb[b],
закрываем консоль, жмём кнопку b и наслаждаемся….
Рассмотрим параметры машин, конфиги находятся в папке gamedata\config\models\vehicles.
[car_definition] – после строки идут коментарии на русском языке, перейдём сразу к следующему.
…
--Factory parameters of Engine -- - параметры двигателя(описание не претендует на совершенно точное)
fuel_tank – вместимость бака.
engine_power – мощность двигателя.
hand_break_torque - сила торможения
[damage_items] – повреждения частей машины
back_left_wheel - заднее левое колесо
back_right_wheel -заднее правое колесо
front_left_wheel -переднее левое колесо
front_right_wheel - переднее правое колесо
left_door - левая дверь
right_door - правая дверь
[immunities]
burn_immunity = 0.5 ;коэффициенты иммунитета
strike_immunity = 0.1
shock_immunity = 0.0
wound_immunity = 0.01
radiation_immunity = 0.0
telepatic_immunity = 0.0
chemical_burn_immunity = 0.0
explosion_immunity = 0.4
fire_wound_immunity = 0.0005
P.S. Чтобы сделать вид от третьего лица, в файле user.ltx(ну если не
знаете где он находится, то специально для вас в Microsoft сделали поиск
в Windows) пишем после строки unbindall:
bind cam_1 kF1
bind cam_2 kF2
bind cam_3 kF3
В игре жмём кнопки F1, F2 или F3 для смены вида.
Очень нужно при езде на БТР
Создание новых веток диалога:
Создание новых веток диалога.
1) Списки веток диалогов содержатся в файлах вида gamedata/config/gameplay/character_desc_*.xml
Это например:
character_desc_zombied.xml
character_desc_stalker.xml
character_desc_g arbage.xml
итд.
Файлы character_desc_*.xml можно сравнить со стволом дерева диалогов.
В них перечисляется названия прикрепляемых веток диалогов
Например вот список веток диалога с Сидоровичем взятый из файла character_desc_escape.xml
escape_trader_start_dialog
escape_trader_talk_info
escape_trader_jobs
tm_trader_dialog
tm_trader_reward
escape_trader_done_blockpost_box< br>
В свою очередь каждая ветка диалога также может ветвится.
2) Ветвление веток прописывается уже в других файлах.
Например ветвление веток диалога с Сидоровичем содержится в файле gamedata/config/gameplay/dialogs_escape.xml
Возьмем оттуда к примеру ветвление ветки escape_trader_jobs
(ветвление веток обычно очень большое поэтому я приведу только часть):
escape_dialog.trader_has_talk_info_w r
tutorial_end
escape_trader_talk_info_1
100
99
9995
…
…
…
escape_trader_talk_info_0
1
Здесь … - это проверка выполнения условия. Ветка появится в диалоге, только если условие выполняется.
Конкретно escape_dialog.trader_has_talk_info_w r из ветки
escape_trader_talk_info есть обращение к функции trader_has_talk_info_wr
находящейся в файле скрипте gamedata/scripts/escape_dialog*****ipt
Функция выглядит так:
function trader_has_talk_info_wr( trader, actor )
return true
end
Насколько понимаю она возвращает true только в случае если мы разговариваем с trader_ом т.е. с Сидоровичем.
Т.е проверкой условия escape_dialog.trader_has_talk_info_w r проверяется с кем ведется диалог,
и если диалог ведется с Сидоровичем в ветке по крайней мере этим условием пропускается в списк реплик.
Но для конкретной ветки может быть несколько precondition и других условий.
Далее tutorial_endЕсли я верно понимаю, это так же своего рода проверка
условия В данном случае проверка на то закончена стадия tutorialа или
нет. Т.е ветка допустится в список реплик если стадия tutorialа
закончена.
А далее идут конкретные фразы содержащие ссылки на вытекающие фразы
Фраза:
escape_trader_talk_info_0
1
это основа ветки escape_trader_talk_info.
(Вообще как я понял в любой основной ветке любого диалога фраза будет основой из которой далее будет все вытекать)
1 - это ссылка на вытекающую фразу :
escape_trader_talk_info_1
100
99
9995
В свою очередь 100, 99, 9995 это ссылки на фразы веточки растущие из фразы
.
3) Текст каждой фразы содержится уже в четвертом файле. Для диалога с Сидоровичем тексты лежат в файле
gamedata/config/text/rus/stable_dialogs_escape.xml
Есть несколько вопросов.
Спрашивай, только я ведь всего не знаю. Сам понимаешь, сижу тут целыми
днями, а жизнь - она вся там, снаружи, в Зоне. Могу рассказать о Зоне
вообще, а немного могу о ближайших окрестностях, где сам ходил.
Эти строки содержат тексты для фраз и
Итого диалоги разложены по 4 а то и более файлам.
Ветки диалога могут быть цикличными.
Как в этом случае:
…
1
2
…
11
12
…
1 - Это возврат к фразе 1. (зацикливание)
111
Теперь пример практического применения того, о чем было сказано выше:
Добавим в диалог с Сидоровичем ветку своего собственного изготовления.
Например такую:
Меченый: Сидрыч а что это у тебя зеленые человечки, что по столу бегают, такие худые?
Сидорович: Чего?!!
Меченый: Ты их совсем, совсем не кормишь?
Сидорович: В следующий раз, как пойдешь в зону, бери-ка вместо водяры
побольше антирада. А то мало что таким перегаром дышишь, уже до зеленых
человечков долечился… Шутник.
1) В файле
gamedata/config/gameplay/character_desc_escape.xml в конце списка веток
для trader_а суем свою ветку с произвольным названием. (например
escape_trader_letat_gusi)
Т.е у нас получится так
…
…
…
…
escape_trader_start_dialog
escape_trader_talk_info
escape_trader_jobs
tm_trader_dialog
tm_trader_reward
escape_trader_done_blockpost_box< br> escape_trader_letat_gusi
…
Записываем изменения и с файлом character_desc_escape.xml все.
2) Теперь берем файл gamedata/config/gameplay/dialogs_escape.xml
Диалогу:
Меченый: Сидрыч а что это у тебя зеленые человечки, что по столу бегают, такие худые?
Сидорович: Чего?!!
Меченый: Ты их совсем, совсем не кормишь?
Сидорович: В следующий раз, как пойдешь в зону, бери-ка вместо водяры
побольше антирада. А то мало что таким перегаром дышишь, уже до зеленых
человечков долечился… Шутник.
Который мы хотим реализовать будет соответствовать такая структура:
escape_trader_ letat_gusi_0
1
escape_trader_ letat_gusi_1
2
escape_trader_ letat_gusi_2
3
escape_trader_ letat_gusi_3
условия наличия ветки в диалоге можно взять из ветки
Т.е берем условия escape_dialog.trader_has_talk_info_w r и tutorial_end
(Можно было конечно прописать в скрипте еще одно условие для ветки, чтоб она появилась только один раз,
а потом больше не возникала. Но об этом как нибудь позже допишу.)
В итоге у нас получилась такая структура:
escape_dialog.trader_has_talk_info_w r
tutorial_end
escape_trader_letat_gusi_0
1
escape_trader_letat_gusi_1
2
escape_trader_letat_gusi_2
3
escape_trader_letat_gusi_3
Которую нужно вставить в любом месте между dialog id_шниками других веток в файле dialogs_escape.xml.
Главное не промахнутся и засунуть именно между, а не внутрь одного из dialog id
Все что находится между тегами и это внутенности конкретного dialog id
Т.е совать наш
….
надо
…
здесь
…
но
не здесь
После сохранения внесенных изменений с файлом dialogs_escape.xml все.
3) Теперь вбиваем сами текстовички в файле gamedata/config/text/rus/stable_dialogs_escape.xml
Т.е нам надо в файле stable_dialogs_escape.xml вставить такую конструкцию:
Сидрыч а что это у тебя зеленые человечки, что по столу бегают, такие худые?
Чего?!!
Ты их совсем, совсем не кормишь?
В следующий раз, как пойдешь в зону, бери-ка вместо водяры побольше
антирада. А то мало что таким перегаром дышишь, уже до зеленых
человечков долечился… Шутник.
в любом месте между уже существующими string id
сюда
Но не внутрь одного из существующих string id
не сюда
После сохранения изменений, у вас все готово. Можно грузить игру и смотреть что получилось.
Объекты, которые можно перемещать:
В файле system.ltx в конце есть строка [ph_capture_visuals], после неё
идёт список перетаскиваемых вещей. Например чтобы можно было таскать
монстров, в конец добавляем:
//Monsters
monsters\mutant_boar\mutant_boar
monsters\krovosos\krovosos
monsters\kontroler\kontroler
monsters\dog\dog
monsters\flesh\flesh
monsters\dog\dog_cmn_1
monsters\flesh\flesh
monsters\poltergeist\poltergeist
monsters\pseudodog\pseudodog
monsters\snork\snork
monsters\burer\burer
monsters\chimera\chimera
monsters\cat\cat
monsters\zombi\zombi_1
monsters\rat\rat_1
monsters\tushkano\tushkano
Q: Как поставить мод?!
A: В архиве который вы скачали есть папка gamedata. Скопируйте/Переместите/Разархивируйте ее в Корневой каталог игры.
Пример: C:/Games/S.T.AL.K.E.R/gamedata
Q: Какие моды есть на данный момент?
A: Смотри тему
Q: Я открываю ссылку с модом, на той странице какие-то иероглефы не понятные.
A: Не верно ассоциируется действие с фалом. Поэтому укажем программе
что делать вручную. Правый клик по ссылке с модом, пункт "Сохранить
обьект как".
Q: Чем распаковать gamedata ?!
A: Распаковщик для руской версии и Распаковщик для английской версии
Q: Обязателно ли распаковывать файла gamedata.dbХ для установки мода?
Что будет если я сначала устанавлю/распакую ЧТО-ТО а потом ТО-ТО?
А: Содержимое папки gamedata имееет приоритет перед аналогичными файлами
лежащими в архиве, НО если какой-то файл отсутствует в папке gamedata,
то игра возьмёт её из архива.
Если моды содержат одинаковые файлы
то новый мод ЧАСТИЧНО затрёт предыдущий, что может привести к
непредсказуемым последствиям.
Если у Вас установленны какие-то моды и вы распаковаваете файлы gamedata.dbX, то моды сотрутся ПОЛНОСТЬЮ.
Q: В каком архиве из gamedata.bd* лежит ТО-ТО?!
A: Разархивируй все. Т.к. люди не больные, что бы учить что и где там лежит.
Q: Чем открывать *.ltx, *.script файлы?!
A: Блокнотом или любым другим текстовым редактором.
Q: Как делать моды?!
A: Не все так сразу мы вернемся к этому вопросу чуточку ниже .
Q: Как мне поменять ЭТО и ТО ?!
A: Смотри ниже.
Q: В каком файле находится изображение оружия непосредственно в инвентаре?
A: В одном из файлов с форматом *.DDS, открывается этот формат с помощью Adobe Photoshop и DDS Plugin ИЛИ DDS file viewer
Q: В каких файлах находятся 3D модели?!
A: Трехмерные модели объектов находятся в файлах *.ogf
Для просмотра нужен OGFViewer_1.0.4. OGFViewer 1.0.4
Для работы в "OGFViewer" нужно с помощью блокнота отредактировать
"OGFViewer.cfg" (вписав туда свой путь к Сталкеру, а точнее к папке
"textures". После textures поставьте слеш !!!)
Например: D:/Games/S.T.A.L.K.E.R/gamedata/textures/
Q: Нашел в ресурсах игры много не включенных в single обьектов, как мне их включить?!
A: Слишком большой обьем работы надо проделать, что бы ввести эти
обьекты в игру. От Изменение конфигов самих обьектов, до изменения
скриптов.В принципе реальизуется небольшой командой, достаточно
проворлевых модостроителей. Возможно они вам помогут
Q: Где мне найти комманды модостроителей?!
A: Realism Mod Team
S.T.A.L.K.E.R. Inside
Q:Обязателно ли распаковывать файла gamedata.dbX (X - цифра от 0 до 9
или буква a или b) для установки мода? Что будет если я сначала
устанавлю/распакую ЧТО-ТО а потом ТО-ТО?
А: Содержимое папки
gamedata имееет приоритет перед аналогичными файлами лежащими в архиве,
НО если какой-то файл отсутствует в папке gamedata, то игра возьмёт её
из архива. Таким образом распаковавать файлы gamedata.dbX (X - цифра от 0
до 9 или буква a или b) НЕ нужно.
Если моды содержат одинаковые
файлы то новый мод ЧАСТИЧНО затрёт предыдущий, что может привести к
непредсказуемым последствиям.
Если у Вас установленны какие-то моды
и вы распаковаваете файлы gamedata.dbX (X - цифра от 0 до 9 или буква a
или b), то моды сотрутся ПОЛНОСТЬЮ.
Q: А что вообще могут изменить в игре моды?
A:
1) Менять любые параметры оружия, вплоть до замены моделей и звуков.
2) Менять параметры игрока(поднимаемый вес, голд и проч.).
3) Менять любые параметры монстров и вещей.
4) добавляют автотраспорт к игре.
5) меняют графические эффекты - вид аномалий, тряска экрана при попадании в игрока и проч.
6)Очень многое другое! см следующий вопрос.
Q: А что моды не могут изменить?
А: На данный момент моды не могут:
1) менять/ добавлять карты и, как следствие, менять точки входа/выхода
из зон, создавать новые анамалии, зоны появления монстров, делать
аномалии движущимися и др.
2) добавлять существ, даже тех , для
которых что в игре есть модели. Например, для крыс просто не прописанны
скрипты поведения.
3) Менять монстрам поведение (теоритически это
возможно, но для этого надо знать всю подноготную ИИ в игре). Но
некоторые параметры поведения менять можно (например, сделать всех более
трусливыми).
4) вводить новые виды оружия и патронов - их просто
никто кроме игрока не будет использовать.(Теоритически опять-таки это
можно, но придётся поменять невообразимое количество файлов).
5) добавить в игру вертолёт.
6) сделать ботов умнее - их ум и так на пределе возможностей
современных компьютеров! (Или вы хотите чтобы система менее сложная чем
мозг(нерыный узел) пчелы в точности моделировала поведение человека
Что касается правки параметров,что и для чего надо
Q:Как изменить время респауна?
A:В файле S.T.A.L.K.E.R. - Shadow of Chernobylgamedatascriptsse_repawn.scripts найти строку
idle_time:setHMSms( 0, 0, 0, math.random(self.idle_spawn_min, self.idle_spawn_max)*1000)
и исправить на idle_time:setHMSms( math.random(Первое число, Второе
число), 0, 0, math.random(self.idle_spawn_min,
self.idle_spawn_max)*1000)
где первое и второе числа задают диапазон случайной переменной в часах
отвечающей за респаун.
Q:Как поднять камеру? (увеличить рост персонажа?)
A:В файле S.T.A.L.K.E.R. - Shadow of
Chernobylgamedataconfigcreaturesactor.ltx найти переменную
camera_height_factor и увеличить примерно до 0.95 (это нормальный рост
глаза-в-глаза)
Q:Как изменить силу оружия?
A:В папке S.T.A.L.K.E.R. - Shadow of Chernobylgamedataconfigweapons
лежат файлы конфигурации – открываешь необходимый тебе и находишь
hit_power – изменяешь как тебе заблагорассудится.
Q:Как изменить цены?
A:На оружие – в папке S.T.A.L.K.E.R. - Shadow of
Chernobylgamedataconfigweapons находишь нужный тебе файл и в нем
строку переменную cost (в самом начале) вместо указанной цены пишешь
что тебе нужно.Патроны – в той же папаке файл weapons.ltx в нем строка cost для каждого вида патронов
Предметы – файл S.T.A.L.K.E.R. - Shadow of Chernobylgamedataconfigmiscitems.ltx – аналогично
Броня – там же файл outfit.ltx как и что менять надеюсь теперь догадаетесь ?
Q:Как изменить носимый вес?
A:В файле S.T.A.L.K.E.R. - Shadow of
Chernobylgamedataconfigcreaturesactor.ltx находим переменную
max_item_mass – это максимальный вес при достижении которго игрок
перестает двигаться В файле S.T.A.L.K.E.R. - Shadow of
Chernobylgamedataconfigsystem.ltx изменяем переменную max_weight – это
вес который игрок несет не напрягаясь.
Q:Как сделать невидимые аномалии?
A:В папке S.T.A.L.K.E.R. - Shadow of Chernobylgamedataconfigmisc
находим файл отвечающий за интересующую нас аномалию (например грави - zone_gravi.ltx) в файле находим строку idle_particles =
anomaly2gravity_idle и коментим ее символами «--« - все визуально
ничего нет. Что бы отключить еще и звуковое оповещение (а так имхо
намного интереснее) находим строку visible_by_detector и меняем
значение on на off
Q:Как сделать что бы еда не лечила?
A:Находим в файле S.T.A.L.K.E.R. - Shadow of
Chernobylgamedataconfigmiscitems.ltx нужный нам хавчик – например
Kolbasa под ним переменную eat_health значение которой меняем на 0
Q:Как изменить силу врагов?
A:В файле S.T.A.L.K.E.R. - Shadow of
Chernobylgamedataconfigcreaturesactor.ltx найти строки
hit_probability_gd_novice = 0.20
hit_probability_gd_stalker = 0.30
hit_probability_gd_veteran = 0.40
hit_probability_gd_master = 0.50
они отвечают за вероятность попадания по вам при разных уровнях
сложности. Повышаете значение до единицы и наслаждаетесь хардкором.
Q:Как изменить разброс при стрельбе?
A:В файле S.T.A.L.K.E.R. - Shadow of
Chernobylgamedataconfigcreaturesactor.ltx находим переменную
disp_base и уменьшаем – разлет уменьшается соответсвенно
Q:Как сделать много крови?
A:В файле S.T.A.L.K.E.R. - Shadow of Chernobylgamedataconfig
system.ltx находим переменную start_blood_size и уменьшаем ее – это
минимальный размер раны при котором идет кровь (у меня 0.1 стоит) чуть
ниже находим blood_drop_size и увеличиваем – как понятно это размер
капли крови (у меня 0.3)
Q:Как изменить музыку в приемнике у Сидоровича?
A:В папке Z:GamesS.T.A.L.K.E.R. - Shadow of
Chernobylgamedatasoundsscriptsmagnitofon лежит файл
magnitofon_2.ogg. Берем любимую музыку сохраняем в формате ogg (моно,
44000) обзываем его magnitofon_2.ogg заменяем существующий файл и вуаля ? хоть «Владимирский Централ» хоть «Районы Кварталы»
Q:Как изменять артефакты?
A:В файле S.T.A.L.K.E.R. - Shadow of
Chernobylgamedataconfigmiscartefacts.ltx находим нужный артефакт
смотрим его характеристики и меняем health_restore_speed скорость восстановления здоровья 0.0001 = +100%
radiation_restore_speed скорость накопления радиации 0.0004 = 4 если
поставить отрицательное число будет ускорять выведение радиации
иммунитеты например 0.7 = +30% 0.2 = +80% больше единицы пойдет
наоборот в минус 1.3 это -30%
strike_immunity - удар
shock_immunity - электрошок
chemical_burn_immunity - химический ожог
telepatic_immunity - телепатия
radiation_immunity - радиация
wound_immunity - разрыв
explosion_immunity - взрыв
fire_wound_immunity - огнестрел
Уменьшить время спринта
cant_sprint_power_begin = 0.20;порог силы меньше которого актер неможет бежать в спринте
cant_sprint_power_end = 0.30 ;порог силы больше которого актер сможет бежать в спринте
Система областей поражения. Для свиньи она расположена в секции
[m_Boar_damage]. Изначально:
bip01_pelvis = 1, -1, 0.3
bip01_spine = 1, -1, 0.3
bip01_spine1 = 1, -1, 0.3
bip01_neck = 1, -1, 1.5
bip01_head = 2, -1, 0.3, 10
таз - 2 спины - шея - голова. параметр 10 возможно крит
Q:Как сделать так, чтоб не убиралось из рук оружие в некоторых локациях?:
A:В файле gamedata\scripts\sr_no_weapon*****ipt найти и закомментировать (поставить перед ними --) строки
bind_stalker.hide_weapon()
bind_stalker.restore_weapon()
и в файле zone_no_weapon*****ipt ищем строки hide_weapon() и заменяем их на restore_weapon()
Способ подходит и для предыдущего файла.
Q:Как приделать к оружию оптику, глушитель, подствольник?:
A:Находим в файле оружия строку ;addons и пишем после(без комментарие
естественно(или перед ними ставьте + значения после знака = можно
менять):
;addons
scope_status = 2 0 - нет,1 - несъемный, 2 - можно ставить прицел
silencer_status = 0 0 - нет,1 - несъемный, 2 - можно ставить глушитель
grenade_launcher_status= 0 0 - нет,1 - несъемный, 2 - можно ставить подствольник
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_name= wpn_addon_grenade_launcher название подствольника
grenade_launcher_x = 126 положение подствольника на картинке, x
grenade_launcher_y = 24 положение подствольника на картинке, y
Q:Как убрать/увеличить время для обычных квестов ?:
A:В файле gamedata\config\misc\task_manager.ltx найти и изменить все строки вида time = 86400
Чтобы совсем убрать лимит - просто закомментировать их (--)
Q:Как убрать intro-ролики в начале ?:
A:В свойствах ярлыка прописываем после пути к exe-шнику: -nointro
Получиться должно что то вроде(это как у меня):
"D:\Games\S.T.A.L.K.E.R. Shadow of Chernobyl\bin\XR_3DA.exe" -nointro
Q:Как включить motion blur ?:
A:В свойствах ярлыка прописываем после пути к exe-шнику: -mblur
В файле user.ltx(можно и в консоли) параметру r2_mblur присваиваем значение например 0.15
Работает только на DirectX 9.
Q:Как увеличить время спринта ?:
A:В файле actor.ltx меняем параметр sprint_koef.
Q:Как поменять кол-во жизни монстрам ?:
A:В файле m_*.ltx(где * - название монстра, например m_controller.ltx;
находится в папке gamedata\config\creatures) меняем параметр health
Q:Как повесить на пояс больше артефактов ?:
A:В файле system.ltx изменяем параметр max_belt с 5 на 10 (max_belt = 10)
Ищем файл inventory_new.xml и в нём меняем
cell_width = "60" cell_height="60" rows_num="1" cols_num="5"/>
на
cell_width = "52" cell_height="52" rows_num="2" cols_num="5"/>
что соответствует 10 артефактам.
При желании поправив соответствующим образом файлы system.ltx и inventory_new.xml
можно получить 12,14,16 и более слотов под артефакты.
Q:Оружие загораживает пол-экрана. Как это исправить ?:
A:В файле конфига выбранного оружия меняем:
position = 0, -0.075, 0 ; было 0,0,0
zoom_offset = -0.112400,0.091800,-0.115000 ; было -0.112400,0.016800,-0.115000
Q:Где найти файл user.ltx ?:
A:Для Windows XP в директории X:\Documents and Settings\All Users\ Общие документы \STALKER-SHOC
Для Windows Vista в директории X:\Users\Public\Documents\STALKER-SHOC
Q:Как изменить силу врагов ?:
A:В файле gamedata\config\creatures\actor.ltx найти строки
hit_probability_gd_novice = 0.20
hit_probability_gd_stalker = 0.30
hit_probability_gd_veteran = 0.40
hit_probability_gd_master = 0.50
Они отвечают за вероятность попадания по вам при разных уровнях сложности.
Q:Как возвратить в игру гармошку ?:
A:Для возврата в игру губной гармошки, ищем в папке gamedata\scripts
файл xr_kamp*****ipt и открываем его блокнотом. Далее ищем строку --
играть на гармошке . Сам скрипт выглядит так:
-- играть на гармошке
-- if npcbject("harmonica_a") then
-- self.npc[npc_id].states["play_harmonica"] = true
-- self.npc[npc_id].states["wait_harmonica"] = true
-- self.kamp_states["pre_harmonica"] = true
-- self.kamp_states["harmonica"] = true
-- self.kamp_states["post_harmonica"] = true
-- else
self.npc[npc_id].states["play_harmonica"] = false
self.npc[npc_id].states["wait_harmonica"] = false
self.kamp_states["pre_harmonica"] = false
self.kamp_states["harmonica"] = false
self.kamp_states["post_harmonica"] = false
-- end
В данном случае знак -- означает, что строки скрипта игра не
использует, а просто пропускает их, переходя к следующей части. Значит
нужно убрать знак – из тех строк, которые нам нужны. Должно получится:
-- играть на гармошке
if npcbject("harmonica_a") then
self.npc[npc_id].states["play_harmonica"] = true
self.npc[npc_id].states["wait_harmonica"] = true
self.kamp_states["pre_harmonica"] = true
self.kamp_states["harmonica"] = true
self.kamp_states["post_harmonica"] = true
else
self.npc[npc_id].states["play_harmonica"] = false
self.npc[npc_id].states["wait_harmonica"] = false
self.kamp_states["pre_harmonica"] = false
self.kamp_states["harmonica"] = false
self.kamp_states["post_harmonica"] = false
end
Всё, теперь можете запускать игру и наслаждаться.*
Q:Как менять скорострельность и удобность оружия ?:
В папке gamedata/config/weapons в файлах конфигурации оружия ищи
control_inertion_factor
чем меньше параметр - тем выше удобство.
и
rpm - скорострельность.
Q:Как положить оружие в другой слот ?:
A:В папке gamedata/config/weapons в файлах конфигурации оружия ищи
SLOT и меняй на 1 (вместо ножа) или 2 (пистолетный слот)
Q:Добавление новых опций в меню игры ?:
A:Открываем файл gamedata\config\ui\ui_keybinding.xml. В нём находим строку
и после неё пишем:
Таким образом в меню игры добавляются 4 новых опции, а именно: смена
камеры и кнопка включения двигателя. Также можно добавлять сюда др.
клавиши но при одном условии для этого надо знать консольные команды.
Если вы хотите увидеть правдивые концовки, но вы уже в саркофаге и нет дешифратора , то можно изменить везде
locked = false на true
closed = false на true
Сегодня мы создадим новую группировку. Назовем её, скажем, "Ветер". Не суть важно.
Практика
Базовый уровень
1. Для начала в game_relations.ltx и в таблицу отношений группировок в
конце и в заголовке добавляем название своей группировки и коэффициенты
отношений к ней у других группировок. Также, не забываем прописать её
собственное отношение к другим группировкам:
[communities_relations]
;|actor |act_dol|act_fre|stalker|monolit|militar|killer |ecolog |dolg
|freedom|bandit |zombied|strange|trader|arena_enemy|wind|
;=================================================================================================================================
actor = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -5000, 0
actor_dolg = 0, 0, 0, 0, -5000, -500, -5000, 5000, 600, -5000, -5000, -5000, 0, 0, -5000
actor_freedom = 0, 0, 0, 0, -5000, -5000, -5000, -1500, -5000, 5000, 0, -5000, 0, 0, -5000, 0
stalker = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -5000, 0
monolith = -5000, -5000, -5000, -5000, 5000, -5000, -5000, -5000, -5000, -5000, 5000, 5000, -5000, 0, -5000, 0
military = -5000, -5000, -5000, -5000, -5000, 5000, -5000, 0, -5000, -5000, -5000, -5000, 0, 0, -5000, 0
killer = -5000, -5000, 0, -5000, -5000, -5000, 5000, -5000, -5000, -5000, 0, -5000, -5000, 0, -5000, 0
ecolog = 0, 600, -5000, 0, -5000, 1000, -5000, 5000, 500, -5000, -500, -5000, 0, 0, 0, 0
dolg = 0, 600, -5000, 0, -5000, -500, -5000, 5000, 5000, -5000, -5000, -5000, 0, 0, 0, 0
freedom = 0, -5000, 600, 0, -5000, -5000, -5000, -1500, -5000, 5000, 0, -5000, 0, 0, 0, 0
bandit = -5000, -5000, 0, -5000, -5000, -500, 0, -5000, -5000, 0, 0, -5000, -5000, 0, -5000, 0
zombied = -5000, -5000, -5000, -5000, 5000, -5000, -5000, -5000, -5000, -5000, -5000, 5000, -5000, 0, -5000, 0
stranger = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -500, -5000, 0, 0, 0, 0
trader = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
arena_enemy = -5000, -5000, -5000, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, 0, 0, 0
wind = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -5000, 0
Также, изменим эту строку, добавив туда имя и номер группировки:
;названия группировок
communities = actor, 0, actor_dolg, 1, actor_freedom, 2, stalker, 5, monolith, 6, military, 7, killer, 8, ecolog, 9, dolg, 10,
freedom, 11, bandit, 12, zombied, 13, stranger, 14, trader, 15, arena_enemy, 16, wind, 18,
Отсчет идет построчно начиная сверху. Хотя есть небольшой нюанс. У
первых трех строк - нумерация начинается с нуля, с остальных группировок
она идет как надо. Для wind выставили 18, так как мы эту группировку
отделили от других.
Далее, в разделе [communities_sympathy] в
конце добавляем свою группировку и коэффициент "впечатлительности" - чем
он меньше, тем меньше отношение группировки будет меняться к вам в
целом:
[communities_sympathy]
actor = 0.0
actor_dolg = 0.0
actor_freedom = 0.0
stalker = 0.0
monolith = 0.0
military = 0.0
killer = 0.0
ecolog = 0.0
dolg = 0.1
freedom = 0.1
bandit = 0.0
zombied = 0.0
trader = 0.0
stranger = 0.0
arena_enemy = 0.0
wind = 0.0
2. После этого в файле death_manager.script ищем строку local community_list и в скобках добавляем название своей группировки:
function init_drop_settings()
local community_list = { "stalker", "dolg", "freedom", "bandit", "military",