Как прошить сталкер

Обновлено: 19.05.2024

Эта тема создана не случайно, так как многие начинающие игроки в Сталкер сталкиваются с такой проблемой как установка мода. В связи с большим количеством вопросов связанных с установкой различных модов, аддонов, патчей, адаптаций и фиксов разберем основные способы установки.

Моды следует сразу разделить на две категории.

1. Моды устанавливаемые через инсталятор.
2. Моды выполненные в виде папки "gamedata" как правило помещенные в архив.

В установке модов заключенных в инсталлятор одним из важных моментов состоит правильность установки пути инсталляции. Другими словами тот путь который предлагает выбрать инсталлятор не всегда совпадает с местом установки вашей игры на жестком диске.

ВАЖНО. Перед тем как устанавливать какой либо мод необходимо убедиться в отсутствии уже имеющейся папки gamedata в корневой папке с игрой. Это бывает в том случае если у вас уже устанавливались ранее моды. Всё это из-за того что некоторые моды друг с другом несовместимы.

Первый вариант установки мода:

Другими словами Вам необходимо:

1. Запустить инсталятор.

2. Указать путь к установленной игре Сталкер (нас интересует корневая папка игры).


В итоге в папке с игрой должна появиться папка gamedata.
Следующий шаг самый приятный, а именно запустить ярлык на рабочем столе и играть.

Второй вариант установки мода:

Второй вариант установки в принципе похож, только делать придется все в ручную.

1. Разархивируем скачанный архив как правило это RAR, Zip, 7zip.
2. Полученную папку gamedata копируем в папку с игрой.


Далее запускаем и играем!

Установка Фиксов:
Фиксы к модам ставятся аналогично второму варианту установки модов. Фиксы также выполнены в виде архива с папкой gamedata. Единственный нюанс это при копировании папки gamedata с фиксом в папку с игрой система укажет что такая папка уже существует останется согласится на копирование с заменой.

Установка адаптаций:

Шаг 1. Устанавливается игра, если она ещё не установлена.
Шаг 2. Устанавливаем мод
Шаг 3. Устанавливаем фикс патч к нему Если необходимо.
Шаг 4. Устанавливаем мод который необходимо адаптировать с первым.
Шаг 5. Устанавливаем адаптацию (она как и фиксы выполняется в виде папки gamedata и устанавливается аналогично)
Шаг 6. Наслаждатся игрой.

Как прошить сталкер

Структуру папок и местонахождение основных файлов игры Сталкер смотрим здесь Структура файлов и папок

Короче, нашел у себя в загашнике решение (вроде как от самого Архары) и испытал, создав ситуацию с неотключившимся выбросом (не уходил с локации пока таймер не обнулился), вот описание (подправил немного):

затем, вызов функции в таком виде: <action>arhara_dialog.dell_duratskiy_timer</action>
вставить в любой ближайший диалог.

под строку: function actor_binder:update(delta)

добавить вызов: arhara_dialog.dell_duratskiy_timer()

Сохранить изменения, грузить сейв перед заходом на ЧАЭС-1 и потом переходить, или загружаться с автосейва перехода, тоже сработает.
После, как перешли на ЧАЭС-1 и выброс отключился - сохраняемся, выходим из игры и удаляем строку arhara_dialog.dell_duratskiy_timer() из файла bind_stalker.script



Ключи для быстрого запуска игры , также немного разгружает память .

На рабочем столе , правой кнопкой мышки кликаем на ярлык.S.T.A..L.K.E.R
Далее , выбираем Свойства
Далее , в Объект , после кавычек , делаем пробел и прописываем
. XR_3DA.exe" -nointro -noprefetch -noshadows
Подходит к любому Сталкеру , Н.И. не нужна , удачи .





Небольшая статья n6260 о переключателях командной строки .

Ряд дополнительных команд, которые можно запускать при старте STALKER'а называются Переключателями Командной Строки. Эти 'переключатели' - это команды посланные главному исполняемому файлу XR_3DA.exe, говорящие движку выполнить определённые действия при запуске игры. Для использования переключателей командной строки, кликните правой кнопкой мыши на ярлыке STALKER'a и выберите 'Свойства'. Далее в поле 'Объект', через пробел от последнего символа, вставьте переключатель(и) которые вы хотите использовать. Например:

Переключатели -nointro, -noprefetch и -noshadows добавлены для отключения вводных заставок с логотипами, предварительной загрузки информации (ускоряет запуск и загрузку сохранений) и отключения всех не солнечных теней в игре. По другому не возможно использовать предигровые настройки. Можно вернуть настройки в любой момент просто удалив переключатель с ненужной настройкой из ярлыка или создав другой с требуемыми переключателями и использовать его когда ты захочешь запустить игру с другими настройками. дополнение от --HikeR 14:17, 31 мая 2007 (MSD)][
Для различных ситуаций можно создать несколько копий ярлыков для запуска игры с различными параметрами. Например можно использовать ключ -nointro для всех вариантов, комбинацию -noprefetch -noshadows -nosound -r4xx для всяких экспериментов (отключен звук, префетч, тени, форсированно используется DX8, максимально быстрая загрузка), и просто ярлык для обычной игры

Полный список Переключателей Командной Строки для STALKER'а приведённый ниже сопровождается также кратким пояснение для каждого, где это было возможно. Я протестировал каждый и все переключатели, но некоторые переключатели не имеют видимого эффекта или просто подвешивают игру во время загрузки. Инструкции по предполагаемому использованию наиболее полезных переключателей приведены на протяжении этого гида:

Общие правки игровых файлов Сталкер

kak_izmenit_perenosimyy_ves_v_stalker.jpg


Меняем блок под той шапкой, на каком уровне сложности играем. Например, уровень сложности у нас "Сталкер". Редактируем следующий блок:

Редактируем следующим образом: после знака равно каждого параметра ставим 0.0 - и наш ГГ бессмертен. ВНИМАНИЕ: СПОЙЛЕР!

Мне кажется многие задавались вопросом "Как же создать худ маски"? Немного пораздумав, я создал функцию, которая крепит текстуру к определенному костюму.

Первым делом в директории gamedata\scripts создайте файл с названием xr_mask.script

Открываем его пишем:

function hud_gas()
local slot_stalker = db.actor:item_in_slot(6)
local object_1 = db.actor:object("stalker_outfit")
local slot_killer = db.actor:item_in_slot(6)
local object_2 = db.actor:object("killer_outfit")
if slot_stalker and slot_stalker:section() == "stalker_outfit" and object_1

= nil or
slot_killer and slot_killer:section() == "killer_outfit" and object_2

= nil then
local hud = get_hud()
local custom_static = hud:GetCustomStatic("hud_gas")
if custom_static == nil then
hud:AddCustomStatic("hud_gas", true)
end
else
local hud = get_hud()
local custom_static = hud:GetCustomStatic("hud_gas")
if custom_static

= nil then
hud:RemoveCustomStatic("hud_gas", false)
end
end
end

function hud_gas() -- функция
local slot_stalker = db.actor:item_in_slot(6) -- переменная костюма
local object_1 = db.actor:object("stalker_outfit") -- переменная объекта
local slot_killer = db.actor:item_in_slot(6) -- переменная костюма
local object_2 = db.actor:object("killer_outfit") -- переменная объекта
if slot_stalker and slot_stalker:section() == "stalker_outfit" and object_1

= nil or
slot_killer and slot_killer:section() == "killer_outfit" and object_2

= nil then -- проверяем надет ли костюм сталкера\наемника
local hud = get_hud() -- худ
local custom_static = hud:GetCustomStatic("hud_gas")
if custom_static == nil then -- если худа нет, выдаем, если одет костюм
hud:AddCustomStatic("hud_gas", true)
end
else
local hud = get_hud()
local custom_static = hud:GetCustomStatic("hud_gas")
if custom_static

= nil then -- если худ есть, убираем при смене костюма
hud:RemoveCustomStatic("hud_gas", false)
end
end
end

Теперь зайдем в bind_stalker.script, который находится в gamedata\scripts, найдем функцию: function actor_binder:update(delta) и после пишем: xr_mask.hud_gas() в итоге:

function actor_binder:update(delta)
xr_mask.hud_gas()
object_binder.update(self, delta)
local time = time_global()
game_stats.update (delta, self.object)

Итак, заходим в директорию gamedata\config\ui, находим файл с названием ui_custom_msgs, открываем его и в самом конце перед строкой: </header> пишем:

<hud_gas x="0" y="0" width="1024" height="768" stretch="1">
<texture>hud\hud_gas</texture> -- текстура маски. Посмотрите внимательно в скрипте мы указывали '''hud_gas'''
</hud_gas>

Теперь заходим в gamedata\textures\ui, находим файл с названием ui_mainmenu.dds. Копируем его, заходим в gamedata\textures\hud вставляем его и переминуем в hud_gas.dds Открываем программой Adobe Photoshop и рисуем подходящую для вас маску.

ВНИМАНИЕ: СПОЙЛЕР!

Конфиги, отвечающие за эту особенность, в файле gamedata\configs\misc\effectors.ltx:
[zoom_inertion_effector]
camera_move_epsilon = 0.03 ;разница между двумя векторами направления камера, когда считается что камера двинулась
disp_min = 0.01
speed_min = 0.00001
zoom_aim_disp_k = 1.0 ;коэффициенты соотношения полной дисперсии стрельбы
zoom_aim_speed_k = 0.0025 ;и покачивания прицела
delta_time = 3000 ;время через которое эффектор меняет направление движения (в милисекундах)

у меня лично стоит так:

[zoom_inertion_effector]
camera_move_epsilon = 0.03 ;разница между двумя векторами направления камера, когда считается что камера двинулась
disp_min = 0.02
speed_min = 0.0001
zoom_aim_disp_k = 1.18 ;коэффициенты соотношения полной дисперсии стрельбы
zoom_aim_speed_k = 0.0015 ;и покачивания прицела
delta_time = 1350 ;время через которое эффектор меняет направление движения (в милисекундах)

ВНИМАНИЕ: СПОЙЛЕР!

все настройки, связанные с ассортиментом торговцев в игре, находятся в файлах gamedata\configs\misc\trade_***.ltx
для всех остальных сталкеров - gamedata\configs\misc\trade_generic.ltx
Структура файла
Секция [trader_generic_buy]
Эта секция описывает какие товары торговец будет покупать.
Название предмета = минимальная цена покупки, максимальная цена покупки
Например:
wpn_vintorez = 0.5, 0.7Это значит что торговец купит оружие от 50% полной его стоимости до 70%, т.е. если Винторез стоит 1000, то торговец купит его в диапазоне от 500 до
700 рублей. Диапазон зависит от отношения торговца к Меченому - чем лучше, тем дороже купит

Секция [supplies_start]
Эта секция описывает какие товары у торговца будут вначале.
Название предмета = количество, вероятность появления
Например:
bandage = 5, 1Это значит что у торговеца всегда будут 5 бинтов, с 100 процентной вероятностью появления в магазине.
bandage = 5, 0.6 А тут уже вероятность появления 60%. Т.е. бинты не всегда будут.

Секция [supplies_after_***]
Тоже самое, что в секции [supplies_start], но после выполнения квестов торговца.

Секция [trader_start_sell]
Эта секция описывает за какую цену торговец будет продавать.
Название предмета = минимальная цена продажи, максимальная цена продажиНапример:
wpn_vintorez = 1, 2Это значит что торговец продаст оружие от 100% полной его стоимости до 200%, т.е. если Винторез стоит 1000, то торговец продаст его в диапазоне от
1000 до 2000 рублей. Диапазон зависит от отношения торговца к Меченому - чем лучше, тем дешевле продаст

Секция [trader_after_***_sell]
Тоже самое, что в секции [trader_start_sell], но после выполнения квестов торговца.

деньги торговцев правятся в character_desc_название локации.xml, например, в character_desc_escape.xml такая строка:
<money min="100000" max="100000" infinitive="1"/> (если infinitive="1" - бесконечные деньги)

ВНИМАНИЕ: СПОЙЛЕР!

Часть 1
Сложность: Легко
Как сделать простой диалог.
1. Открываем, например файл dialogs_escape.xml (gamedata/config/gameplay) и пишем в конец:

Это скелет диалога. В нём будут написаны все инфопоршни и actions.

<dialog - это название диалога, которое нужно будет написать НПС.

<phrase - номер фразы.

<text>test_dialog_0</text> - это текст фразы.

<next>?</next> - переход к фразе.

2. Теперь нужно написать тексты диалога. Заходим в файл "stable_dialogs_bar.xml" (gamedata/config/text/rus) и пишем в конце:

<string - это то, на что ссылается скелет диалога.

<text>Это тэстовый диалог</text> - собственно текст.

. ВНИМАНИЕ.
Все диалоги начинаются со слов Меченого.

3. Теперь нужно прописать этот диалог НПС. Например Бармену.
Открываем файл "character_desc_bar.xml" и находим секцию Бармена. Она идёт самой первой.
После всех
<actor_dialog>. </actor_dialog>
Прописываем свой:
<actor_dialog>test_dialog</actor_dialog>

Часть 2
Сложность:Средне

1. Открываем, например файл dialogs_escape.xml (gamedata/config/gameplay) и пишем в конец:

<next>2</next>
и
<next>3</next> это возможные ответы Меченого.

2. Теперь нужно написать тексты диалога. Заходим в файл "stable_dialogs_bar.xml" (gamedata/config/text/rus) и пишем в конце:

3.Чтобы этот диалог не появлялся, пишем инфопоршень. Например в файле info_l01escape.xml

4.Дописываем инфопоршень в скелет диалога:

<dont_has_info>test_pogovoril</dont_has_info> - если ГГ получил инфопоршень, диалог не показывать.

<give_info>test_pogovoril</give_info> - дать ГГ инфопоршень.

Получается, что когда ГГ скажет любую из 2 фраз, диалог больше не появится.

Часть 3
Сложность:Сложно

-Как сделать разные action в диалогах.

1.Создаём обычный диалог:

C такими текстами:

2.Создаём свой скрипт в папке gamedata/script например test.script и пишем в него 3 функции:

Код
function dat_dengi(first_speaker, second_speaker)
dialogs.relocate_money(second_speaker, 3000, "in")
end

Это функция отдачи денег ГГ. На месте 3000 любое число.
На месте dat_dengi любое название.
------------------------------------------------------------

Код
function dat_item(first_speaker, second_speaker)
dialogs.relocate_item_section(second_speaker, "wpn_pm", "in")
end

Это функция отдачи предмета ГГ. На месте wpn_pm любой предмет.
На месте dat_item любое название.
------------------------------------------------------------

Код
function spawn_item_or_monster_or_stalker()
alife():create("wpn_pm",vector():set(pos),lvid,gvid)
end

Это функция спавна чего либо. На месте wpn_pm любой предмет,монстр или сталкер.
На месте (pos),lvid,gvid) любые координаты.
На месте spawn_item_or_monster_or_stalker любое название.
------------------------------------------------------------
Так же функция может быть одна, но с несколькими действиями.
Например:

Код
function all(first_speaker, second_speaker)
dialogs.relocate_money(second_speaker, 3000, "in")
dialogs.relocate_item_section(second_speaker, "wpn_pm", "in")
alife():create("wpn_pm",vector():set(pos),lvid,gvid)
end

Значит что одновременно ГГ дадут 3000 рублей, ПМ и по заданным координатам заспавнится ПМ.
------------------------------------------------------------

3.Впишем функции в диалог:

Это значит что после после фразы
<text>test_dialog_2</text>
ГГ дадут 3000руб.

Это значит что после после фразы
<text>test_dialog_3</text>
ГГ дадут ПМ.

Это значит что после после фразы
<text>test_dialog_3</text>
Заспавнится ПМ.

Часть 4
Сложность: Очень сложно

-Как сделать разные precondition в диалогах.
Прекондишоны - это проверки на появление диалога

1.Создаём обычный диалог:

C такими текстами:

Код
<string
<text>Тест прекондишонов.</text>
</string>
<string
<text>Какой?</text>
</string>
<string
<text>Эта фраза появляется если у ГГ есть . рублей.</text>
</string>
<string
<text>Эта фраза появляется если у ГГ есть . предмет.</text>
</string>

2.Создаём свой скрипт в папке gamedata/script например test.script и пишем в него 3

Код
function has_money_. ()
local money = math.floor(200 *

xr_statistic_freeplay.get_freeplay_statistic():get_found_pda_discount())
return db.actor:money()>=money
end

Это функция проверки количества денег ГГ. На месте 200 любое число.
На месте has_money_. любое название.
------------------------------------------------------------

Код
function has_item(task, objective)
if db.actor

= nil then
return db.actor:object("wpn_pm")

= nil
end
return false
end

Это функция проверки наличия какого либо предмета у ГГ. На месте wpn_pm любой предмет.
На месте has_item любое название.
------------------------------------------------------------

3.Впишем функции в диалог:

Это значит что фраза <text>test_dialog_2</text> появится если у ГГ есть 200рублей
Это значит что фраза <text>test_dialog_3</text> появится если у ГГ есть ПМ.

ВНИМАНИЕ: СПОЙЛЕР!

[af_medusa]:af_base ---Название артефакта
GroupControlSection = spawn_group ---хз
$spawn = "artifacts\moscito medusa" ---спаун

$prefetch = 64 -=-
cform = skeleton =-=Эти три строки не трогать.
class = ARTEFACT -=-

visual = physics\anomaly\artefact_blackdrip.ogf ----визуал артефакта
description = enc_zone_artifact_af-medusa ---описание
inv_name = af-medusa ---имя
inv_name_short = ---имя но короткое,в игре для артов не испоьлзуется
inv_weight = 0.5 ---вес

inv_grid_x = 9 -=-Координаты по оси Х
inv_grid_y = 4 -=-Координаты по оси У

jump_height = .5 ---высота прыжка

;подсветка арта
lights_enabled = true
trail_light_color = 2.5, 2.4, 0
trail_light_range = 1.0

;скорости увеличения (уменьшения) --- думаю обьяснять не нужно
health_restore_speed = 0.0
radiation_restore_speed = 0.0007
satiety_restore_speed = 0.0
power_restore_speed = 0.0
bleeding_restore_speed = 0.0
hit_absorbation_sect = af_medusa_absorbation

[af_medusa_absorbation] - а вот здесь загвоздочка.Допустим вы поставили burn_immunity = 2.0. а в игре заметили что она уменьшает на 100 защиту от ожогов.Ставить нужно наоборот,то есть.хочешь чтобы медуза давала 30 пулестойкости из 100-30=70.Ставишь на fire_wound_immunity = 0.70
burn_immunity = 1.0
strike_immunity = 0.97
shock_immunity = 1.0
wound_immunity = 1.0
radiation_immunity = 1.0
telepatic_immunity = 1.0
chemical_burn_immunity = 1.0
explosion_immunity = 1.0
fire_wound_immunity = 1.0

ВНИМАНИЕ: СПОЙЛЕР!

Рассмотрим костюм долга

;---------------------------------------------------------------------------------------------
; ОБЫЧНЫЙ КОСТЮМ ДОЛГА
;---------------------------------------------------------------------------------------------
[dolg_outfit]:outfit_base ---Название костюма в документах(в скриптах и ltx файлах)
GroupControlSection = spawn_group ---Этого я не знаю,и лучше не трогать,обычно вылет
discovery_dependency = ---Тоже какая то функция
$spawn = "outfit\dolg_outfit" ---Спаун,то есть,костюм лежащий на земле
;$prefetch = 32 ---ХЗ
class = E_STLK ---класс
cform = skeleton ---НЕ ТРОГАТЬ!
visual = equipments\dolg_suit ---Визуал костюма лежащий на земле
actor_visual = actors\hero\stalker_dolg.ogf ---Визуал НПС,В нашем случае ГГ

ef_equipment_type = 3 ---Опять же ХЗ

inv_name = dolg_outfit_name ---Название костюма
inv_name_short = dolg_outfit_name ---Название костюма(короткое)
description = dolg_outfit_description ---Описание(можно и не прописывать их в string_table,можно писать через кавычки.Ставьте "" и пишите описание костюма.Например: "Костюм долга,хорошая защита." Без кавычек пробелы не буду засчитыватся)
inv_weight = 7.0 ---ВЕС
inv_grid_width = 2 -=Эти четыре строки отвечают за иконку в инвентаре,не одетого костюма
inv_grid_height = 3 -=
inv_grid_x = 12 -=
inv_grid_y = 16 -=
full_icon_name = npc_icon_dolg_outfit ---Название иконки

cost = 15000 ---Цена
slot = 6 ---Слот для костюма.НЕ ТРОГАТЬ!
full_scale_icon = 8,11 ---иконка сталкера в костюме в полный рост
nightvision_sect = effector_nightvision_good ---Прибор ночного видения

immunities_sect = sect_dolg_outfit_immunities ---Название иммунитета,для нового костюма введите свой вместо dolg_outfit

ЭТО ЗАЩИТА КОТОРУЮ ДАЕТ КОСТЮМ

burn_protection = 0.1 = Ожог
strike_protection = 0.1 = Удар
shock_protection = 0.1 = Электрошок
wound_protection = 0.1 = Разрыв
radiation_protection = 0.1 = Радиация
telepatic_protection = 0.1 = Телепатия
chemical_burn_protection = 0.1 = Хим.ожог
explosion_protection = 0.1 = Взрыв
fire_wound_protection = 0.1 = Пулестойкость

additional_inventory_weight = 13 ---Дополнительный переносимый вес
additional_inventory_weight2 = 13 ---Дополнительный переносимый вес второй,но ставьте как на первом

bones_koeff_protection = kombez_antigas_damage ---ХЗ,но если делать костюм со средней защитой ставьте такой.Научу ниже

[sect_dolg_outfit_immunities]
burn_immunity = 0.03 ---коэффициенты иммунитета самого костюма(чем меньше значение,тем медленнее костюм портиться.Если на все поставить 0.0 костюм не будет портиться никогда)
strike_immunity = 0.01
shock_immunity = 0.03
wound_immunity = 0.015
radiation_immunity = 0.00
telepatic_immunity = 0.00
chemical_burn_immunity = 0.03
explosion_immunity = 0.03
fire_wound_immunity = 0.01

Обещал рассказать что такое Бонес коэфф протекшн
bones_koeff_protection = kombez_antigas_damage
Оно отвечает за то,как сильно будет защищать костюм.Если например поставить вместо: kombez_antigas_damage ,вот это: kurtka_mask_damage,то сколько бы ты не ставил защиту,она будет слабой.А если поставить exo_helmet_damage то будет высокая защита.Поставите очень много защиты,вы будете бессмертны,и костюм будет защищать вас очень хорошо(то есть,бывает например,оденешь экзоскелет,и иногда пули попадают и наносят совсем крохотный урон.Вот,если поставить экзо хелмет то такие маленьки уроны будут чаще,а если поставить куртка маск то такие случаи будут редкими.)

Все,можете приступать к созданию ваших костюмов,при это зная,в каком документе лежат новые костюмы.

Как установить OGSR MOD

Как установить OGSR MOD — Инструкция

После релиза OGSR MOD, многие игроки столкнулись с проблемой по установке модификации. В представленной инструкции будет описан, весь процесс установки и первичных настроек Сталкер OGSR MOD. В отличие от предыдущей версии, движок игры получил кардинальные изменения, что наложило свои особенности установки и системных требованиях для ПК.

Перед установкой OGSR MOD убедитесь:

  1. Ваша операционная система Windows, имеет x64-битную разрядность.
  2. Мод OGSR работает только на Win 7 x64-bit и выше. (Win XP не поддерживается)
  3. Оригинальная версия игры Сталкер, не требуется. Она уже включена.

Как установить мод OGSR MOD

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

Как установить OGSR MOD

2. Переходим в папку со скачанным модом и кликаем правой кнопкой мыши по архиву с названием OGSRmod.7z.001. В выпадающем меню наводим мышку на пункт 7-Zip, далее выбираем пункт распаковать в OGSR MOD

Как установить OGSR MOD

3. Ждем когда все архивы распакуются.

Как установить OGSR MOD

4. В нашей папке появиться папка OGSRmod и pdf файл "Запуск мода", советуем с ним ознакомиться.

Как установить OGSR MOD

5. Заходим в папку OGSRmod и запускаем игру с помощью файла OGSE_Configurator.exe

Как установить OGSR MOD

6. Далее откроется окно конфигуратора, где вы сможете сделать необходимые настройки или отключить ненужные опции. Когда все настройки сделаны нажимаем, на кнопку "Запустить (x64)"

Читайте также: