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

S.T.A.L.K.E.R|Модостроение

Меню навигации

Пользовательские ссылки

Объявление

Информация о пользователе

Вы здесь » S.T.A.L.K.E.R|Модостроение » Для гостей и участников! » Научимся спаунить нпс без надоедливого all.spawn

Научимся спаунить нпс без надоедливого all.spawn

Сообщений 1 страница 4 из 4

Поделиться12015-12-25 07:46:11

Для начала пропишем в congig/creatures/spawn_sections_zaton
Пропишем следующее
[kab]:stalker
$spawn = «respawn\kab»
character_profile = kab
spec_rank = master ранг
community = stalker тип:человек,зомби или мутант-лучше оставить stalker
custom_data = scripts\zaton\kab_logic.ltx файл с логикой

Далее пропишем его в character_desc_zaton

id должен совпадать с тем что мы прописали в прошлом файле
Кабан имя(отображается)
ui_inGame2_bandit_4 иконка

Опытный сталкер. Детальная информация отсутствует. биография

kab класс должен совпадать что мы прописали в прошлом фалйе
bandit группировка(у нас бандит)
stalker_terrain
characters_voice\human_01\bandit\

actors\stalker_bandit\stalker_bandit_4 визуал(у нас бандит в черном плаще)

[spawn]\n что у него заспаунится
wpn_ak74u \n
grenade_rgd5 = 2 \n
ammo_9x19_pbp = 4 \n

#include «gameplay\character_items.xml»
#include «gameplay\character_food.xml»
#include «gameplay\character_drugs.xml»
#include «gameplay\character_criticals_4.xml»

Далее пропишем его логику заходим /congig/scripts/zaton
создаем файл kab_logic.ltx
и пишем в него
[logic]
active = remark1
danger = danger_ignore
invulnerable = true

[danger_ignore]
ignore_distance = 5

[remark1]
no_move = true
anim = choose
on_actor_dist_le = 2| remark@hello
invulnerable = true
meet = meet_guide

[meet_guide]
abuse = false
use = true
allow_break = false
meet_on_talking = false

[remark@hello]
no_move = true
invulnerable = true
meet = meet_guide
on_actor_dist_le = 10| remark1

Далее создаем файл kab_add.script в gamedata/scripts
Пишем в созданном файле
function start_add_spawn()—\\
—\\

spawn_sniper_one()
end

function save_variable(variable_name, value)
xr_logic.pstor_store(db.actor, variable_name, value)
end
function load_variable(variable_name, value_if_not_found)
return xr_logic.pstor_retrieve(db.actor, variable_name, value_if_not_found)
end

Далее разрешим его спавн в gamedata/scripts
открываем файл bind_stalker.script
находим там function actor_binder:update(delta)
object_binder.update(self, delta)

и под ней пишем
if kab_add.load_variable(«spawn_kab»,false)==false then
kab_add.start_add_spawn()
kab_add.save_variable(«spawn_kab»,true)
end

Если вы хотите заспаунить другого нпс,меняем kab на свой профиль и меняем КООРДИНАТЫ

P.S НПС заспауниться на скадовске рядом с личным ящиком

Поделиться22015-12-25 07:50:21

Где диалоги kab_hello прописывайте сами в dialogs_zaton

Или просто удалите этот диалог из нашего профиля,и будет диалог стандартного приветствия бандитов

Поделиться32015-12-25 07:51:58

Kомент выше не bora,а kab для особо не понятливых

Поделиться42015-12-25 08:03:05

Ещё прописать npc_profile

Быстрый ответ

Вы здесь » S.T.A.L.K.E.R|Модостроение » Для гостей и участников! » Научимся спаунить нпс без надоедливого all.spawn

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

О сайте

Шутки из Зоны

Источник

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

#1 Отшель[НИК]

В этой статье мы разберем как заспавнить НПС с помощью скриптовой функции. Для одиночных спавнов гораздо удобней использовать скрипт, а не редактировать all.spawn.

Для начала нам понадобятся координаты. Для их снятия есть очень полезный скрипт от камрада singapur22, который отображает координаты положения ГГ, а так же имеет еще несколько полезных функций, о которых написано в ридми к нему.

Итак запускаем игру с данным скриптом, встаем в точку, где бы нам хотелось создать НПС и делаем скрин. Или можете взять уже снятые мной координаты, которые будут прописаны ниже (НПС в этих координатах появится в деревне новичков в домике, сбоку которого стоит Волк.

Функций для спавна не мало. Мне известны минимум три, но использую я всегда эту:

Координаты у нас есть, функцию мы знаем. Приступим к спавну (в качестве примера буду разбирать спавн НПС из статьи «Создание и редактирование НПС»).

Открываем файл к примеру escape_dialog.script и пропишем сюда нашу функцию с уже прописанными координатами (можете создать свой скриптовый файл если вам так удобней):
Отлично. Теперь нужно активировать эту функцию из какого-нибудь диалога или инфопоршня. Я возьму диалог из статьи по созданию диалогов и пропишу в любое место свою функцию:
Вот и все. Запускаем игру, проводим диалог с Сидором, и идем в дом, возле которого стоит Волк. Там будет стоять наш новый НПС.

#2 Atioz

Только у некоторых глючит, у большинства работает нормально.

#3 Тифлон

РЕБЯТ ПОДСКАЖИТЕ ПОЖАЛУЙСТА КАК СДЕЛАТЬ НОВОГО НПС(СКРИПТ) КВЕСТОДАТЕЛЕМ? НУ НИ КАК НЕ ПОЛУЧАЕТСЯ ((((((((((

Капс залип? Али как?

#4 strelok200

#5 Larry76

#6 Loner

Источник

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

[icq]Аська: [/icq][not-icq]Аська: не указана![/not-icq]

Имя: Георгий |Сообщений: 1842 |Уважений: 0 |Был в зоне: 8 октября 2021, 00:00 |Город: Россия |

Нам нужна установленная игра и уже распакованная gamedata, сделать это можно при помощи программы Universal Extractor (выбираем путь игры нажимаем распаковать и ждем завершения. Папка будет называться UEgamedata), далее распаковываем скрипт Position informer он нужен для определения координат в игре и для удобства еще скрипт Быстрый старт, там нет монолога Сидоровича при старте (см. описание)
Когда программа распакуется и создаст папку UEgamedata с нее будем брать необходимые файлы и закидывать в свою папку gamedata.

Создадим секцию нашего персонажа в файле:
gamedata\config\creatures\spawn_sections.ltx
Ищем:

Создаем файл esc_dyma_npc.ltx логики
gamedata\config\scripts\esc_dyma_npc.ltx
В нем содержимое

РАЗЪЕСНЕНИЕ:
Здесь содержится логика по НПС его поведения

Теперь пропишем личность нашему НПС в файле:
gamedata\config\gameplay\character_desc_escape.xml
Ищем:

РАЗЪЕСНЕНИЕ:
В этом коде содержится вся личность НПС

Регистрация НПС в файле
gamedata\config\gameplay\npc_profile.xml
В любом месте вставляем:

РАЗЪЕСНЕНИЕ:
Класс который мы указали esc_dyma_npc ОБЯЗАТЕЛЬНО должен совпадать с тем, который прописан в character_desc_escape, а specific_character должен совпадать с id нашего НПС в character_desc_escape.

Указываем имя нашего НПС в файле
gamedata\config\text\rus\stable_bio_name.xml
В любом месте вставляем:

Теперь активируем нашего НПС
gamedata\config\game_story_ids.ltx
В самом конце вставляем:

РАЗЪЕСНЕНИЕ:
Это id НПС, который будем указывать в all.spawn

Так после того как мы все сделали, теперь можно приступить непосредственно к all.spawn

Для распаковки all.spawn нам понадобится скрипт распаковщика all.spawn это версия как раз таки работает хорошо на win10 и для ТЧ 1.0004
Сделали по инструкции как написано в скрипте распаковщика, закидываем наш файл с папки UEgamedata\spawns\all.spawn в папку распаковщика all.spawn, то есть Acdc кликаем по батнику Декомпиляция.bat через несколько секунд все распакуется в этой же папки.

А так как мы создаем НПС на КОРДОНЕ, то ищем файл
alife_l01_escape.ltx

Открываем файл:
alife_l01_escape.ltx
И в самом конце вставляем:

То есть, вот скрипт Position informer показывающий позицию нашего ГГ

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

С этого мы перенесли координаты.

Открываем файл:
way_l01_escape.ltx
И в самом конце вставляем:

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

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

Заключение. Наш НПС стоит на указанной точки, теперь если его сдвинули или его что то испугало, то он вернется обратно.

Источник

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

Теория

В скриптах есть одна единственная функция, отвечающая за спавн объектов:

Строго говоря, их две: create create_ammo но различия между ними не существенны. Imp 22:45, 23 июля 2007 (EEST)

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

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

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

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

Пример (спавним артефакт Медуза в инвентаре у актора):

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

Серверный обьект позволяет свеже созданного NPC или тайник затарить разными рулезами/артефактами. Например, вот так создадим перед входом к Сидоровичу долговца и засунем в него пачку патронов:

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

Если они совпадают, например так:

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

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

Практика (часть 1)

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

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

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

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

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

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

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

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

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

В результате не нужно эксперементировать мы сразу получаем все, в том числе и level_vertex и game_vertex. Imp 22:38, 23 июля 2007 (EEST)

Выходим из игры, идем в папку с установленной игрой и создаем каталог gamedata (предполагается, что «лепим» свой «мод» на «чистую» игру, без установленных модов, и имеем распакованные ресурсы игры в папке, скажем, gamedata source).

В файлах игры присутствуют 5 моделей гражданских зомби:

Вернем в игру их всех 🙂

Уже имеются секции:

Два последних типа используют одну и ту же модель zombi_trup.ogf, хм. непорядок, исправляем. Последняя секция выглядит теперь так:

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

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

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

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

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

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

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

Далее пишем функцию:

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

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

Добавим в local killCountProps к монстрам строчку:

В local sect_alias строчку:

А ниже в monster_classes строчку:

В функцию getNpcType(npc) добавляем конструкцию:

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

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

Все верно – игра не знает какую иконку нам показывать для зомби. Иконки монстров хранятся в файле ui_npc_monster.dds. Здесь есть два варианта:

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

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

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

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

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

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

Практика (часть 2)

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

5. Теперь пропишем нашего нового зомби во все файлы, которые мы создали ранее. В файл m_zombie.ltx в самый конец добавляем секцию:

в файле esc_zombie.script изменяем массив в первой строке:

В функции spawn_zombies изменяем строку спавна:

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

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

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

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

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

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

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

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

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

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

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

Спавн NPC

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

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

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

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

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

Теперь надо заняться spawn_sections.ltx. Скрипт будет «брать NPC» как раз из этого файла. Пишем туда:

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

Источник

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

В скриптах есть одна единственная функция, отвечающая за спавн объектов:
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 и ву-а-ля.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *