Как заспавнить зомби в сталкере

Обновлено: 07.07.2024

вставить в любой ближайший диалог.

Сохранить изменения, грузить сейв перед заходом на ЧАЭС-1 и потом переходить, или загружаться с автосейва перехода, тоже сработает.
После, как перешли на ЧАЭС-1 и выброс отключился - сохраняемся, выходим из игры и удаляем строку arhara_dialog.dell_duratskiy_timer() из файла bind_stalker.script
Архара (romale).


На все воля св.Рандома. Чтите имя Его, и уменьшит Он дисперсию вашу, убережет ствол от осечки, игру от вылета, комп от ресета. [100] "esc_wolf" - Волк (Соль+ДМХ)
[9] "stukatch" - Павлик (стукач) (Соль+ДМХ)
[3760] "esc_stalk_shuher" - Шухер(ОП_ЧШ)
[14885] "warlab_sekret_ekolog1" - Лентяй (ДМХ+ОП_ЧШ)
[3021] "esc_bridge_soldier5" - Майор Кузнецов (НС+ДМХ+ОП)
[6543] "bar_bar_osvedomitel" - Осведомитель в баре (ДМХ)
[6643] "bar_dolg_regular_5" - Сержант Пличко (Бар, часовой на базе Долга. (ОП)).
[7884] "mil_blockpost_freedomstalker001" - Кеп (АС, барьер (ОП)).
[7625] "mil_freedom_member0005" - Часовой у ворот на базу Свободы (ОП+ЧШ).
[1006] "pantera_vertuha_aver" - Вертуха на НЗ с Пантерой и Звездочётом (ОП-2)
[998] "devchonka" - Муха на НЗ в пещере (ОП-2)
[6630] "bar_zastava_guard_3" - Киценко, Южный блокпост--Бар
[13245] "aes_soldier_commander", spawn_id = 11170 -- военный на ЧАЭС с сумкой Сахарова(ОП2_2.09--2)
Шуруп - [7624] name = mil_freedom_member0002
Гарик - bar_bar_guard
Арни - bar_arena_man, spawn_id = 6816(ОП-2)

Теперь разберем папки в каталоге «config»

Теперь немного подробнее о файлах.

Папка amk_artefacts – содержит конфиг. файлы модификатов (модифицированых артефактов).

Папка shop_ххх (ххх – имя торговца) – содержит конфиг.файлы ассортимента торговца.

amk_mod_outfits – содержит секции конфигов костюмов от АМК-тайм.

artefacts - содержит секции конфигов артефактов.

items - содержит секции конфигов предметов.

monster_items - содержит секции конфигов частей монстров

outfit - содержит секции конфигов костюмов.

postprocess - содержит секции конфигов пост. процессов (например: ПНВ).

quest_items - содержит секции конфигов квестовых предметов.

task_manager - содержит секции наград за автоквесты.

unique_items - содержит секции конфигов уникального оружия и костюмов.

Подсветка рестрикторов партиклом:
. /gamedata/scripts/bind_restrictor.script
Находим строку: Чтобы убрать кровавый туман после попадания нужно в файле gamedata/config/ui/ui_custom_msgs.xml
найти вот так
И сделать это нужно для всех hud_blood их там пять В gamedata/config/weapons находим свой ствол:
ammo_mag_size – размер магазина. Можно поставить например 900, тогда о перезарядке можно совсем не вспоминать.
ammo_class – класс патронов, используемых оружием. Здесь ammo_9x39_pab9, ammo_9x39_sp5, ammo_9x39_ap.
hit_power – сила оружия. Чем больше, тем лучше
silencer_hit_power - сила оружия, когда на него одет глушитель.
misfire_probability - вероятность осечки при максимальном износе.
condition_shot_dec - увеличение износа при каждом выстреле.
visual – модель оружия.
zoom_enabled - поддерживается ли оптика.
sprint_allowed (false/true) - бег с орружием
slot - в каком слоте распологается оружие.

gamedata/config/misc/artefacts.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 - телепатия
radiation_immunity - радиация
wound_immunity - разрыв
explosion_immunity - взрыв
fire_wound_immunity - огнестрел

В этом файле в квадратных скобках написан тот предмет, чьи параметры идут ниже, за квадр. скобками. Например: [kolbasa]:identity_immunities.
Параметры на примере колбасы:
class – к какому классу принадлежит предмет.
visual – модель.
cost – цена.
eat_health – сколько восстанавливает здоровья.(если будет 0, то колбаса лечить не будет.)
eat_power - сколько восстанавливает силы.
eat_radiation - сколько выводит/или добавляет радиации. (Насчёт этого не уверен, надо тестить.)
inv_weight – вес предмета.

Настоятельно рекомендую делать резервные копии редактируемых файлов, чтобы была возможность откатиться назад, если где-то ошибетесь.

В каждом файле торговца есть одна или более секций, определяющие ассортимент торговца до или после наступления какого-то игрового события. Названия секций заключены в квадратные скобки []
У Сидоровича 2 секции
[…_start] - ассортимент при начале игры
[…_after_fabric] - ассортимент после приноса флешки Шустрого
Соответственно, добавлять предметы нужно в ту секцию, которая соответсвует вашей сюжетной линии в игре. Можно добавлять сразу во все секции - хуже не станет.

Чтобы добавить предмет, ниже названия секции добавляете строчку такого вида:
"название предмета" = число1, число2
(не забываем ставить пробелы до и после = и после запятой)
В файле sidr_supl.ltx
число1 - количество предметов
число2 - вероятность их появления (от 0 до 1, кратное 0.1)

В файле sidr_trade.ltx
число1 - минимальный коэффициент цены
число2 - максимальный коэффициент цены
При открытии диалога цена предмета будет случайной, равной "реальной цене" * на случайное число в диапазоне от минимального до максимального коэффициента. Коэффициент может быть меньше и больше 1.

Внимание! Десятичный разделитель в каждом числе должен быть "точкой", а не "запятой".

И напоследок - в файле sidr_trade.ltx нужно в соответствующей секции проверить нет ли "вашего" предмета с пометкой ;NO TRADE . Если есть - то эту строчку удалите.

Пример: чтобы добавить в продажу 5 артефактов Медуза по цене от 0.1 до 0.5 реальной цены,
1. в файл sidr_supl.ltx
после строчки [supplies_after_fabric]
дописываем строчку
af_medusa = 5, 1

2. в файл sidr_trade.ltx
после строчки [trader_after_fabric_sell]
дописываем строчку
af_medusa = 0.1, 0.5

3. удаляем строчку
af_medusa ;NO TRADE

Сохраняем файлы, перезагружаем игру и бежим покупать у Сидора артефакты.

Квестовые предметы (которые даются при выполнении некоторых квестов и их нет в "свободной продаже" у торговцев) имеют особенность - "по умолчанию" их нельзя продавать в игре и обычным способом их нельзя прописать в продажу.
Это ограничение обходится, для этого предмет сначала нужно сделать "обычным", который можно покупать продавать, а лишь потом прописывать в продажу.
Описание практически всех квестовых предметов находятся в файлах ***.ltx, в названиях которых есть items, основные из них: items.ltx , quest_items.ltx , unique_items.ltx , arhara_items.ltx.
Пример - прописывание в продажу ПДА Фраера, его название - fraer_pda. Описание ПДА Фраера находится в файле quest_items.ltx, вот с него и начнем - находится он в папке - gamedata - config - misc файл quest_items.ltx
Делаем копию этого quest_items.ltx и убираем её куда нибудь, позже она нам понадобится.
Затем открываем оставшийся файл quest_items.ltx и ищем строки
[fraer_pda]:identity_immunities
. (много всего разного) .
quest_item = true

и меняем quest_item = true на quest_item = false
закрываем этот файл и соглашаемся с изменениями.
При поиске описания друго предмета - ищем аналогичную строчку

Броники:
==========
novice_outfit - костюм новичка
bandit_outfit - костюм бандита новичка
killer_outfit - КОСТЮМ НАЕМНИКА
monolit_outfit - КОСТЮМ МОНОЛИТОВЦА
specops_outfit - КОСТЮМ ВОЕННОГО СПЕЦНАЗА (Берил 5М)
military_outfit - СКАТ-9М
militaryspec_outfit - СКАТ-10
stalker_guard_outfit - КОСТЮМ ОХРАННИКА В БАРЕ
stalker_outfit - КОСТЮМ НЕЙТРАЛЬНОГО СТАЛКЕРА
scientific_outfit - НАУЧНЫЙ КОСТЮМ НЕЙТРАЛЬНОГО СТАЛКЕРА
exo_outfit - ЭКЗОСКЕЛЕТ НЕЙТРАЛЬНОГО СТАЛКЕРА
svoboda_light_outfit - ЛЕГКИЙ КОСТЮМ СВОБОДЫ
svoboda_heavy_outfit - ТЯЖЕЛЫЙ КОСТЮМ СВОБОДЫ
dolg_outfit - ОБЫЧНЫЙ КОСТЮМ ДОЛГА
dolg_scientific_outfit - НАУЧНЫЙ КОСТЮМ ДОЛГА
ecolog_outfit - ОБЫЧНЫЙ КОСТЮМ УЧЕННОГО
protection_outfit - УКРЕПЛЕННЫЙ КОСТЮМ УЧЕННОГО
killer_blue_exoskeleton - экза наемников
dolg_black_exoskeleton - экзоскелет dolg
svoboda_exoskeleton - экзоскелет svoboda
monolit_exoskeleton - экзоскелет monolit
broken_exoskeleton - экзоскелет сломанный
freedom_scientific_outfit - научник свободы
merc_scientific_outfit - наука наемников
monolit_scientific_outfit - наука монолита
bandit_master_outfit - плащ бандита
outfit_soldier_m1 - берил (вроде)
neytral_exo_antigas_outfit - ?
bandit_veteran_outfit - бандитский плашь
soldier_outfit - бронька солдатов или гравикостюм
exo_bandit_outfit - ЭКЗОСКЕЛЕТ БАНДИТОВ
nano_outfit - Нанозащитный костюм
stalker_usa_killer_gaz - Костюм американского образца
stalker_france_killer_gaz - Костюм французского образца
outfit_novice_m1 - Аномальная куртка новичка
outfit_bandit_m1 - Уплотненный бандитский костюм
bandit_master_outfit_m1 - Бандитский плащ повышенной выносливости
outfit_dolg_m1 - Охотничий комбинезон Долга
outfit_dolg_m4 - как понял уникальный научник?
outfit_killer_m1 - Укрепленный комбинезон Наемника
outfit_specnaz_m1 - Модифицированный армейский бронекостюм
outfit_stalker_m2 - комбез Туриста
outfit_stalker_m1 - Комбинезон призрачного сталкера
stalker_outfit_m3 - прочный костюм сталкера
outfit_svoboda_m1 - Модифицированный комбинезон свободы
outfit_exo_m1 - Модифицированный экзоскелет
neytral_novice_outfit_m1
neytral_novice_gaz_outfit_m1
neytral_gaz_outfit_m1
neytral_gaz_outfit_m2
neytral_exo_gaz_outfit_m1
bandit_gaz_outfit_m1
bandit_veteran_outfit_m1
svoboda_gaz_outfit_m1
svoboda_heavy_gaz_outfit_m1
svoboda_yellow_exo_outfit_m1
dolg_gaz_outfit_m1
killer_gaz_outfit_m1
monolit_gaz_outfit_m1

Ремкомплекты
=============
repair_item_outfit
repair_item_weapon

Оружие (понятно из названия)
==========================
wpn_fn2000_new - FN 2000 "Duo"
wpn_fn2000_sniper - FN 2000 "Палач"
wpn_pm
wpn_pb
wpn_fort
wpn_hpsa
wpn_beretta
wpn_walther
wpn_sig220
wpn_colt1911
wpn_usp
wpn_desert_eagle
wpn_bm16
wpn_toz34
wpn_wincheaster1300
wpn_spas12
wpn_ak74u
wpn_mp5
wpn_ak74
wpn_abakan
wpn_l85
wpn_lr300
wpn_sig550
wpn_groza
wpn_val
wpn_vintorez
wpn_svu
wpn_svd
wpn_rg-6
wpn_rpg7
wpn_g36
wpn_fn2000
wpn_ak47
wpn_saiga12c
wpn_bm16_full
wpn_p90
wpn_pkm
wpn_gauss
wpn_gungauss
wpn_bizon
wpn_kriss_super_v
wpn_mp7a3
wpn_m1891_30
wpn_m1891_30_scope
wpn_benelli_short
wpn_toz34_short
wpn_tt33_sk1
wpn_ppsh41_sk2
wpn_ak74_m1
wpn_abakan_m1
wpn_fort_m1
wpn_mp5_m1
wpn_groza_m1
wpn_spas12_m1
wpn_winchester_m1
wpn_l85_m1
wpn_lr300_m1
wpn_svd_m1
wpn_sig_m1
wpn_eagle_m1
wpn_colt_m1
wpn_val_m1
wpn_mp5_m2
wpn_abakan_m2 - абакан для долговца в Баре
wpn_l85_m2
wpn_ak74u_m1
wpn_sig_m2
wpn_g36_m1
wpn_svu_m1
wpn_beretta_m1
wpn_vintorez_m1
wpn_groza_m2
wpn_rg6_m1
wpn_walther_m1
wpn_pm_m1
wpn_bizon1
wpn_lr300_m2
wpn_ak47_m1
wpn_dark_gauss
wpn_gravigun (гравипушка)
wpn_soulcube - Куб теней

Еда и Медикаменты, устройства
=============================
bread_a
bread
kolbasa
kolbasa_a
conserva
vodka_a
vodka
antirad
medkit
medkit_army
medkit_scientic
energy_drink
bandage
binocular_a
device_torch
repbox_s1
treasure_item

Устройства
amk_transmutator - Трансмутатор
Предметы
=========
amk_metka
arc_art_box_basic
arc_art_box_1basic
arc_art_box_8basic
device_torch
detector_simple
detector_advances
detector_elite
device_pda
treasure_item
wpn_binoc
wpn_flame

Аммуниция
==========
ammo_9x18_fmj
ammo_9x18_pmm
ammo_9x19_pbp
ammo_9x19_fmj
ammo_11.43x23_hydro
ammo_11.43x23_fmj
ammo_12x70_buck
ammo_12x76_dart
ammo_12x76_zhekan
ammo_5.45x39_ap
ammo_5.45x39_fmj
ammo_9x39_sp5
ammo_9x39_ap
ammo_9x39_pab9
ammo_5.56x45_ss190
ammo_5.56x45_ap
ammo_7.62x54_7h14
ammo_7.62x54_7h1
ammo_7.62x54_ap
ammo_og-7b
ammo_vog-25p
ammo_vog-25
grenade_f1
grenade_rgd5
ammo_m209
grenade_gd-05
ammo_gauss
ammo_5.7x28_ap
ammo_5.7x28_ss190
ammo_7.62x39_fmj
ammo_7.62x39_ap
ammo_7.62x54r
ammo_16cal_fost
ammo_16cal_skart
ammo_16cal_buck
ammo_44mag_jsp
ammo_44mag_jhp
ammo_50ae_jhp
ammo_50ae_thv
ammo_7.62x25_p
ammo_7.62x25_ps

Подствольники, оптика, глушитель
===============================
wpn_addon_scope
wpn_addon_scope_susat
wpn_addon_silencer
wpn_9mm_nato_silencer
wpn_addon_grenade_launcher
wn_addon_grenade_launcher_m203

kostya_pda, kostya_pda2 . kostya_pda9 - пда для Кости (9 штук)
kruglov_flash Флешка Круглова
bar_tiran_pda ПДА Тирана
voen_pda, bandranen_pda, fraer_pda ПДА по квесту наемника Андрея (военного, раненного бандита и Фраера)
ara_flash флешка наемника Ары
siv_pda ПДА наемника Сивого
device_pda_npc ПДА, которые нужны для Дена или обмена у Информатора
gonets_flash_desc флешка гонца Калинина
item_delete1 ПДА отключения телепорта в подземке Агро
sysh_flash флешка Сыча
nauch_flash флешка ученых из Х18
sniper_flash флешка Зверя с Дикой територии
esc_wounded_flash флешка пленного
val_key_to_underground ключ Борова от Х18
bar_tiran_pda ПДА Тирана
pda_krysyka ПДА Крысюка
agroprom_pda ПДА Крота
und_pda ПДА Макса Любера
rad_pda ПДА Монолитовца с артмодом
strelok_pda ПДА Стрелка
scaintist_pda ПДА ученого с Припяти для Бармена
bar_lucky_pda ПДА Болта
bar_ecolog_flash флешка Круглова
pda_priz ПДА Призрака
bland_flash флешка Бленда
crazy_flash флешка Психа (сумашедшего)
mil_svoboda_leader_pda ПДА Лукаша
cit_doctors_key ключ Доктора от тайника в Припяти
pda_vasilyev ПДА Васильева
pda_francuz ПДА Француза
pda_info Сломанный ПДА для Акима
pda_art_mod ПДА для варки артефактов из мода Psy-rays (для старой версии Солянки)p old_doc_3_1, old_doc_3_2, old_doc_3_3, old_doc_3_4 Третья часть документов Акима (нетрудно догадаться и поэкспериментировать, чтоб вычислить как называются остальные документы Акима)
sak_document2 - Документ для Волка в тоннеле с электрами
amk_zapiska документ для получения перехода с Агропрома на Кордон
arhara_listok записка Стрелка
lab_x16_documents документы из Х16
kostya_documents документ "Телепорт" из тайника Кости в Х16
new_prizrak_document1 . new_prizrak_document3 дневники для Призрака
plan_document план бункера на Радаре по квесту о пропавшей экспедиции
voen_document записка военного (Андрея), с которой начинаются квесты Нового Сюжета
sysh_document записка Сыча
new_document_sniper документ Зверя с Кордона
pri_decoder_documents документы из Припяти, написанные Стрелком
rad_document7 - приказы командира военных за полгода
scaintist_docs документы ученых, которые везли необычный артефакт (по 1-му квесту Борова)
lab_x10_documents документы из Х10
sak_book1 . sak_book3 книги для Сахарова из 3-х лабораторий
mono_note блокнот монолитовца
mono_dead_doc документы мертвого монолитовца

money Серебряный рубль
money1 Золотой червонец
money2 Серебряный рубль
money3 Серебряный рубль
arhara_instruk Инструкция для костюма
malyva Блокнот с запиской для Борова
pribor Компьютер с антенной
3d_raziy Видеорация
telefon Мобильная рация
suvorotka Сыворотка
kod_kamera Блокнот часового
soap Мыло
amulet Амулет
remontnyi_box Ремонтный ящик
shkatulka Шкатулка
arhara_seif Минисейф для Шахтера
kluch_dell_teleport Деактиватор телепортов
kluch_dell_teleport1 Деактиватор телепортов
kluch_dell_teleport2 Деактиватор телепортов
parcel Посылка
box_with_weapon Ящик с оружием
tabletki_1 Таблетки
tabletki_2 Таблетки
tabletki_3 Таблетки
shpriz Шприц
akkumulytor Аккумулятор для квестов НЗ
britva Бритвенный станок
starik_chasy Золотые часы
land_disketka Дискета
kolba_pustay пустая Колба
kolba_siniy_poln Колба с реагентом
kolba_orand_poln Колба с реагентом
ekza_akkumul Блок питания
elek_plata Плата (электронная)
kluk_karta Карта Клыка
kluk_karta_kopiy Копия карты Клыка
trupak Труп контролёра
sidor_head Чучело головы Сидоровича
perfuzor_pust Перфузор с пустыми колбами
perfuzor_poln Перфузор с полными колбами
kukla_1 Старая кукла
timer часы для мини-карты худа
naem_bloknot блокнот наемника Костолома
amul_naemn печатка наемника
pseudopechatka печатка наемника
kluch_dell_teleport_warlab деактоватор телепорта на Варлабе
chuchelo_body чучело псевдопса
disk_pantera диск для Пантеры
bullion_gild золотой слиток Лукаша
device_teleport одноразовый телепорт Кости
science_teleport, science_teleport2, science_teleport3 телепорты от Сахарова

wpn_m_134 миниган
wpn_awm_new модифицированный игломет
klyak_forest_doc Документ из Красного леса
rukzak_green Рюкзак охотников
nebo_clear аннигилятор аномалий
case_nebo кейс курьера Свиблова
lekar_kalmyak Лекарство от Калмыка
glushitel глушитель радиочастот
televizor телевизор
maz мазь Калмыка
box_kalmyak контейнер для Калмыка
mushroom мухомор
sigaret сигареты
hand_teleporter Ручной телепортатор от Креста
hand_teleporter_arhara Неисправный Ручной телепортатор
acumm Аккумулятор
doc_1 Система для активации модулей СКАТ 15
doc_8 Блок апгрейдера 1
doc_10 Блок апгрейдера 2
pult_anders - джойстик для Андерсена
foto_kontroller_yazva - Фото контролёра по заданию Кленова

Спавн через скрипт

Первый параметр - секция в конфигурациях, описывающая объект, например "bolt","med_kit" - это простые секции, простых объектов а есть объекты, которые переходят в онлайн/оффлайн, это неписи, монстры и так далее, например mil_killer_respawn_2 - спавнится снайпер группировки киллеров.

С позицией, думаю объяснять не надо, только существует нюанс - высота это Y, а не Z. Задать позицию можно такой конструкцией vector():set(x,y,z), где x, y и z - координаты точки на уровне, где спавним объект.

Дальше сложнее, так как сам толком сформулировать не могу.

Начнем от простого к сложному. На каждом уровне много объектов, все объекты состоят из полигонов, у каждого полигона есть вершины – вертексы.

Именно они и должны здесь указываться, зачем - не особо понимаю, скорее всего для точного позиционирования объекта. Например, можно получить вертекс ближайший к актору - db.actor:level_vertex()

Дальше идет гораздо более интересный параметр game_vertex, это почти то же самое, что и level_vertex, но (!) это глобальные величины! Если level_vertex считается для уровня, то game_vertex - для всей игры, и нужен он для того, чтобы указать на какой карте спавнить объект (более вразумительного объяснения я не нашел).

Соответственно, чтобы заспавнить что-нибудь на другой карте, достаточно указать game_vertex в четвертом параметре Например:
db.actor:game_vertex()

Итак, чтобы, например, заспавнить болт под ногами актора, пишем:
alife():create("bolt",db.actor():position(),1,db.actor:game_vertex())

Почему 1, а не level_vertex? Проверено - разницы особой нет, какой level_vertex, хотя в некоторых случаях надо прописывать валидный вертекс, а то предмет может просто заспавнится не там, где планировалось. Но по большей части все проходит нормально и с единицей. (Игнорирование level_vertex может приводить к проваливанию произведенных предметов/персонажей под землю.) А вот game_vertex решает все - он указывает на каком уровне спавнить предмет, поэтому его надо указывать. Теоретически можно просто найти для каждого уровня по одному game_vertex'у и использовать их в скриптах. На самом деле game_vertex показывает какой фрагмент карты используется (вся карта разбита на кусочки имеющие сквозную нумерацию по всем уровням и game_vertex выбирает нужный) соответственно неправильное использование черевато.

Кроме того - есть еще один параметр - ID объекта, если указать ID NPC или актора - то предмет заспавнится у него в инвентаре.

Пример (спавним артефакт Медуза в инвентаре у актора):
alife():create("af_medusa", db.actor():position(), 1, db.actor:game_vertex(), db.actor:id())

Функция спавна возвращает серверный объект, то есть ни NPC, ни монстра ни что-либо еще.

Серверный объект позволяет свеже созданного NPC или тайник затарить разными рулезами/артефактами. Например, вот так создадим перед входом к Сидоровичу долговца и засунем в него пачку патронов:
local obj
local a = vector() -- Задаем тип переменной
local dir = db.actor:direction()

a.x = -243.61 -- координата X
a.y = -19.52 -- высота Y
a.z = -127.17 -- координата Z

obj = alife():create("bar_dolg_respawn_3",a,13193,8,65535)
alife():create_ammo("ammo_9x18_fmj",
obj.position,
obj.m_level_vertex_id,
obj.m_game_vertex_id,
obj.id,
20) -- число патронов

Кстати, create_ammo - практически тоже самое, что и create, разница в том, что create_ammo предназначена специально для спавна патронов и позволяет создавать неполные пачки патронов. Возможно есть еще какие-то отличия. Стоит учесть, что сами авторы игры спавнят патроны исключительно через create_ammo. Imp 22:38, 23 июля 2007 (EEST)

Просто минимальный набор - координаты, ID, секция,а из него (серверного объекта) обычно нужен только ID, так как по ID можно получить этот самый серверный объект:
(alife():object(id))

Его можно использовать, чтобы поставить метку, например, но я его лично использую для других целей - спавн сложных объектов, конкретно – NPC.

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

В определенный момент заспавненый объект переходит онлайн, в этот момент вызывается callback - net_spawn.

Что мы делаем? Сверяем ID онлайн объекта с сохраненным ID!

Если они совпадают, например так:
if obj:id()==saved_id then .

Важно то, что у серверного объекта ID - это параметр, а у онлайнового объекта ID получается с помощью функции. Это важно, а то можно прогореть.

Итак, мы поймали нашего киллера по ID.

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

Зачем такие сложности? Просто в оффлайне NPC как бы не существует, есть только косвенное упоминание о нем, и, плюс, все эти функции работают именно с объектом типа "NPC", а не с серверными объектами.
Практика (часть 1)

1. Чтобы не повторяться в описании создания нового квеста, просто изучите статью по созданию квестов от Fr3nzy – лучшей статьи на эту тему я просто не видел :) Мы просто свяжем все воедино и научимся спавнить объекты из скрипта.

Почему предпочтительнее делать спавн скриптом, а не через тот же xrSpawner? Программа xrSpawner, при всех своих достоинствах, обладает одним недостатком, а именно – она делает спавн через файл all.spawn, что приводит к:
Невозможности совместить два мода, такой спавн использующих
Необходимости каждый раз начинать новую игру

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

Итак, определимся с квестом.

Задача: после разговора с Сидоровичем спавним зомби на территории фабрики в первой локации. Для того, чтобы не повредить оригинальный сюжет игры, задание будет выдаваться после прохождения квеста с флешкой Шустрого, так как появись там зомби одновременно с бандитами и Шустрым. я думаю, исход боя предрешен :)

Реализация: Постараюсь описать все действия максимально подробно, буквально по шагам. Первым делом запустите игру :)

В консоли введите команду:
rs_stats on или rs_stats 1

Тем самым мы включаем вывод информации на экран. Далее вводим еще одну команду:
demo_record 1

И «летим» на фабрику. Нам нужно выбрать место для спавна объектов и данный режим как нельзя лучше подходит для реализации задуманного. Помещаем камеру в точке предполагаемого спавна и записываем координаты - у меня получились 115, -6, -16.

Для выхода из режима demo_record нажимаем Esc, в консоли пишем rs_stats off или rs_stats 0 (убираем вывод информации).

a = db.actor:position() -- Наше положение в координатах
vid = db.actor:level_vertex_id()
gvid = db.actor:game_vertex_id()
text = "Позиция:\\nX= "..a.x.."\\nY= "..a.y.."\\nZ= "..a.z.."\\nlevel_vertex= "..vid.."\\ngame_vertex_id= "..gvid news_manager.send_tip(db.actor, text, nil, nil, 30000) end В результате не нужно экспериментировать мы сразу получаем все, в том числе и level_vertex и game_vertex. Imp 22:38, 23 июля 2007 (EEST) Выходим из игры, идем в папку с установленной игрой и создаем каталог gamedata (предполагается, что «лепим» свой «мод» на «чистую» игру, без установленных модов, и имеем распакованные ресурсы игры в папке, скажем, gamedata source). В папке gamedata создаем папку config, а в ней - папку creatures. Скопируем из оригинальной папки файл m_zombie.ltx и откроем его на редактирование. В файлах игры присутствуют 5 моделей гражданских зомби: файлы zombi_1.ogf, zombi_1_ghost.ogf, zombi_2.ogf, zombi_trup.ogf, zombi_trup_2.ogf Вернем в игру их всех :) Уже имеются секции: [zombie_weak]:m_zombie_e, [zombie_normal]:m_zombie_e, [zombie_strong]:m_zombie_e и [zombie_immortal]:zombie_strong. Два последних типа используют одну и ту же модель zombi_trup.ogf, хм. непорядок, исправляем. Последняя секция выглядит теперь так: [zombie_immortal]:zombie_strong $spawn = "monsters\zombies\zombie_immortal"
visual = monsters\zombi\zombi_trup_2
panic_threshold = 0.05

Добавим пятую модель.

Для этого в конце файла создадим секцию:
[zombie_ghost]:zombie_strong

Это означает, что наш пятый зомби наследует все параметры zombie_strong, мы добавим лишь визуальное представление.

Пишем дальше:
$spawn = "monsters\zombies\zombie_ghost"
visual = monsters\zombi\zombi_1_ghost

Все. Сохраняем изменения и закрываем файл.

2. Пишем скрипт спавна. В папке gamedata создаем новую папку scripts, в ней создаем новый текстовый документ и называем его esc_zombie.script.

При написании статьи использовался оригинальный скрипт zombie_story.script из horror-mod’а. Концепция спавна перенесена практически без изменений, поэтому на авторство этого способа спавна я никоим образом не претендую :)

Итак, открываем наш пустой файл на редактирование, первой строкой объявляем переменную, в которой хранятся наши зомби:
local zombie_types =

Далее пишем функцию:
function spawn_zombies( position, total )
local zombie_index -- тип зомби из массива zombie_types
local new_pos, x_offset, z_offset -- объявляем переменные
for zombie_index=1, total do -- крутим цикл столько раз, сколько
задает переменная total
x_offset = math.random(5) -- случайное (рандомное) x от 1 до 5
z_offset = math.random(5) -- случайное (рандомное) z от 1 до 5
new_pos = position -- передаем координаты в функцию
new_pos.x = new_pos.x + x_offset -- прибавляем к указанной нами
координате x полученное выше рандомное x
new_pos.z = new_pos.z + z_offset -- прибавляем к указанной нами
координате z полученное выше рандомное z
-- Ниже, собственно и вызывается функция спавна случайного типа зомби
zombie_types[math.random(5)] привязанного к нашим координатам
alife():create(zombie_types[math.random(5)],new_pos,db.actor:level_vertex_id(),db.actor:game_vertex_id())
end
end

И последнее:
function zomby_story_1( actor, npc )
-- десять зомби на фабрике (Кордон)
local spawn_point = vector():set( 115, -6, -16 ) -- здесь указываем координаты,
выбранные нами для спавна, когда «летали» камерой :)
spawn_zombies( spawn_point, 10 ) -- собственно вызов предыдущей функции
с передачей ей координат и количества объектов
end

Все. Сохраняем и закрываем файл.

Для того, чтобы игра не вылетала после того, как мы добавили новый тип монстров, их нужно добавить в файл xr_statistic.script. Итак, скопируем этот файл из папки игры scripts в нашу папку к файлу esc_zombie.script и откроем на редактирование.

Добавим в local killCountProps к монстрам строчку:
zombie_weak = 1, zombie_normal = 2, zombie_str 3

В local sect_alias строчку:
zombie_weak = "zombie_weak", zombie_normal = "zombie_normal", zombie_str "zombie_strong"

А ниже в monster_classes строчку:
[clsid.zombie_s ] = "zombie"

В функцию getNpcType(npc) добавляем конструкцию:
elseif npc:character_community() == "zombie" then
community = "zombie"

Сохраняем изменения и закрываем файл.

Все будет работать на ура, пока мы не попробуем обыскать убитого зомби. Как только мы это сделаем, игра вылетит с примерно такой ошибкой.
Expression : fatal error
Function : CInifile::r_string
File : D:\xray-svn\xrCore\Xr_ini.cpp
Line : 351
Description :
Arguments : Can't find variable icon in [zombie_weak]

Все верно – игра не знает какую иконку нам показывать для зомби. Иконки монстров хранятся в файле ui_npc_monster.dds. Здесь есть два варианта:
Если дружите с Фотошопом, отредактировать этот файл (нарисовать, добавить иконки);
Взять готовый из любого мода, естественно, с разрешения авторов мода. Сейчас мы пропустим данный аспект и присвоим нашим зомби иконки контролера :)

Вернемся к файлу m_zombie.ltx и в секцию [m_zombie_e]:monster_base впишем параметр
icon = ui_npc_monster_kontroler

Все. Вылетов не будет.

3. Тема данной статьи не предусматривает подробного описания того, как сделать новый диалог. В начале статьи я упомянул источник, где можно найти исчерпывающую информацию по созданию диалогов, могу также привести в пример статью по созданию диалогов от BAC9-FLCL.

Нам нужно просто проверить работоспособность скриптового спавна, поэтому я приведу просто собственно сам измененный диалог из файла dialogs_escape.xml:

escape_trader_talk_info_999
7770
9991
9992
9993
9994
9995
9996


escape_trader_talk_info_99922
9996
9995


escape_trader_talk_info_3121
9996
9995


escape_trader_talk_info_3131
9996
9995


escape_trader_talk_info_41
9996
9995


escape_trader_talk_info_7771
7772
7773


escape_trader_talk_info_7779
9996
9995


escape_trader_talk_info_7777
esc_zombie.zombie_story_1
9996
9995

escape_trader_talk_info_51
9996
9995

И также связанный с ним файл stable_dialogs_escape.xml. В самом начале файла пишем следующее:

Происшествий никаких не было?


Да знаешь. Вроде как тихо все у нас. Хотя, вот, вспомнил! Говорили мне
на днях, что на фабрике, ну, там, где бандюки околачиваются постоянно, видели каких-то то ли
людей, то ли призраков. Мало ли что спьяну почудится - я и сказал этим паникерам, мол,
закусывать надо! Хех, блин, алкаши.


Дык мне по любому мимо фабрики топать - заодно и посмотрю на этих
"людей-призраков".


Да я как-то не собирался в ту сторону.


Ну, смотри сам, все равно будь осторожен.


Ага. Сходи, проветрись. Потом зайдешь, расскажешь, что там и как.


Здесь проход воспрещён, сталкер.

Все. Можно запускать игру, идти на Кордон, после разговора с Сидоровичем, в зависимости от выбранного Меченным решения, бежим на фабрику и … смотрим сами :)
Готовые файлы примера
Spawn Lib

Домашнее задание - вернуть в игру 6-ой тип гражданского зомби :)

Продолжение следует…
Практика (часть 2)

Файл модели до редактирования

Файл модели после редактирования

На скринах видно, что мы просто изменили для этой модели путь к текстуре. Все. Без использования 3D-редакторов и затраты кучи времени на обработку модели в них, мы получили абсолютно новую (на внешний вид) модель. :)

5. Теперь пропишем нашего нового зомби во все файлы, которые мы создали ранее. В файл m_zombie.ltx в самый конец добавляем секцию:
[zombie_old]:zombie_normal
$spawn = "monsters\zombies\zombie_old"
visual = monsters\zombi\zombi_3

в файле esc_zombie.script изменяем массив в первой строке:
local zombie_types = "zombie_old", "zombie_ghost">

В функции spawn_zombies изменяем строку спавна:
alife():create(zombie_types[math.random(6)],new_pos,
db.actor:level_vertex_id(),db.actor:game_vertex_id())

в функции zombie_story_1 меняем число объектов на кратное 6-ти (необязательно):
spawn_zombies( spawn_point, 12 )

Всё. Сохраняем и закрываем.

6. Копируем в папку gamedata\config\gameplay\ файл encyclopedia_mutants.xml, добавляем описание зомби в энциклопедию:

И в связанный с ним файл string_table_enc_mutants.xml в папке gamedata\config\text\rus\ добавляем:


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


Воздействие Выжигателя мозгов полностью разрушает структуру личности,
оставляя только телесную оболочку.\n\n Побродив немного по Зоне, лишённые разума тела
начинают превращаться в настоящих зомби. Из рефлексов у них остаются лишь самые примитивные,
оружие и экипировка скоро приходят в негодность. В результате зомби становятся собой ни чем
иным, как медлительными полутрупами, которых наличествуют лишь два эффективных раздражителя:
еда и сон. Зомби совершенно неразборчивы в выборе пищи и питья, поэтому их тела буквально
пропитаны радиацией и токсинами. Как правило, эти существа бесцельно бродят по Зоне или,
словно трупы, валяются внутри заброшенных построек. Однако, лишь только зомби почует близкое
присутствие живого человека, он сразу же пытается атаковать. Умудрённые опытом сталкеры
стараются обходить эти неуклюжие опустошённые оболочки.

Копируем сюда же файл stable_statistic_caption.xml и изменяем в нем 3 строчки:

Сохраняем и закрываем.

7. И последнее – добавим иконки. Скажу сразу, воспользовался готовым файлом, уже содержащим иконки зомби и других «восстановленных монстров» (спасибо Fr3nzy). Поэтому просто скопируйте файл ui_npc_monster.dds из архива в папку gamedata\textures\ui\, а файл ui_npc_monster.xml – в папку gamedata\config\ui\. Если вы хотите сделать собственные - прочитайте урок по изменению текстур.

Вкратце, что описывает файл ui_npc_monster.xml: в нем задаются координаты иконок, расположенных в файле ui_npc_monster.dds, применительно к каждому типу монстров в игре.

Заключительный штрих. Откройте файл m_zombie.ltx и в первой секции замените строку
icon = ui_npc_monster_kontroler

В секцию [zombie_ghost] добавьте строку:
icon = ui_npc_monster_zombieg

Сохраняйте изменения. Всё.

Вот готовые файлы примера. Удачи и спасибо за внимание :)
Спавн NPC

Эта часть статьи написана Arhet и создана на примере того, как в SRP Mod были созданы NPC группировки "Грех".

Начнем с character_desc_escape.xml. Описание что значит каждая строка писать не буду, так как все до меня уже сделано.

Тут создадим нового персонажа:

esc_dark_stalker_01 - вот тут наш новый класс кстати.
dark_stalker stalker_terrain

Впишем наш код после какого-нибудь

Теперь идем в npc_profile.xml и туда вгоняем:

Теперь надо заняться spawn_sections.ltx. Скрипт будет «брать NPC» как раз из этого файла. Пишем туда:
[esc_dark_stalker_1]:stalker – имя секции для скрипта..
$spawn = "respawn\esc_dark_stalker_1"
character_profile = esc_dark_stalker_1 – ссылка на описание нашего NPC
spec_rank = regular – спец ранг
community = dark_stalker – группировка.

Теперь берем любой скрипт спавна NPC, вгоняем туда имя секции из spawn_sections.ltx и ву-а-ля.

Тока забыли что данному НПС будет присвоенная дефолтовая логика (т.е. тупо хожу куда сам не знаю) забыли упомянуть про (ххх - лока):

Как использовать лучшие чит-коды для «Сталкер: Зов Припяти»?


Для ввода всех кодов необходимо открыть консоль разработчика. Делается это при нажатии клавиши [

] («тильда»), а для перемещения по консоли используются клавиши «Page Up» и «Page Down». Глобально все команды делятся на графические, связанные с интерфейсом, игровые и прочие. Разберем по порядку каждую из категорий.

Графические консольные команды
Сюда входят все коды, меняющие настройки графики и все с ними связанное. Основная команда категории _preset устанавливает желаемые параметры графики: Minimum, Low, Default, High или Extreme. Улучшить графику можно и с помощью r1_detail_textures 1 – эта команда включает опцию «Детальные текстуры». Через консоль также можно настраивать тени. Для выбора общего качества теней существует команда r2_ls_squality, а коды r2_sun и r2_sun_details влияют на настройки теней от солнечных лучей и теней травы соответственно.


Команды, связанные с интерфейсом

В «S.T.A.L.K.E.R.: Зов Припяти» возможно достаточно детально настроить HUD игры. Так, например, main_menu 0 отключит весь графический интерфейс, а hud_draw влияет на элементы, отображаемые во время путешествий по Зоне. Если же вам нужно отключить или включить отдельные параметры, используйте следующие команды:

hud_crosshair — показывает прицел;
hud_crosshair_dist – показывает дистанцию до цели;
hud_weapon – показывает оружие.
Игровые команды
К этой категории отнесятся все коды, влияющие конкретно на игровой процесс. Команда ai_use_torch_dynamic_lights отключает или включает все фонарики у NPC. g_kill убивает вашего персонажа, а g_autopickup – включает режим автоподбора предметов. Судя можно отнести еще одну, довольно необычную, команду, с помощью которой ваш персонаж сможет бегать задом наперед – g_backrun. Аналогично с графикой, можно быстро поменять уровень сложности игры с помощью команды g_game_difficulty.

Прочие команды
Здесь представлены полезные команды, не вошедшие в другие категории:

bind – назначает действие на указанную клавишу;
cl_dynamiccrosshair 1 – включает динамический прицел;
clear_log – очищает консоль;
demo_record – включает режим записи демок.

А теперь предлагаем консольные команды сталкер зов припяти читы, конкретно облегчающие тяжелую игру. Прохождение сквозь стены и препятствия можно с помощью «noclip». Приобрести невидимость позволит уникальный код «notarget».

Сталкер зов припяти консольные команды на предметы, такие как патроны, очень востребованы. Пополнить до бесконечности ваш запас патронов в инвентаре можно путем ввода «give ammo». А подбирать автоматически все предметы можно с помощью команды «g_autopickup».

Очень жаль, что нет возможности применять консольные команды сталкер зов припяти на вес, но увеличить предельную грузоподъемность в игре все-таки реально. Для этого следуем следующей инструкции:
1. Находим и открываем игровой файлик actor.ltx по следующему пути: gamedata/ configs/ creatures.
2. В открытом actor.ltx ищем строчку max_walk_weight = 60, где цифру 60 изменяем на ту, что будет означать новый наибольший перетаскиваемый вами вес.
3. Далее находим еще один файлик system.ltx в gamedata/configs и открываем.
4. Меняем в открывшемся max_weight = 50 опять на желанную цифру. Это значение расхода энергии после превышения возможного наибольшего веса.

Консольные команды сталкер зов припяти на полет пригодятся как раз тем игрокам, кто не может осилить игровые возможности и ресурсы в полной мере. Все вышеперечисленные консольные команды игры сталкер зов припяти скорректируют действия и параметры вашего героя, наделят его сверхвозможными способностями, откроют доступ практически ко всему, начиная от патронов и заканчивая бессмертием.

S.T.A.L.K.E.R.: Зов Припяти "Zombie mod By Niko"

АВТОР:Niko (Niko1995)
Мод возврашает в игру гражданских Зомби
Зомби пока-что не распавнены но это можно сделать при помощи повелителя зоны
чтобы открыть повелитель нажмите клавишу F1 и выберите пункт МОНСТРЫ и в самом конце будет наш Зомби :)

Тестировался на версии 1.6.01

Потом буду пробовать заспавнить их на локациях! :)


Логово кровососов

Когда не учел один важный фактор

S.T.A.L.K.E.R.: Call of Pripyat "Сборка от stylish_raccoon"


Урраааааааааааааа!Моих любимых зомбиков в ЗП вернули! А то без них любой глобал мод скучен!+100000000000000000000000000


Скрины в студию ! Авансом +10 ( Первый )



вам не надоело говорить "первый нах, второй нах". это коментарии к моду, а не кто первый.


Сначала подумал на GTA 4 :DDD На 10-ку тибе!


Уже есть моды с нормальным спауном зомби.Но за старание,так и быть +8 поставлю.


Здрасте. Народ я модить не умею.Сделайте мод где эти зомби будут по зонам шастать.И тогда +100 будет.А щас +1,еще и без скринов



ждите мода от команды AST team там много чего будет!


Спасибо Ребята За Оценки


Норм,ещё изломов вернули бы и было ок+10




S.H.T.I.R.L.I.Z. это не я заливал


S.H.T.I.R.L.I.Z. мод скачен 12 раз, просто попробуй позже ещё раз скачать. Такое иногда случается.


ааааааа! класно)) ппц я качаю)) +10





сделай плс на чн нико! я прост больше чн чем зп люблю а мод класный +10 для повелителя зоны без респавна на сталкер чистое небо!

Чит-Коды на Сталкер Зов Припяти + Повелитель зоны

Как и в большинстве игр на ПК, разработчики серии S.T.A.L.K.E.R предусмотрели читы то есть коды на сталкер зов припяти. Набор возможностей скромен: здесь нет читов ни на бессмертие, ни на полный арсенал оружия или бесконечные патроны – безумия уровня GTA с их помощью не достичь. По-настоящему превратить Зону в свою песочницу можно только специальными модами для «Сталкера: Зов Припяти» на читы. Мы же расскажем, какие чит-коды все-таки есть в «Сталкер: Зов Припяти» и как их использовать.

Коды в «Зове Припяти» реализованы в виде консольных команд. Поскольку игра не издавалась на консоли вроде Xbox и PS4, читы работают только на ПК и их можно вводить исключительно с помощью клавиатуры.

Читайте также: