|
Отмычка
Группа: Новички
Сообщений: 4
Награды: 0
Репутация: 2
Статус: Вышел
|
Да будут машины и монстры своими руками. Да будет меченый терминатором.(это только для теней чернобыля) Спаун через 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_gitarist okolо выжигателиа СВДшник, там в дсыру в заборе и через лес. Доходим до вертолета, и на север. Там две скалы каменные и междуними щел. Кидаем в них ствол и идем. Выходим, начинаетса загрузка и мы в Саркофаге уже в нутри. баг? Добавлено (05/07/09, 15:28) --------------------------------------------- Да будет в руках ГГ новая пушка.!!:-) Добавим в игру АК101. Внешний вид Позаботимся о том, чтобы наше оружие отличалось внешне от того же АК74. Текстуры Нарисуем для оружия новую текстуру. Подробно останавливаться на этом процессе не буду, ознакомьтесь с примером, приведенным здесь. Итак, основываясь на текстуре АК74, мы сделали вот такую текстуру: Файлы текстур мы назвали: wpn_ak10.dds wpn_ak10_bump#.dds wpn_ak10_bump.dds Модели Новых моделей мы пока делать не станем, просто воспользуемся дублированными моделями от АК74. Скопируем папку: gamedata\meshes\weapons\ak47\ И назовем её ak-101. Содержимое, соответственно, переименуем в: wpn_ak101.ogf wpn_ak101_hud.ogf. Теперь пропишем в эти модели созданные нами текстуры. Способ описан здесь. Иконки Добавим в игру иконки, которыми оружие будет отображаться в инвентаре. Способ подробно описан здесь. Вот, что получилось в конечном итоге: Конфиги Новое оружие мы будем делать на базе оригинальных конфигурационных файлов. Создадим АК101 на базе конфигов АК74. Свойства оружия Скопируем файл из папки: gamedata\config\ak74.ltx Назовем его ak101.ltx. Отредактируем свойства по своему усмотрению (но лучше - в соответствии с достоверной информацией о характеристиках оружия, т.к. АК101 - всё-таки оружие реально существующее). Редактирование конфигов оружия подробно описано в отдельном уроке. В данном случае конфиг был составлен таким образом: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [wpn_ak101]:identity_immunities GroupControlSection = spawn_group discovery_dependency = $spawn = "weapons\ak-101" ; name and section in level editor $npc = on $prefetch = 8 scheduled = off ;[] option for ALife Simulator cform = skeleton class = WP_AK74 ; class of the weapon that corresponding to CPP class min_radius = 30 ; [] for AI max_radius = 100 ; [] for AI description = enc_weapons1_wpn-ak101 ef_main_weapon_type = 2 ef_weapon_type = 6 ;----------------------------------------------------------------------------------- holder_range_modifier = 1.0 ; во сколько раз увеличивается eye_range holder_fov_modifier = 0.7 ; во сколько раз увеличивается eye_fov ;----------------------------------------------------------------------------------- cost = 2;4000 weapon_class = assault_rifle ammo_limit = 210 ammo_elapsed = 30 ammo_mag_size = 30 fire_modes = 1, -1 ammo_class = ammo_5.56x45_ss190, ammo_5.56x45_ap grenade_class = ammo_vog-25, ammo_vog-25p launch_speed = 0 hand_dependence = 1 single_handed = 0 slot = 2 animation_slot = 2 inv_name = wpn-ak101 inv_name_short = wpn-ak101 inv_weight = 3.3 inv_grid_width = 5 inv_grid_height = 2 inv_grid_x = 11 inv_grid_y = 29 kill_msg_x = 0 kill_msg_y = 28 kill_msg_width = 84 kill_msg_height = 28 ;----------------------------------------------------------------------------------- ;params of weapon recoil fire_dispersion_base = 0.15;0.2 control_inertion_factor = 1.1f;1.25f ;отдача cam_relax_speed =6;5;3.5; 0.15 cam_dispersion = 0.1;0.15 cam_dispersion_inc = 0.2;0.3 cam_dispertion_frac = 0.8;0.9 cam_max_angle = 10.0 cam_max_angle_horz = 20.0 cam_step_angle_horz = 1.1;1 fire_dispersion_condition_factor = 5.7;5 misfire_probability = 0.0055;0.003 misfire_condition_k = 0.06;0.05 condition_shot_dec = 0.00035;0.0001 ;----------------------------------------------------------------------------------- fire_point = 0,0.216,0.638 fire_point2 = 0,0.216,0.730 flame_particles = weapons\generic_weapon05 smoke_particles = weapons\generic_shoot_00 grenade_flame_particles = weapons\generic_weapon01 shell_point = 0,0.216,0.174 shell_particles = weapons\generic_shells PDM_disp_base = 1.0 PDM_disp_vel_factor = 1.3 PDM_disp_accel_factor = 1.3 PDM_crouch = 1.0 PDM_crouch_no_acc = 1.0 ; ttc hit_power = 0.36, 0.4, 0.43, 0.46 hit_impulse = 140 hit_type = fire_wound fire_distance = 1700 bullet_speed = 1000 rpm = 750 use_aim_bullet = true time_to_aim = 1.0 ;params when silencer is attached ;similar to corresponding params without prefix silencer_ silencer_hit_power = 0.38 silencer_hit_impulse = 120 silencer_fire_distance = 250 silencer_bullet_speed = 600 hud = wpn_ak101_hud position = -0.026,-0.172,0 orientation = 0,0,0 ;--STRAP PARAMETERS----------------------------------------------------------------- strap_position = -0.16,-0.40,0.15 strap_orientation = -10,-5,10 strap_bone0 = bip01_spine2 strap_bone1 = bip01_spine1 visual = weapons\ak-101\wpn_ak101 light_color = 0.6,0.5,0.3 light_range = 5 light_var_color = 0.05 light_var_range = 0.5 light_time = 0.2 ph_mass = 5 ;addons scope_status = 2 silencer_status = 2 grenade_launcher_status = 0;2 zoom_enabled = true scope_zoom_factor = 50 scope_name = wpn_addon_scope scope_x = 42 scope_y = 3 silencer_name = wpn_addon_silencer silencer_x = 218 silencer_y = 13 grenade_launcher_name = wpn_addon_grenade_launcher grenade_launcher_x = 116 grenade_launcher_y = 23 ;sounds (name of the sound, volume (0.0 - 1.0), delay (sec)) snd_draw = weapons\ak74_draw snd_holster = weapons\generic_holster snd_shoot = weapons\ak74_shot_0 snd_shoot1 = weapons\ak74_shot_1 snd_shoot2 = weapons\ak74_shot_2 snd_shoot3 = weapons\ak74_shot_3 snd_empty = weapons\gen_empty, 0.5 snd_reload = weapons\ak74_reload, 0.7, 0.35 snd_shoot_grenade = weapons\gen_grenshoot snd_reload_grenade = weapons\gen_grenload, 1.0, 0.8 snd_switch = weapons\groza_switch, 1.0, 0.5 ;params when silencer is attached ;similar to corresponding params without prefix silencer_ ;silencer_flame_particles = weapons\generic_weapon01 silencer_smoke_particles = weapons\generic_shoot_00 snd_silncer_shot = weapons\w_ak74_shot1 silencer_light_color = 0.6,0.5,0.3 silencer_light_range = 0.01 silencer_light_var_color = 0.05 silencer_light_var_range = 0.5 silencer_light_time = 0.2 ;----------------------------------------------------------------------------- ;-- HUD DESCRIPTION ;----------------------------------------------------------------------------- [wpn_ak101_hud] allow_inertion = true ;similar to corresponding params in weapon section but for 1st person view shell_point = -0.065000,0.000000,-0.045000 shell_dir = 0.0, 1.0, 0.0 fire_point = 0.09,0.020,-0.06 fire_point2 = 0.30, 0.00, 0.05 fire_bone = wpn_body orientation = 0, 0, 0 position = 0, 0, 0.05 visual = weapons\ak-101\wpn_ak101_hud grenade_bone = wpn_grenade ; animation names anim_idle = idle anim_idle_aim = idle_aim anim_reload = reload anim_draw = draw_wo_gl anim_holster = holster_wo_gl anim_shoot = shoot ; animation names ; attached grenade launcher [GRENADE fire mode] anim_idle_g = idle_grenade anim_idle_g_aim = idle_g_aim anim_reload_g = reload_grenade anim_shoot_g = shoot_grenade anim_switch_grenade_on = switch_grenade anim_switch_grenade_off = switch_grenade_off anim_draw_g = draw_grenade_mode anim_holster_g = holster_grenade_mode ; attached grenade launcher [NORMAL fire mode] anim_idle_gl = idle_w_gl anim_idle_gl_aim = idle_w_gl_aim anim_reload_gl = reload_w_gl anim_draw_gl = draw_w_gl anim_holster_gl = holster_w_gl anim_shoot_gl = shoot_w_gl anim_idle_sprint = idle_sprint ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;HUD offset in zoom mode (to all) ;(use CONSOLE: hud_adjust_mode 0,1,2, then keys WSADQE and P to show current value in console) zoom_offset = -0.112400,0.016800,-0.115000 zoom_rotate_x = 0.000200 zoom_rotate_y = 0.017500 zoom_hide_crosshair = true ; same as above, but for attached grenade launcher for ; in NORMAL shoot mode grenade_normal_zoom_offset = -0.112500,0.014000,0.000000 grenade_normal_zoom_rotate_x = -0.000900 grenade_normal_zoom_rotate_y = 0.017200 ; same as above, but for attached grenade launcher for ; in GRENADE mode grenade_zoom_offset = -0.039600,-0.433100,0.000000 grenade_zoom_rotate_x = -0.538700 grenade_zoom_rotate_y = -0.033800 Регистрация Итак, с характеристиками разобрались. Теперь зарегистрируем оружие в файле weapons.ltx. Для этого пропишем в него строку следующего вида: #include "w_ak101.ltx" Также, необходимо прописать модели, используемые для отображения оружия, в prefetch.ltx: [...] weapons\abakan\wpn_abakan weapons\abakan\wpn_abakan_hud weapons\ak-101\wpn_ak101 weapons\ak-101\wpn_ak101_hud weapons\ak74\wpn_ak74 w eapons\ak74\wpn_ak74_hud [...] Так же не забудте в файле mp_ranks.ltx прописать после available_items (которое внизу) прописать название своего оружия. Это предотвратит вылет при убийстве ГГ. Добавление в игру Осталось добавить оружие в игру. Выдайте его некоторым NPC (как это сделать?), расширьте ассортимент торговцев (как это сделать?). Добавлено (05/07/09, 15:31) --------------------------------------------- Редактирование NPC Вступление В этой статье мы научимся редактировать NPC: изменять содержимое их инвентаря, реплики, поведение, имя, и другие параметры. Параметры За параметры NPC отвечают файлы: \config\gameplay\character_desc_[название локации].xml Каждый из них разбит на секции - по одной на NPC. Используются следующие параметры: <name>...</name> - Имя (ссылка на строку в текстовом массиве). <icon>ui_npc_...</icon> - Иконка для диалогов/торговли. <bio>..._bio</bio> - Биография (в игре не используется). <class>...</class> - Класс (лучше не трогать).Imp 12:46, 12 августа 2007 (EEST)Нужно для того что-бы автоматические респавнеры могли спавнить немного разных персонажей. То есть например в игре есть описание восьми (кажеться может и больше) разных новичков и что бы при автоматическом респавне не получалась куча братьев-близнецов, респавнер настраивается на класс персонажей и спавнит случайным образом разных персонажей одного класса. <community>...</community> - Группировка. <rank>...</rank> - Ранг. <reputation>...</reputation> - Репутация. <money min="..." max="..." infinitive="..."/> - Количество денег (infinitive="1" - бесконечные деньги). <snd_config>...</snd_config> - Набор звуков. <crouch_type>-1</crouch_type> - Тип приседания. Лучше не трогать. <visual>actors\...</visual> - Внешность. Влияет как на внешний вид костюма, так и на его свойства. Укажите здесь экзоскелет - и персонаж действительно в нем окажется: как по внешности, так и по свойствам. <supplies>...</supplies> - Предметы, находящиеся у него в инвентаре. Некоторые из них в игре не отображаются, поэтому не удивляйтесь присутствию здесь предметов вроде рации или фонарика. В игре отображаються все предметы, просто при торговле есть ограничения на допустимые к торговле предметы, а при смерти персонажа, "запрещенные" предметы удаляються скриптом. Imp 12:46, 12 августа 2007 (EEST) <start_dialog>...<start_dialog> - Приветственный диалог. Их может быть несколько, с различными условиями появления. <actor_dialog>...</actor_dialog> - Диалоги с игроком. Практика Изменим, например, параметры NPC по имени Волк. Откроем файл: \config\gameplay\character_desc_escape.xml И найдем в нем раздел, ему соответствующий: <!---------------------esc_wolf---------------------> <specific_character id="esc_wolf" team_default = "1"> <name>esc_wolf_name</name> <icon>ui_npc_u_stalker_neytral_balon_1</icon> <bio>esc_wolf_bio</bio> <class>esc_wolf</class> <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect> <rank>434</rank> <reputation>5</reputation> <money min="600" max="2000" infinitive="0"/> <snd_config>characters_voice\human_01\stalker\</snd_config> <crouch_type>-1</crouch_type> <visual>actors\neytral\stalker_neytral_balon_1</visual> <supplies> [spawn] \n wpn_pm \n ammo_9x18_fmj = 1 \n wpn_ak74u \n ammo_5.45x39_fmj \n device_torch \n hand_radio \n </supplies> #include "gameplay\character_criticals_4.xml" // <start_dialog>escape_lager_volk_talk</start_dialog> <start_dialog>dm_hello_dialog</start_dialog> <actor_dialog>dm_cool_info_dialog</actor_dialog> <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog> <actor_dialog>tm_wolf_dialog</actor_dialog> <actor_dialog>tm_wolf_reward</actor_dialog> </specific_character> Изменим некоторые параметры. Выдадим ему FN2000 и Desert Eagle, примем в "Долг" и сделаем неограниченное количество денег: <!---------------------esc_wolf---------------------> <specific_character id="esc_wolf" team_default = "1"> <name>esc_wolf_name</name> <icon>ui_npc_u_stalker_neytral_balon_1</icon> <bio>esc_wolf_bio</bio> <class>esc_wolf</class> <community>dolg</community> <terrain_sect>stalker_terrain</terrain_sect> <rank>434</rank> <reputation>5</reputation> <money min="600" max="2000" infinitive="1"/> <snd_config>characters_voice\human_01\stalker\</snd_config> <crouch_type>-1</crouch_type> <visual>actors\neytral\stalker_neytral_balon_1</visual> <supplies> [spawn] \n wpn_deagle \n ammo_11.43x23_fmj = 1 \n wpn_fn2000 \n ammo_5.56x45_ap \n ammo_5.45x39_fmj \n device_torch \n hand_radio \n </supplies> #include "gameplay\character_criticals_4.xml" // <start_dialog>escape_lager_volk_talk</start_dialog> <start_dialog>dm_hello_dialog</start_dialog> <actor_dialog>dm_cool_info_dialog</actor_dialog> <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog> <actor_dialog>tm_wolf_dialog</actor_dialog> <actor_dialog>tm_wolf_reward</actor_dialog> </specific_character> Добавлено (05/07/09, 15:33) --------------------------------------------- Q: Как поставить мод?! A: В архиве который вы скачали есть папка gamedata. Скопируйте/Переместите/Разархивируйте ее в Корневой каталог игры. Пример: C:/Games/S.T.AL.K.E.R/gamedata Q: Какие моды есть на данный момент? A: Смотри тему Q: Я открываю ссылку с модом, на той странице какие-то иероглефы не понятные. A: Не верно ассоциируется действие с фалом. Поэтому укажем программе что делать вручную. Правый клик по ссылке с модом, пункт "Сохранить обьект как". Q: Чем распаковать gamedata ?! A: Распаковщик для руской версии и Распаковщик для английской версии Q: Обязателно ли распаковывать файла gamedata.dbХ для установки мода? Что будет если я сначала устанавлю/распакую ЧТО-ТО а потом ТО-ТО? А: Содержимое папки gamedata имееет приоритет перед аналогичными файлами лежащими в архиве, НО если какой-то файл отсутствует в папке gamedata, то игра возьмёт её из архива. Если моды содержат одинаковые файлы то новый мод ЧАСТИЧНО затрёт предыдущий, что может привести к непредсказуемым последствиям. Если у Вас установленны какие-то моды и вы распаковаваете файлы gamedata.dbX, то моды сотрутся ПОЛНОСТЬЮ. Q: В каком архиве из gamedata.bd* лежит ТО-ТО?! A: Разархивируй все. Т.к. люди не больные, что бы учить что и где там лежит. Q: Чем открывать *.ltx, *.script файлы?! A: Блокнотом или любым другим текстовым редактором. Q: Как делать моды?! A: Не все так сразу мы вернемся к этому вопросу чуточку ниже . Q: Как мне поменять ЭТО и ТО ?! A: Смотри ниже. Q: В каком файле находится изображение оружия непосредственно в инвентаре? A: В одном из файлов с форматом *.DDS, открывается этот формат с помощью Adobe Photoshop и DDS Plugin ИЛИ DDS file viewer Q: В каких файлах находятся 3D модели?! A: Трехмерные модели объектов находятся в файлах *.ogf Для просмотра нужен OGFViewer_1.0.4. OGFViewer 1.0.4 Для работы в "OGFViewer" нужно с помощью блокнота отредактировать "OGFViewer.cfg" (вписав туда свой путь к Сталкеру, а точнее к папке "textures". После textures поставьте слеш !!!) Например: D:/Games/S.T.A.L.K.E.R/gamedata/textures/ Q: Нашел в ресурсах игры много не включенных в single обьектов, как мне их включить?! A: Слишком большой обьем работы надо проделать, что бы ввести эти обьекты в игру. От Изменение конфигов самих обьектов, до изменения скриптов.В принципе реальизуется небольшой командой, достаточно проворлевых модостроителей. Возможно они вам помогут Q: Где мне найти комманды модостроителей?! A: Realism Mod Team S.T.A.L.K.E.R. Inside Q:Обязателно ли распаковывать файла gamedata.dbX (X - цифра от 0 до 9 или буква a или b) для установки мода? Что будет если я сначала устанавлю/распакую ЧТО-ТО а потом ТО-ТО? А: Содержимое папки gamedata имееет приоритет перед аналогичными файлами лежащими в архиве, НО если какой-то файл отсутствует в папке gamedata, то игра возьмёт её из архива. Таким образом распаковавать файлы gamedata.dbX (X - цифра от 0 до 9 или буква a или b) НЕ нужно. Если моды содержат одинаковые файлы то новый мод ЧАСТИЧНО затрёт предыдущий, что может привести к непредсказуемым последствиям. Если у Вас установленны какие-то моды и вы распаковаваете файлы gamedata.dbX (X - цифра от 0 до 9 или буква a или b), то моды сотрутся ПОЛНОСТЬЮ. Q: А что вообще могут изменить в игре моды? A: 1) Менять любые параметры оружия, вплоть до замены моделей и звуков. 2) Менять параметры игрока(поднимаемый вес, голд и проч.). 3) Менять любые параметры монстров и вещей. 4) добавляют автотраспорт к игре. 5) меняют графические эффекты - вид аномалий, тряска экрана при попадании в игрока и проч. 6)Очень многое другое! см следующий вопрос. Q: А что моды не могут изменить? А: На данный момент моды не могут: 1) менять/ добавлять карты и, как следствие, менять точки входа/выхода из зон, создавать новые анамалии, зоны появления монстров, делать аномалии движущимися и др. 2) добавлять существ, даже тех , для которых что в игре есть модели. Например, для крыс просто не прописанны скрипты поведения. 3) Менять монстрам поведение (теоритически это возможно, но для этого надо знать всю подноготную ИИ в игре). Но некоторые параметры поведения менять можно (например, сделать всех более трусливыми). 4) вводить новые виды оружия и патронов - их просто никто кроме игрока не будет использовать.(Теоритически опять-таки это можно, но придётся поменять невообразимое количество файлов). 5) добавить в игру вертолёт. 6) сделать ботов умнее - их ум и так на пределе возможностей современных компьютеров! (Или вы хотите чтобы система менее сложная чем мозг(нерыный узел) пчелы в точности моделировала поведение человека Что касается правки параметров,что и для чего надо Q:Как изменить время респауна? A:В файле S.T.A.L.K.E.R. - Shadow of Chernobylgamedatascriptsse_repawn.scripts найти строку idle_time:setHMSms( 0, 0, 0, math.random(self.idle_spawn_min, self.idle_spawn_max)*1000) и исправить на idle_time:setHMSms( math.random(Первое число, Второе число), 0, 0, math.random(self.idle_spawn_min, self.idle_spawn_max)*1000) где первое и второе числа задают диапазон случайной переменной в часах отвечающей за респаун. Q:Как поднять камеру? (увеличить рост персонажа?) A:В файле S.T.A.L.K.E.R. - Shadow of Chernobylgamedataconfigcreaturesactor.ltx найти переменную camera_height_factor и увеличить примерно до 0.95 (это нормальный рост глаза-в-глаза) Q:Как изменить силу оружия? A:В папке S.T.A.L.K.E.R. - Shadow of Chernobylgamedataconfigweapons лежат файлы конфигурации – открываешь необходимый тебе и находишь hit_power – изменяешь как тебе заблагорассудится. Q:Как изменить цены? A:На оружие – в папке S.T.A.L.K.E.R. - Shadow of Chernobylgamedataconfigweapons находишь нужный тебе файл и в нем строку переменную cost (в самом начале) вместо указанной цены пишешь что тебе нужно.Патроны – в той же папаке файл weapons.ltx в нем строка cost для каждого вида патронов Предметы – файл S.T.A.L.K.E.R. - Shadow of Chernobylgamedataconfigmiscitems.ltx – аналогично Броня – там же файл outfit.ltx как и что менять надеюсь теперь догадаетесь ? Q:Как изменить носимый вес? A:В файле S.T.A.L.K.E.R. - Shadow of Chernobylgamedataconfigcreaturesactor.ltx находим переменную max_item_mass – это максимальный вес при достижении которго игрок перестает двигаться В файле S.T.A.L.K.E.R. - Shadow of Chernobylgamedataconfigsystem.ltx изменяем переменную max_weight – это вес который игрок несет не напрягаясь. Q:Как сделать невидимые аномалии? A:В папке S.T.A.L.K.E.R. - Shadow of Chernobylgamedataconfigmisc находим файл отвечающий за интересующую нас аномалию (например грави - zone_gravi.ltx) в файле находим строку idle_particles = anomaly2gravity_idle и коментим ее символами «--« - все визуально ничего нет. Что бы отключить еще и звуковое оповещение (а так имхо намного интереснее) находим строку visible_by_detector и меняем значение on на off Q:Как сделать что бы еда не лечила? A:Находим в файле S.T.A.L.K.E.R. - Shadow of Chernobylgamedataconfigmiscitems.ltx нужный нам хавчик – например Kolbasa под ним переменную eat_health значение которой меняем на 0 Q:Как изменить силу врагов? A:В файле S.T.A.L.K.E.R. - Shadow of Chernobylgamedataconfigcreaturesactor.ltx найти строки hit_probability_gd_novice = 0.20 hit_probability_gd_stalker = 0.30 hit_probability_gd_veteran = 0.40 hit_probability_gd_master = 0.50 они отвечают за вероятность попадания по вам при разных уровнях сложности. Повышаете значение до единицы и наслаждаетесь хардкором. Q:Как изменить разброс при стрельбе? A:В файле S.T.A.L.K.E.R. - Shadow of Chernobylgamedataconfigcreaturesactor.ltx находим переменную disp_base и уменьшаем – разлет уменьшается соответсвенно Q:Как сделать много крови? A:В файле S.T.A.L.K.E.R. - Shadow of Chernobylgamedataconfig system.ltx находим переменную start_blood_size и уменьшаем ее – это минимальный размер раны при котором идет кровь (у меня 0.1 стоит) чуть ниже находим blood_drop_size и увеличиваем – как понятно это размер капли крови (у меня 0.3) Q:Как изменить музыку в приемнике у Сидоровича? A:В папке Z:GamesS.T.A.L.K.E.R. - Shadow of Chernobylgamedatasoundsscriptsmagnitofon лежит файл magnitofon_2.ogg. Берем любимую музыку сохраняем в формате ogg (моно, 44000) обзываем его magnitofon_2.ogg заменяем существующий файл и вуаля ? хоть «Владимирский Централ» хоть «Районы Кварталы» Q:Как изменять артефакты? A:В файле S.T.A.L.K.E.R. - Shadow of Chernobylgamedataconfigmiscartefacts.ltx находим нужный артефакт смотрим его характеристики и меняем health_restore_speed скорость восстановления здоровья 0.0001 = +100% radiation_restore_speed скорость накопления радиации 0.0004 = 4 если поставить отрицательное число будет ускорять выведение радиации иммунитеты например 0.7 = +30% 0.2 = +80% больше единицы пойдет наоборот в минус 1.3 это -30% strike_immunity - удар shock_immunity - электрошок chemical_burn_immunity - химический ожог telepatic_immunity - телепатия
Сообщение отредактировал ПУЛЯ_01_01 - Воскресенье, 05/07/09, 15:32 |