Моддинг Сталкер: Часть 3 / Информационно-развлекательный портал постапокалиптической тематики

Мини-профиль
Приветствуем, гость!
-Приветствую тебя, гость!
Если ты здесь впервой, то зарегистрируйся. А если уже бывал здесь, то входи, не стесняйся!

Связь

Онлайн
Онлайн всего: 2
Заглянувших: 2
Сталкеров: 0

Посетители | Подробно..

Моддинг Сталкер: Часть 3

Главная » Статьи » Моддинг » Другое


Моддинг Сталкер: Часть 3
1. Добавление предметов в сталкер часть 1

Спаун через xrSpawner 1. Предварительные телодвижения

1.1 Итак, прежде чем мы приступим к созданию собственных модов, не помешает проветрить, все ли необходимое у нас есть.
a) Собственно, сама игра, установленная на компьютер.
b) Распаковщик архивов игры STALKER_Data_Unpacker
c) Текстовый редактор, подойдет практически любой, даже Блокнот. Если у вас есть редактор с подсветкой синтаксиса, это будет плюсом.
d) Редактор файла all.spawn. Если вы корифей в HEX-редакторах, берите тот, который нравится. Тем же, кто даже толком не представляет, что такое НЕХ-редактор, крайне рекомендую xrSpawner 0.13.0 Beta от небезызвестного в сталкеровском комьюнити Zeed’а. Удивительно удобная штука, тем более что в дальнейшем речь пойдет именно о xrSpawner.
e) Ровные руки и мыслящая голова.
Если все это у вас есть, продолжим. В том случае, если вы уже распаковали архивы игры, переходите сразу ко второму пункту. Если же нет, то…

1.2 Допустим, игра у вас установлена в папку D:\Games\S.T.A.L.KE.R. Тогда при помощи Unpacker-а извлеките все содержимое файлов gamedata.dbX (где Х – буква или число) из корневого каталога игры в отдельную папку, например D:\Source\gamedata.

1.3 Теперь в папке D:\Source\gamedata\spawns найдите файл all.spawn и скопируйте его в папку D:\Games\S.T.A.L.KE.R. \gamedata\spawns. Если такой папки нет – создайте ее, в дальнейшем, если необходимо будет перенести какой-либо файл в каталог, которого нет – создавайте, учитывая все промежуточные папки.
1.4 Запускаем xrSpawner 0.13.0 Beta , нажимаем «Файл - Открыть файл all.spawn» и указываем ему файл из папки D:\Games\S.T.A.L.KE.R.\gamedata\spawns. Окошки редактора заполнились цифрами и буквами. Теперь у нас все готово, начинаем.

2. Добавление транспорта.

2.1 Начнем, пожалуй, с самого легкого и в достаточной степени необходимого – с добавления транспорта. В правой части окна редактора раскрываем список «Добавить объект» и выбираем пункт Transport. В окне внизу выбираем вид транспорта, который вам необходим, пусть это будет, к примеру, Niva_Green (Нива армейского образца) и жмем кнопку «Добавить».
2.2 В левой части редактора мы видим окно со списком всех объектов, спаунящихся в игре. В самом конце этого списка появился объект m_car, на который указывает синий маркер. Это и есть наша Нива. Давайте обратим теперь внимание на центральную часть редактора и немного разберемся, что есть что. Итак, m_car – тип объекта (Entity), ven_niva_00 – название объекта (можете назвать его по-другому, например Moya_Niva), корд X/Y/Z и вектор X/Y/Z – координаты объекта и углы поворота относительно осей координат. Обратите внимание, что за вертикальную ось отвечает не привычная нам ось Z, а ось Y. Это не ошибка, Zeed сознательно ввел такое обозначение осей, что бы те, кто работает с SDK для мультиплеера, не путались – там координаты поименованы подобным образом. Level_ID указывает, к какой локации относится тот или иной объект, окно Story_ID рекомендую не трогать, по умолчанию новому объекту добавляется значение -1. Если к объекту привязан какой-либо управляющий скрипт, его текст отражается в окне внизу.
Таким образом, наша Нива должна респауниться на локации l01_escape (то есть , на Кордоне), в точке с координатами -239,8912/ -19,43/ -123,0998, с углом поворота относительно вертикальной оси -15 градусов. Это значения «по умолчанию» и они вполне корректны, то есть, оставив все как есть, вы не рискуете обнаружить потом свою машину, висящую где-нибудь на дереве или застрявшей в заборе. Не удивляйтесь отрицательному значению высоты, поскольку центр координат локации Кордон расположен на дороге, неподалеку от автобусной остановки, лагерь же новичков относительно этого места лежит в низине. При желании можете немного поэкспериментировать с числами в окнах «Корд. X/Y/Z», не забудьте подтвердить изменения (нажав «Принять изменения», сохраните строчку, иначе данные пропадут, если вы уберете маркер с редактируемого объекта). После этого сохраняете свой файл all.spawn (Файл - Сохранить), все, можно запускать S.T.A.L.K.E.R. и начинать новую игру. На выходе из бункера Сидоровича вас будет встречать автомобиль, заспауненный лично вами. Поздравляю
2.3 Известно, что «по умолчанию» новоявленные автомобили чрезвычайно хрупки и взрываются буквально от первого же столкновения с забором. Устраняется эта проблема моментально. В папке Source ищем файл veh_niva_u_01 и копируем его в папку D:\Games\S.T.A.L.KE.R.\gamedata\config\models\vehicles. Это файл конфигурации автомобиля. Открываем его блокнотом и ищем раздел [immunities], после чего выставляем все параметры (burn_immunity, strike_immunity и т.д.) равными нулю. Сохраняем и закрываем файл. Теперь ваша Нива неуничтожима в принципе. Небольшая ремарка, повреждения для дверей и крышки багажника считаются отдельно и после парочки столкновений можно лишиться нескольких деталей корпуса, но, думаю, без дверей вы уж как-нибудь покатаетесь. Рекомендую сразу же в ту же папку перенести файлы остальных машин и проделать с ними те же операции. Все.

3 Поиск координат и расстановка объектов на других локациях.

Накатавшись вволю по Кордону, вы, несомненно, захотите попутешествовать по остальным локациям уже на своих четырех. Вот тут вы и столкнетесь с проблемой, поскольку точка перехода Кордон-Свалка находится в здании за шлагбаумом, куда машина, по понятным причинам, не пролазит. Это значит, что вам понадобится новый автомобиль, который встречал бы вас на Свалке. В общем случае речь может идти не только о машинах, но и о монстрах, артефактах, сталкерах, предметах и прочих объектах. Для спауна любого предмета необходимо, как мы уже убедились, задать координаты той точки, где он появится. Алгоритм следующий: спаунимся на локацию, куда вы хотите добавить объект, визуально выбираем наиболее подходящую для этого точку и фиксируем ее координаты, выходим из игры, создаем интересующий нас объект с заранее полученными координатами, вновь спаунимся и проверяем корректность добавления объекта. Теперь опишем все это более подробно на примере автомобиля.
3.1 Допустим, вы хотите поместить белую Ниву неподалеку от перехода Армейские склады – Бар. В окне списка объектов поставьте маркер на первый объект. В окне «Поиск» наберите level_changer. Уже в процессе набора маркер переместиться на объект номер 284, который и будет нашим первым левел-ченджером. Level_cahnger, это точка, в которой расположен триггер, который выдает на экран окошко «Вы хотите перейти на другую локацию?». Объект за номером 284 с именем exit_to_garbage_01 отвечает за переход Кордон-Свалка и нам он не нужен. Нажимайте кнопку «Следующий» до тех пор, пока маркер на остановится на нужной нам точке перехода. Определить, какой level_changer за что отвечает, достаточно просто, смотрите на имя объекта, он подскажет в какую локацию переносит вас триггер. Триггеры одной карты обычно группируются вместе. Объекты 5286 (exit_to_bar_01) и 5287 (exit_to_radar_01) явно принадлежат к одной локации, по совокупности того, куда ведут выходы, можно определить, что триггеры принадлежат Армейским складам, только с нее есть выходы на Бар и Радар. Отлично, значит нас интересует номер 5286 exit_to_bar_01 с координатами (-372,6236/ -21,69933/ -4,806515). Запомните эти числа, затем открывайте строчку 63 actor (это вы), меняйте в поле Level_ID l01_escape на l07_military, измените ваши текущие координаты на координаты точки перехода (-372,6236/ -21,69933/ -4,806515), сохраняйте строчку («принять изменения») и файл («Файл - Сохранить»). Обратите внимание, сразу после загрузки вы попадете в триггер выхода. Это не страшно, достаточно нажать «нет» и вы появитесь на локации Армейские склады. Если же это обстоятельство вам неприятно, попросту измените горизонтальные координаты на 1-2 метра.
3.2 Начинаем новую игру. После загрузки и отказа переходить на другую локацию, нам необходимо найти подходящее место для расположения автомобиля и определить его координаты. Делается это одним из следующих способов.
a) В консоли прописываем команду «rs_stats on» без кавычек и слева на экране появится статистическая информация. Нас интересует последняя строчка Camera position, которая отражает текущие координаты камеры. Почему я заостряю на этом внимание. Камера поднята над поверхностью на 1,5 метра, поэтому, когда будете вписывать данные для спауна, вычитайте из вертикальной координаты полтора метра. Топаем ножками на понравившуюся площадку и записываем на листочке цифры с экрана.
b) Точно так же топаем ножками на понравившееся место и там сохраняемся с помощью quiksave(F6).
c) Принимая во внимание, что вы появляетесь на карте с болтами и биноклем в карманах, ваша персона может сильно заинтересовать недружественных товарищей и мутантов. Дабы обезопасить себя во время проведения топографических съемок, набирайте в консоли команду «demo_record 1», которая освобождает камеру, давая возможность «полетать» по уровню. Управлять камерой просто, нажимаете «огонь» и летите вперед («прицел» - назад), стрелки отвечают за поворот вокруг осей. Далее аналогично – прилетаем на место, запускаем «rs_stats on» и записываем текущие координаты.
3.3 Выходим из игры. Если вы сохранялись при помощи быстрого сохранения, ставьте маркер на объект 63 actor и нажимайте кнопку «Получить координаты из файла сохранения». В окошках должны появится те же самые данные, что вы получили при помощи «rs_stats on». Единственное дополнительное преимущество состоит в том, что при загрузке данных с сейва вы получаете также данные об угле поворота вашего персонажа. Это вам поможет в том случае, если вы хотите определенным образом сориентировать вашу машину относительно, скажем, дороги или другой техники.

3.4 Добавить объект - Транспорт - Niva_White. В поле Level_ID выбираем l07_military (если оно уже не стоит там по умолчанию), в поля координат заносим данные, полученные в п.3.2 Сохраняем строчку и файл. Снова запускаем новую игру. Если вы ничего не изменяли в actor, то вы появитесь в том же месте, что и в прошлый раз, на дороге по пути к Бару, а пробежавшись немного вперед, обнаружите свежепоявившуюся Ниву белого цвета.
Если кому-то интересно, автомобиль на скриншоте заспаунен в координаты (-305,38/-22,53/61,93), углы поворотов относительно осей (0/0/0). Это важно – когда будите вписывать числовые значения координат, дробная часть отделяется от целой с помощью запятой. Если вы поставите точку, при сохранении редактор выдаст ошибку.
Вот таким образом вы можете получать и присваивать нужные координаты любым объектам, начиная от табуретки и заканчивая вертолетами. Внимание, при создании объектов на других локациях всегда сохраняйте изменения и обращайте внимание на то, какое значение Level_ID у вас сохранено. Нередки случаи, когда вместо того, что бы расквартироваться по всей Зоне, монстры сосредоточились на Кордоне, из-за того, что моде (известный вам Бастард), забыл сменить левел _айди у части монстров.

4 Добавление новых монстров

С чисто технической точки зрения заспаунить, скажем, бюрера, никаких трудностей не представляет. Выполняйте все те же операции, что и для автомобиля. То есть, выбираем Добавить объект а Mutants а Burer, корректируем координаты и локацию, если есть необходимость, сохраняемся, заходим и любуемся. НО !!! Каждый житель Зоны, от тушкана до сталкера, должен быть зафиксирован в куче файлов: статистика, описание, инвентарь (то, что вы видите, нажав «обыскать труп») и прочее. Давать описание того, что нужно сделать в каждом фале, это слишком долго и муторно, получится гора сухой писанины, причем, не факт ни я (при наборе) ни вы (при переписывании) не допустим какую-нибудь ошибку. А отсутствие простой запятой в одном файле может привести к крашу игры. Поэтому лучшим выходом из ситуации будет, если вы найдете любой мод, добавляющий монстров и найдете там необходимые файлы, которые нужно добавить/заменить в игре.

Обратите внимание, что у вас есть возможность добавлять не только новых монстров и машины, но и спаунить оружие, предметы, артефакты, старых монстров, сталкеров и проч. Если хотите, выложу и про это...

1: Спавн ГГ
Тут ничего сложного нету, открываеш all.spawn, в поиске ищеш actor (только в Entity) и меняеш его координаты (не забудь выставить Level_ID) вот собственно и всё
2: Спавн предметов в рюкзаке у ГГ
В этом же параметре actor есть скрип в котом прописаны все предметы он выглядит так:
][spawn]
wpn_binoc
detector_simple
novice_outfit
device_torch

далее берём и вписываем названия предметов, оружия, патронов после device_torch, количество указываетсо = xxx (где х - число), тоже всё
3: Спавн НПС
Тут тоже ничего сложного, ищем в поиске к примеру контролёра, вводим m_controller и видим в табле ниже m_controller_normal(normal - сила контролёра), далее добавляем его в базу, потом выбираем этого контролёра в базе, выбераем Level_ID и добавляем столько сколько нужно , прописываем координаты и фсё запускаем и мочим
4: Спавн аномалии
Насечот аномалий не знаю (никогда не пробовал спавнить) но всётки помоему тут всё просто. Ищем в поиске zone_xxx (х - название аномалии) к прмеру zone_gravi, в табле ниже м ыувидим zone_gravi_zone_weak, добавляем в базу и спавним
[dont_spawn_character_supplies]

[spawn]
dialogs.relocate_item_section(trader, "wpn_binoc", "in")
dialogs.relocate_item_section(trader, "wpn_knife", "in")
dialogs.relocate_item_section(trader, "detector_elite", "in")
dialogs.relocate_item_section(trader, "exo_outfit", "in")
dialogs.relocate_item_section(trader, "dolg_scientific_outfit", "in")
dialogs.relocate_item_section(trader, "protection_outfit", "in")
dialogs.relocate_item_section(trader, "device_torch", "in")
dialogs.relocate_item_section(trader, "af_medusa", "in")
dialogs.relocate_item_section(trader, "af_cristall_flower", "in")
dialogs.relocate_item_section(trader, "af_night_star", "in")
dialogs.relocate_item_section(trader, "af_vyvert", "in")
dialogs.relocate_item_section(trader, "af_gravi", "in")
dialogs.relocate_item_section(trader, "af_gold_fish", "in")
dialogs.relocate_item_section(trader, "af_blood", "in")
dialogs.relocate_item_section(trader, "af_mincer_meat", "in")
dialogs.relocate_item_section(trader, "af_soul", "in")
dialogs.relocate_item_section(trader, "af_electra_sparkler", "in")
dialogs.relocate_item_section(trader, "af_electra_flash", "in")
dialogs.relocate_item_section(trader, "af_electra_moonlight", "in")
dialogs.relocate_item_section(trader, "af_rusty_thorn", "in")
dialogs.relocate_item_section(trader, "af_rusty_kristall", "in")
dialogs.relocate_item_section(trader, "af_rusty_sea-urchin", "in")
dialogs.relocate_item_section(trader, "af_ameba_slime", "in")
dialogs.relocate_item_section(trader, "af_ameba_slug", "in")
dialogs.relocate_item_section(trader, "af_ameba_mica", "in")
dialogs.relocate_item_section(trader, "af_drops", "in")
dialogs.relocate_item_section(trader, "af_fireball", "in")
dialogs.relocate_item_section(trader, "af_cristall", "in")
dialogs.relocate_item_section(trader, "af_dummy_glassbeads", "in")
dialogs.relocate_item_section(trader, "af_dummy_pellicle", "in")
dialogs.relocate_item_section(trader, "af_dummy_battery", "in")
dialogs.relocate_item_section(trader, "af_dummy_dummy", "in")
dialogs.relocate_item_section(trader, "af_dummy_spring", "in")
dialogs.relocate_item_section(trader, "af_fuzz_kolobok", "in")
dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in")
dialogs.relocate_item_section(trader, "ammo_9x18_pmm", "in")
dialogs.relocate_item_section(trader, "ammo_9x19_pbp", "in")
dialogs.relocate_item_section(trader, "ammo_9x19_fmj", "in")
dialogs.relocate_item_section(trader, "ammo_11.43x23_hydro", "in")
dialogs.relocate_item_section(trader, "ammo_11.43x23_fmj", "in")
dialogs.relocate_item_section(trader, "ammo_12x70_buck", "in")
dialogs.relocate_item_section(trader, "ammo_12x76_dart", "in")
dialogs.relocate_item_section(trader, "ammo_12x76_zhekan", "in")
dialogs.relocate_item_section(trader, "ammo_5.45x39_ap", "in")
dialogs.relocate_item_section(trader, "ammo_5.45x39_fmj", "in")
dialogs.relocate_item_section(trader, "ammo_9x39_sp5", "in")
dialogs.relocate_item_section(trader, "ammo_9x39_ap", "in")
dialogs.relocate_item_section(trader, "ammo_9x39_pab9", "in")
dialogs.relocate_item_section(trader, "ammo_5.56x45_ss190", "in")
dialogs.relocate_item_section(trader, "ammo_5.56x45_ap", "in")
dialogs.relocate_item_section(trader, "ammo_7.62x54_7h14", "in")
dialogs.relocate_item_section(trader, "ammo_7.62x54_7h1", "in")
dialogs.relocate_item_section(trader, "ammo_7.62x54_ap", "in")
dialogs.relocate_item_section(trader, "ammo_og-7b", "in")
dialogs.relocate_item_section(trader, "ammo_vog-25p", "in")
dialogs.relocate_item_section(trader, "ammo_vog-25", "in")
dialogs.relocate_item_section(trader, "grenade_f1", "in")
dialogs.relocate_item_section(trader, "ammo_m209", "in")
dialogs.relocate_item_section(trader, "ammo_gauss", "in")
dialogs.relocate_item_section(trader, "wpn_colt1911", "in")
dialogs.relocate_item_section(trader, "wpn_desert_eagle", "in")
dialogs.relocate_item_section(trader, "wpn_toz34", "in")
dialogs.relocate_item_section(trader, "wpn_vintorez", "in")
dialogs.relocate_item_section(trader, "wpn_rg-6", "in")
dialogs.relocate_item_section(trader, "wpn_rpg7", "in")
dialogs.relocate_item_section(trader, "wpn_fn2000", "in")
dialogs.relocate_item_section(trader, "wpn_gauss", "in")
dialogs.relocate_item_section(trader, "wpn_addon_scope", "in")
dialogs.relocate_item_section(trader, "wpn_addon_scope_susat", "in")
dialogs.relocate_item_section(trader, "wpn_addon_silencer", "in")
dialogs.relocate_item_section(trader, "wpn_addon_grenade_launcher", "in")
dialogs.relocate_item_section(trader, "wpn_addon_grenade_launcher_m203", "in")
dialogs.relocate_item_section(trader, "bandage", "in")
dialogs.relocate_item_section(trader, "medkit", "in")
dialogs.relocate_item_section(trader, "medkit_scientic", "in")
dialogs.relocate_item_section(trader, "medkit_army", "in")
dialogs.relocate_item_section(trader, "antirad", "in")
dialogs.relocate_item_section(trader, "bread", "in")
dialogs.relocate_item_section(trader, "kolbasa", "in")
dialogs.relocate_item_section(trader, "conserva", "in")
dialogs.relocate_item_section(trader, "vodka", "in")
dialogs.relocate_item_section(trader, "energy_drink", "in")
dialogs.relocate_item_section(trader, "wpn_ak74_m1", "in")
dialogs.relocate_item_section(trader, "wpn_abakan_m1", "in")
dialogs.relocate_item_section(trader, "wpn_fort_m1", "in")
dialogs.relocate_item_section(trader, "wpn_ak74u_m1", "in")
dialogs.relocate_item_section(trader, "wpn_mp5_m1", "in")
dialogs.relocate_item_section(trader, "wpn_groza_m1", "in")
dialogs.relocate_item_section(trader, "wpn_spas12_m1", "in")
dialogs.relocate_item_section(trader, "wpn_winchester_m1", "in")
dialogs.relocate_item_section(trader, "wpn_l85_m1", "in")
dialogs.relocate_item_section(trader, "wpn_lr300_m1", "in")
dialogs.relocate_item_section(trader, "wpn_svd_m1", "in")
dialogs.relocate_item_section(trader, "wpn_sig_m1", "in")
dialogs.relocate_item_section(trader, "wpn_eagle_m1", "in")
dialogs.relocate_item_section(trader, "wpn_val_m1", "in")
dialogs.relocate_item_section(trader, "wpn_mp5_m2", "in")
dialogs.relocate_item_section(trader, "wpn_abakan_m2", "in")
dialogs.relocate_item_section(trader, "wpn_l85_m2", "in")
dialogs.relocate_item_section(trader, "wpn_sig_m2", "in")
dialogs.relocate_item_section(trader, "wpn_rg6_m1", "in")
dialogs.relocate_item_section(trader, "wpn_walther_m1", "in")

Вот тебе все добро при спауне у тебя в инвентаре. все уникальное, плюс три комбеза (зеленый ученый, экзоскелет и Скат, вроде бы ).

вот только обрати внимание, что все это добро разом весит почти тонну двести кэгэ. поднимай грузоподъемность или не жадничай. А вот если появится желание скинуть это все и распихать по нычкам - не советую. Достаточно выкинуть пару сотен патронов и игра начинает подтормаживать.
http://depositfiles.com/files/8157910 - yantar_gitaristokolо выжигателиа СВДшник, там в дсыру в заборе и через лес. Доходим до вертолета, и на север. Там две скалы каменные и междуними щел. Кидаем в них ствол и идем. Выходим, начинаетса загрузка и мы в Саркофаге уже в нутри. баг?

2. Новые предмты часть 2

Создание новых предметов

В этой статье я расскажу как создавать новые предметы:

Для начал находим файл items.ltx, находящийся в папке config/misc/, и копируем какой-нибудь предмет, я, например, взял:
[bread]:identity_immunities
GroupControlSection = spawn_group
discovery_dependency =
$spawn = "food and drugs\bread"
;$prefetch = 32
class = II_FOOD
cform = skeleton
visual = weapons\bred\bred.ogf
description = enc_equipment_food_bread1

inv_name = Bread
inv_name_short = Bread
inv_weight = 0.3 ;0.2

inv_grid_width = 1
inv_grid_height = 1
inv_grid_x = 11
inv_grid_y = 9
cost = 20

attach_angle_offset = -0.287979, 1.560923, 1.544060
attach_position_offset = 0.096910, -0.013594, 0.107925
attach_bone_name = bip01_r_hand
auto_attach = false

// should be deleted after update
bone_name = bip01_r_hand
position_offset = 0.0,0.0,0.0
angle_offset = 1.570790,1.570790,3.92699

; eatable item
eat_health = 0.05
eat_satiety = 0.2
eat_power = 0
eat_radiation = 0
wounds_heal_perc = 0
eat_portions_num = -1

; food item
slot = 4
animation_slot = 4

;hud item
hud = wpn_vodka_hud

Вставляем его копию в конец, меняем название:

[bread]

На:

[test]

А также:
inv_name = Bread
inv_name_short = Bread

На:
inv_name = test
inv_name_short = test

И description = enc_equipment_food_bread1 на description = enc_equipment_food_bread1_test

И, также, "по желанию":

eat_health = 0.05 eat_satiety = 0.2 eat_power = 0 eat_radiation = 0 wounds_heal_perc = 0 eat_portions_num = -1

Всё, в item.ltx работа закончена, теперь переходим к редактированию описания, открываем string_table_enc_equipment "Блокнотом". Что мы там видим: все описания и названия прописаны по тегам:

Название в игре

И:

Описание в игре

Пишем:

Тестовый предмет

И:



Тестовый предмет, разработанный в сверхсекретных лабораториях Зоны :)



Сохраняем... Все! Основная работа завершена! Теперь добавим предмет торговцам, например, Сидоровичу.

Открываем trader_trader из папки config/misc (работа с ним подробно описана в этой статье), прописываем:

test = 0.3, 0.5

В секции:

[trader_generic_buy]

И далее в:

[supplies_start]

test = 10, 1

В [supplies_after_fabric]

test = 10, 1

В [trader_start_sell]

И в:

[trader_after_fabric_sell]

test = 1. 3

Сохраняем, запускаем игру, торгуем с Сидоровичем и видим у него два вида хлеба: один из них - наш :)

О том как, делать иконки для новых предметов, детально описано в статье BAC9-FLCL.

3. Новые артефакты

Сегодня мы на примере научимся созданию новых артефактов. Создадим, например, артефакт под названием "Ромашка".

Статья написана по материалам Hunter Mod.
Создание конфига

Заходим в папку gamedata\config\misc и открываем файл artefacts.ltx.
И находим, например, артефакт "Медуза":
[af_medusa]:af_base
GroupControlSection = spawn_group
$spawn = "artifacts\moscito medusa"

$prefetch = 64
cform = skeleton
class = ARTEFACT

visual = physics\anomaly\artefact_blackdrip.ogf
description = enc_zone_artifact_af-medusa
inv_name = af-medusa
inv_name_short =
inv_weight = 0.5

inv_grid_x = 9
inv_grid_y = 4

cost = 1000

jump_height = .5

particles = anomaly2\artefact\artefact_gravi

lights_enabled = false

;скорости увеличения (уменьшения)
health_restore_speed = 0.0
radiation_restore_speed = 0.0005
satiety_restore_speed = 0.0
power_restore_speed = 0.0
bleeding_restore_speed = 0.0
hit_absorbation_sect = af_medusa_absorbation

artefact_activation_seq = af_activation_bold

[af_medusa_absorbation]
burn_immunity = 1.0 ;коэффициенты иммунитета
strike_immunity = 1.0
shock_immunity = 1.0
wound_immunity = 1.0
radiation_immunity = 1.0
telepatic_immunity = 1.0
chemical_burn_immunity = 1.0
explosion_immunity = 1.0
fire_wound_immunity = 0.98

В этой секции задаются параметры артефакта, начиная от внешнего вида и заканчивая коэффициентами различных эффектов вроде вывода радиации. Сделаем копию секции, принадлежающей "Медузе", и заменим её название с af_medusa на af_romashka.

Должно выйти примерно вот так:
[af_romashka]:af_base
GroupControlSection = spawn_group
$spawn = "artifacts\moscito romashka"

$prefetch = 64
cform = skeleton
class = ARTEFACT

visual = physics\anomaly\artefact_blackdrip.ogf
description = enc_zone_artifact_af-romashka
inv_name = af-romashka
inv_name_short =
inv_weight = 0.5

inv_grid_x = 9
inv_grid_y = 4

cost = 1000

jump_height = .5

particles = anomaly2\artefact\artefact_gravi

lights_enabled = false

;скорости увеличения (уменьшения)
health_restore_speed = 0.0
radiation_restore_speed = 0.0005
satiety_restore_speed = 0.0
power_restore_speed = 0.0
bleeding_restore_speed = 0.0
hit_absorbation_sect = af_romashka_absorbation

artefact_activation_seq = af_activation_bold

[af_romashka_absorbation]
burn_immunity = 1.0 ;коэффициенты иммунитета
strike_immunity = 1.0
shock_immunity = 1.0
wound_immunity = 1.0
radiation_immunity = 1.0
telepatic_immunity = 1.0
chemical_burn_immunity = 1.0
explosion_immunity = 1.0
fire_wound_immunity = 0.98

Назначение некоторых параметров, влияющих на одевшего артефакт:
health_restore_speed - прирост к скорости восстановления здоровья
radiation_restore_speed - прирост скорость вывода радиации
satiety_restore_speed - прирост к голоду
power_restore_speed - прирост к выносливости
bleeding_restore_speed - прирост к скорости остановки кровотечений
Создание описания и имени артефакта

Заходим в gamedata\config\text\rus и открываем файл string_table_enc_zone.xml. Добавим туда строку с названием артефакта.

"Ромашка"


Теперь у артефакта есть имя, но одного его недостаточно. Нужно сделать описание.
Поэтому добавим и его.

Очень странный артефакт. Впервые появился в Зоне где-то в 2011 году, но толку от него - ноль. Ученые
не обнаружили никакого влияния артефакта на организм носителя.



Все, поздравляю, вы только что создали свой первый артефакт! :)

4. Как делать новую хавку

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

Это не просто красивая история — в модификации, которую мы сегодня создадим, найдется место и наркотикам, и рому (и прочим алкогольным напиткам), и фантастическим подвигам.

Характеристики

В первом вскрытии «Сталкера» (см. прошлый номер «Игромании») мы воспользовались утилитой S.T.A.L.K.E.R. Data Unpacker (устанавливайте ее с нашего DVD из раздела «Игрострой»), она умеет распаковывать «сталкеровские» архивы. Сегодня нам без нее тоже не обойтись.

Первым делом создайте в игровой директории подкаталоги \temp и \gamedata (в последнюю мы будем складывать все измененные файлы). Теперь скопируйте запускающий файл STALKER Data Unpacker (полное его название — STALKER_Data_Unpacker_RU.exe, а если у вас английская версия игры, то STALKER_Data_Unpacker_EN.exe) в игровую папку и наберите в командной строке STALKER_Data_Unpacker_RU.exe gamedata.db0 \temp (в случае с английской версией RU надо заменить на EN).

В директории <Каталог игры>\temp появится все содержимое архива gamedata.db0. Сегодня нас из всего этого великолепия интересует только файл items.ltx, посвященный всяческим полезным вещичкам из инвентаря главного героя. Находится этот файл в субдиректории \config\misc. Его мы и будем править. Для этих целей подойдет обычный «Блокнот».

Файл разделен на три части (имена каждой из них отмечены рядами точек с запятыми): FOOD, MEDICAL и DEVICES. Каждая из них содержит характеристики различных видов предметов: первая — продуктов питания, вторая — медицинских принадлежностей, третья — всевозможных девайсов.

Каждой отдельной вещи отводится свой раздел (блок), имя которого заключено в квадратные скобки. Практически во всех блоках из первых двух частей файла вы сможете встретить следующие атрибуты:

cost — стоимость предмета;

inv_name — название вещи; обратите внимание, что здесь прописывается не то наименование, которые вы видите в игре, а лишь ссылка на него (имя раздела в файле string_table_enc_equipment.xml, в нем содержится само название);

inv_weight — вес;

inv_grid_width — количество клеток по горизонтали, которое занимает вещь в инвентаре;

inv_grid_height — число клеток по вертикали;

description — описание предмета; как и в случае с показателем inv_name, здесь содержится не сам текст, а лишь указание на него (а точнее — название соответствующего раздела в файле string_table_enc_equipment.xml).

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

eat_health — прибавка к здоровью;

eat_satiety — насыщение организма (сытость);

eat_power — бонус к силе (энергии);

eat_radiation — защита от радиации; в данном случае отрицательное значение параметра улучшает защиту (при положительном значении ваш герой будет переносить радиацию еще тяжелее, чем обычно);

eat_alcohol — действие алкоголя; чем выше число, тем большие проблемы со зрением и координацией испытывает герой;

wounds_heal_perc — остановка кровотечения.

Пиво и ром — почувствуйте разницу. После употребления пива вашего героя лишь слегка заносит на поворотах. Ром куда крепче — перед глазами все буквально плывет.

Готовка

Путем редактирования файла items.ltx добавим в игру ряд уникальных полезных вещиц, которые здорово разнообразят джентльменский набор сталкера и окажут вам неоценимую помощь в сложных игровых ситуациях.

Алкоголь

Водку описывает блок под названием vodka (кто бы мог подумать?!). Ее мы преобразуем в ром или там пиво — как вам угодно. В первом случае понадобятся следующие изменения: cost — 200, eat_satiety — 0, eat_health — -0.03, eat_radiation — -0.5, eat_alcohol — 0.3.

В оригинале водка слегка сбивает у вас аппетит и чуть-чуть укрепляет здоровье — все это, согласитесь, не совсем естественно. У нас же в моде заменяющий ее ром никакого насыщения организму не дает, а здоровье, наоборот, заметно подсаживает. Да и крепкий он очень — в глазах от него плывет еще сильнее, чем он водки (так что будьте с ним осторожнее). Зато он намного эффективнее борется с радиацией.

Если вы желаете заменить водку пивом, изменения должны быть такими: cost — 50, eat_health — 0, eat_radiation — -0.2, eat_alcohol — 0.05. Этот пенный напиток в нашем моде, по сути, является облегченной версией водки: от радиации предохраняет похуже, но и опьянение от него слабое.
Энергетик

Энергетический напиток Non Stop несложно переделать в алкогольно-энергетический. Для того чтобы изготовить этот чудный коктейль, нужно перейти в раздел energy_drink и смешать ингредиенты в следующих пропорциях: cost — 80, eat_power — 0.7, eat_alcohol — 0.08, eat_radiation — -0.3. Готово — можно пробовать. Однако учтите, что эта гремучая смесь немного опьяняет, зато является средством защиты от радиации и энергетиком в одном флаконе. Хотя, конечно, оба этих полезных качества в данном случае не столь эффективны, как при использовании узкоспециализированных водки и Non Stop.
Наркотик

Обычную же консерву мы превратим в... мощный наркотик-стимулятор (благо консервы в игре не очень-то и нужны, ведь есть другая еда — хлеб и колбаса). Все, что для этого нужно, — внести следующие преобразования в блок conserva: cost — 120, inv_weight — 0.2, eat_health — -0.05, eat_satiety — 0.1, eat_power — 1.8. Получившаяся смесь губительно сказывается на здоровье, но дает просто фантастический прилив энергии, да и весит всего ничего. Кроме того, этот наркотик немного отбивает аппетит.

После того как корректировка файла items.ltx будет завершена, скопируйте его в <Каталог игры>\gamedata\config\misc (для этого вам понадобится предварительно создать в папке \gamedata подкаталог \config\misc).
Упаковка

С «начинкой» покончено. Осталось придать продуктам питания подходящий внешний вид, а также сделать соответствующие названия и описания.

Переименование

Чтобы изменить описания, вам придется поработать с архивом gamedata.db9. Распаковать его можно следующим образом: находясь в директории игры, наберите в командной строке: STALKER_Data_Unpacker_RU.exe gamedata.db9 \temp. Теперь отправляйтесь в папку <Каталог игры>\temp\config\text\rus, где вас уже поджидает файл string_table_enc_equipment.xml, содержащий наименования и описания предметов. Его также можно редактировать в «Блокноте».

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

Все xml-файлы устроены следующим образом. Каждой надписи соответствует небольшой раздел вида:



Y



Здесь X — название блока, то есть кодовое наименование объекта, к которому относится надпись. Y — сам текст.

Сначала исправьте названия переделанных нами ранее вещей. Отыщите блок со словом Vodka. На месте Y в нем стоят слова «водка «Казаки». Исправьте ее на «Ром» или «Пиво» (без кавычек) — в зависимости от того, какой напиток вы добавили в игру.

В разделах energy_drink_name и energy_drink_short_name сочетание «Энергетический напиток Non Stop» следует заменить, скажем, на «Алкогольно-энергетический напиток». Наконец, в блоке Conserva исходный текст «Радость туриста» следует исправить на «Наркотик-стимулятор».

Далее подредактируйте описания экс-водки (раздел enc_equipment_food_vodka1), экс-энергетика (enc_equipment_energydrink) и экс-консервов (enc_equipment_food_conserva1).

После завершения всех текстовых преобразований файл string_table_enc_equipment.xml следует скопировать в <Каталог игры>\gamedata\config\text\rus (предварительно создав в папке \gamedata\config субдиректорию \text\rus).
Перевоплощение

Самое время изменить внешний вид наших крайне полезных продуктов питания. На этот раз нам понадобится архив gamedata.db7. Распакуйте его, напечатав в командной строке следующий текст: STALKER_Data_Unpacker_RU.exe gamedata.db7 \temp. В директории <Каталог игры>\temp\textures\ui вы обнаружите файл ui_icon_equipment.dds. Он содержит изображения вещей из инвентаря. Чтобы увидеть и подкорректировать эти картинки, файл нужно перевести в стандартный формат. В этом вам поможет набор утилит DXT Tools (находится на нашем диске в разделе «Игрострой»).

Ром значительнее лучше водки защищает от радиации. Но лучше им не злоупотреблять.

Скопируйте файл ui_icon_equipment.dds в каталог, в который вы установили DXT Tools. Находясь в этом каталоге, наберите в командной строке: readdxt.exe ui_icon_equipment.dds. В результате вы получите искомую картинку в виде файла test.tga. Открывайте его в Photoshop (или в каком-то другом мощном графическом редакторе) и готовьте кисти.

Полученный файл содержит альфа-канал. Чтобы его увидеть, в списке каналов (меню Channels) программы выберите пункт Alpha 1 (вместо прежнего RGB). Вашему взору предстанут знакомые вам по игре изображения, но закрашенные в белый цвет. Эти шаблоны задают форму каждого отдельного предмета и его границы. Если вы задались целью хоть чуточку изменить размер объекта, не забудьте отредактировать и альфа-канал. Например, если вы подрисовываете к вещи какой-то новый элемент, перейдите в режим в Alpha 1 и обязательно залейте его белым цветом.

Впрочем, если вы не планируете глобальных изменений, можно и вообще не трогать альфа-канал. Например, для трансформации водки в ром или пиво совершенно необязательно менять форму бутылки. Достаточно просто-напросто «переклеить» этикетку и нанести какую-то новую надпись (название напитка или производителя) или логотип. То же самое и с банкой энергетика. Только учтите, что новые рисунки должны быть максимально крупными, иначе вы их просто не разглядите в игре.

Консервную банку можно преобразовать в... таблетку. Здесь-то вам как раз и пригодится альфа-канал. Совсем несложно закрасить черным цветом (именно тем его оттенком, что разграничивает предметы в файле) консерву и на ее месте с использованием инструмента «Эллипс» (Ellipse Tool) нарисовать одну или лучше несколько таблеточек. После этого, перейдя в режим альфа-канала, закрасьте получившиеся кружки белым цветом.

Когда все графические экзерсисы будет закончены, сконвертируйте файл test.tga обратно в формат dds. Для этого в папке DXT Tools пропишите в командной строке: nvdxt test.tga. Переименуйте сформированный файл test.dds в ui_icon_equipment.dds и скопируйте в <Каталог игры>\gamedata\textures\ui.
* * *

Мы добавили в игру четыре невиданных ранее продукта: ром, пиво, алкогольно-энергетический напиток и наркотик-стимулятор. При желании вы можете сотворить еще несколько не менее полезных продуктов, изменяющих характеристики главного героя. Описанным в статье способом очень легко создавать небольшие, но крайне интересные модификации. Главное — не забывать о балансе
Категория: Другое | Добавил: Alive (15.01.2011)
Просмотров: 7443 | Комментарии: 3 | Теги: Модострой Ч.3 | Рейтинг: 4.3/3
Всего комментариев: 3
3 Капитан_Иванцов   (10.02.2013 12:52)
Большое спасибо! funny funny funny funny

2 Николас_Раш   (05.10.2012 14:41)
(если да то жаль... boz )

1 Николас_Раш   (05.10.2012 14:40)
А это для ТЧ???

Имя *:
Email:
Код *:

Все материалы из игры, использованные для сайта принадлежат GSC Game World.
Все материалы и графическая составляющая сайта являются собственностью их владельцев, любое копирование
материалов и графики без разрешения на то администрации Запрещено!
Stalker: Shadow of Chernobyl · Stalker: Clear Sky · Stalker: Call of Pripyat · Stalker 2 · Survarium · Fallout 3/NV · Fallout 4
2010-2016 | Хостинг от uCoz | Powered by Math_Thunderpick and Alive


Яндекс.Метрика Тиц и pr сайта
Хостинг от uCoz