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

MythicMobs/技能

来自Minecraft插件百科
白学家OvO留言 | 贡献2017年3月13日 (一) 23:28的版本
跳转到导航 跳转到搜索
已检索到其他语言的内容,请协助搬运外文内容至本页面,并翻译为本地化的中文。

点击此处开始搬运。(搬运完毕后请移除本模板并添加“待翻译”模板)


技能(Skill Mechanics)

  • 技能(或基本技能)是一类MM下的简单技能。你可以在生物的技能列表下直接配置他们或者把他们弄成一个技能组
  • 有些技能可以选取目标,有些则不可以。你可以通过控制技能目标(Targeters)来控制技能的对象目标

目标类技能

  • 以实体为目标的技能,有些还能以坐标/地点为目标
actionmessage—动作栏信息


颜色代码等变量适用
或许会不适用于某些目标选择器
2.3.0往前的版本 @trigger 配合 ~onAttack 或 ~onDamaged 会导致技能不适用

标签(缩写) 描述 默认设置
message(m) 发送的文本信息
Skills:
- actionmessage{m="<mob.name>&f is casting a spell!"} @PlayersInRadius{r=30}
- actionmessage{m="&lHello! &cI'm &athe &9&lactionmessage-bar&r! &e:)"} @trigger ~onInteract
addtag—标签:给予目标一个scoreboard标签
标签(缩写) 描述 默认设置
tag(t) 标签的名字 default
  • 配合条件要求(Conditions)的hastag条件使用。使用原版的/scoreboard players tag <玩家名字> add [标签名字]也能做到同样的效果

给予发动技能的生物一个Test标签

TagSkill
  Skills:
  - addtag{t=Test} @self

当自身带有Test标签时才能使用suicide技能

TagTest:
  Conditions:
  - hastag{t=Test}
 Skills:
  - suicide @self
arrowvolley—射箭
标签(缩写) 描述 默认设置
amount(a) 射出的数量 20
spread(s) 扩散程度
数值需要设得比较高才能有明显效果
45
velocity(v) 箭的速度 20
fireTicks(f) 击中的目标被点燃的时间(刻) 0
removeDelay(rd) 箭过多久刻后才消失 200
  Skills:
  - arrowvolley{a=20;s=25;v=10;f=50;rd=200} @Target

射出20支速度为10的箭,扩散程度为25,射中的目标被点燃2.5秒,箭于10秒后消失

basedamage—增强型攻击:造成自身攻击力%的伤害
标签(缩写) 描述 默认设置
multiplier(m) 百分比 1
ignoreArmor(ia) 是否无视防御 false
preventknockback(pkb,pk) 是否不造成击退 false
preventimmunity(pi) 是否无视伤害硬直 false
  • preventknockbackpreventimmunity添加于版本2.3

每次受到伤害时给予目标造成自身基础攻击力150%的伤害

  Skills:
  - basedamage{m=1.5} @target ~onDamaged
command—命令:给每个目标在控制台执行一次命令

允许使用颜色代码和变量
命令将不会成功运行若命令包含双引号"或大括号{ },若要使用请用代码代替
原因是MM自身需要"以正确读取技能的格式
2.4版本起,大括号{ }可不需要使用代码代替,但双引号"仍然需要

标签(缩写) 描述 默认设置
command(c) 执行的命令
command技能教程与准备
准备
  • 第一步:找到server.properties下的enable-command-block=并设置为true来允许服内使用命令
  • 第二步:一般来说Bukkit/Spigot会一定程度上修改我们所使用的命令,要保证我们的命令不被干涉,打开commands.yml并把command-block-overrides:下改为如下
    ‘*’意思为所有
command-block-overrides:
- '*'
  • 第三步:保证前两步的设置有效,重启或重载服务端。


管理员做到的事情/命令都能使用命令技能达成。能做到MM自身配置或技能所不能做到的事情。比如,能使一个生物临时无敌或启用/禁用其AI
还可以如用于修改下时间或天气之类的任何不指定玩家、实体或地点的技能

Skills:
- command{c="time set 0"}
- command{c="weather clear"}
- command{c="gamerule doMobSpawning false"}

由于Bukkit/Spigot端的服务器有自己版本的如/time或/weather的命令,若我们使用上面例子的/time命令就会是使用Bukkit下的/time命令。因此可能会给你造成想使用原版的命令却使用了不一样的命令的麻烦
除了准备工作下的方法外,若想使用原版命令比较建议设置成如下

Skills:
- command{c="minecraft:time set 0"}
- command{c="mincraft:weather clear"}
- command{c="minecraft:tp player1 player2"}
- 等...



从X执行命令
某些命令必须依靠实体的位置来执行。例如,我们希望一个生物在生成的时候把自己捆在一个羊毛制成的空间里。但是使用以下命令是不会管用的

Skills:
- command{c="minecraft:fill ~2 ~2 ~2 ~-2 ~-2 ~-2 minecraft:wool 0 replace"}

原因是这个命令将会发送到控制台下执行,导致相对坐标不能被确定 但如果我们套上execute命令

Skills:
- command{c="minecraft:execute <mob.uuid> ~ ~ ~ minecraft:fill ~2 ~2 ~2 ~-2 ~-2 ~-2 minecraft:wool 0 replace"}

应该就能实现了。<mob.uuid>为"施放此技能的生物的UUID"的变量,通过这种办法,命令就不会在控制台下执行,取而代之会在此生物下执行
又或者如下这个方法,<target.uuid>为技能目标对象的UUID,例子下的目标为@self,也就是以自己为技能目标使用fill命令

Skills:
- command{c="minecraft:execute **<target.uuid>**  ~ ~ ~ minecraft:fill ~2 ~2 ~2 ~-2 ~-2 ~-2 minecraft:wool 0 replace"} **@self**



Skills:
- command{c="minecraft:execute **<target.uuid>**  ~ ~ ~ minecraft:fill ~2 ~2 ~2 ~-2 ~-2 ~-2 minecraft:wool 0 replace"} **@MobsInRadius{r=10;t=BAT}**

上面的技能为放置羊毛方块于命令激活者半径10格范围下的所有蝙蝠

更多的示例供参考,虽然下面的技能都比较随意,不过也不妨能给予你们些很好的点子吧~

  - command{c="minecraft:execute <mob.uuid> ~ ~ ~ minecraft:scoreboard objectives add mrjlmmw1b dummy mrjlmmw1b"}
  - command{c="minecraft:execute <mob.uuid> ~ ~ ~ minecraft:scoreboard players set @a[x=-16,y=104,z=-60,dx=-3,dy=3,dz=9] mrjlmmw1b 0"}
  - command{c="minecraft:execute <mob.uuid> ~ ~ ~ minecraft:scoreboard players set @a[x=-16,y=104,z=-60,dx=-3,dy=3,dz=9] mrjlmmw1b 1 <&lc>Inventory:[<&lc>id:minecraft:paper,tag:<&lc>display:<&lc>Lore:[0:,1:&7Can be used once for any,2:&7monorail on Jaygrounds.,3:&8Absolutely no refunds.,4:],Name:&fMonorail Ticket&r<&rc><&rc>,Damage:0s<&rc>]<&rc>"}
  - command{c="minecraft:execute <mob.uuid> ~ ~ ~ minecraft:scoreboard players set @a[x=-16,y=104,z=-60,dx=-3,dy=3,dz=9,score_donators_min=1] mrjlmmw1b 2"}
  - command{c="minecraft:execute <target.uuid> ~ ~ ~ minecraft:tp @a[team=!pve_ruins_1,r=50] 366.5 71 487.5 0 0"}
  - command{c="minecraft:execute <target.uuid> ~ ~ ~ minecraft:scoreboard teams join pve_ruins_1 @a[r=50]"}
  - command{c="minecraft:execute <target.uuid> ~ ~ ~ minecraft:scoreboard objectives remove pve_ruins_cur"}
  - command{c="minecraft:execute <target.uuid> ~ ~ ~ minecraft:scoreboard teams remove pve_ruins_2"}
  - command{c="minecraft:execute <target.uuid> ~ ~ ~ minecraft:scoreboard teams remove pve_ruins_3"}
  - command{c="minecraft:execute <target.uuid> ~ ~ ~ minecraft:fill 368 71 494 364 72 494 minecraft:acacia_fence 0 replace minecraft:air"}
  - command{c="minecraft:execute <target.uuid> ~ ~ ~ mm m s pve_ruins_sign_arena_ready 1 world,366.5,71,493.5"}

正确的格式

Skills:
- command{c="give <target.name> gold_bar 20"} @trigger ~onInteract
- command{c="minecraft:tp <target.name> <mob.uuid>"} @self ~onDamaged
- command{c="minecraft:summon Zombie ~ ~ ~ <&lc>NoAI:true,CustomName:<&dq>Summoned Zombie<&dq><&rc>"}
- command{c="minecraft:summon Zombie ~ ~ ~ {NoAI:true,CustomName:<&dq>Summoned Zombie<&dq>}"}

不正确的格式,因为没有使用代码代替命令下的双引号"

Skills:
- command{c="minecraft:summon Zombie ~ ~ ~ {NoAI:true,CustomName:"Summoned Zombie"}"}
consume—吸血:成功造成伤害后恢复自身血量
标签(缩写) 描述 默认设置
damage(d.dmg) 造成的伤害量
heal(h) 每次造成伤害的恢复量
preventknockback(pkb,pk) 是否不造成击退 false
preventimmunity(pi) 是否无视伤害硬直 false
ignorearmor(i,ia) 是否无视防御 false
  • preventknockbackpreventimmunity添加于版本2.3
  Skills:
  - consume{d=1000;h=20} @MobsInRadius{type=ZOMBIE;r=20}

杀掉附近范围的所有僵尸,每一只恢复技能使用者20点血量

damage—伤害
标签(缩写) 描述 默认设置
amount(a) 造成的伤害值 1
ignoreArmor(ia) 是否无视防御 false
preventknockback(pkb,pk) 是否不造成击退 false
preventimmunity(pi) 是否无视伤害硬直 false
  • preventknockbackpreventimmunity添加于版本2.3


每1秒(20刻)给予目标对象造成20点伤害(10颗心),无视防御

Skills:
- damage{amount=20;ignoreArmor=true} @target ~onTimer:20
doppleganger—模仿:伪装成目标玩家的外貌
  • 若目标不是玩家时无效
  • 需要LibsDisguisesProtocolLib插件

生成时伪装成最近的玩家

Ditto:
  Type: SKELETON
  Skills:
  - doppleganger @NearestPlayer ~onSpawn
explosion—爆炸:于实体目标位置爆炸
标签(缩写) 描述 默认设置
yield(y) 爆炸的威力 0.013
blockdamage(bd) 是否破坏方块 false
fire(f,ft) 爆炸是否引起火焰 false

blockdamage貌似无视WorldGuard的保护设置,是否启用后果自负

ExplosiveBlast:
  Skills:
  - explosion{yield=4} @target
forcepull—传送:传送实体目标到技能使用者
标签(缩写) 描述 默认设置
spread(s) 被传送过来的实体离技能使用者有多扩散 0
vspread(vs) 修改纵向的扩散范围 spread
  • 参考teleport和teleportto技能

传送30格半径范围内的所有实体到技能使用者5格半径范围内的随机位置

ForceGrip:
  Skills:
  - forcepull{spread=5} @EntitiesInRadius{r=30}
heal—治愈
标签(缩写) 描述 默认设置
amount(a) 恢复的数值 1
overheal(oh) 当最大血量时是否继续恢复/上升血量 false
  Skills:
  - heal{amount=20} @self ~onDamaged 0.2
  • 每次受伤时有20%几率恢复自身20点血量(10颗心)
  Skills:
  - heal{amount=20;overheal=true} @self ~onDamaged 0.2
  • 每次受伤时有20%几率恢复自身20点血量(10颗心)
    当血量已满时,20点血量将会添加到当前的血量值之上
    20/20 + 20 = 40/20
healpercent—%治愈
  • 添加于2.3
标签(缩写) 描述 默认设置
multiplier(m) 恢复目标最大血量的%数值 0.1
overheal 当最大血量时是否继续恢复/上升血量 false

技能使用者每次攻击时恢复自身20%的血量

  Skills:
  - healpercent{m=0.2} @self ~onAttack
ignite—点燃:燃烧对象目标
标签(缩写) 描述 默认设置
ticks(t,d,duration) 燃烧的持续时间(刻) 60
  Skills:
  - ignite{ticks=100} @trigger ~onAttack

每次攻击时,点燃激活此技能的目标对象100刻(5秒)

jsonmessage—发送JSON信息
标签(缩写) 描述 默认设置
message(m) 发送的文本信息,填写于"之内"
  • 添加于2.3.2

发送JSON格式的文本信息。比起message技能,JSON文本还有悬浮文字显示、可点击等功能
支持颜色和代码等变量
可用bukkit的颜色代码或json的颜色代码格式
注意除了技能标签的两个""外,标签内的所有"要替换为'
若对JSON不了解,可参考这里这里

  Skills:
  - jsonmessage{m="[{'text':'&aHey, i am a JSON message!'}]"} @trigger ~onInteract
  - jsonmessage{m="[{'text':'Hey, i am a red JSON message!','color':'red'}]"} @trigger ~onInteract


悬浮文字显示的例子

  Skills:
  - jsonmessage{m="[{'text':'&7With me, you can create hover events','hoverEvent':{'action':'show_text','value':{'text':'&aI am a hover event :)'}}}]"} @trigger ~onInteract


点击事件还能用于制作能与其互动的生物。以下例子当玩家点击可点文字时发送生物一个指定的信号

  Skills:
  - jsonmessage{m="[{'text':'&7&nAlso click events! :)','clickEvent':{'action':'run_command','value':'/mm signal <mob.uuid> <signal>'}}]"} @trigger ~onInteract
leap—跳跃:跳起并着陆于目标位置
  • 通过计算弹射物的轨道,当速度足够快时使生物尽可能地着陆于目标的所在位置
标签(缩写) 描述 默认设置
velocity(v) 跳起时最大的速度 100
noise 增加着落点的位差 1

由于其技能的特殊性,一般velocity超过100时运作比较好
技能组,使生物跳起接近目标之后往下撞并进行一次爆炸

CrushingLeap:
  Cooldown: 10
  Skills:
  - leap{velocity=200} @target
  - delay 20
  - jump{velocity=-100}
  - effect:explosion @self
  - damage{amount=20} @EntitiesInRadius{r=5}
lightning—雷击

生成一个闪电实体造成伤害并点燃命中的实体或方块(若当前没有下雨并且开启了火势蔓延)

标签(缩写) 描述 默认设置
damage(d) 造成的伤害值 0.01337

每5秒(100刻)以10格半径范围内的所有实体为目标生成闪电,例子 神烦羊...

StaticSheep:
  Type: SHEEP
  Skills:
  - lightning @EntitiesInRadius{r=10} ~onTimer:100
message—发送信息

颜色代码等变量适用

标签(缩写) 描述 默认设置
message(msg,m) 发送的信息文本,填写于"内"
  Skills:
  - message{m="<mob.name>&f<&co> Hahaha! You will all die!"} @PlayersInRadius{r=30}
modifyscore—记分板分数修改
  • 添加于2.3

修改虚拟玩家名字记分板下的分数

  • 可用的修改动作有
    • SET(设置)
    • ADD(增加)
    • SUBTRACT(减少)
    • MULTIPLY()
    • DIVIDE()
    • MOD(??暂无特别说明)
标签(缩写) 描述 默认设置
objective(obj,o) 指定所要修改的记分板名字,若为未创建的记分板,将自动创建
action(a) 修改动作 ADD
value(v) 修改的数值
name,entry(n,e) 用于记录记分板的虚拟玩家名字 dummy

暂无例子...soon!
可参考modifytargetscore技能

modifytargetscore—记分板分数修改(目标)
  • 添加于2.3

修改虚拟玩家名字记分板下的分数

  • 可用的修改动作有
    • SET(设置)
    • ADD(增加)
    • SUBTRACT(减少)
    • MULTIPLY()
    • DIVIDE()
    • MOD(??暂无特别说明)
标签(缩写) 描述 默认设置
objective(obj,o) 指定所要修改的记分板名字,若为未创建的记分板,将自动创建
action(a) 修改动作 ADD
value(v) 修改的数值

通过记分板记录技能使用者被谁伤害过并且伤害过多少次

  Skills:
  - modifytargetscore
      {
      objective=damagescore;
      action=add;
      value=1
      } @trigger ~onDamaged
mounttarget—目标骑乘

骑乘于目标对象头上 Minecraft 1.10有当生物/玩家骑乘时显示不正确的BUG

  • 类似功能mount技能
  Skills:
  - mounttarget @trigger ~onDamaged

受到伤害时骑乘于攻击者头上

potion—药水

给予目标实体药水效果
隐形药水效果为目前唯一一种能使生物(盔甲架除外)隐身的办法

标签(缩写) 描述 默认设置
type(t) 药水的种类
duration(d) 时长(刻) 100
level(l) 药水等级,最低的等级可为0 1
force 是否覆盖当前药水效果(4.0+) false

10秒(200刻)内明显减慢目标的移动速度并给予目标10点伤害(5颗心)

Cripple:
  Skills:
  - potion{type=SLOW;duration=200;level=4}
  - damage{amount=10}
prison—监禁:暂时性生成方块包围目标
标签(缩写) 描述 默认设置
material(m) 生成方块的类型,物品名字列表 ICE
duration(d) 持续时间(刻) 100
breakable(b) 生成的方块是否能被破坏 false

围绕目标生成200刻(10秒)铁方块,方块可挖

IronPrison:
  Skills:
  - prison{material=IRON_BLOCK;duration=200;breakable=true} @target
pull—磁吸:强制移动目标到使用者位置
标签(缩写) 描述 默认设置
velocity(v) 拉力的初始速度 1
toOrigin(to) 是否移动到技能使用时的坐标位置 false

吸引的速度会根据使用者和目标的距离增加而加快。定义的velocity为初始速度,技能会根据此初始速度和距离计算加速速度

DeathGrip:
  Skills:
  - pull{velocity=10} @target
  - pull{v=6;to=true} @PIR{r=10}
rally—团结:使生物合力攻击同一个目标
标签(缩写) 描述 默认设置
types(type,t) 将会受到影响的实体种类,可以是MM生物
radius(r) 将会受到影响的方块半径范围 10
vradius(vr) 覆盖纵向半径范围的设置 radius
hradius(hr) 覆盖横向半径范围的设置 radius
overwritetarget(ot) 是否影响已有目标的生物 true

技能组,发送求救信号,然后
使30格半径范围内当前没有目标、种类为Guard或Knight的生物攻击rally技能选取的目标

CallForHelp:
  Skills:
  - message{m="<mob.name><&co> Guards! Help me!"} @PlayersInRadius{r=30}
  - rally{types=Guard,Knight;radius=30;ot=false} @target
randommessage—随机信息

随机发送玩家一个设定好的信息,若目标对象不为玩家、或信息内有#符号的话技能使用失败

标签(缩写) 描述 默认设置
messages(m) 信息列表,每个信息填写于"内",使用逗号,分隔每个信息
  Skills:
  - randommessage
      {
      m=
      "message 1",
      "message 2",
      "message 3";
      } @PIR{r=20} ~onInteract
Skills:
- randommessage{m="one test","not a test","test";} @PIR{r=20} ~onInteract
remove—消失:移除指定实体,不适用于玩家

生物生成10秒(200刻)后消失

  Skills:
  - remove{delay=200} @self ~onSpawn

生物使用右键(普通攻击)时立刻消失

  Skills:
  - remove @self ~onInteract
removetag—移除目标记分板标签
标签(缩写) 描述 默认设置
tag(t) 标签的名字 default
  • 和hastag条件配合使用
    等同于原版命令/scoreboard players tag <player name> remove [Tag Name]
setgliding—滑翔
  • 使装备了鞘翅的玩家/实体开始/停止滑翔。
    目标必须在空中
标签(缩写) 描述 默认设置
gliding(g) 是否强制实体进行滑翔 true

1.10生物的滑翔动态有BUG。于1.11正常显示
使装备了鞘翅并在空中使用此技能者滑翔

MakeMobGlide:
  Skills:
  - setgliding{g=true;} @self
setowner—认主

MM 4.0.0版本加入
设置MM生物的持有者(owner)。配合@Owner目标选择器和Owner条件使用
和狼或豹猫的owner标签是两回事

PetWolf:
  Mobtype: wolf
  Display: 'Pet'
  Health: 20
  Damage: 18
  Skills:
  - skill{s=SetOwner} @trigger ~onInteract
  - skill{s=HealOwner} @PIR{R=10} ~onTimer:50

~onInteract时认主

SetOwner
  Skills:
  - setowner @trigger

恢复主人血量的技能

HealOwner:
  TargetConditions:
  - owner true
 Skills:
  - heal{a=10}
sendtitle—使用/title指令

发送目标标题和/或附标题,目标不是玩家时无效

标签(缩写) 描述 默认设置
title(t) 发送的标题信息,填写于"之间"
subtitle(st) 发送的附标题信息,填写于"之间"
duration(d) 显示时长(刻) 1
fadeIn(fi) 渐入效果时长(刻) 1
fadeOut(fo) 渐出效果时长(刻) 1
  Skills:
  - sendtitle{title="Beware!";subtitle="A dangerous spell is being cast!";d=20} @PlayersInRadius{r=10}
setscore—记分板分数设立
  • 添加于2.3

设立虚拟玩家名字记分板下的分数

标签(缩写) 描述 默认设置
objective(obj,o) 指定所要修改的记分板名字,若为未创建的记分板,将自动创建
value(v) 修改的数值
name,entry(n,e) 用于记录记分板的虚拟玩家名字 dummy

暂无例子...soon!
可参考modifyscore技能

settargetscore—目标记分板分数设立
  • 添加于2.3

设立玩家名字记分板下的分数
可参考modifytargetscore技能

标签(缩写) 描述 默认设置
objective(obj,o) 指定所要修改的记分板名字,若为未创建的记分板,将自动创建
value(v) 修改的数值

记录是否受到过伤害

  Skills:
  - settargetscore
      {
      objective=damagescore;
      value=1
      } @trigger ~onDamaged
setstance—设立姿势
标签(缩写) 描述 默认设置
stance(s) 姿势的名字 default

配合stance条件,用于作出当生物于不同的姿势状态时拥有不同的定义能力
若姿势设定为angry fiery explosive,而stance条件要求为stance firey,条件成立
修改使用者的姿势为bowphase

StanceChangeSkill
  Skills:
  - setstance{stance=bowphase} @self

当姿势为bowphase时才能使用xx技能

AnotherSkill:
  Conditions:
  - stance bowphase
 Skills:
  - ...我是技能
shootfireball—火球喷射
标签(缩写) 描述 默认设置
yield(y) 火球爆炸的威力 1
velocity(v) 初始速度 1
incendiary(i) 火球是否形成火 false
fireTicks(ft) 形成的火持续多久 0
smallfireball(small,sml) 是否弃用恶魂的火球,改用烈焰人的小火球 false
playsound(ps) 是否播放爆破时的音效 false

技能组,火球3连发

FireballBarrage:
  Skills:
  - shootfireball{y=1;v=4} @target
  - delay 10
  - shootfireball{y=1;v=4} @target
  - delay 10
  - shootfireball{y=1;v=4} @target
shootpotion—投掷药水
标签(缩写) 描述 默认设置
type(t) 药水的种类
duration(d) 时长(刻) 100
level(l) 药水等级 1
velocity(v) 初始速度 1
ThrownCripplingPotion:
  Skills:
  - shootpotion{type=SLOW;duration=200;level=4;velocity=5} @target
shootskull—骷髅弹
标签(缩写) 描述 默认设置
yield(y) 骷髅弹的爆炸威力 1
playsound(ps) 是否播放爆破时的音效 false

技能组,骷髅弹3连发

SkullBarrage:
  Skills:
  - shootskull{y=1;v=4} @target
  - delay 10
  - shootskull{y=1;v=4} @target
  - delay 10
  - shootskull{y=1;v=4} @target

signal信号:needtext





特效类技能(Skill Effects)

  • needtext

技能目标(Targeters)

  • needtext

技能触发(Triggers)

  • needtext

待补充∅

∅needtext∅

相关链接

MythicMobs官网:http://www.mythicmobs.net/index.php
MythicMobsManual:http://www.mythicmobs.net/manual/doku.php
MythicMobsForum:http://www.mythicmobs.net/index.php?forums/

授权声明

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