目标选择器 - 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 (最低威胁度)
逐步对目标选择器所选取的所有事物激活技能
每次激活间隔为修改项: targetinterval
的值.
换句话说, 范围目标选择器不再一次性选取所有事物
默认值为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}}