КПК

Гость



Меню сайта


Категории раздела
Ваши рассказы [273]
Видео Онлайн [45]
Билды [2]
Сталкер-Оновное [58]
Интервью с разработчиками [12]
Разное [248]
Сталкер Зов Припяти информация [130]
Сталкер Чистое Небо информация [79]
Сталкер Тени Чернобыля информация [151]
Мини-Чат
S.T.A.L.K.E.R., Metro, Survarium, Новый Союз

Канал на YouTube  Сталкер Вконтакте
Друзья
Вселенная игры S.T.A.L.K.E.R.

Все для GTA 5


Все баннера
Из Галереи
Форум

Земля - плоская, Шар - глобальныйобман сатанистов илюминатов
Написал:artem17petrov17 (02.03.2021)(0)
В разделе:[Общий]


Народная Солянка + Мёртвый Город + ООП + Коллекционер (2013)
Написал:artem17petrov17 (02.03.2021)(4)
В разделе:[Общий]


Stalker: Left 2 Die
Написал:artem17petrov17 (02.03.2021)(3)
В разделе:[Общий]

Рейтинги
Каталог популярных сайтов

Подробная статистика

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
 
 
Главная » Статьи » Сталкер-Оновное

Моддинг Сталкер: Часть 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 "Блокнотом". Что мы там видим: все описания и названия прописаны по тегам:

<string id="название из inv_name"> <text>Название в игре</text> </string>

И:

<string id="описание из description"> <text>Описание в игре</text> </string>

Пишем:

<string id="test"> <text>Тестовый предмет</text> </string>

И:

<string id="enc_equipment_food_bread1_test">

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

</string>

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

Открываем 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

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

О том как, делать иконки для новых предметов, детально описано в статье 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. Добавим туда строку с названием артефакта.
<string id="af-romashka">
<text>"Ромашка"</text>
</string>

Теперь у артефакта есть имя, но одного его недостаточно. Нужно сделать описание.
Поэтому добавим и его.
<string id="enc_zone_artifact_af-romaska">
<text>Очень странный артефакт. Впервые появился в Зоне где-то в 2011 году, но толку от него - ноль. Ученые
не обнаружили никакого влияния артефакта на организм носителя.</text>
</string>

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

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-файлы устроены следующим образом. Каждой надписи соответствует небольшой раздел вида:

<string id="X">

<text>Y</text>

</string>

Здесь 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.
* * *

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



Источник: http://stalker-mc.ru/publ/modding/modding_stalker_chast_3/8-1-0-33
Категория: Сталкер-Оновное | Добавил: leiytinant (29.07.2011) | Автор: Серый E
Просмотров: 10825 | Комментарии: 2 | Рейтинг: 5.0/3

Также читают:

Всего комментариев: 2
2 TERESHI  
при запуске xrSpawner

1 TERESHI  
у меня ошибка :
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentOutOfRangeException: Non-negative number required.
Parameter name: count
at System.IO.BinaryReader.ReadBytes(Int32 count)
at xrSpawner.Form1.open_all_spawn2()
at xrSpawner.Form1.ОткрытьallspawnToolStripMenuItem_Click(Object sender, EventArgs e)
at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3607 (GDR.050727-3600)
CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
xrSpawner
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///E:/Programms/xrSpawner%200.13.0%20Beta/xrSpawner.exe
----------------------------------------
Microsoft.VisualBasic
Assembly Version: 8.0.0.0
Win32 Version: 8.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3614 (GDR.050727-3600)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Runtime.Remoting
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
System.Configuration
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3082 (QFE.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
1 Авторское право на игру и использованные в ней материалы принадлежат GSC Game World.
Любое использование материалов сайта возможно только с разрешения его администрации.
Для просмотра сайта рекомендуем использовать Mozilla Firefox или браузер на WebKit.
Powered by lmi11 ©(2009-2024). Хостинг от uCoz.