• 欢迎来到Minecraft插件百科!
  • 对百科编辑一脸懵逼?帮助:快速入门带您快速熟悉百科编辑!
  • 因近日遭受攻击,百科现已限制编辑,有意编辑请加入插件百科企鹅群:223812289

MythicMobs/Mobs:修订间差异

来自Minecraft插件百科
跳转到导航 跳转到搜索
第885行: 第885行:
*为实体增加伤害抗性
*为实体增加伤害抗性
*比如..免疫近伤,但受到弹射物伤害加倍...
*比如..免疫近伤,但受到弹射物伤害加倍...
*影响[[MythicMobs/Skills|技能]]造成の伤害,如[[mineplugin.org/MythicMobs/Skills/TargetSkills|Ignite(点燃)]]造成の燃烧被FIRE_TICK影响
*影响[[MythicMobs/Skills|技能]]造成の伤害,如[[MythicMobs/Skills/TargetSkills|Ignite(点燃)]]造成の燃烧被FIRE_TICK影响
{| class="wikitable"
{| class="wikitable"
|-
|-

2021年8月2日 (一) 16:33的版本

实体(Mobs)

概览(Preview)

生物一定是实体,实体不一定是生物

——编者:鲲鲲
  • MM实体内部ID是区分大小写的,如你的MM怪叫KK,而你使用/mm m s Kk后,MM会提示无法找到该实体
  • MythicMobs基于自定义的生物(或实体),有很多选项和属性可以使用。下面是可以添加到自定义生物中的选项和属性的完整列表。
  • 其中大多数是可选的,这意味着您不必每次创建新的生物时都配置整个列表。真正必要的只是内部生物名称(internal_mobname)生物种类(Type)
  • 你可以在Mobs文件夹中创建任意数量的文件,文件名称随意,格式为yml或txt。
一个带有所有选项的示例
鲲鲲的主人: #实体内部ID
  Type: WITHER_SKELETON #怪物类型,这里为凋灵骷髅
  Display: '§b鲲鲲' #怪物显示名,这里为蓝色的"鲲鲲"
  DamageModifiers: #伤害调整
  - LIGHTNING 0.1 #减少90%的雷击伤害
  - FIRE 2.0 #额外受到一倍火焰伤害
  - AIR 1.0 #正常受到窒息伤害
  - ICE 0.5 #这个咱不知道是啥
  Disguise: #伪装
    Type: Player #伪装类型
    Skin: Knight #若类型为Player,所用的玩家皮肤
    Player: '§d§l鲲鲲大魔王' #若类型为Player,所显示的怪物名称
    Invisible: false #可见,true为不可见
    ShowName: false #不显示名字,false为显示名字
  BossBar: #Boss血条
    Enabled: [true/false] #开启/关闭
    Title: '鲲鲲大魔王!' #标题文本为鲲鲲大魔王!
    Range: 5 #处在5m内的玩家会康到Boss血条
    Color: RED #BOSS血条为红色
    Style: SOLID #字体样式
  Health: 100 #怪物生命
  Modules: #额外模块
    ThreatTable: true #开启威胁表
    ImmunityTable: true #开启伤害硬直,开启后生物选项: NoDamageTicks才可以工作
  Mount: 鲲鲲 #怪物会骑着一只内部ID为"鲲鲲"的怪物
  Faction: 鲲鲲 #怪物所属派系为鲲鲲
  Armor: 100 #实体额外获得500点生命
  Damage: 100 #实体伤害为100点
  Drops: #怪物掉落配置
  - 笨蛋鲲鲲的头 1 1 #必定掉落一个MM物品内部ID为"笨蛋鲲鲲的头"
  - exp 10 1 #必定掉落10经验
  - DIAMOND 1 0.9 #90%掉落1颗钻石
  Trades: #村民交易相关
  Equipment: #装备配置
  - DIAMOND_SWORD:0 #主手拿着钻石剑
  - DIAMOND_SWORD:5 #副手拿着钻石剑
  - 鲲鲲头盔:4 #戴着"鲲鲲头盔"
  - 鲲鲲胸甲:3 #穿着"鲲鲲胸甲"
  - 鲲鲲护腿:2 #穿着"鲲鲲护腿"
  - 鲲鲲靴子:1 #穿着"鲲鲲靴子"
  KillMessages: #击杀信息配置
  - '<target.name>,你死了,ba————ka。' #没啥好说的,这里的<target.name>就是怪物的目标的名字
  Options: #选项
    KnockbackResistance: 1 #防击退,1为100%
    MovementSpeed: 0.2 #移动速度,0.2为普通僵尸移速
    AlwaysShowName: true #永远显示怪物名
    PreventSunburn: true #防止烧伤,此为4.10新增选项

实体类型(Type)

  • 隐形盔甲架在MM4.12版以下生成の一瞬间能够被康到,此漏洞修复于4.12
  • 确定实体の类型
  • 不区分大小写
  • 正常情况下不支持模组实体类型,需魔改
  • 不支持写入复数(s/es)
  • 蜘蛛骑士/鸡骑士为多生物,要生成它们请配合Mount(骑乘)

可识别的种类列表 深蓝色为1.15新增,深蓝色粗体为1.16新增,蓝色为1.13新增,蓝色粗体为1.14新增

英文名字 中文名字
ARMOR_STAND 盔甲架
BABY_DROWNED 小溺尸
BABY_HOGLIN 小疣猪
BABY_PIG_ZOMBIE 小僵尸猪人
BABY_PIG_ZOMBIE_VILLAGER 小僵尸猪村民
BABY_ZOMBIE 小僵尸
BABY_ZOMBIE_VILLAGER 小僵尸村民
BAT 蝙蝠
BEE 蜜蜂
BLAZE 烈焰人
BOAT
CAT
CAVE_SPIDER 洞穴蜘蛛
CHICKEN
COW
CREEPER 爬行者
DROWNED 溺尸
DONKEY
ELDER_GUARDIAN 远古守卫者
ENDER_DRAGON 末影龙
ENDERMAN 末影人
ENDERMITE 末影螨
EVOKER 唤魔者
EXPERIENCE_ORB 经验球(MM4.12+)
FALLING_BLOCK 掉落中的方块(一般为沙子)
FOX 狐狸
GHAST 恶魂
GIANT 巨人
GUARDIAN 守卫者
HOGLIN 疣猪
HORSE
HUSK 尸壳
ILLUSIONER 幻术师
IRON_GOLEM 铁傀儡
MAGMA_CUBE 岩浆怪
MULE
MUSHROOM_COW 哞菇
OCELOT 豹猫
PANDA 熊猫
PILLAGER 掠夺者
RAVAGER 劫掠兽
PIG
PIGLIN 猪灵
PIGLIN_BRUTE 猪灵蛮兵
PIG_ZOMBIE 僵尸猪人
PIG_ZOMBIE_VILLAGER 僵尸猪村民
PHANTOM 幻翼 支持设置:Size
PIFFERFISH 河豚
PRIMED_TNT 点燃的TNT
POLAR_BEAR 北极熊
RABBIT 兔子
SALMON 鲑鱼
SHEEP
SILVERFISH 蠹虫
SKELETON 骷髅
SKELETON_HORSE 骷髅马
SHULKER 潜影贝
SLIME 史莱姆
SNOWMAN 雪傀儡
SPIDER 蜘蛛
STRIDER 炽足兽
STRAY 流髑
SQUID 鱿鱼
TROPICAL_FISH 热带鱼
TRADER_LLAMA 行商羊驼
TURTLE 海龟
VILLAGER 村民
VINDICATOR 卫道士
WANDERING_TRADER 流浪商人
WITCH 女巫
WITHER 凋灵
WITHER_SKELETON 凋灵骷髅
WOLF
ZOGLIN 僵尸疣猪
ZOMBIE 僵尸
ZOMBIE_HORSE 僵尸马
ZOMBIE_VILLAGER 僵尸村民
Type: zombie
Type: SKELETON
Type: DoNkEy

名字显示(Display)

  • 生物头上所显示的名字
  • 支持颜色代码变量
  • 必须填写在撇号'内'
  • 不支持一些特殊符号,栗❤。
  • 若想名字内显示'撇号,可以使用'的变量代码<&sq>
  • 若想要让名字持续读取变量,应使用技能:Setname(设置名字)
Display: '鲲鲲'
Display: '&e带颜色的涩鲲鲲'
Display: '&c康起来不友好的鲲鲲&r - <mob.level>'

基础属性(付费版支持变量)

基础属性
血量(Health)
  • 设置生物的最大血量
  • 最大值为java算法最大值,即10e+

然而Spigot有2048的最大限制,可在spigot.yml内修改

Health: 200
伤害(Damage)
  • 设置生物的基础近战攻击力
  • 1点伤害=0.5颗心
  • 不会涉及到近战以外的伤害,如弓箭、爆炸、恶魂火焰弹、药水等所造成的伤害。
Damage: 10

在4.9+: <spoiler>

  • 添加了伤害类型选项,可以设置为任意值你可以在damageodifiers(受伤加成)和onDamaged aura(受指定伤害)
  • 中使用你定义的任何自定义伤害类型
鲲鲲:
 Type: COW
 DamageModifiers:
 - LIGHTNING 0.1
 - FIRE 2.0
 - AIR 1.0
 - ICE 0.5
 Skills:
 - message{m="受到伤害类型为<skill.var.damage-type>,<skill.var.damage-amount>点伤害"} @PIR{r=50} ~onDamaged
  • 这只鲲鲲会受到一半的ICE伤害,百分之百的玩家造成的伤害,两倍的烧伤伤害,十分之一的雷击伤害.
下面是技能例子
  Skills::
  - damage{amount=10;element=FIRE} @T ~onAttack
  - damage{amount=10;element=ICE} @T ~onAttack
  • 当鲲鲲攻击时,对目标造成10点ICE类型的伤害和10点FIRE类型的伤害,结合上面所写的DamageModifiers
  • 这只鲲鲲会受到20点FIRE类型的伤害和5点ICE类型的伤害,总和25点伤害.

</spoiler> 额外生命(Armor)

  • 为实体提供Armor值*5点额外生命
Armor: 7

Boss血条(BossBar)

  • 需要前置插件:BossBar
  • 像末影龙/凋灵一样在屏幕最上方显示该实体の血条
  • 重载插件后,若重载之前の实体消失了,则Boss血条不会消失,此漏洞修复于4.12
详解
鲲鲲:
  Type: <mobtype>
  BossBar:
    Enabled: [true/false]
    Title: '显示文本,支持变量'
    Range: 范围值
    Color: [color]
    Style: [style]
    CreateFog: [true/false]
    DarkenSky: [true/false]
    PlayMusic: [true/false]
Enabled—是否显示
Title—显示的名字,支持变量,且支持变量持续读取
Range—显示的半径范围
Color—血条的颜色
PINK,BLUE,RED,GREEN,YELLOW,PURPLE,WHITE
区分大小写
Style—字体风格
SOLID,SEGMENTED_6,SEGMENTED_10,SEGMENTED_12,SEGMENTED_20
区分大小写
  • CreateFog,DarkenSky和PlayMusic暂时不可用
鲲鲲:
  Type: creeper
  BossBar:
    Enabled: true
    Title: '咱是baka'
    Range: 20
    Color: RED
    Style: SOLID

派别(Faction)

  • 设置生物所属的派别,主要用于编辑AI或技能的攻击目标
  • 区分大小写,识别字母和数字以及下划线
Faction: 鲲鲲
Faction: 鲲_鲲

骑乘(Mount)

  • 设置生物骑乘,骑乘必须为MM生物
  • 设置完后,生物生成时便会召唤并骑乘
Mount: 鲲鲲

选项(Options)

更多有关选项的内容,请点击-->选项页面

  • 修改或给予生物一系列的可修改项,如是否消失、击退抗性、跟踪范围、移动速度等(有很多哦...)
鲲鲲:
  Type: skeleton
  Display: '跑得非常快且受伤间隔为3秒的鲲鲲'
  Options:
    MovementSpeed: 0.3
    NoDamageTicks: 50

模块(Modules)

  • 设置启用/禁用威胁度(Threat Tables)和伤害硬直(Immunity Tables)模块

威胁度(Threat Tables)

威胁度用于控制生物的攻击目标。一般情况下原版的生物只会单纯地以最后一个伤害源为攻击目标。
若是启用威胁度,生物便会记录各玩家对他所造成的伤害,并因此选择累计造成伤害最高的玩家为攻击目标。从而避免生物两头跑被调戏的尴尬局面。
威胁度的几个内置功能让生物的目标选择能力看起来更聪明,并遵从一般MMORPG游戏下的规则。玩家通过造成伤害提升对生物的威胁度,若是远离BOSS便会降低威胁度。
一段时间内超过生物的最大攻击范围(MaxCombatRange),离开当前世界,或退出游戏的话也会降低其威胁度。
生物只会在新的威胁度超过当前攻击目标威胁度的110%时才会改变攻击目标。
注意-启用威胁度的生物会无视AITargetSelectors下的设置。并且,启用的生物会尝试攻击任何对他造成伤害的实体。
有关威胁度の变量必须开启威胁度 启用办法:ThreatTable后面设为true

鲲鲲:
  Type: zombie
  Display: '&6Zombie'
  Health: 20000
  Modules:
    ThreatTable: true

威胁度的计算是全自动进行的。若想特意修改生物对某目标的威胁度,可通过技能:SetThereat进行修改。
威胁度还拥有API,包括"嘲讽"和改变威胁的能力,若另一个插件作者有意修改技能或能力与威胁度的关系。</spoiler>

伤害硬直(Immunity Tables)

伤害硬直允许生物在受到伤害时记录各玩家的伤害免疫时间(NoDamageTicks),换句话说生物只会在每(默认)半秒的时间内受到同一个玩家的伤害。没开启伤害硬直的话就是每半秒的时间内受到伤害。其意义就是允许多个玩家同时或短时间内攻击生物时,生物会受到多次伤害计算。
启用办法:ImmunityTable后面设为true

鲲鲲大魔王:
  Type: zombie
  Display: '&6鲲鲲大魔王'
  Health: 20000
  Modules:
    ImmunityTable: true
  Options:
    NoDamageTicks: 10
  • 可通过修改通用选项下的NoDamageTicks定义伤害硬直的时间
    默认设置为10刻(也就是0.5秒)

村民交易(Villager Trades)

4.8.0+,你可以自定义村民交易,请注意,村民必须要有职业才能进行交易,有的交易可能需要让村民达到一定的交易等级
Result; mmoitems.鲲鲲 表示的是出售mmoitems物品:鲲鲲

栗子
鲲鲲:
  Type: VILLAGER
  Display: '&6鲲鲲'
  Health: 20
  Faction: tester 
  Options:
#职业为白痴
    Profession: NITWIT
#皮肤类型为沙漠村民
    Type: DESERT
#交易等级为2
    Level: 2
#交易项目
  Trades:
#5个绿宝石和5个钻石可换一把钻石剑,一次补货最多可换五次
    1:
      Item1: 5 EMERALD
      Item2: 5 DIAMOND
      Result: DIAMOND_SWORD
      MaxUses: 5
#64颗绿宝石换一把鲲鲲之剑,一次补货最多可换一把
    2:
      Item1: 64 EMERALD
      Result: 鲲鲲之剑
      MaxUses: 1

自定义AI

不再需要用数字来代表优先度了,从上倒下越往上优先度越高
下面是几个自定义AI教程示例

第一个教学:目标,对象,派别
  • 自定义AI通常会使用到的两个东西。AI行动目标,确定生物的行动。还有AI对象目标,确定生物所选取的攻击对象或技能目标。
  • 派别用于归类生物的所属组群,并用于之后的设置。
  • 一般来讲,游戏内所有的生物都有其内置AI使其运作。
比如骷髅的AI要求其以玩家为目标,并且使用弓箭攻击玩家。
若想使用MM修改骷髅的AI,首先需要做的是清除当前生物的AI,然后进行修改。
坏鲲鲲:
  Mobtype: skeleton
  Display: '&a一只坏鲲鲲!'
  Health: 15
  Damage: 1
  Faction: Undead
  AIGoalSelectors:
  - clear
  - arrowattack
  AITargetSelectors:
  - clear
  - players
  Options:
    FollowRange: 10
    MovementSpeed: 0.2
    PreventOtherDrops: true
  • 以上就是一个骷髅使用弓箭攻击的例子(除去其他多余项目,四处走动什么的)
    • AIGoalSelectors要求骷髅平时使用arrowattack这一行为
    • AITargetSelectors确定这个骷髅使用arrowattack的目标,也就是玩家(players)
    • clear总是排在首位就是用于清除生物原本的AI,保证所设置的AI稳定运行
  • 那么若想坏鲲鲲揍生物,并且攻击方式变为近战,只需要这么写:
坏鲲鲲:
  Mobtype: skeleton
  Display: '&a又是一只坏鲲鲲!'
  Health: 15
  Damage: 1
  Faction: 笨蛋鲲
  AIGoalSelectors:
  - clear
  - meleeattack
  AITargetSelectors:
  - clear
  - hurtbytarget
  - otherfactionmonsters
  Equipment:
  - 坏鲲鲲剑:0
  Options:
    FollowRange: 10
    MovementSpeed: 0.2
    PreventOtherDrops: true
  • 现在,坏鲲鲲的AI就被设置为攻击任何不属于同派系的生物,不会攻击无派系生物,并且优先攻击打自身的怪物。使用近战攻击
    • AIGoalSelectors下的meleeattack令生物使用近战。
坏鲲鲲(骷髅)必须拿着武器(应该是只要不拿着弓,空手也可以的)才能进行近战,拿着弓时是不能近战的。
这并不会发生在僵尸身上。
  • 现在AITargetSelectors下的players被移除,所以坏鲲鲲不会主动攻击玩家,而是会攻击和自己所属派别不同的生物(例子为攻击笨鲲鲲以外的生物)。
还有这个优先度为1的hurtbytarget,如果有其他实体优先攻击骷髅,坏鲲鲲就会进行还击
  • AITargetSelectorsAIGoalSelectors可到这里查看
示例1:双面鲲鲲
  • 接下来我们将设置一个守在城门的守卫用于赶走靠近的怪物。
我们的守卫可以使用铁傀儡伪装成村民,不过这样的话铁傀儡原有的AI和其特殊的击飞攻击使其略厉害了点...
所以我们现在用MM的AI设置一个适合我们使用的守卫。
  • 恩啊,首先我们需要一个勇敢的护卫。使用骷髅伪装成村民,并给其佩上一把剑
好鲲鲲:
  Mobtype: skeleton
  Display: '&e好鲲鲲'
  Health: 500
  Damage: 5
  Equipment:
  - 鲲鲲剑:0
  Options:
    Disguise: villager
    Despawn: true
    FollowRange: 5
    AlwaysShowName: false
    MovementSpeed: 0.35
    PreventOtherDrops: true
    KnockbackResistance: 1
    PreventMobKillDrops: true
  • 若是我们现在就把这生物放出去,因为AI还没改,会攻击玩家。所以现在我们要把他的态度(AI)做一下调整
好鲲鲲:
  Mobtype: skeleton
  Display: '&E好鲲鲲'
  Health: 500
  Damage: 5
  Equipment:
  - 斯哈斯哈:0
  Faction: 鲲鲲
  AIGoalSelectors:
  - clear
  - opendoors
  - meleeattack
  AITargetSelectors:
  - clear
  - hurtbytarget
  - otherfactionmonsters
  Options:
    Disguise: villager
    Despawn: true
    FollowRange: 5
    AlwaysShowName: false
    MovementSpeed: 0.35
    PreventOtherDrops: true
    KnockbackResistance: 1
    PreventMobKillDrops: true
  • 现在的话我们的守卫就会攻击和自己不是同一派别的怪物
并且攻击伤害到他的生物(同时给予那些"多手"的玩家还击)
而且这个守卫还会有需要的话打开其前面的门
  • 前半问题解决了。那么现在要保证那些在城门附近四处游荡的怪物被守卫伤到时也会还击
  • 下面就是一个已经加上会受伤后进行还击AI的例子
坏鲲鲲:
  Mobtype: skeleton
  Display: '&a坏鲲鲲'
  Health: 15
  Damage: 1
  Faction: 笨鲲鲲
  AIGoalSelectors:
  - clear
  - meleeattack
  AITargetSelectors:
  - clear
  - hurtbytarget
  - players
  Equipment:
  - COS_RawHead:4
  - COS_WoodSword:0
  Options:
    Despawn: true
    FollowRange: 10
    AlwaysShowName: false
    MovementSpeed: 0.2
    PreventOtherDrops: true
  • 坏鲲鲲属于笨鲲鲲派(不同于好鲲鲲的鲲鲲派),所以这个怪物会被守卫当作攻击对象。
然后怪物受到伤害时因为有hurtbytarget,我们的怪物便会进行还击
  • 为了好鲲鲲能正确辨别出攻击对象,我们尽量使周围生成的怪物与好鲲鲲的派别不同
(可在原版生成下给比如僵尸加上派别,那么游戏下自然生成的僵尸就全都有派别了)
  • 现在的话我们的设置就算基本完成了
  • 还可以加上一些额外的设置,比如这里我们设置了好鲲鲲为比较小的跟踪范围(FollowRange),这能保证好鲲鲲不会为了杀怪而走得太远。
并且PreventMobKillDrops能保证好鲲鲲所杀的怪物不会掉落物品和经验(防止玩家得逞...)
其实还有很多 设置Options无敌 用技能使好鲲鲲巡逻或归位
示例2:好鲲鲲vs坏鲲鲲
  • 设想一下,一个世界里有两个种群,好鲲鲲和坏鲲鲲,而他们对对方一直以来都不太友善。
  • 通过使用MM的自定义AI使他们除了会攻击玩家外,当遇上对方时便会打起来的样子
  • 以下一个好鲲鲲 一个坏鲲鲲的配置
好鲲鲲:
  Mobtype: villagez
  Display: '&a好鲲鲲'
  Health: 50
  Damage: 4
  Faction: 好鲲鲲派系
  AIGoalSelectors:
  - clear
  - opendoors
  - meleeattack
  AITargetSelectors:
  - clear
  - hurtbytarget
  - specificfactionmonsters 坏鲲鲲派系
  - players
  Equipment:
  - 好鲲鲲头盔:4
  - 好鲲鲲胸甲:3
  - 好鲲鲲护腿:2
  - 好鲲鲲靴子:1
  - 好鲲鲲剑:0
  Options:
    Despawn: true
    FollowRange: 10
    AlwaysShowName: false
    MovementSpeed: 0.25
    PreventOtherDrops: true
    PreventItemPickup: true
    KnockbackResistance: 0.25
    PreventMobKillDrops: true


坏鲲鲲:
  Mobtype: zombie
  Display: '&a一只坏鲲鲲'
  Health: 80
  Damage: 4
  Faction: 坏鲲鲲派系
  AIGoalSelectors:
  - clear
  - opendoors
  - meleeattack
  AITargetSelectors:
  - clear
  - hurtbytarget
  - specificfactionmonsters 好鲲鲲派系
  - players
  Equipment:
  - 坏鲲鲲头盔:4
  - 坏鲲鲲胸甲:3
  - 坏鲲鲲护腿:2
  - 坏鲲鲲靴子:1
  - 坏鲲鲲斧:0
  [Skills::
  - skill:坏鲲鲲突击 @target ~onAttack >0 0.25
  Options:
    Despawn: true
    FollowRange: 10
    AlwaysShowName: false
    MovementSpeed: 0.25
    PreventOtherDrops: true
    PreventItemPickup: true
    KnockbackResistance: 0.4    
    PreventMobKillDrops: true
  • 设置里几个比较要注意的
    1. 分别设置好鲲鲲的派别为好鲲鲲派系,坏鲲鲲的派别为坏鲲鲲派系,从而分别他们所属的阵容
    2. 设置两边的行动最优到最后分别是clear,opendoors,meleeattack
      近战的一般都可以参考这样来设置
    3. 目标上的AI首位设置clear并在后面加上3个攻击目标
  • 先说说hurtbytarget其意义之前说的一样,保证生物懂得还手并且不被玩家欺负
  • 然后是这个specifictargetfaction,设置成这样互相对立会使其各自以对方为攻击对象
  • 最后这个players就是当这个怪物没检测到对家时就会以玩家为攻击目标
  • 最后的最后这个PreventMobKillDrops保证在游荡中被其他生物杀害时不会掉落物品

行动选择器(AIGoalSelectors)

行动选择器,顾名思义规定生物的行动。若生物自身没有此项基本行动就不会对其产生作用。例如,僵尸不会也不能吃草(EatGrass)。

选择器配置栗子
鲲鲲:
  Type: zombie
  Health: 200
  Display: '鲲鲲'
  AIGoalSelectors:
  - clear
  - meleeattack
  - randomstroll

这只鲲鲲除了会攻击玩家,还会在没有攻击目标时随意走动。

所有可用的行动选择器
所有生物(All Mobs)
别名 备注
clear reset 清除生物的AI
放置首位保证生物AI的正常运行
breakdoors 使生物懂得破门
eatgrass 使生物偶尔...吃草
float swim 使生物懂浮在水面,不被淹死
lookatplayers 望向附近玩家
opendoors opendoor 使生物懂得打开面前的门并经过后关上
closedoors restrictopendoor 不清楚有什么用 哪位来测试下:P (原话哦...)
randomlookaround lookaround 随处观看


生物(Creatures Only)
别名 备注
avoidcreepers 使生物躲避爬行者
avoidskeletons 使生物躲避骷髅
avoidzombies 使生物躲避僵尸
fleesun 白天躲在阴影内
meleeattack 使生物靠近并近攻目标
movetowardstarget 使生物靠近目标
randomstroll 随处走动
restrictsun 理论上能限制生物走向高亮度的地方
fleeplayers runfromplayers 躲避玩家
fleegolems runfromgolems 躲避铁傀儡
fleevillagers runfromvillages 躲避村民
fleewolves runfromwolves 躲避狼
spiderattack 使蜘蛛攻击目标(看着和meleeattack没什么不同)
*可尝试配合leapattarget使用
leapattarget 使生物跳向目标*貌似需要meleeattack/spiderattack才能正常运作
moveindoors 使生物进入一间房子(使用村民的房屋判定移动AI)
movethroughvillage 使生物穿过村庄(使用铁傀儡的移动AI)
movetowardsrestriction 在特定区域中移动
patrol x1,y1,z1;x2,y2,z2;x3,y3,z3;… patrolroute 巡逻,坐标之间走动
gotolocation x,y,z goto 走向坐标
gotospawnlocation gotospawn 走向该实体出生点
panicWhenOnFire panic 着火时寻找并进入水
gotoowner 走向主人
fleeConditionaI(仅限付费版) fleeIf 躲避符合条件の实体,格式见下
doNothing(仅限付费版) 符合条件则不做任何事


射手(Ranged Entities Only)
别名 备注
arrowattack 射箭(无需拉弓 无骷髅闪避AI)
skeletonbowattack bowshoot
bowmaster
拉弓射箭并有骷髅闪避AI
猪灵(1.16+)与掠夺者(1.14+)(Piglins and Pillagers Only)
别名 备注
crossbowAttack 用弩射击
skeletonbowattack bowshoot
bowmaster
拉弓射箭并有骷髅闪避AI

关于AI行动器: fleeIf

格式

  AIGoalSelectors:
  - fleeConditional{distance=5; speed=2; conditions=[
      - inlineofsight
      - entitytype COW
      ]}

以2米/秒の速度,半径5米的躲避范围躲避实体类型为牛且处在自身视野前方の实体

关于AI行动器: gotolocationgotoowner

  • 来自叁皮的测试..若不修改生物选项: FollowRange(跟随距离),则可能因为距离过远而无法到达(不同生物可能有不同的跟随距离)
  • 牛的跟随距离:约16格方块
  • 僵尸的跟随距离:约32格方块

目标选择器(AITargetSelectors)

目标选择器,顾名思义设置实体の目标
部分目标选择器本应该选择,却无法选择处在创造/观察者模式下の玩家の漏洞修复于4.11

目标选择器栗子
鲲鲲:
  Type: zombie
  Health: 200
  Display: '鲲鲲'
  AIGoalSelectors:
  - clear
  - meleeattack
  - randomstroll
  AITargetSelectors:
  - clear
  - players
  - golems
所有可用的目标选择器
====所有生物(All Creatures)====
  • clear—清除所有AI
  • attacker(hurtbytarget)—以攻击源为目标
  • players—以玩家为目标
  • villagers—以村民为目标
  • golems—以傀儡为目标
  • nearestConditionalTarget(nearestConditional,nearestIf)仅限付费版,以符合条件の最近实体为目标,格式
  AITargetSelectors:
  - clear
  - nearestConditionalTarget{conditions=[
        - entitytype PLAYER true
        - hasaura{aura=鲲鲲} true
      ]}

限制实体以类型为玩家且拥有鲲鲲光环の实体为目标

派别相关(Faction Support)
  • OtherFaction—以自身以外派别的生物为目标
  • OtherFactionMonsters—以自身以外派别的怪物为目标?
  • OtherFactionVillagers—以自身以外派别的村民为目标
  • SpecificFaction [派别名字]—特指一个派别为目标
  • SpecificFactionMonsters [派别名字]—特指一个派别为目标?
AITargetSelectors:
- 1 SpecificFaction 鲲鲲

限制实体只以处在鲲鲲判别の生物为目标

可驯服类(Tameable Creatures)

  • ownerattacker—以攻击自己主人的对象为目标
  • ownertarget—以自己主人攻击的对象为目标

伤害调整(DamageModifiers)

  • 为实体增加伤害抗性
  • 比如..免疫近伤,但受到弹射物伤害加倍...
  • 影响技能造成の伤害,如Ignite(点燃)造成の燃烧被FIRE_TICK影响
伤害类型ID 说明
BLOCK_EXPLOSION 方块爆炸所造成的伤害
CONTACT 接触仙人掌之类的方块造成的伤害
CRAMMING 实体挤压造成的伤害
CUSTOM 自定义
DRAGON_BREATH 龙息伤害
DROWNING 溺水
DRYOUT 渴死(例如岸上的鱿鱼/海豚)
ENTITY_ATTACK 实体造成的伤害
ENTITY_EXPLOSION 实体爆炸所造成的伤害(例如爬行者/火焰弹)
ENTITY_SWEEP_ATTACK 剑横扫所造成的伤害
FALL 从3格高(或以上)摔下来所造成的伤害
FIRE 直接站在火焰上造成的伤害
FIRE_TICK 火焰每秒燃烧造成的伤害
FLY_INTO_WALL 站在岩浆块上造成的伤害
HOT_FLOOR 处在熔岩内造成的伤害
LAVA 雷击伤害
MAGIC 魔法(药水)伤害
MELTING 融化(雪傀儡)伤害
POISON 中毒伤害
PROJECTILE 弹射物伤害
STARVATION 饿死
SUFFOCATION 窒息伤害
SUICIDE 命令"/kill"伤害(xx掉出了世界)
THORNS 荆棘附魔造成的伤害
VOID 虚空伤害
WITHER 凋零伤害
栗子
注意:设置为1的话就是受到全数伤害
高于1就会受到比原本多的伤害
低于1就是减少等值伤害
0为免疫此伤害
设为负数值的话就会进行回血,但若此生物原本就免疫此伤害就不凑效(比如铁傀儡免疫摔伤,烈焰人免疫烧伤/岩浆)
鲲鲲:
  Mobtype: zombie
  Display: '&a鲲鲲'
  Health: 40
  Damage: 6
  • 呐,我们先为鲲鲲提升受到两个伤害的抗性吧。近战和弹射物受到的伤害为原来的75%,如下
鲲鲲:
  Mobtype: zombie
  Display: '&a鲲鲲'
  Health: 40
  Damage: 6
  DamageModifiers:
  - ENTITY_ATTACK 0.75
  - PROJECTILE 0.75
  • 这样鲲鲲就获得了这俩伤害抗性,任何伤害类型为这俩个的伤害就会减去25%的伤害
鲲鲲:
  Mobtype: zombie
  Display: '&a鲲鲲'
  Health: 40
  Damage: 6
  DamageModifiers:
  - ENTITY_ATTACK 0.75
  - PROJECTILE 0.75
  - MAGIC 1.25
  • 鲲鲲就对近伤/弹射物有少许抗性,且弱点为magic(投掷型药水)

  • 下一个栗子为抗火鲲鲲,不仅免疫接触火焰/岩浆伤害,还会从中恢复血量。接触岩浆时恢复4倍岩浆伤害

不适用于下界生物,因为他们自身免疫火焰伤害导致伤害调整不可修改

鲲鲲:
  Mobtype: zombie
  Display: '&c鲲鲲'
  Health: 20
  DamageModifiers:
  - FIRE -1
  - LAVA -4
  - FIRE_TICK 0

装备(Equipment)

  • 给予生物生成时装备上原版或MM物品/装备
  • 装备只会在其生成时装备上,之后可以被如技能:Equip更改,同时生成时装备会带有穿上物品的声音
  • 使用PreventRandomEquipment,防止生物生存时携带随机物品,详见Options
    或为其装备上空气(AIR/0)
装备配置栗子
鲲鲲:
  Type: <生物类型>
  Equipment:
  - <物品名>:<槽位>
  - <物品名>:<槽位>
  - ...
  • <物品名>
    可以是MM配置物品或原版物品
  • <槽位>
    决定物品所在的装备槽

点击下面的"折叠"展开槽位列表

槽位列表
描述
5(OFFHAND) 非主手槽,1.9的新功能。能渲染任何物品
4(HEAD) 头部。除了头盔外,可以是任何拥有方块模型的物品(如砧板,玻璃片,玻璃块...)或玩家头颅。大部分能准确渲染
3(CHESTPLATE) 胸部。只渲染胸甲,但可以装备任何物品
2(LEGGINGS) 腿部。只渲染腿部装备,但可以装备任何物品
1(BOOTS) 脚部。只渲染靴子,但可以装备任何物品
0(HAND) 主手槽。渲染任何物品

可以写数字也可以写大写英文

栗子
鲲鲲:
  Type: Zombie
  Equipment:
  - 鲲鲲头盔:4
  - diamond_sword:0

头部的鲲鲲头盔为MM配置物品
主手握着原版钻石剑

死亡信息(KillMessages)

  • 允许你自定义生物杀死玩家时的显示信息。通常当玩家被杀死时只会显示"玩家被僵尸杀死"或"玩家被燃烧至死"之类的信息。给予自定义死亡信息让死亡的意义...到达一个新的高度
  • 写法比较简单。还可以设置从已设好的语句中随机显示一个。
死亡信息配置栗子
鲲鲲:
  Type: SKELETON
  Display: '鲲鲲'
  Health: 100
  KillMessages:
  - '<target.name> 你死了,baaaaaaka'
  - '<target.name><&sq>Baka!'
  [[MythicMobs/Skills|Skills]]:
  - ...
  • 就是这么简单!任何被鲲鲲杀掉的玩家,服务器会发送设置好的2个语句中的随机一个。同时也可以于语句中使用变量,比如例子中所使用的<target.name>就是生物目标对象的名字,也就是死亡的玩家名字
  • 更多的修改可在config.yml下修改KillMessagePrefix。此项修改为所有生物的杀害信息(然而修改这里不适用变量)

小技巧

  • 你也可以设置如下来使生物"不显示"玩家死亡信息
鲲鲲:
  Type: zombie
  Display: '鲲鲲'
  KillMessages:
  - ''

等级调整值(LevelModifiers)

  • 这里讲的是独立等级调整值,整体等级调整值请见配置文件一栏(点蓝字跳转)
  • 在4.11+,整体等级调整值的优先度高于独立等级调整值(优先度=优先计算)
  • 等级提升意味着实力提升,从而掉落更多物品
  • 或者,更通过修改设置可以使其根据自身等级掉落完全不同的物品,使用不同的技能,又或者生成于不同的地方(使用定点/随机刷怪)
  • 生物的等级可被世界范围(见下),随机生成,或技能:SetLevel影响
  • 此页目前只概括基本的用法,更多教程或例子或在以后添加
  • 在MM4.9+,等级可以为小数
  • 所填写数值实际上是绝对值,调整值填写负数仍然是正数
等级调整值配置栗子
鲲鲲:
  MobType: zombie
  Health: 100
  Damage: 10
  Display: '&5鲲鲲 等级: - <mob.level>'
  Options:
    MovementSpeed: 0.3
  Drops:
  - GOLD_NUGGET 1 1
  DropsPerLevel:
  - GOLD_NUGGET 1 0.5
  LevelModifiers:
    Health: 5
    Damage: 0.5


  • 下面可改的数据会根据当前级别增加到原来的基础之上
  • 若是生物配置下没有设定其基本的几项属性可能会不能正常使用
属性列表
中文
Health: 数值,支持小数 血量
Damage: 数值,支持小数 近战伤害
KnockbackResistance: 数值,支持小数 击退抗性
Power: 数值,支持小数 威力用于几个适用技能的伤害计算单位
Armor: 数值,支持小数 防御
MovementSpeed: 数值,支持小数 移动速度
AttackSpeed: 数值,支持小数 攻击速度

世界范围(World Scaling)

  • 随机生成的MM生物的等级可以被插件或config.yml下定义的世界的范围所配予。

设置办法为打开config.yml,如下 <spoiler>

Scaling:
    Default:
      Enabled: false
      PerBlocksFromSpawn: 250
    world2:
      Enabled: false
      PerBlocksFromSpawn: 250
    world2_nether:
      Enabled: false
      PerBlocksFromSpawn: 100
  • 首先,设置世界的名字。如果没改动过的话默认地图名字一般为world。然后,Enabled设置为true
  • 接下来,设置PerBlocksFromSpawn: [blocks]。根据这个设置的数值,MM生物会根据自己的等级生成于Spawn(游戏出生点?)往外的级别范围。
  • 若我们设置为PerBlocksFromSpawn: 250
    • 0级的生物会生成于Spawn点范围0~249半径方块范围—白色区域
    • 1级—250~499方块—肤色区域
    • 2级—500~749方块—黄色区域
    • 3级—750~999方块—橙色区域
    • 4级—1000~1249方块—红色区域
    • 5级—1250~1499方块...

  • 此修改只会影响到随机生成的MM配置生物,不会也不能影响到VanillaMobs.yml下生物的生成

</spoiler>

伪装(Disguise)

  • 若您的MM版本为4.9.1+(不包含4.9.1),鲲鲲强烈建议您将LibsDisguises更新到最新版本
  • 使生物看着像另一种生物,物品,方块或其他实体LibsDisguises升到最新版本,否则若伪装类型写Type,怪物就会失效
  • 需要LibsDisguisesProtocolLib插件
    还有某些版本能完美运行,有些却很差强人意...自行体验
实体列表
英文 中文
area_effect_cloud 烟雾云
armor_stand 盔甲架
arrow
baby_chicken 幼年鸡
baby_horse 幼年马
baby_mooshroom 幼年蘑菇牛
baby_pig 幼年猪
baby_sheep 幼年羊
babyzombievillager 小僵尸村民
bat 蝙蝠
bee 蜜蜂(MC1.15+)
blaze 烈焰人
block 方块。见下
boat
cat
cave_spider 洞穴蜘蛛
chicken
cod 鳕鱼
cow
creeper 爬行者
dlophin 海豚
donkey 驴子
drowed 溺尸
dragon_fireball 末影龙弹
dropped_item 掉落物。见下
egg
elder_guardian 远古守卫者
ender_crystal 末影水晶
ender_dragon 末影龙
ender_pearl 末影珍珠
ender_signal 末影之眼丢出时的粒子效果
enderman 末影人
endermite 末影螨
evoker 唤魔者
evoker_fangs 尖牙
experience_orb 经验球
falling_block 掉落的方块
fireball 火焰弹
firework 烟花火箭
fishing_hook 鱼钩
fox 狐狸
ghast 恶魂
giant 巨人
guardian 守卫者
hoglin 疣猪
horse
husk 尸壳
illusioner 幻术师
iron_golem 铁傀儡
item_frame 物品展示框
leash_hitch 绑出去的拴绳
libraryaddict 持书发光穿着一套金装备的玩家
llama 羊驼
llama_spit 羊驼口水
magma_cube 岩浆怪
minecart 矿车
minecart_chest 箱子矿车
minecart_command 命令方块矿车
minecart_furnace 熔炉矿车
minecart_hopper 漏斗矿车
minecart_mob_spawner 刷怪笼矿车
minecart_tnt TNT矿车
mob_spawner 刷怪笼
mule
mushroom_cow 蘑菇牛
ocelot 豹猫
painting 挂画
panda 熊猫
parrot 鹦鹉
phantom 幻翼
pig
piglin 猪灵
pig_zombie 猪灵蛮兵
pig_zombie 僵尸猪人
pillager 掠夺者
player 玩家。见下
polar_bear 北极熊
primed_tnt 点燃的TNT
pufferfish 河豚
ravgager 劫掠兽
salmon 鲑鱼
sheep
shulker 潜影贝
shulker_bullet 潜影贝导弹
silverfish 蠹虫
skeleton 骷髅
skeleton_horse 骷髅马
slime 史莱姆
small_fireball 小型火焰弹
snowball 雪球
snowman 雪傀儡
spectral_arrow 荧光箭
spider 蜘蛛
splash_potion 投掷型药水
squid 鱿鱼
stray 流浪者
strider 炽足兽
thrown_exp_bottle 经验瓶
tipped_arrow 药水箭
trader_llama 行商羊驼
trident 投掷出的三叉戟
tropical_fish 热带鱼
turtle 海龟
vex 恼鬼
villager 村民
vindicator 卫道士
wandering_trader 流浪商人
witch 女巫
wither 凋灵
wither_skeleton 凋灵骷髅
wither_skull 凋灵之首
wolf
zoglin 僵尸疣猪
zombie 僵尸
zombie_horse 僵尸马
zombievillager 僵尸村民
伪装可修改项
描述
Angry: true 是否愤怒(作用于狼)
Burning: true 被点燃特效
Blocking: true 被方块窒息效果
Invisible: true 隐身
ShowName: true 显示一般不会显示的名字,如掉落物或方块的名字
Sneaking: true 按下shift的潜行动作
Sprinting: true 冲刺动作
ModifyBoundingBox: false 保留/使用原有的碰撞箱大小
Name: 名字 伪装后显示的名字
Glowing: true 发光药水效果
Gliding 滑行动作
栗子
鲲鲲:
  Type: wither_skeleton
  Display: '鲲鲲'
  CustomKillMessages:
  - '<target.name>你个笨蛋! (to death)'
  Health: 128
  Disguise:
    Type: player
    Skin: 'Sharrk_kunjiang'
    Player: 鲲鲲大笨蛋
    Burning: true
    Blocking: true
    Invisible: false
    ShowName: false
    Sneaking: true
    Sprinting: true
    ModifyBoundingBox: false
物品/方块伪装
  • 伪装为附加值为0,显示名字的铁方块
鲲鲲铁块:
  Type: Skeleton
  Disguise:
    Type: BLOCK
    Block: IRON_BLOCK
    BlockData: 0
    ShowName: true
  • 伪装为附加值为0的铁剑
鲲鲲铁剑:
  Type: Skeleton
  Disguise:
    Type: ITEM
    Item: IRON_SWORD
    ItemData: 0
  • 伪装为玩家鲲鲲(鯊鲨)
鲨鲨:
    Type: IRON_GOLEM
    Disguise:
      Type: Player
      Player: 鲲鲲
      Skin: Sharrk_kunjiang

关于实体主人(Owners)

  • 不论施法者是啥实体,当它为其它实体主人时,其它实体无法对其造成伤害
  • 这就包括了Summon所生成の实体,默认生成出来の实体会认定施法者为主人
  • Summon不写sio=false,就好比玩家生成僵尸,僵尸只会贴着玩家,无法造成伤害
  • 主人无法继承,如玩家生成了铁傀儡且为铁傀儡的主人,铁傀儡技能配置为出生后生成僵尸,则僵尸会对玩家造成伤害,不会对铁傀儡造成伤害