API
选取器可以通过指定一个形状和若干规则来选取某个区域内的多个单位。选取器有一些默认的规则:
选取
target
附近的敌方英雄
local group = base.selector()
-- 圆心为target,半径为1000的圆形
: in_range(target, 1000)
-- 只选取hero的敌人
: is_enemy(hero)
-- 只选取类型为英雄的单位
: of_type {'英雄'}
-- 获取选取结果
: get()
获取到的选取结果是一张存放了所有被选到单位的序列,你可以遍历这张表来执行你的代码
for _, unit in ipairs(group) do
-- 你的代码
end
如果你想在选取后直接遍历,可以这么写
for _, unit in base.selector()
: in_range(target, 1000)
: is_enemy(hero)
: of_type {'英雄'}
: ipairs()
do
-- 你的代码
end
选取器可以进行排序,以便你选取到最特殊的几个单位
-- 选取target附近的单位,并将距离近的单位排在前面
local group = base.selector()
: in_range(target, 1000)
: sort_nearest_unit(target)
-- 队伍第1位的单位就是离target最近的单位
local unit = group[1]
创建
- 返回
- selector (selector) - 选取器
local selector = base.selector()
selector_type_of
设置默认选取类型
- 参数
- list (table) - 类型列表
设置默认选取类型后,相当于创建选取器后自动使用了of_type
base.selector_type_of = {'英雄', '小兵', '野怪'}
形状
选取器只 能拥有一个形状,后设置的形状覆盖之前的形状
in_line
直线
- 参数
- start (point) - 起点
- angle (number) - 方向
- len (number) - 长度
- width (number) - 宽度
- 返回
- selector (selector) - 选取器
local selector = base.selector()
: in_line(start, angle, len, width)
in_range
圆形
- 参数
- center (point) - 圆 心
- range (number) - 半径
- 返回
- selector (selector) - 选取器
local selector = base.selector()
: in_range(center, range)
in_sector
扇形
- 参数
- center (point) - 圆心
- range (number) - 半径
- angle (number) - 角度
- section (number) - 扇形区间
- 返回
- selector (selector) - 选取器
local selector = base.selector()
: in_sector(center, range, angle, section)
规则
根据形状选取到单位后,会根据规则进行一次筛选。
of_scene
设定选取场景,不设置的话为默认场景'default'
- 参数
- scene_name (string) - 选取场景
- 返回
- selector (selector) - 选取器
local selector = base.selector()
: of_scene("scene_name")
is_ally
只选取友方
- 参数
- who (unit/player) - 参考单位或玩家
- 返回
- selector (selector) - 选取器
local selector = base.selector()
: is_ally(hero)
is_enemy
只选取敌方
- 参数
- who (unit/player) - 参考单位或玩家
- 返回
- selector (selector) - 选取器
local selector = base.selector()
: is_enemy(hero)
is_not
排除指定单位
- 参数
- unit (unit) - 排除的单位
- 返回
- selector (selector) - 选取器
local selector = base.selector()
: is_not(unit)
of_add
添加选取类型
- 参数
- type (string) - 单位类型
- 返回
- selector (selector) - 选取器
local selector = base.selector()
: of_add '建筑'
of_remove
移除选取类型
- 参数
- type (string) - 单位类型
- 返回
- selector (selector) - 选取器
local selector = base.selector()
: of_remove '英雄'
of_type
设置选取类型
- 参数
- list (table) - 单位类型列表
- 返回
- selector (selector) - 选取器
local selector = base.selector()
: of_type {'英雄', '小兵', '建筑'}
of_visible
只选取可见单位
- 参数
- unit (unit) - 参考单位
- 返回
- selector (selector) - 选取器
local selector = base.selector()
: of_visible(unit)