# 世界管理接口 World

在使用世界接口前需先创建世界管理对象,方法如下:

local World = class.World.new()

具体函数名及描述如下:

序号 函数名 函数描述
1 isDaytime(...) 是否是白天
2 isCustomGame(...) 是否是自定义游戏
3 isCreativeMode(...) 是否是创造模式
4 isGodMode(...) 多人创造模式 或者 自制玩法的编辑模式
5 isExtremityMode(...) 极限模式
6 isFreeMode(...) 冒险模式之自由模式
7 isSurviveMode(...) 单人模式 或者 冒险模式之自由模式
8 isCreateRunMode(...) 由创造模式转的生存
9 isGameMakerMode(...) 自制玩法的编辑模式
10 isGameMakerRunMode(...) 自制玩法的运行模式
11 getHours(...) 获取游戏当前时间(h)
12 setHours(...) 设置游戏当前时间(h)
13 getCameraEditState(...) 获取视角编辑状态
14 setCameraEditState(...) 设置视角编辑状态
15 getCustomCameraConfig(...) 获取自定义相机配置
16 getRangeXZ(...) 获取区块(chunk)范围,返回区块始末位置
17 getRayLength(...) 计算指定方向射线长度(遇到方块结束)
18 getRayBlock(...) 射线打到的方块类型(遇到方块结束)
19 getActorsByBox(...) 获取范围内actor,type参考OBJ_TYPE,0表示范围内全部的actor, 返回数量和objid数组
20 getPlayerTotal(...) 获取全部玩家数量,默认全部玩家
21 getAllPlayers(...) 获取全部玩家,可限制存活情况(0表示存活,1表示阵亡),默认全部玩家
22 randomOnePlayer(...) 随机获取一名玩家
23 despawnActor(...) 移除actor
24 spawnCreature(...) 生成生物(包括怪物、NPC、动物等)
25 despawnCreature(...) 移除生物
26 spawnItem(...) 在指定位置生成道具
27 despawnItemByBox(...) 移除道具(通过区域)
28 despawnItemByObjid(...) 移除道具(通过ID)
29 spawnProjectile(...) 生成投掷物
30 spawnProjectileByDir(...) 生成投掷物(通过方向)
31 calcDistance(...) 计算位置之间的距离
32 playParticalEffect(...) 在指定位置播放特效 1.2+
33 stopEffectOnPosition(...) 停止指定位置的特效 1.2+
34 setEffectScaleOnPosition(...) 设置指定位置的特效大小 1.2+
35 randomParticleEffectID(...) 随机特效类型,随机返回一种特效ID 1.2+
36 playSoundEffectOnPos(...) 在指定位置上播放指定音效 1.3+
37 stopSoundEffectOnPos(...) 停止指定位置上的指定音效 1.3+

# isDaytime

  • 参数及类型:none
  • 返回值及类型:
  • 该方法的主要作用:是否是白天
  • 具体使用案例如下:
local isDayTx = World:isDaytime()
if isDayTx~=ErrorCode.OK then --如果是夜晚则给玩家发火把
	local itemId, itemCnt = 817, 2 --火把Id和数量
	Player:gainItems(playerId, itemId, itemCnt, 1)
end

# isCustomGame

  • 参数及类型:none
  • 返回值及类型:
  • 该方法的主要作用:是否是自定义游戏
  • 具体使用案例如下:
local result = World:isCustomGame()
if result==ErrorCode.OK then print('当前游戏是自定义游戏') end

# isCreativeMode

  • 参数及类型:none
  • 返回值及类型:
  • 该方法的主要作用:是否是创造模式
  • 具体使用案例如下:
local result = World:isCreativeMode()
if result==ErrorCode.OK then print('当前模式:创造模式') end

# isGodMode

  • 参数及类型:none
  • 返回值及类型:
  • 该方法的主要作用:多人创造模式 或者 自制玩法的编辑模式
  • 具体使用案例如下:
local result = World:isGodMode()
if result==ErrorCode.OK then print('当前模式:多人创造模式') end

# isExtremityMode

  • 参数及类型:none
  • 返回值及类型:
  • 该方法的主要作用:极限模式
  • 具体使用案例如下:
local result = World:isExtremityMode()
if result==ErrorCode.OK then print('当前模式:极限模式') end

# isFreeMode

  • 参数及类型:none
  • 返回值及类型:
  • 该方法的主要作用:冒险模式之自由模式
  • 具体使用案例如下:
local result = World:isFreeMode()
if result==ErrorCode.OK then print('当前模式:冒险模式之自由模式') end

# isSurviveMode

  • 参数及类型:none
  • 返回值及类型:
  • 该方法的主要作用:单人模式 或者 冒险模式之自由模式
  • 具体使用案例如下:
local result = World:isSurviveMode()
if result==ErrorCode.OK then print('当前模式:单人生存模式') end

# isCreateRunMode

  • 参数及类型:none
  • 返回值及类型:
  • 该方法的主要作用:由创造模式转的生存
  • 具体使用案例如下:
local result = World:isCreateRunMode()
if result==ErrorCode.OK then print('当前模式:由创造模式转的生存') end

# isGameMakerMode

  • 参数及类型:none
  • 返回值及类型:
  • 该方法的主要作用:自制玩法的编辑模式
  • 具体使用案例如下:
local result = World:isGameMakerMode()
if result==ErrorCode.OK then print('当前模式:自制玩法的编辑模式') end

# isGameMakerRunMode

  • 参数及类型:none
  • 返回值及类型:
  • 该方法的主要作用:自制玩法的运行模式
  • 具体使用案例如下:
local result = World:isGameMakerRunMode()
if result==ErrorCode.OK then print('当前模式:自制玩法的运行模式') end

# getHours

  • 参数及类型:none
  • 返回值及类型:
  • 该方法的主要作用:获取游戏当前时间(h)
  • 具体使用案例如下:
local result, dayTime = World:getHours()
if result==ErrorCode.OK then print('当前时间:', dayTime) end

# setHours

  • 参数及类型:
    • hour:int小时时间
  • 返回值及类型:
  • 该方法的主要作用:设置游戏当前时间(h)
  • 具体使用案例如下:
local result = World:setHours(hour)

# getCameraEditState

  • 参数及类型:none
  • 返回值及类型:
  • 该方法的主要作用:获取视角编辑状态
  • 具体使用案例如下:
local result, state = World:getCameraEditState()
if result==ErrorCode.OK then print('当前视角编辑状态:', state) end

# setCameraEditState

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:设置视角编辑状态
  • 具体使用案例如下:
--获取到的是Camera对象(userdata),此处返回的是nil
local result, config = World:getCustomCameraConfig()
if result==ErrorCode.OK and config~=nil then --自定义视角
	config:setOption(CAMERA_OPTION_INDEX_CONFIG_SET, CCG_FLATVIEW)
end

# getCustomCameraConfig

  • 参数及类型:none
  • 返回值及类型:
  • 该方法的主要作用:获取自定义相机配置
  • 具体使用案例如下:
local result = World:getCustomCameraConfig()

# getRangeXZ

  • 参数及类型:none
  • 返回值及类型:
  • 该方法的主要作用:获取区块(chunk)范围,返回区块始末位置
  • 具体使用案例如下:
local result, startX,startZ,endX,endZ = World:getRangeXZ()
if result==ErrorCode.OK then print('StartXZ=(',startX,', ',startZ,'), EndXZ=(',endX,', ',endZ,')')  end

# getRayLength

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:计算指定方向射线长度(遇到方块结束)
  • 具体使用案例如下:
local result = World:getRayLength(srcx, srcy, srcz, dstx, dsty, dstz, distance)

# getRayBlock

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:射线打到的方块类型(遇到方块结束)
  • 具体使用案例如下:
local result = World:getRayBlock(srcx, srcy, srcz, face, distance)

# getActorsByBox

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:获取范围内actor,type参考OBJ_TYPE,0表示范围内全部的actor, 返回数量和objid数组
  • 具体使用案例如下:
local actorType = 0 --OBJ_TYPE_MONSTER
local x1, y1, z1 = -5, 1, -5
local x2, y2, z2 = 15, 9, 15
local ret, num, array = World:getActorsByBox(actorType, x1,y1,z1, x2,y2,z2)
if ret == ErrorCode.OK then print('Actors ===>> ', num, array) end

# getPlayerTotal

  • 参数及类型:
    • alive:number0表示阵亡,1表示存活,默认-1表示全体玩家
  • 返回值及类型:
  • 该方法的主要作用:获取全部玩家数量,默认全部玩家
  • 具体使用案例如下:
local result = World:getPlayerTotal(alive)

# getAllPlayers

  • 参数及类型:
    • alive:number0表示阵亡,1表示存活,默认-1表示全体玩家
  • 返回值及类型:
  • 该方法的主要作用:获取全部玩家,可限制存活情况(0表示存活,1表示阵亡),默认全部玩家
  • 具体使用案例如下:
local aliveType = -1 --获取所有玩家数据
local ret, num, array = World:getAllPlayers(aliveType)
if ret == ErrorCode.OK then print('Actors ===>> ', num, array) end

# randomOnePlayer

  • 参数及类型:
    • alive:number0表示阵亡,1表示存活,默认-1表示全体玩家
  • 返回值及类型:
  • 该方法的主要作用:随机获取一名玩家
  • 具体使用案例如下:
local aliveType = 1 --随机一个存活玩家Id
local ret, playerId = World:randomOnePlayer(aliveType)
if ret == ErrorCode.OK then print('Player ===>> ', playerId) end

# despawnActor

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:移除actor
  • 具体使用案例如下:
local ret, num, array = World:getActorsByBox(aType, x1,y1,z1, x2,y2,z2)
if array and #array>0 then --移除Actor
	local result = World:despawnActor(array[#array])
	if result == ErrorCode.OK then print('Despawn the last actor') end
end

# spawnCreature

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:生成生物(包括怪物、NPC、动物等)
  • 具体使用案例如下:
local x, y, z = 6, 7, 8
local actorId, actorCnt = 3812, 2 --小牛
local ret, objids = World:spawnCreature(x, y, z, actorId, actorCnt)
if objids and #objids>0 then
	for idx = 1, #objIds do --设置氧气依赖
		Creature:setOxygenNeed(objids[idx], true)
	end
end

# despawnCreature

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:移除生物
  • 具体使用案例如下:
local result = World:despawnCreature(objids[1])
if result == ErrorCode.OK then print('Despawn the creature') end

# spawnItem

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:在指定位置生成道具
  • 具体使用案例如下:
local xPos, yPos, zPos = 5, 6, 7
local itemId, itemCnt = 15003, 30 --道具Id和数量
local ret, objIds = World:spawnItem(xPos, yPos, zPos, itemId, itemCnt)
if ret == ErrorCode.OK then print("Item[1]====>>>", objIds[1]) end

# despawnItemByBox

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:移除道具(通过区域)
  • 具体使用案例如下:
local x1, y1, z1 = -5, 5, -5
local x2, y2, z2 = 15, 9, 15
local result = World:despawnItemByBox(x1,y1,z1, x2,y2,z2)
if result == ErrorCode.OK then print('成功将指定区域的Item移除') end

# despawnItemByObjid

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:移除道具(通过ID)
  • 具体使用案例如下:
local result = World:despawnItemByObjid(objIds[1])
if result == ErrorCode.OK then print('成功将指定的Item移除') end

# spawnProjectile

local result = World:spawnProjectile(shooter, itemid, x, y, z, dstx, dsty, dstz, speed)

# spawnProjectileByDir

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:生成投掷物(通过方向)
  • 具体使用案例如下:
local result = World:spawnProjectileByDir(shooter, itemid, x, y, z, dirx, diry, dirz, speed)

# calcDistance

  • 参数及类型:
    • pos1:table起始位置{x,y,z}
    • pos2:table最终位置{x,y,z}
  • 返回值及类型:
  • 该方法的主要作用:计算位置之间的距离
  • 具体使用案例如下:
local result = World:calcDistance(pos1, pos2)

# playParticalEffect 1.2+

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:在指定位置播放特效
  • 具体使用案例如下:
local result = World:playParticalEffect(x, y, z, particleId, scale)

# stopEffectOnPosition 1.2+

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:停止指定位置的特效
  • 具体使用案例如下:
local result = World:stopEffectOnPosition(x, y, z, particleId)

# setEffectScaleOnPosition 1.2+

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:设置指定位置的特效大小
  • 具体使用案例如下:
local result = World:setEffectScaleOnPosition(x, y, z, particleId, scale)

# randomParticleEffectID 1.2+

  • 参数及类型:none
  • 返回值及类型:
  • 该方法的主要作用:随机特效类型,随机返回一种特效ID
  • 具体使用案例如下:
local result = World:randomParticleEffectID(x, y, z, particleId, scale)

# playSoundEffectOnPos 1.3+

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:在指定位置上播放指定音效
  • 具体使用案例如下:
local result = World:playSoundEffectOnPos(pos, soundId, volume, pitch, isLoop)

# stopSoundEffectOnPos 1.3+

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用:停止指定位置上的指定音效
  • 具体使用案例如下:
local result = World:stopSoundEffectOnPos(pos, soundId)
上次更新: 2019-11-22 11:51:08