目标选择器 - woshiermuqwq/mythic-chinese GitHub Wiki

目标选择器

目标选择器决定技能作用于什么,可以是实体、位置 乃至一个区域内的方块坐标.

一行技能只能有一个目标选择器

技能组内目标不填写目标选择器时,目标选择器将为实体文档内该技能组所处行的目标选择器.

技能组被另一个技能组(父技能组)激活时, 该技能组内未填写目标选择器的技能行的目标选择器
将为 父技能组内用于激活该技能组的技能行 所写的目标选择器

实体配置内的技能行无目标选择器时, 默认使用 @none(绝大多数技能)

@Trigger所选取的目标是激活触发器的人,如触发器~onDamaged
会让实体受伤后选择攻击者为技能目标,而不是自身当前的目标为技能目标.

部分目标选择器的范围修改项支持占位符(如@EIR、@PIR)

实体目标选择器

单实体

名称 缩写 注释
@Self @caster, @boss, @mob 选取施法者自身(无法选取创造模式)
@Target @T 选取自身的当前目标(并非技能目标)
[@Trigger](/技能/触发器#关于trigger触发者) 选取激活触发器的实体
@NearestPlayer{radius(r)=5} 以自身为中心
选取指定半径
球体范围内离自身最近的玩家
@WolfOwner 选取狼的主人
@Owner(>1.12.2) 选取施法者的主人
@Mount @Vehicle(5.4.0) 施法者(非玩家)的坐骑
@Vehicle(4.12) 施法者(玩家)的载具
@Parent(>1.12.2) @Summoner 选取父系实体(搭配Summon)
@Passenger @Rider 选取施法者的骑乘者
@PlayerByName{name="Ashijin"}(4.12) @SpecificPlayer 选取名称为指定字符串的玩家, 支持占位符
@UniqueIdentifier{u="<target.uuid>"}(4.13) @UUID UUID为指定字符串的实体, 仅施法者为玩家时可用
支持占位符
@Dad(5.0.3) @Father / @Daddy 选取施法者的父亲
@Mom(5.0.3) @Mother / @Mommy 选取施法者的母亲

多实体

名称 缩写 注释
@EntitiesInRing{min=最小半径;max=最大半径} @ERing 选取以指定最小半径为内环半径
指定最大半径为外环半径
所形成圆环内的全部实体
@EntitiesNearOrigin{r=半径} @LivingNearOrigin{r=5} / @NearOrigin{r=5} / @ENO{r=5} 坐标原点为中心
选取指定半径
球体范围内的所有实体
@ItemsInRadius{radius=5}(4.13) @IIR{r=半径} 以施法者为中心
选取指定半径
球体范围内的所有掉落物
@ItemsNearOrigin{radius=5}(4.13) @IIO{r=半径} / @INO{r=半径} 坐标原点为中心
选取指定半径
球体范围内的所有掉落物实体
@LivingInCone{a=弧度;r=母线长度;rot=圆锥体的母线起始角度} @EIC{a=90;r=16;rot=0.0}, EntitiesInCone, LEIC 选取位于指定弧度
指定半径、指定母线起始角度
顶点垂直偏移为0.0格方块
所形成的圆锥体范围内的所有实体
顶点为施法者位置
@LivingInWorld @LivingEntitiesInWorld
@EntitiesInWorld
@AllInWorld

@EIW
选取所处世界的全部实体
@LivingEntitiesInRadius{livingonly=true;radius=5} @LivingEntitiesInRadius{livingonly=是否排除箭矢等非生物实体;radius=半径}
@EntitiesInRadius
@AllInRadius
@EIR{l=true;r=5}
以自身为中心, 选取指定半径
球体范围内全部实体(包括创造/观察模式玩家)
选项: livingonly 新增于 MM 4.13, 也就是说在这之前技能不可能选取箭矢等实体
@MobsNearOrigin{r=#;t=种类,种类,种类} @MobsNearSource 坐标原点为中心
选取指定半径
球体范围内的所有生物(可不指定 可为MythicMobs实体)
@PlayersInRadius{r=半径} @PIR{r=半径} 以自身为中心
选取指定半径
球体范围内的全部玩家
不选取创造观察模式玩家
从4.13开始支持变量与占位符
无默认值, 必须定义半径
@MobsInRadius{r=半径;types=种类,种类,种类} @Mobs{r=半径;t=种类,种类,种类}
@MIR
选取指定半径
球体范围内所有的指定实体
可不指定实体
可为MythicMobs实体
@PlayersInWorld @World 选取所处世界的全部玩家
@PlayersOnServer @Server 选取服务器内的全部玩家
@PlayersInRing{min=最小半径;max=最大半径} @PRing 选取以指定最小半径为内环半径
指定最大半径为外环半径
所形成圆环内的全部玩家
@PlayersNearOrigin{r=半径} @PlayersNearSource 坐标原点为中心
选取指定半径
球体范围内的所有玩家
父系技能目标选择器必须为坐标类选择器
@PlayersNearTargetLocation{r=半径} @PNTL{r=半径} 以技能目标位置为中心
选取指定半径
球体范围内的所有玩家
父系技能目标选择器必须为坐标类选择器
@Children @Child, @Summons 选取子系实体(搭配Summon)
@Siblings @Sibling
@Brothers
@Sisters
选取目标的近亲(如骷髅与流浪者)

威胁度

需要开启威胁度

名称 缩写 注释
@RandomThreatTarget @ThreatTableRandomTarget
@RTT
随机选取一个拥有威胁度的实体
@ThreatTable @ThreatTargets
@TT
选取所有拥有威胁度的实体
@ThreatTablePlayers @PlayersInThreatTable
@TTP
选取所有拥有威胁度的玩家
@RTTL 随机选取一个拥有威胁度的实体的位置

坐标目标选择器

这些目标选择器共有的修改项有: (MM 4.13及以上)

  • Xoffset/xo/x: 中心X轴偏移(格方块)
  • Yoffset/yo/y: 中心Y轴偏移(格方块)
  • Zoffset/zo/z: 中心Z轴偏移(格方块)
  • ForwardOffset/foffset/fo: 中心前后偏移(格方块 基于视角)
  • SideOffset/soffset/so: 中心左右偏移(格方块 基于视角)
  • Rotatex/rotx: X轴旋转
  • Rotatey/roty: Y轴旋转
  • Rotatez/rotz: Z轴旋转
  • Coordinatex, cx: 中心X轴坐标
  • Coordinatey, cy: 中心Y轴坐标
  • Coordinatez, cz: 中心Z轴坐标
  • BlockTypes, blocktype, bt: 仅选取的方块种类, 必须全大写, 用,隔开
  • BlockIgnores, blockignore, bi: 不选取的方块种类, 必须全大写, 用,隔开
  • coordinateyaw, cyaw: 定义视角基线的yaw值(无效)
  • coordinatepitch, cpitch: 定义视角基线的pitch值(无效)
    如: @forward{f=1;cpitch=0} 将选取 正前方1格位置 的方块, 而非准心前方1格位置的方块

全部支持占位符变量

单坐标

名称 缩写 注释
@SelfLocation{x=0.0;y=0.0;z=0.0;
forwardoffset=0.0;sideoffset=0.0}
@CasterLocation
@BossLocation
@MobLocation
选取 自身位置且垂直偏移0.0格方块
@SelfEyeLocation{length=5}(4.13) @eyeDirection
@casterEyeLocation
@BossEyeLocation
@mobEyeLocation
选取施法者视角正前方第5格方块位置
@Forward{forward(f, amount, a)=5;yoffset(y)=0.0;
sideOffset=0.0;rotation=0.0;useeyedirection(uel)=false;lockpitch()=false(5.0.3)}
选取 当前视角 正前方第5格方块位置且垂直偏移0.0格方块
左右偏移0.0格位置的方块
且不以眼睛前方作为选择基准(uel=false)
以视角作为基准而不是朝向(朝向不受俯仰视影响, lockpitch为true时以朝向为基准)
@TargetLocation{yoffset=0;maxdistance=64} @Targetloc{y=垂直偏移;maxdistance=选取的最大距离}
@TL
选取当前目标的位置
@TargetBlock{length=3} 选取准心所瞄准着的方块
@TriggerLocation 选取触发者的位置
@Location{c=X轴坐标,Y轴坐标,Z轴坐标,
俯仰视角度,水平视角角度}
@Loc, @L 选取指定坐标位置
@Origin{xoffset=0;yoffset=0;zoffset=0;
sideoffset(5.0)=1;forwardoffset(5.0)=2}
@Source 选取坐标原点
并三轴偏移0格方块,前后偏移1格方块
左右偏移2格方块. 详细信息->[1]
@Spawners{s=字符} 选取指定生成点(可多个)
使用g:组名 以选取一整个组
也可以使用 Spawner* 以选取 Spawner1,Spawner2,Spawner3等)
@ObstructingBlock(4.11) 选取与技能目标之间路径上离自身最近的固体方块
@NearestStructure(4.13) 选取离自身最近的结构(地牢等)的中心位置
@CasterSpawnLocation(4.11) @casterspawn 选取施法者的出生点
@SpawnLocation(4.13) 选取所处世界的世界重生点
@VariableLocation{var=变量种类.变量名}(5.0.3) @VarLocation 选取变量值所指定的位置

多坐标

名称 缩写 注释
@PlayerLocationsInRadius{r=半径} @PLIR{r=#}
@PLR
@LocationRadius
以自身位置为中心
选取指定半径 球体范围内的所有玩家
@ForwardWall{forward(f, amount, a)=5;yoffset(y)=0.0;height(h)=3;width(w)=1}(4.13) 选取 当前朝向 正前方第5格方块位置且垂直偏移0.0格方块
左右偏移0.0格位置
指定高度/宽度的一面墙
@Cone{angle=90;points=点数;range=2;rotation=10;yoffset=0.0} 随机选取位于
弧度为180, 半径为2
母线起始角度为10
顶点垂直偏移为0.0格方块
所形成的圆锥体范围内
指定数量的坐标点作为技能目标
@Rectangle{x=1;y=0;z=3;xoffset(xo)=1;yoffset(yo)=1;zoffset(zo)=0;points(p, d)=5;fill(f)=false;outline(o, e)=false;fromorigin(origin)=false;rotation(r)=0,0,0}(5.3.0) @Cube、@Cuboid 于技能目标位置绘制一个X轴长1格, 高1格, Z轴长3格, 每条边上有5个点, 空心, 不仅仅绘制边, 不起始于坐标原点, 立体空间内三轴旋转均为0°的立方体
@Ring{radius=半径;points=点数;yoffset=0.0;rotationx=0;rotationy=0;rotationz=0;offsetx=0;offsety=0;offsetz=0} 以坐标原点为中心
在以指定半径所形成的环上
规则地选取指定数量的坐标点作为技能目标 (从4.13开始支持变量与占位符)
@RingAroundOrigin{radius=半径;points=点数;yoffset=0.0;rotationx=0;rotationy=0;rotationz=0;offsetx=0;offsety=0;offsetz=0} @RingAroundOrigin
@RAO
坐标原点为中心
在以指定半径所形成的环上
规则地选取指定数量的坐标点作为技能目标 (4.14.0)
@Sphere{radius=半径;points=点数;yoffset=0.0}(4.12) 以自身为中心
在以取指定半径形成的球体最外层上
规则地选取指定数量的坐标点作为技能目标 (从4.13开始支持变量与占位符)
@BlockVein{blocktype(b)=Stone;limit(l, m)=10;originmustmatch(match)=true}(5.3.0) @Vein、@bv 坐标原点为中心, 选取周围与给定的方块种类相同的 指定数量的方块的所处位置
@BlocksInRadius{radius=#;radiusy=#;noise=#;shape=选取范围的形状, 默认sphere sphere/cube;onlyair=是否仅选取空气false;noair=true}(4.11) 以自身为中心
取指定半径
球体范围内的所有方块
@BlocksNearOrigin{radius=#;radiusy=#;noise=#;shape=选取范围的形状
默认sphere sphere/cube;onlyair=是否仅选取空气false;noair=true}
坐标原点为中心
选取指定半径
球体范围内的所有方块的位置

无用目标选择器

名称 缩写 注释
@None @Console

技能目标选择器(必须被写在元技能(技能组)内):

Laser:
  Type: creeper
  Display: 'Laser'
  Health: 12
  AITargetSelectors:
  - 0 clear
  - 1 players
  Skills:
  - skill{s=Laser} @target
 Laser:
  Skills:
  - ignite @targetedtarget

点燃自身与目标最短路线上的所有实体

名称 缩写 注释
@Line{radius=半径;fromorigin=true/false} @Line{r=半径;fo=true/false} 选取自身与技能目标最短路线上的所有实体
@LocationsOfTargets(4.11) @LOT 以父系技能目标选择器
所选取的实体的位置为目标
@EntitiesInLine{r=半径;fo=true/false} @EIL{r=半径;fo=true/false} 选取自身与技能目标最短路线上的所有实体,包括施法者
@LivingNearTargetLocation{radius=5} @LivingEntitiesNearTargetLocation
@LNTL{r=半径}
以技能目标为中心
选取指定半径
球体范围内的全部实体
父系技能目标选择器必须为坐标类选择器
@PlayersNearTargetLocation{radius=5} @PNTL{r=半径} 以技能目标为中心
选取指定半径
球体范围内的全部玩家
父系技能目标选择器必须为坐标类选择器
@RLNT{a=5;r=5;s=0;minr=0} @RandomLocationsNearTarget{amount=选取点数;maxradius=最大半径(整数);spacing=每点间隔;minradius=最小半径(整数)}
@RandomLocationsNearTargetEntities
@RandomLocationsNearTargetLocations
@RandomLocationsNearTargets
@RLNTE/@RLNTL
以技能目标(仅能为实体)为中心
随机选取方形范围内
指定数量的坐标点
作为技能目标
方形范围边长为r的值
@RLNO{a=5;r=5;s=0;minr=0}(4.12) @RandomLocationsNearOrigin{amount=选取点数;maxradius=最大半径(整数);spacing=每点间隔;minradius=最小半径(整数)}
@RandomLocationsOrigin<
@RLO
坐标原点为中心
指定数量的坐标点
作为技能目标
方形范围边长为r的值
@RLNC{a=5;r=5;s=0;minr=0}(4.12) @RandomLocationsNearCaster{amount=选取点数;maxradius=最大半径(整数);spacing=每点间隔;minradius=最小半径(整数)}
@RandomLocations
以施法者为中心
指定数量的坐标点
作为技能目标
方形范围边长为r的值
@TargetedLocation{x=0.0;y=0.0;z=0.0} @targetedLocations 选取已被父系技能的目标选择器
所选取的实体的位置(4.12)
@TargetedTarget(4.13) @Targeted 选取已被父系技能的目标选择器
所选取的实体
@FloorOfTargets(4.11) @FOT 以技能目标脚下的方块为技能目标
@ProjectileForward{forward(f)=5;rotate(rot)=0;sideoffset=0}(5.0) 选取 抛射物当前朝向 正前方第5格方块位置且垂直偏移0.0格方块, 不进行转向

@TrackedLocation(4.13) 选取 由技能: Track Location 所记录的位置

目标选择器修改项

从 MM 5.0.3 起, 所有目标选择器支持过滤器与数量限制器

目标过滤器

目标过滤器将令目标选择器选择或忽视特定实体.
盔甲架与Marker默认被过滤
默认过滤器可在 config.yml 内修改

过滤器就是这俩选项(所有目标选择器都能用):

  • ignore=过滤器修改项可用值
  • target=过滤器修改项可用值

比如,要对半径10米内的所有 非动物与玩家的实体造成20点伤害

    d{a=20} @eir{r=10;ignore=players,animals}

对半径5米内的所有实体(不仅有玩家)释放cs:

    skill:cs @eir{r=5;target=players}

过滤器修改项可用值:

过滤器名 别称 描述
self(大小写限制) caster 施法者
armorstand(4.14) armor_stand 盔甲架
animals 被动实体
creative 创造模式玩家 默认忽视
creatures 拥有AI的实体
flyingmobs 可飞行实体
marker(4.14) 不可见低耗能实体* 默认忽视
monsters 敌对实体
NPCs Citizens的NPC 默认忽视
players 玩家
samefaction 相同阵营实体
spectators 处在观察者模式的玩家
vanilla 原版实体
villager 村民
owner 主人
watermobs 水生实体

特定实体选择器(Target)也能这么写: target过滤器修改项可用值=true 相当于target=值 如 targetPlayers=false
但过滤器(ignore)却不行

目标数量限制器

所有实体目标选择器都支持数量限制器,支持选择顺序.

目标数量限制器写法:

  • limit=数量
  • sort=排列方式

距离自身近的优先,选取半径30格方块内的2名玩家:

  • @PlayersInRadius{r=30;limit=2;sort=NEAREST}

目标数量限制器可用值:

  • NONE (无)
  • RANDOM (随机)
  • NEAREST (最近)
  • FURTHEST (最远)
  • HIGHEST_HEALTH (最高生命)
  • LOWEST_HEALTH (最低生命)
  • HIGHEST_THREAT (最高威胁度)
  • LOWEST_THREAT (最低威胁度)

目标选择间隔(4.14.0)

逐步对目标选择器所选取的所有事物激活技能
每次激活间隔为修改项: targetinterval 的值.
换句话说, 范围目标选择器不再一次性选取所有事物 默认值为0.

目标选择器对象(5.3.0)

定义坐标类目标选择器的对象 换句话说就是定义坐标目标选择器取决于什么
可用选项: ofParent(父系实体) ofOwner(主人) ofTrigger(触发者)

出生后可以把我拉走:
 Type: Wolf
 Skills:
 - setOwner @NearestPlayer{r=99} ~onSpawn
 - tp @Forward{f=5;y=1;ofOwner=true} ~onTimer:1

{{462176273107b7c570e87cde9a3b9a28_a.gif}}

⚠️ **GitHub.com Fallback** ⚠️