• API(eca&lua)
  • Lua
  • API
  • Area

Area

区域

add_tag

(method) Area:add_tag(tag: string)

给区域添加标签

@param tag — tag

create_circle_area

function Area.create_circle_area(point: Point, radius: number)
  -> 圆形区域: Area

创建圆形区域

@param point — 点

@param radius — 半径

create_polygon_area_by_points

function Area.create_polygon_area_by_points(...Point)
  -> polygon: Area

沿点创建多边形

@return polygon — 多边形区域

create_rectangle_area

function Area.create_rectangle_area(point: Point, horizontal_length: number, vertical_length: number)
  -> area: Area

创建矩形区域

@param point — 点

@param horizontal_length — 长度

@param vertical_length — 宽度

@return area — 矩形区域

create_rectangle_area_from_two_points

function Area.create_rectangle_area_from_two_points(point_one: Point, point_two: Point)
  -> area: Area

以起点终点创建矩形区域

@param point_one — 点1

@param point_two — 点2

@return area — 矩形区域

edit_area_collision

(method) Area:edit_area_collision(collision_layer: integer, is_add: boolean)

编辑区域碰撞

@param collision_layer — 碰撞类型

@param is_add — 添加/去除

edit_area_fov_block

(method) Area:edit_area_fov_block(fov_block_type: integer, is_add: boolean)

编辑区域视野阻挡

@param fov_block_type — 视野阻挡类型

@param is_add — 添加/去除

event

fun(self: Area, event: "区域-进入", callback: fun(trg: Trigger, data: EventParam.区域-进入)):Trigger

get_all_unit_in_area

(method) Area:get_all_unit_in_area()
  -> 单位组: Unit[]

区域内的所有单位

get_by_handle

function Area.get_by_handle(py_area: py.Area, shape?: Area.Shape)
  -> Area

根据py对象创建区域

@param py_area — py层对象

@param shape — 见area.enum

get_by_res_id

function Area.get_by_res_id(res_id: py.AreaID, shape?: Area.Shape)
  -> Area

@param res_id — 编辑场景中的id

@param shape — 见area.enum

get_center_point

(method) Area:get_center_point()
  -> 中心点: Point

获取中心点

get_circle_areas_by_tag

function Area.get_circle_areas_by_tag(tag: string)
  -> area: Area[]

按标签获取所有的圆形区域

@param tag — 标签

@return area — 矩形区域

get_circle_by_res_id

function Area.get_circle_by_res_id(res_id: py.AreaID)
  -> Area

根据场景id获得圆形区域

@param res_id — 编辑场景中的id

get_map_area

function Area.get_map_area()
  -> Area

获取完整地图区域

get_max_x

(method) Area:get_max_x()
  -> X坐标: number

获取区域内最大X坐标

get_max_y

(method) Area:get_max_y()
  -> Y坐标: number

获取区域内最大Y坐标

get_min_x

(method) Area:get_min_x()
  -> X坐标: number

获取区域内最小X坐标

get_min_y

(method) Area:get_min_y()
  -> Y坐标: number

获取区域内最小Y坐标

get_polygon_areas_by_tag

function Area.get_polygon_areas_by_tag(tag: string)
  -> area: Area[]

按标签获取所有的多边形区域

@param tag — 标签

@return area — 多边形区域表

get_polygon_areas_point_list

function Area.get_polygon_areas_point_list(polygon: Area)
  -> area: table

获取多边形的所有顶点

@param polygon — 多边形区域

@return area — 多边形顶点表

get_polygon_by_res_id

function Area.get_polygon_by_res_id(res_id: py.AreaID)
  -> Area

根据场景id获得多边形区域

@param res_id — 编辑场景中的id

get_radius

(method) Area:get_radius()
  -> 半径: number

获得圆形区域半径

get_rect_areas_by_tag

function Area.get_rect_areas_by_tag(tag: string)
  -> area: Area[]

按标签获取所有的矩形区域

@param tag — 标签

@return area — 矩形区域表

get_rectangle_area_last_created

function Area.get_rectangle_area_last_created()
  -> Area

获得最后创建的矩形区域

get_rectangle_by_res_id

function Area.get_rectangle_by_res_id(res_id: py.AreaID)
  -> Area

根据场景id获得矩形区域

@param res_id — 编辑场景中的id

get_unit_group_in_area

(method) Area:get_unit_group_in_area(player: Player)
  -> 单位组: UnitGroup

区域内玩家单位(单位组)

@param player — 玩家

get_unit_in_area_by_camp

(method) Area:get_unit_in_area_by_camp(camp: py.Camp)
  -> 单位组: Unit[]

区域内阵营所有单位

get_unit_num_in_area

(method) Area:get_unit_num_in_area()
  -> 数量: integer

区域中单位的数量

get_weather

(method) Area:get_weather()
  -> 天气枚举: integer

获得区域天气

handle

py.Area

区域

has_tag

(method) Area:has_tag(tag: string)
  -> 区域是否有tag: boolean

区域是否有tag

@param tag — tag

is_point_in_area

(method) Area:is_point_in_area(point: Point)
  -> boolean

点是否在区域内

@param point — 点

key

integer?

kv_has

(method) KV:kv_has(key: string)
  -> boolean

是否拥有指定键值对。可以与ECA互通。

kv_key

string?

kv_load

(method) KV:kv_load(key: string, lua_type: 'boolean'|'integer'|'number'|'string'|'table'...(+1))
  -> any
lua_type:
    | 'boolean'
    | 'number'
    | 'integer'
    | 'string'
    | 'table'

kv_remove

(method) KV:kv_remove(key: any)

kv_save

(method) KV:kv_save(key: string, value: KV.SupportType)

保存自定义键值对。可以与ECA互通。

map

{ [py.AreaID]: Area }

object_event_manager

EventManager?

random_point

(method) Area:random_point()
  -> Point

获取随机点

ref_manager

unknown

remove

(method) Area:remove()

删除区域

remove_tag

(method) Area:remove_tag(tag: string)

给区域移除标签

@param tag — tag

res_id

integer?

set_collision

(method) Area:set_collision(is_collision_effect: boolean, is_land_effect: boolean, is_air_effect: boolean)

设置区域碰撞

@param is_collision_effect — 碰撞是否生效

@param is_land_effect — 地面碰撞开关

@param is_air_effect — 空中碰撞开关

set_radius

(method) Area:set_radius(radius: number)

设置圆形区域半径

@param radius — 半径

set_size

(method) Area:set_size(horizontal_length: number, vertical_length: number)

设置矩形区域半径

@param horizontal_length — 长度

@param vertical_length — 宽度

set_visible

(method) Area:set_visible(player: Player, is_visibility: boolean, is_real_visibility: boolean)

设置多边形区域对玩家可见性

@param player — 玩家

@param is_visibility — 是否开启视野

@param is_real_visibility — 是否开启真实视野

shape

Area.Shape

subscribe_event

(method) ObjectEvent:subscribe_event(event_name: string, ...any)
  -> any[]?
  2. Trigger.CallBack
  3. Unsubscribe: function

type

string

Area.Shape

{
    CIRCLE: integer = 1,
    RECTANGLE: integer = 2,
    POLYGON: integer = 3,
}