# 区域管理接口 Area

具体函数名及描述如下:

序号 函数名 函数描述
1 createAreaRect(...) 创建矩形区域
2 createAreaRectByRange(...) 创建矩形区域(通过范围) 1.1+
3 destroyArea(...) 销毁区域
4 getAreaByPos(...) 通过位置查找区域
5 offsetArea(...) 区域偏移
6 expandArea(...) 扩大区域
7 getAreaCenter(...) 获取区域中间点
8 getAreaRectLength(...) 获取区域各边长 1.1+
9 getAreaRectRange(...) 获取区域范围 1.1+
10 getRandomPos(...) 随机区域内位置
11 objInArea(...) 检测obj是否在区域内
12 blockInArea(...) 检测区域内是否有某个方块
13 posInArea(...) 位置是否再区域内
14 getAreaPlayers(...) 获取区域中的所有玩家
15 getAreaCreatures(...) 获取区域中的所有生物
16 fillBlock(...) 用方块填充区域
17 clearAllBlock(...) 清空区域内全部方块
18 cloneArea(...) 复制区域内方块到另一个区域
19 getPosOffset(...) 位置偏移
20 replaceAreaBlock(...) 替换方块类型为新的方块类型
21 blockInAreaRange(...) 区域范围内有方块 1.5+
22 getAllObjsInAreaRange(...) 获取区域范围内全部对象 1.5+
23 getAllObjsInAreaRangeByObjTypes(...) 获取区域范围内全部对象 1.5+
24 getAllPlayersInAreaRange(...) 获取区域范围内全部玩家 1.5+
25 getAllCreaturesInAreaRange(...) 获取区域范围内全部生物 1.5+
26 fillBlockAreaRange(...) 用方块填充区域范围 1.5+
27 clearAllBlockAreaRange(...) 清空区域范围内方块 1.5+
28 cloneAreaRange(...) 复制区域范围内方块到另一个区域 1.5+
29 replaceAreaRangeBlock(...) 替换区域范围方块 1.5+

# 区域复制代码示例:

  • 创建1个区域,用方块填充后,再复制到另一个地点

act = function()
	local ret, hostid = Player:getHostUin()	
	local ret,num = Player:getCurShotcut(hostid)
	if num == 0 then 
			--房主按下快捷栏1的时候,创建一个矩形区域,中心点是10.7.10,边长是5
		local pos1 = {x = 3, y = 10 ,z = 8}
		local dim = {x = 2, y = 2,z = 2}--  注意这里的边长算法是x*x+1=实际边长
		ret111, areaid = Area:createAreaRect(pos1, dim)
		Area:fillBlock(areaid, 112)  --用112这个方块填充区域
		
	end
	if num == 1 then
	-- 房主按下快捷栏2的时候,把上面这个矩形复制到10.12.10位置(以右下角为原点,而不是中心点)
		local pos2 = {x = 3 , y = 15 ,z = 8}
		local ret = Area:cloneArea(areaid, pos2)
	end
	
end
ScriptSupportEvent:registerEvent([=[Player.SelectShortcut]=], act)

# createAreaRect

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:创建矩形区域
  • 具体使用案例如下:
local result = Area:createAreaRect(pos, dim)

# createAreaRectByRange 1.1+

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:创建矩形区域(通过范围)
  • 具体使用案例如下:
local result = Area:createAreaRectByRange(posBeg, posEnd)

# destroyArea

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:销毁区域
  • 具体使用案例如下:
local result = Area:destroyArea(areaid)

# getAreaByPos

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:通过位置查找区域
  • 具体使用案例如下:
local result = Area:getAreaByPos(pos)

# offsetArea

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:区域偏移
  • 具体使用案例如下:
local result = Area:offsetArea(areaid, x, y, z)

# expandArea

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:扩大区域
  • 具体使用案例如下:
local result = Area:expandArea(areaid, x, y, z)

# getAreaCenter

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:获取区域中间点
  • 具体使用案例如下:
local result = Area:getAreaCenter(areaid)

# getAreaRectLength 1.1+

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:获取区域各边长
  • 具体使用案例如下:
local result = Area:getAreaRectLength(areaid)

# getAreaRectRange 1.1+

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:获取区域范围
  • 具体使用案例如下:
local result = Area:getAreaRectRange(areaid)

# getRandomPos

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:随机区域内位置
  • 具体使用案例如下:
local result = Area:getRandomPos(areaid)

# objInArea

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:检测obj是否在区域内
  • 具体使用案例如下:
local result = Area:objInArea(areaid, objid)

# blockInArea

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:检测区域内是否有某个方块
  • 具体使用案例如下:
local result = Area:blockInArea(areaid, blockid)

# posInArea

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:位置是否再区域内
  • 具体使用案例如下:
local result = Area:posInArea(pos, areaid)

# getAreaPlayers

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:获取区域中的所有玩家
  • 具体使用案例如下:
local result = Area:getAreaPlayers(areaid)

# getAreaCreatures

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:获取区域中的所有生物
  • 具体使用案例如下:
local result = Area:getAreaCreatures(areaid)

# fillBlock

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:用方块填充区域
  • 具体使用案例如下:
local result = Area:fillBlock(areaid, blockid, face)

# clearAllBlock

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:清空区域内全部方块
  • 具体使用案例如下:
local result = Area:clearAllBlock(areaid, blockid)

# cloneArea

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:复制区域内方块到另一个区域
  • 具体使用案例如下:
local result = Area:cloneArea(areaid, deststartpos)

# getPosOffset

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:位置偏移
  • 具体使用案例如下:
local result = Area:getPosOffset(srcpos, dim)

# replaceAreaBlock

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:替换方块类型为新的方块类型
  • 具体使用案例如下:
local result = Area:replaceAreaBlock(areaid, srcblockid, destblockid, face)

# blockInAreaRange 1.5+

  • 参数及类型:
    • blockid:number
    • posbeg:table起点{x=number, y=number, z=number}
    • posend:table终点{x=number, y=number, z=number}
  • 返回值及类型:
  • 该方法的主要作用:区域范围内有方块
  • 具体使用案例如下:
local result = Area:blockInAreaRange(blockid, posbeg, posend)

# getAllObjsInAreaRange 1.5+

  • 参数及类型:
    • posbeg:table起点{x=number, y=number, z=number}
    • posend:table终点{x=number, y=number, z=number}
    • objtypeidx:table对象类型索引
  • 返回值及类型:
  • 该方法的主要作用:获取区域范围内全部对象
  • 具体使用案例如下:
local result = Area:getAllObjsInAreaRange(posbeg, posend, objtype)

# getAllObjsInAreaRangeByObjTypes 1.5+

  • 参数及类型:
    • posbeg:table起点{x=number, y=number, z=number}
    • posend:table终点{x=number, y=number, z=number}
    • objtypeidxs:table对象类型索引数组
  • 返回值及类型:
  • 该方法的主要作用:获取区域范围内全部对象
  • 具体使用案例如下:
local result = Area:getAllObjsInAreaRangeByObjTypes(posbeg, posend, objtypes)

# getAllPlayersInAreaRange 1.5+

  • 参数及类型:
    • posbeg:table起点{x=number, y=number, z=number}
    • posend:table终点{x=number, y=number, z=number}
  • 返回值及类型:
  • 该方法的主要作用:获取区域范围内全部玩家
  • 具体使用案例如下:
local result = Area:getAllPlayersInAreaRange(posbeg, posend)

# getAllCreaturesInAreaRange 1.5+

  • 参数及类型:
    • posbeg:table起点{x=number, y=number, z=number}
    • posend:table终点{x=number, y=number, z=number}
  • 返回值及类型:
  • 该方法的主要作用:获取区域范围内全部生物
  • 具体使用案例如下:
local result = Area:getAllCreaturesInAreaRange(posbeg, posend)

# fillBlockAreaRange 1.5+

  • 参数及类型:
    • posbeg:table起点{x=number, y=number, z=number}
    • posend:table终点{x=number, y=number, z=number}
    • blockid:number方块ID
    • face:number朝向
  • 返回值及类型:
  • 该方法的主要作用:用方块填充区域范围
  • 具体使用案例如下:
local result = Area:fillBlockAreaRange(posbeg, posend, blockid, face)

# clearAllBlockAreaRange 1.5+

  • 参数及类型:
    • posbeg:table起点{x=number, y=number, z=number}
    • posend:table终点{x=number, y=number, z=number}
    • blockid:number方块ID
  • 返回值及类型:
  • 该方法的主要作用:清空区域范围内方块
  • 具体使用案例如下:
local result = Area:clearAllBlockAreaRange(posbeg, posend, blockid)

# cloneAreaRange 1.5+

  • 参数及类型:
    • posbeg:table起点{x=number, y=number, z=number}
    • posend:table终点{x=number, y=number, z=number}
    • deststartpos:table目标起始位置 {x=number, y=number, z=number}
  • 返回值及类型:
  • 该方法的主要作用:复制区域范围内方块到另一个区域
  • 具体使用案例如下:
local result = Area:cloneAreaRange(posbeg, posend, deststartpos)

# replaceAreaRangeBlock 1.5+

  • 参数及类型:
    • posbeg:table起点{x=number, y=number, z=number}
    • posend:table终点{x=number, y=number, z=number}
    • srcblockid:number替换原始方块
    • destblockid:number替换目标方块
    • face:number朝向
  • 返回值及类型:
  • 该方法的主要作用:替换区域范围方块
  • 具体使用案例如下:
local result = Area:replaceAreaRangeBlock(posbeg, posend, srcblockid, destblockid, face)
上次更新: 2020-3-21 10:37:06