Сталкер как пользоваться спавнером
Спавнер для сталкер Anomaly 1.5.1
Как включить спавнер в Сталкер Anomaly 1.5.1
6. Далее нажимаем кнопку «Спаун», обратите внимание по умолчанию генерируемые вами предметы будут появляться в рюкзаке главного героя, однако в спавнер добавлена функция спавна предметов по точке прицела, т.е. рядом с персонажем.
Кроме удобного спавнера, разработчики добавили множество других функций и редакторов игрового контента, например:
Консоль переключения команд со следующими кодами:
— God mode — Режим Бога или Повелитель Зоны (кл. G);
— Unlimited ammo — Бесконечные патроны (кл. Y);
— rsStatistic — Респавн статистики (кл. S);
— Debug HUD — Редактор игрового Худа (кл. X);
— Debug Map HUD — Отладочная карта Худа (кл. Z);
— A-Life respawns — Респавн симуляции жизни в Зоне.
Основной список редакторов:
— Spawner — Спавнер для Anomaly 1.5.1;
— Object spawner — Выбор объекта;
— Weather editor — Редактор Погоды;
— Lighting editor — Редактор освещения;
— Weapon HUD editor — Редактор худа оружия;
— Weapon stats editor — Редактор статистики оружия;
— Outfit stats editor — Редактор статистики экипировки;
— Pocket Workshop — «Карманная» мастерская;
— NPC Logic / Execute — Логика NPC.
Кроме большого объёма инструментов в спавнер добавлено множество команд для объектов и главного героя. которые активируются в главном меню консоли разработчика. Теперь вы знаете как скачать и включить спавнер для мода Anomaly 1.5.1.
Спавн через скрипт
В скриптах есть одна единственная функция, отвечающая за спавн объектов:
alife():create(section,position,levelvertex,gamevertex)
Строго говоря, их две: create create_ammo но различия между ними не существенны. Imp 22:45, 23 июля 2007 (EEST)
Дальше сложнее, так как сам толком сформулировать не могу.
Начнем от простого к сложному. На каждом уровне много объектов, все объекты состоят из полигонов, у каждого полигона есть вершины – вертексы.
Соответственно, чтобы заспавнить что-нибудь на другой карте, достаточно указать game_vertex в четвертом параметре Например:
db.actor:game_vertex()
Итак, чтобы, например, заспавнить болт под ногами актора, пишем:
alife():create(«bolt»,db.actor():position(),1,db.actor:game_vertex())
Пример (спавним артефакт Медуза в инвентаре у актора):
alife():create(«af_medusa», db.actor():position(), 1, db.actor:game_vertex(), db.actor:id())
Функция спавна возвращает серверный объект, то есть ни NPC, ни монстра ни что-либо еще.
Что мы делаем? Сверяем ID онлайн объекта с сохраненным ID!
Итак, мы поймали нашего киллера по ID.
Зачем такие сложности? Просто в оффлайне NPC как бы не существует, есть только косвенное упоминание о нем, и, плюс, все эти функции работают именно с объектом типа «NPC», а не с серверными объектами.
Практика (часть 1)
1. Чтобы не повторяться в описании создания нового квеста, просто изучите статью по созданию квестов от Fr3nzy – лучшей статьи на эту тему я просто не видел 🙂 Мы просто свяжем все воедино и научимся спавнить объекты из скрипта.
Почему предпочтительнее делать спавн скриптом, а не через тот же xrSpawner? Программа xrSpawner, при всех своих достоинствах, обладает одним недостатком, а именно – она делает спавн через файл all.spawn, что приводит к:
Невозможности совместить два мода, такой спавн использующих
Необходимости каждый раз начинать новую игру
При спавне через скрипт ситуация иная: в подавляющем большинстве случаев, ранее сохраненные игры будут работать, что не может не радовать 🙂
Итак, определимся с квестом.
Задача: после разговора с Сидоровичем спавним зомби на территории фабрики в первой локации. Для того, чтобы не повредить оригинальный сюжет игры, задание будет выдаваться после прохождения квеста с флешкой Шустрого, так как появись там зомби одновременно с бандитами и Шустрым. я думаю, исход боя предрешен 🙂
Реализация: Постараюсь описать все действия максимально подробно, буквально по шагам. Первым делом запустите игру 🙂
В консоли введите команду:
rs_stats on или rs_stats 1
Тем самым мы включаем вывод информации на экран. Далее вводим еще одну команду:
demo_record 1
Для выхода из режима demo_record нажимаем Esc, в консоли пишем rs_stats off или rs_stats 0 (убираем вывод информации).
Добавим пятую модель.
Для этого в конце файла создадим секцию:
[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 =
Все. Сохраняем и закрываем файл.
Для того, чтобы игра не вылетала после того, как мы добавили новый тип монстров, их нужно добавить в файл 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
Продолжение следует…
Практика (часть 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_weak", "zombie_normal", "zombie_strong", "zombie_immortal",
«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 строчки:
Сохраняем и закрываем.
Вкратце, что описывает файл 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. Описание что значит каждая строка писать не буду, так как все до меня уже сделано.
Тут создадим нового персонажа:
[spawn] \n
wpn_dark_colt1911 \n
ammo_11.43x23_hydro \n
#include «gameplay\character_items.xml» \n
#include «gameplay\character_drugs.xml» \n
#include «gameplay\character_food.xml»
Впишем наш код после какого-нибудь
Теперь идем в 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 и ву-а-ля.
Читы, Спавнер для ОП 2.1
ОП 2.1 представлена как глобальная модификация соединившая в себе более 60-ти игровых локаций с параллельно идущими сюжетными ветками, со своими квестовыми цепочками, новыми персонажами и сюжетными разветвлениями. Кроме сюжетного разнообразия игроки встретят массу геймплейных изменений и нововведений, которые зачастую серьезно усложняют игровой процесс.
Поиск одних тайников Коллекционера, заставляет игрока заглянуть смерти в глаза и пройти без спавнера и читов ОП 2.1 становиться большим испытание, даже для опытных игроков. Понимая сложность прохождения мода разработчики оставили возможность игрокам пройти сложные участки с официально интегрированными в ОП 2.1 читы, опционально включаемые в главном игровом меню.
Чит на бессмертие ОП 2.1
Включив опцию бессмертия, главный герой получает возможность передвигаться по игровым уровням не оглядываясь на урон противников, ущерб от аномалий и радиации.
Чит на увеличенный прыжок ОП 2.1
Прыжок становиться не ограниченным и позволит, добраться до самых потаенных уголков Зоны, исследовать труднодоступные места и доставать самые изощренные тайники.
Метка на тайники Коллекционера — даст возможность подсветить на карте местоположение всех схронов, что даст преимущество тем кто экономит свое время.
Метки на документы Воронина — активирует на карте игровых локаций местонахождение всех спрятанных документов Ворониным. Следуя по меткам вы сможет быстро собрать весь комплект и закрыть квест.
Спавнер для ОП 2.1
Как включить спавнер в ОП 2.1
Как установить спавнер ОП 2.1
Спавнер для ОП 2.1
Трудности прохождения, связанные с тотальной нехваткой патронов, медикаментов, денег, хорошего вооружения и экипировки остались позади, благодаря возможности скачать спавнер ОП 2.1 и использовать неограниченные функционал адаптированного спавн меню и Повелителя Зоны.
Встроенные возможности спавнера:
Как включить спавнер в ОП 2.1
Повелитель Зоны для ОП 2.1
Дополнительными возможностями повелителя зоны, можно воспользоваться во время игры, выйдя в главное меню и нажав следующие клавиши:
O — вызов гида повелителя зоны с описание настроек (рекомендуем ознакомиться!)
S — вызов спавнера.
U — телепортация на данной локации по координатам X/Y/Z.
N — восстановление здоровья гг, до 100%.
F2 — окно с возможностью поиска предметов по названию.
F4 — Спавн абсолютно любых предметов
F5 — удаление любого предмета по названию.
F7 — добавление вооружения в рюкзак.
F11 — Корректировка отношений NPS с персонажем.
Как установить спавнер ОП 2.1
Как убрать красную надпись Режим разработчика
Скопируйте следущие файлы в папку Bin
названия обектов для спавнера в народной солянке
Ремкомплекты
=============
repair_item_outfit
repair_item_weapon
Оружие (понятно из названия)
==========================
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
Предметы
=========
amk_ballon
amk_kanistra
amk_metka
arc_art_box_basic
arc_art_box_1basic
arc_art_box_8basic
case_freeman
device_torch
detector_simple
detector_advances
detector_elite
device_pda
device_pda_npc
device_tiran_pda
device_freedom_pda
device_dolg_pda
flamethrower_bad
gorelka
guitar_a
hand_radio
harmonica_a
manometr
matras
repair_box_outfit
treasure_item
trubka
wpn_binoc
wpn_flame
Артефакты
==========
af_medusa
af_cristall_flower
af_night_star
af_vyvert
af_gravi
af_gold_fish
af_blood
af_mincer_meat
af_soul
af_electra_sparkler
af_electra_flash
af_electra_moonlight
af_rusty_thorn
af_rusty_kristall
af_rusty_sea-urchin
af_ameba_slime
af_ameba_slug
af_ameba_mica
af_drops
af_fireball
af_cristall
af_dummy_glassbeads
af_dummy_pellicle
af_dummy_battery
af_dummy_dummy
af_dummy_spring
af_fuzz_kolobok
af_buliz
af_spirit_1
af_spirit_2
af_spirit_3
af_spirit_4
af_cry_1
af_cry_2
af_cry_3
af_babka_1
af_babka_2
af_babka_3
af_pudd_1
af_pudd_2
af_pudd_3
af_pudd_4
af_dik_1
af_dik_2
af_dik_3
af_dik_4
af_kol_1
af_kol_2
af_kol_3
af_kol_4
af_armor_1
af_armor_2
af_armor_3
af_armor_4
af_simbion
af_dummy_battery_red
af_dummy_spring_red
af_dummy_pellicle_red
af_medusa_green
af_vyvert_green
af_blood_green
Аммуниция
==========
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
wpn_addon_grenade_launcher_m203
Детали монстров
================
mutant_flesh_eye
mutant_boar_leg
mutant_dog_tail
mutant_psevdodog_tail
mutant_krovosos_jaw
mutant_burer_hand
mutant_zombie_hand
mutant_snork_leg
mutant_face_tushkano
mutant_hand_kontroler
mutant_poltergeist_glas
mutant_psevdogigant_hand
mutant_tail_cat
mutant_chimera_kogot