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

MythicMobsExtension

来自Minecraft插件百科
1240798440讨论 | 贡献2020年3月20日 (五) 13:57的版本 技能详解
跳转至: 导航搜索
MythicMobsExtension
外文名MythicMobsExtension
作者muhahahahe
最新版本1.238-snapshot
源地址spigotmc

目录

插件介绍

这个插件是基于API链接mythicmobs的,可以给你的mythicmobs插件添加60多种机制,50多种条件和10多个目标.

前置

至少4.1以上版本的 MythicMobs

一些机制需要用到 HolographicDisplays

一些条件也支持worldguard和faction

配置

Configuration:
  # 不要修改版本号!
  Version: 1
  Debug: false
  Update_Notification: true
  Patches:
    NaN_Patch: true
  Modules:
    Mythic_Players: true
    Mythic_Thiefs: true
    Cached_Owners: true
  Entities:
    Mythic_Parrot: true
  Compatibility:
    Worldguard: true
    Factions: true
    RPGItems: true
    MobArena: true
    Holographic_Displays: true

描述

  • Version: 不要改变版本信息
  • Debug: 开启调试日志, 位于 .../MythicMobsExtension/log/
  • *调试暂不可用*
  • UpdateNotification: 插件更新提醒
  • NaN_Patch: 开关NaN Patch
  • Mythic_Players: 开关Mythic Players模块
  • Mythic_Thiefs: 开关Mythic Thiefs模块
  • Cached_Owners: 开关setcachedowner机制的 Cached Owners 模块
  • Mythic_Parrot: 开关自定义实体 mythic_parrot
  • Compatibility: 开关其他插件支持

条件

条件的使用方法和mythicmobs内的用法一样

官方教程

Wiki翻译


可用条件列表

点击文字跳转到相应条件

attackable behind BiomeFix crouching damageable
eir facingDirection FactionsFlag getBowTension getIndicator
hasMeta hasSpawner hasTarget inFaction inFront
inMobArena inMotion inSolidBlock isBurning isGoggling
isPresent isSpinning isStunned isVehicle jumping
lastBowTension lastDamageCause leir lookAtMe WGStateFlag
MobsInRadius moveSpeed onCooldown onSolidBlock ownerAlive
ownsItem ownsItemSimple parsedStance pir playerTime
playerWeather relativeDirection running sameFaction sameSpawner
sameWorld sleeping testfor vDistance WGDenySpawnFlag

总体条件

译者注:mm怪物即为mythicmobs内的怪物

检测生物群系

- biomefix{b=[SINGLE/ARRAY];action=[BOOLEAN]}

 检测施放者或目标所在的生物群系
 例子: - biomefix{b=DESERT,PLAINS;action=true}

实体

- eir{types=[SINGLE/ARRAY/ALL];amount=[数值/数值范围];radius=[数值];action=[boolean];insameblock/isb=[BOOLEAN]}

 检测在所给出范围内的实体数
 例子: - eir{types=ARMOR_STAND;amount=1;radius=5;action=true}

- leir{types=[SINGLE/ARRAY/ALL];amount=[数值/数值范围];radius=[数值];action=[boolean];insameblock/isb=[BOOLEAN]}

 检测所给数值范围内的实体数
 例子: - leir{types=ZOMBIE,SQUID;amount=2;radius=15;action=true}

- mobsinradius{mobtypes=[SINGLE/ARRAY/ALL];a=[NUMERIC/NUMERIC范围];r=[NUMERIC];action=[BOOLEAN]}

 检测施放者/目标/特定位置在所给范围内的怪物数量
 例子: - mobsinradius{m=ALL;a=5to10;r=20;action=TRUE}
 

朝向

- facingdirection{d=[CARDINAL-POINT];action=[BOOLEAN]}

 检测目标是否看着指定的方向
 例子: - facingdirection{f=SOUTH_WEST;action=true}
 检测目标是否看着西南方

派系

- factionsflag{flag=[SINGLE/ARRAY];action=[BOOLEAN]}

 检测 派系内是否有已设置或未设置的flag
 例子: - factionsflag{flag=firespread;action=false}

- infaction{faction=[STRING/ARRAY];action=[BOOLEAN]}

 检测施放者是否在一个派系内
 注意: 只对mm怪物生效
 例子: - infaction{faction=MyFaction;action=true}

拉弓状态

- getbowtension{range=[数值/数值范围];debug=[BOOLEAN];action=[BOOLEAN]}

 检测拉弓状态
 例子: - getbowtension{range=1;action=true}

攻击指示器

- getindicator{value=[数值/数值范围];action=[BOOLEAN]}

 检测玩家的攻击指示器
 0 = 无攻击指示器, 1 = 满的攻击指示器
 例子: - getindicator{value=<0.51;action=true}

源于刷怪笼

- hasspawner{names=[SINGLE/ARRAY/ANY];action=[BOOLEAN]}

 检测mm怪物是否来自于刷怪笼
 例子: - hasspawner{names=MySpawner;action=true}

目标

- hastarget{action=[BOOLEAN]}

 检测施放者是否已经有一个目标
 注意: 这只作用于施放者, 如果你在 TargetConditions 内使用这个条件的话将会出错!
 例子: - hastarget{action=true}

移动状态

- inmotion{action=[BOOLEAN]}

 检测检测目标是否在移动
 不对非生物实体起作用
 例子: - inmotion{action=true}

处于方块上

- insolidblock{action=[BOOLEAN]}

 检测目标实体或位置是否处于一块固体的方块上
 例子: - insolidblock{action=true}

拉弓力度

- lastbowtension{range=[数值/数值范围];debug=[BOOLEAN];action=[BOOLEAN]}

 检测射箭时拉弓的力度
 例子: - lastbowtension{range=>0.7;action=true}

伤害事件

- lastdamagecause{cause=[BukkitDamageCause];damager=[BukkitEntityType];action=[BOOLEAN]}

 检测最后一次对施放者或目标造成伤害的事件
 注意: 只会检测mm生成的实体
 例子: - lastdamagecause{cause=PROJECTILE;damager=PLAYER;action=true}

移动状态

- movespeed{range=[数值/数值范围]}

 检测目标实体的移动速度
 例子: - movespeed{range=>0.1}

冷却

- oncooldown{value=[数值/数值-Range];action=[BOOLEAN]}

 检测玩家的物品是否处于冷却
 例子: - oncooldown{value=1to10;action=true}

气候条件

- playerweather{weather=[WEATHERTYPE];action=[boolean]}

 检测目标玩家的天气
 只配合 playerweather机制来使用
 例子: - playerweather{weather=CLEAR;action=true}

材料

- testfor{vc="[valid_testfor_stuff]";action=[BOOLEAN]}

 检测施放者或目标是否有testfor材料
 例子: - testfor{vc="XpLevel:20";action=true} 

玩家状态

睡觉

- sleeping{action=[boolean]}

 检测目标玩家是否在睡觉
 例子: - sleeping{action=true}

潜行

- crouching{action=[BOOLEAN]}

 检测玩家是否处于潜行状态
 例子: - crouching{action=true}

奔跑

- running{action=[BOOLEAN]}

 检测目标玩家是否在奔跑/冲刺
 例子: - running{action=true} 

跳跃

- jumping{action=[BOOLEAN]}

 检测目标实体是否在跳跃
 例子: - jumping{action=true}

玩家时间

- playertime{time=[数值/数值范围];action=[boolean]}

 检测目标玩家的时间
 只配合 playerweather机制来使用
 例子: - playertime{time=0to12000;action=true}

玩家数量

- pir{amount=[数值/数值范围];radius=[数值];action=[boolean];insameblock/isb=[BOOLEAN]}

 检测在所给范围内的玩家数
 例子: - pir{amount=5;radius=10;action=true} 

其它插件

mobarena

- inmobarena

 检测 施放者, 目标或指定位置是否在怪物竞技场内.
 需要 MobArena 插件

worldguard

- wgdenyspawnflag{types=[BukkitEntityType];action=[BOOLEAN]}

 检测 区域内是否禁止生成特定的怪物(通常在随机刷怪中使用)
 例子: - wgdenyspawnflag{types=ZOMBIE,SKELETON;action=false}

- wgstateflag{flag=[WorldGuardFlag];action=[BOOLEAN]}

 检测区域内是否有已设置的flag
 例子: - wgstateflag{flag=mob-spawning;action=false}

对比条件

位置

- behind{view=[ANGLE_VALUE];action=[BOOLEAN]}

 检测施法者是否在目标后
 例子: - behind{view=90;action=true}

- owneralive{action=[boolean]}

 检测某些生物的主人是否在线或在同一个世界内
 例子: - owneralive{action=true}

- vdistance{d=[NUMERIC];action=[BOOLEAN]}

 检测施放者和目标直之间的距离
 例子: - vdistance{d=2to3;action=true}

- relativedirection{angle=[数值/数值范围];action=[BOOLEAN]}

 检测目标到施放者间的距离
 例子: - relativedirection{angle=90;action=false}

- infront{view=[ANGLE-数值];action=[BOOLEAN]}

 检测施放者是否在目标前
 例子: - infront{view=10;action=false}

- parsedstance{s="<variable>";cs=[BOOLEAN];action=[BOOLEAN]}

 这个条件可以检测一个变量是否设置为距离
 对 parsedstance mechanic
 (注意: 如果 cs 设置为true 它会总是检测施放者)
 例子: - parsedstance{s="<target.uuid>";cs=true;action=true}

- sameworld{action=[BOOLEAN]}

 检测目标实体和施放者是否在同一时间
 例子: - sameworld{action=true} 

- onsolidblock{action=[BOOLEAN]}

 检测检测目标实体或位置是否处于一块固体的方块上
 例子: - onsolidblock{action=true}

伤害

- attackable{cause=[BukkitEntityDamageEvent];action=[BOOLEAN]}

 检测目标是否可以被施放者的伤害事件所伤
 例子: - attackable{cause=PROJECTILE;action=false}

- damageable{cause=[BukkitEntityDamageEvent];action=[BOOLEAN]}

 检测目标是否可以被伤害事件所伤
 例子: - damageable{cause=PROJECTILE;action=true}

数据

- hasmeta{meta="tag=[TAGNAME];value=[TAGVALUE];type=[BOOLEAN/NUMERIC/STRING]";compareself=[BOOLEAN];action=[BOOLEAN]}

 对比2个实体的数据, 也可以对比自身
 可以检测多个数据 (用 && 代表 AND , || 代表 OR)
 例子: - hasmeta{meta="tag=lastdamagedentity;value=<target.uuid>;
                  type=STRING";cs=true;action=true}

- hasmetasimple{tag=[TAGNAME];value=[TAGVALUE];type=[BOOLEAN/NUMERIC/STRING]";compareself=[BOOLEAN];action=[BOOLEAN]}

 只能对比一个数据,用法同上
 例子: - hasmetasimple{tag=lastdamagedentity;value=<target.uuid>;
                  type=STRING;cs=true;action=true}

状态

- isburning{range=[数值];action=[BOOLEAN]}

 检测如果目标实体在燃烧
 在提供的范围内检测 ticks数是否与 FIRE_TICKS 配对
 例子: - isburning{action=true}

- isgoggling{action=[BOOLEAN]}

 检测玩家正在看到的东西
 例子: - isgoggling{action=true}

- ispresent{action=[BOOLEAN]}

 检测一个实体是否在场
 例子: - ispresent{action=true}

- isspinning{action=[BOOLEAN]}

 检测玩家是否在旋转
 和playerspin机制一起使用
 例子: - isspinning{action=true}

- isstunned{action=[BOOLEAN]}

 检测施放者或目标是否中了stun技能
 这也会在 TargetConditions条件下起作用: 但要设置正确的目标
 例子: - isstunned{action=true}

- isvehicle{action=[BOOLEAN]}

 检测目标是否处于骑乘状态
 例子: - isvehicle{action=true}

- lookatme{fov=[DOUBLE];yo=[DOUBLE];debug=[BOOLEAN]}

 检测目标是否在看着施放者
 这个例子使用的默认数值对任何实体都有用
 开启调试模式后你的控制台会显示fov 和 yo
 例子: - lookatme{fov=1.999;yo=-0.4}

背包

- ownsitem{list="where=[ANY/HAND/ARMOR/INVENTORY];material=[ANY/MATERIALTYPE];amount=[数值/数值范围];lore=[LORETEXT]";action=[BOOLEAN]}

 检测目标背包内是否拥有(使用 && 代表 AND   || 代表 OR)
 一或多个格子顺序的特定物品
 例子: - ownsitem{list="where=HAND;material=DIAMOND_SWORD;amount=1 && where=INVENTORY;material=DIAMOND_SWORD;amount=1to2";action=true}

- ownsitemsimple{where=[ANY/HAND/ARMOR/INVENTORY];material=[ANY/MATERIALTYPE];amount=[数值/数值范围];lore=[LORETEXT];action=[BOOLEAN]}

 和 ownsitem一样但只能检测1个背包格
 例子: - ownsitemsimple{where=HAND;material=SAND;amount=1;action=true}

生成

- samefaction{faction=[STRING/ARRAY];action=[BOOLEAN]}

 检测目标和施放者是否在同一个派系内
 注意: 只作用于一只mm的怪物
 例子: - samefaction{faction=MyFaction;action=true}

- samespawner{action=[BOOLEAN]}

 检测 目标MythicMob是否作为来自同一刷怪笼的施放者
 例子: - samespawner{action=true}

机制

列表

技能

技能 描述
asequip 给盔甲架装上装备
cure / removePotion 移除目标身上特点或所有的药水效果
damageArmor 伤害目标身上所有或特定格子顺序的防具
disarm 缴械目标
dropInventory 丢出目标玩家背包内特定倍数或所有的物品
dropStolenItems 掉落之前偷窃的物品 (配合steal使用)
entityGoggle / entityGoggleAt 强制非玩家实体看着施放者
equipSkull 修复MC 1.8.8版本的BUG, 给施放者装上头颅
extinguish 熄灭目标身上的火焰
feed 喂养目标玩家
forcebow 强制拉弓
playerGoggle / playerGoggleAt 强制目标玩家看着施放者
playerSpin 旋转目标玩家
playerWeather 设置目标玩家的天气或时间
playerZoom 旋转目标玩家
oxygen 给目标玩家灌满氧气
setRotation 旋转实体
steal 从目标玩家身上偷取物品
stun 使被标记的生物无法移动和交互
swap 交互施放者和目标的位置
unEquip 卸下施放者指定格子顺序的防具

原版增强技能列表

技能 描述
customDamage 对目标造成指定的伤害
customParticleline 在与目标相对的特定点之间绘出一条粒子线
customRandomSkill 从列表中随机触发一个技能
customSummon 在目标实体或特定未知生成mm怪物
customTeleport 传送目标 和/或 施放者到一个实体或指定位置处
customVelocity 矢量操纵

实用技能列表

技能 描述
castIf 与另一个或多个条件比较并,如果条件满足将执行一项技能,否则执行另一项技能
clearThreatTarget 使怪物失去战意并清除施放者对怪物的威胁度
closeInventory 关上已经打开背包玩家的背包
delMeta 从一个实体中移除数值
dropMythicItem 在目标出掉落mm物品
modifyArrows 修改目标身上的箭
parsedDisguise 使用变量伪装目标
pStance 把一个变量视为距离
playCredits 强制玩家观看credit界面
playLoading 强制玩家观看加载界面
renameEntity 重命名目标实体
setCachedOwner 设置目标实体为施放者的主人
setFaction 设置目标mm怪物的派系
setItemCooldown 设置物品使用冷却
setLevel 设置目标mm怪物的等级
setMeta 设置实体的数值
setMobHealth 修改目标mm怪物的血量
setSpeed 设置目标的移动速度
setThreatTarget 设置目标对施放者的威胁度

技能详解

译者注:有关时间的数值单位都是tick,原版的mm也是. 20ticks=1s


asquip

属性 缩写 描述 默认值
item i 所装备的物品材质,可用 : 表示物品格子顺序,单次技能无法并列装备多个物品
这会给盔甲架的主手位置装备上钻石剑.
- asquip{i=diamond_sword:0}

cure | removePotion

属性 缩写 描述 默认值
potion type | t 移除的药水效果类型 所有类型的药水效果
使用这个来移除目标实体身上所有或特定的药水效果. 这基于mm原版的 reverted potion机制.

治疗虚弱:

UnCripple:
  Skills:
  - cure{t=SLOW}

定时清除僵尸身上的buff:

TheUnbuffable:
  Type: ZOMBIE
  Skills:
  - cure @Self ~onTimer:5

同样的效果:

TheUnbuffable:
  Type: ZOMBIE
   Skills:
  - removepotion @Self ~onTimer:5

damageArmor·破甲

属性 缩写 描述 默认值
armor armour helmet(头盔) | chest(胸甲) | leggings(护腿) | boots(靴子) | hand(手持装备) | offhand(副手装备) 所有
damage dmg 造成的伤害数 1
signal s 如果装备破碎了就向施放者发送信号

使用这个来损坏目标全部或指定的装备

多次损坏所有装备耐久度:

BreakChains:
  Skills:
  - damagearmor{armor=all;damage=1}
  - delay 5
  - damagearmor{armor=all;damage=1}
  - delay 5
  - damagearmor{armor=all;damage=1}
  - delay 5
  - damagearmor{armor=all;damage=1}
  - delay 5
  - damagearmor{armor=all;damage=1}

僵尸会在击破目标头盔后停止该行为:

TheHeadCrusher:
  Type: ZOMBIE
  Skills:
  - damagearmor{a=helmet;d=50;signal=Execute} @Target ~onTimer:100
  - skill{s=ExecuteTheHelmless} @Target ~onSignal:Execute

disarm·缴械

属性 缩写 描述 默认值
duration dur 会把武器位置移到玩家背包的第一个空格内, 如果玩家背包已满则无法缴械

,非玩家实体将会暂时被移除武器 || 所有类型的药水效果

缴械目标5秒:

- disarm{duration=100} @Target

dropInventory·弃物

属性 缩写 描述 默认值
item "where=[HAND][OFFHAND][ARMOR][INVENTORY][ANY]

material=[物品ID]或[ANY] lore=[你想丢弃的物品的lore描述] amount=[数目]" || 所有

pickupdelay pd 被丢弃的物品可在此捡起的延迟 20
pieces amount | a 多少份物品堆叠

将玩家背包内的所有物品丢到地上:

- dropinventory{item="where=ANY,material=ANY,amount=64";pieces=41} @trigger ~onDamaged

dropStolenItems·弃物

同上,但只作用于偷窃机制

- dropstolenitems @Self ~onDeath

entityGoggle / entityGoggleAt·凝视

属性 缩写 描述 默认值
duration·持续时间 dur 强制目标看着施放者,如果目标实体没有AI则不会生效 120

强制10格内的生物看着施放者:

- entitygoggle{duration=100} @EIR{r=10}
- entitygoggleat{duration=100} @EIR{r=10}
- entitylookin{duration=100} @EIR{r=10}

equipSkull·装备头颅

在施放者生成的时候带上皮肤头:

- equipskull{s=MySkullItem} ~onSpawn

extinguish·熄焰

在施放者受伤时熄灭身上的火焰:

- extinguish @Self ~onDamaged

feed·饱食

属性 缩写 描述 默认值
amount a 数值,可为负数 1

使5格内的玩家的饱食度增加5:

- feed{a=10} @PIR{r=10}

playerGoggle | playerGoggleAt

属性 缩写 描述 默认值
duration·持续时间 dur 强制玩家看着施放者的时间 120

强制附近的玩家看着施放者5秒:

- playergoggle{duration=100} @NearestPlayer
- playergoggleat{duration=100} @NearestPlayer

playerSpin·旋转

属性 缩写 描述 默认值
duration·持续时间 dur 强制玩家旋转的时间 120
speed s 玩家的转速 30

强制附近的玩家旋转5秒:

- playerspin{duration=100;s=50} @NearestPlayer

playerWeather·

属性 缩写 描述 默认值
weather w 天气类型 CLEAR
time t 时间(刻)
duration dur 天气效果的持续时间 200

改变10格内玩家的天气10秒:

- playerweather{w=DOWNFALL;time=18000;duration=200} @PIR{r=10} ~onAttack

playerZoom

属性 缩写 描述 默认值
amount value | v 缩放程度(0-1) 0

使附近玩家的视角变为广角:

- playerzoom{v=1} @NearestPlayer

oxygen

属性 缩写 描述 默认值
amount a 数值,可为负数 1

给10格内的玩家增加5格氧气值

- oxygen{a=100} @PIR{r=10}

setRotation·设置转向

属性 缩写 描述 默认值
duration·持续时间 dur 强制目标看着施放者,如果目标实体没有AI则不会生效 1
yawoffset yo | y 旋转度数 5
pitchoffset po | p 垂直角度 0

旋转10格内的实体90°

- setrotation{d=100;yo=90} @EIR{r=10}

steal·窃取

属性 缩写 描述 默认值
items i 物品名称和数量, 可以是用逗号分隔的物品列表
failsignal fail 技能施放失败的信号(可选) steal_fail
oksignal fail 技能施放成功的信号(可选) steal_ok

偷窃目标背包内的钻石剑:

- steal{items=DIAMOND_SWORD:1} @Target

偷窃三者之一(钻石剑/5个西瓜种子/64个石头)的物品并对被盗者发送信息(成功为"ok" 失败为failure):

- steal{items=DIAMOND_SWORD:1,MELON_SEEDS:5,STONE:64;ok=success;fail=failure} @Target

stun·眩晕

属性 缩写 描述 默认值
duration·持续时间 dur 眩晕时间 120
facing f 目标是否应该被锁定视角 false
gravity g 目标是否应该受到重力影响 false
stopai ai 如果目标是怪物,那么眩晕会使其失去AI false

击晕目标5秒:

- stun{dur=100} @Target

swap·易位

属性 缩写 描述 默认值
keeptargetyaw kty 锁定目标视角或变为广角 false
keepcasteryaw kcy 锁定施放者视角或变为广角 false

在受伤时有10%几率交互敌我位置:

- swap{kty=true;kcy=false} @Trigger ~onDamaged 0.1

unEquip·卸甲

属性 缩写 描述 默认值
armor a helmet(头盔) | chest(胸甲) | leggings(护腿) | boots(靴子) | hand(手持装备) | offhand(副手装备) 所有
signal 技能施放成功后向施放者发送信号

在受伤时有10%几率脱下自身的头盔:

- unequip{a=helmet} @Self ~onDamaged 0.1

customDamage·自定义伤害

数值 缩写 描述 默认值
amount a 伤害数值
范围为 (5到10)
被抵消
1
preventknockback pkb | pk 使目标不会受到击退效果 false
ignorearmor ignorearmour | ia | i 伤害是否穿甲 false
ignoreabsorbtion ignoreabs | iabs 伤害是否忽略金苹果的伤害吸收效果 false
ignorepower ip false
preventimmunity pi 免疫造成指定伤害的目标的伤害 false
percentage p 是否按目标生命值的百分比来造成伤害 false
percentcurrent pcur | pc 用于 和percentage配合 来对目标造成百分比伤害或用 usecaster=true 对施放者造成伤害 false
usecaster uc 用这个来 和percentage配合 并对施放者造成百分比伤害 false
reducedamagebydistance rdbd 根据施放者和目标间的距离来减少目标受到的百分比伤害
increasedamagebydistance idbd 根据施放者和目标间的距离来增加目标受到的百分比伤害
damagecause cause | dc 所造成伤害的类型
<a href="https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/entity/EntityDamageEvent.DamageCause.html" rel="nofollow">BukkitEntityDamageEvent</a>
CUSTOM


对目标造成1-5的随机伤害:

- customdamage{a=1to5} @Target

对目标造成当前血量10%的伤害:

- customdamage{a=0.1;p=true;pcur=true} @Target

customParticleline·自定义粒子射线

在目标和施放者之间发出一道粒子线(和原mm的粒子用法一致):

- customparticleline{particle=reddust;amount=5;color=#feff90;ys=2.5;vd=1.0;hd=-1.0;idoy=true;distanceBetween=0.5;tyo=1.25} @pir{r=10} ~onTimer:5

customRandomSkill·自定义随机技能

检测每个技能的触发率并执行其中一项:

- customrandomskill{s=Skill1:0.1,Skill2:0.4,Skill3:0.2}

customSummon·自定义召唤

和原版的summon指令/summon ~5 ~-4 ~3 creeper一样召唤出一只苦力怕:

- customsummon{t=CREEPER;a=1;ax=5;ay=-4;az=3} @Self

在施放者后2格召唤出一只苦力怕并把召唤者视为主人:

- customsummon{t=CREEPER;a=1;ued=true;ifb=-2;setowner=true} @Self

customTeleport·自定义传送

在1秒后传送施放者到其目标所在位置:

- customteleport{d="@Target";td=20}

传送在20格内的3名玩家到施放者面前并传送回起点并在完成时显示信息"Done":

- customteleport{d="@PIR{r=20}";mt=3;f=true;rs=true;fs=Done}

customVelocity·自定义矢量

使一条直线上的目标速度为0:

- customvelocity{x=0;y=0;z=0} @Target

castIf·技能检测

在某种条件下执行技能
如果施放者在地面上并且在野外,执行技能1,反之执行技能2:

- castif{c="onground true && outside true || playerwithin{d=10} true";meet=技能1;elese=技能2}

如果施放者10格内有玩家将会执行技能1,反之执行技能2

- castif{c="playerwithin{d=10} true";meet=技能1;elese=技能2;meettargeter="@PIR{r=10}";elsetargeter="@Self"}

clearThreatTarget·清除威胁度

只在威胁度模块开启时有用
清除目标威胁度:

- clearthreattarget

closeInventory·关闭背包

关闭10格内玩家打开的背包或其他GUI:

- closeinventory @PIR{r=10}

delMeta·数据删除

在施放者脱离战斗后清除"最后受伤的实体"标签:

- delmeta{meta="tag=lastdamagedentity"} @Self ~onDropCombat

setMeta·数据设置

在施放者身上设置"最后受伤的实体"标签,把数值"玩家"视为一个STRING类型:

- setmeta{meta="tag=lastdamagedentity;value=PLAYER;type=STRING";uc=true}

设置标签"hasBow"为true:

- setmeta{meta="tag=hasBow;value=true;type=BOOLEAN"}

dropMythicItem·物品掉落

击杀该技能的施放者获得5个"mm物品":

- dropmythicitem{i=mm物品;a=5} @Trigger ~onDeath

modifyArrows·拔箭

拔下目标身上的5枝箭:

- modifyarrows{m=SUBSTRACT;a=5} @Target

noDamageTicks·易伤

受到的攻击无间隔,持续5秒:

- nodamageticks{ndt=0;duration=100} @Target

MythicOrbitalProjectile

属性 缩写 描述 默认值
item i 所装备的物品材质,可用 : 表示物品格子顺序,单次技能无法并列装备多个物品
这会给盔甲架的主手位置装备上钻石剑.
- asquip{i=diamond_sword:0}

parsedDisguise·伪装

使目标怪物伪装成攻击它的人,但显示的名称不会变:

- parseddisguise{d=PLAYER:<mob.name>:<target.name>} @trigger ~onDamaged

parsedStance | pStance

把目标的UUID视为stance:

- parsedstance{s="<trigger.uuid>"} @Self

playCredits·黑屏

注:这个页面是终末之诗的开头,如果你设置的时间太长就会显示终末之诗.

强制目标玩家黑屏3秒并由于关闭物品机制而复原:

- playcredits{repeat=59;repeatinterval=1} @Target
- closeinventory{delay=60} @Target

技能效果:
Minecraftcredit.jpg

playLoading·土遁

强制目标玩家看着泥土墙(minecraft加载界面)3秒并由于关闭物品机制而复原:

- playloading{repeat=59;repeatinterval=1} @Target
- closeinventory{delay=60} @Target

技能效果:
Minecraftloading.jpg

renameEntity

重命名目标为施法者的名字:

- renameentity{name=<mob.name>;visible=true} @Target

setCachedOwner

永久设置目标为施放者的主人直到施放者死亡或被移除,服务器重启后也仍然会视为主人

- setcachedowner @trigger ~onInteract

setFaction·设置派系

在生成时设置以怪物名为一派系:

- setfaction{faction=<mob.name>} @Self ~onSpawn

setItemCooldown·设置物品冷却

用这一机制来设置物品的冷却.

对MythicArtifacts物品很拥有, 但只能由玩家触发.

在使用物品时显示3秒的冷却:

- setitemcooldown{t=60} @Self ~onUse

setMobHealth·设置生命

设置施放者的最大血量为100: - setmobhealth{a=100;sch=true}

setMobLevel | setRandomLevel·设置等级

将怪物的等级设置为1到10:

- setmoblevel{a=1to10}

setNBT·设置NBT

更多的NBT可以查看NBT列表

支持<mob.name>之类的变量

把物品从左手移到右手: - setnbt{nbt="{LeftHanded:1b}"}

setSpeed·设置速度

设置施放者的移速为0.23到0.33的随机值:

- setspeed{a=0.23to0.33} @Self

setThreatTarget·设置威胁度

设置威胁度为11111(取值范围为0-65536):

- setthreattarget{a=11111}

Grenade·手雷

这将向目标投掷1枚手榴弹,引信时间为1秒,爆炸半径为2,不会引发火焰,但会破坏方块并在2秒后恢复方块:

- grenade{size=2;amount=1;fuse=20;fire=false;breakblocks=true;utime=40;ueffect=true;undotnt=true} @target

全息显示技能

createHealthbar·创建血条

显示目标怪物的血量:

- createhealthbar{o=2.5;so=0;fo=0;iy=false;c=100;display="$h"} @Self ~onSpawn

changeHealthbar·改变血条

在怪物受伤时改变血条:

- changehealthbar{d="[&4>>>&r$h&4<<<&r]"} @Self ~onDamaged

speechBubble·全息文字

显示全息文字信息,并在15秒后消失:

- speechbubble{d="Hello, &5<trigger.name>&f! My name is &3<mob.name>&f Nice to meet you.";ll=20;c=300} @trigger ~onInteract

modifyBubble·修改文字

改变全息文字的信息:

- modifybubble{d="Nice weather today"} @trigger ~onInteract

lineBubble·改变文字

改变同一行全息文字的内容:

- linebubble{id=MyBubble;m=replace;ol="前一句话";nl="后一句话"} ~onInteract

removeBubble·移除文字

移除指定ID的全息信息:

- removebubble{id=MyBubble} ~onInteract

目标

这部分机制需要MM4.3以上版本才能使用

目标 描述
@crosshair 使玩家的准星对准一个实体
@crosshairlocation{length=#} 使玩家的准星对准一个指定位置远的方块
@eyedirection{length=#} 使施放者的视角对准指定距离的方块
@lastdamager 最后一次造成伤害的实体
@ownerdirection{length=#} 使子怪物瞄准该怪物主人所视方块的第#格方块
@ownermotion{length=#} 使子怪物瞄准该怪物主人移动到的第#格方块
@ownertarget 使子怪物的目标瞄准为主怪物的目标
@selfmotion{length=#} 以施放者移动到的第#格方块为目标
@targetdirection{length=#} 以施放者所视方向的第#格方块为目标
@targetmotion{length=#} 以目标移动到的方块的第#格方块为目标
@targeterstarget 以施放者的目标为目标
@triggerdirection{length=#} 以触发者所视方向的第3格为目标
@triggermotion{length=#} 以触发者移动到的方块的第#格方块为目标
@triggerstarget 以触发者的目标为目标

触发器

触发器 描述
~onKill 就像 ~onKillPlayer 触发器一样,但这可以作用于非玩家实体.

额外拓展模块

这些拓展模块可以安装到你的服务器里的plugins/MythicMobsExtension/externals
然后重载MythicMobs或重启服务器来应用这些模块.
这些拓展模块由其他插件作者制作.

点击监听器

点击下载

机制

clicklistener{maxdelay=[数值];actionbar=[BOOL];meta=[STRING];startskill=[技能名];clickskill=[技能名];finishskill=[技能名];failskill=[技能名]} @PLAYERTARGETERS

使用这个机制可以记录玩家的左键和右键. 玩家蹲下即完成监听. 如果玩家没有maxdelay(最大点击间隔)内点击鼠标,监听器将会执行failskill(失败触发技能).
成功点击之后, maxdelay 将会被重置.结果将会被写入数据.默认的metaname为 "actionstring".

  • maxdelay: 最大点击间隔(单位为刻). 每次成功点击后间隔会被重置.
  • actionbar: true/false(默认关闭) 是否在actionbar显示点击.
  • meta: clickstring存储的metatag(元标签)位置.默认标签为 "actionstring".
  • startskill(开始技能): 监听开始时执行的技能.
  • clickskill(点击技能): 每次点击触发的技能.
  • finishskill(终结技能): 按下蹲伏键后触发的技能.
  • failskill(失败技能): 在最大点击间隔过后未进行蹲伏触发的技能.


聊天监听器

点击下载

机制

chatlistener{phrases="[STRING]"||"[ARRAY]";period=[数值];radius=[范围大小];breakonmatch=[BOOL];breakonfalse=[BOOL];inuseskill=[技能名];matchskill=[技能名];falseskill=[技能名];multi=[BOOL];meta=[标签名]} @PLAYERTARGETERS

用这个技能来监听一段时间内玩家是否聊天. 如果其中的一个或多个phrase(短语、单词)留空, 将会执行matchskill, 否则执行falseskill.不论匹配单词、短语成功或失败,都可用breakonmatch 和 breakonfalse 来取消这两个技能.
Radius为离怪物的监听范围,在这个范围内的玩家才会被监听. 这个数值可以设置为 2to5 或 <10 that stuff. 使用 inuseskill 来告诉其他(怪物/玩家?这只怪物已经在和某人谈话中.
想要这只怪物可以和多名玩家聊天, 只需设置multi为true.也可以在phrases下面设置 "" 来启用空格.可以使用如 <target.name>的Mythicmobs的所有变量.

  • phrases: 怪物监听的单词、短语.
  • period: 怪物监听的时间(单位为刻).
  • radius: 监听范围,在范围内的玩家才能与怪物聊天.
  • breakonmatch: 配对成功后停止监听.
  • breakonfalse: 配对失败后停止监听.
  • inuseskill: 怪物已经监听一名玩家或多名玩家时执行的技能.
  • matchskill: 单词、短语配对成功后执行的技能.
  • falseskill: 单词、短语配对失败后执行的技能.
  • multi: true/false(默认关闭) 是否可以与多名玩家聊天.
  • meta: 存储消息的元标签名. 如: meta=<trigger.uuid>lastmessage 设置了怪物的触发器为uuid + lastmessage的元标签. 标签的数值为玩家说的最后一句话.
  • removephrase: true/false(默认关闭) 配对成功后是否删除这句话.
  • cancelmatch: true/false/(默认关闭) 配对成功后取消配对事件.
  • cancelfalse: true/false(默认关闭) 配对失败后取消配对事件.

示例:

#技能 yaml
match:
  Skills:
  - message{msg="你输入了正确的密码!"} @trigger
false:
  Skills:
  - message{msg="错误的密码!"} @trigger
inuse:
  Skills:
  - message{msg="我现在很忙"} @trigger
  
#怪物 yaml
ChatMonkey:
  Type: zombie
  Health: 10
  AIGoalSelectors:
  - 0 clear
  Skills:
  - chatlistener{multi=false;phrases="123456";period=240;inuseskill=inuse;matchskill=match;falseskill=false} @trigger ~onInteract
  
#怪物yaml
ChatMonkey1:
  Type: zombie
  Health: 10
  AIGoalSelectors:
  - 0 clear
  Skills:
  - chatlistener{multi=true;meta=blabla<target.uuid>;phrases="救救我";period=240;inuseskill=inuse;matchskill=match;falseskill=false} @trigger ~onInteract
  

#技能yaml
match:
  Skills:
  - pstance{s="你说: <mob.meta.blabla<trigger.uuid>>"} @self
  - message{msg="<mob.stance>"} @trigger
  - message{msg="小心爬行者!"} @trigger
false:
  Skills:
  - message{msg="抱歉,我不知道你说是的什么."} @trigger
inuse:
  Skills:
  - message{msg="你已经在和我聊天了!"} @trigger

以下部分涉及到OTC插件、OTG地形编辑器MOD,与插件本体无多大关系。

otcbiome

点击下载

条件

otcbiome{biomes=[STRING]||[ARRAY];like=[BOOL];action=[BOOL]||[CAST]||[CASTINSTEAD]}

需要 OpenTerrainControl 插件

otgbiome

点击下载

条件

otcbiome{biomes="[STRING]"||"[ARRAY]";like=[BOOL];action=[BOOL]||[CAST]||[CASTINSTEAD]}

需要 OpenTerrainGenerator MOD

选项:

  • biomes: 使用生物群系名或将生物群系名作为数列. 多个生物群系可用逗号分隔 "" 示例: biomes="a biome,another biome"
  • like: true/false(默认关闭) 是否严格匹配生物群系名.

otgbiometemperature

点击下载

条件

otgbiometemperature{range=[RANGEDVALUE];debug=[BOOL];action=[BOOL]||[CAST]||[CASTINSTEAD]}

需要 OpenTerrainGenerator MOD

选项:

  • range: 范围设置,可以为 1to5 或 <0 示例: range=>0

otgbase

点击下载

条件

otgbase{base=[STRING];range=[RANGEDVALUE];debug=[BOOL];action=[BOOL]||[CAST]||[CASTINSTEAD]}

需要 OpenTerrainGenerator MOD

选项:

  • range: 范围设置,可以为 1to5 或 <0 示例: range=>0
  • base: 对比的基础数值:
    • temperature: 基础温度.
    • wetness: 生物群系湿度.
    • isleinbiome: 生物群系类岛的数量.
    • volatility: 生物群系的波动性.
    • color: 生物群系的颜色.
    • rarity: 生物群系的稀有度.
    • size: 生物群系的大小.


链接

Github源码


github原文



Jenkins开发版本下载