Учебник «S.T.A.L.K.E.R. — Создание модов» для игры Сталкер
Скачать учебник «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 можно заменить на другой, но при этом нужно сохранить все параметры звукового файла, который был использован в игре. Например, чтобы заменить музыку в приёмнике у Сидоровича, нужно файл sounds\scripts\magnitofon\magnitofon_2.ogg, заменить на любой другой.(У оригинального файла винамп мне выдал свойства:
Average bitrate : 60 kbps
Nominal bitrate : 80 kbps
Channels : 1
Sampling rate: 44100 Hz.
Config/Weapons:
Параметры оружия вы можете найти в папке config\weapons, файлы типа w_ak74.ltx открываются тоже блокнотом. Разберём содержимое файла например w_groza.ltx
Во первых стоит обратить внимание на значение пременной(буду их так называть) cost, это цена оружия, т.е. сколько гроза будет стоить у продавца.
Переменная weapon_class означает, к какому классу относится оружие, в данном случае — assault_rifle.
ammo_limit – лимит боеприпасов(в игре не используется)
ammo_mag_size – размер магазина. Можно поставить например 900, тогда о перезарядке можно совсем не вспоминать.
ammo_class – класс патронов, используемых оружием. Здесь [/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 — огнестрел.
Источник
Все о модах
Введение
Мод (сокр. от «модификация») — модификация или дополнение к компьютерной игре, написанное, как правило, сторонними разработчиками или любителями с помощью SDK, прилагающегося к игре или специальных, разработанных для модифицирования игр любительских программ. В отличие от адд-она, при его разработке часто радикально изменяет баланс сил (в стратегических играх) или набор оружия и возможности героя (в 3D-шутерах).
Мутатор — модификация игры, которая лишь частично изменяет игру. В отличие от модов, которые, как правило, нельзя совмещать (в игре одновременно может быть активно не более одного мода), в одной игре может быть одновременно включено несколько мутаторов.
Порядок, в котором применяются мутаторы, может быть важен. Например, если за мутатором «без снайперской винтовки» применяется мутатор «превратить всё оружие в снайперские винтовки», снайперские винтовки исчезают, а всё остальное оружие превращается в винтовки. Если же применить мутаторы в обратном порядке, исчезает всё оружие.
Подключение мутаторов существует лишь в некоторых играх. Например, они имеются в Unreal Tournament и в трилогии S.T.A.L.K.E.R.
В данное время для игр серии S.T.A.L.K.E.R. было написано много интересных модов и мутаторов. Кстати, сама компания GSC только «ЗА» любительские моды, ведь с модами растёт и популярность к серии. И многие новички наверное то же хотели бы создать свои моды. Благо доступность многих сайтов позволяет новичкам освоиться в данном направлении. На мой взгляд самыми успешными являются 2 из них: сайт команды АМК и STALKER Inside.
Сегодня я расскажу как сделать свою первую мутацию, а может и свой первый мод.
Сразу хотелось бы сказать новичкам, чтобы стать настоящим мододелом, нужно большое терпение, усидчивость и руки из нужного места. Кстати, голова то же не помешает.
Итак, приступим. Создание модов можно разделить на несколько частей.
- Работа с конфигурационными файлами (далее просто конфигами)
- Работа со скриптами
- Работа с 3D моделями
- Работа с текстурами
- Работа со звуковыми файлами и видео
- Работа с all.spawn-ом
Сразу оговорюсь, если вы новичок, лучше всего начинать с конфигов и текстур.
Данная статья написана для новичков и заострять внимание на различных деталях я пока не буду.
Структура файлов
Часть первая: Текстуры
- Все текстуры в игре используют формат DDS
- Открыть их можно через программу WTV
- А редактировать с помощью Paint.NET или Photoshop+плагин
Теперь давайте разберёмся со структурой папки
textures:
- act – папка с текстурами сталкеров, монстров
- artifact – текстуры артефактов
- briks – кирпичные стены
- controller – текстура удара контролёра
- crete — бетон
- decal – пыль, плакаты, надписи, мусор
- detail – пыль, камни, осколки
- door – текстуры дверей и люков
- ed — ******
- editor — ******
- floor – пол: бетон, линолеум
- fx – разные мелочи
- glas — жалюзи
- glass — окна
- glow – свет от солнца и ламп
- grad – эффекты света
- grnd – текстуры земли
- internal – свет от фонарика
- intro – загрузочные картинки локаций
- item – игровые предметы: хлеб, колбаса, водка, детекторы, аптечки
- lights – свет от солнца и ламп
- map – текстуры карт
- mtl – текстуры металла
- outro – видео концовок игры
- pfx – эффекты аномалий и артефактов (их свечение)
- prop – текстуры плакатов, приборов, оборудования, бочек, балонов
- roof — шифер
- sign – плакаты
- sky – текстуры неба
- staff – фон
- terrain – текстуры террейна
- tile – керамическая плитка
- trees — деревья
- ui – текстуры иконок, и разных менюшек, пда
- veh – текстуры автомобилей, вертолётов, вагонов
- vine – текстуры плюща
- wall – стены домов
- water — вода
- wind – текстуры окон
- wm – текстуры крови и следов от пуль
- wood – текстуры дерева
- wpn – текстуры оружия
Часть вторая: Звуки
Все звуки игры имеют формат OGG
Редактировать советую с помощью AudaCity
Часть третья: 3D модели
Так как урок у нас для новичков, то я не буду рассказывать о 3D моделировании. Я расскажу как сделать «новую» модель и добавить ей новую текстуру.
Все модели в формате OGF. Их удобно просматривать с помощью OGFViewer
Давайте сделаем новую модель сталкеру на основе модели обычного нейтрала.
Нам потребуется:
- Hex Editor
- Paint.NET или Photoshop
- 3D-модель из директории meshes/actors/stalker_neutral/stalker_neutral_2.ogf
- Текстура textures/act/act_stalker_neutral_2.dds
Запускаем Paint.NET или Photoshop и редактируем текстуру по вкусу:
ДО ПОСЛЕ
Сохраняем с новым именем в эту же папку.
ВАЖНО: если имя текстуры было 12 символов, оно и должно остаться 12 символами.
Пример: act_stalker_neutral_2.dds стало act_stalker_neutral_n.dds
Открываем OGF модель с помощью Hex Editor-а, и видим такое окно:
Находим поиском такой текст: act_stalker_neutral_2
Сохраняем. Всё. Осталось прописать нашу модель любому из сталкеров, например Бороде, но это мы научимся делать позже. Такой трюк с заменой текстуры можно проделать с любой моделью.
Часть четвёртая: Конфиги
Конфиги главная часть всего сталкера (не считая скриптов). Сами файлы имеют форматы xml и ltx. Мы будем открывать их блокнотом. Теперь разберёмся со структурой.
- сreatures – папка с конфигами НПС, группировок (НПС или NPC — сталкеры, монстры)
- environment – папка с конфигами погодных эффектов
- gameplay – второстепенные конфиги НПС, инфопорции, диалоги
- misc – конфиги артефактов, предметов, еды, одежды, звуков, заданий
- models – конфиги моделей
- mp – мультиплеер
- prefetch – неважно
- scripts – логика НПС, мутантов, аномалий (НЕ ПУТАТЬ СО СКРИПТАМИ!)
- text – русские тексты (диалоги, пункты меню, имена сталкеров и т.д.)
- ui – конфиги положения иконок
- weapons – конфиги оружия
- weathers – конфиги погоды
- zones – конфиги аномалий
Вопрос: Как сделать главного героя бессмертным, бесконечно выносливым?
Ответ: Параметры, отвечающие за потерю НР находятся в файле gamedata/configs/creatures/actor.ltx, эти строки:
- satiety_critical = 0.0 ; критическое значения сытости (в процентах от 0..1) когда здоровье начианает уменьшаться
- radiation_health_v = 0.004 ; уменьшение здоровья при воздействии радиации
- health_hit_part = 1.0 ; процент хита, уходящий на отнимание здоровья
- power_hit_part = 0.1 ; процент хита, уходящий на отнимание силы
- bleeding_v = 0.002 ;0.0005 ; потеря крови при номинальной ране в секунду
Cделайте их равными 0.0, и вы бессмертны.
- wound_incarnation_v = 0.0001 ;0.003 ;скорость заживления раны
- min_wound_size = 0.0256 ;минимальный размер раны, после которого она считается зажившей
- psy_health_v = 0.001 ;скорость восстановления psy-здоровья
Увеличьте эти параметры в несколько раз
Для бесконечной выносливости обнулите эти параметры:
- walk_power = 0.00001 ; умешьшение силы за секнду во время ходьбы без учета веса ноши
- walk_weight_power = 0.00005 ; умешьшение силы за секнду во время ходьбы с учетом веса ноши, для максимального допустимого веса
Для увеличения высоты прыжка, измените этот параметр:
- jump_speed = 6
Вопрос: Как изменить длину палочки прицела?
Ответ: в gamedataconfigssystem.ltx отредактировать эти строки:
[hud_cursor]
;все размерv в процентах от длинv экрана
- cross_length = 0.015 ; длина «палочки» прицела
- min_radius = 0.0 ; минимальный радиус прицела (при нулевой дисперсии)
- max_radius = 1.0 ; максимальный радиус
- radius_lerp_speed = 0.08 ; скорость интерполљции положений прицела
- cross_color = 0.7,0.7,0.7,0.5 ; цвет прицела
- disp_scale = 0.08 ; масштаб прицела (относительно радиан)
Вопрос: Как изменить параметры конкретного оружия?
Ответ: Параметры стволов заданы в конфигурационных файлах по адресу gamedata/configs/weapons
Возьмем, для примера, конфиг w_g36.ltx. Он делится на разделы:
- Первый раздел
Здесь хранится общая информация о оружии — его класс, тип, ссылки на спавн и т.д. Нас интересуют следующие строки:
- description = enc_weapons1_wpn-g36 — ссылка на string_id, из которого игра подгружает описание этого оружия.
- ef_main_weapon_type = 2 — основной тип, к которому принадлежит оружие
- ef_weapon_type = 6 — подтип, к которому принадлежит оружие
- Второй раздел
Содержит модификаторы, которые даются к углу зрения/дальности обзора NPC, держащего это оружие в руках:
- holder_range_modifier = 1.85 — во сколько раз увеличивается eye_range
- holder_fov_modifier = 0.3 — во сколько раз увеличивается eye_fov
- Третий раздел
Содержит данные о самом оружии, его некоторых характеристиках:
- cost = 18000 — базовая цена (торговцы умножают её на некоторый коэффициент)
- weapon_class = assault_rifle — класс оружия (здесь — штурмовая винтовка)
- ammo_mag_size = 30 — размер магазина
- ammo_class = ammo_5.56x45_ss190, ammo_5.56x45_ap — типы используемых патронов
- grenade_class = ammo_m209 — тип используемых гранат
- fire_modes = 1, -1 — режимы ведения огня
- hand_dependence = 1 — засивимость о рук (?) — возможно, речь идет о качании ствола
- single_handed = 0 — держится ли только в одной руке
- slot = 2 — слот в инвентаре
- animation_slot = 2 — вид анимации (для пистолета/для винтовки)
- inv_name = wpn-g36 — ссылка на имя, отображаемое в инвентаре, тоже берется из string table, как и описание
- inv_name_short = wpn-g36 — короткое имя; в данном случае используется то же самое
- inv_weight = 3.6 — вес
- inv_grid_width = 5 — координаты первого угла иконки по x
- inv_grid_height = 2 — координаты первого угла иконки по y
- inv_grid_x = 0 — координаты второго угла иконки по x
- inv_grid_y = 10 — координаты второго угла иконки по y
- Четвертый раздел
В четвертом разделе хранится информация о износе/отдаче оружия. Практически все параметры там снабжены комментариями, поэтому приведу лишь самые интересные:
- cam_relax_speed = 5.7 — скорость возврата в исходное положение
- cam_dispersion = 0.2 — увеличения угла (в градусах) с каждым выстрелом
- fire_dispersion_condition_factor = 5 — увеличение дисперсии в процентах при максимальном износе
- misfire_probability = 0.003 — вероятность осечки при максимальном износе
- misfire_condition_k = 0.05 — порог (в данном случае — 5%), после которого оружие может заклинивать
- condition_shot_dec = 0.0002 — увеличение износа при каждом выстреле
- Пятый раздел
Здесь хранится множество параметров, из которых наиболее интересны эти:
- PDM_disp_base = 3.0 — множитель, на который умножается базовая дисперсия оружия, когда ГГ (Главный Герой) стоит на месте в полный рост;
- PDM_disp_vel_factor = 1.3 — множитель, на который умножается базовая дисперсия оружия, когда ГГ крутит оружием или бежит;
- PDM_disp_accel_factor = 1.3 — множитель, на который умножается базовая дисперсия оружия, когда ГГ бежит в спринте;
- PDM_crouch = 1.0 — множитель, на который умножается базовая дисперсия оружия, когда ГГ идет пригнувшись;
- PDM_crouch_no_acc = 1.0 — множитель, на который умножается базовая дисперсия оружия, когда ГГ стоит на месте, пригнувшись;
- hit_power = 0.50, 0.54, 0.57, 0.60 — сила выстрела
- hit_impulse = 105 — импульс пули (сила, которую летящая пуля передает жертве, влияет на поведение ragdoll-тела)
- hit_type = fire_wound — тип причиняемых повреждений, в данном случае — пулевые ранения (параметр в синглплеере ни на что не влияет)
- fire_distance = 600 — максимальная дистанция для выстрела
- bullet_speed = 925 — начальная скорость пули
- hud = wpn_g36_hud — внешний вид оружия
- Шестой раздел
- position = -0.026, -0.132, 0.0 — позиция по отношению к игроку (?)
- orientation = 0, 0, 0 — направление, в которое смотрит ствол (?)
- Седьмой раздел
Содержит описания визуальной стороны оружия и некоторые другие параметры:
- startup_ammo = 90 — как нетрудно догадаться, стартовое количество патронов (в синглплеере ни на что не влияет)
- visual = weaponsg36wpn_g36.ogf — модель оружия, используемая NPC, а также игроком при виде от третьего лица
- ph_mass = 4 — физическая масса, используемая при расчетах
- scope_status = 1 — ситуация со съемным прицелом
- silencer_status = 0 — ситуация со съемным глушителем
- grenade_launcher_status = 0 — ситуация с подствольным гранатометом
- 0 — нет, новый прикрепить нельзя
- 1 — уже есть, несъемный
- 2 — нет, но можно установить новый
- zoom_enabled = true — есть ли зум (прицеливание)
- scope_zoom_factor = 33.3 — какой зум дает прицеливание (здесь — 1.8х)
- scope_texture = wpnwpn_crosshair_g36 — текстура прицельной сетки
- shell_point = 0.15, 0.0, -0.05 — точка вылета гильз
- shell_dir = 0.0, 1.0, 0.0
- fire_point = -0.000000,0.062000,0.134000 — точка выстрела
- fire_point2 = 0.30, 0.00, 0.05 — точка выстрела (2)
- fire_bone = wpn_body
- orientation = 0, 0, 0 — направление
- position = 0, 0, 0 — позиция
- visual = weapons/g36/wpn_g36_hud.ogf — модель, отображаемая у нас в руках
Изменение описаний
Описания оружия хранятся в файле: . S.T.A.L.K.E.R/gamedata/configs/text/rus/string_table_enc_weapons.xml
В нем хранятся строки с названиями и описаниями, на которые ссылаются конфиги оружия. Например, тот же G36 ссылается сюда:
Штурмовая винтовка немецкого производства, представляющая собой первоклассный образец
современного оружия — лёгкого, надёжного и эргономичного.n Боеприпасы:n обычный 5,56×45 мм
SS109,n бронебойный 5,56×45 мм АР.
[. ]
ГП37
[. ]Меняя их содержимое, мы меняем описания/названия данного оружия.
Вопрос: Как изменить параметры конкретного боеприпаса?
Ответ: Параметры амуниции заданы в файле по адресу gamedata/configs/weapons/weapons.ltx
например:
- visual = weapons/ammo/ammo_556x45_ss190.ogf — модель коробки с патронами
- description = enc_weapons1_ammo_ammo-5.56×45-ss190 — ссылка на string_id, из которого игра подгружает описание этого типа патронов
- cost = 320 — стоимость одной коробки
- box_size = 30 — количество патронов в одной коробке
- inv_name = ammo-5.56×45-ss190 — ссылка на string_id, содержащий имя для инвентаря
- inv_name_short = ammo-5.56×45-ss190_s — ссылка на string_id, содержащий краткое имя для инвентаря
- inv_weight = 0.33 — вес
- inv_grid_width = 2 — координаты первого угла иконки по x
- inv_grid_height = 1 — координаты первого угла иконки по y
- inv_grid_x = 14 — координаты второго угла иконки по x
- inv_grid_y = 11 — координаты второго угла иконки по y
- k_dist = 1 — коэффициент дальности, сама дальность — в стволе, тупо расстояние.
- k_disp = 2.5 — кучность, завязана с кучностью в стволе
- k_hit = 1 — убойность, завязана с убойностью в стволе
- k_impulse = 1 — чисто наскока эффектно ногами непись дрыгнет во время кердыка
- k_pierce = 1 — коэффициент наскока испортится броня при попадании
- impair = 1 — коэффициент износа ствола от пули
- buck_shot = 1 — кол-во составляющих в пуле (напр картечь — 4, пуля — 1)
- tracer = on — является ли патрон трассирующим (on/off)
- wm_size = 0.05 — визуальный размер дырки на стене от пули
Вопрос: Как редактировать торговцев, торговлю с обычными сталкерами?
Ответ: Все настройки, связанные с ассортиментом торговцев в игре, находятся в файлах 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 такая строка: (если infinitive=»1″ — бесконечные деньги)
Вопрос: Как редактировать костюмы?
Ответ: Итак, секции с параметрами находятся в файле configs/misc/outfit.ltx
Рассмотрим, например, параметры классического костюма сталкера.
[stalker_outfit]:outfit_base ; название секции костюма. именно к нему игра будет обращаться. outfit_base —
базовая (наследуемая) секция (изменять строго не рекомендуется).
- visual = equipmentsstalker_suit ; модель, используемая для сложенного костюма, лежащего на земле.
- actor_visual = actorsherostalker_hood.ogf ; модель, используемая для игрока, когда на нем надет костюм.
- inv_name = stalker_outfit_name ; название в инвентаре.
- inv_name_short = stalker_outfit_name ; название в инвентаре (в принципе, можно здесь продублировать значение предыдущего параметра — так чаще всего и делают).
- description = stalker_outfit_description ; ссылка на текстовую строку
- с описанием.
- inv_weight = 5.0 ; вес.
; далее идут параметры иконки в инвентаре.
inv_grid_width = 2
inv_grid_height = 3
inv_grid_x = 6
inv_grid_y = 15
full_icon_name = npc_icon_stalker_outfit ; название иконки.
cost = 15000 ; базовая цена (см. примечание 2).
full_scale_icon = 14,11 ; иконка сталкера в костюме в полный рост (отображается в инвентаре справа).
nightvision_sect = effector_nightvision_bad ; тип ПНВ («плохой» — зеленый, «хороший» — синий).
; ниже идут параметры защиты владельца от различных типов воздействий,
обеспечиваемые костюмом.
- burn_protection = 0.5 ; защита от воздействия огня (костры, аномалия «Жарка» и т.д.).
- strike_protection = 0.5 ; защита от ударов (наносятся мутантами, например, псевдогигантом).
- shock_protection = 0.5 ; защита от поражения электричеством.
- wound_protection = 0.4 ; защита от ранений (наносятся мутантами, например, собаками, кровососами и т.д.).
- radiation_protection = 0.5 ; защита от радиации.
- telepatic_protection = 0.0 ; защита от пси-воздействия (например, присутствие контроллера серьезно влияет на psy_health).
- chemical_burn_protection = 0.5 ; защита от химического воздействия.
- explosion_protection = 0.3 ; защита от взрывов/осколков.
- fire_wound_protection = 0.3 ; защита от огнестрельного оружия (наиболее важный параметр для большинства костюмов).
- power_loss = 0.87
- bones_koeff_protection = gilet_antigas_damage
[sect_stalker_outfit_immunities] ; коэффициенты иммунитета самого костюма, то есть — то, насколько сильно он сам подвержен повреждениям от различных типов воздействий. по значениям каждого типа — см. выше.
- burn_immunity = 0.03
- 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
Вопрос: Как сделать так, чтобы стволы не убирались сами?
Ответ: Изменить эти строки в файле gamedata/scripts/sr_no_weapon.script
function action_no_weapon:zone_enter()
self.state = state_inside
bind_stalker.restore_weapon(self.object:id())
end
function action_no_weapon:zone_leave()
self.state = state_outside
bind_stalker.restore_weapon(self.object:id())
end
Вопрос: Как реализовать качание прицела?
Ответ: Конфиги, отвечающие за эту особенность, в файле 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 ; время через которое эффектор меняет направление движения (в милисекундах)
Вопрос: Как «изменить» рост главного героя?
Ответ: В файле gamedata/configs/creatures/actor.ltx поменять параметр camera_height_factor = 0.92
Вопрос: Где лежат конфиги артефактов?
Ответ: Все артефакты описаны в файле gamedata/configs/misc/artefacts.ltx
Вопрос: Как восстановить активацию артефактов?
Ответ: Распишу по пунктам как добавить например к «огненному шару» аномалию Жарка.
Открываете файл: gamedata/config/misc/artefacts.ltx
И там в самом начале файла такая секция:
;Артефакты, которые при активизации создают аномальные зоны
[artefact_spawn_zones]
af_medusa = zone_mosquito_bald_weak, 2.0, 30.0
Обозначает что артефакт af_medusa при активации создаст аномальную зону zone_mosquito_bald_weak с радиусом 2 метра и мощностью 30 (возможно влияет и на время жизни аномалии)
Кончается этот список по идее строчкой: mp_af_electra_flash = zone_witches_galantine, 3, 50.0
и сразу после неё пишете: af_fireball = zone_zharka_static, 3, 30.0
В принципе можно прописать там не статик а zone_zharka_weak незнаю, что из них правильнее использовать. статик работает тоже.В той-же папке есть файл zone_zharka, где описаны свойства зон _weak, _average, _strong( слабая, средняя, сильная), а также зона zone_zharka_static.
После этого у вас игра станет вылетать с ошибкой про невозможность обнаружить последовательность описывающую анимацию активации аномалии.
А это всё там же в начале файла чуть ниже того, где вы добавили новый артефакт в список есть такие строчки:
- [af_activation_gravi]
;format: time(sec), sound_name, light_R,G,B, light_range, particle_name, af_animation_name
starting = 5.0, anomalygravi_idle00, 0.5, 1.0, 1.5, 5.0, «anomaly2artefact_gravi_blast_start», «idle»
flying = 2.0, anomalygravi_idle01, 0.8, 1.0, 1.2, 3.0, «anomaly2artefactartefact_gravi», «idle»
idle_before_spawning = 5.0, anomalygravi_blowout5, 1.0, 1.0, 1, 0.0, «anomaly2artefact_gravi_blast_finished», «idle»
spawning = 1, anomalygravity_entrance, 0.9, 1.1, 1.01, 0.0, «», «idle»
Что как раз и описывает анимацию..
По-хорошему надо написать свою анимацию к жарке но это честно говоря не обязательно. потому что нам сейчас важна не красота а работоспособность. Так вот. из заголовка «[af_activation_gravi]» берем название последовательности af_activation_gravi и ищем сам артефакт af_fireball (кто уже забыл зачем, мы на него собирались вешать новую активацию)
Найдете что-то вроде:
- [af_fireball]:af_base
$spawn = «artifactszharka fireball»
$npc = on ; option for Level Editor
И где-нибудь тут добавляете строчку: artefact_activation_seq = af_activation_gravi
И на этом всё. Прописываем в artefacts.ltx в блоке [af_base]:identity_immunities вместо ;slot=10 вот это: slot=1. Насколько я знаю, знак ; означает, что строка закомментирована(неактивна) У себя я прописывал slot=1 между строчками inv_name = af-electra-moonlight inv_name_short = inv_weight = 0.05 slot = 1 inv_grid_x = 10 inv_grid_y = 10 для того артефакта, который хочу активировать.
В игре берем артефакт в первый слот и активируем.
Часть пятая: Скрипты
Открываем файл bind_stalker.script и в нём ищем такие строки (ищем с помощью «Ctrl+F»)
И между ними пишем:
Всё это выглядит как:
end
Теперь создаём в папке gamedata/scripts/ файл с именем my_spawn.script (Не путать расширение spawn и scripts. В первом случае это функция в скрипте, во втором формат файла) И в нём пишем
end
Где NAME – имя объекта который спавним (wpn_ak74, medkit, vodka, kolbasa, stalker_outfit и т.д.)
X,Y,Z – координаты
L_V, G_V – левел и гейм вертекс
Всё, заходим в игру, бежим в нужное место и видим наш предмет.
Удачи. Продолжение следует…
Источник