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

MythicMobs

来自Minecraft插件百科
Qsefthuopq留言 | 贡献2018年3月17日 (六) 12:54的版本
跳转到导航 跳转到搜索
本页面已存在其他语言的内容,请协助翻译为本地化的中文。
  • 点击此处开始翻译。
  • 如本模板出现在原文存档页面,请注意更新主页面后,仍需要去除此处该模板。
  • 如当前页面已经没有需要翻译的内容,请删去待翻译模板。
  • 有标题的大篇幅文章,如果短时间内无法全部翻译,请先把所有的标题翻译出来,以便之后的贡献者选择与翻译章节内容。


MythicMobs
外文名MythicMobs
插件类型Spigot / CraftBukkit
最新版本v4.3.2
兼容服务端1.6.2-1.12
前置插件
源地址http://mythicmobs.net/manual/doku.php

概览

MythicMobs(MM)插件可以充分修改服务器内原版生物的各项属性。通过修改原版生物,从最简单的血量/伤害的提升,到修改生物的目标习性,乃至赋予生物一个强大技能。
制作出独特的生物,BOSS,和其他有趣的生物~ 在RPG服务器内制作出具有挑战性的BOSS碾压玩家不在是梦~

此插件允许你给予生物:

  • 技能——赋予自定义的技能。(发动条件,冷却时间,目标)
  • 属性——修改属性。(血量,伤害量,移动速度,攻击范围)
  • 特效——使用音效,粒子效果和其他特效。
  • 装备——自定义属性的装备和掉落表。
  • 伤害调整——调整伤害对生物的影响。(免疫溺水,受到箭的伤害减半,烧伤恢复血量...)
  • 生成控制——定点,定时,特殊条件,自定义属性...
  • 等级制度——根据等级提升生物的属性和能力值。
  • 威胁度——更好的攻击目标选择。
  • 自定义AI——自定义生物适当的行动目标和首要/次要攻击目标。
  • 派别系统——根据所在的派别,结合自定义AI,使生物学会攻击不同的派别,又或者与玩家站在同一站线。
  • 伪装——使生物幻化为任何东西~ 需要LibsDisguises和ProtocolLib插件
  • 插件兼容——兼容各种流行的插件!
  • 更多功能尽情期待~

配置文件(config.yml)

编辑yml格式文件时,可以使用#符号留言或标记。

# 这是一条留言。

如果yml内含有中文,Windows服务端需转码成ANSI,Linux服务端需转码成UTF8以避免文字乱码。
只要保证配置文件的后缀为yml并且此文件为正确可读的yml格式,任何yml配置文件(config.yml除外)都可以被重命名为任意名字。这样就可以更方便地管理自己的配置文件,比如 Tier1_mobs.yml,Tier2_mobs.yml。

config.yml文本
Version: 2.4
General:
  AllowMetrics: true
  CheckForUpdates: true
  CompatibilityMode: false
  DebugLevel: 0
  ErrorLogging: true
  UseVolatileFeatures: true
Clock:
  ClockInterval: 5
  SaveInterval: 5
  SpawnsInterval: 2
  ScannerInterval: 10
  CleanupInterval: 600
Components:
  CustomSpawners: true
  RandomSpawning: true
Mobs:
  EnableAIModifiers: true
  EnableTimerSkills: true
  EnableThreatTables: true
  EnablePlayerFactions: true
  EnableLegacySkills: true
  KillMessagePrefix: ''
  ShowHealth:
    Radius: 25
    Format: <mob.name> - <mob.php> (<mob.hp> / <mob.mhp>)
  Scaling:
    Default:
      Enabled: true
      PerBlocksFromSpawn: 250
    world2:
      Enabled: true
      PerBlocksFromSpawn: 250
    world2_nether:
      Enabled: false
      PerBlocksFromSpawn: 100
  DefaultLevelModifiers:
    Health: 0.1
    Armor: 0
    Damage: 0
    KnockbackResistance: 0
    Power: 0
RandomSpawning:
  GenerateSpawnPoints: false
  MaxMobsPerChunk: 80
  SpawnRadiusPerPlayer: 64
  SpawnRadiusPerPlayerY: 32
  DespawnLazyRandomMobs: true
  MaxGenerationTime: 20
  PointsPerSecond:
    Land: 10
    Air: 0
    Sea: 0
    Lava: 0
    Ground: 0
Compatibility:
  Heroes:
    Enabled: true
    ShowXPMessage: true
    XPMessageFormat: You receive <drops.xp> experience for slaying <mob.name>
  McMMO:
    Enabled: true
    ShowXPMessage: true
    XPMessageFormat: You receive <drops.xp> experience for slaying <mob.name>
  SkillAPI:
    Enabled: true
    ShowXPMessage: true
    XPMessageFormat: You receive <drops.xp> experience for slaying <mob.name>
  Vault:
    Enabled: true
    ShowMoneyMessage: true
    MoneyMessageFormat: You receive <drops.money> currency for slaying <mob.name>

<spoiler>

基本项—General

参数 描述
AllowMetrics [true/false] 是否发送度量数据给开发者
CheckForUpdates [true/false] 是否自动检测插件最新版本
CompatibilityMode [true/false] 是否开启插件兼容模式
若和其他插件有冲突的话启用此模式或许能解决插件冲突问题
DebugLevel [number] 调试等级,等级越高显示的信息就越多
启用的话会关闭妨碍调试的功能,如随机生成,生物生成,和其他随机的功能
(范围:0 ~ 4)
0:不检测
1:最低级
在生成点显示火焰粒子。(很实用~)
插件启动或重载时记录所有生成点
2:中等级
记录技能的发动,生物的死亡,掉落表,等。
插件启动或重载时记录所有物品,技能,和掉落表。
记录异常技能助于解决问题。
最高级别的有用Debug等级
3:重量级
4:过量信息
ErrorLogging [true/false] 是否保存插件报错日志
保存路径:\MythicMobs\Error Logs\
UseVolatileFeatures [true/false] 是否使用易变特性
如果使用的是不支持的Bukkit或奇怪的Spigot版本,可尝试禁用此项

时钟—Clock

参数 描述
ClockInterval [number] 设置技能所允许的最低发动间隔,修改此项后必须重启插件,建议数值以5递增
(只适用于“~onTimer:xx”。单位:刻)
SaveInterval [number] 保存插件数据的时间间隔(单位:分钟)
SpawnsInterval [number] 生成间隔(单位:秒)
ScannerInterval [number] 检测区块和清除非加载区块生物的间隔(单位:秒)
CleanupInterval [number] 清除间隔(单位:秒)

分支—Components

参数 描述
CustomSpawners [true/false] 是否启用此插件怪物的生成
RandomSpawning [true/false] 是否启用此插件怪物的随机生成

生物—Mobs

参数 描述
EnableAIModifiers [true/false] 是否启用自定义AI
EnableTimerSkills [true/false] 是否启用计时技能
EnableThreatTables [true/false] 是否启用威胁度
EnablePlayerFactions [true/false] 是否启用player为可用派别
EnableLegacySkills [true/false] 是否识别旧版MythicMobs(2.0版本之前)插件的技能格式
KillMessagePrefix '[text]' 设置MM生物杀死玩家时显示的信息前缀
ShowHealth
Radius
Format

[number]
'[text]'
血量显示项
发送生物血量信息的半径范围
血量信息的格式,可使用变量
DefaultLevelModifiers 默认每提升1级的各项上升数值
RandomSpawning
GenerateSpawnPoints
MaxMobsPerChunk
SpawnRadiusPerPlayer
SpawnRadiusPerPlayerY
DespawnLazyRandomMobs
MaxGenerationTime
PointsPerSecond

[true/false]
[number]
[number]
[number]
[true/false]
[number]
[number]
随机生成项
是否生成生成点
单个区块所允许生物的最大值
以玩家为中心所生成生物的半径范围(水平方向。单位:方块)
以玩家为中心所生成生物的半径范围(Y轴方向。单位:方块)
是否清除非加载区块的生物
最大生成时间
每秒点数(陆地/天空/海/岩浆/地面)

兼容项—Compatibility

参数 描述
Heroes
Enabled
ShowXPMessage
XPMessageFormat

[true/false]
[true/false]
'[text]'

是否启用
是否显示经验信息
显示经验信息的格式,可使用变量
McMMO
Enabled
ShowXPMessage
XPMessageFormat

[true/false]
[true/false]
'[text]'

是否启用
是否显示经验信息
显示经验信息的格式,可使用变量
SkillAPI
Enabled
ShowXPMessage
XPMessageFormat

[true/false]
[true/false]
'[text]'

是否启用
是否显示经验信息
显示经验信息的格式,可使用变量
Vault
Enabled
ShowMoneyMessage
MoneyMessageFormat

[true/false]
[true/false]
'[text]'

是否启用
是否显示金钱信息。
显示金钱信息的格式,可使用变量

</spoiler>

命令&权限

输入/mythicmobs会显示所有可用的命令。每个命令也会提示你如何使用。
名字name和显示名字DisplayName并不是同一个东西。
[ ]内的参数为必填,< >内的参数为选填。 <spoiler>

基本命令

命令 参数 描述
/mythicmobs
/mm
显示所有可用命令
/mm debug
/mm d
[level] 调试等级
/mm debugmode [true/false] 是否启用调试模式
/mm reload
/mm r
插件重载
/mm save 强行保存

物品命令

命令 参数 描述
/mm items
/mm i
显示所有物品相关的命令
/mm items get [物品] <数量> 给予自己一个插件配置文件下的物品
/mm items give [玩家] [物品] <数量> 给予特定玩家一个插件配置文件下的物品
/mm items list 列出成功读取的物品

生物命令

命令 参数 描述
/mm mobs
/mm m
显示所有生物相关的命令
/mm mobs info [生物] 显示特定生物的详细信息
/mm mobs list 列出成功读取的生物
/mm mobs listactive 列出目前已生成的生物及其数量
/mm mobs kill [x] 清除名字内带有x的所有生物
/mm mobs killall 清除所有生物
/mm mobs spawn [生物]:<等级> <数量> <世界,x,y,z> 生成特定的生物
/mm mobs spawnsilent [生物]:<等级> <数量> <世界,x,y,z> 生成特定的生物,不记录到控

制台

/mm mobs stats 显示多少已加载的生物(数量)

刷怪蛋命令

命令 参数 描述
/mm egg
/mm e
显示所有刷怪蛋相关的命令
/mm egg get [生物] <数量> 给予自己特定生物的刷怪蛋
/mm egg give [玩家] [生物] <数量> 给予特定玩家特定生物的刷怪蛋

生成点命令

大部分情况下,生成点配置识别以下通配符。

  • ?为单个字母的通配符
    使用"/mm s set ?at leashrange 32"会使生成的怪物名字为Cat,Rat,Fat等
  • *为任意数量的通配符
    使用"/mm s set T* leashrange 32"会使所有名字T开头的生成点的leashrange设置为32
  • 命令中的生成点名字输入*的话,代表所有生成点的名字


命令 参数 描述
/mm spawners
/mm s
显示所有生成点相关命令
/mm s create [生成点] [生物] 在玩家位置生成新的生成点
生物为配置文件下的生物名字,非显示名字
例子:/mm s create Ruins_Skeleton1 DecayingSkeleton
/mm s set [生成点] [设置] [数值] 修改生成点的设置
暂无详情
/mm s addcondition [生成点] [条件] [数值] 添加生成点条件
/mm s removecondition [生成点] [条件] 删除生成点条件
例子:/mm s removecondition Ruins_Skeleton1 outside
/mm s info [生成点] 显示生成点的详细信息
/mm s listnear <范围> 列出范围内所有生成点(单位:方块半径)
/mm s resettimers [生成点] 重置生成点的冷却时间
/mm s spawn [生物] 创建一个特定生物的生成点
/mm s cut [关键字] 剪切生成点
例子:/mm s cut g:BoneCastle
剪切所有BoneCastle群下的生成点
例子:/mm s cut r:200
剪切半径200格范围内的所有生成点
例子:/mm s cut Elementals_*
剪切所有名字以Elementals_的生成点
/mm s cut *
剪切所有生成点,慎用
/mm s paste 粘贴生成点到相对坐标下
可以多次粘贴,不过每次都会替换掉前一次的粘贴(不重复)
/mm s undo 撤回上一次剪切/粘贴动作
只在当前剪切动作有效。若有新的剪切动作以新的进行撤回

实体测试命令

/mm u testeffect [技能语法]

使用一个特效。例子:

/mm u testeffect effect:particles{particle=witchMagic;amount=20;speed=0.7}

/mm u testskill [目标] [技能]
  • 目前无效
  • 目标为目标选择器,target,playersinradius...
  • 使用一个技能。例子:
/mm u testskill target lightning

信号命令

/mm signal <UUID> <信号>
  • 用于发送给生物一个特定的信号,从而触发其技能(~onSignal[signal])
  • 只在输入生物的UUID时有效,输入生物名字无效
  • 通常配合/tellraw使用
  • 此命令对所有玩家开放使用。然而因为无法知道生物的UUID和信号的名字,普通玩家并不可以滥用此命令

权限

基本权限

  • mythicmobs.admin
    给予使用所有此插件命令的权限。
  • mythicmobs.signal
    给予使用"/mm signal <mob.uuid> <signal>"此命令的权限。

</spoiler>

常见问题(FAQ)

可以使用其他的插件的命令来给助攻的玩家以奖励吗?

Test:
  Mobtype: Zombie
  Modules:
    ThreatTable: true
  Skills:
  - command{cmd="give $player diamond 64"} @TTP ~onDeath

我怎样可以获得自定义生物的头颅呢?

在你的 ExampleItem.yml 里像这样:

PlayerHead:
  Id: 397
  Data: 3
  Options:
    SkinTexture: eyasfsankasgnksljgaklfjs

你可以在这里找到玩家的皮肤材质: https://sessionserver.mojang.com/session/minecraft/profile/填写TrimmedUUID

使用http://mcuuid.net/ 来查询玩家的TrimmedUUID

我怎样制作一个释放法术的生物而不是使用近战攻击?

使用 ProjectileSkill:见技能[第4页]投掷物 举个例子,看起来像这样:

IceBolt:
  potion{t=SLOW;lvl=4;d=20} @self
  projectile{whatever your projectile is here} ~onTimer:20

这会将生物减慢,并释放技能。

我怎么在玩家伪装时使用颜色代码?

TestMob:
  Mobtype: Zombie
  Disguise:
    Type: Player
    Player: '&bTest'
    Skin: zDrakon

记住使用单引号将玩家括起来,使用颜色代码。

我试着使用火焰粒子来做技能,但是范围太广了,我是做错了什么吗?

设置技能的 hS 和 vS 为 0.1,火焰粒子本来就很散,因为是从熔炉这些东西里发出的。 你需要设置水平和垂直的偏移量,设置的小点会看起来很不错。

为什么我不能把生物的生命值设置为2000以上?

这个锅给Spigot,进入你的spigot.yml,将 max-health 设置的大一些。

我想创建一个很多技能的生物,可是怎么让他不要一次性使用所有的技能(这很OP!)

有很多种方法将技能设置的更加随机,更加不确定: · 你可以使用 RandomSkill 技能来释放间隔的技能 · 使用 “GCD” (全局冷却) 和 “OffGCD” 条件 · 给你的技能更低的冷却和更低的几率

我想给生物使用自定义音效,怎么办? (来自 SeanArmor 于 MythicMobs 论坛)

使用自定义音效必须使用材质包。没有使用材质的玩家听不到。 前往 http://www.wowhead.com/sounds 或者其他音乐网站。下载它们,并使用 http://audio.online-convert.com/convert-to-ogg 转换为OGG格式。 或者使用 SeanArmor的方法 (不确定能不能用) 将你的文件重命名为其他的OGG 然后用新的OGG替换,然后使用原版音效。 参照/playsound命令

其他问题/意见?

请在 MythicMobs 论坛发布它们。这里有很多好心的论坛成员,比如 adw123,DrakonDawn,NathanWolf,等等。你可以问他们寻求帮助。 如果你喜欢直接从开发者那里获得帮助的话,你也可以看看付费的支持。

附加插件/模块

Artifacts

Artifacts(或者MythicArtifacts)是一个MythicMobs的附加,允许你创建自定义物品。物品可以使用MythicMobs的机制和技能,使用特殊的触发条件,可以使用很多的选项设置,还可以使用一个标签属性系统来加强。

下载 & 安装

Artifacts 作为一个付费资源,在: http://mythicmobs.net/index.php?resources/artifacts.37/ 只需要将 MythicArtifacts.jar 放进你的服务器,并重启。 需要:

  • MythicMobs (显然)
  • Java 8

使用

Artifacts 使用与 MythicMobs 同样的物品。这意味着你只需要在 MythicMobs 文件夹添加物品,Artifacts 没有自己的文件夹。如果你不熟悉MythicMobs的物品机制,请看MythicMobs物品手册。

注意:Artifacts 不会将目标设置为创造模式的玩家,除非特殊设置了

配置

  • Adding Skills to Items - 如何将技能添加到 Artifacts 物品
  • Item Skill Triggers - 使用物品的技能触发条件
  • Item-Only Mechanics - Artifacts 添加到 MythicMobs 的特殊机制
  • Item-Only Conditions - Artifacts 添加到 MythicMobs 的特殊条件
  • Special Options - Artifacts 添加到 MythicMobs 的物品设置
  • Ammo System - 使用 Artifacts 的弹药系统
  • Durability System - 使用 Artifacts Lore 耐久系统
  • Lore Stats - 使用 Artifacts 内置的物品标签属性系统
  • Examples

变更日志

暂无

Quests

前置:Quests 2.6.0+ MythicMobs 4.1.0+

  • Quests 模块添加了一个 “Kill # Mythic Mobs” 目标到 Quests,允许你设置击杀 MythicMobs 生物的任务。

安装

  • 这里下载 MythicMobs-Quests.jar
  • 放入 plugins/Quests/modules 文件夹
  • 开启你的服务器

使用

  • 设置任务时,选择 Custom Objectives
  • 添加 Kill MythicMobs 到你的任务,然后根据指示继续

已知问题

  • Quests 有时启动时会报错,但是所有的功能都可用。我也不知道这是怎么回事,但是所有的功能都正常
  • 使用了其他的版本,模块可能不工作
  • 添加此模块之前Quests完全不能使用

MiniaturePets

使用 Miniature Pets 和 MythicMobs,你可以使用自定义模型的生物!

安装

  • 在这里下载 MiniaturePets(注意MiniaturePets是个付费插件)
  • 放进插件文件夹
  • 开启服务器

使用

使用 MiniaturePets 支持很简单:

ExampleMob:
  Type: MPET
  MPet:
    Type: <type>
    Anchor: <invisible "base" mob type>
    ShowName: <true/false>

举个例子,你可以创建 AngryPig 并使用 MPets有的 “Pug” 类型:

AngryPug:
  Type: MPET
  MPet:
    Type: pug
    Anchor: SPIDER
    ShowName: true
  Display: 'Angry Pug'

已知问题

  • type大小写敏感,并且必须是你的 MPets 里的设置
  • 行走速度可能很奇怪

生物(Mobs)

大部分为选填项,也就是说没必要把每个项都列入配置内。
以下为一个实体生物可修改的项示例和例子。
<spoiler>

internal_mobname:
  Type:
  Display:
  Health:
  Damage:
  Armor:
  BossBar:
  Faction:
  Mount:
  Options:
  Modules:
  AIGoalSelectors:
  AITargetSelectors:
  Drops:
  DropsPerLevel:
  DamageModifiers:
  Equipment:
  KillMessages:
  LevelModifiers:
  Disguise:
  Skills:
super_zombie:
  Type: zombie
  Display: '&lSuper Zombie&r'
  Health: 200
  Damage: 14
  Armor: 10
  Faction: superb_zombies
  Mount: super_zombie_undead_horse
  Options:
    PreventOtherDrops: true
    PreventItemPickup: true
    Despawn: false
    KnockbackResistance: 0.25
    MovementSpeed: 0.25
  Modules:
    ThreatTable: false
    ImmunityTable: true
  AIGoalSelectors:
  - 0 clear
  - 1 meleeattack
  - 2 randomstroll
  AITargetSelectors:
  - 0 clear
  - 1 attacker
  - 2 players
  Drops:
  - diamond 1-3 1
  - exp 50 1
  - super_zombie_sword 1 1
  DropsPerLevel:
  - rotten_flesh 1-3 0.5
  - exp 10 1
  DamageModifiers:
  - ENTITY_ATTACK 0
  - PROJECTILE 1.25
  - MAGIC 1.75
  Equipment:
  - super_zombie_helmet:4
  - super_zombie_sword:0
  KillMessages:
  - '<target.name> was superbly slain by a <mob.name>'
  LevelModifiers:
  - Armor 0.05
  - MovementSpeed: 0.01
  - KnockbackResistance: 0.05
  - Health: 2
  - Damage: 1
  Disguise:
    Type: player
    Skin: '&lSuper Zombie&r'
    Player: jaylawl
  Skills:
  - throw{v=5;vy=5} @target ~onAttack 0.5
  - effect:sound{s=mob.zombie.hurt;v=1;p=0} @self ~onDamaged
  - effect:particles{p=cloud;a=50;s=0.05} @self ~onDeath

</spoiler>

生物配置名字(internal_mobname)

  • 此名字为插件读取生物时使用的名字
  • 区分大小写,识别字母和数字(还有下划线?)
super_zombie:
SuperZombie:
superzombie:

生物种类(Type)

  • 确定生物的类别
  • 不区分大小写
  • Bukkit下注册的种类也可以使用,但不保证其可行性和兼容性有好多没列出来 使用实体ID应该也是可以的
  • 可识别的种类列表

<spoiler>

英文名字 中文名字
ARMOR_STAND 盔甲架
BABY_PIG_ZOMBIE 小僵尸猪人
BABY_PIG_ZOMBIE_VILLAGER 小僵尸猪村民
BABY_ZOMBIE 小僵尸
BABY_ZOMBIE_VILLAGER 小僵尸村民
BAT 蝙蝠
BLAZE 烈焰人
BOAT
CAVE_SPIDER 洞穴蜘蛛
CHICKEN
COW
CREEPER 爬行者
ELDER_GUARDIAN 远古守卫者
ENDER_DRAGON 末影龙
ENDERMAN 末影人
ENDERMITE 末影螨
GHAST 恶魂
GIANT 巨人
GUARDIAN 守卫者
HORSE
HUSK 尸壳
IRON_GOLEM 铁傀儡
MAGMA_CUBE 岩浆怪
MUSHROOM_COW 蘑菇牛
OCELOT 豹猫
PIG
PIG_ZOMBIE 僵尸猪人
PIG_ZOMBIE_VILLAGER 僵尸猪村民
PRIMED_TNT 点燃的TNT
POLAR_BEAR 北极熊
RABBIT 兔子
SHEEP
SILVERFISH 蠹虫
SKELETON 骷髅
SKELETON_HORSE 骷髅马(MC 1.11+)
SHULKER 潜影贝
SLIME 史莱姆
SNOWMAN 雪傀儡
SPIDER 蜘蛛
STRAY 流髑
SQUID 鱿鱼
VILLAGER 村民
WITCH 女巫
WITHER 凋灵
WITHER_SKELETON 凋灵骷髅
WOLF
ZOMBIE 僵尸
ZOMBIE_HORSE 僵尸马(MC 1.11+)
ZOMBIE_VILLAGER 僵尸村民

</spoiler>

Type: zombie
Type: SKELETON

名字显示(Display)

  • 生物头上所显示的名字
  • 支持颜色代码和变量
  • 必须填写在撇号'内'
  • 若想名字内显示'撇号,可以使用'的变量代码<&sq>
Display: 'Super Zombie'
Display: '&eSuper Zombie'
Display: '&cSuper Zombie&r - <mob.level>'

血量(Health)

  • 设置生物的最大血量
  • 此插件没有最大血量限制。
    然而Spigot有2048的最大限制,可在spigot.yml内修改
Health: 200

伤害(Damage)

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

防御(Armor)

  • 减低生物所受到的伤害量
  • 1点伤害=0.5颗心
Armor: 7

Boss血条(BossBar)

  • 插件版本2.4或以上
    Minecraft 1.9或以上
  • 像末影龙那样显示生物的血条在屏幕上方
internal_mobname:
  Type: <mobtype>
  BossBar:
    Enabled: [true/false]
    Title: '[name]'
    Range: [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暂时不可用
Test:
  Type: creeper
  Display: '&cTest'
  Health: 20
  BossBar:
    Enabled: true
    Title: 'Test'
    Range: 20
    Color: RED
    Style: SOLID

派别(Faction)

  • 设置生物所属的派别,主要用于编辑AI或技能的攻击目标
  • 区分大小写,识别字母和数字(还有下划线?)
Faction: SuperZombies
Faction: super_zombies

骑乘(Mount)

  • 设置生物的骑乘,骑乘必须为MM下的配置生物
  • 设置完后,当生物生成时便会自行召唤并坐在骑乘上
Mount: super_zombie_horse

选项(Options)

  • 修改或给予生物一系列的可修改项,如是否消失、击退抗性、跟踪范围、移动速度等(有很多哦...)
VeryFastSkeleton:
  Type: skeleton
  Display: 'Very Fast Skeleton'
  Options:
    MovementSpeed: 0.3
    NoDamageTicks: 50

选项详解

<spoiler>

通用选项(Universal options)
参数 备注
AlwaysShowName [true/false]
  • 是否就算没有望过去或被阻挡时也一直显示名字
  • 等同于NBT标签 CustomNameVisible
  • MC 1.8或之前—尽限于盔甲架
    MC 1.9或之后—适用于任何实体
  • 默认设置为false
AttackSpeed [number]
  • 设置生物的基本攻击速度
  • 插件版本2.4或以上
  • 默认设置为原版速度
Collidable [true/false]
  • 是否开启碰装箱
  • 默认设置为true
  • 注意在MC内要设置碰装和碰装物为false才能保证不会发生碰装
Despawn [true/false]
  • 附近没有玩家时生物是否自动消失
  • 若服务器内配置大量生物建议启用此项
  • 等同于NBT标签 PersistenceRequired
  • 默认设置为true
FollowRange [value]
  • 生物敌对状态的最大范围
  • 同时是所能检测到玩家存在的最大范围
  • 默认设置为原版范围
Glowing [true/false]
  • 生物是否发光
  • 插件版本2.4或以上
  • 默认设置为false
Invincible [true/false]
  • 使生物免役所有伤害
  • 不能被命令技能修改
  • 默认设置为false
KnockbackResistance [number]
  • 设置生物的抗击退能力数值
    就算100%抗击退,还是会受击退附魔影响
  • 数值范围0 ~ 1
  • 0.1=10% 0.5=50% 1=100%
  • 默认设置为0
MaxCombatDistance [number]
  • 设置生物不会被玩家伤害到的方块半径范围
MovementSpeed [number]
  • 设置生物的移动速度
  • 大部分生物被设置为0.2
  • 数值高于1会使其过快而难以攻击到生物
NoAI [true/false]
  • 生物是否拥有AI
    若设置为true的话会无视AIGoalSelectors下的设置
  • 插件版本2.2.1或以上
  • 和AIGoalSelectors相反,此项试用于末影龙和凋灵
    (意义不明)
NoDamageTicks [number]
  • 设置生物被受伤后会暂时不接受伤害多少刻
  • 若生物开启了伤害硬直,此项的无敌时间会以各个玩家分开计算,非原先的全局计算
  • 默认设置为10
NoGravity [true/false]
  • 生物是否没有重力
  • 插件版本2.5或以上 MC 1.10或以上
  • 默认设置为false
  • 此项设为true时,不能使用velocity技能
Persistent [true/false]
  • 防止生物被mm m kilall命令清除
  • 生物仍然会自然消失若Despawn设为true
  • 生物依然能被mm m kill和minecraft:kill命令清除
  • 默认设置为false
PreventItemPickup [true/false]
  • 防止生物拾取掉落物
  • 默认设置为true
PreventLeashing [true/false]
  • 防止生物被拴绳捆绑
  • 默认设置为true
PreventMobKillDrops [true/false]
  • 防止生物间互杀时掉落物品
  • 默认设置为false
  • 2.3或之前存在"若玩家被此项设为true的生物所杀害,玩家的物品也不会掉落"的问题
    不要与gamerule keepInventory false一同使用
    于2.5版修复
PreventOtherDrops [true/false]
  • 防止生物掉落其原本的掉落物
  • 默认设置为false
PreventRandomEquipment [true/false]
  • 防止生物生成时随机佩带装备
  • 默认设置为false
PreventRenaming [true/false]
  • 防止被命名牌重命名
  • 默认设置为true
RepeatAllSkills [true/false]
  • 当血量恢复时,"带有血量%为发动条件的技能"能否被再次使用
  • 默认设置为false
ShowHealth [true/false]
  • 发送生物的血量信息到聊天框
    根据config.yml的show*health*radius下设置的范围
    和show*health*format下设置的显示格式
  • 默认设置为false
Silent [true/false]
  • 生物是否使用原版音效
    (简单的说应该和NBT标签Silent一样)
  • 默认设置为false


特定设置

盔甲架(Armor Stands)
参数 备注
HasArms [true/false] 盔甲架是否有手
2.5前失效
  • 默认设置为false
HasGravity [true/false] 盔甲架是否受重力影响
  • 默认设置为true
Invisible [true/false] 是否隐形
  • 默认设置为false
ItemBody [MythicItem Name] 胸部所装备的MM配置物品
ItemFeet [MythicItem Name] 脚部所装备的MM配置物品
ItemHand [MythicItem Name] 手上所装备的MM配置物品
ItemHead [MythicItem Name] 头部所装备的MM配置物品
ItemLegs [MythicItem Name] 腿部所装备的MM配置物品
Marker [true/false] 盔甲架是否不能被破坏等活动
Small [true/false] 是否为小型盔甲架
  • 默认设置为false
Pose
Head
Body
LeftArm
RightArm
LeftLeg
RightLeg
[0,0,0] 设置各部位的旋转角度
  • 默认设置为0,0,0
  • 角度识别范围,如下
Mob:
  Type: armor_stand
  Pose:
    Head: 0,50,0
    Body: 0,10,10
    LeftArm: 0 to 360,0,0
    RightArm: 0 to 90,0,0


鸡(Chicken)
参数 备注
Jockey [true/false] 是否为鸡骑士
  • 无实际效果,不过总比没有好~
  • 默认设置为false


爬行者(Creepers)
参数 备注
ExplosionRadius [number] 爆炸范围
FuseTicks [number] 引爆时间(刻)
SuperCharged [true/false] 是否为充能爬行者
  • 默认设置为false
PreventSuicide [true/false] 爆炸后是否不死亡
  • 默认设置为false


末影人(Endermen)
参数 备注
PreventTeleport [true/false] 是否阻止其传送
  • 可能适用于其他生物
    也可能阻止teleport技能
  • 默认设置为false


掉落方块(Falling Blocks)
参数 备注
Block [方块种类] 设定方块的种类
  • 默认设置为STONE
BlockData [Number] 方块的附加值
  • 默认设置为0


马(Horses)
参数 备注
HorseArmor [armor_type] 马铠的种类
  • IRON,GOLD或DIAMOND
HorseCarryingChest [true/false] 是否背载箱子
  • 用于确定驴是否背有箱子
  • 默认设置为false
HorseColor [horse_color] 马的颜色
  • BLACK,BROWN,CHESTNUT,CREAMY,DARK_BROWN,GRAY或WHITE
HorseSaddled [true/false] 是否装备上鞍
  • 默认设置为false
HorseStyle [horse_style] 马的皮肤纹路
  • BLACK_DOTS,WHITE,WHITE_DOTS,WHITEFIELD
HorseTamed [true/false] 是否被驯化
  • 默认设置为false
HorseType [type] 马的种类
  • UNDEAD_HORSE,SKELETON_HORSE,MULE,DONKEY或HORSE
    于MC 1.11移除,改写于Type下
  • 默认设置为HORSE


豹猫(Ocelots)
参数 备注
Ocelot [type] 豹猫的种类
  • BLACK_CAT,RED_CAT,SIAMESE_CAT或WILD_OCELOT
  • 默认设置为WILD_OCELOT


猪(Pigs)
参数 备注
Saddled [true/false] 是否装备上鞍
  • 默认设置为false


兔子(Rabbits)
参数 备注
RabbitType [rabbit_type] 兔子的种类
  • BLACK,BLACK_AND_WHITE,BROWN,GOLD,SALT_AND_PEPPER,THE_KILLER_BUNNY或WHITE
Baby [true/false] 是否为小兔子
  • 默认设置为false
  • 不明存在意义???


蠹虫(Silverfish)
参数 备注
PreventBlockInfection [true/false] 阻止其影响方块
  • 默认设置为false


雪傀儡(Snowmen)
参数 备注
PreventSnowFormation [true/false] 阻止其生成雪片
  • 默认设置为false


TNT
参数 备注
FuseTicks [number] 引爆时间(刻)
  • 默认设置为-1
ExplosionYield [number] 爆炸的强度
  • 默认设置为-1(无)
Incendiary [true/false] 爆炸是否点燃物品
  • 默认设置为false


村民(Villagers)
参数 备注
VillagerType [type] 村民的职业
  • BLACKSMITH,BUTCHER,FARMER,LIBRARIAN或PRIEST
  • 默认随机职业


僵尸类(Zombies)
参数 备注
ReinforcementsChance [number] 增援几率
  • 受伤时附近生成僵尸的几率(0~1)
  • 默认设置为0


僵尸村民(Zombie Villagers)
参数 备注
Profession [type] 僵尸村民的职业(2.4)
  • 被治疗回村民时的职业


特定类设置

可繁殖类(Breedable mobs)
参数 备注
Age [number] 确定生物的岁数
  • -1为幼仔,1为成年
  • 默认设置为1
  • 用于羊,猪,牛等身上
  • 使用过大的负数值调整生物的模型(不支持)
AgeLock [true/false] 是否锁定岁数
  • 默认设置为false
  • 使用Age项的话要求设置此项


可染色类(Colorable Mobs)
用于羊和狼
参数 备注
Color [number] 修改羊毛或项圈的颜色
  • 数值0 ~ 15
  • 2.0.0插件参数为颜色的名字


中立类(Neutral mobs)用于狼和猪人
参数 备注
Angry [true/false] 生成时是否被激怒
  • 因为Bukkit/Spigot的漏洞,狼生成时不会被激怒
  • 若想生成"被激怒"的狼,可使用AIGoalSelectors和AITargetSelectors


史莱姆一族(Slimes & Magma Cubes)
参数 备注
PreventSlimeSplit [true/false] 是否阻止其进行分裂
Size [number] 史莱姆的大小
  • 一般为1 ~ 8之间
  • 可以设置得很大,然而会导致服务器较卡


可被驯服类(Tameable Mobs)
参数 备注
Tameable [true/false] 是否可被驯服
  • 默认设置为false

</spoiler>

模块(Modules)

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

威胁度(Threat Tables)

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

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

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

伤害硬直(Immunity Tables)

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

BigHealthBoss:
  Type: pig_zombie
  Display: '&6Hungry Hungry Piggy Zombie'
  Health: 20000
  Modules:
    ImmunityTable: true
  Options:
    NoDamageTicks: 10
  • 可通过修改通用选项下的NoDamageTicks定义伤害硬直的时间
    默认设置为10刻

自定义AI

几个自定义AI教程示例

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


GoblinBattlemaster:
  Mobtype: zombie
  Display: '&aa goblin battlemaster'
  Health: 80
  Damage: 4
  Faction: Goblin
  AIGoalSelectors:
  - 0 clear
  - 1 opendoors
  - 2 meleeattack
  AITargetSelectors:
  - 0 clear
  - 1 hurtbytarget
  - 2 specificfactionmonsters Orcs
  - 3 players
  Equipment:
  - COS_BronzeHead:4
  - COS_BronzeChest:3
  - COS_BronzeLegs:2
  - COS_BronzeFeet:1
  - COS_WoodAxe:0
  Skills:
  - skill BashI ~onAttack >0 0.25
  Options:
    Despawn: true
    FollowRange: 10
    AlwaysShowName: false
    MovementSpeed: 0.25
    PreventOtherDrops: true
    PreventItemPickup: true
    KnockbackResistance: 0.4    
    PreventMobKillDrops: true
  • 设置里几个比较要注意的
    • 第一,分别设置兽人的派别为Orc,哥布林的派别为Goblin,从而分别他们所属的阵容
    • 第二,设置两边的行动最优到最后分别是clear,opendoors,meleeattack
      近战的一般都可以参考这样来设置
    • 最后,目标上的AI首位设置clear并在后面加上3个攻击目标
  • 先说说hurtbytarget其意义之前说的一样,保证生物懂得还手并且不被玩家欺负
  • 然后是这个specifictargetfaction,设置成这样互相对立会使其各自以对方为攻击对象
  • 最后这个players就是当这个怪物没检测到对家时就会以玩家为攻击目标
  • 最后的最后这个PreventMobKillDrops保证在游荡中被其他生物杀害时不会掉落物品

行动选择器(AIGoalSelectors)

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

SuperMob:
  Type: zombie
  Health: 200
  Display: 'Superb Zombie'
  AIGoalSelectors:
  - 0 clear
  - 1 meleeattack
  - 2 randomstroll

这只僵尸除了会攻击玩家,还会在没有攻击目标时随意走动。 <spoiler>

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


生物(Creatures Only)
别名 备注
avoidarrows 使生物躲闪箭
MM 2.5.0+ 移除
avoidcreepers 使生物躲避爬行者
avoidskeletons 使生物躲避骷髅
avoidzombies 使生物躲避僵尸
fleesun 早上躲在影子下
meleeattack 使生物靠近并近攻目标
movetowardstarget 使生物靠近目标
randomstroll 随处走动
restrictsun 理论上能限制生物走向高亮度的地方
fleeplayers runfromplayers 躲避玩家
fleegolems runfromgolems 躲避铁傀儡
fleevillagers runfromvillages 躲避村民
spiderattack 使蜘蛛攻击目标(看着和meleeattack没什么不同)
*可尝试配合leapattarget使用
leapattarget 使生物跳向目标*貌似需要meleeattack/spiderattack才能正常运作
moveindoors 暂无描述
movethroughvillage 暂无描述
movetowardsrestriction 暂无描述,自己猜吧...
patrol x1,y1,z1;x2,y2,z2;x3,y3,z3;… patrolroute 巡逻,坐标之间走动
MM 2.4添加 只在MC 1.9下正常运作
gotolocation x,y,z goto 走向坐标
MM 2.4添加
gotoowner 走向主人
MM 2.4.1


射手(Ranged Entities Only)
别名 备注
arrowattack 弹射攻击
(使骷髅射箭)
skeletonbowattack bowshoot
bowmaster
MC1.9+骷髅的新扫射AI

</spoiler>

目标选择器(AITargetSelectors)

目标选择器,顾名思义设置生物的目标对象。 例子:

SuperMob:
  Type: zombie
  Health: 200
  Display: 'Superb Zombie'
  AIGoalSelectors:
  - 0 clear
  - 1 meleeattack
  - 2 randomstroll
  AITargetSelectors:
  - 0 clear
  - 1 players
  - 2 golems

所有生物(All Creatures)

  • clear—清除所有AI
  • attacker—以攻击源为目标
  • players—以玩家为目标
  • villagers—以村民为目标
  • golems—以傀儡为目标
派别相关(Faction Support)
  • OtherFaction—以自身以外派别的生物为目标
  • OtherFactionMonsters—以自身以外派别的怪物为目标?
  • OtherFactionVillagers—以自身以外派别的村民为目标
  • SpecificFaction [派别名字]—特指一个派别为目标
  • SpecificFactionMonsters [派别名字]—特指一个派别为目标?
AITargetSelectors:
- 1 SpecificFaction undead

限制生物只以undead派的生物为目标

可驯服类(Tameable Creatures)

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

伤害调整(DamageModifiers)

  • 设置或者说控制生物最终受到的伤害量
  • 比如,免疫近伤,但受到箭的伤害加倍...
可修改项列表
修改项 描述
DROWNING 溺水窒息
BLOCK_EXPLOSION 方块爆炸
ENTITY_EXPLOSION 实体爆炸
VOID 虚空
LIGHTNING 闪电
SUICIDE 命令/kill造成的杀害(不一定管用)
STARVATION 饥饿
POISON 药水
MAGIC 魔法(药水?)
DRAGON_BREATH 末影龙吐息(不一定管用)
WITHER 凋灵药水效果
FALLING_BLOCK 掉落方块
THORNS 荆棘附魔的反伤
CUSTOM 自定义,插件相关
LAVA 接触岩浆
MELTING 雪人的溶雪
FIRE_TICK 持续的点燃伤害
FIRE 接触火
HOT_FLOOR 站在岩浆块上面
FALL 掉落
SUFFOCATION 方块窒息
PROJECTILE 弹射物
ENTITY_ATTACK 近战伤害
CONTACT 触碰仙人掌

例子

<spoiler> 注意:设置为1的话就是受到全数伤害
高于1就会受到比原本多的伤害
低于1就是减少等值伤害
0为免疫此伤害
设为负数值的话就会进行回血,但若此生物原本免疫此伤害便不会凑效(比如铁傀儡免疫掉落伤,烈焰人免疫烧伤/岩浆)

  • 那么我们开始从一个基本的框架弄起
ArmoredZombie:
  Mobtype: zombie
  Display: '&aArmored Zombie'
  Health: 40
  Damage: 6
  • 呐,我们先为Armored Zombie提升受到两个伤害的抗性吧。近战和弹射物受到的伤害为原来的75%,如下
ArmoredZombie:
  Mobtype: zombie
  Display: '&aArmored Zombie'
  Health: 40
  Damage: 6
  DamageModifiers:
  - ENTITY_ATTACK 0.75
  - PROJECTILE 0.75
  • 这样我们的僵尸就对这两的伤害抗性提高了。任何来自其他生物或玩家造成的这两个伤害就会减低25%。感觉有点厉害啊,咱们在给他一个弱点吧
ArmoredZombie:
  Mobtype: zombie
  Display: '&aArmored Zombie'
  Health: 40
  Damage: 6
  DamageModifiers:
  - ENTITY_ATTACK 0.75
  - PROJECTILE 0.75
  - MAGIC 1.25
  • 完成了~这样的话我们的僵尸就对近伤和弹射物有少许抗性提升,并且弱点为magic(投掷型恢复药水)

  • 我们下一个例子是抗火僵尸,他不仅不会受到接触火焰和岩浆的伤害,还会从中恢复血量。接触岩浆时恢复4倍速哦~

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

FireElemental:
  Mobtype: zombie
  Display: '&cFire Elemental'
  Health: 20
  DamageModifiers:
  - FIRE -1
  - LAVA -4
  - FIRE_TICK 0

</spoiler>

装备(Equipment)

  • 给予生物生成时装备上原版或MM配置的物品或装备
  • 装备只会在其生成时装备上,之后可以被如Equip技能更改
  • 如果不想生物生成时有任何装备,可以使用PreventRandomEquipment这一设置,详见Options
    另一种办法是装备栏设置上假的装备,如使用ID为0的物品
internal_mobname:
  Type: <mobtype>
  Equipment:
  - <item>:<slot>
  - <item>:<slot>
  - ...
    • <item>
      可以是MM配置物品或原版物品
    • <slot>
      决定物品所在的装备槽
描述
5 非主手槽,1.9的新功能。能渲染任何物品
4 头部。除了头盔外,可以是任何拥有方块模型的物品(如砧板,玻璃片,玻璃块...)或玩家头颅。大部分能准确渲染
3 胸部。只渲染胸甲,但可以装备任何物品
2 腿部。只渲染腿部装备,但可以装备任何物品
1 脚部。只渲染靴子,但可以装备任何物品
0 主手槽。渲染任何物品

非主手槽(5)于2.3.2版本加入
例子 <spoiler>

awesome_boss:
  Type: pig_zombie
  Equipment:
  - awesome_boss_helmet:4
  - diamond_sword:0

头部的awesome_boss_helmet为MM配置物品
主手握着原版钻石剑
</spoiler>

死亡信息(KillMessages)

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

小技巧

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

等级调整值(LevelModifiers)

  • 生物的等级是一个比较有用的功能。等级的上升意味着其威力的提升,同时还能因其掉落更多的物品
  • 或者,更通过修改设置可以使其根据自身等级掉落完全不同的物品,使用不同的技能,又或者生成于不同的地方(使用spawners和randomspawns)
  • 生物的等级可被世界范围(见下),随机生成,或技能SetLevel影响
  • 此页目前只概括基本的用法,更多教程或例子或在以后添加
Zombie:
  MobType: zombie
  Health: 100
  Damage: 10
  Display: '&5Zombie Lvl - <mob.level>'
  Options:
    MovementSpeed: 0.3
  Drops:
  - GOLD_NUGGET 1 1
  DropsPerLevel:
  - GOLD_NUGGET 1 0.5
  LevelModifiers:
    Health: 5
    Damage: 0.5


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

世界范围(World Scaling)

<spoiler>

  • 随机生成的MM生物的等级可以被插件或config.yml下定义的世界的范围所配予。设置办法为打开config.yml,如下
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)

  • 使生物看着像另一种生物,物品,方块或其他实体
  • 需要LibsDisguisesProtocolLib插件
    还有某些版本能完美运行,有些却很差强人意...自行体验

<spoiler>

英文 中文
arrow
babyzombievillager 小僵尸村民
bat 蝙蝠
blaze 烈焰人
block 方块。见下
boat
cave_spider 洞穴蜘蛛
chicken
cow
creeper 爬行者
donkey 驴子
dropped_item 掉落物。见下
egg
ender_crystal 末影水晶
ender_dragon 末影龙
ender_pearl 末影珍珠
ender_signal 末影之眼丢出时的粒子效果
enderman 末影人
experience_orb 经验球
fireball 火焰弹
firework 火箭
fishing_hook 鱼钩
ghast 恶魂
giant 巨人
horse
iron_golem 铁傀儡
item_frame 物品展示框
leash_hitch 绑出去的拴绳
magma_cube 岩浆怪
minecart 矿车
minecart_chest 箱子矿车
minecart_furnace 熔炉矿车
minecart_hopper 漏斗矿车
minecart_mob_spawner 刷怪笼矿车
minecart_tnt TNT矿车
mule 骡子
mushroom_cow 蘑菇牛
ocelot 豹猫
painting 挂画
pig
pig_zombie 僵尸猪人
player 玩家。见下
polar_bear 北极熊
primed_tnt 点燃的TNT
sheep
silverfish 蠹虫
skeleton 骷髅
skeleton_horse 骷髅马
slime 史莱姆
small_fireball 小型火焰弹
snowball 雪球
snowman 雪傀儡
spider 蜘蛛
splash_potion 投掷型药水
squid 鱿鱼
thrown_exp_bottle 经验瓶
undead_horse 僵尸马
villager 村民
witch 女巫
wither 凋灵
wither_skeleton 凋灵骷髅
wither_skull 凋灵之首
wolf
zombie 僵尸
zombievillager 僵尸村民

</spoiler>

伪装可修改项
描述
Disguise.Burning: true 被点燃特效
Disguise.Blocking: true 被方块窒息效果
Disguise.Invisible: true 隐身
Disguise.ShowName: true 显示一般不会显示的名字,如掉落物或方块的名字
Disguise.Sneaking: true 按下shift的潜行动作
Disguise.Sprinting: true 冲刺动作
Disguise.ModifyBoundingBox: false 保留/使用原有的碰撞箱大小
Disguise.Glowing: true 发光药水效果
Disguise.Gliding 滑行动作
  • GlowingGliding于2.3.2添加

示例

SneakyDisguisingMob:
  Type: wither_skeleton
  Display: 'meh'
  CustomKillMessages:
  - '<target.name> was sneaked upon! (to death)'
  Health: 128
  Disguise:
    Type: player
    Skin: 'meeeh'
    Player: Steve
    Burning: true
    Blocking: true
    Invisible: false
    ShowName: false
    Sneaking: true
    Sprinting: true
    ModifyBoundingBox: false
例子
  • 伪装为附加值为0,显示名字的铁方块
LivingIron:
  Type: Skeleton
  Disguise:
    Type: BLOCK
    Block: IRON_BLOCK
    BlockData: 0
    ShowName: true
  • 伪装为附加值为0的铁剑
PossessedSword:
  Type: Skeleton
  Disguise:
    Type: ITEM
    Item: IRON_SWORD
    ItemData: 0
  • 伪装为玩家Notch
GuardMob:
    Type: IRON_GOLEM
    Disguise:
      Type: Player
      Player: Guard
      Skin: Notch

技能(Skills)&变量

  • 一列可用的MythicMobs技能详细列表
  • 技能为MM插件的一大特点。所有生物都可以根据不同情况发动技能。技能的编写十分简单且灵活,很容易就能编辑出一个Minecraft下的MMORPGs类型的BOSS
  • 一个完整的技能由以下几个构成
    基本类技能Mechanics
    特效类技能Effects
    技能目标对象Targeters
    简易的技能触发要求Triggers
    更高级的触发条件Conditions
技能编辑教学
一个技能的顺序格式如下
FieryZombie:
  Type: ZOMBIE
  Display: 'Fiery Zombie'
  Health: 50
  Skills:
  - 技能1
  - 技能2
  - 等...

大概就是这样,那一个实际的例子是怎样的呢?

FieryZombie:
  Type: ZOMBIE
  Display: 'Fiery Zombie'
  Health: 50
  Skills:
  - ignite{ticks=100} @target ~onAttack <50% 0.5

就是这样,现在我们来详细看下一个技能的格式

  Skills:
  - 技能名字{技能修改项=数值} @[技能对象] ~on[激活条件] [血量要求] [几率]

技能(Mechanics)

  • 技能的名字,一个技能最先也是最重要的部分。技能有很多种,点火,霹雷...技能可分为两类,以实体为目标对象的,以坐标位置为触发点的。有些技能同时属于这两类,有些则两类都不是
  • 大部分技能都有可修改项。就跟在技能名字的后面,填写于{ }的里面。而每个修改项用符号;分隔
  Skills:
  - 技能名字{技能修改项=数值;技能修改项=数值;技能修改项=数值}
  • 你也可以像下面这样换行使其更易于编辑,不过请保证格式正确
  Skills:
  - 技能名字{
      技能修改项=数值;
      技能修改项=数值;
      技能修改项=数值;
      }
  • 大部分的技能格式都是这样的啦,再举个例子,比如想生物把攻击对象点燃5秒(5秒=100刻,1秒=20刻)
  Skills:
  - ignite{ticks=100}

技能目标(Targeters)

  • 技能目标,顾名思义就是你所希望释放的技能所选取的目标。而技能分两大类,以实体为目标的和以坐标/位置为目标的。给技能选取正确的技能目标很重要哦。
  • 目标通常跟随在@后,格式如下
  Skills:
  - 技能名字{技能修改项=数值} @技能目标{目标修改项=数值}
  • 在看回我们之前的例子,点火
  Skills:
  - ignite{ticks=100} @target
  • 又或者你想点燃技能激活位置半径范围5格下的所有玩家
  Skills:
  - ignite{ticks=100} @PlayersInRadius{r=5}
  • 只要记住,目标就是技能的目标

触发条件(Triggers)

  • 当然这个也很重要,决定是因为什么而触发技能,一般填写于~后面
  • 触发条件还和一个特别的技能目标有关,@trigger,以触发技能的实体为技能对象
  Skills:
  - 技能名字{技能修改项=数值} @技能目标{目标修改项=数值} ~on激活时
  • 在看回我们先前的例子...我们想生物每次进行攻击时使用一次5秒的点燃技能
  Skills:
  - ignite{ticks=100} @target ~onAttack

血量要求(Health Modifiers)

  • 血量要求,用于确定当生物的血量满足什么情况下技能才可以发动
    使用这三个判定符=,<,>
    以下几个例子
=90% - 血量到达90%时触发
<50% - 血量小于50%时触发
=30%-50% - 当血量为30%到50%之间时触发
<2000 - 血量小于2000点时触发
>500 - 血量大于500点时触发
>10,=5,<3% - 血量大于10点,等于5,或小于3%时都可触发
  • 我们把之前的例子再拉回来...血量小于50%时,每次攻击目标时使用点燃技能
   Skills:
   - ignite{ticks=100} @target ~onAttack <50%

几率(Chance)

  • 满足条件后技能使用的几率
  • 1.0为100%,一般不填写的话也就是默认100%使用;0.5是50%几率,0就是不会发动...
  • 我们把例子最后一次再拉回来...血量小于50%时,每次攻击目标时有50%几率使用点燃技能
  Skills:
  - ignite{ticks=100} @target ~onAttack <50% 0.5

变量(Variables)

  • 变量用于决定返还一个特定的数值并用于技能之上,也可单纯用于显示颜色或特殊符号

例子显示被干掉的生物名字 被骑士 显示使用技能的玩家的名字 使用技能斩杀了

Skills:
- message{m="&b<mob.name>&r 被骑士 &a<trigger.name>&r 使用技能斩杀了"} @PIR{r=20} ~onDeath

技能变量

生物变量 描述
若没有标明生物名字,以下变量或许会不能运行
<mob.uuid> 返还生物的UUID
<mob.level> 返还生物的等级
<mob.name> 返还生物的名字
<mob.hp> 返还生物的当前血量值
<mob.mhp> 返还生物的最大(max)血量值
<mob.php> 返还生物的当前血量值并以百分比形式
<mob.thp> 返还生物的最大(full number)血量值
<mob.tt.top> 返还对生物威胁度最高的伤害源名字
<mob.l.w> 返还生物现在所在世界的名字
<mob.l.x> 返还生物现在的x轴坐标
<mob.l.y> 返还生物现在的y轴坐标
<mob.l.z> 返还生物现在的z轴坐标
<mob.stance> 返还生物当前的状态(2.2)
<mob.owner.name> 返还狼的主人的名字(2.3)
<mob.owner.uuid> 返还狼的主人的UUID(2.3)
目标变量 描述
以下变量返还目标选择器下的相关数值
<target.name>+@NearstPlayer就会返还离使用此技能的生物的最近玩家的名字
<target.uuid> 返还目标的UUID
<target.name> 返还目标的名字
<target.hp> 返还目标的当前血量值
<target.threat> 返还目标的威胁度
<target.l.w> 返还目标现在所在世界的名字
<target.l.x> 返还目标现在的x轴坐标
<target.l.y> 返还目标现在的y轴坐标
<target.l.z> 返还目标现在的z轴坐标
触发变量 描述
<trigger.uuid> 返还技能触发者的UUID
<trigger..name> 返还技能触发者的名字
<trigger.hp> 返还技能触发者的当前血量值
<trigger.threat> 返还技能触发者的威胁度
<trigger.l.w> 返还技能触发者现在所在世界的名字
<trigger.l.x> 返还技能触发者现在的x轴坐标
<trigger.l.y> 返还技能触发者现在的y轴坐标
<trigger.l.z> 返还技能触发者现在的z轴坐标

其他变量

变量 描述
<drops.xp> 返还Heroes或SkillAPI插件的经验掉落值
<drops.money> 返还Vault插件的金钱掉落值

特殊变量

变量 描述
<random.min-max> 返还一个定义的最小和最大数之间的随机数值(2.2.1)
<mob.score.objective> 返还生物记分板objective下的分数(2.3)
<target.score.objective> 返还目标记分板objective下的分数(2.3)
<trigger.score.objective> 返还技能触发者记分板objective下的分数(2.3)
<global.score.objective> 返还记分板objective下的总分(2.3)
<score.objective.dummyname> 返还记分板objectivedummyname的分数(2.3)

特殊符号

变量 描述
<&co> 返还冒号 :
<&sq> 返还撇号 '
<&da> 返还减号 -
<&bs> 返还反斜杠 \
<&fs> 返还斜杠 /
<&sp> 返还空格
<&cm> 返还逗号 ,
<&sc> 返还分号 ;
<&eq> 返还等号 =
<&ss> 返还分节符 §
<&dq> 返还双引号 "
<&rb> 返还右方括号 ]
<&lb> 返还左方括号 [
<&rc> 返还右大括号 }
<&lc> 返还左大括号 {
<&nl> 另起新的一行
<&heart> 返还一个爱心符号(2.1.7)
<&skull> 返还一个骷髅骨头符号(2.1.7)

颜色代码

可使用于生物或技能下,也能用于tellraw命令下

变量 描述
&0 黑色
&1 深蓝色
&2 深绿色
&3 深水蓝色
&4 深红色
&5 深紫色
&6 金色
&7 灰色
&8 深灰色
&9 蓝色
&a 绿色
&b 水蓝色
&c 红色
&d 浅紫
&e 黄色
&f 白色
&K 乱码
&L 加粗
&M 删除线
&N 下划线
&O 斜体
&R 颜色代码重置/清空

条件要求(Conditions)

一些旧版(2.5.11)的条件。只要把Conditions改为LegacyConditions就仍然可在MM4.0.0+使用 <spoiler>

  • biome [biome_name]
    • 若在此地形
    • 地形种类
    • 允许使用/进行分隔
    • 地形名字应为全大写
    • biome FOREST


  • distancefromspawn [number](2.4)
    • 若在生成点特定的范围内
    • 可以特定范围 10-405,也可以是范围值 >10 或 <77 等...
    • distancefromspawn >100


  • globalscore [objective];[score](2.3)
    • 若玩家的分数...时
    • globalscore playerkills;>10


  • height [number_range]
    • 若在某y轴高度时
    • 可以是范围 20-40, >10 或 <5 等...
    • 按F3可查看高度/Y轴
    • height 0-20


  • heightabove/heightbelow [number]
    • 若在以上/以下高度时
    • 按F3可查看高度/Y轴
    • heightabove 0


  • holding [itemname]
    • 当技能使用者手持制定物品时
    • 必须是Bukkit定义的物品名字。不能是MM物品名字
    • 方块/物品名字列表
    • 由于特殊漏洞原因,此条件不能检测带有损伤值的物品(2.2.1或之前)
    • holding STICK


  • inblock [material_type]
    • 若使用者在特定的方块时
    • 用于检测是否在水中、空中、岩浆里时十分有效
    • 方块名字列表
    • 允许使用/进行分隔
    • 注意若想使用者在水方块中而非仅仅是在水面请使用STATIONARY_WATER替代WATER
    • inblock WATER


  • incombat
    • 若处于战斗状态(拥有目标)时
    • incombat


  • inregion/notinregion [region]
    • 若处于/不处于WorldGuard插件定义的区域时
    • inregion castle


  • lastsignal [signal](2.2.1)
    • 若接受的最后一个信号为此指定的信号 详见signal技能
    • 不同于stance条件,signal会检测完全匹配的数据
    • lastsignal ping


  • level [number_range]
    • 若在指定的等级范围内
    • 可以是范围 20-40, >10 或 <5 等...
    • level >3


  • lightlevel [number_range]
    • 若处于指定的亮度范围内
    • 选值范围必须为0~15之间
    • lightlevel 0-3


  • lightlevelabove/lightlevelbelow [number]
    • 若处于以上/以下亮度范围内
    • lightlevelabove 6


  • lunarphase [phase]
    • 若在游戏内的某一天时
    • 可用逗号,分隔指定的游戏天数
    • lunarphase 0,2,4


  • mobscore [objective];[score](2.3)
    • 若其记分板的分数为某个值时
    • mobscore timeshit;=3


  • mobinchunk [number_range]
    • 若所在区块有指定量的生物时
    • 可以是范围 20-40, >10 或 <5 等...
    • mobinchunk <20


  • mobinworld [number_range]
    • 若所在世界有指定量的生物时
    • 可以是范围 20-40, >10 或 <5 等...
    • mobsinworld >100


  • mobtype [mobname]
    • 若生物的名字匹配时生成此生物
    • 只用于随机生成配置下
    • mobtype COW


  • offgcd
    • 若技能的整体冷却时间global cooldown为0时
    • global cooldown为用于决定生物所不能使用技能的时间段/技能延时
    • 使用gcd技能设置技能延时的时间,默认无冷却时间
    • 用于减慢或防止某些拥有多个技能的生物同时使用不同技能的几率
    • offfgcd


  • onblock [material_type]


  • outside/inside [true/false]
    • 若在室外/室内时
    • 室外的定义为对天空有清晰的视野时,室内的定义则相反
    • outside true


  • playerkills [number]
    • 若玩家斩杀数为指定值时
    • playerkills 7


  • playernotwithin/targetnotwithin [distance]
    • 若玩家/目标不在范围内时
    • 输入单个数值。若想使用范围值,使用targetdistance条件
    • playernotwithin 5
    • targetnotwithin 2


  • playerwithin/targetwithin [distance]
    • 若玩家/目标在范围内时
    • 输入单个数值。若想使用范围值,使用targetdistance条件
    • 通过连续配合targetinlineofsight条件使用来使生物即使见不到玩家或距离太远时也能使用技能
    • playerwithin 15
    • targetwithin 7


  • raining [true/false]
    • 若正在/没有下雨时
    • raining false


  • score(2.3)
    • 用于检测虚拟玩家记分板下的分数
    • score <objective>;<entry>;<numberrange>
    • score kills;dummyplayer;10-14


  • stance [string]
    • 若生物处于某一状态时
    • 状态由setstance技能给予
    • 使复杂的检测系统成为可能。若当前的状态被设置为AGGRO,而stance条件检测GG时,此次检测成立
    • stance defensive


  • sunny [true/false]
    • 若处于/不为晴天时
    • sunny true


  • targetscore [objective];[score](2.3)
    • 若目标记分板的分数为某数值时
    • targetscore mobkills;>99


  • targetdistance [number_range]
    • 若目标处于范围值内时
    • 识别使用范围,如 10-20
    • targetdistance 10-20


  • targetinlineofsight/targetnotinlineofsight [true/false]
    • 若目标在/不在可视范围内时
    • targetinlineofsight true


  • thundering [true/false]
    • 若有/没有打雷时
    • thundering false


  • world [worldname]
    • 若当前世界为指定的世界时
    • 可以指定单个世界,也可以使用逗号列表
    • 允许使用/进行分隔
    • world snowyworld, lavaworld, islandworld


  • worldtime [number_range]
    • 若当前世界时间为指定范围内时
    • 取值范围为0~24000
      可使用/time显示当前世界的时间
    • 0-12000为游戏内的白天,12001-13800为黄昏,13801-22200为晚上,22201-24000为黎明
    • worldtime 0-12000

例子

FlameShock:
  Cooldown: 1
  Conditions:
  - targetwithin 15
  - targetinlineofsight true
  - incombat
  - stance aggressive
  - onblock GRASS
  - offgcd
  Skills:
  - gcd{t=60}
  - message{m="<mob.name> begins casting a spell"}
  - potion{t=SLOW;d=60;l=7}
  - delay 60
  - message{m="<target.name> &ecombusts"}
  - effect:particles{p=flame;a=20;hS=3;vS=1;s=0;y=2}
  - potion{t=HARM;d=1;l=1}

</spoiler> 条件Conditions用于判定当处于/不处于某个情况时执行某项事件。条件的填写方法见例子
条件可用于以下位置 非所有条件适用于所有地方

当Conditions下有多个条件时,必须按顺序满足所有条件才可执行。那些允许使用/的条件只要满足其定义中的其中一个即视为匹配此条件

条件是如何运作的

条件的种类:
条件可分为三种

  1. 条件(Conditions) - 以技能的使用者为目标
  2. 目标条件(TargetConditions) - 以技能的对象为目标
  3. 触发条件(TriggerConditions) - 以触发技能的对象为目标


要注意的是,并不是所有条件要求都适用于这三种类型的条件。比如,

  Conditions:
  - globalscore{objective=Test;v=>10}

globalscore并没有任何特殊的目标,所以只能在Conditions下运作

  TargetConditions:
  - lineofsight false

而这个并不能填写在Conditions下,因为lineofsight需要目标对象才能执行,所以只能填写在TargetConditions或TriggerConditions下

格式:
从4.0.0起,所有条件的新格式大致如下

Conditions:
- 条件 [变量]
- 条件 [变量] [条件动作]
- 条件 [变量] [条件动作] [条件动作的变量]
- 条件{变量1=数值;变量2=数值} [条件动作] [条件动作的变量]

这个新的条件动作可用于在满足/不满足条件的情况下,是否使用技能。例子如下

Conditions:
- day required
- stance defensive power 0.5
- stance{stance=defensive} power 0.5
- score{objective=test;value=>20} cancel
- haspotioneffect{type=POISON;level=>0;duration=0 to 100} true

条件动作
新增的条件动作使我们能在条件上有更多的修改空间。
比如,新版允许在满足/不满足条件的情况下执行...而旧版的条件要求只会在满足条件的情况下执行

  • 以下为一列条件动作
    • reqiured/true(默认) - 满足条件时,执行技能
    • cancel/false - 满足条件时,不执行技能
    • power [数值] - 满足条件时,调整技能的伤害 (power 2.0 会使技能的威力翻倍)
    • cast [技能] - 未实现 满足条件时,使用额外的指定技能
    • castinstead [技能] - 未实现 满足条件时,使用指定技能替代原定技能

不选取目标类条件

  • globalscore{objective=[objective];value=[vaule]}
    • 检测名为"__GLOBAL__"玩家的分数
    • 你可以以此用作记录服务器某项东西的分数
    • globalscore{objective=Test;value⇒10}
  • mobsinworld{a=[amount]}
    • 检测当前世界的生物数量
    • 可输入单个数值,或使用数值范围
    • mobsinworld{a⇒10}

目标/触发类条件

  • distance{d=[value]}
    • 当目标在指定范围内时
    • 可输入单个数值,或使用数值范围 20-40 >10 <5 等
    • distance{d=<2}
  • lineofsight
    • 当使用者(生物)在/不在玩家视野范围内时
    • targetinlineofsight true
  • owner
    • 当目标是/不是某生物的主人时
    • 主人必须通过setowner技能设置
    • owner true
  • targetwithin/targetnotwithin{d=[value]}
    • 当目标在/不在指定范围内时
    • targetwithin{d=2}

基本类条件

  • altitude{a=[number]}
    • 当使用者/目标离地面的高度满足指定数值时
    • 可输入单个数值,或使用数值范围 20-40 >10 <5 等
    • altitude{a⇒1}
  • biome{b=[biome]}
    • 当使用者/目标处于指定群系时
    • 默认为Plains群系
    • biome{b=DESERT} true
  • crouching
    • 当目标(玩家)潜行(shift键)时
    • 应该只适用于玩家
    • crouching false
  • distancefromspawn [number]
    • 检测离世界出生点的距离
    • 可输入单个数值,或使用数值范围 20-40 >10 <5 等
    • distancefromspawn >100
  • entitytype [entity]
    • 检测实体的种类
    • entitytype player
  • fallspeed{speed=[number/number range]}
    • 可输入单个数值,或使用数值范围 20-40 >10 <5 等
      也可以是负数(用于跳跃时)
    • 一般掉落的速度为0.785
    • fallspeed{speed⇒0.7845}
  • gliding
    • 检测生物/实体是否佩带滑翔翼并滑翔
    • 可用setgliding技能使生物滑翔
    • gliding true
  • haspotioneffect{type=[potion type];level=[level];duration=[duration start] to [duration end]}

目标选择器

目标用于确定技能释放的对象。

目标总是必需的(否则生物不知道攻击谁),忘记目标大概是新接触 MythicMobs 的人最常犯的错误了。

如果在一个复杂技能使用了目标器,那么所有里面的技能的目标都会继承父目标。需要注意的是,大量使用目标可能造成服务器性能的影响。当然,你可以覆写父类目标,将复杂技能里的每个技能都分配单独的目标,甚至有一大堆目标一起工作的非常优秀的例子。

目标既可以复杂也可以简单,全看你想怎样!

  • 生物目标
    • 单生物目标
目标 缩写 描述
@Self 将自身作为目标
@Target 将生物当前的攻击目标作为目标
@Trigger 将触发技能的生物作为目标
@NearestPlayer 将最近的玩家作为目标
@WolfOwner 将狼的主人作为目标
@Owner setOwner)
@Mount (MM 2.5.0+) 将骑乘的生物作为目标
    • 多目标生物
目标 缩写 描述
@LivingEntitiesInRadius{r=#} 将半径内的生物作为目标
@PlayersInRadius{r=#} @PIR{r=#} 将半径内的玩家作为目标
@MobsInRadius{r=#;types=X,X,X} @MIR{r=R;t=T} 将半径内的生物作为目标
@EntitiesInRadius{r=#;types=X,X,X} @EIR{r=R;t=T} 将目标范围内的所有实体作为目标
@PlayersInWorld @World 将当前世界所有玩家作为目标
@PlayersOnServer @Server 将服务器内的所有玩家作为目标
@PlayersInRing{min=#;max=#} 将环内的所有玩家作为目标
@PlayersNearOrigin{r=#}
@MobsNearOrigin{r=R;t=T}
@EntitiesNearOrigin{r=#}
  • 威胁表目标

这些目标只有在威胁表启用时可用

目标 缩写 描述
@RandomThreatTarget @RTT 将威胁表内的随机一名玩家作为目标
@ThreatTable @TT 将所有威胁表内的生物作为目标
@ThreatTablePlayers 将威胁表内的所有玩家作为目标
  • 坐标目标
    • 单坐标目标
目标 缩写 描述
@SelfLocation 生物自己的坐标
@TargetLocation 生物目标的坐标
@TriggerLocation 将触发技能的生物的坐标作为目标
@Location{c=x,y,z} 指定坐标作为目标
@Origin 将发射物的发射者的坐标作(不一定是生物)为目标
@Spawner{s=[string]} 将刷怪点的坐标作为目标
@RLNTE{amount=#;radius=#;spacing=#;minradius=#;} 选择生物周围随机的坐标点作为目标,amount代表坐标点数量,radius代表半径的距离,spacing代表每个坐标之间的距离,minradius代表最小半径,这个选择常用于 Meteor 技能
    • 多坐标目标
目标 缩写 描述
@PlayerLocationsInRadius{r=#} @PLIR{r=#} 将半径内的所有玩家的坐标作为目标
@Ring{radius=#;points=#} 选择范围圆环内的目标点
@Cone{angle=#;points=#;range=#;rotation=#;} 选择一个锥形体作为目标点组
@EntitiesInCone{angle=#;range=#;rotation=#;} 选择锥形内的所有生物
  • 特殊目标

有一些目标只能用于技能内部

Laser:
  Mobtype: creeper
  Display: 'Laser'
  Health: 12
  AITargetSelectors:
  - 0 clear
  - 1 players
  Skills:
  - skill{s=Laser;} @target
Laser:
  Skills:
  - ignite @line{r=1}

在这个技能内,目标选择为生物使用技能的终点

目标 缩写 描述
@Line{radius=#;fromorigin=true/false} @Line{r=#;fo=true/false} 将目标和生物之间的连线的所有坐标点作为目标
@EntitiesInLine{radius=#;fromorigin=true/false} @EIL{r=#;fo=true/false} 将目标与生物间连线上的所有生物作为目标

这些全部在 MythicMobs 2.5.0 中加入

  • 原版目标

这些目标会像 Minecraft 命令中的目标选择器一样工作。这些目标可能极其复杂冗长,但也可以很简单。这些拓展都包围在[ ]里,包含了可能的半径、数量、游戏模式、计分板分数、队员、生物种类、经验等级、目标等等。

请注意,因为一个BUG,原版的目标选择器搭配 MythicMobs 使用,有可能没有最小半径和半径参数,这将导致没有任何目标被选中。以后的 MythicMobs 版本不再能选择非同一世界的目标。

目标选择器 描述
@p 选择最近的玩家
@a 选择所有玩家
@r 选择随机玩家
@e !选择所有实体
参数 描述
x=X, y=Y, z=Z 坐标。如果给出了这些属性,那么目标会以此作为基准
r=R 最大半径,必须设置坐标
rm=RM 最小半径
m=M 游戏模式。目标处于的游戏模式 0 = 生存, 1 = 创造, 2 = 冒险, 3 = 旁观
c=C 最大数量的生物,正数尝试选择最近的,负数则是最远的
l=L 最大等级,会尝试选择最高的
lm=LM 最小等级
score_<obj>=SCORE 最大计分板分数
score_<obj>_min=SCORE 最小计分板分数
team=TEAM 是“TEAM”队伍的成员
team=!TEAM 不是“TEAM”队伍的成员
name=NAME 名称必须为“NAME”
name=!NAME 名称必须不为“NAME”
dx=DX, dy=DY, dz=DZ 体积尺寸,选择长方形区域
rx=RX 最大垂直旋转角
rxm=RXM 最小垂直旋转角
ry=RY 最大水平旋转角
rym=RYM 最小水平旋转角
type=TYPE 目标必须为“TYPE”型生物
type=!TYPE 目标必须不是“TYPE”型生物
tag=TAG 目标必须拥有“TAG”计分板标签
tag=!TAG 目标必须没有“TAG”计分板标签

示例

  • @p[lm=10]
    • 选择最近经验大于10级的玩家
  • @a[r=10]
    • 选择所有10格内的玩家
  • @a[r=10,c=3]
    • 选择10格内最近的3个玩家
  • @a[r=10,c=2,lm=10]
    • 选择10格内的经验大于10级的最近的2个玩家
  • @a[r=10,score_ASD=1]
    • 选择10格内的计分板 ASD 最大为1的所有玩家
  • @a[r=12,score_ASD_min=2]
    • 选择10格内的计分板 ASD 最小为2的所有玩家

可能性非常之多!

目标过滤器

目标过滤器允许你过滤掉现有的目标,让目标选择器更加灵活

可以使用两个选项(可用任何生物目标):

  • ignore=X
  • target=X

举个例子,过滤掉所有的玩家和动物,可以这样做:

damage{a=20} @EntitiesInRadius{r=10;ignore=players,animals}

让目标只选择玩家,可以这样:

skill{s=ASkill} @EntitiesInRadius{r=5;target=players}

可用的过滤器:

  • animals (非敌人生物)
  • creative (创造模式,默认忽略)
  • creatures (任何生物)
  • flyingmobs
  • monsters (敌对生物)
  • NPCs (Citizens 的 NPC,默认忽略)
  • players
  • samefaction (同派系的生物)
  • spectators (旁观者,默认忽略)
  • watermobs

· 还有更多....

触发器

触发器决定了什么时候技能被触发。

  • 可用的所有触发器:
触发器 何时触发...
onCombat 默认
onAttack 当生物攻击
onDamaged 当生物受到伤害
onSpawn 当生物生成
onFirstSpawn 当生物第一次从刷怪点出生时
onDeath 当生物死亡
onTimer:# 每 # ticks
onInteract 当生物被右键
onKillPlayer 当生物击杀玩家
onPlayerDeath 当玩家死亡
onEnterCombat 当生物开始战斗(需要开启威胁表)
onDropCombat 当生物停止战斗(需要开启威胁表)
onChangeTarget 当生物改变目标(需要开启威胁表)
onExplode 当生物爆炸(经常只用于爬行者)
onTeleport 当生物传送(经常只用于末影人)
onSignal 当生物接收到信号
onSignal:[i][signal][/i] 当生物接收到特定信号

使用触发器

触发器在技能栏里定义,常使用 ~ 开头,在 Timer 里,需要一个 ticks 作为单位的时间。

SkeletalWizard_Fire:
  Type: WITHER_SKELETON
  Display: '&Skeletal Fire Wizard'
  Health: 50
  Damage: 0.5
  Skills:
  - ignite{ticks=100} @target ~onAttack
  - skill{s=FireShield} @trigger ~onDamaged 0.1
  - skill{s=AOEFire} ~onTimer:300

在这个例子里,生物将近战攻击自己的生物点燃,在收到伤害时,会使用 FireShield 技能,还会每 300 ticks 使用 AOEFire 技能。

不使用触发器....

技能触发器给了我们更多的空间使用技能,我们高度推荐你使用最新的触发器,而不是那些老版的方法。

如果技能没有触发器,它会默认为 “~onCombat”,也就是当这些事发生时:

  • 生物收到伤害
  • 生物造成了伤害
  • 生物出生
  • 生物死亡
SkeletalWarrior:
  Mobtype: skeleton
  Display: '&9A Skeletal Warrior'
  Health: 100
  Damage: 2
  Drops:
  - DropTable
  Skills:
  - skill{s=Bash} =10%-90%

在这个例子里,Bash 技能会在生物受到或造成伤害时触发,并且需要在10-90%的血量之间。

@trigger 目标选择器

你可能注意到了在这个例子里,有一个 @target 目标选择器。这个将把激活技能的“原因”作为目标。举个例子,如果玩家伤害了生物,并且生物使用了 ~onDamage 来触发技能,那么技能的目标设置为此玩家。如果一个信号发送给了生物,它将把发送信号的生物作为目标。

详细信息 & 示例

  • ~onSpawn
    • 当生物生成触发技能
    • 只会触发一次
    • 可以与几率参数一同使用
    • - skill{s=DamageImmunity} ~onSpawn 0.50 (生物出生时有 50% 获得伤害免疫)
  • ~onDeath
    • 生物死亡时触发技能
    • 只会触发一次
    • 可以与几率参数一同使用
    • - skill{s=SpawnSpiderlings} ~onDeath 1 (生物死亡时 100% 使用 SpawnSpiderlings 技能)
  • ~onAttack
    • 当生物攻击时触发技能
    • 在生物攻击什么东西时触发
    • 可以与生命和几率参数一同使用
    • - skill{s=Bash} ~onAttack <50% 0.1 (当生物在 50% 血以下时,攻击有 10% 几率使用 Bash 技能)
  • ~onDamaged
    • 当生物受到伤害时触发
    • 可以与生命和几率参数一同使用
    • - skill{s=FlameShield} ~onDamaged 1 (当生物受到伤害,有 100% 的几率使用 FireShield 技能)
  • ~onExplode
    • 生物爆炸时触发技能
    • 除非你设置了 PreventSuicide 选项,否则只会触发一次。基本上只在爬行者使用,因为其他生物看起来不会爆炸...
    • 可以与几率参数一同使用
    • - skill{s=SpawnCreeper} ~onExplode 0.25 (生物在爆炸时有 25% 的几率使用 SpawnCreeper 技能)
  • ~onTeleport
    • 当生物传送时触发技能
    • 基本上在末影人使用,或者其他有传送技能的生物
    • 可以与生命和几率参数一同使用
    • - skill{s=GustOfWind} ~onTeleport <50% 1 (生物在传送时有 100% 的几率使用 GustOfWind 技能,并且需要血量少于 50%)
  • ~onTimer:<ticks>
    • 基于计时器触发技能
    • ticks 作为单位
    • 避免使用几率和生命参数
    • 小心使用计时器,因为大量使用可能会造成服务器的性能影响,大量的粒子效果可能造成客户端的性能影响
    • - skill{s=SingleTargetFire} ~onTimer:200' (每10秒使用 SingleTargetFire 技能)
  • ~onPlayerKill
    • 当击杀玩家时触发技能
    • 可以与生命和几率参数一同使用
    • - skill{s=BossRegen} ~onPlayerKill >0 1 (当生物击杀玩家,生物有 100% 的几率使用 BossRegen 技能)
  • ~onEnterCombat
    • 当生物停止战斗时触发技能
    • - skill{s=BuffSelf} ~onEnterCombat >0 1 (当生物开始战斗,有 100% 的几率使用 BuffSelf 技能)
  • ~onDropCombat
    • 当生物开始战斗时触发技能
    • - skill{s=BossRegen} ~onDropCombat >0 1 (当生物停止战斗,有 100% 的几率使用 BossRegen 技能)
  • ~onTargetChange
    • 当生物改变目标时触发技能
    • - skill{s=Charge} ~onTargetChange >0 1 (当生物改变目标,有 100% 的几率使用 Charge 技能)
  • ~onInteract
    • 当生物被右键时触发技能
    • - skill{s=QuestDialogue} ~onInteract >0 1 (当生物被右键时,有 100% 几率使用 QuestDialogue 技能)
  • ~onSignal 或 ~onSignal:[signal]
    • 在生物收到(特定[signal])信号后触发技能
    • 对于需要玩家和生物互相交流的技能,这是个不错的选择

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

例子
FlameShock:	●组合技配置名 FlameShock,详见skill技能。配置保存于/MythicMobs/Skills下
  Cooldown: 1	●组合技的冷却时间 1秒
  Conditions:	◎条件列表
  - targetwithin 15	●当目标在15格半径范围内时
  - targetinlineofsight true	●当目标在可视范围内时
  - incombat	●当技能使用者处于战斗状态(拥有目标对象)时
  - stance aggressive	●当状态被定义为aggressive时
  - onblock GRASS	●当战在草方块上时
  - offgcd	●当整体技能冷却时间为0时
  Skills:	◎技能列表,使用顺序从上往下进行
  - gcd{t=60}	●设置整体技能冷却时间为60刻/3秒。此时段内任何带有offgcd条件的技能不可用
  - message{m="<mob.name> 发动了一个技能"}	●发送信息 "此生物"发动了一个技能
  - potion{t=SLOW;d=60;l=7}	●缓慢药水效果,时长60刻/3秒,7级药水
  - delay 60	●60刻/3秒之后
  - message{m="<target.name> &e燃烧起来了"}	●发送信息 "此生物""黄字显示"燃烧起来了
  - effect:particles{p=flame;a=20;hS=3;vS=1;s=0;y=2}	●粒子flame效果,粒子量20,扩展左右3格上下1格的范围,粒子速度0,以激活点偏移y轴2格为粒子中心
  - potion{t=HARM;d=1;l=1}	●伤害药水效果,时长1刻/0.05秒,1级药水
	●●技能的目标于使用此技能组时定义,如下
FlameSprite:
  Type: ZOMBIE
  Display: 'Flame Sprite'
  Health: 20
  Skills:
  - skill{s=FlameShick}

物品(Items)

概览

在 MythicMobs 里制作自定义物品是相当简单的。不像生物和技能,这个插件的物品没有特殊或独一无二的选项。任何通过 MythicMobs 制作的物品都可以使用原版命令制造出来,不过使用 MythicMobs 制作物品来的更加舒服一些。 以下的这些选项里,只有 internal_itemnameId 是必需的。所有其他的选项都是完全可选的。

iternal_itemname:
  Id:
  Data:
  Display:
  Attributes:
  Amount:
  Options:
  Enchantments:
  Lore:
  PotionEffects:
  BannerLayers:

拆开所有的选项来看

  • internal_itemname:
    • 用于给 MythicMobs 参考,想叫什么叫什么
    • 必须为字母数字,并且大小写敏感
  • Id:
    • 设置物品的种类
    • 可以是 Bukkit 材料名称或是物品 ID
    • 见常用物品 ID
  • Data:
    • 设置物品数据
    • 用于物品的耐久和方块种类
  • Display: '[名称]'
    • 设置物品名称
    • 可以使用技能|变量
    • 必须使用单引号包围
  • Attributes:
    • 设置物品的属性,见下物品属性
  • Amount:
    • 设置物品的数量
  • Options:
    • 这是一个特殊的子选项,提供了大量的附加属性
    • 见物品选项
  • Hide: 在 2.4 中添加
    • 允许隐藏特定的属性
    • “ATTRIBUTES”, “ENCHANTS”, “DESTROYS”, “PLACED_ON”, “POTION_EFFECTS” 和 “UNBREAKABLE”.
    • 示例
  Hide:
  - ATTRIBUTES
  - UNBREAKABLE
  • Enchantments:
    • 添加物品附魔
    • 任何种类的物品都可以有附魔
    • 见附魔
  • Lore:
    • 添加 lore 到物品
    • 可以使用技能|变量
    • 必须使用单引号包围
    • 在{}中的数字将被替换为随机数字,如(生命: +{100-200}可能为生命: +151) 可以与 ItemLoreStats 一同使用
    • 示例:
Lore:
- '&rThe weapon of a true warrior'
- ''
- '&cIncreases ones greed'
  • PotionEffects:
    • 允许添加药水效果
    • 如果不是药水,那么纯粹为了好看
    • 见药水
  • BannerLayers:
    • 允许编辑旗帜的条纹
    • Minecraft 的限制为6条,如果比6条更多,可能造成奇怪的后果
    • 见旗帜条纹

物品属性

于版本 2.4 添加 MythicMobs 的物品属性机制使用了 Minecraft 1.9 的新的物品属性机制。这允许让生物的装备的属性随装备槽变化,老的 Option-tag 系统将不再支持。

Item:
  Id: item_id
  Attributes:
    Slot:
      Attribute: [number]

属性

  • AttackSpeed: [number]
    • 控制物品的攻速或冷却,只在武器有用
    • 使用此属性会覆盖原有攻速,基础攻速和自定义攻速不会重叠,查看其他|常见物品查看攻速表。
  • Armor: [number]
    • 设置物品的护甲值,可用于任何物品
    • 1 护甲 = 0.5 护甲格
  • ArmorToughness: [number]
    • 并不知道有什么用
    • (护甲韧度,控制护甲耐久减少)
  • Damage: [number]
    • 设置物品的近战攻击
    • 基础伤害和自定义伤害不会重叠
    • 可能只可应用于非武器物品
    • 1 伤害 = 0.5 心
  • FollowRange: [number]
    • 跟随距离,只在生物穿上时有用
  • Health: [number]
    • 让持有者增加生命上限
    • 可为负数(减少生命)
    • 1 生命 = 0.5 心
  • Luck: [number]
    • 幸运值
    • 可用负数
  • KnockbackResistance: [number]
    • 击退抗性
    • 使用 [number]% 强制小数
  • MovementSpeed: [number]
    • 设置移动速度
    • 可为负数(减速)
装备槽 解释
All 所有装备栏
MainHand 属性只在主手生效
OffHand 属性只在副手生效
Head 属性只在头盔栏生效
Chest 属性只在护甲栏生效
Legs 属性只在护腿栏生效
Feet 属性只在靴子栏生效

示例

生物将此物品拿在主手获得10幸运值,副手则是7幸运值和两点近战伤害加成:

lucky_charms:
  Id: potato_item
  Display: 'Rotten Lucky Charm'
  Attributes:
    MainHand:
      Luck: 10
    OffHand:
      Luck: 7
      Damage: 2

获得一颗心的生命上限提升,如果装备在腿上,则有附加的0.04的移动速度加成:

happy_feet:
  Id: leather_boots
  Display: 'Penguin Hide'
  Attributes:
    All:
      Health: 2
    Feet:
      MovementSpeed: 0.04

每次生成物品都会随机生成0.01-0.05的移动速度属性:

lucky_sword:
  Id: wood_sword
  Display: '&eLucky Sword&r'
  Attributes:
    MainHand:
      Damage: 3-5
      MovementSpeed: 0.01-0.05

物品选项

部分使用了不推荐的方法,并且早已在 2.4 版本标注出不推荐,并且不推荐的功能都可代替,部分不推荐的不译 这是放在 Option 项内的设置。

全局选项

这些设置可用于任何物品。

  • Repairable: [true/false] (2.4.1)
    • 设置可在铁砧内修复
    • 覆写 RepairCost 选项
    • 默认为 false
  • RepairCost: [number] (2.4.1)
    • 设置修复花费的经验
  • Unbreakable: [true/false]
    • 设置物品不可损坏
    • 这样物品使用时不会消耗耐久

玩家头颅

只可用于玩家头颅物品。

  • Player: [name]
    • 设置头颅的材质(玩家姓名)
    • 示例:
Player: Herobrine

可染色物品

  • Color: [R,G,B] OR [DyeColor]
    • 物品染色(RGB 0-255)
    • 当然你可以使用提前设置过的颜色(其他|颜色)
    • 只可以在皮革护甲和旗帜使用

不推荐的选项

<spoiler>*Damage: [number]

    • Deprecated as of version 2.4 1)
    • Sets the damage for the item when used as a melee weapon.
    • Does not increase bow “ranged” damage nor does it stack to add a “damage bonus”
    • Must use this option to give non-weapon ID's the ability to do damage (stick, blaze rod, etc)
    • Can be whole number or a decimal (0.5)
  • FollowRange: [number]
    • Deprecated as of version 2.4 2)
    • Sets the FollowRange Attribute for the entity equipping the item.
    • Only affects mobs.
  • Health: [number]
    • Deprecated as of version 2.4 3)
    • Adds player health to the item.
    • Can be whole number or a decimal (0.5)
  • HideFlags: [true/false]
    • Deprecated as of version 2.4 4)
    • Hides all flags on the item
    • Includes enchants and attribute-based flags.
    • Defaults to false.
  • KnockbackResistance: [number]
    • Deprecated as of version 2.4 5)
    • Adds a chance to resist knockback from mobs.
    • Number between 0 and 1.
    • 0 = 0% 1= 100%
    • Can still be knocked back with 100% resistance by knockback enchantments, explosions, etc.
  • MovementSpeed: [数字]
    • Deprecated as of version 2.4 6)
    • Additional movement speed.
    • 0.01 = +1 % or 0.25 = +25%</spoiler>

示例

ClothSlippers:
  Id: 301
  Data: 0
  Display: '&fCloth Slippers'
  Lore:
  - ''
  - 'So Soft!'
  - ''
  Enchantments:
  - DURABILITY:1
  Options:
    Color: 200,200,200

添加了所有可能的选项:

dat_item_though:
  Id: banner
  Data: 4
  Display: '&c&lThe Banner&r'
  Lore:
  - ''
  - '&rIt<&sq>s the perfect stone.'
  - '&cNever question that.'
  - ''
  Amount: 8
  Options:
    Color: 200,200,200
    Damage: 100
    Health: 123
    FollowRange: 12
    KnockbackResistance: 1
    MovementSpeed: 0.05
    HideFlags: false
    Unbreakable: true
  Enchantments:
  - DURABILITY:1
  - ARROW_FIRE:10

常见物品

见 [常见物品] 注意: 当用作武器时,斧头的攻击速度降低两倍。使用DURABILITY附魔抵消或平衡更多的伤害等... 木棒、火焰棒和箭是良好的武器,但是你必须在设置里启用它们。

附魔

附魔属性用于给 MythicMobs 物品增加附魔。任何附魔都可用,并且可以超过 Minecraft 的等级限制。有些互相冲突的附魔同时使用可能无效。

格式

internal_itemname:
  Id: <item>
  Enchantments:
  - <enchantment>:<level>
  - <enchantment>:<level>
  - ...

<enchantment> 附魔种类

<level> 附魔的等级

lethal_pickaxe:
  Id: diamond_pickaxe
  Enchantments:
  - DAMAGE_ALL:3
  - KNOCKBACK:1

附魔概述

名称 概述 ID(PC) MythicMobs ID 最高等级 权重
水下速掘 加快水下挖掘速度 6 WATER_WORKER I 2
节肢杀手 对节肢生物造成额外伤害 18 DAMAGE_ARTHROPODS V 5
爆炸保护 减少爆炸伤害 3 PROTECTION_EXPLOSIONS IV 2
绑定诅咒 物品无法被丢弃 10 BINDING_CURSE I 1
消失诅咒 物品会在玩家死亡时消失 71 VANISHING_CURSE I 1
深海探索者 增加水下行走速度 8 DEPTH_STRIDER III 2
效率 加快挖掘速度 32 DIG_SPEED V 10
摔落保护 减少跌落伤害 2 PROTECTION_FALL IV 5
火焰附加 使目标着火 20 FIRE_ASPECT II 2
火焰保护 减少火焰伤害 1 PROTECTION_FIRE IV 5
火矢 箭矢使目标着火 50 ARROW_FIRE I 2
时运 增加方块掉落 35 LOOT_BONUS_BLOCKS III 2
冰霜行者 允许水上行走 9 FROST_WALKER II 2
无限 射箭不会消耗普通箭矢 51 ARROW_INFINITE I 1
击退 增加击退距离 19 KNOCKBACK II 5
抢夺 生物能掉落更多物品 21 LOOT_BONUS_MOBS III 2
海之眷顾 提高钓鱼时获得宝藏的几率 61 23 III 2
饵钓 提高鱼咬钩的速度 62 24 III 2
经验修补 用经验修补工具的耐久度 70 MENDING I 2
力量 增加弓箭伤害 48 ARROW_DAMAGE V 10
弹射物保护 减少来源于弹射物的伤害 4 PROTECTION_PROJECTILE IV 5
保护 减少多数的伤害 0 PROTECTION_ENVIRONMENTAL IV 10
冲击 增加弓箭的击退距离 49 ARROW_KNOCKBACK II 2
水下呼吸 延长水下呼吸时间 5 OXYGEN III 2
锋利 增加近战攻击伤害 16 DAMAGE_ALL V 10
精准采集 被开采的方块掉落本身 33 SILK_TOUCH I 1
亡灵杀手 对亡灵生物造成额外伤害 17 DAMAGE_UNDEAD V 5
横扫之刃 增加横扫攻击伤害 22 SWEEPING_EDGE III 2
荆棘 给予攻击者伤害 7 THORNS III 1
耐久 增加物品的有效耐久度 34 DURABILITY III 5

药水效果

药水效果选项

这个属性用于药水物品上(说不定食物也可以),格式很简单:

internal_itemname:
  Id: potion
  PotionEffects:
  - <type> <duration> <level>

<type> 药水种类 <duration> 药水时间 <level> 药水等级,最低为“0”

药水效果

这些是 MythicMobs 提供的全部的药水效果,可以在药水物品和药水机制使用。

药水种类 描述
ABSORPTION 增加临时的最大生命
BLINDNESS 致盲一个生物
CONFUSION 扭曲客户端视角
DAMAGE_RESISTANCE 减少生物收到的伤害
FAST_DIGGING 增加挖掘速度
FIRE_RESISTANCE 阻止火焰伤害
GLOWING 使生物发光
HARM 伤害一个生物
HEAL 治疗一个生物
HEALTH_BOOST 增加生物最大生命
HUNGER 增加饥饿
INCREASE_DAMAGE 增加伤害
INVISIBILITY 使生物隐形
JUMP 增加跳跃高度
LEVITATION 使生物漂浮
LUCK 增加生物幸运值
NIGHT_VISION 允许生物夜视
POISON 持续对生物造成伤害
REGENERATION 恢复生命
SATURATION 持续增加饱食度
SLOW 减少移动速度
SLOW_DIGGING 减慢挖掘速度
SPEED 增加移动速度
UNLUCK 增加生物的背运
WATER_BREATHING 允许生物水下呼吸
WEAKNESS 减少伤害
WITHER 持续对生物造成伤害,并把生命返还给射击者

内置的药水效果

这些是原版 Minecraft 的药水效果,以及一些常用的数据。 <spoiler>{| class="wikitable" |- | 普通数据 || 喷溅型数据 || 加强型数据 || 药水 || 效果 |- | 8193 || 16385 || || Regeneration Potion (0:45) || Heals 18 over 45 seconds |- | 8194 || 16386 || || Swiftness Potion (3:00) || Increase movement speed by 20% for 3 mins |- | 8195 || 16387 || || Fire Resistance Potion (3:00) || Immunity to fire for 3 minutes |- | 8196 || 16388 || || Poison Potion (0:45) || 36 damage over 45 seconds |- | 8197 || 16389 || || Healing Potion || Heals 4 instantly |- | 8198 || 16390 || || Night Vision Potion (3:00) || Night vision for 3 minutes |- | 8200 || 16392 || || Weakness Potion (1:30) || Reduced melee damage by 50% for 1 minute 30 seconds |- | 8201 || 16393 || || Strength Potion (3:00) || Increase melee damage by 130% for 3 minutes |- | 8202 || 16394 || || Slowness Potion (1:30) || Slows by 15% + 15% per tier for 1 minute 30 seconds |- | 8204 || 16396 || || Harming Potion || Does 6 damage |- | 8205 || 16397 || || Water Breathing Potion (3:00) || Water breathing for 3 minutes |- | 8206 || 16398 || || Invisibility Potion (3:00) || Invisibility for 3 minutes |- | 8225 || 16417 || || Regeneration Potion II (0:22) || Heals 18 over 22.5 seconds |- | 8226 || 16418 || || Swiftness Potion II (1:30) || Increase movement speed by 40% for 1 minute 30 seconds |- | 8228 || 16420 || || Poison Potion II (0:22) || Does 38 damage over 22.5 seconds |- | 8229 || 16421 || || Healing Potion II || Heals 8 instantly plus 4 per tier |- | 8233 || 16425 || || Strength Potion II (1:30) || Increase melee damage by 260% + 130% per tier for 1 minute 30 seconds |- | 8236 || 16428 || || Harming Potion II || Does 12 damage plus 6 damage per tier |- | 8257 || 16449 || || Regeneration Potion (2:00) || Heals 48 over 2 minutes |- | 8258 || 16450 || || Swiftness Potion (8:00) || Increase movement speed by 20% for 8 minutes |- | 8259 || 16451 || || Fire Resistance Potion (8:00) || Immunity to fire for 8 minutes |- | 8260 || 16452 || || Poison Potion (2:00) || Does 96 damage over 2 minutes |- | 8262 || 16454 || || Night Vision Potion (8:00) || Night vision for 8 minutes |- | 8264 || 16456 || || Weakness Potion (4:00) || Reduces melee damage by 50% for 4 minutes |- | 8265 || 16457 || || Strength Potion (8:00) || Increase melee damage by 130% for 8 minutes |- | 8266 || 16458 || || Slowness Potion (4:00) || Slows by 15% + 15% per tier for 4 minutes |- | 8269 || 16461 || || Water Breathing Potion (8:00) || Water breathing for 8 minutes |- | 8270 || 16462 || || Invisibility Potion (8:00) || Invisibility for 8 minutes |- | 8289 || 16481 || || Regeneration Potion II (1:00) || Heals 48 over 1 minute |- | 8290 || 16482 || || Swiftness Potion II (4:00) || Increased movement speed by 40% for 4 minutes |- | 8292 || 16484 || || Poison Potion II (1:00) || Does ~101 damage over a minute |- | 8297 || 16489 || || Strength Potion II (4:00) || Increase melee damage by 260% + 130% per tier for 4 minutes |}</spoiler>

旗帜条纹

你可以使用以下格式在 MythicMobs 中制作复杂的旗帜条纹。MythicMobs 对可以使用的条纹数量没有任何限制,你可以超过 Minecraft 设置的 6 层限制。然而,超过6层可能会导致异常行为和/或卡顿。 旗帜条纹也适用于Minecraft 1.9 中的盾牌。

格式

Banner:
  Id: <banner/shield>
  Options:
    Color: <BASE COLOR>
  BannerLayers:
  - <color> <pattern>
  - <color> <pattern>

模式

BASE SQUARE_BOTTOM_LEFT
BORDER SQUARE_BOTTOM_RIGHT
CIRCLE_MIDDLE SQUARE_TOP_LEFT
CREEPER SQUARE_TOP_RIGHT
CROSS STRAIGHT_CROSS
CURLY_BORDER STRIPE_BOTTOM
DIAGONAL_LEFT STRIPE_CENTER
DIAGONAL_LEFT_MIRROR STRIPE_DOWNLEFT
DIAGONAL_RIGHT STRIPE_DOWNRIGHT
DIAGONAL_RIGHT_MIRROR STRIPE_LEFT
FLOWER STRIPE_MIDDLE
GRADIENT STRIPE_RIGHT
GRADIENT_UP STRIPE_SMALL
HALF_HORIZONTAL STRIPE_TOP
HALF_HORIZONTAL_MIRROR TRIANGLE_BOTTOM
HALF_VERTICAL TRIANGLE_TOP
HALF_VERTICAL_MIRROR TRIANGLES_BOTTOM
MOJANG TRIANGLES_TOP
RHOMBUS_MIDDLE
SKULL

示例

testbanner:
  Id: banner
  Display: '&rBanner of Test'
  Options:
    Color: 0,0,0
  BannerLayers:
  - GRAY DIAGONAL_RIGHT
  - RED GRADIENT
  - YELLOW GRADIENT_UP
  - WHITE BORDER
  - BLACK SKULL
  - RED SKULL
  - ORANGE SKULL
  - YELLOW SKULLSkeletonKingBanner:
  Id: banner
  Display: '&4Skeleton King<&sq>s Banner'
  Options:
    Color: RED
  BannerLayers:
  - WHITE CURLY_BORDER
  - WHITE STRIPE_CENTER
  - BLACK STRIPE_BOTTOM
  - WHITE CREEPER
  - YELLOW STRIPE_TOP
  - BLACK TRIANGLES_TOP

掉落(Drops)

概览

  • 给生物添加自定义掉落项
  • 可以是原版物品,MM定义的物品,经验球,能读取的其他插件物品,或者其自定义的掉落表(DropsTables)配合条件使用

掉落标签可以添加到你的自定义生物,允许它们在死亡后掉落特定的物品。在 MythicMobs 里你有三种方式使用自定义掉落。

Drops

Drops 是实现自定义掉落的最简单的方法:

internal_mobname:
  Type: <mobtype>
  Drops:
  - <item/exp/droptable> <amount> <chance>
  - <item/exp/droptable> <amount> <chance>
  - ...

<item/exp/droptable> 可以是 MythicMobs 的物品,也可以是原版物品,或者是插件的掉落表。

  • <amount>
    • 掉落物品的数量,可以是范围。
  • <chance>
    • 特定物品掉落的几率,必须是介于 0 - 1 之间的小数。
    • 在 2.5 以及更高的版本可以使用低于 0.1 的几率。

特殊掉落

  • champions-exp
    • 掉落 Champions 插件的经验
  • skillapi-exp
    • 掉落 SkillAPI 插件的经验
  • heroesexp
    • 掉落 Heroes 插件的经验
  • mcmmo-exp
    • 掉落 MCMMO 插件的经验
  • exp
    • 掉落原版经验
  • money
    • 掉落 Vault 账户的金钱
  • mythicdrop <item>
    • 掉落 MythicDrops 的物品
  • phatloot <item>
    • 掉落 PhatLoot 插件的掉落物

DropsPerLevel

每级的掉落跟普通掉落一样,但是会以生物的等级为基础

internal_mobname:
  Type: <mobtype>
  DropsPerLevel:
  - <item/exp/droptable> <amount> <chance>
  - ...

每级掉落意味着插件将会尝试掉落更多次,比如你有一个 5 级生物,使用了以下设置:

some_mob:
  Type: shulker
  DropsPerLevel:
  - diamond 3 1
  - gold_ingot 2 0.5

那么就一定会掉落 15 个钻石,并且有几率掉落最多 10 个铁锭。 查看等级调整值(LevelModifiers) 掉落表掉落表存储于 /MythicMobs/DropTables. 使用掉落表有很多优势,比如你可以配置条件,并让很多个生物共享使用,而不用创建一份副本。掉落表可以同时包含普通掉落和等级递增掉落。

internal_mobname:
  Type: <mobtype>
  Drops:
  - <internal_droptablename>

注意,你在使用掉落表时不能添加 <amount> 和 <chance>

internal_droptablename: #lets you specify exactly how many items will drop from this table
  TotalItems: <amount> #defaults to TotalItems' value
  MinItems: <amount> #defaults to TotalItems' value
  MaxItems: <amount> 
  Conditions:
  - condition 1
  - condition 2
  - ...
  Drops:
  - <item/exp/droptable> <amount> <chance>
  - ...
  DropsPerLevel:
  - <item/exp/droptable> <amount> <chance>
  - ...

就是这些了!

示例

这个生物总会掉落一大堆的经验,和一些生鱼。

snow_loving_zombie:
  Type: zombie
  Health: 100
  Equipment:
  - snowsword:0
  Drops:
  - exp 75-125 1
  - rare_snowsword_droptable

这将在 ICE_PLAINS 群系里,并且玩家在20格以内时击杀掉落 snowsword,几率为 5%

rare_snowsword_droptable:
  Conditions:
  - inbiome ICE_PLAINS
  - playerwithin 20
  Drops:
  - snowsword 1 0.05

刷怪点(Spawners)

普通刷怪点

刷怪点允许你设置世界中你的自定义怪物生成的坐标,其中有很多有用的选项、条件和内置的计时器、冷却和预热系统。 你可以在游戏内直接使用命令来创建一个刷怪点,也可以在配置文件的 /MythicMobs/Spawners 处配置。注意,一旦配置文件中的刷怪点被加载,它将只能通过命令编辑。如果你需要编辑一个加载的刷怪点的配置文件,你需要关闭服务器。

刷怪点的优点

  • 不需要开启自然生成生物就能工作
  • 允许指定详细的生成参数,比如生成多少、何时生成,和随机刷怪点一样都可以使用条件
  • 支持计时器和其他的特性

刷怪点的缺点

  • 设置它们需要大量的时间
  • 如果没有正确规划,将会很难管理
  • 生物需要正确设置 FollowRange 和 Despawn 等选项,否则可能造成服务器问题(卡顿、内存溢出)

选项

  • checkforplayers <true/false>:
    • 必须有玩家在附近才激活使用
    • 为了性能,默认为 true
  • cooldown <number>:
    • 多久重新尝试生成|冷却
    • /mm s set Ruins_Skeleton1 cooldown 30 (设置冷却为 30 秒)
    • 预热> 生物生成> 生物死亡> 冷却> 回到预热
    • 为了防止混淆,推荐只使用预热或冷却中的一个,而不是同时使用,因为任意一个基本可以应对所有的情况了
  • group <group name>
    • 设置生成的组名
    • 对于大型的设置,比如一个地牢,你可以将所有刷怪点分在同一组内,这样在游戏中就可以使用2到3个命令(而不是20到30个命令)来更改刷怪点
    • /mm s set Ruins_Skeleton1 group Ruins (将刷怪点放入 Ruins 组)
    • 使用命令:
      • /mm s set g:Ruins warmup 300
      • 设置所有 Ruins 组的刷怪点的预热时间为 300 秒
  • healonleash <true/false>
    • 当生物回到刷怪点,是否恢复所有生命
    • /mm s set Ruins_Skeleton1 healonleash true (生物被拉回刷怪点时会恢复生命)
  • leashrange <number>:
    • 生物强制传送回刷怪点的最大游荡/攻击距离
    • /mm s set Ruins_Skeleton1 leashrange 15 (设置拉回距离 15 格)
  • maxmobs <number>:
    • 当前世界和刷怪点最大的生成的生物,应该比 mobsperspawn 设置的相等或更大
    • /mm s set Ruins_Skeleton1 maxmobs 2 ((设置刷怪点最大允许 2 个生物)
  • moblevel <number>:
    • 设置生成的生物的等级,生物必须有等级设置。
    • /mm s set Ruins_Skeleton1 moblevel 1-5 (设置生成的生物等级在 1-5 之间)
  • mobsperspawn <number>:
    • 设置每次生成的最大的生物数量,被maxmobs 选项限制
    • /mm s set Ruins_Skeleton1 mobsperspawn 2 (设置每次生成 2 个生物)
  • mobtype <mobtype>:
    • 设置生成的生物种类,可为原版或 MythicMobs 的生物
    • /mm s set Ruins_Skeleton1 mobtype GreaterSkeleton (将生成类型更改为 GreaterSkeleton)
  • radius <number>:
    • 刷怪点的生成范围,设置为 0 会生成在刷怪点上,设置为 5 会生成在 5 格内的任意位置
    • 当使用较大的半径时,会显得更加随机
    • /mm s set Ruins_Skeleton1 radius 5 (设置生成范围为 5)
  • showflames <true/false>:
    • 设置是否在刷怪点旁显示火焰,适合 Debug
    • /mm s set Ruins_Skeleton1 showflames true (在刷怪点开启火焰粒子)
  • warmup <number>:
    • 当上个生物被杀死时,多久以后尝试生成下一个生物】
    • /mm s set Ruins_Skeleton1 warmup 300 (设置预热为 5 分钟)

随机刷怪点

随机生物刷怪点让你完全控制世界的生物生成。你可以完全自定义何处、何时、如何生成多少生物,并通过条件精确控制生成。

重要的不同

这些设置对于区分一下的选项很重要:

  • Action: REPLACE
    • 替换用于替换原版 Minecraft 自己的生成器生成的生物,这将控制所有生物的生成,也就是说,如果默认的生成被关闭(如游戏规则 doMobSpawn 关闭),那么这个设置将不起任何作用
  • Action: ADD
    • 添加将会使用 MythicMobs 的特殊的生成算法,这将像 Minecraft 一样在玩家附近随机生成生物。但是这些生成点没有任何条件限制,如亮度等。可以在 MythicMobs 的配置文件 config,yml 中详细配置这些生成点。
  • Action: DENY
    • 将到来的特性
  • Action: SCALE
    • 将到来的特性

选项

所有可用的设置。

全局随机生成设置

示例:

my_favorite_randomspawn:
  Action: ADD
  Type: cute_zombie
  Level: 2
  Chance: 0.01
  Priority: 10
  UseWorldScaling: false
  Worlds: my_overworld,my_overworld_nether
  • Action: [action]
    • 生成的方法
    • 默认为 “ADD”
      • Action: ADD
      • Action: REPLACE
  • Type: [mobtypes]
    • 设置生物生成的种类
    • 可以使用数组包含多种生物
      • Type: SuperZombie
      • Type: SkeletalMage,WitchBoss
  • Level: [number]
    • 生成的生物的等级
    • 必须是固定的数字,不能使用范围
    • 可被世界范围生成选项覆盖
    • 默认为 1
      • Level: 7
  • Chance: [number]
    • 生成生物的几率
    • 默认为 1
      • Chance: 0.025
  • Priority: [number]
    • 在多个生物生成时的优先度设置
    • 更高的优先度意味着生成多个生物时更容易被选中
    • 默认为 1
      • Priority: 128
  • UseWorldScaling: [true/false]
    • 生物的等级是否被世界范围影响
    • 默认为 true
  • Conditions:
    • 一个用于限制生物生成的条件的列表
    • 如果条件不足/未达到,生成将会失败
    • 详见[技能|条件]
· Conditions:
· - condition 1
· - condition 2
· …
  • Worlds: [worldnames]
    • 随机生成的世界
    • 可以是数组,多个世界
    • 名称与 Minecraft 内的名称相同
      • Worlds: world
      • Worlds: world,world_the_end,world_nether
      • Worlds: jays_overworld
  • Biomes: [biomes]
    • 生物生成的生物群系
  • Reason: [reason]
    • Minecraft 生物生成的原因
    • 可为数组,多个条件
    • 如果有此选项,那么只有在条件匹配时才生成生物(用于REPLACE方法)
    • 详见 Javadocs CreatureSpawnEvent.SpawnReason
      • Reason: NATURAL
    • (译者注:用于防止玩家使用刷怪蛋生成的生物被替换为MythicMobs)

config.yml 中的更多设置 这些设置,位于 MythicMobs config.yml 文件,用于设置生成点如何生成,如果你从之前的版本升级至 MythicMobs 2.3,你必须重新生成你的配置文件。使用常识来配置这些文件,因为任何一个选项的错误都可能导致服务器卡顿。

RandomSpawning:
    GenerateSpawnPoints: true
    MaxMobsPerChunk: 100
    SpawnRadiusPerPlayer: 64
    SpawnRadiusPerPlayerY: 32
    DespawnLazyRandomMobs: true
    PointsPerSecond:
      Land: 10
      Air: 1
      Sea: 0
      Lava: 0
      Ground: 1

示例

创建随机刷怪点

版本更新日志

<spoiler>4.1.0

新特性: HealthBars

现在mm添加支持全息显示在生物头上的生命条! 使用这一特性很简单.

Mob:

 Type: SPIDER
 Display: 'HealthBar Spider'
 HealthBars:
   Enabled: true

这一特性需要 Holograms插件: https://www.spigotmc.org/resources/holograms.4924/

新特性: Nameplates

Nameplates allow you to extend the nameplates of Player-disguise mobs, which are normally limited to 16 characters. To use this, simply have Holograms installed and then leave out the “Player” field in your disguise (skin is still required!). If you don't specify the player field, it will use the Display field instead using a custom nameplate.

Monkey:

 Type: skeleton
 Display: "this display name is too long for players normally"
 Disguise:
   Type: player
   Skin: Kurdie

This feature requires LibsDisguises and the Holograms plugin: https://www.spigotmc.org/resources/holograms.4924/

General

Added Mobs.DespawnByDefault option to config.yml Added Mobs.PreventOtherDropsByDefault option to config.yml Mobs

EnderDragon

Fixed the custom EnderDragon's AI on 1.9+ Mechanics

NEW: ConsumeHeldItem

Consumes # of the item the player is holding in their hand. Can be used to make consumable items in the Artifacts add-on.

consumeHeldItem{amount=1} @trigger NEW: Decapitate

Drops the target player's head. Only works on players (for now).

NEW: GiveCurrency

Gives the target player X Vault currency. Requires Vault and an economy plugin.

giveCurrency{amount=#} @target NEW: Glow Effect

Causes the target to get the Glow effect with a certain color for # of ticks. Requires GlowAPI.

effect:glow{color=RED;duration=1000} NEW: PercentDamage

Deals damage equal to a percent of the player's max health, where 1 is 100%. Has the same options as the Damage mechanic.

percentDamage{percent=0.5} Particle Effects

Added directional and directionReversed options to Particles Causes certain particles to move at # speed Direction is based on the origin's location to the target's location. SetOwner

Now grants wolf ownership to target if caster is a wolf Fixed Mechanics

Made ShootFireball,ShootPotion,ShootSkull usable w/Location targeters Fixed Fixed forwardOffset on Projectiles Conditions

NEW: Mounted

NEW: MythicMobType

NEW: HasCurrency

Returns true if the player has X vault currency. Requires Vault and an economy plugin.

hascurrency <amount> NEW: HasInventorySpace

NEW: HasPermission

Returns true if the player has X permission.

haspermission <permission> NEW: TCBiome

Returns true if the location matches the specified TerrainControl biome. Can be matched loosely or strictly (loosely by default).

tcbiome Forest (Matches any TerrainControl biome whose name contains FOREST) tcbiome{biome=TropicalDesert;strict=true} Would match only TropicalDesert, not TropicalDesertBorder Fixed Conditions

Fixed conditions that did not port over properly in 4.0, including:

PlayerWithin PlayerNotWithin TargetWithin TargetNotWithin Random Spawning

Random Spawns now use the new condition system, which should result in a significant performance increase for lower-end servers.

Compatibility

Holograms

Required for the new HealthBar and Nameplate features Libs' Disguises

Added missing Disguises:

Llama with options: Disguise.HasSaddle: true/false Disguise.CarryingChest: true/false Disguise.Grazing: true/false PolarBear Shulker Shulker_Bullet Vex TerrainControl

Required for the TCBiome condition, documented above. Vault

Required for new Currency-based mechanics and conditions. Bugs / Other

Fixed mythicmobs.admin not granting access to all perms Fixed mythicmobs.command.* not working for command perms Fixed BossBar not going away when a mob despawns naturally Fixed item amounts not working correctly Fixed several errors with commands Fixed chance not working properly in Drop Tables Fixed NPE in threat tables Fixed egg get command not accepting amounts Fixed mobs refusing to die if killed immediately after spawning Fixed NPEs with entity manager related to multi-world support Fixed server crashes related to high velocities with velocity skills Fixed various skill mechanic NPEs Removed spammy debugging messages with repeating skills 4.0.1

Mechanics

Projectile

Added accuracy, horizontalnoise, verticalnoise to projectile mechanic Conditions

NEW: ItemRecharging Condition

Evaluates if the player's item is on recharge from attacking Bug Fixes / Other

Fixed some issues with spawner behavior Fixed several commands not working in the console Fixed several other issues with commands Fixed ItemSpray effect not working with vanilla items Fixed variables and random numbers not parsing in item lore Fixed @TargetLocation not working as expected for players 4.0.0

4.0 Condition-System Revamp

The condition system of MythicMobs has undertaken some pretty nifty changes and we hope you guys will find it as fascinating and useful as we do! We have been putting quite some effort into quasi “remaking” it and are very happy with the newly found powers which it provides.

None of the conditions you were previously able to use with MythicMobs are gone - they are in-fact all still there and we even added a bunch of new ones. The most important part about this change is how the system now works and the new possibilities it offers.

Old conditions were very basic and only executed on the mob and/or the mob's target. The new system now works according to one of three ways: on the skill's caster, on the skill's target, or on the entity that triggered the skill. Conditions are now also divided into Entity conditions and Location conditions, similar to skill mechanics.

NOTE: You can still use old conditions by instead using “LegacyConditions:” For example: The new version of targetlineinsight would be:

 TargetConditions:
 - lineofsight true

The old version can still be used like this:

 LegacyConditions:
 - targetlineofsight true

Read on for further details on how to use each type of condition.

Format

Conditions now have an updated format. Most old conditions should work the way they did, but conditions can now optionally include multiple options and actions.

The new format(s) work like so:

Conditions: - condition [variable] - condition [variable] [action] - condition [variable] [action] [action_variable] - condition{variable1=value;variable2=value} [action] [action_variable] The old format will still work in most cases and the majority of skills should not break. However, this also allows for more advanced conditions that can evaluate multiple variables.

All of these are valid examples of the new format:

Conditions: - day required - stance defensive power 0.5 - stance{stance=defensive} power 0.5 - score{objective=test;value=>20} cancel - haspotioneffect{type=POISON;level=>0;duration=0 to 100} true Conditions

The “Conditions” field on skills now specifically always evaluates the condition against the caster. The condition failing means that the skill will not trigger.

TargetConditions

The “TargetConditions” field on skills lets you run a skill only on targets that meet the conditions. Any targets inherited by the skill will be filtered according to the conditions, and targets that do not meet them will be removed from the skill's target list.

Example:

  1. Mob

TestMob:

 Type: ZOMBIE
 Skills:
 - skill{s=Flare} @PlayersInRadius{r=20}
  1. Skill

Flare:

 TargetConditions:
 - lineofsight true
 Skills:
 - ignite{d=10}

The skill in this example would only ignite targets that were in the mob's line of sight.

TriggerConditions

The “TriggerConditions” field on skills specifically always evaluates the condition against the entity that triggered the skill. The condition failing means that the skill will not trigger.

Skill:

 TriggerConditions:
 - entitytype ZOMBIE true
 Skills:
 ...

This example skill would not cast unless the triggering entity was a zombie.

Condition Actions

Condition Actions are a new feature that allow you to do additional things based off of conditions. Before conditions were always a “requirement”, but now you can specify other meanings for them.

Here is a list of actions being added:

required (or true) (default) - The condition is required for the skill to run. cancel (or false) - The skill will not run if this condition is met. power [power multiplier] - Modifies the skill's power (e.i. power 2.0 would double the skill's power) cast [skill] - NOT YET IMPLEMENTED Casts an additional skill if the condition is met. castinstead [skill] - NOT YET IMPLEMENTED Casts a different skill instead if the condition is met. Conditions

NEW: Altitude Condition

  • Detects the targets height above the ground.
  • Can be a single number, a range (20-40), or >10 <5, etc.

NEW: Crouching Condition

  • Detects if the entity (must be a player) is crouching.

NEW: Distance Condition

  • Checks the distance between the target and the casting entity.

NEW: EntityType Condition

  • Detects if the target matches the entitytype.

Example:

 - entitytype PLAYER true

NEW: FallSpeed Condition

  • Detects falling speed of the mob. Can be positive or negative. (For jumping.)
  • Can be a single number, a range (20-40), or >10 <5, etc. Example:

- fallspeed{speed=>0.7845} true NEW: Gliding Condition

  • Checks target to see if it is gliding with elytra.

NEW: HasPotionEffect Condition

  • Checks the target to see if it has the potion effect.
  • You can specify a number of options, including the level of the effect, and the duration.

Example:

- haspotioneffect{type=POISON;level=>1;duration=0 to 100} true This will only work if the target has the poison effect at a level of 2 or above, and a duration of 0 to 100 ticks. NEW: HasTag Condition

  • Checks target for scoreboard tags. Can be added using Add Tag mechanic.

Example:

 - hastag{tag=Test} true

NEW: LineOfSight Condition

  • Checks if the entity can see its target/if there are no blocks in the way.

NEW: OnGround Condition

  • Checks if the caster is on the ground. Pretty self-explanatory.

NEW: Score Condition

  • Replaces the old targetscore and mobscore mechanics.
  • Can be a single number, a range (20-40), or >10 <5, etc.

Example:

- score{objective=test;v=>20} true Only will run when the objective “test” has a value of more than 20 for the target. Mobs

Options

NEW: Interactable: [true/false]

Skills

Mechanics

NEW: AddTag

Adds a scoreboard tag to a target entity.

NEW: CancelEvent

CancelEvent will cancel whatever event triggered the skill.

This mechanic has several important requirements in order to execute properly:

The mechanic (or the first skill that leads to it) must be run with sync=true in the mob's skill list. There can be no “delays” leading to its execution (no delay mechanics, and nothing else with delays such as projectiles) It only works with specific triggers that make sense (works with onDamaged, onAttack, etc but not onDeath!) NEW: Lunge

Accelerates the caster towards the target.

NEW: RemoveTag

Removes a scoreboard tag from a target entity.

NEW: SetHealth

NEW: SetMaxHealth

NEW: SetOwner

NEW: SudoSkill

The SudoSkill mechanic allows you to force the targeted entity to “cast” a MythicMobs skill. This skill will inherit the previous targets in the stack from a previous parent skill, and is even able to force players to use MythicMobs skills.

Projectile

fromOrigin now defaults to false. Shoot

Added startYoffset attribute. Targeters

Added owner to targets. Target filters

Added samefaction to target filters. API Update

The API has been changed significantly in this update, and comes with many new improvements. Plugins that used MythicMobs prior to 4.0 will need to be recompiled using the new API, though.

Information about the new API will be expanded on in the future.

JavaDocs

JavaDocs for the API can now be found at http://www.mythicmobs.net/javadocs

Custom Mechanics

Developers can now add custom mechanics to MythicMobs at runtime using the MythicMechanicLoadEvent. Examples will be available on the manual and in the API forum.

Custom Conditions

Developers can now add custom mechanics to MythicMobs at runtime using the MythicConditionLoadEvent. Examples will be available on the manual and in the API forum.

New API Events

MythicConditionLoadEvent - Called on startup/reload for each custom condition referenced in the plugin. MythicMechanicLoadEvent - Called on startup/reload for each custom condition referenced in the plugin. MythicReloadedEvent - Called after MythicMobs finishes reloading Compatibility

MiniaturePets

Fixed several issues with MPets compatibility Bug Fixes / Other

Fixed issues with 1.11 support Fixed mob eggs Fixed various bugs with spawners Many, many other bug fixes</spoiler>

教程

入门

使用 MythicMobs 创建自己的生物甚至是Boss是很简单的,这些是你需要了解的:

  • 如何配置 YAML 文件
  • 你的文件到哪里去了
  • MythicMobs 拥有的设置选项

YAML-文件

YAML 格式的文件常用于保存配置。这些文件易于读写,并且加载的很快。绝大多数的 Minecraft 插件都使用 YAML 文件来作为他们的配置文件,MythicMobs 也不例外。

如果你想要深入了解YAML是什么,那么请前往 YAML Wiki 条目([英文])([中文,需过墙])

然而更多关于 YAML 的知识对于配置 MythicMobs 的生物来说,是不需要的。

但是使用 YAML 时有一点需要注意:不要使用 Tab 键。 编辑 YAML 文件的最好的软件是 Notepad++

你的文件到哪里去了

在加载 MythicMobs 到你的服务器之后,它的文件夹将会像大部分 Minecraft 插件一样,在 /plugins 文件夹内,你甚至会找到很多的子文件夹。

将配置文件放入正确的文件夹始终是非常重要的。

错误的放置配置文件将会被插件读取为其他东西,比如你讲生物配置放进了技能文件夹,插件就将试图将它读取为生物的技能,当然这会报错并输出到你的服务器控制台。

记住:将文件放进正确的文件夹,否则你的创造物将不会运行。

ExampleXXX.yml 这些示例文件无法被删除,它们将会在下次重启时重新生成,如果你不想加载里面的配置,只需要删除里面的内容。

MythicMobs 设置

确实,MythicMobs 有很多的配置可供修改,但是你不应该就这样去做了,你修改的东西越多,就越容易犯错误,也就会最终变得困惑不解、不知所措,被水淹没。说到这里,我建议你做几件事,这将让你更加得心应手:

创建一个本地服务器

在你自己的电脑上创建一个 Spigot 服务器,这是创建和测试最便捷的方法了。只需要安装服务器,创建一个超平坦世界。接着载入 MythicMobs 和其他你想测试的插件,这样做有以下优势:

  • 你可以使用 Tab 快速切换 Minecraft 和 Notepad++
  • 安全的测试环境
  • 崩溃不打扰其他人
  • 速度快捷

如果你的电脑足够久远,并且你担心性能什么的,不用担心,Spigot 足够轻量,并且如果你的电脑可以胜任原版的单人游戏,那么我想你的电脑也可以开着 Spigot 玩服务器。(相信我,我用着一颗上古双核处理器,但是表现令人尖叫)

选择正确的版本

突然有了问题?请确保你使用了对应你版本的 MythicMobs,兼容列表也可以在下载页面找到。

更改原版生物

MythicMobs 不止能创建自定义生物,它也可以改变原版 Minecraft 生成的生物。实现这个太简单了,你需要做的只是将想要改变的生物写入自动生成的 VanillaMobs.yml 文件,位于/MythicMobs/Mobs 文件夹。接着你就可以做你想做的了。

一般来说,覆盖原版生物可以使用整个 MythicMobs 的技能和选项。如果你在某个地方跌倒了,请确认你使用了正确的格式并爬起来,如果爬不起来,那么请到我们的 Bug提交论坛 寻求帮助!

完全移除一个原版生物(知道你讨厌苦力怕)

让我们轻松地开始,你可能在寻找这个:如何阻止一个特定的生物生成。

我们猜你狠苦力怕入骨,而且你还想让他们见鬼去吧。第一件事我们要做的是找到苦力怕的正确种类代号,我们可以在这个页面(见生物|生物种类)找到正确的种类代号为... “CREEPER”。

VanillaMobs.yml

CREEPER:

由于一些显而易见的原因,确定一个生物种类不是必要的(难道不是吗2333)。剩下需要做的是添加一个移除机制到这个生物,这样当它出生时就会移除。

CREEPER:
  Skills:
  - remove @self ~onSpawn

就是这样!任何生成的苦力怕会马上删除! 如果你想阻止更多生物生成,那么你就无限重复上面的过程,就像这样:

CREEPER:
  Skills:
  - remove @self ~onSpawn
ENDERMAN:
  Skills:
  - remove @self ~onSpawn
ZOMBIE:
  Skills:
  - remove @self ~onSpawn
...

给生物添加5毛特效(可爱的僵尸)

僵尸没那么吓人是吧?或者你想让你的服务器的年龄限制下降一些?让我们给你的休闲小怪加上一些爱。第一步,找到生物种类,接着还是像这样:

VanillaMobs.yml:

ZOMBIE:

接着,我们要使用粒子机制(见技能|机制|粒子),选择我们想要的爱心粒子(“heart” <3),从粒子类型选择。

ZOMBIE:
  Skills:
  - effect:particles{particle=heart;amount=1;hs=0.1;vs=0.1;y=1.5} @self ~onTimer:20 0.25

然后又一次,我们成功了。显而易见,我们有了一个完全自定义的生物。这个例子将会生成一颗红心粒子,平均每 4 秒一颗。

更改生物选项(爬行的末影人)

你可以在原版生物上更改生物选项,让我们把服务器里的末影人变得更加可怕,同时也会丧失它们的基础能力。

ENDERMAN:
  Options:
    PreventTeleporting: true
  Skills:
  - potion{type=INVISIBILITY;duration=630720000;level=0} @self ~onSpawn

这个示例将会阻止你的服务器的末影人使用传送能力,注意这些设置只会对 Minecraft 生成的生物有效。你创建的其他自定义的生物(比如末影人)不会受到原版覆盖带来的影响。

并且,末影人在生成时会对自己使用药水机制,这样让他们隐形 63072000 ticks。这看起来可能像个随机数,然而这相当于游戏内的 1 年,为什么不呢?

但是末影人并不会永久隐形。你仍然会看到他们的眼睛,就像隐形的蜘蛛一样,末影人也是。

更改属性

这个该不用多说什么了吧,你可以更改原版覆盖生物的属性。就像这样:

ZOMBIE:
  Health: 200
  Damage: 20
  Armor: 5
  Options:
    MovementSpeed: 0.25
    FollowRange: 137
    Silent: true
  Skills:
  - jump{v=0.5} ~onTimer:140

创建随机刷怪点

示例 1:大多数普通生物,一个稀有的 Boss

场景

作为一个腐竹,你的玩家有一个采矿世界,用于挖掘各种矿物到他们的地皮。你想通过 MythicMobs 偶尔产生一些稀有的强大的生物而不是普通的生物,来让玩家的生存更加刺激。这个 Boss 可能掉落一些有趣的装备,或者掉落罕见的金块和钻石块。

要求

  1. 我们希望在地面上生成普通怪物,在地下生成 Boss
  2. 所有的其他的生物是自然的生物
  • 世界名: MiningWorld
  • 外界生成
    • Skeletal Fire Wizard (1% chance)
  • 内部生成
    • Skeletal Necromancer (1% chance)

步骤

  1. 我们使用 RandomSpawners 所以第一件事是确认当前世界开启了生物生成。
  • 如果你已经有了自然生成的野怪,那么你已经开启了。
  • 如果没有,请做这些事:打开 server.properties 文件,检查 Spawn-Monsters 为 true。重启你的服务器,下一步是使用 /gamerule doMobSpawning true 来保证规则执行。
  1. 接下来我们需要设置两个强大的Boss生物,使用MythicMobs手册的其他配置Boss。对于这个例子,很好地使用我们的 Skeletal Fire Wizard 生物为地面的 Boss, Skeletal Necromancer 为地下的Boss。这两个生物都可以在例子中找到。
  2. 创建 RandomMobSpawner 设置
SkeletalFireWizard:
  Mobname:SkeletalWizard_Fire
  Worlds: MiningWorld
  Chance: 0.01
  Priority: 1
  SpawnMethod: replace
  Conditions:
    - outside true

分析

  1. Minecraft 会决定在 MiningWorld 世界生成生物
  2. MythicMob 的 RandomSpawner 开始运行,决定生成的生物
  3. 如果生成器决定生成 SkeletalFireWizard,随机刷怪点会掷骰决定生成。
  4. 如果生成器决定生成 SkeletalNecromancer,随机刷怪点会掷骰决定生成。
  5. 如果都没有,那么生成普通小怪

示例 2:密集的冒险区(仅 MythicMobs)

场景

作为腐竹,你设置了一片用于冒险的区域,让玩家杀死 MythicMobs 并掉落稀有物品。你只想让 MythicMobs 生成,自然生物不能生成。这片区域附近包括了一片森林群系和下雪的群系。

要求

  1. 只生成 MythicMobs
  2. 应该有几率生成 Boss
  3. 如果没有生成 Boss,每个区域都应该随机生成一个生物
  • 冒险区域
    • 世界名: world
    • 区域: AdvRegion
  • 冒险区域生物
    • Abominable Snowman (1% 几率)
    • 森林群系生物
      • Large Spider (25% 几率)
      • Minor Earth Elemental (25% 几率)
      • Greater Earth Elemental (25% 几率)
      • Black Wolf (25% 几率,默认生成)
    • 雪地生物
      • Frost Spider (25% 几率)
      • Minor Frost Elemental (25% 几率)
      • Greater Frost Elemental (25% 几率)
      • White Wolf (25% 几率,默认生成)

步骤

我们使用 RandomSpawners 所以第一件事是确认当前世界开启了生物生成。

  • 如果你已经有了自然生成的野怪,那么你已经开启了。
  • 如果没有,请做这些事:打开 server.properties 文件,检查 Spawn-Monsters 为 true。重启你的服务器,下一步是使用 /gamerule doMobSpawning true 来保证规则执行。
  1. 下一步我们使用 WorldEdit 创建区域。选择一片区域,使用 /region define AdvRegion 定义一片区域。
  2. 设置 8 个普通生物和一个 Boss,仿照下方的教程
  3. 创建 RandomMobSpawner 配置:

整个冒险区域

AbominableSnowman:
  Mobname: AbominableSnowman
  Worlds: world
  Chance: 0.01
  Priority: 100
  SpawnMethod: replace
  Conditions:
    - inregion AdvRegion

仅森林区域

LargeSpider:
  Mobname: LargeSpider
  Worlds: world
  Chance: 0.25
  Priority: 2
  SpawnMethod: replace
  Conditions:
    - inregion AdvRegion
    - biome forest
MinorEarthElemental:
  Mobname: MinorEarthElemental
  Worlds: world
  Chance: 0.25
  Priority: 2
  SpawnMethod: replace
  Conditions:
    - inregion AdvRegion
    - biome forest
GreaterEarthElemental:
  Mobname: GreaterEarthElemental
  Worlds: world
  Chance: 0.25
  Priority: 2
  SpawnMethod: replace
  Conditions:
    - inregion AdvRegion
    - biome forest
BlackWolf:
  Mobname: BlackWolf
  Worlds: world
  Chance: 1
  Priority: 1
  SpawnMethod: replace
  Conditions:
    - inregion AdvRegion
    - biome forest

仅下雪区域

FrostSpider:
  Mobname: FrostSpider
  Worlds: world
  Chance: 0.25
  Priority: 2
  SpawnMethod: replace
  Conditions:
    - inregion AdvRegion
    - biome snowy
MinorFrostElemental:
  Mobname: MinorFrostElemental
  Worlds: world
  Chance: 0.25
  Priority: 2
  SpawnMethod: replace
  Conditions:
    - inregion AdvRegion
    - biome snowy
GreaterFrostElemental:
  Mobname: GreaterFrostElemental
  Worlds: world
  Chance: 0.25
  Priority: 2
  SpawnMethod: replace
  Conditions:
    - inregion AdvRegion
    - biome snowy
WhiteWolf:
  Mobname: WhiteWolf
  Worlds: world
  Chance: 1
  Priority: 1
  SpawnMethod: replace
  Conditions:
    - inregion AdvRegion
    - biome snowy

分析

这个设置更加复杂了,让我们看看发生了什么:

  1. Minecraft 会决定在 AdvRegion 区域生成生物
  2. MythicMob 的 RandomSpawner 开始工作,决定生成什么生物
  3. 所有的 RandomMobSpawners 会掷骰决定生成哪个生物
  4. 如果 AbominableSnowman (优先度 100) 轮到了,将会立刻生成而跳过下一个生物,因为它拥有最高的优先度
  5. 如果生物在森林中生成,那么只会考虑森林的突变种群
  6. 对于森林群系,将会掷优先度为 2 的生物(Large Spider 和 elementals)
  7. 任意掷到的生物都会生成
  8. 如果没有生物被掷到,那么就会生成 Black Wolf,因为它有最低的优先度,并且几率 100%
  9. 如果生物在雪地中生成,那么只会考虑雪地的突变种群
  10. 对于雪地群系,将会掷优先度为 2 的生物(Frost Spider 和 elementals)
  11. 任意掷到的生物都会生成
  12. 如果没有生物被掷到,那么就会生成 Whitek Wolf,因为它有最低的优先度,并且几率 100%
  13. 请注意,这种设置将会保证 MythicMobs 一定生成。许多人认为将几率设置为 100% 会让自然生物不会生成、这不是插件工作原理导致的,这是因为总是有很小的几率,所有生物都没有掷到,Minecraft 就会生成原版生物,这就是为什么要添加一个优先度最低而且几率为 100% 的生物在最后。

自定义生物 AI

MythicMobs 提供了自行编写生物AI的能力,这可以为生物添加一大堆高度自定义的设定,如生物怎样近战、攻击哪些目标、和其他的动作。

在以下的一节里,我将会提供一些例子来展示如何配置一些服务器常用的场景。

AI 目标 & 派系(AI Goals & AI Targets & Factions)

  • 自定义 AI 通常需要两个配置来工作,即 AI Goals,这告诉生物它需要怎样动作,和 AI Targets,这告诉生物怎样锁定目标。
  • 派系用于将生物分组,经常用于更高级的配置中。
  • 作为默认,每个 Minecraft 生物都有一些全局 AI 。举个例子,骷髅的 AI 告诉了骷髅应该锁定玩家为目标,并且应该使用弓和箭来攻击。为了使用 MythicMobs 重写骷髅的AI,我们要先清除它的 AI Goals,然后给他们添加新的目标。

让我们看看底下这个例子:

DecayingSkeleton:
  Mobtype: skeleton
  Display: '&aa decaying skeleton'
  Health: 15
  Damage: 1
  Faction: Undead
  AIGoalSelectors:
  - 0 clear
  - 1 arrowattack
  AITargetSelectors:
  - 0 clear
  - 1 players
  Options:
    FollowRange: 10
    MovementSpeed: 0.2
    PreventOtherDrops: true
  • 这个示例展示了 骷髅 AI 如何攻击目标。(剪掉了其他没啥用的东西,比如随机的走动)
    • AIGoalSelectors 项告诉了骷髅使用弓与箭攻击目标。
    • AITargetSelectors 项告诉了骷髅应该锁定玩家。
  • 如你所见,一般第一件事是 clear,这样你就有一个空的AI来编辑了,这是很重要的,如果不这样做,你的AI可能不会像预期那样工作
  • 现在我想让骷髅近战攻击其他的派系的生物,让我们看看这是怎么做到的:
DecayingSkeleton:
  Mobtype: skeleton
  Display: '&aa decaying skeleton'
  Health: 15
  Damage: 1
  Faction: Undead
  AIGoalSelectors:
  - 0 clear
  - 1 meleeattack
  AITargetSelectors:
  - 0 clear
  - 1 hurtbytarget
  - 2 otherfactionmonsters
  Equipment:
  - COS_WoodSword:0
  Options:
    FollowRange: 10
    MovementSpeed: 0.2
    PreventOtherDrops: true
  • 骷髅 AI 编写为攻击其他派系生物和攻击它的生物,作为附加,它会使用近战攻击而不是远程攻击。
    • AIGoalSelectors 项现在将目标设置为近战,需要注意的是你只有给骷髅装备剑才能使用近战攻击,装备弓的时候是不行的。但是这对僵尸是不需要的。
    • AITargetSelectors 项现在将玩家移除出了它的目标范围,所以现在骷髅不会主动攻击玩家。现在骷髅将会主动攻击其他派系的生物,也就是不在它自己的派系里的生物(比如不在Undead)。这里也有一个 hurtbytarget 的优先度为1,也就是说如果有生物主动攻击了它(比如玩家),骷髅就会反击。这个属性的优先级一般都很高,这样它们就不会被随意利用。如果没有这个,骷髅就会很容易的被击杀,而不会反击,这显然不是想要的结果。
  • 在接下来的两个小节里,我会展示经常使用的场景以及它们的 AI 配置,这也是你可能想要在服务器里实现的功能。

示例 1:守卫攻击附近怪物

在这个场景里,我们想在城市的入口生成一些守卫,用以清除赶走附近乱晃的太近的怪物,你可以使用一个伪装成村民的铁傀儡,但是它们的 AI 更难控制,而且它们的击退特效对怪物也不是很公平,所以我们要使用 MythicMobs 的自定义 AI 来完成这件事。

首先,我们需要一只生物来守护我们的城镇。让我们创建一个伪装成村民的骷髅,并给它装备剑。

SummonedGuard1:
  Mobtype: skeleton
  Display: '&Ea town guard'
  Health: 500
  Damage: 5
  Equipment:
  - COS_StoneSword:0
  Options:
    Disguise: villager
    Despawn: true
    FollowRange: 5
    AlwaysShowName: false
    MovementSpeed: 0.35
    PreventOtherDrops: true
    KnockbackResistance: 1
    PreventMobKillDrops: true

如果我们将这个生物放入刷怪点,它将攻击所有的玩家,所以我们需要调整一下,让它更加友善。

SummonedGuard1:
  Mobtype: skeleton
  Display: '&Ea town guard'
  Health: 500
  Damage: 5
  Equipment:
  - COS_StoneSword:0
  Faction: Guard
  AIGoalSelectors:
  - 0 clear
  - 1 opendoors
  - 2 meleeattack
  AITargetSelectors:
  - 0 clear
  - 1 hurtbytarget
  - 2 otherfactionmonsters
  Options:
    Disguise: villager
    Despawn: true
    FollowRange: 5
    AlwaysShowName: false
    MovementSpeed: 0.35
    PreventOtherDrops: true
    KnockbackResistance: 1
    PreventMobKillDrops: true
  • 现在这个生物会攻击其他生物,也会攻击攻击它的生物(比如一些无良玩家),在攻击的时候也会主动开门。
  • 这解决了一半的问题。下一步,我们需要保证城墙外游荡的生物会主动攻击我们的守卫。
  • 在下面我们设置了一个 Decaying Skeleton,并且也对他们进行设置。
DecayingSkeleton:
  Mobtype: skeleton
  Display: '&aa decaying skeleton'
  Health: 15
  Damage: 1
  Faction: Undead
  AIGoalSelectors:
  - 0 clear
  - 1 meleeattack
  AITargetSelectors:
  - 0 clear
  - 1 hurtbytarget
  - 2 players
  Equipment:
  - COS_RawHead:4
  - COS_WoodSword:0
  Options:
    Despawn: true
    FollowRange: 10
    AlwaysShowName: false
    MovementSpeed: 0.2
    PreventOtherDrops: true
  • 我们的 Decaying Skeleton 现在在 Undead 派系(与 Guard 派系不同),这样他就会被守卫主动攻击。并且添加 hurtbytarget 后,他们会反击来自守卫的攻击(然后死掉)。
  • 其他在城镇附近生成的怪物,我们也会添加相同的 AI ,这样这些生物就有了与守卫不同的派系。
  • 现在在我们生成我们的刷怪点后,它会守卫村庄,忽略玩家(只要他们不去主动招惹)。
  • 其他更多的设置,比如很短的攻击距离和很短的跟随距离,会保证他们不会乱搞,而是杀死那些可以获得经验和掉落的生物。我们也添加了 PreventMobKillDrops,来防止无良玩家刷东西。

示例 2:哥布林和半兽人互相攻击

  • 在真实世界里,我们有两个派系:哥布林和半兽人都不是很喜欢对方。我们创建了一个战场,但是它们都是用默认 AI,没有做太多的战斗。
  • 我们可以使用 MythicMobs 的自定义 AI 来实现这个功能,这样它们就会主动互相攻击,并且也会攻击晃进战场的玩家。
让我们创建一个半兽人生物和一个哥布林生物。
OrcCenturion:
  Mobtype: villagezombie
  Display: '&aan orc centurion'
  Health: 50
  Damage: 4
  Faction: Orcs
  AIGoalSelectors:
  - 0 clear
  - 1 opendoors
  - 2 meleeattack
  AITargetSelectors:
  - 0 clear
  - 1 hurtbytarget
  - 2 specificfactionmonsters Goblin
  - 3 players
  Equipment:
  - C_DeathfistSkullcap:4
  - C_DeathfistTunic:3
  - C_DeathfistLeggings:2
  - C_DeathfistBoots:1
  - COS_WoodSword:0
  Options:
    Despawn: true
    FollowRange: 10
    AlwaysShowName: false
    MovementSpeed: 0.25
    PreventOtherDrops: true
    PreventItemPickup: true
    KnockbackResistance: 0.25
    PreventMobKillDrops: true
GoblinBattlemaster:
  Mobtype: zombie
  Display: '&aa goblin battlemaster'
  Health: 80
  Damage: 4
  Faction: Goblin
  AIGoalSelectors:
  - 0 clear
  - 1 opendoors
  - 2 meleeattack
  AITargetSelectors:
  - 0 clear
  - 1 hurtbytarget
  - 2 specificfactionmonsters Orcs
  - 3 players
  Equipment:
  - COS_BronzeHead:4
  - COS_BronzeChest:3
  - COS_BronzeLegs:2
  - COS_BronzeFeet:1
  - COS_WoodAxe:0
  Skills:
  - skill BashI ~onAttack >0 0.25
  Options:
    Despawn: true
    FollowRange: 10
    AlwaysShowName: false
    MovementSpeed: 0.25
    PreventOtherDrops: true
    PreventItemPickup: true
    KnockbackResistance: 0.4    
    PreventMobKillDrops: true
  • 这里是我们的设置里需要注意的一些地方:
    • 第一步,我们设置了半兽人生物在 Orc 派系,而哥布林生物在 Goblin 派系,这会将两种生物分开。
    • 下一步,我们都给每个生物配置了 clear,opendoors(开门),和 meleeattack(近战),这适用于大多数近战生物。
    • 最后我们将 AI Targets 清空。
    • 第一是 hurtbytarget 选择器,之前也提过,这是一个很好的反击设置,这样这个生物就不会被利用。
    • 下一步是 specifictargetfaction 选择器,选择互相的阵营。设置优先度为 2,这样它们没有在战斗的时候,就会主动攻击对方。
    • 最后是 players 玩家选择器,如果附近没有哥布林/半兽人,它们就会攻击玩家。
    • 最后记得添加 PreventMobKillDrops 为 true,这样路过的玩家就不会捡到满地的掉落物和经验。
    • 如果我们要配置其他的哥布林和半兽人类型的生物,我们需要复制粘贴他们的 AI 设置,这样它们就会跟半兽人/哥布林的 AI 相同了。

待补充∅

∅needtext∅
∅好像有人在bbs弄的很不错的样子,那我就不继续弄了...∅

MCBBS 的过来补坑了,上面的辛苦了2333

相关链接

MythicMobs技能分页:http://mineplugin.org/MythicMobs%E6%8A%80%E8%83%BD
MythicMobs官网:http://www.mythicmobs.net/index.php
MythicMobsManual:http://www.mythicmobs.net/manual/doku.php
MythicMobsForum:http://www.mythicmobs.net/index.php?forums/
MythicMobsExtension功能拓展插件:http://mineplugin.org/MythicMobsExtension

授权声明

本页内容翻译/搬运自MythicMobs插件手册
授权方式为GNU Free Documentation License 1.3