XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Другие игры (только чтение)> S.T.A.L.K.E.R.
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

 
SpiritWolf
Зеленый
offline
Опыт: 20,954
Активность:
Курс молодого бойца. Уроки для начинающих

Курс молодого бойца. Уроки для начинающих

В этой теме коллективно разбирается весь процесс создания мода. Возможно будут конкурсы с наградой.
Правила работы в теме:
После выдачи задания происходит обмен сообщениями с вопросами, уточнениями и результатами.
Когда задание полностью выполненно автор размещает ссылку на файлы с выполненны заданием,
а все сообщения с обсуждением удаляются.
Будем пытаться не использовать специфические файлы, поэтому можно работать в чистом ЗП
В любом уроке, вопросы рассмотренные полно в предыдущем уроке, могут быть описанны весьма сжато, поэтому при возникновении вопросов, прежде всего посмотрите предыдущие.
Уроки 1-3 делались на SGM1.6 (Sigerous MOD), далее на чистом ЗП
Итак начнем:

Урок 001. Распаковка игры

Первое с чем сталкивается любой, кто решил модифицировать STALKER'а, будь это небольшая правка конфигурационных файлов или создание глобального мода - это распаковка игры. Поэтому первым делом рассмотрим распаковщики игры.

S.T.A.L.K.E.R Universal Extractor v1.2

Это универсальный распаковщик для ТЧ, ЧН, ЗП (включая патч v1.6.02). Программа полностью автоматизированна: достаточно указать что вы желаете распаковать (ТЧ, ЧН, ЗП) и директорию игры. Распакованные архивы появляются в корне игры в папке UEgamedata (с целью предотвращения замены файлов, если у вас уже есть папка gamedata).
Если же нет необходимости распаковывать всю игру, а только один из db-файлов, можно воспользоваться одним из следующих инструментов:

S.T.A.L.K.E.R. Data Unpacker v1.0

Это распаковщик ТЧ. Программа проста в использовании, указываем db-файл и каталог для распаковки, запускаем и все.

ClearSky unpacker v1

Данный распаковщик предназначен для ЧН и ЗП. Работа с программой осуществляется из командной строки, однако более удобным является использование bat-файлов.
Итак, кидаем файлы из архива (converter.exe, Microsoft.VC80.CRT.manifest, msvcp80.dll, msvcr80.dll) в корень игры, создаём bat-файл, например unpack.bat, следующего содержания:
» Тыц
converter.exe -unpack -xdb levels\levels.db0 -dir .\gamedata_unpack
converter.exe -unpack -xdb levels\levels.db1 -dir .\gamedata_unpack
converter.exe -unpack -xdb resources\configs.db -dir .\gamedata_unpack
converter.exe -unpack -xdb resources\resources.db0 -dir .\gamedata_unpack
converter.exe -unpack -xdb resources\resources.db1 -dir .\gamedata_unpack
converter.exe -unpack -xdb resources\resources.db2 -dir .\gamedata_unpack
converter.exe -unpack -xdb resources\resources.db3 -dir .\gamedata_unpack
converter.exe -unpack -xdb resources\resources.db4 -dir .\gamedata_unpack
pause
помещаем его туда же и запускаем. Распакованные файлы будут помещены в папку gamedata_unpack (также с целью предотвращения замены файлов, если папка gamedata уже имеется). Данный список архивов справедлив только для ЗП (в нём не перечисленны только архивы из каталога mp/), количество и наименование файлов например для ЧН будет другим, а при установке патчей появятся дополнительные архивы. Состав архивов также зависит от версии игры, например в английской версии (в том числе пиратках с русским текстом) в отличие от полностью русской версии (от GSC/1C) будет дополнительный архив, и в батник необходимо добавить еще одну строку:
converter.exe -unpack -xdb localization\xrussian.db -dir .\gamedata_unpack
При распаковке патчей следует иметь в виду что в них файлы более новые, поэтому и их распаковка должна происходить позже, то есть строка с командой для распаковки патча, должна стоять ниже строк с командами распаковки основных архивов.
Если же нужно распаковать только один из архивов, оставляем в bat-файле только необходимые строки, например для распаковки только levels.db1, bat-файл должен содержать только 2-ю строку. Также при отдельной распаковке патчей и копировании их в каталог gamedata, необходимо подтвердить замену.
Вот и все, игра распакованна и все ресурсы игры доступны нам для редактирования, теперь все ограничивается лишь вашей фантазией и знаниями.

Урок 002. Адаптация модов

Одним из наиболее частых вопросов является просьба адаптировать тот или иной мод. Поэтому напишу небольшое объяснение как совместить один мод с другим. Рассмотрим, например, как установить Повелитель Зоны CoP v1.0 (далее ЗП), предназначенный для чистого ЗП, на SGM 1.7.
Основной проблеммой при этом является то, что каждый из модов может содержать одни и теже модифицированные файлы, при замене которых часть функций может быть утерянна.
Итак, шаг 1. Мы имеем два каталога gamedata, перемещаем ПЗ в gamedata SGM, но без замены файлов. В результате из 14 файлов 10 оказались новыми и без проблем переместились, а 4 оказались модифицированными, с ними придется повозиться.
Шаг 2. Измененными у нас оказались gamedata\configs\ui\ui_mm_god_dlg.xml и sr_no_weapon.script, ui_main_menu.script, xr_conditions.script из каталога
gamedata\scripts\
Берем первый файл game_tutorials.xml из SGM и тот же файл из ПЗ, открываем их с помощью программы WinMerge. Все изменения отмеченны цветом. Наша задача перенести все недостающее, либо согласовать то что измененно.
Первое что мы видим - включение нового файла
#include "ui\ui_mm_god_dlg.xml"
переносим данную команду в game_tutorials.xml из SGM.
Следующие изменения видим в <intro_logo>, это ролики, которые мы видим при старте игры, они нам вообще не интересны, поэтому не будем их переносить.
Далее sr_no_weapon.script. Здесь мы видим что все внутренности функций action_no_weapon:switch_state(), action_no_weapon:zone_enter(), action_no_weapon:zone_leave(), и частично action_no_weapon:update() просто удаленны. Грубо конечно, но эффективно, поступим также.
Смотрим ui_main_menu.script и находим изменения в функциях main_menu:OnButton_load_clicked() и main_menu:OnKeyboard(), вносим их, то есть добавляем
if dik == DIK_keys.DIK_F1 then ... end
и
god.key_binder(dik, keyboard_action, self)
Но, в SGM F1 уже используется, поэтому для вызова ПЗ используем другую клавишу, например F6.
Ну и наконец, проделываем то же с xr_conditions.script
Вот и все, хотя освещены далеко не все проблеммы, которые могут возникнуть, но если включить мозги, все легко решается. Главное проявить терпение, и желательно не ошибаться и не путаться в файлах.

Отредактировано SpiritWolf, 24.10.2011 в 12:36.
Старый 19.10.2011, 17:19
SpiritWolf
Зеленый
offline
Опыт: 20,954
Активность:

Несколько "полезностей" и "удобностей"

» Складываем свои скрипты в один файл
Мы хотим не дёргать файл меню, а сложить обработчики клавиш в свой скриптовый файл.
Заходим в каталог \gamedata\scripts\ и создаём там файл sh.script
В этот файл добавляем три функции для обработки клавиш f6, f7, f8.
function for_ui_main_menu_f6() 
 end 
 function for_ui_main_menu_f7() 
 end 
 function for_ui_main_menu_f8() 
 end
В эти заготовки можно воткнуть любые функции. Например спавна:
function for_ui_main_menu_f6() 
 create("zat_sh_nikitka_skadovsk",db.actor:position().x+3,db.actor:position().y,db.actor:po​sition().z,db.actor:level_v             ertex_id(),d b.actor:game_vertex_id()) 
 end 
 function for_ui_main_menu_f7() 
 give_object_to_actor("repair_arms_box") 
 give_object_to_actor("guidebook_mono") 
 end 
 function for_ui_main_menu_f8() 
 give_object_to_actor("medkit_elite") 
 give_object_to_actor("wpn_gauss") 
 end
Теперь дело за малым. Надо прописать эти функции в файл меню. Открываем его, находим:
elseif db.actor~=nil and dik==DIK_keys.DIK_F5 then 
 self:mod_options() 
и ниже добавляем:
elseif db.actor~=nil and dik==DIK_keys.DIK_F6 then 
 sh.for_ui_main_menu_f6() 
 elseif db.actor~=nil and dik==DIK_keys.DIK_F7 then 
 sh.for_ui_main_menu_f7() 
 elseif db.actor~=nil and dik==DIK_keys.DIK_F8 then 
 sh.for_ui_main_menu_f8() 
Обратите внимание, что перед названием функции стоит имя файла, в котором она расположена, а разделяет их точка.
Старый 21.10.2011, 11:36
X_Hanzo

offline
Опыт: 1,180
Активность:
Вопрос камрадам:
я заменил все звуки стрельбы для оружия в своем моде. сразу заметен красный шрифт в консоли. строки такого плана: Инвалид ogg-comment version,и указание на конкретный звук файл
во время игры оружие игрока стреляет громко,а выстрелов нпс совсем не слышно. может что-то нужно в тэги прописывать? параметры огг файлов (битрейт) я соблюдал как и было рекомендовано,идентично заменяемым
Поменять свои звуки на звуки из других модов категорически не хотел бы,ибо,имхо,нигде не встречал пока даже близко нужного мне качества, везде контрастрайкобразный ширпотреб
зы. в Сигериусе и АМК все звуки гремят как положено,громко. в чем секрет?
Старый 30.05.2012, 00:21
X_Hanzo

offline
Опыт: 1,180
Активность:
вопрос снимаю,браты, нагуглил таки тутор. мобильный инет уг
оказ есть конвертер где эти комменты прописывать можа, он в родном сдк. спасибо за внимание :)
Старый 30.05.2012, 10:49

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 08:18.