====== Targeters ======
===== 目标 =====
瞄准器用于确定技能在发射时的目标。
总是需要瞄准器(否则 生物 不知道它在攻击什么),忘记瞄准器可能是 MythicMobs 新手最常犯的错误之一。
如果目标与 组合技能 一起使用,则 组合技能 中的所有技能都会继承父目标。记住这一点很重要,因为过度使用目标器是服务器性能不佳的常见原因。当然,您可以通过为 组合技能 内的单个技能提供自己的目标器来覆盖父目标器以供使用,甚至还有一些目标器专门针对继承的目标工作。
目标可以像您想要的那样复杂或简单!
**组合技能详见 [[插件手册:mythicmobs:技能:机制列表|技能列表]]**
===== 实体目标 =====
**单一实体目标**
|**瞄准器**|**缩写**|**描述**|
|@Self|@Caster|瞄准生物自己|
|@Target|@T|瞄准生物指向的目标|
|@Trigger||以触发技能的实体为目标|
|@NearestPlayer{r=#}||以半径范围内最近的玩家为目标。默认 r=5|
|@WolfOwner||以狼的主人为目标|
|@Owner||以生物的主人为目标|
|@Mount||以生物当前骑乘的实体为目标|
|@Parent||如果生物被其他生物 召唤 ,则以 召唤者 为目标。|
|@Children||以施法者 召唤 的任何 子实体 为目标。|
|@Passenger||以生物的乘客。|
|@CasterSpawnLocation||以施法者生成的位置为目标。|
|@PlayerByName{name="Ashijin"}||按名称定位特定玩家,支持占位符。|
|@UniqueIdentifier{u=""}|@UUID|通过 UUID 定位特定实体,支持占位符。|
|@Vehicle||瞄准您安装的载具(矿车,船)|
===== 多实体目标 =====
|**瞄准器**|**缩写**|**描述**|
|@LivingInCone{a=90.0;r=16.0;rot=0.0}|@EIC{}|以角度 a 和长度为 r 的锥体中的所有生物为目标,相对于方向旋转 rot|
|@LivingInWorld|@EIW|以所在世界中的所有生物为目标|
|@PlayersInRadius{r=#}|@PIR{r=#}|以给定半径内的所有玩家为目标|
|@MobsInRadius{r=#;types=X,X,X}|@MIR{r=#;t=X,X,X}|以半径内所有给定类型的生物为目标|
|@LivingEntitiesInRadius{r=#}|@EIR{r=#;t=X,X,X/ignore=x,x,x}|以给定半径内的所有实体为目标。(ignore为忽略某些实体,详看**定位器选项**)|
|@PlayersInWorld|@World|以当前世界的所有玩家为目标。|
|@PlayersOnServer|@Server|以服务器中的所有玩家为目标。|
|@PlayersInRing{min=#;max=#}|@PIR{r=#}|以指定的半径“环”内的所有玩家为目标。|
|@PlayersNearOrigin{r=#}||以组合技能起源附近的玩家为目标。|
|@MobsNearOrigin{r=#;t=X}||以组合技能起源附近的怪物为目标。|
|@EntitiesNearOrigin{r=#}|@EIO{r=#} / @ENO{r=#}|以组合技能起源附近的实体为目标。|
|@PlayersNearTargetLocation{r=#}|@PNTL{r=#}|瞄准目标位置附近的所有玩家。默认情况下半径=5。|
|@Siblings||针对目标的兄弟姐妹。|
|@Targeted||针对继承的目标。|
===== 仇恨表目标 =====
这些目标仅在生物启用了仇恨表时才起作用。
|**瞄准器**|**缩写**|**描述**|
|@RandomThreatTarget|@RTT|以仇恨表上的随机人为目标|
|@ThreatTable|@TT|以仇恨表上的所有实体为目标|
|@ThreatTablePlayers||以仇恨表上的所有玩家为目标|
|@RTTL||瞄准仇恨表上随机目标的位置|
===== 定位器 =====
|**瞄准器**|**缩写**|**描述**|
|@SelfLocation{y=0.0}||使用 偏移量 0.0 定位生物的位置本身|
|@Forward{f=5;y=0.0}||以 偏移量 0.0 定位实体方向前方 5 个方块的位置|
|@TargetLocation|@targetloc, @TL|瞄准生物的目标位置|
|@TriggerLocation||瞄准触发技能的实体的位置|
|@Location{c=x,y,z,yaw,pitch}||该技能将针对指定的坐标,偏航和俯仰|
|@Origin{xoffset=0;yoffset=0;zoffset=0}||瞄准 组合技能的原点。通常是施法生物,也可以指向投射物当前的位置|
|@Spawner{s=[string]}||以指定生成器的位置为目标。该字符串可以是生成器的名称或一组生成器的名称(使用 g:groupname),并且还接受通配符(Spawner* 将针对 Spawner1、Spawner2、Spawner3 等)|
|@ObstructingBlock||尝试瞄准施法者前方阻碍它的方块|
===== 多地点定位器 =====
|**瞄准器**|**缩写**|**描述**|
|@PlayerLocationsInRadius{r=#}|@PLIR{r=#}|以给定半径内的所有玩家位置为目标|
|@Ring{radius=#;points=#;yoffset=#}||目标点形成位置环|
|@Cone{angle=#;points=#;range=#;rotation=#;yoffset=#}||返回包含锥体的目标位置的点数(注意:锥体固定在 y 轴上,不能向上或向下旋转)|
|@EntitiesInCone{angle=#;range=#;rotation=#;}||瞄准锥体内的所有实体|
===== 特殊目标 =====
|**瞄准器**|**缩写**|**描述**|
|@None||不提供目标。(对于没有目标输入的机制很有用。)|
这些是meta目标 - 它们只能在技能内部使用。例如:
Laser:
Mobtype: creeper
Display: 'Laser'
Health: 12
AITargetSelectors:
- 0 clear
- 1 players
Skills:
- skill{s=Laser} @target
Laser:
Skills:
- ignite @line{r=1}
在怪物技能中,指定的目标是 meta目标使用的终点。
|**瞄准器**|**缩写**|**描述**|
|@Line{radius=#;fromorigin=true/false}|@Line{r=#;fo=true/false}|瞄准生物和指定目标之间的位置|
|@EntitiesInLine{r=#;fo=true/false}|@EIL{r=#;fo=true/false}|瞄准目标和施法生物之间一条线上的任何实体。|
|@LivingNearTargetLocation{radius=5}|@LNTL{r=#}|以meta目标位置附近的所有生物为目标。|
|@PlayersNearTargetLocation{radius=5}|@LNTL{r=#}|以meta目标位置附近的所有玩家为目标。|
|@RLNTE{a=#;r=#;s=#;minr=#}||瞄准目标实体周围的随机位置。(用法示例:流星技能。数量决定流星的数量,半径是落下的流星的范围有多宽,间距是它们相距多远。一般保持半径大于间距,因为它是未经测试的小半径和大间距将如何做|
|@FloorOfTargets|@FOT|瞄准目标下方的方块|
|@LocationsOfTargets|@LOT|Targets 目标的位置|
|@BlocksInRadius{radius=#;radiusy=#;noise=#;shape=sphere/cube;onlyair=false;noair=true}||以块中的所有块为目标|
|@BlocksInChunk{noair=true/false;onlyair=true/false;nearorigin=true/false}||以块中的所有块为目标|
|@BlocksNearOrigin{radius=#;radiusy=#;noise=#;shape=sphere/cube;onlyair=false;noair=true}||瞄准指定目标半径内的所有方块|
===== 定位器选项 =====
**目标过滤器**
目标过滤器允许您过滤掉某些目标,并使目标更加灵活。
它们与两个选项一起使用(适用于任何实体目标):
ignore = X
target = X
例如,要制作一个忽略任何玩家或非敌对生物的目标,您可以使用:
damage{a=20} @EntitiesInRadius{r=10;ignore=players,animals}
要使定位器仅针对玩家,您可以执行以下操作:
skill{s=ASkill} @EntitiesInRadius{r=5;target=players}
可能的过滤器包括:
* self (自己)
* animals (非敌对生物)
* creative (创造模式,默认忽略)
* creatures (任何类型的有知觉的实体)
* flyingmobs (飞行中的生物)
* monsters (敌对生物)
* NPCs (Citizens NPC 默认忽略)
* players (玩家)
* samefaction (标记为相同阵营类型的生物)
* spectators (观众 默认忽略)
* vanilla
* watermobs (水中的生物)
* 等待更新更多...
**您还可以通过添加选项targetXXXXX将 XXXXX 替换为过滤器名称来关闭特定过滤器,例如targetPlayers=false或targetcreative=true**
===== 目标限制 =====
所有实体目标器也支持目标限制(从 v4.5 开始)。有了这个,您可以限制目标的数量,包括选择它们的顺序。
这是通过以下选项完成的:
* limit=#
* sort=X
假设您希望您的能力仅针对 30 码内最近的 2 个玩家。为此,您只需将限制 2 设置为并按最近的排序:
**@PlayersInRadius{r=30;limit=2;sort=NEAREST}**
目前 sort 可以有以下值:
* NONE (通常按实体存在的时间排序)
* RANDOM (随机)
* NEAREST (最近的)
* FURTHEST (最远的)
* HIGHEST_HEALTH (血量最高的)
* LOWEST_HEALTH(血量最低的)
* HIGHEST_THREAT (仇恨最高的)
* LOWEST_THREAT (仇恨最低的)