Как написать мод на сталкер

Руководство по созданию модификаций 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.
В звуках, кстати, можно найти много интересного, например: в папке soundscar содержатся звуки машин(которых в игре нет), а soundsmusicharmonica_1.ogg – файл губной гармошки. Ах да, чуть не забыл, самый главный лол, это файл soundscartrabantnoise.ogg

Введение в моддинг:

Именно с папкой config придётся работать для редактирования многих параметров игры.

Но начнём сначала:

Перед тем, как начать редактирование файлов игры, нужно в каталог Сталкера поместить ту самую папку gamedata, в которую были извлечены игровые файлы.
*Все файлы не понадобятся, поэтому можно оставить только папки config, scripts(а конкретно файл se_respawn*****ipt), textures, sounds, а всё остальное удалить(а можно и не удалять)
Стоит обратить внимание на токой факт , если распаковать все архивы .dbN в папку с игрой, то это может дать несколько дополнительных FPS.

Текстуры:

В папке textures лежат файлы формата .dds, которые можно открыть программой Nero PhotoSnap Viewer(входит в состав NERO7) например или windows texture viewer (63кб), и там же отредактировать по вкусу. Так, например, существует мод, уменьшающий размер PDA Меченого. Текстура PDA находится по адресу texturesuiui_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 можно заменить на другой, но при этом нужно сохранить все параметры звукового файла, который был использован в игре. Например, чтобы заменить музыку в приёмнике у Сидоровича, нужно файл soundsscriptsmagnitofonmagnitofon_2.ogg, заменить на любой другой.(У оригинального файла винамп мне выдал свойства:
Average bitrate : 60 kbps
Nominal bitrate : 80 kbps
Channels : 1
Sampling rate: 44100 Hz.

Config/Weapons:

Параметры оружия вы можете найти в папке configweapons, файлы типа 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
*о значениях после знака = см. ниже.
Все имена оружия, амуниции, снаряжения и т.п. можно найти в папках gamedatameshesequipments,
gamedatameshesweapons, gamedatameshesfood.
Заметьте, что 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. В директорию gamedatasoundsmusic положить два канальных ogg-файла с нужной музыкой, например: my_music_l.ogg (левый канал) и my_music_r.ogg (правый канал)
2. В текстовом редакторе открыть файл gamedataconfiguiui_mm_main.xml, найти в нем строку:

и заменить на:

3. В этом же файле найти строку:
musicwasteland2
и ниже нее выставить следующую строку:
musicmy_music
4. Сохранить файл.
5. Если требуется вставить больше муз. заставок, то в параметре random укажите их количество.

NPC покупают оружие:

Чтобы обычные сталкеры и др. npc могли покупать у ГГ оружие, нужно править файл gamedataconfigmisctrade_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]
Метод я проверял, вроде как работает.
Чтобы после покупки персонаж не выкидывал купленное оружие(а также чтобы подбирал его с земли), в файле gamedataconfigcreaturesm_stalker.ltx строку can_select_items = off меняем на can_select_items = on
и строку use_single_item_rule = on меняем на use_single_item_rule = off .

Транспорт:

Транспорт в игре есть! Пока способ заспаунить его не известен общественности, но тем не менее в сети появился файл all.spawn, копируйте его в папку gamedataspawns. Мод предназначен только для пропатченной версии игры(1.0001). После начала новой игры в первой локации рядом с Сидоровичем появятся несколько машин, в т. ч. и Камаз. Чтобы включить двигатель в консоли пишем [b]bind turn_engine kb[b], закрываем консоль, жмём кнопку b и наслаждаемся….
Рассмотрим параметры машин, конфиги находятся в папке gamedataconfigmodelsvehicles.
[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
В свою очередь каждая ветка диалога также может ветвится.

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 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
monstersmutant_boarmutant_boar
monsterskrovososkrovosos
monsterskontrolerkontroler
monstersdogdog
monstersfleshflesh
monstersdogdog_cmn_1
monstersfleshflesh
monsterspoltergeistpoltergeist
monsterspseudodogpseudodog
monsterssnorksnork
monstersburerburer
monsterschimerachimera
monsterscatcat
monsterszombizombi_1
monstersratrat_1
monsterstushkanotushkano

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:В файле gamedatascriptssr_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:В файле gamedataconfigmisctask_manager.ltx найти и изменить все строки вида time = 86400
Чтобы совсем убрать лимит — просто закомментировать их (—)

Q:Как убрать intro-ролики в начале ?:

A:В свойствах ярлыка прописываем после пути к exe-шнику: -nointro
Получиться должно что то вроде(это как у меня):
«D:GamesS.T.A.L.K.E.R. Shadow of ChernobylbinXR_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; находится в папке gamedataconfigcreatures) меняем параметр 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 SettingsAll Users Общие документы STALKER-SHOC
Для Windows Vista в директории X:UsersPublicDocumentsSTALKER-SHOC

Q:Как изменить силу врагов ?:

A:В файле gamedataconfigcreaturesactor.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:Для возврата в игру губной гармошки, ищем в папке gamedatascripts файл 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:Открываем файл gamedataconfiguiui_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», «zombied», «ecolog», «killer», «monolith»,
«arena_enemy», «actor_dolg», «wind» }

3. В файле death_items_by_communities.ltx пишем [x]:stalker (вместо x — название вашей группировки):
[…]
af_dummy_spring = 0
af_fuzz_kolobok = 0

;Еда
vodka = 0

[arena_enemy]
[actor_dolg]

[wind]: stalker
bread = 0
kolbasa = 0
vodka = 0
energy_drink = 0.3

4. Если предусматривается респавн бойцов новой группировки, в se_respawn.script прописываем в local simMaxCount = { после строчек с зомбированными сталкерами строку:
wind_novice = 20, wind_regular = 20, wind_veteran = 20, wind_master = 6,

5. Чтобы при убийстве непися новой группировки игра не вылетала в xr_statistic.script,

после строки:
zombied_novice = 1, zombied_experienced = 2, zombied_veteran = 3, zombied_master = 4,

пишем
dark_stalker_novice = 1, dark_stalker_experienced = 2, dark_stalker_veteran = 3, dark_stalker_master = 4,

6. Ну а в character_desc_x.xml выбираем любого NPC (или группу) и меняем группировку на свою:

esc_wolf_name
ui_npc_u_stalker_neytral_balon_1
esc_wolf_bio

esc_wolf
wind
[…]

7. Чтобы у персонажа в графе «Группировка» отображалось не «wind», а «Ветер», зарегистрируем соответствующую строку в файле string_table_general.xml:

Ветер

Одиночка

[…]

8. Существует возможность создать для нашей новой группировки места, где они будут ходить (*_terrain брать из m_stalker.ltx):

То есть, к примеру, существует секция:
[stalker_terrain]
255,000,255,255
008,001,255,255 ;Разрешено ходить по опасным местам на баре
012,001,255,255 ;Разрешено ходить по опасным местам на Милитари

Тогда можно создать новую, по аналогии:
[wind_terrain]
255,000,255,255
008,001,255,255 ;Разрешено ходить по опасным местам на баре
012,001,255,255 ;Разрешено ходить по опасным местам на Милитари
010,001,255,255 ;Разрешено ходить по опасным местам на янтаре

Здесь, очевидно, указаны координаты самого уровня. Для каждого уровня существует своя начальная координата.
Продвинутый уровень

Такой метод достаточно примитивен. Это не полноценная группировка. Нам нужны соответствующие диалоги, возможность получения квестов и вступления в группировку, уникальные NPC.
Квесты

Добавим квесты, которые нужно выполнить для группировки. Пока — простые поручения распространенных типов.

Во-первых, пропишите в список диалогов персонажа следующие строки:
[что-нибудь]_dialog
[что-нибудь]_reward

Примеры названий: tm_trader_dialog, tm_wolf_dialog…

Внимание! Метод не проверен.

Этим мы добавили ему ветку диалога «Есть работа?», а также ветку для награды за квест/отказа от него. Теперь зарегистрируем в task_manager.ltx набор новых заданий.
[list]

[…]

;———Wind————————
;———-Kill Stalker—-
wind_kill_stalker
;———-Find Item—-
wind_find_item

[…]

;tasks for Wind

[wind_find_item]
type = find_item
community = actor
text = [ссылка на текст с рассказом заказчика о задании]
description = [ссылка на текст с описанием задания]
parent = [имя NPC-заказчика]
target = scientific_outfit
reward_money = 5000
reward_reputation = +5
reward_rank = 4
reward_item = wpn_sig_m1
time = 86400

[wind_kill_stalker]
type = kill_stalker
community = actor
text = [ссылка на текст с рассказом заказчика о задании]
description = [ссылка на текст с описанием задания]
parent = [имя NPC-заказчика]
target = sim_stalker_master_master
reward_money = 4000
reward_reputation = +5
reward_rank = 9
reward_item = ammo_5.56x45_ap, ammo_5.56x45_ap, ammo_5.56x45_ap
time = 86400

Не забудьте прописать описания заданий в текстовые массивы. Подробнее о редактировании task_manager.ltx читайте в уроке, посвященном однотипным квестам.

Да, и зарегистрируйте сами ветки диалогов в файле dialogs.xml. Вот пример того, как это сделано для заданий «Долга»:

task_manager.init_dolg_task_dialog

task_manager.init_dolg_reward_dialog
task_manager.has_active_vendor_task

Соответственно, пройдем туда, куда указывает строка task_manager.init_dolg_task_dialog — в task_manager.script:
function init_dolg_task_dialog(dlg)
get_random_task():init_task_dialog(dlg, «dolg»)

По аналогии делаем и с нашим «Ветром».
Вступление в группировку

Реализуем возможность вступления в группировку.

Прописываем в dialogs.script такие action’ы:
————————————————————————————
— Community
————————————————————————————

[…]

function actor_set_wind (actor, npc)
printf («ACTOR NOW IN WIND COMMUNITY»
if db.actor then
db.actor:set_character_community («actor_wind», 0, 0)
end
return true
end

После чего создадим диалог, и сделаем в нем фразу с action’ом вида actor_set_wind. Советую изучить урок, посвященный диалогам.


Как создать сюжетный мод, или крах ожиданий

Neptun

Запись опубликовал

Neptun · 2 ноября, 2021

2 707 просмотров

Многие почему-то уверены, что можно так просто взять и создать мод: «ты, говорит, скажи с чего начать, а там уж оно пойдёт, точно говорю». Спешу вас разочаровать: так не получится, как не получится сразу собрать автомобиль. Изучая любую науку, вы начинаете с азов, с самого простейшего, что может понять каждый, ну, а если и это сложно, простите, вам в поле траву косить надо, вот ваш удел.
С чего же начать? С любви к сталкеру. Это такая вещь, которая будет не раз предавать вас, но которая в конечном счёте отблагодарит за терпение. В эту игру можно только верить, даже когда всё плохо, а такое частенько бывает. Итак, первый критерий — поклоняться Монолиту и молиться ему, чтобы тот наставил тебя на путь истинный.
Следующий пункт — это на чём создавать мод. Мы называем их платформами, всего их три: ТЧ, ЧН, ЗП. Надеюсь, расшифровка не требуется. Какая из этих платформ лучшая? Спорный вопрос, у каждой есть свои плюсы и минусы, но я убеждён, что ЗП является наилучшей платформой для создания модов, потому что на него много контента, с ним проще работать, и даже я стал экспертом по ЗП.
Наконец, определяемся с третьей ипостасей: что вы хотите создать? Если вы рисуете, моделите, умеете пилить звуки или голос хороший, присоединяйтесь к командам модостроителей. Мои же читатели хотят запилить офигенный сюжет! Эти гениальные нетленки — гениальны только у вас в головах. Поверьте, когда вы начнёте реализовывать свой сценарий в игре, вы поймёте, почему у вас ничего не получится. Игра имеет множество ограничений, нельзя просто закрыть глаза и представить, что вы живёте во вселенной сталкера.
«Хочу новую локацию, хочу мегасюжет сделать, хочу чтобы ЧАЭС в очередной раз рванула, а мы такие эпично улетаем на вертолёте, хочу, хочу, хочу!..» — Все ваши хотелки зависят исключительно от ваших способностей или, если повезёт, вы найдёте модификацию, которая закроет дыры в местах, где вы не знаете, как реализовать то или иное событие, но рекомендую с этим не перебарщивать, потому что очень велик шанс втянуться в бесконечные заимствования, чтобы по итогу выпустить очередную солянку. Есть годные солянки, но их авторы провели огромнейшую работу по склейке сотен модов, как правило, на этом поприще они уже достигли вершины и вам их не переплюнуть. Что же сделает вас уникальным? Новый сценарий, сюжет которого повергнет всех в шок! Впрочем, опустимся на землю, обладаете ли вы талантом? Или хоть чуть-чуть способностей есть? Проблема сталкера в том, что сюжетный мод может сделать каждый, пользуясь правилом трёх:
1. Диалоги.
2. Перестрелки.
3. Поиск предметов/нпс/золотого шара и проч.
Большинство мелких (а бывает и крупных) сюжетных модов строится именно по этой схеме. Эти три переменные представлены такими, какие они и есть, без всякого межстрочного смысла, серьёзно: поговорили, убили, что-то нашли — mission complete. Это основа основ, без этого в принципе нельзя построить ни один квест. Или можно? Нет, хоть одно да условие, но будет фигурировать в квесте. Суть в том, как это преподнести? Повторяю, многие модмейкеры эксплуатируют эту схему самым варварским способом (ctrl+c, ctrl+v), не пытаясь внести никаких улучшений. Разумеется, по итогу выходит второсортный модецкий, который цепляет одними лишь перестрелками. В этом и заключается главная проблема сталкера: придумать схему для квеста, состоящую не из трёх пунктов. Пока я не начал рассуждать дальше, хочу вывести на чистую воду тех, кто маскирует скудность сюжета якобы уникальной составляющей, используя оружейные, погодные, текстурные паки, особо талантливые даже создают новые локации. Впрочем, к последним отношение действительно особое, ибо новая локация — всегда событие. Каждый знает, как мало этого ценного ресурса в сталкере, так что новая локация вкупе с посредственным сюжетом в целом формирует положительную реакцию от игроков.
Представляя во всех красках своё творение, вы, конечно, видите его так же, как видите местность за своим окном: интересные пейзажи, максимальная детализация, полная автономия жизни, короче, что-то вроде Ведьмака или GTA 5. Только для создания подобного компании тратят миллионы долларов. А мы с вами бедные. Что мы можем сделать? Использовать то, что имеем. Наши любимые ПЫСы оставили хорошую базу для творчества, инструментов, на самом деле, достаточно, главное, чтобы руки из нужного места росли, а фантазия не подводила. Если вы что-то не можете сделать сами, обращайтесь на форумы не только с вопросами, но и просьбами поделиться нужным скриптом, ищите мини-моды, которые добавят и звуков новых, и моделей разных, а иногда даже локации можно найти. То, что вы хотите, хотите только вы, вряд ли найдётся мод, в котором уже всё настроено, а вам остаётся лишь реализовать сюжет (в качестве исключения можно назвать разве что Call of Chernobyl).
Я хочу сказать, что писать по-русски мало, чтобы создать сюжетный мод, вам придётся касаться всех внутренностей игры, знать, как взаимодействуют скрипты друг с другом и быть готовым изучать что-то новое, потому что далеко не всегда вы найдёте ответы на просторах Интернета.

Рекомендуем

  Калибр — игра на Выживание

Калибр

Реклама 18+

Calibre представлен как тактический командный шутер, где игроку предстоит выступить за бойца одного из спецподразделения и участвовать в секретных спецоперациях. В игре широко представлен арсенал вооружения, все модели и их характеристики были воспроизведены с реалистичной точностью. Разработчики напрямую сотрудничают с концерном Калашников. Множество игровых локаций, четыре специализации и три игровых режима Столкновение, Спецоперация и Фронт.

Большой сборник уроков по модостроению Сталкер

11 Марта 2012. Модостроение

Большой сборник уроков по модостроению СталкерБольшой сборник уроков по модостроению Сталкер. В данном собрании объединено огромное количество статей по модостроению с практическими примерами. Данный сборник по модостроению Stalker насчитывает в своем составе более 50-ти уроков, которые несомненно помогут разобраться начинающим модостроителям в создании своих первых модов для серии игр Сталкер.

— Авторазбор
— Правка XR 3DA.exe. Изменение рисунка при запуске игры
— Добавление брони
— Делаем прозрачный худ и инвентарь
— Активация артефактов
— Изменение текстур
— Восстанавливаем части монстров в сталкер Чистое Небо
— Добавляем статьи в PDA
— Определяем координаты
— Изменяем длину палочки прицела
— Изменяем параметры конкретного боеприпаса
— Изменяем параметры конкретного оружия
— Изменяем рост главного героя
— Учим техника делать все апгрейды
— Отключаем вспышку выстрела у ВСС, Вал, ПБ
— Реализуем качание прицела
— Редактируем гранаты
— Редактируем бронекостюмы
— Делаем новые продукты питания
— Редактируем торговцев и торговлю с обычными сталкерами
— Делаем вид от третьего лица
— Делаем главного героя бессмертным
— Делаем чтобы стволы не убирались сами
— Делаем чтобы у главного героя были бесконечные деньги
— Редактируем торговцев
— Настройка погоды и освещения
— Создаем перемещающиеся аномалии
— Создаем Видеофайлы для игры Сталкер
— Создаем диалоги
— Создаем диалоги с полным обзором
— Создаем новый артефакт
— Создаем новое оружие
— Создаем новую группировку
— Спавним новые предметы
— Спавним телепорты через скрипты
— Спавним точки перехода между уровнями
— Спавним через меню
— Структура файлов и папок
— Создаем Тёмные ночи
— Спавним через скрипты
— Теория модостроения
— Техника в игре
— Торговля в игре
— Убираем дождь
— Описание Actor.ltx
— Описание Alife.ltx
— Описание Inventory new.xml
— Описание System.ltx
— Описание Trade ******.ltx
— Изменяем время и дату начала игры
— Делаем свой первый мод на пятерку
— Добавляем новые предметы в СТАЛКЕР
— Добавляем режим фриплей в Тени Чернобыля
— Добавляем артефакт в Аномалию
— Изменяем худ в Зове Припяти
— Исправляем вылет при разговоре с Ковальским для v1.6.0.0
— Добавляем новые предметы
— Отсылаем сообщение Меченому на ПДА
— Правильно вставляем свои звуки в игру
— Как создать броник в ЗП
— Увеличиваем максимально переносимый вес
— Логика НПС
— Подключение локаций к Чистое Небо и Зов Припяти с помощью программы от AMK Team
— Super config
— Библиотека Вырезанных анимаций
— Генерирование предметов в трупах
— Настройка логики в 4-х частях
— Настройка логики от Икстрима
— Создаём проводников
— Создаём телепорт
— Точный разбор секций all.spawn
— RESPAWN
— Анимации NPC
— Вывод сообщения на экран
— Выдача актеру информации о тайнике
— Выдирание оружия
— Диалоги в четырех частях
— Выводим сообщение на экран без использования функций АМК
— Как сделать полный квест
— Перенос моделей НПС из ЧН и ЗП в ТЧ
— Как создать абсолютно новый костюм с уникальным визуалом
— Разблокировка видео опций
— Сигаретная зависимость
— Снятие денег с трупов
— Создаем работающее радио
— Создание непися и профиля
— Создание полоски здоровья, меняющей цвет
— Эффект критического раненния
— Устанавливаем часы на Худ
— Правим кости неписям
— Созданем новый шлем
— 12 уроков по теме «Работа с ACDC»
— 24 урока по SDK

Размер: 14.73 Mb

Скачать Большой сборник уроков по модостроению Сталкер



Новые статьи:

  • Как в Сталкер Зов Припяти сделать много денег
  • Как сделать бессмертие в Сталкер Зов Припяти
  • UI Modificator 1.6 final

Предыдущие статьи:

  • Fraps v3.4.0 RUS Программа записи игрового видео Сталкер
  • STALKER Data Unpacker 1.0 распаковщик игровых архивов db
  • Stalker OGF Master V1.0.1.0 конвертор моделей
  • STALKER SDK 0.7 для X-Ray 1.6 набор инструментария разработчикам модов (2010)
  • STALKER — GameData Editor V1.1.0.2 RUS

«SHADOW OF CHERNOBL«

Scratch Не раз на сайте многие писали мне в ПДА о том как изменить вес в игре, как изменить аномалии в игре и тому подобное.. smile14 Решил выложить краткую информацию о том с чего вообще нужно начинать. Надеюсь данная статья поможет начинающим модостроителям. Happy
=======================================================================

«Вступление:«

Как вы наверно заметили, в папке с игрой содержатся несколько файлов типа gamedata.dbN , где N – это число или буква. Это игровые архивы, в которые запакованы все файлы конфигураций, видеоролики, музыка, звуки, скрипты и прочее. Можно их править HEX-editor’ом, но лучше скачать специальную утилитку STALKER_Data_Unpacker и распаковать в отдельную папку(с именем gamedata, позже поймёте почему) их содержимое. Вот после этого можно начать разгребать весь тот мусор, который вы извлекли.
STALKER_Data_Unpacker -ссылка на программу тут : http://narod.ru/disk/22617777000/STALKER_Data_Unpacker.zip.html

«Структура файлов и папок:«

Рассмотрим, что-же содержится в папке 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.
В звуках, кстати, можно найти много интересного, например: в папке soundscar содержатся звуки машин(которых в игре нет), а soundsmusicharmonica_1.ogg – файл губной гармошки. Ах да, чуть не забыл, самый главный лол, это файл soundscartrabantnoise.ogg

=======================================================================

«Введение в моддинг:
«

Именно с папкой config придётся работать для редактирования многих параметров игры.

Но начнём сначала:

Перед тем, как начать редактирование файлов игры, нужно в каталог Сталкера поместить ту самую папку gamedata, в которую были извлечены игровые файлы.
*Все файлы не понадобятся, поэтому можно оставить только папки config, scripts(а конкретно файл se_respawn*****ipt), textures, sounds, а всё остальное удалить(а можно и не удалять)
Стоит обратить внимание на токой факт , если распаковать все архивы .dbN в папку с игрой, то это может дать несколько дополнительных FPS.

=======================================================================

«Текстуры:«

В папке textures лежат файлы формата .dds, которые можно открыть программой Nero PhotoSnap Viewer(входит в состав NERO7) например или windows texture viewer (63кб), и там же отредактировать по вкусу. Так, например, существует мод, уменьшающий размер PDA Меченого. Текстура PDA находится по адресу texturesuiui_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 можно заменить на другой, но при этом нужно сохранить все параметры звукового файла, который был использован в игре. Например, чтобы заменить музыку в приёмнике у Сидоровича, нужно файл soundsscriptsmagnitofonmagnitofon_2.ogg, заменить на любой другой.(У оригинального файла винамп мне выдал свойства:
Average bitrate : 60 kbps
Nominal bitrate : 80 kbps
Channels : 1
Sampling rate: 44100 Hz.

=======================================================================

«Config/Weapons:«

Параметры оружия вы можете найти в папке configweapons, файлы типа w_ak74.ltx открываются тоже блокнотом. Разберём содержимое файла например w_groza.ltx
Во первых стоит обратить внимание на значение пременной(буду их так называть) cost, это цена оружия, т.е. сколько гроза будет стоить у продавца.
Переменная weapon_class означает, к какому классу относится оружие, в данном случае — assault_rifle.

ammo_limit – лимит боеприпасов(в игре по-моему не используется)
ammo_mag_size – [=yellow]размер магазина. Можно поставить например 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:
=======================================================================

«Параметры предметов:«

В этом файле в квадратных скобках написан тот предмет, чьи параметры идут ниже, за квадр. скобками. Например:

Колбаса "Практическая"
Колбаса «Практическая»

: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
*о значениях после знака = см. ниже.
Все имена оружия, амуниции, снаряжения и т.п. можно найти в папках
gamedatameshesequipments,
gamedatameshesweapons, gamedatameshesfood.

Заметьте, что 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. В директорию gamedatasoundsmusic положить два канальных ogg-файла с нужной музыкой, например: my_music_l.ogg (левый канал) и my_music_r.ogg (правый канал)
2. В текстовом редакторе открыть файл gamedataconfiguiui_mm_main.xml, найти в нем строку:

и заменить на:

3. В этом же файле найти строку:
musicwasteland2
и ниже нее выставить следующую строку:
musicmy_music
4. Сохранить файл.
5. Если требуется вставить больше муз. заставок, то в параметре random укажите их количество.

=======================================================================

«NPC покупают оружие:«

Чтобы обычные сталкеры и др. npc могли покупать у ГГ оружие, нужно править файл gamedataconfigmisctrade_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]
Метод я проверял, вроде как работает.
Чтобы после покупки персонаж не выкидывал купленное оружие(а также чтобы подбирал его с земли), в файле
gamedataconfigcreaturesm_stalker.ltx строку can_select_items = off меняем на can_select_items = on
и строку use_single_item_rule = on меняем на use_single_item_rule = off .

=======================================================================

«Транспорт:«

Транспорт в игре есть! Пока способ заспаунить его не известен общественности, но тем не менее в сети появился файл all.spawn, копируйте его в папку gamedataspawns. Мод предназначен только для пропатченной версии игры(1.0001). После начала новой игры в первой локации рядом с Сидоровичем появятся несколько машин, в т. ч. и Камаз. Чтобы включить двигатель в консоли пишем [b]bind turn_engine kb[b], закрываем консоль, жмём кнопку b и наслаждаемся….
Рассмотрим параметры машин, конфиги находятся в папке gamedataconfigmodelsvehicles.
[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 для смены вида.
Очень нужно при езде на БТР

=======================================================================

«Создание новых веток диалога:«

[=yellow]Создание новых веток диалога.[
/COLOR]
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
monstersmutant_boarmutant_boar
monsterskrovososkrovosos
monsterskontrolerkontroler
monstersdogdog
monstersfleshflesh
monstersdogdog_cmn_1
monstersfleshflesh
monsterspoltergeistpoltergeist
monsterspseudodogpseudodog
monsterssnorksnork
monstersburerburer
monsterschimerachimera
monsterscatcat
monsterszombizombi_1
monstersratrat_1
monsterstushkanotushkano

======================================================================
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 или Cool для установки мода? Что будет если я сначала устанавлю/распакую ЧТО-ТО а потом ТО-ТО?
А: Содержимое папки gamedata имееет приоритет перед аналогичными файлами лежащими в архиве, НО если какой-то файл отсутствует в папке gamedata, то игра возьмёт её из архива. Таким образом распаковавать файлы gamedata.dbX (X — цифра от 0 до 9 или буква a или Cool НЕ нужно.
Если моды содержат одинаковые файлы то новый мод ЧАСТИЧНО затрёт предыдущий, что может привести к непредсказуемым последствиям.
Если у Вас установленны какие-то моды и вы распаковаваете файлы gamedata.dbX (X — цифра от 0 до 9 или буква a или Cool, то моды сотрутся ПОЛНОСТЬЮ.

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:В файле gamedatascriptssr_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:В файле gamedataconfigmisctask_manager.ltx найти и изменить все строки вида time = 86400
Чтобы совсем убрать лимит — просто закомментировать их (—)

Q:Как убрать intro-ролики в начале ?:

A:В свойствах ярлыка прописываем после пути к exe-шнику: -nointro
Получиться должно что то вроде(это как у меня):
«D:GamesS.T.A.L.K.E.R. Shadow of ChernobylbinXR_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; находится в папке gamedataconfigcreatures) меняем параметр 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 SettingsAll Users Общие документы STALKER-SHOC
Для Windows Vista в директории X:UsersPublicDocumentsSTALKER-SHOC

Q:Как изменить силу врагов ?:

A:В файле gamedataconfigcreaturesactor.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:Для возврата в игру губной гармошки, ищем в папке gamedatascripts файл 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:Открываем файл gamedataconfiguiui_keybinding.xml. В нём находим строку

и после неё пишем:

Таким образом в меню игры добавляются 4 новых опции, а именно: смена камеры и кнопка включения двигателя. Также можно добавлять сюда др. клавиши но при одном условии для этого надо знать консольные команды.

Если вы хотите увидеть правдивые концовки, но вы уже в саркофаге и нет дешифратора , то можно изменить везде
locked = false на true
closed = false на true

Базовый урок , ничего сложного, смарт-терейны не переписывал, сами будете добавлять….
Назовем нашу группировку (айди) grom
1) Открываем файл gamedataconfigscreaturesgame_relations.ltx

;названия группировок (порядок должен совпадать с communities_relations)
communities        = actor, 0, bandit, 1, dolg, 2, ecolog, 3, freedom, 4, killer, 5, army, 6, monolith, 7, monster, 8, stalker, 9, zombied, 10, grom, 11

пишем группировку за следующей как в таблице, и указываем номер, по счету из таблицы, после последней запятая не нужна!!!

[communities_relations]
;              |actor|bandit| dolg|ecolog|freedom|killer|    army|monolith|monster|stalker| zombied|grom
;===============================================================================
====================
actor         =     0,     0,     0,     0,       0, -1000,       0,   -5000,  -5000,      0,   -5000
bandit        =     0,  5000,-5000,     0,  -5000,     0,   -5000,   -5000,  -5000,  -1000,   -5000, -5000
dolg          =     0, -5000, 5000,     0,  -5000,     0,       0,   -5000,  -5000,      0,   -5000, 0
ecolog        =     0,     0,    0,     0,      0,     0,       0,       0,      0,      0,       0, 0, 0, 0, 0
freedom       =     0, -5000,-5000,     0,   5000,     0,       0,   -5000,  -5000,      0,   -5000, 0
killer        = -1000,     0,    0,     0,      0,  1000,   -5000,   -5000,  -5000,      0,   -5000, 0
army            =     0, -5000,    0,     0,      0, -5000,    1000,   -5000,  -5000,      0,   -5000, 0
monolith      = -5000, -5000,-5000,     0,  -5000, -5000,   -5000,    1000,  -5000,  -5000,    1000, -5000
monster       = -5000, -5000,-5000,     0,  -5000, -5000,   -5000,   -5000,      0,  -5000,   -5000, -5000
stalker       =     0, -1000,    0,     0,      0,     0,       0,   -5000,  -5000,      0,   -5000, 5000
zombied       = -5000, -5000,-5000,     0,  -5000, -5000,   -5000,    1000,  -5000,  -5000,    1000, -5000
grom        =  -5000, -1000,    0,     0,      0,     0,       0,   -5000,  -5000,      0,   -5000, 5000

Добавляем группировку в таблицу, прописываем отношение к другим группировкам, НЕ ЗАБЫВАЕМ добавлять по еще одному значению по вертикали!

;(порядок должен совпадать с communities_relations)
[communities_sympathy]
actor            =        0.0
bandit            =        0.0
dolg            =        0.0
ecolog            =        0.0
freedom            =        0.0
killer            =        0.0
army            =        0.0
monolith        =        0.0
monster            =        0.0
stalker            =        0.0;0.01
zombied            =        0.0
grom                =         0.0

Сюда тоже добавляем в таком же порядке…

2) Создаем профайл сталкера в gamedataconfigsgameplaycharacter_desc_general.xml (ну или другой, который вы прописали, или на уровнях)

<specific_character id="grom spez" team_default = "1">
    <name>GENERATE_NAME_stalker</name>
    <icon>ui_inGame2_merc_4</icon>
    <map_icon x="1" y="0"></map_icon>
    <bio>Опытный сталкер. Детальная информация отсутствует.</bio>

    <class>grom_specnaz</class>
    <community>grom</community> <terrain_sect>stalker_terrain</terrain_sect>
    <snd_config>characters_voicehuman_03killer</snd_config>

    <rank>60</rank>
    <money min="5000" max="10000" infinitive="0"/>
    <reputation>0</reputation>

    <visual>actorsstalker_mercstalker_merc_4</visual>
    <supplies>
      [spawn] n
      
      wpn_fn2000 n
      ammo_5.56x45_ap = 1 n
      wpn_usp n
      ammo_11.43x23_hydro = 1 n
      grenade_f1 = 4 n

#include "gameplaycharacter_items_nd.xml"
#include "gameplaycharacter_food.xml"
#include "gameplaycharacter_drugs_4.xml"
#include "gameplaycharacter_drugs_sci.xml"
#include "gameplaycharacter_drugs_mil.xml"
    </supplies>
#include "gameplaycharacter_criticals_4.xml"
#include "gameplaycharacter_dialogs.xml"
  </specific_character>

3) в файле gamedataconfigsgameplaynpc_profile.xml создаем класс нпс, вписываем его айди из профайла и класс.

<character id="grom spez">
        <class>grom_specnaz</class>
    </character>

В файле gamedataconfigscreaturesspawn_sections_general.ltx создаем секцию для спавна:

[ваше название секции]:stalker
$spawn = "respawnваше название секции"
character_profile = grom spez -айди нпс_профайла
spec_rank = novice
community = grom ---группировка как в профайле

4) Добавляем в скрипт death_manager.script нашу группировку:

local community_list = { "stalker", "dolg", "freedom", "bandit", "army", "zombied", "ecolog", "killer", "monolith","grom"}

5) В файле gamedataconfigsmiscdeath_items_by_communities.ltx
Добавляем секцию с группировкой, и продукты для нее…., теоретически можно не трогать этот файл, все будет по дефолту и вылетов не будет тоже, проверял.

6) Чтоб название было по русски в любом файле с текстами

<string id="grom">
<text>Вольный сталкер</text>
</string>

7) Осталось заспавнить, берем секции из spawn_sections_….

Скачать учебник «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.

Введение в моддинг:
Именно с папкой 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.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 можно заменить на другой, но при этом нужно сохранить все параметры звукового файла, который был использован в игре. Например, чтобы заменить музыку в приёмнике у Сидоровича, нужно файл soundsscriptsmagnitofonmagnitofon_2.ogg, заменить на любой другой.(У оригинального файла винамп мне выдал свойства:
Average bitrate : 60 kbps
Nominal bitrate : 80 kbps
Channels : 1
Sampling rate: 44100 Hz.

Config/Weapons:
Параметры оружия вы можете найти в папке configweapons, файлы типа w_ak74.ltx открываются тоже блокнотом. Разберём содержимое файла например w_groza.ltx
Во первых стоит обратить внимание на значение пременной(буду их так называть) cost, это цена оружия, т.е. сколько гроза будет стоить у продавца.
Переменная weapon_class означает, к какому классу относится оружие, в данном случае — assault_rifle.
ammo_limit – лимит боеприпасов(в игре не используется)
ammo_mag_size – размер магазина. Можно поставить например 900, тогда о перезарядке можно совсем не вспоминать.
ammo_class – класс патронов, используемых оружием. Здесь [/b]ammo_9x39_pab9[/b], 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:
В дополнение к конфигам оружия:
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], где [b]YYY[.B] – это имя торговца(например [b]trade_barman.ltx[.B])
Итак, поехали:
Структура файла на самом деле очень проста, под зачком ; прописаны сами предметы, а после него – комментарий(чтоб понятно было). Например ;Аммуниция.
В квадратные скобки заключены([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
*о значениях после знака = см. ниже.
Все имена оружия, амуниции, снаряжения и т.п. можно найти в папках gamedatameshesequipments,
gamedatameshesweapons, gamedatameshesfood.
Заметьте, что 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. В директорию gamedatasoundsmusic положить два канальных ogg-файла с нужной музыкой, например: my_music_l.ogg (левый канал) и my_music_r.ogg (правый канал)
2. В текстовом редакторе открыть файл gamedataconfiguiui_mm_main.xml, найти в нем строку:
<menu_sound random=»0″ >
и заменить на:
<menu_sound random=»1″ >
3. В этом же файле найти строку:
<menu_music>musicwasteland2</menu_music>
и ниже нее выставить следующую строку:
<menu_music>musicmy_music</menu_music>
4. Сохранить файл.
5. Если требуется вставить больше муз. заставок, то в параметре random укажите их количество.
Автор идеи — VM

NPC покупают оружие:
Чтобы обычные сталкеры и др. npc могли покупать у ГГ оружие, нужно править файл gamedataconfigmisctrade_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]
Метод я проверял, вроде как работает.
Чтобы после покупки персонаж не выкидывал купленное оружие(а также чтобы подбирал его с земли), в файле gamedataconfigcreaturesm_stalker.ltx строку can_select_items = off меняем на can_select_items = on
и строку use_single_item_rule = on меняем на use_single_item_rule = off .

Объекты, которые можно перемещать:
В файле system.ltx в конце есть строка [ph_capture_visuals], после неё идёт список перетаскиваемых вещей. Например чтобы можно было таскать монстров, в конец добавляем:
//Monsters
monstersmutant_boarmutant_boar
monsterskrovososkrovosos
monsterskontrolerkontroler
monstersdogdog
monstersfleshflesh
monstersdogdog_cmn_1
monstersfleshflesh
monsterspoltergeistpoltergeist
monsterspseudodogpseudodog
monsterssnorksnork
monste rsburerburer
monsterschimerachimera
monsterscatcat
monsterszombizombi_1
monstersratrat_1
monsterstushkanotushkano

Как сделать так, чтоб не убиралось из рук оружие в некоторых локациях?:
В файле gamedatascriptssr_no_weapon*****ipt найти и закомментировать (поставить перед ними —) строки
bind_stalker.hide_weapon()
bind_stalker.restore_weapon()
и в файле zone_no_weapon*****ipt ищем строки hide_weapon() и заменяем их на restore_weapon()
Способ подходит и для предыдущего файла.

Как приделать к оружию оптику, глушитель, подствольник?:
Находим в файле оружия строку ;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

 КАК ИЗМЕНИТЬ НОСИМЫЙ ВЕС? 

В файле gamedataconfigcreaturesactor.ltx находим переменную max_item_mass – это максимальный вес при достижении которго игрок перестает двигаться
max_walk_weight — максимальный вес, до достижения которого можно передвигаться
В файле gamedataconfig system.ltx изменяем переменную max_weight – это вес который игрок несет не напрягаясь.

Понравилась статья? Поделить с друзьями:
  • Как написать мод на майнкрафт на fabric
  • Как написать мод для симс 4
  • Как написать мод для майнкрафта на c
  • Как написать мод для майнкрафт на python
  • Как написать мод для майнкрафт на java