具体函数名及描述如下:
参数及类型:none
返回值及类型:
该方法的主要作用:是否为白天
具体使用案例如下:
--判断现在是不是白天
local result=World:isDaytime()
if result==0 then--如果是白天
Chat:sendSystemMsg("现在是白天!")
else--如果不是白天
Chat:sendSystemMsg("现在是晚上!")
end
参数及类型:无
返回值及类型:
该方法的主要作用:是否为自定义游戏
具体使用案例如下:
--判断是不是自定义游戏
local result=World:isCustomGame()
if result==0 then--如果是自定义
Chat:sendSystemMsg("当前是自定义游戏!")
else--如果不是自定义
Chat:sendSystemMsg("当前不是自定义游戏!")
end
--判断是不是创造模式
local result=World:isCreativeMode()
if result==0 then--如果是创造模式
Chat:sendSystemMsg("当前是创造模式!")
else--如果不是创造模式
Chat:sendSystemMsg("当前不是创造模式!")
end
--判断是不是多人创造模式或者玩法编辑模式
local result=World:isGodMode()
if result==0 then--如果是多人创造或者玩法编辑
Chat:sendSystemMsg("当前是多人创造或玩法编辑模式!")
else--如果不是
Chat:sendSystemMsg("当前不是多人创造或玩法编辑模式!")
end
--判断是不是极限模式
local result=World:isExtremityMode()
if result==0 then--如果是极限模式
Chat:sendSystemMsg("当前是极限模式!")
else--如果不是极限模式
Chat:sendSystemMsg("当前不是极限模式!")
end
--判断是不是冒险自由模式
local result=World:isFreeMode()
if result==0 then--如果是冒险自由模式
Chat:sendSystemMsg("当前是冒险自由模式!")
else--如果不是
Chat:sendSystemMsg("当前不是冒险自由模式!")
end
--判断是不是单人生存模式
local result=World:isSurviveMode()
if result==0 then--如果是单人生存模式
Chat:sendSystemMsg("当前是单人生存模式!")
else--如果不是单人生存模式
Chat:sendSystemMsg("当前不是单人生存模式!")
end
--判断是不是创造转生存模式
local result=World:isCreateRunMode()
if result==0 then--如果是创造转生存模式
Chat:sendSystemMsg("当前是创造转生存模式!")
else--如果不是创造转生存模式
Chat:sendSystemMsg("当前不是创造转生存模式!")
end
--判断是不是玩法编辑模式
local result=World:isGameMakerMode()
if result==0 then--如果是玩法编辑模式
Chat:sendSystemMsg("当前是玩法编辑模式!")
else--如果不是玩法编辑模式
Chat:sendSystemMsg("当前不是玩法编辑模式!")
end
--判断是不是玩法运行模式
local result=World:isGameMakerRunMode()
if result==0 then--如果是玩法运行模式
Chat:sendSystemMsg("当前是玩法运行模式!")
else--如果不是玩法运行模式
Chat:sendSystemMsg("当前不是玩法运行模式!")
end
--获取当前时间
local result,time=World:getHours()
--在聊天框显示
Chat:sendSystemMsg("现在是"..time.."点!")
--设置时间为8点
World:setHours(8)
--在聊天框显示
Chat:sendSystemMsg("时间设置为8点!")
--获取当前视角编辑状态
local result,state=World:getCameraEditState()
if state==0 then--0:默认
Chat:sendSystemMsg("当前视角编辑状态为:默认")
elseif state==1 then--1:编辑中
Chat:sendSystemMsg("当前视角编辑状态为:编辑中")
elseif state==2 then--2:测试中
Chat:sendSystemMsg("当前视角编辑状态为:测试中")
end
参数及类型:
CameraEditState
返回值及类型:
该方法的主要作用:设置视角编辑状态
具体使用案例如下:
local result = World:setCameraEditState(state)
参数及类型:none
返回值及类型:
CameraEditState
该方法的主要作用:获取自定义相机配置
具体使用案例如下:
local result = World:getCustomCameraConfig()
参数及类型:none
返回值及类型:
该方法的主要作用:获取区块(chunk)范围,返回区块始末位置
具体使用案例如下:
--获取区块范围
local result,startX,startZ,endX,endZ=World:getRangeXZ()
Chat:sendSystemMsg("区块起点横坐标:"..startX)
Chat:sendSystemMsg("区块起点纵坐标:"..startZ)
Chat:sendSystemMsg("区块终点横坐标:"..endX)
Chat:sendSystemMsg("区块终点纵坐标:"..endZ)
参数及类型:
返回值及类型:
该方法的主要作用:计算指定方向射线长度(遇到方块结束)
具体使用案例如下:
local function ClickBlock(event)
local srcx,srcy,srcz=0,7,0--计算起点
local dstx,dsty,dstz=0,7,10--计算终点(方向)
local distance=1--计算距离(意义不明)
--获取从起点开始,向终点方向到第一个方块的距离
local result,length=World:getRayLength(srcx, srcy, srcz, dstx, dsty, dstz, distance)
Chat:sendSystemMsg(math.floor(length))
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块
参数及类型:
返回值及类型:
该方法的主要作用:射线打到的方块类型(遇到方块结束)
具体使用案例如下:
--获取从(0,0)高度10开始,向北50格内碰到的第一个方块id
--方向参数:0西 1东 2南 3北 4下 5上
local result,blockid=World:getRayBlock(0,10,0,3,50)
if id==-1 then--如果50格内没有方块
Chat:sendSystemMsg("从(0,0)高度10开始,向北50格没有方块")
else--如果50格内有方块
Chat:sendSystemMsg("从(0,0)高度10开始,向北50格第一个方块id是"..blockid)
end
参数及类型:
返回值及类型:
该方法的主要作用:获取范围内actor,type参考OBJ_TYPE,返回数量和objid数组
具体使用案例如下:
--参数:
local objtype=1--类型参数:1玩家 2生物 3掉落物 4投掷物
local x1,y1,z1=0,7,0--区域起点坐标
local x2,y2,z2=50,57,50--区域终点坐标
--获取(x0,z0)高度y0到(x1,z1)高度y1范围内,类型为type的物品数量与列表
local result,num,objids=World:getActorsByBox(objtype,x1,y1,z1,x2,y2,z2)
--在聊天框显示数量
Chat:sendSystemMsg("在范围内一共有"..num.."个玩家")
--在聊天框显示列表
for i,a in ipairs(objids) do
Chat:sendSystemMsg("第"..i.."个:"..a)
end
参数及类型:
number
0表示阵亡,1表示存活,默认-1表示全体玩家返回值及类型:
该方法的主要作用:获取全部玩家数量,默认全部玩家
具体使用案例如下:
--获取当前存档玩家总数
local result,num=World:getPlayerTotal(-1)
Chat:sendSystemMsg("当前存档玩家总数为:"..num)
--获取当前存档阵亡玩家数
result,num=World:getPlayerTotal(0)
Chat:sendSystemMsg("当前存档阵亡玩家数为:"..num)
--获取当前存档存活玩家数
result,num=World:getPlayerTotal(1)
Chat:sendSystemMsg("当前存档存活玩家数为:"..num)
参数及类型:
number
0表示阵亡,1表示存活,默认-1表示全体玩家返回值及类型:
该方法的主要作用:获取全部玩家,可限制存活情况(0表示阵亡,1表示存活),默认全部玩家
具体使用案例如下:
--获取当前存档全部玩家列表
--参数:-1全部玩家 0阵亡玩家 1存活玩家
local result,num,array=World:getAllPlayers(-1)
--在聊天框显示数量
Chat:sendSystemMsg("当前存档一共有"..num.."个玩家")
--在聊天框显示列表
for i,a in ipairs(array) do
Chat:sendSystemMsg("第"..i.."个:"..a)
end
参数及类型:
number
0表示阵亡,1表示存活,默认-1表示全体玩家返回值及类型:
该方法的主要作用:随机选取一名玩家
具体使用案例如下:
--从全部玩家中随机选取一名玩家
--参数:-1全部玩家 0阵亡玩家 1存活玩家
local result,playerid=World:randomOnePlayer(-1)
--在聊天框显示
Chat:sendSystemMsg("随机选取了一名玩家:"..playerid)
--参数:
local type=2--类型参数:1玩家 2生物 3掉落物 4投掷物
local x0,y0,z0=0,7,0--区域起点坐标
local x1,y1,z1=50,57,50--区域终点坐标
--获取(x0,z0)高度y0到(x1,z1)高度y1范围内,类型为type的物品数量与列表
local result,n,actors=World:getActorsByBox(type,x0,y0,z0,x1,y1,z1)
if n>0 then--如果范围内生物数量大于0
--移除其中一个生物
World:despawnActor(actors[1])
--在聊天框显示
Chat:sendSystemMsg("移除了"..actors[1])
else--如果范围内没有生物
--在聊天框显示
Chat:sendSystemMsg("(0,7,0)至(50,57,50)范围内没有生物")
end
参数及类型:
返回值及类型:
该方法的主要作用:生成生物(包括怪物、NPC、动物等)
具体使用案例如下:
--在(0,0)高度7的位置生成3只鸡
--前三个参数0,7,0是生成坐标
--第四个参数3400是生成的生物id
--最后一个参数3是生成的数量
local result,objids=World:spawnCreature(0,7,0,3400,3)
--在聊天框显示提示
Chat:sendSystemMsg("在(0,0)高度7的位置生成了3只鸡,它们在存档中的id分别是:")
--在聊天框显示id列表
for i=1,#objids do
Chat:sendSystemMsg(objids[i])
end
--参数:
local type=2--类型参数:1玩家 2生物 3掉落物 4投掷物
local x0,y0,z0=0,7,0--区域起点坐标
local x1,y1,z1=50,57,50--区域终点坐标
--获取(x0,z0)高度y0到(x1,z1)高度y1范围内,类型为type的物品数量与列表
local result,n,actors=World:getActorsByBox(type,x0,y0,z0,x1,y1,z1)
if n>0 then--如果范围内生物数量大于0
--移除其中一个生物
World:despawnCreature(actors[1])
--在聊天框显示
Chat:sendSystemMsg("移除了"..actors[1])
else--如果范围内没有生物
--在聊天框显示
Chat:sendSystemMsg("(0,7,0)至(50,57,50)范围内没有生物")
end
参数及类型:
返回值及类型:
该方法的主要作用:在指定位置生成道具
具体使用案例如下:
--在(0,0)高度7的位置生成3个土块
--前三个参数0,7,0是生成坐标
--第四个参数101是生成的物品id
--最后一个参数3是生成的数量
local result,objid=World:spawnItem(0,7,0,101,3)
--在聊天框显示提示
Chat:sendSystemMsg("在(0,0)高度7的位置生成了3个土块,它们在存档中的id是"..objid)
--移除指定区域内所有掉落物
--前三个参数为区域起点坐标
--后三个参数为区域终点坐标
World:despawnItemByBox(-20,0,-20,20,50,20)
--在聊天框显示
Chat:sendSystemMsg("移除了(-20,0,-20)至(20,50,20)区域内的所有掉落物")
--每当有玩家做动画表情,移除房主周围10格内的某一掉落物
--当玩家做动画表情时执行此函数
local function Player_PlayAction(event)
--获取房主的坐标
local result,x,y,z=Player:getPosition(0)
--获取房主周围10格内的掉落物数量和列表
local result2,num,list=World:getActorsByBox(3,x-10,y-10,z-10,x+10,y+10,z+10)
if num>0 then--如果存在掉落物
--移除第一组物品
World:despawnItemByObjid(list[1])
--在聊天框显示
Chat:sendSystemMsg("附近10格发现掉落物品,已移除了其中一组")
else--如果不存在掉落物
--在聊天框显示
Chat:sendSystemMsg("附近10格没有发现掉落物品!")
end
end
--注册动画表情监听器,当玩家做动画表情时执行上面的函数
ScriptSupportEvent:registerEvent([=[Player.PlayAction]=],Player_PlayAction)
参数及类型:
返回值及类型:
该方法的主要作用:生成投掷物
具体使用案例如下:
local function ClickBlock(event)
local shooter=event.eventobjid--投掷物发射者的实体id,这里是点击方块的玩家
local itemid=12054--投掷物id,这里是小雪球
local x,y,z=event.x,event.y+1,event.z--投掷起点坐标
local dstx,dsty,dstz=event.x,event.y+10,event.z--向此坐标投掷
local speed=50--抛出速度
--创建并发射投掷物
World:spawnProjectile(shooter, itemid, x, y, z, dstx, dsty, dstz, speed)
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块
参数及类型:
返回值及类型:
该方法的主要作用:生成投掷物(通过方向)
具体使用案例如下:
local function ClickBlock(event)
local shooter=event.eventobjid--投掷物发射者的实体id,这里是点击方块的玩家
local itemid=12054--投掷物id,这里是小雪球
local x,y,z=event.x,event.y+1,event.z--投掷起点坐标
local dirx,diry,dirz=0,1,0--向此方向投掷
local speed=50--抛出速度
--创建并发射投掷物
World:spawnProjectileByDir(shooter, itemid, x, y, z, dirx, diry, dirz, speed)
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块
参数及类型:
返回值及类型:
该方法的主要作用:计算位置之间的距离
具体使用案例如下:
--计算两点间的直线距离
--第一个参数是由起点坐标组成的表
--第二个参数是由终点坐标组成的表
local result,distance=World:calcDistance({x=0,y=0,z=0},{x=10,y=10,z=10})
--在聊天框显示
Chat:sendSystemMsg("(0,0)高度0到(10,10)高度10的直线距离是"..distance)
参数及类型:
返回值及类型:
该方法的主要作用:在指定位置播放特效
具体使用案例如下:
--在(0,0)高度7的位置播放烟雾特效
--前三个参数是播放特效的位置坐标
--第四个参数是播放特效的特效id,具体可以在“迷你世界ID查询”的“特效表数据”里查看
--第五个参数是特效的缩放比例
--第六个参数是播放时长,时长大于0时,特效会在设定时间内循环播放,直到时间结束;设置时间小于等于0或为nil时,循环类型的特效会持续播放,非循环类型的特效只播放一次
--最后一个参数可以设定是否根据视野裁剪范围,如果设定为false,特效稍远一点就会被裁剪,如果设定为true,会根据视野来决定裁剪范围
World:playParticalEffect(0,7,0,1001,1,3,true)
--在聊天框显示
Chat:sendSystemMsg("在(0,0)高度7的位置播放烟雾特效3秒,根据视野裁剪")
--停止指定位置的指定特效
--前三个参数是停止播放特效的位置坐标
--最后一个参数是需要停止的特效id
World:stopEffectOnPosition(0,7,0,1001)
--在聊天框显示
Chat:sendSystemMsg("停止了(0,0)高度7位置的1001烟雾特效")
参数及类型:
返回值及类型:
该方法的主要作用:设置指定位置的特效大小
具体使用案例如下:
--缩放指定位置的指定特效
--前三个参数是需要缩放特效的坐标
--第四个参数是需要缩放的特效id
--最后一个参数是设置的缩放比例
World:setEffectScaleOnPosition(0,7,0,1001,2)
--在聊天框显示
Chat:sendSystemMsg("把(0,0)高度7位置的烟雾特效放大了两倍")
--获取一个随机特效id
local result,id=World:randomParticleEffectID()
--在聊天框显示
Chat:sendSystemMsg("获取到了一个随机特效id:"..id)
参数及类型:
返回值及类型:
该方法的主要作用:在指定位置上播放指定音效
具体使用案例如下:
--在(0,0)高度7的位置播放音乐10713
--第一个参数为播放音乐的坐标组成的表
--第二个参数10713为播放的音效id,具体可以在“迷你世界ID查询”的“音效表数据”里查看
--后三个参数分别是:音量、音高、是否循环播放
World:playSoundEffectOnPos({x=0,y=7,z=0},10713,100,1,false)
--在聊天框显示
Chat:sendSystemMsg("(0,0)高度7的位置正在播放音乐")
--在(0,0)高度7的位置播放音乐10713
World:playSoundEffectOnPos({x=0,y=7,z=0},10713,100,1,false)
--在聊天框显示提示
Chat:sendSystemMsg("(0,0)高度7的位置正在播放音乐,做动画表情即可停止播放")
--当玩家做动画表情时执行此函数
local function Player_PlayAction(event)
--停止(0,0)高度7位置音乐10713的播放
--第一个参数为要停止播放音乐的坐标组成的表
--第二个参数为要停止播放的音乐id,具体可以在“迷你世界ID查询”的“音效表数据”里查看
World:stopSoundEffectOnPos({x=0,y=7,z=0},10713)
--在聊天框显示
Chat:sendSystemMsg("停止了(0,0)高度7音乐10713的播放")
end
--注册一个动画表情监听器,事件发生时执行上面的函数
ScriptSupportEvent:registerEvent([=[Player.PlayAction]=],Player_PlayAction)
local function ClickBlock(event)
local x,y,z=event.x,event.y+1,event.z--要获取亮度的坐标,这里是被点击的方块表面(上面1格)
local result,lightlv=World:getLightByPos(x,y,z)--获取坐标的亮度
Chat:sendSystemMsg(lightlv)--在聊天框显示
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块
local function ClickBlock(event)
local x,y,z=event.x,event.y+1,event.z--要设置亮度的坐标,这里是被点击的方块表面(上面1格)
local lv=15--要设置的亮度级别(0-15)
World:setBlockLightEx(x, y, z, lv)
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], ClickBlock)--点击方块
local result,soundid = World:randomSoundID()
local result,wtype = World:randomWeatherID()
local result, year = World:getLocalDate(EVENTDATE.YEAR) -- 获取年
local result,date = World:getLocalDateString() -- 获取日期
function Game_StartGame(obj)
local result, year = World:getServerDate(EVENTDATE.YEAR) -- 获取服务器时间的年
Chat:sendSystemMsg(year, 0)end
ScriptSupportEvent:registerEvent([=[Game.Start]=], Game_StartGame)
function Game_StartGame(obj)
local result,date = World:getServerDateString() -- 获取服务器日期
Chat:sendSystemMsg(date, 0)end
ScriptSupportEvent:registerEvent([=[Game.Start]=], Game_StartGame)
local result, year = World:getDateFromTime(os.time(),EVENTDATE.YEAR) -- 获取年
local result, date = World:getDateStringFromTime(os.time()) -- 完整日期
local code ,time = World:getTimeFromDateString(date_str)
if code == ErrorCode.OK then
print('执行成功' ,time )
else
print('执行失败')
end
local code = World:SetTimeVanishingSpeed(speed)
if code == ErrorCode.OK then
print('执行成功' )
else
print('执行失败')
end
local code = World:SetSkyBoxTemplate(value)
if code == ErrorCode.OK then
print('执行成功' )
else
print('执行失败')
end
local code = World:SetSkyBoxMaps(itype, url)
if code == ErrorCode.OK then
print('执行成功' )
else
print('执行失败')
end
local code = World:SetSkyBoxColor(time, itype, color)
if code == ErrorCode.OK then
print('执行成功' )
else
print('执行失败')
end
local code = World:SetSkyBoxAttr(time, itype, value)
if code == ErrorCode.OK then
print('执行成功' )
else
print('执行失败')
end
local code = World:SetSkyBoxFilter(playerid, itype, value)
if code == ErrorCode.OK then
print('执行成功' )
else
print('执行失败')
end
local code = World:SetSkyBoxSwitch(time, itype, value)
if code == ErrorCode.OK then
print('执行成功' )
else
print('执行失败')
end
local code = World:SetSkyBoxFilterSwitch(playerid, itype, value)
if code == ErrorCode.OK then
print('执行成功' )
else
print('执行失败')
end
local ret = World:SetGroupWeather(groupid, weatherid)
if ret == ErrorCode.OK then
print('执行成功' )
else
print('执行失败')
end
local ret = World:GetGroupWeather(groupid)
if ret == ErrorCode.OK then
print('执行成功' )
else
print('执行失败')
end
local code = World:SetSkyBoxMapsAnim(playerid, itype, url, animId, animTime)
if code == ErrorCode.OK then
print('执行成功' )
else
print('执行失败')
end
local code = World:SetSkyBoxColorAnim(playerid, itype, color, animId, animTime)
if code == ErrorCode.OK then
print('执行成功' )
else
print('执行失败')
end
local code = World:SetSkyBoxFilterAnim(playerid, itype, value, animId, animTime)
if code == ErrorCode.OK then
print('执行成功' )
else
print('执行失败')
end
local code = World:SetSkyBoxFilterAnim(playerid, itype, value, animId, animTime)
if code == ErrorCode.OK then
print('执行成功' )
else
print('执行失败')
end