Чем открыть файл script сталкер

Обновлено: 07.07.2024

Редактор продолжает работу над этой статьёй, но временно отошёл попить чаю. Пожалуйста, не спешите с собственными правками.

Этот раздел или статью необходимо дополнить. Добавьте больше информации.

Это статья содержит список расширений, используемых движком X-Ray или находящихся в ресурсах игр и SDK.

Содержание

Конфигурационные и скриптовые файлы

  • user.ltx и user_%имя пользователя%.ltx — файл конфигурации движка. Содержит перечень параметров и их значений. Подробности в статьях консольные команды в сборках и консольные команды финальных версий.
  • level.ltx - файл через который задаются скрипты уровня
  • system.ltx - главный конфигурационный файл X-Ray, до какого-то момента был единственным конфигурационным файлом, который загружался непосредственно движком, большая часть остальных конфигурационных файлов загружается через него с помощью механизма включения

Текстуры и видео

Текстуры

Первая строка — интервал между переключениями кадров (меньше — медленнее). Остальные строки — имена изображений без расширения.

Видео

Содержимое: ролик логотипа-названия компании, проигрываемый при включении игры.

.flarestext — файл градиента. Присутствует в сборке 756, возможно, как часть SDK. Открывается в любом текстовом редакторе.

Шейдеры

Модели и анимации

DM (Detail Model) — эффект динамического погодного окружения (например, дождь или молнии);
omf (XRAY-OpenMotionsFormat) — библиотека анимаций, папка моделей, корень или подпапка;

  • stalker_animation.omf — библиотека анимаций моделей сталкеров

Архивы и пакеты ресурсов

  • gamemtl.xr — игровые материалы. Редактируется в ShaderEditor.
  • lanims.xr — световые анимации. Редактируется встроенным в LevelEditor редактором LightAnimEditor.
  • particles.xr — партиклы или системы частиц. Редактируются в ParticleEditor.
  • senvironment.xr — звуковое окружение. Редактируется в ShaderEditor.
  • shaders.xr — БД шейдеров, используемые движком игры. Редактируется в ShaderEditor.
  • shaders_xrlc.xr — БД дополнительных настроек к шейдерам, используемые компилятором уровней (xrLC). Редактируется в ShaderEditor.

XR2 — резервная или тестовая копия xr, пример: particles.xr2, senvironment.xr2;
ZIP (от zip) — архивный файл, создавался только в сборке 2945 для отправки отчёта об ошибке.

Демо-ролики

%lvl_folder_lame%/%game_type (single)%,%srv_root (localhost)%,%.anm demo-file name%,%demo length (sec.)%

Файлы игровых уровней

Локация состоит из большого количества специализированных файлов. Практически все они имеют префикс level. Файлы, создаваемые LevelEditor при предварительной компиляции локации имеют префикс build. Все файлы, относящиеся к уровню, расположены в папке levels ресурсов, в собственной подпапке. Имя подпапки это техническое имя локации.

level.cform — геометрия для просчета столкновений (коллизий). Просчитывается компилятором уровней.

level.details — детальные объекты (трава, окурки, строительный мусор) на уровне. Создается через LevelEditor SDK при компиляции.

level.env_mod — локальные модификаторы окружения (environment), задают области на локации с освещением, отличным от основного погодного цикла.
Разбирается скриптом level.env_mod compiler/decompiler.

level.game — координаты спавна игрока при мультиплеерной игре. Устаревший и лишний файл, так как эти координаты содержатся и в spawn. Есть вариации:

level.gct — кросс-таблица соответствия графа локации и ИИ-сетки. Создаётся при компиляции карты в ЛЕ СДК (xrAI).

level.geom — видимая геометрия локации. Просчитывается xrLC.

level.graph — навигационный граф ИИ локации или игры. Создаётся при компиляции карты в ЛЕ СДК через xrAI.

level.ps_static — статические партиклы. Создаётся через LevelEditor (на самом деле — xrLC) SDK при компиляции.
Разбирается скриптом level.ps_static compiler/decompiler.

level.snd_static — статические источники звука. Создаётся через LevelEditor (на самом деле — xrLC) SDK при компиляции.
Разбирается скриптом level.snd_static compiler/decompiler.

level.sound_static — то же но более раннее.

level.snd_env — зоны звукового окружения. Создаётся через LevelEditor (на самом деле — xrLC) SDK при компиляции.

level.sound_environment — то же, но более раннее.

level.som — Sound Occlusion Model — файл настроек звукового окружения EAX (см. статью Sound environment). Используется LevelEditor SDK при компиляции.

level.spawn — отвечают за так называемый спаун или спавн (размещение объектов на локации). Может быть спавном отдельного уровня (файл level.spawn в папке локации) или вообще игры (файл с любым именем в папке spawns). Создаётся ЛЕ СДК при предварительной компиляции карты. Есть вариации:

spawn — резервные копии.

level.wallmarks — декали.

efd (evaluation function data) — таблица эвристических параметров AI, содержит константы для тонкой настройки A-Life. Используются как входные параметры в скриптах. Эти файлы не открываются, они создавались программой Дмитрия Ясенева на основе данных, вводимых геймдизайнерами.

Специализированные файлы XRay ActorEditor SDK

skl — скелетная анимация объекта в промежуточном формате SDK. Используются Actor Editor для компиляции в файл модели OGF.

skls — то же, но в контейнере.

dlt — плагин 3ds Max, реализующий поддержку процедурных текстур или материалов (в нашем случае STALKER Material).

dlu — utility-плагин 3ds Max.

Специализированные файлы XRay LevelEditor SDK

level — проект LevelEditor.

lws — формат LightWave 3D. Открывается с помощью NewTek LightWave 3D.

mot (LightWave Motion File) — 3D-анимация LightWave.

p — плагин для LightWave 3D.

test — Резервная копия или тестовый вариант, пример: game.graph.test.

Исполняемые файлы

.drv — драйвер защиты StarForce. Используется только в релизных сборках;

.cmd — командный файл, аналогичен .bat. Редактируется любым текстовым редактором, запускается двойным щелчком мыши (по умолчанию).

Отладочная информация

.pdb — Файл с отладочной информацией для dll и exe, создается в Visual C++ при компиляции. Присутствует в некоторых сборках, в том числе бета-патчах для релизных сборок;

.manifest — манифест сборки, то есть описание конкретного PE-exe на XML;

.cg — журнал ошибок Borland CodeGuard, использовался в ранних сборках SDK;

Версионирование

.desc - лог данных с записями прямого доступа к определенному файлу разработчиком (например, wpn_ak74.object.desc). Имеет структуру журнала с записями, на каком компьютере (COMPUTER), каким пользователем (User) и в какое время файл был открыт и закрыт. Пример:

[history] 07/24/16-19:07:16:1-LOCK = "Computer: 'VECTOR' User: 'Vector'" 07/24/16-19:08:02:0-UNLOCK = "Computer: 'VECTOR' User: 'Vector'" [locked] name =

[history] - сам журнал 07/24/16-19:07:16:1-LOCK - дата открытия файла (мм/дд/гг-чч:мм:сс) и его блокировки для редактирования другими пользователя. 07/24/16-19:08:02:0-UNLOCK - дата закрытия файла (мм/дд/гг-чч:мм:сс) и его разблокировки, позволяющим другим пользователям вновь редактировать файл. [locked] - подтверждение, что файл заблокирован другим для редактирования. Если после = пусто, то файл разблокирован, в обратном случае туда записывается имя компьютера и пользователя, того, кто его сейчас открыл.

%formatname%.%username%_mm-dd-yy_hh-mm-ss - вид резервной копии локации или объекта после 19 июля 2005. Сам алгоритм работы не был изменен (пример, new_garbage_

.bak — Резервная копия файла.

Справочная информация

.scenetext — Файл неизвестного предназначения. Присутствует в сборке 756, возможно, как часть SDK. Имеет одну закоментированную строку. Открывается в любом текстовом редакторе.

.pdf — файл, содержащий в себе руководство пользователя по игре, которое входит в коллекционные издания в "живом" виде. Открывается любым PDF-редактором, например, Adobe Reader.

.doc — документ Microsoft Word. Использовался как инструкции к ранним SDK (например, SDK вместе со сборкой 1850).

.xls — документ Microsoft Excel. Присутствует в SDK сборки 1098. По сути, сторонняя документация (пример: УКРАИНСКИЕ МЕД-БИОЛ.ТЕХ.xls).

Прочие файлы, связанные с игрой

Прочее

Расширения из SDK сборки 1098

.mak (Makefile) — инструкция для компиляции (исходный код). Открывается программой Microsoft Visual C++.

.mdp (Visual C++ 4 Workspace File) — файл конфигурации рабочего пространства Visual C++ 4 (файл настроек). Открывается программой Microsoft Visual Studio.

.unix-generic

.example — возможно, какая-то резервная копия.

.rc — исходный код res-файла.

.cpp (C++ Source Code File) — исходный код C++. Скрипт или исходный код. Открывается программами Borland C++ Builder и Microsoft Visual C++.

.obj — объектный модуль (сборка машинного кода перед компоновкой).

.ppm — растровое изображение.

.lib — статически линкуемая библиотека (по сути, скомпилированный cpp-файл).

.res — ресурсный файл приложения, может содержать практические любую информацию. Как правило, это формы, меню, иконки и изображения.

.rc2 — возможно, то же самое, что и rc.

.dsp (Developer Studio Project) — файл проекта Visual C++. Какой-то скрипт или исходный код. Открывается программой Microsoft Visual C++.

.dsw (Visual C++ 6 Workspace File) — файл решения от старых версий Microsoft Visual Studio.

.htm — HTM-документ. Содержит инструкции к программам.

.geo — 3D-изображение;

.3ds — файл модели 3D Studio Max. Открывается Autodesk 3ds Max.

.plg (Sibelius Plug-in) — какой-то плагин. Открывается программой Avid Sibelius.

.ent — описание документа. Открывается любым текстовым редактором;

.hst — какой-то журнал событий. Частично открывается любым текстовым редактором;

.wjr (ReGet Deluxe Data File) — файл данных ReGet Deluxe, имеет неизвестное предназначение; имеется только в SDK сборки 1098.

.pth (4D Path Document) — данные для подключения к базе данных 4D. Открывается программой 4D Client. Как-то связано с ATI.

.sha — файл контрольной суммы файла, подсчитанный по алгоритму SHA.

.psd (Adobe Photoshop Document) — документ Adobe Photoshop. Растровое изображение (присутствует только в SDK сборки 1098).

.max (3D Studio Max Model File) — файл модели 3D Studio Max. Открывается Autodesk 3ds Max.

lv2 — резервная копия lv2.

.clw (Visual C++ ClassWizard File) — файл данных ClassWizard (Visual C++). Какой-то скрипт или исходный код. Открывается Microsoft Visual Studio 2010.

.hpp (C++ Header File) — заголовок исходного кода C++. Какой-то скрипт или исходный код. Открывается Borland C++ Builder или MSVC.

Stalker Script Editor
Версия: 1.5
Автор: Danger_Ous (Stalk15)
Тестеры:
Главный тестер: FaLcon
Остальные: Tris, GreadFiasco
Краткое описание:
Программа для редактирования .script файлов игры Сталкер. В программу добавлено множество возможностей, которые ускорят и упростят написание скриптов.

Подробное описание:
v1.0
Подсказка функций и ключевых слов, вводимых пользователем. При выделении предлагаемой функции, показывается ее описание. К подсказываемым словам относятся:
- ключевые слова и функции LUA, используемые в сталкере
- функции, свойства, методы самой игры.
- Так же, пользователю предлагаются функции из сторонних скриптов(например, при написании *имя_скрипта*.[тут будут предлагаться функции из этого скрипта])
Подсветка синтаксиса. Все цвета можно настроить под себя.
Возможность поиска и замены текста.
Комментирование/раскомментирование выделенного текста по нажатию одной кнопки.
Возможность перетаскивания мышью выделенных скриптов в программу.
Добавлены инструменты:
1) Помощь по функциям. Здесь можно найти из списка всех функций нужную и почитать ее описание. На данный момент в программе присутствует лишь

130 функций, имеющих описание. Мне одному слишком муторно добавлять описание функций, которых в игре больше 1000. Поэтому добавлен редактор описаний функций. Пользователь может сам добавить описание к любой функции.
2) script Syntax Checker от Gun12. Программа проверяет синтаксис скриптов. Можно вызвать эту программу из редактора и проверить свой скрипт на правильность.
3) Script Dialog Creater. Данный инструмент позволяет быстро создать скриптовый диалог. Нужно лишь ввести количество фраз и имя диалога.

v1.5
Добавлена возможность маркировать строку.
Добавлена возможность перейти к строке или символу по номеру.
Исправлены ошибки версии 1.0.

Если вы нашли ошибку или есть какое-нибудь пожелание/замечания, то пишите: ICQ - 618517931.
Ссылка на скачивание:
Яндекс.Народ
Скриншоты:

Начнём уроки.
1)Создадим свой my.scripts и поместим его в папку scrips . Откроем с помощью НотПада и настроим подсветку.
2) Внутри файла-скрипта должны содержаться только КОД скрипта и ваши ЗАКОМЕНТИРОВАННЫе пометки. Если будет лишний текст, т.е какие-то знаки и слова, то будет вылет на этот скрипт. Так как код игры полностью собирает весь скрипт в стек и выбирает только то, что вы задали, но если будет мусор, то игра не воспримет код.
3)Архитектур. Для создания функций нужны лишь знания синтаксиса и игровые методы и глобальные функции(которые записаны в движке) можете почитать lua_help.scrip , но я советую посетить тему на АМК . Там собраны все методы, классы и полное их описание.
4) Функция. Это то, что будет делать игра.

Любая функция начинается со слов

function my_function()
.
end

И заканчивается тегом end . Этот тег означает конец функции, сравнения, он закрывающий и обязателен. Я советую при составлении функций , чтобы не забыть чего-нибудь, писать скелет извне, т.е сначала функция, потом закрывающий тег, и по нарастающей во внутрь.
() -Обязательный элемент. Позже расскажу как передавать переменные через этот тег.Между окончание функции и этим тегом ПРОБЕЛА НЕТ.

Обращаю внимание, что все функции вызываются из других скриптов. Допустим нам из одного скрипта, нужно вызвать(запустить функцию в другом) для этого мы пишем
название скрипта . название функции в скрипте (парметр если есть)
my.my_function()

Глобальные можно объявлять вначале скрипта и она будет сохранятся в коде, в памяти процесса (если я правильно понял)
Переменная объявляется только перед функцией и логическими выражениями, где используется переменная и её использует только та функция, перед которой она объявляется (На пальцах перед строкой с вашей функцией). Т.е елси функция простая без логических решений(if, elseif, for и.т.д) То ставим перед функцией, если же есть переменная, которая находится в теле такого логического решения, то она ставится строго перед этим логическим решением!

local helth = db.actor.helth
function my_function()
.
end

Чтобы сосчитать значение переменной из другого скрипта достаточно в другом скрипте сделать так:
text="Я иду гулять по бродвею"
Теперь в нашем скрипте вызываем этот параметр
local pisanina = название скрипта . text
() - При таком обращении этот тег НЕ СТАВИТСЯ !

if . then
.
end
Перевожу Если что-то то
конец тега .
Пример

if db.actor.psy==0.5 then
db.actor:kill(db.actor)
end
Если пси-здоровье ГГ - половина, то мы его убиваем.
Полная функция:

function my_function()
if db.actor.psy==0.5 then
db.actor:kill(db.actor)
end
end

Переделал с переменными(Для чего нужны объявления?):

[/color]
local acter = db.actor
function my_function()
local psy_zdorovie = acter.psy
if psy_zdorovie==0.5 then
acter:kill(acter)
end
end
Что я сделал?
Обозначил кусок db.actor локальной acter .
А acter.psy (db.actor)+.psy равносильно db.actor.psy

Вы поняли? Я поразбивал куски на локальные и код получился короче, функция имеет куда меньше знаков и удобнее к пониманию.
ВНИМАНИЕ. Переменные должны объявлятся так, чтобы самое то, к чему обращаются было известно. Допустим.

local psy_zdorovie = acter .psy
Нам нужна эта acter перменная, и мы ДОЛЖНЫ ОБЪЯВИТЬ её перед переменной
local psy_zdorovie = acter .psy .
Мы ее и объявили local acter = db.actor .
Думаю смысл понятен?

if . then
1 действие.
else
2 действие.
end

Перевод: Если подходит условие то
1 действие
иначе (т.е условие не выполняется)
2 действие
конец тега
Пример:

function my_function()
if db.actor.psy==0.5 then
db.actor:kill(db.actor)
else
db.actor.give_info_portion("info")
end
end

Если пси-здоровье актора равно половине, то мы его убиваем, если же значение другое(любое) , то даем ему инфопоршень.

Допустим нам нужно проверить несколько условий:
Чтобы они все выполнялись!

if (db.actor) and (db.actor.helth==1) and (db.actor.psy ==0.5) then
действие
end
Функция сработает если есть актор и здоровье актора полное и псиздоровье половина .

Тег and - означает И . Если один из элементов не выполняется, то функция не срабатывает. Кстати - это ленивый метод, как писал Kamikaze , если не выполняется первый элемент, то другие - уже не просчитывааются. Т.е. не загнружается процесс.

Если подходит хоть один элемент.
if (db.actor) or (db.actor.helth==1) or (db.actor.psy ==0.5) then
действие
end

Тег or обозначает ИЛИ . Или один, или другой. Функция сработает при условии соответствия хоть одного элемента. Так же ленивый метод. Проверяет до получения утвердительного решения, потом проверка не идет.

Данный метод заменяет перебор через таблицу. Отличается простотой и потерей производительности.

if . then
самое основное действие
elseif . then
действие 1
elseif . then
действие 2
elseif . then
действие 3
elseif . then
действие 4
elseif . then
действие 5
end
Здесь представлен перебор elseif иначе если , т.е не подходит первый вариант, мы проверяем второй и так по цепочке , до первого подходящего(где выполняется заданное условие), если же ни одно не подойдет, то ничего не произойдет. Если бы мы просто в йункции написали кучу

function perebor()
if . then
действие
end
if . then
действие
end
if . then
действие
end
if . then
действие
end
if . then
действие
end
if . then
действие
end
end

Тон ничего хорошего не вышло бы. Так как проверялись бы все функции. А в первом варианте до первого попавшегося.

Пременная нил указывает, что объекта , условия, да чего угодно НЕТ, его не существует.
ВСЕГДА проверяйте некоторые объекты на nil
Во первых это актор .
Можно написать

Но правильнее и эстетичнее, сразу писать так.

if (db.actor) then
.
end

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

При обращении к функция из сторонних скриптов(других скрипт-файлов) я советую проверять на наличие этих скриптов:

if имя скрипта then
.
end

if my then
.
end

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

math.random (1,100)
Данная функция рандомно выберет число от 1 до 100.
Сначала ставится наименьшее, потом наибольшее.
Если ставить десятичные , допустим (0.0005, 1), то перебуеруться ВСЕ значения, т.е числа с несколькими знаками, ТАК ДЕЛАТЬ НЕ НУЖНО. вы перегрузите некоторые элементы кода.
Использование

if math.random(0,1) < 1 then
действие
end
Если выбранное число меньше 1, то срабатывает функция.

if math.random(0,1) < 1 then
действие
else
.
end
Добвавляется другое действие.
Советую брать целые числа от 1 до 10 для создания процентного срабатывания, но лучше 0 и 1.


for i =1, 5000 do
действие
end

Это цикл, который прокрутнет ваше действие 5000 раз. Переменная i любая буква, число 5000 обозначает количество циклов(сколько раз пройдет ваше действие).

Допустим мы сделали такую функцию

-- удаляем объект из игры(Взято из АМК )

function remove( remove_item )
if remove_item

=nil then
alife():release(alife():object(remove_item:id()), true)
return true
end
return false
end
remove_item - это наш параметр, в данном случае это секция объекта, которую нужно удалить.
(немного по секция , если это уникальный объект, то это то,ч то в его конфиге, если нет, то нужно искать другим методом)
Нам нужно удалить уникального НПС vasek
Если функция находится в скрипте, где мы хотим удалить объект, то пишем
remove ( vasek )
Если в другом скрипте, то
имя скрипта .remove( vasek )
Вот такой пример передачи параметра, передавать можно что угодно и как угодно. Было бы воображение.

Допустим, идет проверка и если она оканчивается удачно, то функция должна вернуть одну переменную, если нет, то другую.

function my()
if proverka () == true then
.
end
end

function proverka ()
if db.actor then
return true
else
return false
end

Т.е мы хотим проверить наличие актора(можно что угодно). Создаем функцию proverka , она работает так, если актор есть - возвращает( return ) одну переменную, в данном случае true (Может быть любая другая) , если проверка не проходит, то возвращается false , а нашей первой my() стоит условие на то, что проверка вернет true
if proverka () == true then
Вот так, если вернет, то сработает первая функция.

Функции вызваются из других скриптов, нужно лишь найти место. Если она вызывается постоянно. То нужно пихать в колбэк на апдет в bind_stalker.script

function actor_binder:update(delta)
object_binder.update(self, delta)

if string.find(command_line(), "-designer") then
return
end

if self.already_jumped==false and jump_level.need_jump==true and (device().frame > self.spawn_frame+2000) then
jump_level.try_to_jump()
self.already_jumped = true
return
end

-- Вызов апдейта переноса игрока проводником
if travel_func

-- DEBUG slowdown
--slowdown.update()
local time = time_global()
game_stats.update (delta, self.object)
-- апдейт погоды
self.weather_manager:update()

-- Обновление отключения ввода с клавиатуры.
if self.st.disable_input_time

= nil and
game.get_game_time():diffSec(self.st.disable_input_time) >= self.st.disable_input_idle
then
level.enable_input()
self.st.disable_input_time = nil
end

-- Апдейт прятание оружия игрока во время диалога
if self.object:is_talking() then
if self.weapon_hide_in_dialog == false then
self.object:hide_weapon()
printf("hiding weapon. ")
self.weapon_hide_in_dialog = true
end
else
if self.weapon_hide_in_dialog == true then
printf("restoring weapon. ")
self.object:restore_weapon()
self.weapon_hide_in_dialog = false
end
end
-- Апдейт прятание оружия игрока в зоне sr_no_weapon
if check_for_weapon_hide_by_zones() == true then
if self.weapon_hide == false then
printf("hiding weapon. ")
self.object:hide_weapon()
self.weapon_hide = true
end
else
if self.weapon_hide == true then
printf("restoring weapon. ")
self.object:restore_weapon()
self.weapon_hide = false
end
end

if self.bCheckStart then
printf("SET DEFAULT INFOS")
if not has_alife_info("global_dialogs") then
self.object:give_info_portion("global_dialogs")
end
if not has_alife_info("level_changer_icons") then
self.object:give_info_portion("level_changer_icons")
end
self.bCheckStart = false

--if self.actor_weapon_on_start == true then
--db.actor:activate_slot(3)
--self.actor_weapon_on_start = false
--end
end
--device().precache_frame== 0 and
if not self.loaded_slot_applied then
self.object:activate_slot(self.loaded_active_slot)
self.loaded_slot_applied = true
end
xr_s.on_actor_update(delta)

= true) then
self.surge_manager:initialize()
self.f_surge_manager_loaded = true
end
if(self.surge_manager.levels_respawn[level.name()]) then
self.surge_manager:respawn_artefacts_and_replace_anomaly_zone()
end
self.surge_manager:update()
end
-- Апдейт доступности для симуляции.
simulation_objects.get_sim_obj_registry():update_avaliability(alife():actor())

if not self.loaded then
get_console():execute("dump_infos")
self.loaded = true
end
treasure_manager.get_treasure_manager():update()

if not(primary_objects_filled) then
pda.fill_primary_objects()
primary_objects_filled = true
end
pda.fill_sleep_zones()
--СЮДА в САМЫЙ КОНЕЦ
end

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

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

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

затем, вызов функции в таком виде: <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'а приведённый ниже сопровождается также кратким пояснение для каждого, где это было возможно. Я протестировал каждый и все переключатели, но некоторые переключатели не имеют видимого эффекта или просто подвешивают игру во время загрузки. Инструкции по предполагаемому использованию наиболее полезных переключателей приведены на протяжении этого гида:

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