Руководство по созданию модов S.T.A.L.K.E.R. для начинающих
Руководство по созданию модов S.T.A.L.K.E.R. для начинающих
САМЫЙ БОЛЬШОЙ СБОРНИК МОДОСТРОЕНИЯ – http://ap-pro.ru/load. 1-0-965
Вопрос о квестах на зачистку
Недавно играл за военных. Взял квест на зачистку вражеской территории (Сталкеры на заводе). Выполнил и после этого на эту базу пришли Чистое небо, но это не важно главное это захват квестовых точек у противника. А что если добавить такие квесты для всех группировок. Например для свободы штурм базы Долга в баре, а после там появляются свободовцы и так для каждой группировки. Сам бы добавил, но не умею, а так идея мне кажется интересной
Ответ
Там в файле simulation_object_props найди смарт бара и добавь под них freedom = 1 и время от времени Свобода будет нападать на Бар и его территорию, прописывай прям так под каждым именем смарта
Что означают параметры base, lair, territory, surge, resource?
Ковырял файл simulation_objects_props.ltx. Как я понял, он устанавливает тип смарта. С параметрами resource (НПС приходят в смарт для сбора артефактов с ближайшего аномального поля), base (база?), lair (логово мутантов?) вроде как понятно.
Но все-таки, может кто-нибудь подробно обьяснить, что означают параметры base, lair, territory, surge, resource? Что означают числа, стоящие после этих параметров?
Ответ
base -база сталкеров, lair – обычный лагерь вроде, surge – укрытие от выброса, resource – аномалии
Как менять стартовую локацию у группировок?
В all.spawn, распаковываешь и ищешь way_локация и в нем ищем секцию
spawn_player_фракция и под ней указываем direction локации position, game_vertex, level_vertex
Реально интересно, можно ли две локации в одну совместить? Те же Припяти. А то чую, что нет и придётся с нуля расставлять.
Ответ
По чему нельзя? Можно, есть два способа как это сделать.
1. Это с помошью проги K.D.: Способ создания локаций большого размера, или обходим ограничения компилятора
2. Это с помощью х64 бит компиляторов от все того-же K.D. ссылку на SDK c этими правками я тебе уже давал, но на всякий случай: X-Ray COP SDK 2015 Repack by mcbeat7 with & without gamedata
Но в обоих случаях всеравно придется подгонять терейны в 3DS Max-e.
Как увеличить стоимость ремонта?
Надо всего лишь увеличить циферки в файле stalkers_upgrade_info.ltx
“Полезные Функции” , правда они для ТЧ, но для CoC некоторые могут подойти
http://stalker-gamers.ru/forum/10-653-1
Кого очень интересуют апгрейды оружия , обратите внимание на этот пост http://www.amk-team.ru/forum. y914757
Перезагрузка сейва:
Подхватываются изменение скриптов
Перезагрузка игры(с выходом):
подхватываются изменения конфигов и кешируются новые файлы, так же реинициализируются диалоги(кстати диалоги инициализируются 1 раз за запуск игры- невозможно сделать динамические диалоги. Тот вариант диалога что раньше инициализировался в процессе игры- будет всё время пока не выйти из игры)
НИ(Новая Игра):
обязательна при изменении all.spawn, иначе изменений не будет
В СоС сделана фича, что можно подгрузить конфиги перезагрузкой сейва, передварительно нажав “0” на цифровой клавиатуре в главном меню.
П.С.: непомню при каких ещё случаях нужна НИ
В данном уроке попытаюсь рассказать об основах работы с Level Editor-ом пакета SDK, на примере создания простейшего уровня.
В пакете SDK уже довольно много готовой геометрии, которую можно размещать на своём уровне, но иногда хочется вставить что-то своё, это можно сделать, смоделировав объект в пакете 3D моделирования Maya или 3D Studio Max.
Создание геометрии
Научить работать в 3D редакторах я не смогу, поэтому подробно остановлюсь только на процессах установки и настройки плагина, текстурировании и назначении шейдеров геометрии.
Установка и настройка плагина
Установка для Maya
Установка плагина заключается в копировании:
- Всех файлов из папки scripts_pluginsscripts в папку C:Documents and SettingsUserNameMy Documentsmayascripts
- Всех файлов из папки scripts_pluginsver-ххх в папку C:Program FilesAutodeskMaya_хххbin
- Файла scripts_pluginsxray_path.ltx в папку C:Program FilesAutodeskMaya_хххbin
Установка для 3D Studio Max
Качаем плагин. Распаковываем архив, копируем содержимое папки plugin(именно plugin) в папку макса.
Настройка
Далее в официальном руководстве написано, что требуется диск Х, мы приложили батник для создания этого диска и т.д.Возможно кто-то согласится с таким вариантом, но я решил просто отредактировать файл xray_path.ltx и не мучатся с батником и диском.
Необходимо изменить только первые две строчки файла xray_path.ltx:
Всё, можно пользоваться плагином.
Настройка единиц измерения
Для того, чтобы размеры объектов в редакторе совпадали с теми, что используются в X-Ray SDK, необходимо выполнить соответствующую настройку.
Настройка Maya
Для начала необходимо единицы измерения перевести в метры (по умолчанию в Maya 8.5 используются сантиметры). Делается это в 2 этапа:
- Заходим в меню Window -> Settings/Preferences -> Preferences. В открывшемся диалоге, в категории Settings, находим список Working Units -> Linear и выбираем Meter, как показано на скриншоте (шаг 1, шаг 2).
- Теперь, для удобства работы, в настройках камеры необходимо изменить дальность отображения с 10м на 1000м (смотри скриншот шаг 3)
Замечен глюк: после настройки камеры изображение может пропасть, в чём дело пока не разобрался, но ситуацию помогает победить выбор в меню камеры следующих двух пунктов:
- Panel -> Perspective -> New
- View -> Camera Settings -> View Compass
Настройка 3D Studio Max
Настройка заключается только в выборе в качестве единиц измерения метров.
- Заходим в меню Customize -> Units Setup. В группе Display Unit Scale ставим переключатель на Metric, в выпадающем списке ищем Meters.
- Так же необходимо нажать кнопку System Unit Setup и приравнять условную единицу к метру (т.е. там где “1 Unit = 1,0 в выпадающем списке выбрать Meters. Флажок “Respect System Units in Files” должен быть включен)
Моделирование
Для нашего простейшего уровня нам понадобится создать просто бокс в качестве террейна.
Создадим box размеров 50м*50м*0,1м.
Замечания и правила
- Вся геометрия должна быть создана в реальных мировых размерах (если стол в реальной жизни высотой 1 метр, значит его надо и в Maya делать высотой 1 метр, всё предельно ясно и просто)
- Bounding box персонажа имеет три состояния: стоя (1.8х0.7х0.7 в метрах), сидя (1.5х0.7х0.7 в метрах) и очень сидя (1.2х0.7х0.7 в метрах).
- Весь уровень должен быть не больше 150 тысяч треугольников.
- Сцена должна состоять из групп. Название группы формируется по такому принципу: mp_имяуровня_назвгеометрии. Например, в нашей тестовой сцене такие группы: mp_atp_terrain, mp_atp_buildings. В группе может находится как и один объект, так и несколько. Имена объектов внутри группы никоем образом не должны совпадать с именем группы. В переделах одной группы все имена должны быть уникальны.
- Шейп объекта должен содержать правильное имя. Формируется по такому принципу: объект – имя_объекта, шейп – имя_объектаShape
Текстурирование и назначение шейдеров
3D Studio Max
Открываем Material Editor(M) выделив один из образцов материала, открываем диалог Material/Map Browser, щелчком на кнопке Standart. Создадим новый материал XRayMtl, дважды щёлкнув по нему в списке.
Займёмся настройкой параметров материала. X-ray материал, кроме текстуры использует надстройку состоящую из трёх шейдеров – Engine, Compiler, Material.
- Engine – отображение текстуры в движке игры.
- Compiler – используется при компиляции уровня.
- Material – игровой материал (wallmark, sound и др.).
Для начала настроим шейдеры. В Material Editor-e разворачиваем свиток XRay Params. В выпадающих списках представлены различные варианты шейдеров. Более подробно параметры шейдеров рассмотрены в статье Описание шейдеров XRayMtl. Для нашего примера ограничимся установкой следующих значений:
- Engine – default
- Compiler – default
- Material – material/asphalt
Текстурирование заключается в назначении текстуры процедурной карте Diffuse Color.Вообще, в редакторе материалов (В свитке Maps) много процедурных карт, но X-Ray mtl поддерживает (экспортирует) лишь одну, указанную выше.!Важно – чтобы экспорт был, надо назначить карту в кнопку diffuse colour. Можно назначить любую карту формата *tga, так-же важно чтобы размер текстуры (ширина/высота) был равен степени двойки (256, 512 и т.д.).После присвоения каналу diffuse colour любой текстуры НЕ ЗАБЫВАЕМ ПРИСВОИТЬ МАТЕРИАЛ НАШЕМУ ТЕРРАЙНУ и сделать Convert to Editable Mesh, иначе будет вылет программы. Делается это двумя способами:1. Drug&drop материал из слота Material Editor’а на наш box.2. Нажать кнопку Assign Material to Selection (при условии, что ваш террайн выделен) в редакторе материалов.З.Ы. Если вы не удовлетворены тем, как текстура легла на террайн, воспользуйтесь модификаторами, например, UVW Map. Затем не забудьте сделать Convert to Editable Mesh! Экспорт
3D Studio Max
Для начала выделяем все объекты, которые мы хотим экспортировать в виде единого объекта, т.е. всё, что мы выберем сейчас в редакторе будет представленно как одна модель. В нашем случае это один box.
Переходим на командную панель Utilities, нажимаем кнопку More. В появившемся списке в самом конце видим XRay Export, выбираем, жмём ОК.После запуска модуля на панели появится новый свиток XRay Export, в списке Selected можно проконтролировать какие объекты выбраны, нажимаем кнопку Export Editor Object. cохраняем файл в папку
Руководство по созданию модов S.T.A.L.K.E.R. для начинающих
Мод-портал. – Официальная вики по модам для сталкера (Не обновляется)
S.T.A.L.K.E.R. Inside Wiki. – Фанатская вики по модострою для сталкера.
Как убрать/увеличить время для обычных квестов?:
В файле gamedataconfigmisctask_manager.ltx найти и изменить все строки вида time = 86400
Чтобы совсем убрать лимит – просто закомментировать их (–)
Как убрать intro-ролики в начале?:
В свойствах ярлыка прописываем после пути к exe-шнику: -nointro
Получиться должно что то вроде(это как у меня):
“D:GamesS.T.A.L.K.E.R. Shadow of ChernobylbinXR_3DA.exe” -nointro
Как включить motion blur?:
В свойствах ярлыка прописываем после пути к exe-шнику: -mblur
В файле user.ltx(можно и в консоли) параметру r2_mblur присваиваем значение например 0.15
Работает только на DirectX 9 .
Как увеличить время спринта?:
В файле actor.ltx меняем параметр sprint_koef.
Как поменять кол-во жизни монстрам?:
В файле m_*.ltx(где * – название монстра, например m_controller.ltx; находится в папке gamedataconfigcreatures) меняем параметр health
Как повесить на пояс больше артефактов?:
В файле system.ltx изменяем параметр max_belt с 5 на 10 (max_belt = 10)
Ищем файл inventory_new.xml и в нём меняем
что соответствует 10 артефактам.
При желании поправив соответствующим образом файлы system.ltx и inventory_new.xml
можно получить 12,14,16 и более слотов под артефакты.
Создание новых веток диалога:
Создание новых веток диалога.
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
2) Ветвление веток прописывается уже в других файлах.
Например ветвление веток диалога с Сидоровичем содержится в файле gamedata/config/gameplay/dialogs_escape.xml
Возьмем оттуда к примеру ветвление ветки escape_trader_jobs
(ветвление веток обычно очень большое поэтому я приведу только часть):
escape_trader_talk_info_1
100
99
9995
– это проверка выполнения условия. Ветка появится в диалоге, только если условие выполняется.
Конкретно
из ветки 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_ом т.е. с Сидоровичем.
Т.е проверкой условия
проверяется с кем ведется диалог,
и если диалог ведется с Сидоровичем в ветке по крайней мере этим условием пропускается в списк реплик.
Но для конкретной ветки может быть несколько precondition и других условий.
Далее tutorial_end Если я верно понимаю, это так же своего рода проверка условия В данном случае проверка на то закончена стадия tutorialа или нет. Т.е ветка допустится в список реплик если стадия tutorialа закончена.
А далее идут конкретные фразы содержащие ссылки на вытекающие фразы
это основа ветки 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 – Это возврат к фразе 1. (зацикливание)
111
Теперь пример практического применения того, о чем было сказано выше:
Добавим в диалог с Сидоровичем ветку своего собственного изготовления.
Например такую:
Меченый: Сидрыч а что это у тебя зеленые человечки, что по столу бегают, такие худые?
Сидорович: Чего.
Меченый: Ты их совсем, совсем не кормишь?
Сидорович: В следующий раз, как пойдешь в зону, бери-ка вместо водяры побольше антирада. А то мало что таким перегаром дышишь, уже до зеленых человечков долечился… Шутник.
1) В файле gamedata/config/gameplay/character_desc_escape.xml в конце списка веток для trader_а суем свою ветку с произвольным названием. (например escape_trader_letat_gusi )
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
условия наличия ветки в диалоге можно взять из ветки
Т.е берем условия
и tutorial_end
(Можно было конечно прописать в скрипте еще одно условие для ветки, чтоб она появилась только один раз,
а потом больше не возникала. Но об этом как нибудь позже допишу.)
В итоге у нас получилась такая структура:
Которую нужно вставить в любом месте между 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
не сюда
После сохранения изменений, у нас все готово. Можно грузить игру и смотреть что получилось.
Оружие загораживает пол-экрана. Как это исправить?:
В файле конфига выбранного оружия меняем:
position = 0, -0.075, 0 ; было 0,0,0
zoom_offset = -0.112400,0.091800,-0.115000 ; было -0.112400,0.016800,-0.115000
Где найти файл user.ltx?:
Для Windows XP в директории X:Documents and SettingsAll Users Общие документы STALKER-SHOC
Для Windows Vista в директории X:UsersPublicDocumentsSTALKER-SHOC
Как изменить силу врагов?:
В файле 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
Они отвечают за вероятность попадания по вам при разных уровнях сложности.
Гармошка:
Для возврата в игру губной гармошки, ищем в папке 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
Всё, теперь можете запускать игру и наслаждаться.*
Как менять скорострельность и удобность оружия?:
В папке gamedata/config/weapons в файлах конфигурации оружия ищи
чем меньше параметр – тем выше удобство.
и
rpm – скорострельность.
Как положить оружие в другой слот?:
В папке gamedata/config/weapons в файлах конфигурации оружия ищи
SLOT и меняй на 1 (вместо ножа) или 2 (пистолетный слот)
Добавление новых опций в меню игры?:
Открываем файл gamedataconfiguiui_keybinding.xml. В нём находим строку
и после неё пишем:
Таким образом в меню игры добавляются 4 новых опции, а именно: смена камеры и кнопка включения двигателя. Также можно добавлять сюда др. клавиши(если знать консольные команды)
Скрипты дверей:
Покажу вам на примере, как открыть дверь в саркофаге без дешифра) мы просто сделаем дверь открытой по умолчанию, этот трюк можно использовать в любом направлении, в том числе и для новых квестов
Идём в gamedataconfigscripts и ищем скрипт нужной двери или объекта, нам нужна дверь в саркофаге и это sar_door.ltx
Вот вам скрипт с моими комментариями, мои комментарии после символа ;, в вашем скрипте они не нужны, так что удалите их если будете копировать отсюда.
[logic] ;Основное действие
active = ph_door@locked ; При нажатии кнопки “Действия” выполняется скрипт [ph_door@locked]
[ph_door@locked] ; То что выполняется сейчас
locked = true ; Закрыто на замок, значение правда (“Закрыто”, при нажатии на кнопку действия ничего не произойдёт)
closed = true ; Прикрыта, правда (“Прикрыта”, при нажатии на кнопку действия дверь октроется)
tip_open = tip_door_coded ; Всплывающая подсказка “Дверь закодирована”
on_info = <=actor_has_decoder>ph_door@coded ; При нажатии на кнопку действия идёт проверка есть ли декодер
[ph_door@coded] ; Если есть декодер то.
locked = true ;Закрыто, правда
closed = true ;Прикрыто, правда
tip_open = tip_door_decode ; Всплывающая подсказка “Декодировать”
on_info = ph_door@locked
on_use = ph_door@decoding %+sar_access_decoding% ; При начале декодирования, пошёл процесс декодирования и выполняется скрипт sar_access_decoding
[ph_door@decoding] ; В процессе декодирования
locked = true
closed = true
tip_open = tip_door_decoding
on_info = <+sar_finish_decoding>ph_door@unlocked ; Завершение скрипта sar_finish_decoding и выполнение ph_door@unlocked
[ph_door@unlocked] ; Дверь разкодирована и открыта
locked = false
closed = false
show_tips = false
Если мы хотим увидеть правдивые концовки, но мы уже в саркофаге и у нас нет дешифра, то мы просто можем изменить везде
locked = false на true
closed = false на true
И в зависимости что вам надо и где можете менять и изменять, тут всё предельно просто и понятно.
Тема: Создание модов для начинающих, часть 1
Социальные закладки
Опции темы
Отображение
- Линейный вид
- Комбинированный вид
- Древовидный вид
Создание модов для начинающих, часть 1
Введение в моддинг:
Именно с папкой 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, найти в нем строку:
и заменить на:
3. В этом же файле найти строку:
musicwasteland2
и ниже нее выставить следующую строку:
musicmy_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
monstersburerburer
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
Руководство по созданию модов 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 можно заменить на другой, но при этом нужно сохранить все параметры звукового файла, который был использован в игре. Например, чтобы заменить музыку в приёмнике у Сидоровича, нужно файл 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 – огнестрел.