- 欢迎来到Minecraft插件百科!
- 对百科编辑一脸懵逼?帮助:快速入门带您快速熟悉百科编辑!
- 因近日遭受攻击,百科现已限制编辑,有意编辑请加入插件百科企鹅群:223812289
MythicMobsExtension
MythicMobsExtension
Wiki由muhahahahe编写 | 可能会包含语法、拼写错误. 插件介绍这个插件是基于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 描述
条件条件的使用方法和mythicmobs内的用法一样 可用条件列表点击文字跳转到相应条件 总体条件译者注: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} 机制列表技能
原版增强技能列表
实用技能列表
技能详解译者注:有关时间的数值单位都是tick,原版的mm也是. 20ticks=1s asquip
这会给盔甲架的主手位置装备上钻石剑. - asquip{i=diamond_sword:0} cure | removePotion
使用这个来移除目标实体身上所有或特定的药水效果. 这基于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·破甲
使用这个来损坏目标全部或指定的装备 多次损坏所有装备耐久度: 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·缴械
缴械目标5秒: - disarm{duration=100} @Target dropInventory·弃物
将玩家背包内的所有物品丢到地上: - dropinventory{item="where=ANY,material=ANY,amount=64";pieces=41} @trigger ~onDamaged dropStolenItems·弃物同上,但只作用于偷窃机制 - dropstolenitems @Self ~onDeath entityGoggle / entityGoggleAt·凝视
强制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·饱食
使5格内的玩家的饱食度增加5格: - feed{a=10} @PIR{r=10} playerGoggle | playerGoggleAt
强制附近的玩家看着施放者5秒: - playergoggle{duration=100} @NearestPlayer - playergoggleat{duration=100} @NearestPlayer playerSpin·旋转
强制附近的玩家旋转5秒: - playerspin{duration=100;s=50} @NearestPlayer playerWeather·
改变10格内玩家的天气10秒: - playerweather{w=DOWNFALL;time=18000;duration=200} @PIR{r=10} ~onAttack playerZoom
使附近玩家的视角变为广角: - playerzoom{v=1} @NearestPlayer oxygen
给10格内的玩家增加5格氧气值 - oxygen{a=100} @PIR{r=10} setRotation·设置转向
旋转10格内的实体90° - setrotation{d=100;yo=90} @EIR{r=10} steal·窃取
偷窃目标背包内的钻石剑: - 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·眩晕
击晕目标5秒: - stun{dur=100} @Target swap·易位
在受伤时有10%几率交互敌我位置: - swap{kty=true;kcy=false} @Trigger ~onDamaged 0.1 unEquip·卸甲
在受伤时有10%几率脱下自身的头盔: - unequip{a=helmet} @Self ~onDamaged 0.1 customDamage·自定义伤害
- 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·技能检测在某种条件下执行技能 - 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 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 playLoading·土遁强制目标玩家看着泥土墙(minecraft加载界面)3秒并由于关闭物品机制而复原: - playloading{repeat=59;repeatinterval=1} @Target - closeinventory{delay=60} @Target 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以上版本才能使用
触发器
额外拓展模块这些拓展模块可以安装到你的服务器里的plugins/MythicMobsExtension/externals 点击监听器机制
使用这个机制可以记录玩家的左键和右键. 玩家蹲下即完成监听. 如果玩家没有maxdelay(最大点击间隔)内点击鼠标,监听器将会执行failskill(失败触发技能).
聊天监听器机制
用这个技能来监听一段时间内玩家是否聊天. 如果其中的一个或多个phrase(短语、单词)留空, 将会执行matchskill, 否则执行falseskill.不论匹配单词、短语成功或失败,都可用breakonmatch 和 breakonfalse 来取消这两个技能.
示例: #技能 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条件
需要 OpenTerrainControl 插件 otgbiome条件
选项:
otgbiometemperature条件
选项:
otgbase条件
选项:
链接
|