主站
道具百科
触发器百科
脚本API百科
创作手册
创作功能
其他
Studio百科
区域接口:Area
彼得兔 更新时间: 2023-12-18 11:35:14

具体函数名及描述如下:

序号 函数名 函数描述
1 createAreaRect(...) 创建矩形区域
2 createAreaRectByRange(...) 创建矩形区域(通过范围)
3 destroyArea(...) 销毁区域
4 getAreaByPos(...) 通过位置查找区域
5 offsetArea(...) 区域偏移
6 expandArea(...) 扩大区域
7 getAreaCenter(...) 获取区域中间点
8 getAreaRectLength(...) 获取区域各边长
9 getAreaRectRange(...) 获取区域范围
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(...) 区域范围内有方块
22 getAllObjsInAreaRange(...) 获取区域范围内全部对象
23 getAllObjsInAreaRangeByObjTypes(...) 获取区域范围内全部对象
24 getAllPlayersInAreaRange(...) 获取区域范围内全部玩家
25 getAllCreaturesInAreaRange(...) 获取区域范围内全部生物
26 fillBlockAreaRange(...) 用方块填充区域范围
27 clearAllBlockAreaRange(...) 清空区域范围内方块
28 cloneAreaRange(...) 复制区域范围内方块到另一个区域
29 replaceAreaRangeBlock(...) 替换区域范围方块
30 DestroyBlockAreaRange(...)
破坏区域范围方块

区域复制代码示例:

  • 创建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

  • 参数及类型:

  • 返回值及类型:

  • 该方法的主要作用:创建矩形区域

  • 具体使用案例如下:

--通过中心点和扩展长度创建一个区域
--第一个参数{x=0,y=10,z=0}为区域中心坐标组成的表
--第二个参数{x=1,y=2,z=3}为区域各方向扩展的距离组成的表
local result,areaid=Area:createAreaRect({x=0,y=10,z=0},{x=1,y=2,z=3})
--在聊天框显示
Chat:sendSystemMsg("以(0,0)高度10为中心,左右各扩展1格,上下各扩展2格,前后各扩展3格,创建了一个区域,id为"..areaid)

createAreaRectByRange

  • 参数及类型:

  • 返回值及类型:

  • 该方法的主要作用:创建矩形区域(通过范围)

  • 具体使用案例如下:

--通过起点终点坐标创建区域
--第一个参数为区域起点坐标组成的表,即面朝北时,区域的左、下、后方的顶点坐标
--第二个参数为区域终点坐标组成的表,即面朝北时,区域的右、上、前方的顶点坐标
local result,areaid=Area:createAreaRectByRange({x=0,y=7,z=0},{x=5,y=10,z=5})
--在聊天框显示
Chat:sendSystemMsg("以(0,0)高度7为起点,(5,5)高度10为终点创建一个区域,id为"..areaid)

destroyArea

  • 参数及类型:

  • 返回值及类型:

  • 该方法的主要作用:销毁区域

  • 具体使用案例如下:

--销毁指定区域,参数为区域id
Area:destroyArea(1)
--在聊天框显示
Chat:sendSystemMsg("销毁了id为1的区域")

getAreaByPos

  • 参数及类型:

  • 返回值及类型:

  • 该方法的主要作用:通过位置查找区域

  • 具体使用案例如下:

--判断某坐标所属的区域,参数为坐标组成的表
local result,areaid=Area:getAreaByPos({x=0,y=7,z=0})
if result==0 then--如果获取成功
	--在聊天框显示
	Chat:sendSystemMsg("(0,0)高度7所在的区域id为"..areaid)
else--如果获取失败
	--在聊天框显示
	Chat:sendSystemMsg("获取失败,或(0,0)高度7不属于任何区域")
end

offsetArea

  • 参数及类型:

    • areaid:number区域ID
    • x,y,z:number偏移距离
  • 返回值及类型:

    • code:number成功(ErrorCode.OK)ErrorCode
    • areaid:number新的区域ID
  • 该方法的主要作用:区域偏移

  • 具体使用案例如下:

--创建一个区域
local result,areaid=Area:createAreaRect({x=0,y=10,z=0},{x=30,y=30,z=30})
--在聊天框显示
Chat:sendSystemMsg("创建了以(0,0)高度10为中心,向左右上下前后各扩展30格的区域,区域id为"..areaid)
--平移区域范围
--第一个参数为要平移的区域id
--后三个参数分别为向右、上、前的平移距离,可为负
Area:offsetArea(areaid,5,5,5)
--在聊天框显示
Chat:sendSystemMsg("id为"..areaid.."的区域被向右、上、前各移动了5格")

expandArea

  • 参数及类型:

    •  
    • areaid:number区域ID
    • x,y,z:number偏移距离
  • 返回值及类型:

    • code:number成功(ErrorCode.OK)ErrorCode
    • areaid:number新的区域ID
  • 该方法的主要作用:扩大区域(产生新的区域)

  • 具体使用案例如下:

--创建一个区域
local result,areaid=Area:createAreaRect({x=0,y=10,z=0},{x=30,y=30,z=30})
--在聊天框显示
Chat:sendSystemMsg("创建了以(0,0)高度10为中心,向左右上下前后各扩展30格的区域,区域id为"..areaid)
--扩充区域范围
--第一个参数为区域id
--后三个参数分别为区域向左右、上下、前后扩充的距离
Area:expandArea(areaid,2,2,2)
--在聊天框显示
Chat:sendSystemMsg("id为"..areaid.."的区域向左右、上下、前后各扩充了2格范围")

getAreaCenter

  • 参数及类型:

  • 返回值及类型:

  • 该方法的主要作用:获取区域中间点

  • 具体使用案例如下:

--创建一个区域
local result,areaid=Area:createAreaRect({x=0,y=10,z=0},{x=30,y=30,z=30})
--在聊天框显示
Chat:sendSystemMsg("创建了以(0,0)高度10为中心,向左右上下前后各扩展30格的区域,区域id为"..areaid)
--获取指定区域的中心坐标,参数为要获取中心的区域id
local result,pos=Area:getAreaCenter(areaid)
--在聊天框显示
Chat:sendSystemMsg("id为"..areaid.."的区域的中心点坐标为:("..pos.x..","..pos.y..","..pos.z..")")

getAreaRectLength

  • 参数及类型:

  • 返回值及类型:

  • 该方法的主要作用:获取区域各边长

  • 具体使用案例如下:

--创建一个区域
local result,areaid=Area:createAreaRect({x=0,y=10,z=0},{x=30,y=30,z=30})
--在聊天框显示
Chat:sendSystemMsg("创建了以(0,0)高度10为中心,向左右上下前后各扩展30格的区域,区域id为"..areaid)
--获取指定区域各方向的边长,参数为区域id
local result,x,y,z=Area:getAreaRectLength(areaid)
--在聊天框显示
Chat:sendSystemMsg("id为"..areaid.."的区域各方向的边长为:左右"..x..",上下"..y..",前后"..z)

getAreaRectRange

  • 参数及类型:

  • 返回值及类型:

  • 该方法的主要作用:获取区域范围

  • 具体使用案例如下:

--创建一个区域
local result,areaid=Area:createAreaRect({x=0,y=10,z=0},{x=30,y=30,z=30})
--在聊天框显示
Chat:sendSystemMsg("创建了以(0,0)高度10为中心,向左右上下前后各扩展30格的区域,区域id为"..areaid)
--获取指定区域的起点和终点坐标,参数为区域id
local result,posBeg,posEnd=Area:getAreaRectRange(areaid)
--在聊天框显示
Chat:sendSystemMsg("id为"..areaid.."的区域的起点坐标为("..posBeg.x..","..posBeg.y..","..posBeg.z.."),终点坐标为("..posEnd.x..","..posEnd.y..","..posEnd.z..")")

getRandomPos

  • 参数及类型:

  • 返回值及类型:

  • 该方法的主要作用:随机区域内位置

  • 具体使用案例如下:

--创建一个区域
local result,areaid=Area:createAreaRect({x=0,y=10,z=0},{x=30,y=30,z=30})
--在聊天框显示
Chat:sendSystemMsg("创建了以(0,0)高度10为中心,向左右上下前后各扩展30格的区域,区域id为"..areaid)
--从指定区域中随机获取一个坐标,参数为区域id
local result,pos=Area:getRandomPos(areaid)
--在聊天框显示
Chat:sendSystemMsg("从id为"..areaid.."的区域中随机获取了一个坐标("..pos.x..","..pos.y..","..pos.z..")")

objInArea

  • 参数及类型:

  • 返回值及类型:

  • 该方法的主要作用:检测obj是否在区域内

  • 具体使用案例如下:

--创建一个区域
local result,areaid=Area:createAreaRect({x=0,y=10,z=0},{x=30,y=30,z=30})
--在聊天框显示
Chat:sendSystemMsg("创建了以(0,0)高度10为中心,向左右上下前后各扩展30格的区域,区域id为"..areaid)
--判断某对象是否在指定区域中
--第一个参数为区域id
--第二个参数为对象id,可以是玩家迷你号、生物id或掉落物id等等
local result=Area:objInArea(areaid,1000)
if result==0 then--如果在区域内
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000在区域"..areaid.."内部")
else--如果不在内部或获取失败
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000不在区域"..areaid.."内部,或玩家1000不在当前存档")
end

blockInArea

  • 参数及类型:

  • 返回值及类型:

  • 该方法的主要作用:检测区域内是否有某个方块

  • 具体使用案例如下:

--创建一个区域
local result,areaid=Area:createAreaRect({x=0,y=10,z=0},{x=30,y=30,z=30})
--在聊天框显示
Chat:sendSystemMsg("创建了以(0,0)高度10为中心,向左右上下前后各扩展30格的区域,区域id为"..areaid)
--判断指定区域是否包含某种方块
--第一个参数为区域id
--第二个参数为方块id
local result=Area:blockInArea(areaid,101)
if result==0 then--如果包含
	--在聊天框显示
	Chat:sendSystemMsg("id为"..areaid.."的区域内有土块")
else--如果不包含
	--在聊天框显示
	Chat:sendSystemMsg("id为"..areaid.."的区域内没有土块")
end

posInArea

  • 参数及类型:

  • 返回值及类型:

  • 该方法的主要作用:位置是否再区域内

  • 具体使用案例如下:

--创建一个区域
local result,areaid=Area:createAreaRect({x=0,y=10,z=0},{x=30,y=30,z=30})
--在聊天框显示
Chat:sendSystemMsg("创建了以(0,0)高度10为中心,向左右上下前后各扩展30格的区域,区域id为"..areaid)
--判断某坐标是否在指定区域内
--第一个参数为要判断的坐标组成的表
--第二个参数为区域id
local result=Area:posInArea({x=0,y=7,z=0},areaid)
if result==0 then--如果在内部
	--在聊天框显示
	Chat:sendSystemMsg("(0,0)高度7的位置在id为"..areaid.."的区域内")
else--如果不在内部
	--在聊天框显示
	Chat:sendSystemMsg("(0,0)高度7的位置不在id为"..areaid.."的区域内")
end

getAreaPlayers

  • 参数及类型:

  • 返回值及类型:

  • 该方法的主要作用:获取区域中的所有玩家

  • 具体使用案例如下:

--创建一个区域
local result,areaid=Area:createAreaRect({x=0,y=10,z=0},{x=30,y=30,z=30})
--在聊天框显示
Chat:sendSystemMsg("创建了以(0,0)高度10为中心,向左右上下前后各扩展30格的区域,区域id为"..areaid)
--获取区域内的玩家列表,参数为区域id
local result,playerlist=Area:getAreaPlayers(areaid)
if #playerlist>0 then--如果区域内存在玩家
	for i,a in ipairs(playerlist) do
		--在聊天框显示列表
		Chat:sendSystemMsg("区域"..areaid.."内第"..i.."个玩家:"..a)
	end
else--如果区域内不存在玩家
	--在聊天框显示
	Chat:sendSystemMsg("区域"..areaid.."内没有玩家")
end

getAreaCreatures

  • 参数及类型:

  • 返回值及类型:

  • 该方法的主要作用:获取区域中的所有生物

  • 具体使用案例如下:

--创建一个区域
local result,areaid=Area:createAreaRect({x=0,y=10,z=0},{x=30,y=30,z=30})
--在聊天框显示
Chat:sendSystemMsg("创建了以(0,0)高度10为中心,向左右上下前后各扩展30格的区域,区域id为"..areaid)
--获取区域内的生物列表,参数为区域id
local result,creaturelist=Area:getAreaCreatures(areaid)
if #creaturelist>0 then--如果区域内存在生物
	for i,a in ipairs(creaturelist) do
		--在聊天框显示列表
		Chat:sendSystemMsg("区域"..areaid.."内第"..i.."个生物:"..a)
	end
else--如果区域内不存在生物
	--在聊天框显示
	Chat:sendSystemMsg("区域"..areaid.."内没有生物")
end

fillBlock

  • 参数及类型:

  • 返回值及类型:

  • 该方法的主要作用:用方块填充区域

  • 具体使用案例如下:

--创建一个区域
local result,areaid=Area:createAreaRect({x=0,y=10,z=0},{x=3,y=3,z=3})
--在聊天框显示
Chat:sendSystemMsg("创建了以(0,0)高度10为中心,向左右上下前后各扩展3格的区域,区域id为"..areaid)
--用方块填充指定区域
--第一个参数为区域id
--第二个参数为要填充的方块id,1为基岩
--第三个参数为方块朝向:0西 1东 2南 3北 4下 5上
Area:fillBlock(areaid,1,0)
--在聊天框显示
Chat:sendSystemMsg("区域"..areaid.."被填充了基岩")

clearAllBlock

  • 参数及类型:

  • 返回值及类型:

  • 该方法的主要作用:清空区域内全部方块

  • 具体使用案例如下:

--创建一个区域
local result,areaid=Area:createAreaRect({x=0,y=10,z=0},{x=30,y=30,z=30})
--在聊天框显示
Chat:sendSystemMsg("创建了以(0,0)高度10为中心,向左右上下前后各扩展30格的区域,区域id为"..areaid)
--清空指定区域内的指定方块
--第一个参数为区域id
--第二个参数为要清除的方块id
Area:clearAllBlock(areaid,101)
--在聊天框显示
Chat:sendSystemMsg("清空了区域"..areaid.."内的所有土块")

cloneArea

  • 参数及类型:

  • 返回值及类型:

  • 该方法的主要作用:复制区域内方块到另一个区域

  • 具体使用案例如下:

--创建一个区域
local result,areaid=Area:createAreaRect({x=0,y=10,z=0},{x=30,y=30,z=30})
--在聊天框显示
Chat:sendSystemMsg("创建了以(0,0)高度10为中心,向左右上下前后各扩展30格的区域,区域id为"..areaid)
--复制区域内的方块到另一位置
--第一个参数为要复制的区域id
--第二个参数为要复制到的起点坐标组成的表
Area:cloneArea(areaid,{x=0,y=10,z=0})
--在聊天框显示
Chat:sendSystemMsg("把区域"..areaid.."内的所有方块复制到了(0,0)高度10的位置,此坐标与区域起点对应")

getPosOffset

  • 参数及类型:

    • srcpos:table{x=0,y=0,z=0}
    • dim:table{x=2,y=2,z=2}
  • 返回值及类型:

  • 该方法的主要作用:传入两个坐标列表,得到相加后的位置

  • 具体使用案例如下:

local function ClickBlock(event)
	local srcpos={x=event.x,y=event.y,z=event.z}--起点坐标,这里是被点击的坐标
	local dim={x=10,y=10,z=10}--偏移距离
	--计算偏移后的坐标
	local result,pos=Area:getPosOffset(srcpos, dim)
	print(pos)--在日志输出
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块

replaceAreaBlock

  • 参数及类型:

  • 返回值及类型:

  • 该方法的主要作用:替换方块类型为新的方块类型

  • 具体使用案例如下:

--创建一个区域
local result,areaid=Area:createAreaRect({x=0,y=10,z=0},{x=30,y=30,z=30})
--在聊天框显示
Chat:sendSystemMsg("创建了以(0,0)高度10为中心,向左右上下前后各扩展30格的区域,区域id为"..areaid)
--把指定区域内的一种方块替换成新的方块
--第一个参数为区域id
--第二个参数为要替换掉的方块id,101是土块
--第三个参数为要替换为的方块id,1是地心基石
--最后一个参数为方块朝向:0西 1东 2南 3北 4下 5上
Area:replaceAreaBlock(areaid,101,1,0)
--在聊天框显示
Chat:sendSystemMsg("区域"..areaid.."内所有土块被替换为了基岩")

blockInAreaRange

  • 参数及类型:

    • blockid:number
    • posbeg:table起点{x=number, y=number, z=number}
    • posend:table终点{x=number, y=number, z=number}
  • 返回值及类型:

  • 该方法的主要作用:区域范围内有方块

  • 具体使用案例如下:

--判断两点之前的范围内有没有某种方块
--第一个参数为方块id,101是土块
--后两个参数分别是范围起点和终点坐标组成的表
local result=Area:blockInAreaRange(101,{x=0,y=5,z=0},{x=1,y=8,z=1})
if result==0 then--如果包含
	--在聊天框显示
	Chat:sendSystemMsg("在(0,0)高度5到(1,1)高度8的范围内有土块")
else--如果不包含
	--在聊天框显示
	Chat:sendSystemMsg("在(0,0)高度5到(1,1)高度8的范围内没有土块")
end

getAllObjsInAreaRange

  • 参数及类型:

    • posbegin:table起点{x=number, y=number, z=number}
    • posend:table终点{x=number, y=number, z=number}
    • objtype:numberOBJ_TYPE
  • 返回值及类型:

  • 该方法的主要作用:获取区域范围内全部对象

  • 具体使用案例如下:

local function ClickBlock(event)
	local x,y,z=event.x,event.y,event.z--点击坐标
	local posbegin={x=x-10,y=y-10,z=z-10}--起点
	local posend={x=x+10,y=y+10,z=z+10}--终点
	local objtype=1--对象类型,1是玩家
	--获取范围内所有玩家
	local result,objids=Area:getAllObjsInAreaRange(posbegin, posend, objtype)
	Chat:sendSystemMsg("区域内共有".. #objids .."个玩家")--在聊天框显示玩家数量
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块

getAllObjsInAreaRangeByObjTypes

  • 参数及类型:

    • posbegin:table起点{x=number, y=number, z=number}
    • posend:table终点{x=number, y=number, z=number}
    • objtypes:tableOBJ_TYPE
  • 返回值及类型:

  • 该方法的主要作用:获取区域范围内全部对象

  • 具体使用案例如下:

local function ClickBlock(event)
	local x,y,z=event.x,event.y,event.z--点击坐标
	local posbegin={x=x-10,y=y-10,z=z-10}--起点
	local posend={x=x+10,y=y+10,z=z+10}--终点
	local objtypes={1,2}--对象类型,1是玩家,2是生物
	--获取范围内所有玩家和生物
	local result,objids=Area:getAllObjsInAreaRangeByObjTypes(posbegin, posend, objtypes)
	Chat:sendSystemMsg("区域内共有".. #objids .."个玩家和生物")--在聊天框显示
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块

getAllPlayersInAreaRange

  • 参数及类型:

    • posbegin:table起点{x=number, y=number, z=number}
    • posend:table终点{x=number, y=number, z=number}
  • 返回值及类型:

  • 该方法的主要作用:获取区域范围内全部玩家

  • 具体使用案例如下:

local function ClickBlock(event)
	local x,y,z=event.x,event.y,event.z--点击坐标
	local posbegin={x=x-10,y=y-10,z=z-10}--起点
	local posend={x=x+10,y=y+10,z=z+10}--终点
	--获取范围内所有玩家
	local result,objids=Area:getAllPlayersInAreaRange(posbegin, posend)
	Chat:sendSystemMsg("区域内共有".. #objids .."个玩家")--在聊天框显示
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块

getAllCreaturesInAreaRange

  • 参数及类型:

    • posbegin:table起点{x=number, y=number, z=number}
    • posend:table终点{x=number, y=number, z=number}
  • 返回值及类型:

  • 该方法的主要作用:获取区域范围内全部生物

  • 具体使用案例如下:

local function ClickBlock(event)
	local x,y,z=event.x,event.y,event.z--点击坐标
	local posbegin={x=x-10,y=y-10,z=z-10}--起点
	local posend={x=x+10,y=y+10,z=z+10}--终点
	--获取范围内所有生物
	local result,objids=Area:getAllCreaturesInAreaRange(posbegin, posend)
	Chat:sendSystemMsg("区域内共有".. #objids .."个生物")--在聊天框显示
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块

fillBlockAreaRange

  • 参数及类型:

    • posbeg:table起点{x=number, y=number, z=number}
    • posend:table终点{x=number, y=number, z=number}
    • blockid:number方块ID
    • face:number朝向
  • 返回值及类型:

  • 该方法的主要作用:用方块填充区域范围

  • 具体使用案例如下:

--在两点之间的范围内填充某方块
--前两个参数为填充范围的起点和终点坐标组成的表
--第三个参数1为要填充的方块id,1是地心基石
--第四个参数0为方块朝向:0西 1东 2南 3北 4下 5上
Area:fillBlockAreaRange({x=0,y=7,z=0},{x=5,y=9,z=5},1,0)
--在聊天框显示
Chat:sendSystemMsg("从(0,0)高度7到(5,5)高度9的范围被填充了基岩")

clearAllBlockAreaRange

  • 参数及类型:

    • posbeg:table起点{x=number, y=number, z=number}
    • posend:table终点{x=number, y=number, z=number}
    • blockid:number方块ID
  • 返回值及类型:

  • 该方法的主要作用:清空区域范围内方块

  • 具体使用案例如下:

--清空两点之间范围内的某方块
--前两个参数为范围的起点和终点坐标组成的表
--第三个参数为要清除的方块id,101是土块
Area:clearAllBlockAreaRange({x=0,y=7,z=0},{x=5,y=9,z=5},101)
--在聊天框显示
Chat:sendSystemMsg("清空了(0,0)高度7到(5,5)高度9范围内的土块")

cloneAreaRange

  • 参数及类型:

    • posbeg:table起点{x=number, y=number, z=number}
    • posend:table终点{x=number, y=number, z=number}
    • deststartpos:table目标起始位置 {x=number, y=number, z=number}
  • 返回值及类型:

  • 该方法的主要作用:复制区域范围内方块到另一个区域

  • 具体使用案例如下:

--复制两点之间范围内的方块到另一位置
--前两个参数为范围的起点和终点坐标组成的表
--后一个参数为要复制到的范围起点坐标
Area:cloneAreaRange({x=0,y=3,z=0},{x=5,y=7,z=5},{x=0,y=10,z=0})
--在聊天框显示
Chat:sendSystemMsg("把(0,0)高度3到(5,5)高度7范围内的方块复制到了(0,0)高度10(以此为起点)")

replaceAreaRangeBlock

  • 参数及类型:

    • posbeg:table起点{x=number, y=number, z=number}
    • posend:table终点{x=number, y=number, z=number}
    • srcblockid:number替换原始方块
    • destblockid:number替换目标方块
    • face:number朝向
  • 返回值及类型:

  • 该方法的主要作用:替换区域范围方块

  • 具体使用案例如下:

--替换两点之间范围内的某种方块为另一种方块
--前两个参数为范围的起点和终点坐标组成的表
--第三个参数101为要替换掉的方块id,101是土块
--第四个参数为要替换为的方块id,1是地心基石
--最后一个参数为方块朝向:0西 1东 2南 3北 4下 5上
Area:replaceAreaRangeBlock({x=0,y=3,z=0},{x=5,y=7,z=5},101,1,0)
--在聊天框显示
Chat:sendSystemMsg("从(0,0)高度3到(5,5)高度7的范围内,所有的土块被替换为了基岩")

 

DestroyBlockAreaRange

  • 参数及类型:
    • posbeg:table起点{x=number, y=number, z=number}
    • posend:table终点{x=number, y=number, z=number}
    • blockid:number破坏的方块ID
  • 返回值及类型:
    • ErrorCode.OK
  • 该方法的主要作用:破坏区域范围方块
  • 具体使用案例如下:
Area:DestroyBlockAreaRange({x=0,y=6,z=0},{x=5,y=7,z=5},100)

 

站点有内容要更新是否更新。
更新
忽略