ФРПГ На форум Мой ПДА
Меню зоны
Вход в зону
Турист



СТАЛКЕР!
Я всегда рад видеть
еще одну живую душу!
Но я нез наю кто ты?



---

Список Сталкеров
У Костра



Последний пост Самые популярные темы Самые активные Последний файл
  • Ваши страницы Вконтакте (логины в Skype)
  • У Костра
  • САНЧАСТЬ
  • Любимая музыка
  • Общий канал
  • Бaр "Синий орел"
  • Рейды Наемников
  • Игра "Я тебя забаню"
  • Считалка
  • Лагерь новичков
  • Звездочет
  • Квартет
  • Джагер
  • Miami_Killer
  • gromgold
  • [Моды]
    НАРОДНАЯ СОЛЯНКА 2016 (1)
    [Моды]
    Объединённый Пак 2 (1)

    Страница 1 из 11
    Форум » База по Модостроению » Модостроение от А до Я » Добавить предметы в сталкер
    Добавить предметы в сталкер
    gromgoldДата: Четверг, 11/05/2017, 11:30:24 | Сообщение # 1
    Глава ЧН [Гл.Администратор]
    Ранг: Повелитель Зоны
    Сообщений: 1988 Репа: « »
    Спаун через 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")
    Вот тебе все добро при спауне у тебя в инвентаре. все уникальное,
    плюс три комбеза (зеленый ученый, экзоскелет и Скат, вроде бы ).
    вот только обрати внимание, что все это добро разом весит почти
    тонну двести кэгэ. поднимай грузоподъемность или не жадничай. А
    вот если появится желание скинуть это все и распихать по нычкам - несоветую. Достаточно выкинуть пару сотен патронов и игра начинает
    подтормаживать.

    Материал взят с сайта gsc-mod.ucoz.ru
     
    Форум » База по Модостроению » Модостроение от А до Я » Добавить предметы в сталкер
    Страница 1 из 11
    Поиск: