目标用于确定技能释放的对象。
目标总是必需的(否则生物不知道攻击谁),忘记目标大概是新接触 MythicMobs 的人最常犯的错误了。
如果在一个复杂技能使用了目标器,那么所有里面的技能的目标都会继承父目标。需要注意的是,大量使用目标可能造成服务器性能的影响。当然,你可以覆写父类目标,将复杂技能里的每个技能都分配单独的目标,甚至有一大堆目标一起工作的非常优秀的例子。
目标既可以复杂也可以简单,全看你想怎样!
生物目标
单生物目标
目标 | 缩写 | 描述 |
---|---|---|
@Self | 将自身作为目标 | |
@Target | 将生物当前的攻击目标作为目标 | |
@Trigger | 将触发技能的生物作为目标 | |
@NearestPlayer | 将最近的玩家作为目标 | |
@WolfOwner | 将狼的主人作为目标 | |
@Owner | 将生物的主人作为目标(机制setOwner) | |
@Mount (MM 2.5.0+) | 将骑乘的生物作为目标 |
多生物目标
目标 | 缩写 | 描述 |
---|---|---|
@LivingEntitiesInRadius{r=#} | 将半径内的生物作为目标 | |
@PlayersInRadius{r=#} | @PIR{r=#} | 将半径内的玩家作为目标 |
@MobsInRadius{r=#;types=X,X,X} | @MIR{r=R;t=T} | 将半径内的生物作为目标 |
@EntitiesInRadius{r=#;types=X,X,X} | @EIR{r=R;t=T} | 将目标范围内的所有实体作为目标 |
@PlayersInWorld | @World | 将当前世界所有玩家作为目标 |
@PlayersOnServer | @Server | 将服务器内的所有玩家作为目标 |
@PlayersInRing{min=#;max=#} | 将环内的所有玩家作为目标 | |
@PlayersNearOrigin{r=#} | ||
@MobsNearOrigin{r=R;t=T} | ||
@EntitiesNearOrigin{r=#} |
威胁表目标
这些目标只有在威胁表启用时可用
目标 | 缩写 | 描述 |
---|---|---|
@RandomThreatTarget | @RTT | 将威胁表内的随机一名玩家作为目标 |
@ThreatTable | @TT | 将所有威胁表内的生物作为目标 |
@ThreatTablePlayers | 将威胁表内的所有玩家作为目标 |
坐标目标
单坐标目标
目标 | 缩写 | 描述 |
---|---|---|
@SelfLocation | 生物自己的坐标 | |
@TargetLocation | 生物目标的坐标 | |
@TriggerLocation | 将触发技能的生物的坐标作为目标 | |
@Location{c=x,y,z} | 指定坐标作为目标 | |
@Origin | 将发射物的发射者的坐标作(不一定是生物)为目标 | |
@Spawner{s=[string]} | 将刷怪点的坐标作为目标 | |
@RLNTE{amount=#;radius=#;spacing=#;minradius=#;} | 选择生物周围随机的坐标点作为目标,amount代表坐标点数量,radius代表半径的距离,spacing代表每个坐标之间的距离,minradius代表最小半径,这个选择常用于 Meteor 技能 |
多坐标目标
目标 | 缩写 | 描述 |
---|---|---|
@PlayerLocationsInRadius{r=#} | @PLIR{r=#} | 将半径内的所有玩家的坐标作为目标 |
@Ring{radius=#;points=#} | 选择范围圆环内的目标点 | |
@Cone{angle=#;points=#;range=#;rotation=#;} | 选择一个锥形体作为目标点组 | |
@EntitiesInCone{angle=#;range=#;rotation=#;} | 选择锥形内的所有生物 |
特殊目标
有一些目标只能用于技能内部
Laser:
Mobtype: creeper
Display: 'Laser'
Health: 12
AITargetSelectors:
- 0 clear
- 1 players
Skills:
- skill{s=Laser;} @target
Laser:
Skills:
- ignite @line{r=1}
在这个技能内,目标选择为生物使用技能的终点
目标 | 缩写 | 描述 |
---|---|---|
@Line{radius=#;fromorigin=true/false} | @Line{r=#;fo=true/false} | 将目标和生物之间的连线的所有坐标点作为目标 |
@EntitiesInLine{radius=#;fromorigin=true/false} | @EIL{r=#;fo=true/false} | 将目标与生物间连线上的所有生物作为目标 |
这些全部在 MythicMobs 2.5.0 中加入
原版目标
这些目标会像 Minecraft 命令中的目标选择器一样工作。这些目标可能极其复杂冗长,但也可以很简单。这些拓展都包围在[ ]里,包含了可能的半径、数量、游戏模式、计分板分数、队员、生物种类、经验等级、目标等等。
请注意,因为一个BUG,原版的目标选择器搭配 MythicMobs 使用,有可能没有最小半径和半径参数,这将导致没有任何目标被选中。以后的 MythicMobs 版本不再能选择非同一世界的目标。
目标选择器 | 描述 |
---|---|
@p | 选择最近的玩家 |
@a | 选择所有玩家 |
@r | 选择随机玩家 |
@e | !选择所有实体 |
参数 | 描述 |
---|---|
x=X, y=Y, z=Z | 坐标。如果给出了这些属性,那么目标会以此作为基准 |
r=R | 最大半径,必须设置坐标 |
rm=RM | 最小半径 |
m=M | 游戏模式。目标处于的游戏模式 0 = 生存, 1 = 创造, 2 = 冒险, 3 = 旁观 |
c=C | 最大数量的生物,正数尝试选择最近的,负数则是最远的 |
l=L | 最大等级,会尝试选择最高的 |
lm=LM | 最小等级 |
score_ |
最大计分板分数 |
score_ |
最小计分板分数 |
team=TEAM | 是“TEAM”队伍的成员 |
team=!TEAM | 不是“TEAM”队伍的成员 |
name=NAME | 名称必须为“NAME” |
name=!NAME | 名称必须不为“NAME” |
dx=DX, dy=DY, dz=DZ | 体积尺寸,选择长方形区域 |
rx=RX | 最大垂直旋转角 |
rxm=RXM | 最小垂直旋转角 |
ry=RY | 最大水平旋转角 |
rym=RYM | 最小水平旋转角 |
type=TYPE | 目标必须为“TYPE”型生物 |
type=!TYPE | 目标必须不是“TYPE”型生物 |
tag=TAG | 目标必须拥有“TAG”计分板标签 |
tag=!TAG | 目标必须没有“TAG”计分板标签 |
示例
@p[lm=10]
- 选择最近经验大于10级的玩家
@a[r=10]
- 选择所有10格内的玩家
@a[r=10,c=3]
- 选择10格内最近的3个玩家
@a[r=10,c=2,lm=10]
- 选择10格内的经验大于10级的最近的2个玩家
@a[r=10,score_ASD=1]
- 选择10格内的计分板 ASD 最大为1的所有玩家
@a[r=12,score_ASD_min=2]
- 选择10格内的计分板 ASD 最小为2的所有玩家
可能性非常之多!
目标过滤器
目标过滤器允许你过滤掉现有的目标,让目标选择器更加灵活
可以使用两个选项(可用任何生物目标):
- ignore=X
- target=X
举个例子,过滤掉所有的玩家和动物,可以这样做:
damage{a=20} @EntitiesInRadius{r=10;ignore=players,animals}
让目标只选择玩家,可以这样:
skill{s=ASkill} @EntitiesInRadius{r=5;target=players}
可用的过滤器:
- animals (非敌人生物)
- creative (创造模式,默认忽略)
- creatures (任何生物)
- flyingmobs
- monsters (敌对生物)
- NPCs (Citizens 的 NPC,默认忽略)
- players
- samefaction (同派系的生物)
- spectators (旁观者,默认忽略)
- watermobs
- 还有更多....