Custom npcs/создание npc

Алан-э-Дейл       15.05.2023 г.

Характеристики[]

Далее нужно поставить количество здоровья боту (Минимум — 1 Максимум — 6000000000

Потом нужно настроить рукопашную 1 — Рука 2 — Меч 3 — Длинное оружие (Больше ставить не советую!)

Либо Дальнобойную

Главные параметры Дальнобойной атаки —

Точность — Точность моба (100 % — Очень меткий 75% Меткий 50% Средненько 25% Кривой)

Звуки — Звук Стрельбы Всего их три Чтобы выбрать звук надо нажать кнопку выбрать

Пропорции

Там можно настроить снаряд

Самые важные параметры:

Размер — величина в пикселях

Взрыв — получает ли урон от взрыва

Искусственный Интеллект

Движение

Здесь можно настроить движение

Наш Персонаж Может:

Сидеть, Лежать, Целится, Танцевать, Присесть, Ползать

Также можно настроить ходит он или нет

Взаимодействие с дверью

Взаимодействие с дверью

Ломает — Ломает дверь как Зомби

  • Открывает — Открывает дверь как Житель
  • Отключить — Игнорирует двери

Если найдет врага

  • Месть — Будет нападать если найдет врага как например Скелет или Крипер
  • Паника — Запаникует как например Корова или Свинья
  • Ничего — Будет Игнорировать врага

Продвинутые

Роль

Роль бота

  • Продавец — Будет Торговать вещами но со своим интерфейсом а не как у Жителей
  • Последователь — Можно будет приручить и он будет ходить за тобой в течении определенного количества суток как например Оцелот в версии 1.14
  • Банк — Будет давать игроку возможность хранения вещей как Сундук или Ящик шалкера
  • Companion(WIP) —
  • Диалог — Будет говорить с игроком

Работа

ВНИМАНИЕ! Здесь не все работы бота а лишь некоторые

  • Спавнер — будет спавнить другого бота или себе подобных
  • Страж — Будет Убивать определенных мобов
  • Босс(Только для 1.6 и раньше) Будет спаунить определенных мобов и будет показываться боссбар
  • Разговорщик — Ничего

Фракции

По умолчанию есть только три

  • Freindly — Бот не атакует игрока и игрок аттаковать его не может
  • Neutral — Бить бота можно но если ударить он начнеть аттаковать игрока как например Волк

Aggresive — Будет бить игрока как только найдет его как например Зомби

Но также можно создавать и настраивать свои фракции

Параметров больше, но в них легко разобраться и самому

Основные консольные команды в Black Mesa

  • god – режим бога (неуязвимость)
  • buddha – режим бессмертия (атаки отнимают здоровье, но вы не умрёте)
  • notarget – враги не будут на вас реагировать
  • noclip – режим полёта и прохождения через стены
  • impulse 101 – получить всё оружие, боеприпасы и костюм
  • give – получить нужный предмет (аптечки, оружие, патроны), подробная информация далее
  • map – переместиться на нужный уровень, подробная информация далее
  • ent_remove – удалить из мира предмет или существо, на которое указывает прицел
  • ent_remove_all – удалить из мира все существа указанного типа
  • npc_create – создать существо указанного типа, подробная информация далее
  • sv_gravity – задать значение гравитации
  • sv_friction – задать значение силы трения
  • sv_bounce – задать силу отскока при столкновениях объектов

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

То же самое касается и некоторых персонажей, которые необходимы для срабатывания заскриптованных сцен.

Create an NPC

To create NPCs, make sure that you are playing in Creative mode with cheats enabled and that you have Operator permissions for your world. To interact with your custom NPCs, you will need to switch from Creative mode to Survival mode or Adventure mode.

To create a custom NPC, follow these instructions:

  1. Obtain an NPC spawn egg from the creative menu or by using the command .
  2. Right-click to place an NPC on your desired block. If you misplace an NPC, you can left-click to despawn them.
  3. Right-click your new NPC to open the NPC interface.
  4. Enter a name for your NPC. Names are limited to 32 characters. You can use color codes to change the color of the name text.

The NPC editor has a built in dialog feature to give players more information about the commands they will execute or to deliver story details.

This dialog box has a limit of 307 characters before the text goes off the screen. You can also use color codes to change the color of the text.

You can use behaviour packs and commands to create a more advanced dialogue system for your custom NPCs. See NPC Dialogue Command for more information.

Команды на смену карты в Black Mesa

Главы в Black Mesa разделены на отдельные карты-уровни. Чтобы перенестись на нужный уровень, используйте команду map . Названия карт приведены ниже.

Карты комплекса Чёрная Меза

Прибытие в Чёрную Мезу

  • bm_c0a0a
  • bm_c0a0b
  • bm_c0a0c

Аномальные материалы

  • bm_c1a0a
  • bm_c1a0b

Непредвиденные последствия

  • bm_c1a1a
  • bm_c1a1b
  • bm_c1a1c
  • bm_c1a1d
  • bm_c1a1e

Офисный комплекс

  • bm_c1a2a
  • bm_c1a2b
  • bm_c1a2c

Мы встретили неприятеля

  • bm_c1a3a
  • bm_c1a3b
  • bm_c1a3c

Отводной колодец

  • bm_c1a4a
  • bm_c1a4b
  • bm_c1a4c
  • bm_c1a4d
  • bm_c1a4e

Подача питания

  • bm_c2a1a
  • bm_c2a1b

По рельсам

  • bm_c2a2a
  • bm_c2a2b
  • bm_c2a2c

Мрачное предчувствие

  • bm_c2a3a
  • bm_c2a3b

Переработка отходов

  • bm_c2a4a
  • bm_c2a4b
  • bm_c2a4c
  • bm_c2a4d

Сомнительная этика

  • bm_c2a4e
  • bm_c2a4f
  • bm_c2a4g
  • bm_c2a4h

Поверхностное натяжение

  • bm_c2a5a
  • bm_c2a4b
  • bm_c2a5c
  • bm_c2a5d
  • bm_c2a5e
  • bm_c2a5f
  • bm_c2a5g

Забудьте о Фримене

  • bm_c3a1a
  • bm_c3a1b

Ядро Лямбды

  • bm_c3a2a
  • bm_c3a2b
  • bm_c3a2c
  • bm_c3a2d
  • bm_c3a2e
  • bm_c3a2f
  • bm_c3a2g
  • bm_c3a2h

Карты Зена

Прибытие в Зен

  • bm_c4a1a
  • bm_c4a1a1
  • bm_c4a1b
  • bm_c4a1b1
  • bm_c4a1c
  • bm_c4a1c1

Гнездо Гонарча

  • bm_c4a2a
  • bm_c4a2b
  • bm_c4a2c

Нарушитель

  • bm_c4a3a
  • bm_c4a3a1
  • bm_c4a3b
  • bm_c4a3b1
  • bm_c4a3b2
  • bm_c4a3c
  • bm_c4a3c1
  • bm_c4a3c2
  • bm_c4a3d
  • bm_c4a3d1

Нихилант

bm_c4a4a

Финал

bm_c4a5a

Flags

  •  [] : Wait Till Seen   Prevents this NPC from seeing (or being seen) until it enters a player’s viewcone.

  : Gag (No IDLE sounds until angry)

  : Fall to ground (unchecked means *teleport* to ground)

  : Drop Healthkit   Causes this NPC to drop an item_healthvial upon dying.

  : Efficient — Don’t acquire enemies or avoid obstacles

  : Wait For Script   Forces this NPC to «wait» in an idle state until it finishes playing a scripted_sequence.

  : Long Visibility/Shoot   By default, increases a NPC’s sight range to 6,000 units and allows it to attack from anywhere within that distance.

  : Fade Corpse

  : Think outside PVS   Allows this NPC to run its regular AI outside of any player’s PVS.

  : Template NPC   Marks this NPC as a template for entities like npc_template_maker. The NPC will not spawn on its own. This is not needed for point_template.

  : Do Alternate collision for this NPC (player avoidance)  
 Note: This flag is disabled in episodic for player companions because the StartScripting input does this.

  : Don’t drop weapons

  •  [] : Ignore player push (in all games since )   Don’t give way to player
  •  [] : Follow player on spawn   Causes the citizen to follow the player when it spawns. It won’t join the player’s squad until it gets close enough
  •  [] : Medic   Turns the citizen into a medic that can heal the player and other NPCs in its squad. Citizens with the «Rebel» citizen type adopt a medic uniform.

 Warning: In regular Half-Life 2, medics do not account for the player’s Z position when giving health. For example, the player could be on the edge of a ledge, and a medic can give them health despite being a considerable distance below. This has been fixed in Episode One and Episode Two.

 Bug: Medics don’t correctly account for relationship when checking to heal a target, so citizens hostile to the player can still heal them.

Code Fix: This can be fixed in by changing the first disposition check to check for , not .
  •  [] : Random Head   Randomizes the citizen’s model in between all available heads from the chosen citizen type.
  •  [] : Ammo Resupplier   Turns the citizen into an ammo resupplier that can replenish the player’s ammo.
  •  [] : Not Commandable   Prevents the citizen from joining the player’s squad.
  •  [] : Don’t use speech semaphore   Obsolete: use the keyvalue
  •  [] : Random male head   Randomizes the citizen’s model in between all male heads from the chosen citizen type. Leaving the original spawnflag enabled is optional. }}
  •  [] : Random female head   Randomizes the citizen’s model in between all female heads from the chosen citizen type. Leaving the original spawnflag enabled is optional.
  •  [] : Use RenderBox in ActBusies.  
     Note: This makes the collision hull surround the model rather than using the human hull. It’s more computationally expensive, but necessary when ActBusies involve close proximity to other props/geometry or animate the citizens in a more dynamic way.

Секреты и советы по деревенским жителям

  • Несмотря на тот факт, что мирные деревни жителей не генерируются на просторах болотных и джунглевых биомов, жители всё равно могут обзавестись соответствующим стилем одежды (для этого деревня должна немного доставать до территории болот или джунглей).
  • В случае, если мирный житель решить лечь поспать на территории «Края» или «Нижнего мира», кровать по итогу не взорвётся, как в случае, когда на неё ложится персонаж и она по итогу взрывается.
  • Мирные жители спят всегда с открытыми глазами. Вдобавок они будут даже во сне произносить свои характерные звуки.
  • На мирных жителей можно прикрепить при желании бирки в игре Майнкрафт. И они всегда получат имя, которое им даст персонаж, но при этом торговый интерфейс в таком случае не открывается.
  • Мирные жители отличаются в зависимости от того, на территории какого биома они находятся. К примеру, болотные жители будут носить на голове кувшину, саванные жители будут носить шапки, а тундровые жители будут носить наушники из меха.

Жители в Minecraft сильно способны разнообразить игровой процесс и приключения. К примеру, при желании можно построить дом рядом с деревней, оборонять её или торговать с местными, что довольно сильно упрощает игру. Однако помните, что без модов они часто нуждаются в защите даже в том случае, если деревню защищает железный голем.

Other Options

Other ways you can control include:

  • to attach temporary permissions to the player (generally don’t use this, instead use … or just execute as-server)
  • to make the command respond to left clicks (punch/attack). Note that this may not work if PvP is disabled.
  • to make the command respond to right clicks (standard interact).
  • to make a command only usable a certain number of times per player (in this example, 5 usages).
  • to make the command only usable once per certain time period (in this example, 10 seconds), for each player.
  • to make the command only usable once per certain time period (in this example, 10 seconds), globally (nobody can use the NPC again until the cooldown ends).
  • to make the command have a delay before it activates (in this example, 40 ticks, aka 2 seconds).
  • to make the command have a cost using any Vault-compatible economy plugin (in this example, $50). This will refuse to run for players that don’t have enough money, and automatically take the money before executing the command for those that do have enough.
  • to open a GUI to configure an item-cost (the player has to give the item for the command to execute).

There maybe be more options available for not yet explained here, so type in-game to see any such options.

Using the Persistence API

Sometimes, traits can store a lot of simple variables such as primitives, Strings, Locations, and others. Saving/loading them via the trait API can be a little bit of overkill.

Citizens 2.0.4+ provides a simple Persistence API to automatically save and load these variables using DataKeys. The key to this API is the @Persist annotation. Sample code is provided below.

Code: Example
 public class MyTrait extends Trait {
     // logic omitted.

    @Persist boolean myVariable = false; // the default value of @Persist saves the value under the field name (in this case, 'myVariable').
    
    @Persist("newkey") int intVariable = 11; // this saves the value under 'newkey'. The default value of the variable has been set to 11 - this will be used when loading if the key doesn't exist.

    @Persist(value="newkey", required=true) String required; // if the value under 'newkey' doesn't exist, then the trait will fail to load.
 }

More advanced use of the API can be found in the @DelegatePersistence annotation. This allows complex types such as Locations to be saved and loaded with finer grained control. These types can be given default delegates by calling PersistenceLoader#registerPersistDelegate(Persister) — Location has a built in Persister for convenience.

Code:
 public class MyTrait extends Trait {
     // logic omitted.

    @Persist 
    @DelegatePersistence(ExplicitComplexTypePersister.class) // explicit delegation
    ComplexType myComplexType;

    @Persist ComplexType implicitComplexType; // implicit delegation
    static {
        PersistenceLoader.registerPersistDelegate(ImplicitComplexTypePersister.class);
    }
 }
 
 public class ExplicitComplexTypePersister implements Persister {
     public Object create(DataKey root) {
         return new ComplexType(root.getInteger("complexstructures"));
     }
     public void save(Object instance, DataKey root) {
         ComplexType real = (ComplexType) instance; // guaranteed cast - will always succeed.
         root.setInteger("complexstructures", real.getComplexStructure());
     }
 }

NPC Events

Citizens implements its own Listeners and will call new NPC-specific versions of many common events. This saves Trait developers the trouble of finding their npcs from the normal event entities. The event object these events provide are just like their Bukkit counterparts with the addition of the getNPC() method.
Citizens currently provides the following:

  • EntityTargetNPCEvent
  • NPCChatEvent
  • NPCClickEvent
  • NPCCollisionEvent
  • NPCCombustByBlockEvent
  • NPCCombustByEntityEvent
  • NPCCombustEvent
  • NPCDamageByBlockEvent
  • NPCDamageByEntityEvent
  • NPCDamageEvent
  • NPCDeathEvent
  • NPCDespawnEvent
  • NPCEvent
  • NPCLeftClickEvent
  • NPCPushEvent
  • NPCRemoveEvent
  • NPCRightClickEvent
  • NPCSelectEvent
  • NPCSpawnEvent
  • PlayerCreateNPCEvent

Dedicated Console Variables

Dedicated Console Variables:

ai_citizen_debug_commander <bool>
When a citizen is selected with , provides additional information about how the citizen processes commands from the player.
g_ai_citizen_show_enemy <bool>
When a citizen is selected with [confirm], draws a line from the citizen’s eyes to the eyes of its enemy during combat.
npc_citizen_auto_player_squad <bool>
Makes the citizens automatically join the player’s squad as long as they’re within a minimum distance to the player and a squad slot is available.
npc_citizen_auto_player_squad_allow_use <bool>
If set to 1, makes the citizens join/unjoin the player’s squad when they +USE the citizen, as long as a squad slot is available.
npc_citizen_explosive_resist <bool>
Resistance against exposions.
npc_citizen_insignia <bool>
Places on the heads of citizens in the player’s squad.
npc_citizen_squad_marker <bool>
Adds a small marker under their feet when the citizens are in the player’s squad.
sk_citizen_giveammo_player_delay <float>
Time between ammo assistances.
sk_citizen_heal_ally <int>
Amount of health to heal allies for.
sk_citizen_heal_ally_delay <float>
Time between medical assistances for allies.
sk_citizen_heal_player <int>
Amount of health to heal players for.
sk_citizen_heal_player_delay <float>
Time between medical assistances.
sk_citizen_heal_player_min_forced <int>
Players must be at least this far from their max health before medics can heal them again.
sk_citizen_heal_player_min_pct <float>
How much health a NPC has to have before medics will consider healing them. Target’s health * this variable.
sk_citizen_health <int>
A citizen’s spawn health.
sk_citizen_player_stare_dist <float>
How far medics have to be from the player to register healing requests from staring.
sk_citizen_player_stare_time <float>
How long a player has to stare at a medic before they give them health.
sk_citizen_stare_heal_time <float>
How long to wait after healing someone before medics can resume stare healing request behavior.

Как размножать жителей в Майнкрафте?

  • Основные условия для размножения. Представители взрослых этих мобов могут создавать потомство лишь при условии готовности (об этом ниже) и подходящего времени суток. При этом на процесс создания потомства не влияют свободные места, где жители могут заниматься работой. Ну и напоследок стоит отметить, что эти мобы размножаются до того момента, пока мирная деревня имеет в наличии свободные кровати.
  • Этап готовности к размножению. Следует понимать, что каждый житель должен быть «готов» для размножения. И даже после того, как произойдёт спаривание, они снова могут быть готовы к этому процессу.

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

Ещё один важный момент заключается в том, что для желания размножаться, жители у себя в инвентаре должны иметь обязательно либо три единицы хлеба, либо любые другие 12 единиц еды. Впрочем, задачу облегчают фермеры, которые делятся остальными едой, когда видят, что её не хватает.

Свои собственные звуки[]

Это несколько сложнее чем, просто залить текстуры, как написано выше.

  • название файла на английском, не должно содержать большие буквы,символы,пробелы (вместо них можно использовать знак «_»)
  • в формате
  • размер файла не желательно делать больше, чем 2Мб. Это примерно 30-45 секунд звука в моно канале, самого низкого качества из формата «.ogg» . Если превысить размер в 2Мб, то в сетевой игре игрок, попавший в зону срабатывания вашего звука, зависнет на несколько секунд, так как для него будет разворачиваться этот огромный файл. В одиночной игре игрок подвисает, но совместно со всем миром,нежели в сетевой.

Под звуком можно принимать музыку, записанный голос и прочие звуки. Для создания формата .ogg используйте различные программы или конвертеры.

Далее:

Заходим в папку по пути:

в Win XP это — %AppData%/.minecraft/customnpcs/assets/customnpcs/sounds

Тут создаём себе папку, название которой должно быть на английском, не должно содержать большие буквы,символы,пробелы. Пример: «mysound»

Ну,а теперь самое сложное:

  • Вернемся назад, в папку: .minecraft/mods/customnpcs/assets/customnpcs/
  • Теперь,чтобы внести сюда свой файл, пролистаем весь текст до конца. Перед самой нижней/последней скобкой «}» жмём кнопку ↵ Enter и введем следующий текст:
, "(название вашего звука в игре)": {"category": "player","sounds": ["(путь к вашему файлу и его название через / без формата)"]}

Пример: Вы создали папку с названием mysound и закинули туда звуковой файл с названием say_hello.ogg. Но вы хотите, чтобы в игре он отображался как My NPC Say hello. Тогда ваша строчка должна будет выглядеть так:

, "My NPC Say hello": {"category": "player","sounds": ["mysound/say_hello"]}

Теперь, когда вы сохраните этот файл, зайдете/перезайдёте в игру и нажмёте кнопку «Выбрать Звук», то в открывшемся окне, в самом низу списка увидите строчку My NPC Say hello. Это и будет ваш файл.

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

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

 , "(название вашего звука в игре)": {"category": "player","sounds": }

Из примера выше. Ваша папка mysound, три звуковых файла say_hello_1.ogg, say_hello_2.ogg, say_hello_3.ogg. Название в игре то же — My NPC Say hello. Тогда ваша строчка будет выглядеть так:

, "My NPC Say hello": {"category": "player","sounds": ["mysound/say_hello_1","mysound/say_hello_2","mysound/say_hello_3"]}

Если вы добавили конкретно музыкальный файл, а не звук ( т.е. музыка,которую играет NPC Бард ) , то укажите это в строчке после пути параметром stream = true, весь путь указан в скобках «{ }» и начинается с «name»: . То бишь так:

, "(название вашего звука в игре)": {"category": "player","sounds": }

Строчка будет выглядеть так (пример) :

, "My NPC Say hello": {"category": "player","sounds": [{"name":"mysound/say_hello_1","mysound/say_hello_2","mysound/say_hello_3", "stream": true}]}

Кнопка Linked

Linked (рус. «Сопряжённый») — откроет окно выбора связывания. Вернее, эта кнопка откроет список с созданными связями, кликнув на одну из них, к NPC сразу же будут применена эта связь.

На самом деле эти самые связи — это нечто на вроде сохранённых настроек всего NPC, всех его закладок (Задания, Характеристики, ИИ, Инвентарь и Продвинутые). И если на одном NPC есть какие-то настройки диалогов и/или квестов, а вам нужен этот NPC в 2х или более местах разом, то клонировать его не обязательно, для этого эта связь и существует.

А также при редактировании одного NPC со связью изменит и всех остальных связанных NPC. А действия игрока с одним из них, распространиться и на других.

Создать это сохранение-связь можно в Закладке «Глобальные». Смотри раздел «Кнопка Linked» в статье

Видео Как сделать NPC торговца у себя на сервере Minecraft 1.5.2 от автора Костя Постников.

Я знаю, что надо писать — Оружие!))

JOIN VSP GROUP PARTNER PROGRAM:

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

Видео для мобильного телефона, смартфона, планшета и т. д. можно посмотреть тут онлайн, бесплатно и без регистрации. А также скачать мобильное видео в формате mp4, x-flv и 3gpp!

Пожалуйста, оставьте свой комментарий или отзыв к этому видеоролику! Автору будет очень интересно узнать, что вы думаете о его работе.

Ссылка на страницу с видео:

Ссылка HTML на страницу с видео:

Код для вставки плеера:

Вывод (Outputs)

Выполняется, когда этот NPC получает повреждения. ( is the наносящий повреждения)

OnDeath

Выполняется, когда этот NPC убит. ( is the убийца)

OnHalfHealth

Выполняется, когда у этого NPC остается половина от его возможной максимальной жизни.

OnHearWorld

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

OnHearPlayer

Выполняется, когда NPC слышит игрока.

OnHearCombat

Выполняется, когда NPC слышит звуки боя.

OnFoundEnemy

Выполняется, когда этот NPC установил прямую видимость с врагом (указанной энтитей).

OnLostEnemyLOS

Выполняется, когда этот NPC потерял прямую видимость с врагом.

OnLostEnemy

Выполняется, когда этот NPC потерял врага. Обычно это происходит, когда враг был убит/убран, или потому что NPC выбрал новую, более опасную цель.

OnFoundPlayer

Выполняется, когда этот NPC установил прямую видимость с врагом, и этот враг — игрок.

OnLostPlayerLOS

Выполняется, когда этот NPC потерял прямую видимость с врагом, и этот враг — игрок.

OnLostPlayer

Выполняется, когда этот NPC потерял врага, и этот враг был игрок. Обычно это происходит, когда враг был убит/убран, или потому что NPC выбрал новую, более опасную цель.

OnDamagedByPlayer

Выполняется, когда этот NPC ранен игроком. ( is the атакующий или водитель транспорта (если активен friendly fire))

OnDamagedByPlayerSquad

Выполняется, когда этот NPC ранен игроком ИЛИ одним из участников отряда игрока. ( is the атакующий или водитель транспорта (если активен friendly fire))

OnDenyCommanderUse

Выполняется, когда этот NPC не был принят в отряд игрока.

OnWake

Выполняется, когда этот NPC выходит из состояния сна.

OnJoinedPlayerSquad

Выполняется когда присоединяется к отряду игрока

OnLeftPlayerSquad

Выполняется когда покидает отряд игрока (не включая смерть или удаление)

OnFollowOrder

Выполняется когда приказано следовать за игроком

OnStationOrder

Выполняется, когда игроком приказано идти к заданной точке

OnPlayerUse

Выполняется, когда игрок использует (+USE) гражданского. ( is the player)

OnNavFailBlocked

Гость форума
От: admin

Эта тема закрыта для публикации ответов.