Активация артефактов Распишу по пунктам как добавить например к "огненому шару" аномалию Жарка... Открываете файл: gamedata/config/misc/artefacts.ltx И там в самом начале файла такая секция: ;Артефакты, которые при активизации создают аномальные зоны ;формат: {секция_артефакта} = {секция_зоны},Radius,Power [artefact_spawn_zones] af_medusa = zone_mosquito_bald_weak, 2.0, 30.0
Обозначает что артефакт af_medusa при активации создаст аномальную зону zone_mosquito_bald_weak с радиусом 2 метра и мощностью 30 (возможно влияет и на время жизни аномалии) Кончается этот список по идее строчкой: mp_af_electra_flash = zone_witches_galantine, 3, 50.0 и сразу после неё пишете: af_fireball = zone_zharka_static, 3, 30.0 В принципе можно прописать там не статик а zone_zharka_weak незнаю что из них правильнее использовать... статик работает тоже. В той-же папке есть файл zone_zharka, где описаны свойства зон _weak, _average, _strong( слабая, средняя, сильная), а также зона zone_zharka_static. После этого у вас игра станет вылетать с ошибкой про невозможность обнаружить последовательность описывающую анимацию активации аномалии. А это всё там же в начале файла чуть ниже того где вы добавили новый артефакт в список есть такие строчки: [af_activation_gravi] ;---------------------------------------------------------------------------------------------------------------------------------------- ;format: time(sec), sound_name, light_R,G,B, light_range, particle_name, af_animation_name ;---------------------------------------------------------------------------------------------------------------------------------------- starting = 5.0, anomalygravi_idle00, 0.5, 1.0, 1.5, 5.0, "anomaly2artefact_gravi_blast_start", "idle" flying = 2.0, anomalygravi_idle01, 0.8, 1.0, 1.2, 3.0, "anomaly2artefactartefact_gravi", "idle" idle_before_spawning = 5.0, anomalygravi_blowout5, 1.0, 1.0, 1, 0.0, "anomaly2artefact_gravi_blast_finished", "idle" spawning = 1, anomalygravity_entrance, 0.9, 1.1, 1.01, 0.0, "", "idle"
Что как раз и описывает анимацию.. По-хорошему надо написать свою анимацию к жарке но это честно говоря не обязательно... потому что нам сейчас важна не красота а работоспособность.... Так вот... из заголовка "[af_activation_gravi]" берем название последовательности af_activation_gravi и ищем сам артефакт af_fireball (кто уже забыл зачем, мы на него собирались вешать новую активацию) Найдете что-то вроде: [af_fireball]:af_base GroupControlSection = spawn_group $spawn = "artifactszharka fireball" $npc = on ; option for Level Editor ;$prefetch = 3 cform = skeleton class = ARTEFACT
visual = physicsanomalyartefact_fire.ogf description = enc_zone_artifact_af-fireball inv_name = af-fireball И где-нибудь тут добавляете строчку: artefact_activation_seq = af_activation_gravi И на этом всё. Прописываем в artefacts.ltx в блоке [af_base]:identity_immunities вместо ;slot=10 вот это: slot=1. Насколько я знаю, знак ; зоначает, что строка закомментирована(неактивна) У себя я прописывал slot=1 между строчками inv_name = af-electra-moonlight inv_name_short = inv_weight = 0.05 slot = 1 inv_grid_x = 10 inv_grid_y = 10 для того артефакта, который хочу активировать. В игре берем артефакт в первый слот и активируем. By XiaNi Получено с http://www.stalkerin.gameru.net/wiki...82%D0%BE%D0%B2
Добавление статей в PDA Добавление статьи На примере статьи из Artefact Activation Mod разберем их добавление в PDA: • Добавим в файл config\gameplay\encyclopedia_zone.xml новую статью: <!-------------------------------- Activation - Basic ----------------------------->
<article id="zone_anomalies_activation_basic" name="zone_anomalies_activation-basic" group="Anomalies"> <texture x="500" y="150" width="100" height="100">ui_icon_photo</texture> <text>enc_zone_anomalies_activation_basic</text> </article> Здесь: • o article id - внутреннее имя статьи, именно на него ссылаются в файлах игры o name - имя статьи, отображаемое в игре, подгружается из строкового массива o texture - картинка и её позиция в статье, в данном случае мы использовали обычный белый шум o text - текст статьи, отображаемый в игре, подгружается из строкового массива • Добавим в, например, config\gameplay\info_l01escape.xml (инфопорции уровня "Кордон") ссылку на получение статьи - скажем, к трупу у туннеля, при обыске которого выдается информация о аномалиях в туннеле (вы его обнаруживаете, проходя второе спецзадание от Сидоровича). Найдем эти строки и дополним их: <!-- труп у аномалии --> <info_portion id="esc_tutorial_dead_novice"> <article>tutorial_moving_anomaly</article> '''<article>zone_anomalies_activation_basic</article>''' </info_portion> Главное - никогда не путайте article id, name и text статьи. Я в данном примере это сделать легко. Лучше называйте их непохожими друг на друга названиями. • Так как в статье у нас есть такое поле: <text>enc_zone_anomalies_activation_basic</text> Да и название тоже не написано прямо, а ссылается на определенную строку, то добавим этот самый text в config\text\rus\string_table_enc_zone.xml, в нашем случае: <string id="enc_zone_anomalies_activation-basic"> <text>Активация - базис</text> </string> <string id="enc_zone_anomalies_activation_basic"> <text>С артефактами связана, помимо всего прочего, ''(ну, и так далее, там большой текст)''...</text> </string> [править] Дополнительно Чтобы статья добавлялась при получении определенного задания, в ..._task.xml (вместо ... стоит название уровня) нужно прописать конструкцию вида: <article>название_задания_descr</article>
Редактирование 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--------------------->
<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--------------------->
Создание новой группировки Новая группировка Сегодня мы создадим новую группировку. Назовем её, скажем, "Ветер". Не суть важно. Практика: Базовый уровень 1. Для начала в game_relations.ltx и в таблицу отношений группировок в конце и в заголовке добавляем название своей группировки и коэффициенты отношений к ней у других группировок. Также, не забываем прописать её собственное отношение к другим группировкам: [communities_relations] ;|actor |act_dol|act_fre|stalker|monolit|militar|killer |ecolog |dolg |freedom|bandit |zombied|strange|trader|arena_enemy|wind| ;================================================= ================================================== ============================== actor = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -5000, 0 actor_dolg = 0, 0, 0, 0, -5000, -500, -5000, 5000, 600, -5000, -5000, -5000, 0, 0, -5000 actor_freedom = 0, 0, 0, 0, -5000, -5000, -5000, -1500, -5000, 5000, 0, -5000, 0, 0, -5000, 0
wind = 0, 0, 0, 0, -5000, -5000, -5000, 0, 0, 0, -5000, -5000, 0, 0, -5000, 0 Также, изменим эту строку, добавив туда имя и номер группировки: ;названия группировок communities = actor, 0, actor_dolg, 1, actor_freedom, 2, stalker, 5, monolith, 6, military, 7, killer, 8, ecolog, 9, dolg, 10, freedom, 11, bandit, 12, zombied, 13, stranger, 14, trader, 15, arena_enemy, 16, wind, 18, Отсчет идет построчно начиная сверху. Хотя есть небольшой нюанс. У первых трех строк - нумерация начинается с нуля, с остальных группировок она идет как надо. Для wind выставили 18, так как мы эту группировку отделили от других. Далее, в разделе [communities_sympathy] в конце добавляем свою группировку и коэффициент "впечатлительности" - чем он меньше, тем меньше отношение группировки будет меняться к вам в целом: [communities_sympathy] actor = 0.0 actor_dolg = 0.0 actor_freedom = 0.0 stalker = 0.0 monolith = 0.0 military = 0.0 killer = 0.0 ecolog = 0.0 dolg = 0.1 freedom = 0.1 bandit = 0.0 zombied = 0.0 trader = 0.0 stranger = 0.0 arena_enemy = 0.0 wind = 0.0 2. После этого в файле death_manager*****ipt ищем строку local community_list и в скобках добавляем название своей группировки: function init_drop_settings() local community_list = { "stalker", "dolg", "freedom", "bandit", "military", "zombied", "ecolog", "killer", "monolith", "arena_enemy", "actor_dolg", "wind" } 3. В файле death_items_by_communities.ltx пишем [x]:stalker (вместо x - название вашей группировки): [...] af_dummy_spring = 0 af_fuzz_kolobok = 0
;Еда vodka = 0
[arena_enemy] [actor_dolg]
[wind]: stalker bread = 0 kolbasa = 0 vodka = 0 energy_drink = 0.3 4. Если предусматривается респавн бойцов новой группировки, в se_respawn*****ipt прописываем в local simMaxCount = { после строчек с зомбированными сталкерами строку: wind_novice = 20, wind_regular = 20, wind_veteran = 20, wind_master = 6, 5. Чтобы при убийстве непися новой группировки игра не вылетала в xr_statistic*****ipt, после строки: zombied_novice = 1, zombied_experienced = 2, zombied_veteran = 3, zombied_master = 4, пишем dark_stalker_novice = 1, dark_stalker_experienced = 2, dark_stalker_veteran = 3, dark_stalker_master = 4,
6. Ну а в character_desk_x.xml выбираем любого NPC (или группу) и меняем группировку на свою: <!---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>wind</community> [...] 7. Чтобы у персонажа в графе "Группировка" отображалось не "wind", а "Ветер", зарегистрируем соответствующую строку в файле string_table_general.xml:
<string_table> <string id="wind"> <text>Ветер</text> </string> <string id="actor"> <text>Одиночка</text> </string> [...] 8. Существует возможность создать для нашей новой группировки места, где они будут ходить (*_terrain брать из m_stalker.ltx): То есть, к примеру, существует секция: [stalker_terrain] 255,000,255,255 008,001,255,255 ;Разрешено ходить по опасным местам на баре 012,001,255,255 ;Разрешено ходить по опасным местам на Милитари Тогда можно создать новую, по аналогии: [wind_terrain] 255,000,255,255 008,001,255,255 ;Разрешено ходить по опасным местам на баре 012,001,255,255 ;Разрешено ходить по опасным местам на Милитари 010,001,255,255 ;Разрешено ходить по опасным местам на янтаре
Здесь, очевидно, указаны координаты самого уровня. Для каждого уровня существует своя начальная координата. Продвинутый уровень: Такой метод достаточно примитивен. Это не полноценная группировка. Нам нужны соответствующие диалоги, возможность получения квестов и вступления в группировку, уникальные NPC. Квесты: Добавим квесты, которые нужно выполнить для группировки. Пока - простые поручения распространенных типов. Во-первых, пропишите в список диалогов персонажа следующие строки: <actor_dialog>[что-нибудь]_dialog</actor_dialog> <actor_dialog>[что-нибудь]_reward</actor_dialog> Примеры названий: tm_trader_dialog, tm_wolf_dialog... Внимание! Метод не проверен. Этим мы добавили ему ветку диалога "Есть работа?", а также ветку для награды за квест/отказа от него. Теперь зарегистрируем в task_manager.ltx набор новых заданий.
[wind_find_item] type = find_item community = actor text = [ссылка на текст с рассказом заказчика о задании] description = [ссылка на текст с описанием задания] parent = [имя NPC-заказчика] target = scientific_outfit reward_money = 5000 reward_reputation = +5 reward_rank = 4 reward_item = wpn_sig_m1 time = 86400
[wind_kill_stalker] type = kill_stalker community = actor text = [ссылка на текст с рассказом заказчика о задании] description = [ссылка на текст с описанием задания] parent = [имя NPC-заказчика] target = sim_stalker_master_master reward_money = 4000 reward_reputation = +5 reward_rank = 9 reward_item = ammo_5.56x45_ap, ammo_5.56x45_ap, ammo_5.56x45_ap time = 86400 Не забудьте прописать описания заданий в текстовые массивы. Подробнее о редактировании task_manager.ltx читайте в уроке, посвященном однотипным квестам. Да, и зарегистрируйте сами ветки диалогов в файле dialogs.xml. Вот пример того, как это сделано для заданий "Долга": <dialog id="tm_dolg_dialog" priority="-1"> <init_func>task_manager.init_dolg_task_dialog</init_func> </dialog> <dialog id="tm_dolg_reward" priority="0"> <init_func>task_manager.init_dolg_reward_dialog</init_func> <precondition>task_manager.has_active_vendor_tas k</precondition> </dialog> Соответственно, пройдем туда, куда указывает строка task_manager.init_dolg_task_dialog - в task_manager*****ipt: function init_dolg_task_dialog(dlg) get_random_task():init_task_dialog(dlg, "dolg") По аналогии делаем и с нашим "Ветром". Вступление в группировку: Реализуем возможность вступления в группировку. Прописываем в dialogs*****ipt такие action'ы: ----------------------------------------------------------------------------------- -- Community -----------------------------------------------------------------------------------
[...]
function actor_set_wind (actor, npc) printf ("ACTOR NOW IN WIND COMMUNITY" if db.actor then db.actor:set_character_community ("actor_wind", 0, 0) end return true end После чего создадим диалог, и сделаем в нем фразу с action'ом вида <action>actor_set_wind</action>. Советую изучить урок, посвященный диалогам. [править] Новые NPC Лучше всего всё вышеприведенное повесить на нового, уникального персонажа. Способ его спавна описан здесь.
Вычисляем координаты Нашел на одном форуме, достаточно интересно. Как получить координаты для спавна предмета или НПЦ. Скрипт сей найден на каком-то форуме, проверен и работает функция спавна имеет вид alife():create(section,position,levelvertex,gameve rtex) Где: section - имя того/чего спавним position,levelvertex,gamevertex - координаты, позиция вершины обьекта, и сектора карты. Напишу подробно, как очень про100 их узнать: Заходим, предварительно распаковав, в каталог gamedata/scripts/ И там в файле ui_main_menu*****ipt в конце дописываем это: function main_menu:OnButton_credits_clicked() local text local vid local gvid local a = vector() local text 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 Теперь в игре идём на то место (или ногами или деморекордом), где спавним обьект, выходим в меню игры, и жмём на клавишу СОЗДАТЕЛИ (CREDITS) - соответственно нашему взоры не предстаёт никакой список создателей, а мы услышим звуковой сигнал, после чего выходим в игру из меню, и в строке сообщений высветиться вся инфа. Всё - F12 или на бумажку.
Добавление предмета в S.T.A.L.K.E.R.
Спаун через 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]
Вот тебе все добро при спауне у тебя в инвентаре. все уникальное, плюс три комбеза (зеленый ученый, экзоскелет и Скат, вроде бы ).
вот только обрати внимание, что все это добро разом весит почти тонну двести кэгэ. поднимай грузоподъемность или не жадничай. А вот если появится желание скинуть это все и распихать по нычкам - не советую. Достаточно выкинуть пару сотен патронов и игра начинает подтормаживать.
okolо выжигателиа СВДшник, там в дсыру в заборе и через лес. Доходим до вертолета, и на север. Там две скалы каменные и междуними щел. Кидаем в них ствол и идем. Выходим, начинаетса загрузка и мы в Саркофаге уже в нутри. баг?
Как добавить новую еду
Ходит по Зоне любопытная легенда. Будто один сталкер на дикой территории встретился лицом к лицу сразу с тремя мутантами и, что самое интересное, расправился с ними. Поговаривают, что ему помогли в этом какие-то таблетки, дающие чудовищную силу. А чтобы не пропитаться насквозь радиацией, смельчак, говорят, регулярно пил невесть откуда взявшийся в Зоне ром.
Это не просто красивая история — в модификации, которую мы сегодня создадим, найдется место и наркотикам, и рому (и прочим алкогольным напиткам), и фантастическим подвигам.
Характеристики
В первом вскрытии «Сталкера» (см. прошлый номер «Игромании») мы воспользовались утилитой S.T.A.L.K.E.R. Data Unpacker (устанавливайте ее с нашего DVD из раздела «Игрострой»), она умеет распаковывать «сталкеровские» архивы. Сегодня нам без нее тоже не обойтись.
Первым делом создайте в игровой директории подкаталоги \temp и \gamedata (в последнюю мы будем складывать все измененные файлы). Теперь скопируйте запускающий файл STALKER Data Unpacker (полное его название — STALKER_Data_Unpacker_RU.exe, а если у вас английская версия игры, то STALKER_Data_Unpacker_EN.exe) в игровую папку и наберите в командной строке STALKER_Data_Unpacker_RU.exe gamedata.db0 \temp (в случае с английской версией RU надо заменить на EN).
В директории <Каталог игры>\temp появится все содержимое архива gamedata.db0. Сегодня нас из всего этого великолепия интересует только файл items.ltx, посвященный всяческим полезным вещичкам из инвентаря главного героя. Находится этот файл в субдиректории \config\misc. Его мы и будем править. Для этих целей подойдет обычный «Блокнот».
Файл разделен на три части (имена каждой из них отмечены рядами точек с запятыми): FOOD, MEDICAL и DEVICES. Каждая из них содержит характеристики различных видов предметов: первая — продуктов питания, вторая — медицинских принадлежностей, третья — всевозможных девайсов.
Каждой отдельной вещи отводится свой раздел (блок), имя которого заключено в квадратные скобки. Практически во всех блоках из первых двух частей файла вы сможете встретить следующие атрибуты:
cost — стоимость предмета;
inv_name — название вещи; обратите внимание, что здесь прописывается не то наименование, которые вы видите в игре, а лишь ссылка на него (имя раздела в файле string_table_enc_equipment.xml, в нем содержится само название);
inv_weight — вес;
inv_grid_width — количество клеток по горизонтали, которое занимает вещь в инвентаре;
inv_grid_height — число клеток по вертикали;
description — описание предмета; как и в случае с показателем inv_name, здесь содержится не сам текст, а лишь указание на него (а точнее — название соответствующего раздела в файле string_table_enc_equipment.xml).
Следующие шесть характеристик определяют прирост, который ваш герой получает к тому или иному показателю после использования вещи. Значения могут быть и отрицательными — в этом случае характеристики ухудшаются.
eat_health — прибавка к здоровью;
eat_satiety — насыщение организма (сытость);
eat_power — бонус к силе (энергии);
eat_radiation — защита от радиации; в данном случае отрицательное значение параметра улучшает защиту (при положительном значении ваш герой будет переносить радиацию еще тяжелее, чем обычно);
eat_alcohol — действие алкоголя; чем выше число, тем большие проблемы со зрением и координацией испытывает герой;
wounds_heal_perc — остановка кровотечения.
Пиво и ром — почувствуйте разницу. После употребления пива вашего героя лишь слегка заносит на поворотах. Ром куда крепче — перед глазами все буквально плывет.
Готовка
Путем редактирования файла items.ltx добавим в игру ряд уникальных полезных вещиц, которые здорово разнообразят джентльменский набор сталкера и окажут вам неоценимую помощь в сложных игровых ситуациях.
Алкоголь
Водку описывает блок под названием vodka (кто бы мог подумать?!). Ее мы преобразуем в ром или там пиво — как вам угодно. В первом случае понадобятся следующие изменения: cost — 200, eat_satiety — 0, eat_health — -0.03, eat_radiation — -0.5, eat_alcohol — 0.3.
В оригинале водка слегка сбивает у вас аппетит и чуть-чуть укрепляет здоровье — все это, согласитесь, не совсем естественно. У нас же в моде заменяющий ее ром никакого насыщения организму не дает, а здоровье, наоборот, заметно подсаживает. Да и крепкий он очень — в глазах от него плывет еще сильнее, чем он водки (так что будьте с ним осторожнее). Зато он намного эффективнее борется с радиацией.
Если вы желаете заменить водку пивом, изменения должны быть такими: cost — 50, eat_health — 0, eat_radiation — -0.2, eat_alcohol — 0.05. Этот пенный напиток в нашем моде, по сути, является облегченной версией водки: от радиации предохраняет похуже, но и опьянение от него слабое. Энергетик
Энергетический напиток Non Stop несложно переделать в алкогольно-энергетический. Для того чтобы изготовить этот чудный коктейль, нужно перейти в раздел energy_drink и смешать ингредиенты в следующих пропорциях: cost — 80, eat_power — 0.7, eat_alcohol — 0.08, eat_radiation — -0.3. Готово — можно пробовать. Однако учтите, что эта гремучая смесь немного опьяняет, зато является средством защиты от радиации и энергетиком в одном флаконе. Хотя, конечно, оба этих полезных качества в данном случае не столь эффективны, как при использовании узкоспециализированных водки и Non Stop. Наркотик
Обычную же консерву мы превратим в... мощный наркотик-стимулятор (благо консервы в игре не очень-то и нужны, ведь есть другая еда — хлеб и колбаса). Все, что для этого нужно, — внести следующие преобразования в блок conserva: cost — 120, inv_weight — 0.2, eat_health — -0.05, eat_satiety — 0.1, eat_power — 1.8. Получившаяся смесь губительно сказывается на здоровье, но дает просто фантастический прилив энергии, да и весит всего ничего. Кроме того, этот наркотик немного отбивает аппетит.
После того как корректировка файла items.ltx будет завершена, скопируйте его в <Каталог игры>\gamedata\config\misc (для этого вам понадобится предварительно создать в папке \gamedata подкаталог \config\misc). Упаковка
С «начинкой» покончено. Осталось придать продуктам питания подходящий внешний вид, а также сделать соответствующие названия и описания.
Переименование
Чтобы изменить описания, вам придется поработать с архивом gamedata.db9. Распаковать его можно следующим образом: находясь в директории игры, наберите в командной строке: STALKER_Data_Unpacker_RU.exe gamedata.db9 \temp. Теперь отправляйтесь в папку <Каталог игры>\temp\config\text\rus, где вас уже поджидает файл string_table_enc_equipment.xml, содержащий наименования и описания предметов. Его также можно редактировать в «Блокноте».
Наркотик дает столь мощный прилив энергии, что враги подчас просто не поспевают за действиями главного героя.
Все xml-файлы устроены следующим образом. Каждой надписи соответствует небольшой раздел вида:
<string id="X">
<text>Y</text>
</string>
Здесь X — название блока, то есть кодовое наименование объекта, к которому относится надпись. Y — сам текст.
Сначала исправьте названия переделанных нами ранее вещей. Отыщите блок со словом Vodka. На месте Y в нем стоят слова «водка «Казаки». Исправьте ее на «Ром» или «Пиво» (без кавычек) — в зависимости от того, какой напиток вы добавили в игру.
В разделах energy_drink_name и energy_drink_short_name сочетание «Энергетический напиток Non Stop» следует заменить, скажем, на «Алкогольно-энергетический напиток». Наконец, в блоке Conserva исходный текст «Радость туриста» следует исправить на «Наркотик-стимулятор».
Далее подредактируйте описания экс-водки (раздел enc_equipment_food_vodka1), экс-энергетика (enc_equipment_energydrink) и экс-консервов (enc_equipment_food_conserva1).
После завершения всех текстовых преобразований файл string_table_enc_equipment.xml следует скопировать в <Каталог игры>\gamedata\config\text\rus (предварительно создав в папке \gamedata\config субдиректорию \text\rus). Перевоплощение
Самое время изменить внешний вид наших крайне полезных продуктов питания. На этот раз нам понадобится архив gamedata.db7. Распакуйте его, напечатав в командной строке следующий текст: STALKER_Data_Unpacker_RU.exe gamedata.db7 \temp. В директории <Каталог игры>\temp\textures\ui вы обнаружите файл ui_icon_equipment.dds. Он содержит изображения вещей из инвентаря. Чтобы увидеть и подкорректировать эти картинки, файл нужно перевести в стандартный формат. В этом вам поможет набор утилит DXT Tools (находится на нашем диске в разделе «Игрострой»).
Ром значительнее лучше водки защищает от радиации. Но лучше им не злоупотреблять.
Скопируйте файл ui_icon_equipment.dds в каталог, в который вы установили DXT Tools. Находясь в этом каталоге, наберите в командной строке: readdxt.exe ui_icon_equipment.dds. В результате вы получите искомую картинку в виде файла test.tga. Открывайте его в Photoshop (или в каком-то другом мощном графическом редакторе) и готовьте кисти.
Полученный файл содержит альфа-канал. Чтобы его увидеть, в списке каналов (меню Channels) программы выберите пункт Alpha 1 (вместо прежнего RGB). Вашему взору предстанут знакомые вам по игре изображения, но закрашенные в белый цвет. Эти шаблоны задают форму каждого отдельного предмета и его границы. Если вы задались целью хоть чуточку изменить размер объекта, не забудьте отредактировать и альфа-канал. Например, если вы подрисовываете к вещи какой-то новый элемент, перейдите в режим в Alpha 1 и обязательно залейте его белым цветом.
Впрочем, если вы не планируете глобальных изменений, можно и вообще не трогать альфа-канал. Например, для трансформации водки в ром или пиво совершенно необязательно менять форму бутылки. Достаточно просто-напросто «переклеить» этикетку и нанести какую-то новую надпись (название напитка или производителя) или логотип. То же самое и с банкой энергетика. Только учтите, что новые рисунки должны быть максимально крупными, иначе вы их просто не разглядите в игре.
Консервную банку можно преобразовать в... таблетку. Здесь-то вам как раз и пригодится альфа-канал. Совсем несложно закрасить черным цветом (именно тем его оттенком, что разграничивает предметы в файле) консерву и на ее месте с использованием инструмента «Эллипс» (Ellipse Tool) нарисовать одну или лучше несколько таблеточек. После этого, перейдя в режим альфа-канала, закрасьте получившиеся кружки белым цветом.
Когда все графические экзерсисы будет закончены, сконвертируйте файл test.tga обратно в формат dds. Для этого в папке DXT Tools пропишите в командной строке: nvdxt test.tga. Переименуйте сформированный файл test.dds в ui_icon_equipment.dds и скопируйте в <Каталог игры>\gamedata\textures\ui. * * *
Мы добавили в игру четыре невиданных ранее продукта: ром, пиво, алкогольно-энергетический напиток и наркотик-стимулятор. При желании вы можете сотворить еще несколько не менее полезных продуктов, изменяющих характеристики главного героя. Описанным в статье способом очень легко создавать небольшие, но крайне интересные модификации. Главное — не забывать о балансе