Skip to content

世界模块管理接口 World

具体函数名及描述如下:

序号函数名函数描述
1StopParticleOnPos(...)停止指定位置的特效
2SetParticleTransform(...)设置指定位置的特效偏移 旋转 缩放
3PlayParticle(...)在指定位置播放特效
4SpawnCreature(...)生成生物(包括怪物、NPC、动物等)
5DespawnActor(...)移除生物
6GetPlayerTotal(...)获取全部玩家数量
7GetAllPlayers(...)获取全部玩家
8GetSpawnPoint(...)获取默认出生点
9PlaySoundEffectOnPos(...)在指定位置上播放指定音效
10StopSoundEffectOnPos(...)停止指定位置上的指定音效
11PauseSoundEffectOnPos(...)暂停/恢复指定位置上的指定音效
12SetHours(...)设置游戏当前时间(小时)
13GetHours(...)获取游戏当前时间(小时)
14GetDay(...)获取游戏当前天数
15SetGravity(...)设置重力
16GetGravity(...)获取重力
17CanMobSpawnOnPosXZ(...)获取XZ位置上是否可创建生物 并返回对应的Y轴位置
18GetCurMapId(...)获取当前地图的mapid
19SpawnProjectile(...)生成投掷物
20SpawnProjectileByDir(...)生成投掷物
21GetBiomeGroup(...)获取地形类型所属的地形组类型
22PixelMapAddMarker(...)uin:玩家ID
23PixelMapRefreshMarker(...)uin:玩家ID
24PixelMapDelMarker(...)开发者删除1个标记
25PixelMapAddTexture(...)uin:玩家ID
26PixelMapRefreshTexture(...)uin:玩家ID
27PixelMapDelTexture(...)开发者删除1个纹理
28SetSkyBoxColorAnim(...)设置某玩家天空盒全部时间点的颜色参数(带动效)
29SetTimeVanishingSpeed(...)设置天空盒时间流逝速度
30SetSkyBoxTemplate(...)设置天空盒模板
31SetSkyBoxMaps(...)设置天空盒贴图
32SetSkyBoxColor(...)设置天空盒颜色参数
33SetSkyBoxAttr(...)设置天空盒属性参数
34SetSkyBoxFilter(...)设置天空盒滤镜参数
35SetSkyBoxSwitch(...)天空盒属性开关
36SetSkyBoxMapsAnim(...)设置天空盒贴图(带动效)
37SetSkyBoxFilterAnim(...)设置天空盒滤镜参数(带动效)
38GetDirRayDetection(...)获取对象到某个方向上的射线检测目标
39GetRayLength(...)计算指定方向射线长度(遇到方块结束)
40GetRayBlock(...)射线打到的方块类型(遇到方块结束)
41CalcDirectionByYawDirection(...)通过局部坐标方向计算绝对正方向(忽略视角仰角)
42CalcDirectionByYawAngle(...)通过局部球坐标方向计算绝对正方向(忽略视角仰角)
43CalcDirectionByCoord(...)绝对坐标方向
44CalcDirectionByAngle(...)角度坐标方向
45RandomParticleEffectID(...)随机特效类型,随机返回一种特效ID
46RandomSoundID(...)随机音效ID,随机返回一种音效ID
47CalcDistance(...)计算两个三维坐标之间的距离
48SetGroupWeather(...)设置天气组的天气状态
49RandomWeatherID(...)随机天气
50GetGroupWeather(...)获取天气组天气
51SetSpawnPoint(...)设置出生点
52CalcDirectionByPos2Pos(...)位置到位置的单位方向

StopParticleOnPos

  • 参数及类型:
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 停止指定位置的特效
  • 具体使用案例如下:
lua
    local x, y, z = Actor:GetPosition(Player:GetHostUin())

    local result = World:StopParticleOnPos(x, y, z, 1001)

SetParticleTransform

  • 参数及类型:
    • pos:table位置(米)
    • particleIdArg:number或者number数组特效id
    • offset:table偏移(米)
    • rot:table旋转
    • scale:table特效缩放大小
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 设置指定位置的特效偏移 旋转 缩放
  • 具体使用案例如下:
lua
    local x, y, z = Actor:GetPosition(Player:GetHostUin())

    -- 设置效果缩放2倍 

    local result = World:SetParticleTransform({x = x, y = y, z = z}, 1001, nil, nil, {x = 2, y = 2, z = 2})

PlayParticle

  • 参数及类型:
    • pos:table位置(米)
    • particleIdArg:number或者number数组特效id
    • ptimeArg:number播放时长(单位:秒,非循环特效如果时长大于一次播放时长,将会重复播放)
    • offset:table偏移(米)
    • rot:table旋转
    • scale:table特效缩放大小
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 在指定位置播放特效
  • 具体使用案例如下:
lua
    local x, y, z = Actor:GetPosition(Player:GetHostUin())

    local result = World:PlayParticle({x = x, y = y, z = z}, 1001, 2)

SpawnCreature

  • 参数及类型:
    • x,y,z:number方块坐标
    • actorid:number,string生物类型
    • num:number生成数量
    • trigger:boolean是否触发事件
  • 返回值及类型:
  • 该方法的主要作用: 生成生物(包括怪物、NPC、动物等)
  • 具体使用案例如下:
lua
    local x1, y1, z1 = Actor:GetPosition(Player:GetHostUin())

    local creatures = World:SpawnCreature(x1 + 5, y1 + 1, z1, 3400)

DespawnActor

  • 参数及类型:
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 移除生物
  • 具体使用案例如下:
lua
    local result = World:DespawnActor(creatureId)

GetPlayerTotal

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

GetAllPlayers

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

GetSpawnPoint

  • 参数及类型: 无
  • 返回值及类型:
  • 该方法的主要作用: 获取默认出生点
  • 具体使用案例如下:
lua
    local x, y, z = World:GetSpawnPoint()

PlaySoundEffectOnPos

  • 参数及类型:
  • 返回值及类型:
    • ret:bool成功(true)
  • 该方法的主要作用: 在指定位置上播放指定音效
  • 具体使用案例如下:
lua
    local x, y, z = Actor:GetPosition(Player:GetHostUin())

    local result = World:PlaySoundEffectOnPos({x = x, y = y, z = z}, 10946, 100, 1, false)

StopSoundEffectOnPos

  • 参数及类型:
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 停止指定位置上的指定音效
  • 具体使用案例如下:
lua
    local x, y, z = Actor:GetPosition(Player:GetHostUin())

    local result = World:StopSoundEffectOnPos({x = x, y = y, z = z}, 10946)

PauseSoundEffectOnPos

  • 参数及类型:
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 暂停/恢复指定位置上的指定音效
  • 具体使用案例如下:
lua
    local x, y, z = Actor:GetPosition(Player:GetHostUin())

    local result = World:PauseSoundEffectOnPos({x = x, y = y, z = z}, 10946, true)

SetHours

  • 参数及类型:
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 设置游戏当前时间(小时)
  • 具体使用案例如下:
lua
    local result = World:SetHours(2)

GetHours

  • 参数及类型: 无
  • 返回值及类型:
  • 该方法的主要作用: 获取游戏当前时间(小时)
  • 具体使用案例如下:
lua
    local hours = World:GetHours()

GetDay

  • 参数及类型: 无
  • 返回值及类型:
  • 该方法的主要作用: 获取游戏当前天数
  • 具体使用案例如下:
lua
    local day = World:GetDay()

SetGravity

  • 参数及类型:
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 设置重力
  • 具体使用案例如下:
lua
    local result = World:SetGravity(12)

GetGravity

  • 参数及类型: 无
  • 返回值及类型:
  • 该方法的主要作用: 获取重力
  • 具体使用案例如下:
lua
    local gravity = World:GetGravity()

CanMobSpawnOnPosXZ

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取XZ位置上是否可创建生物 并返回对应的Y轴位置
  • 具体使用案例如下:
lua
    local canSpawnY = World:CanMobSpawnOnPosXZ(x,y, z)

    if canSpawnY and canSpawnY > 0 then

        print("可以创建生物位置", x, canSpawnY, z)

    end

GetCurMapId

  • 参数及类型: 无
  • 返回值及类型:
  • 该方法的主要作用: 获取当前地图的mapid
  • 具体使用案例如下:
lua
    local mapId = World:GetCurMapId()

SpawnProjectile

  • 参数及类型:
    • uin:number玩家uin
    • itemid:number,string道具类型
    • x,y,z:number位置坐标
    • dstx,dsty,dstz:number目标坐标
    • speed:number速度
  • 返回值及类型:
  • 该方法的主要作用: 生成投掷物
  • 具体使用案例如下:
lua
    local x, y, z = Actor:GetPosition(Player:GetHostUin())

    -- 生成石箭往x+20,y+5,z方向射出, 速度10

    local projectile = World:SpawnProjectile(Player:GetHostUin(), 12051, x, y, z, x + 20, y + 5, z, 10)

SpawnProjectileByDir

  • 参数及类型:
    • uin:number玩家uin
    • itemid:number,string道具类型
    • x,y,z:number位置坐标
    • dstx,dsty,dstz:number目标方向
    • speed:number速度
  • 返回值及类型:
  • 该方法的主要作用: 生成投掷物
  • 具体使用案例如下:
lua
    local x, y, z = Actor:GetPosition(Player:GetHostUin())

    local projectile = World:SpawnProjectileByDir(Player:GetHostUin(), 12051, x, y, z, 20, 5, 20, 10)

GetBiomeGroup

  • 参数及类型:
  • 返回值及类型:
    • biometype:number地形组类型(WeatherGroup)
  • 该方法的主要作用: 获取地形类型所属的地形组类型
  • 具体使用案例如下:
lua
    local group = World:GetBiomeGroup(x, z)

PixelMapAddMarker

  • 参数及类型: id:标记id,方便开发者精准控制
  • 返回值及类型: params:标记的超参数
  • 该方法的主要作用: uin:玩家ID
  • 具体使用案例如下:
lua
    -- 参数说明

    local x, y, z = Actor:GetPosition(Player:GetHostUin())

    local params = {

        posX  = x,--(必填)

        posZ = z,--(必填)

        -- name ="测试名",   --名字

        iconName = "0_10074",  --图片路径(必填)

        -- zoomMin = 0,  --最小scale倍率

        -- zoomMax = 100,  --最大scale倍率

        -- isTrace = false,  --是否追踪 

        -- isRadarTrace = false,  --雷达上是否追踪

        -- appearInBlockFog = true,  --

        -- isCanUI = false,  --是否能点击

        -- desc = "",   --描述

        -- level = 4,  --UI层级

    }

    local result = World:PixelMapAddMarker(Player:GetHostUin(), "markId_123", params)

PixelMapRefreshMarker

  • 参数及类型: id:标记id,方便开发者精准控制
  • 返回值及类型: params:标记的超参数(提供改变的参数即可)
  • 该方法的主要作用: uin:玩家ID
  • 具体使用案例如下:
lua
    local x, y, z = Actor:GetPosition(Player:GetHostUin())

    local result = World:PixelMapRefreshMarker(Player:GetHostUin(), "markId_123", {x = x,  z = z, iconName = "0_10103"})

PixelMapDelMarker

  • 参数及类型: uin:玩家ID
  • 返回值及类型: id:标记id,方便开发者精准控制
  • 该方法的主要作用: 开发者删除1个标记
  • 具体使用案例如下:
lua
    local result = World:PixelMapDelMarker(Player:GetHostUin(), "markId_123")

PixelMapAddTexture

  • 参数及类型: id:纹理id,方便开发者精准控制
  • 返回值及类型: params:标记的超参数
  • 该方法的主要作用: uin:玩家ID
  • 具体使用案例如下:
lua
    --开发者添加纹理到地图纹理节点,可以修饰原本的地图纹理(比如加背景,遮罩,自定义地图纹理)

    local x, y, z = Actor:GetPosition(Player:GetHostUin())

    local params = {

        filePath = "0_10103", --图片id

        width = 100,     --宽度

        height = 100,    --高度

        posX = x,      --在地图上的方块位置

        posZ = z,      --在地图上的方块位置

        level = 11,     --层级  官方地图纹理层级为10

        pivotX = 0,      --x轴锚点

        pivotY = 0,      --z轴锚点

        alpha = 1,     --透明度

        scale = 1,     --缩放

        rotation = 0,  --旋转

        colorR = 255, --颜色

        colorG = 255, --颜色

        colorB = 255, --颜色

    }

    local result = World:PixelMapAddTexture(Player:GetHostUin(), "textureId_1", params)

PixelMapRefreshTexture

  • 参数及类型: id:纹理id,方便开发者精准控制
  • 返回值及类型: params:纹理的超参数(提供改变的参数即可)
  • 该方法的主要作用: uin:玩家ID
  • 具体使用案例如下:
lua
    local x, y, z = Actor:GetPosition(Player:GetHostUin())

    local params = {

        filePath = "0_10104", --图片id

        width = 100,     --宽度

        height = 100,    --高度

        posX = x,      --在地图上的方块位置

        posZ = z,      --在地图上的方块位置

        level = 11,     --层级  官方地图纹理层级为10

        pivotX = 0,      --x轴锚点

        pivotY = 0,      --z轴锚点

        alpha = 1,     --透明度

        scale = 1,     --缩放

        rotation = 0,  --旋转

        colorR = 255, --颜色

        colorG = 255, --颜色

        colorB = 255, --颜色

    }

    local result = World:PixelMapRefreshTexture(Player:GetHostUin(), "textureId_1", params)

PixelMapDelTexture

  • 参数及类型: uin:玩家ID
  • 返回值及类型: id:纹理id,方便开发者精准控制
  • 该方法的主要作用: 开发者删除1个纹理
  • 具体使用案例如下:
lua
    local result = World:PixelMapDelTexture(Player:GetHostUin(), "textureId_1")

SetSkyBoxColorAnim

  • 参数及类型:
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 设置某玩家天空盒全部时间点的颜色参数(带动效)
  • 具体使用案例如下:
lua
    local result = World:SetSkyBoxColorAnim(Player:GetHostUin(), SkyboxColor.Moon, [=[0xffe082]=], Easing.Linear, 1)

SetTimeVanishingSpeed

  • 参数及类型:
    • speed:number时间流逝速度
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 设置天空盒时间流逝速度
  • 具体使用案例如下:
lua
    local result = World:SetTimeVanishingSpeed(20)

SetSkyBoxTemplate

  • 参数及类型:
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 设置天空盒模板
  • 具体使用案例如下:
lua
    local result = World:SetSkyBoxTemplate(7)

SetSkyBoxMaps

  • 参数及类型:
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 设置天空盒贴图
  • 具体使用案例如下:
lua
    local result = World:SetSkyBoxMaps(SkyboxMap.Sky, [=[0_30011]=])

SetSkyBoxColor

  • 参数及类型:
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 设置天空盒颜色参数
  • 具体使用案例如下:
lua
    local result = World:SetSkyBoxColor(SkyboxTime.Current, SkyboxColor.Top, [=[0x1e88e5]=])

SetSkyBoxAttr

  • 参数及类型:
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 设置天空盒属性参数
  • 具体使用案例如下:
lua
    local result = World:SetSkyBoxAttr(SkyboxTime.Current, SkyboxAttr.SunScale, 20)

SetSkyBoxFilter

  • 参数及类型:
    • itype:number参数类型(SkyboxFilter)SkyboxFilter
    • value:number:参数值(0~100) 或者 string:16进制颜色值(0xffffff)
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 设置天空盒滤镜参数
  • 具体使用案例如下:
lua
    local result = World:SetSkyBoxFilter(Player:GetHostUin(), SkyboxFilter.Contrast, 50)

SetSkyBoxSwitch

  • 参数及类型:
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 天空盒属性开关
  • 具体使用案例如下:
lua
    local result = World:SetSkyBoxSwitch(SkyboxTime.Current, SkyboxSwitch.Fogenable, true)

SetSkyBoxMapsAnim

  • 参数及类型:
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 设置天空盒贴图(带动效)
  • 具体使用案例如下:
lua
    local result = World:SetSkyBoxMapsAnim(Player:GetHostUin(), SkyboxMap.Sky, [=[0_30005]=], Easing.BackOut, 1)

SetSkyBoxFilterAnim

  • 参数及类型:
    • itype:number参数类型(SkyboxFilter)SkyboxFilter
    • value:number:参数值(0~100) 或者 string:16进制颜色值(0xffffff)
    • animId:number动画ID(Easing)Easing
    • animTime:number动画时间
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 设置天空盒滤镜参数(带动效)
  • 具体使用案例如下:
lua
    local result = World:SetSkyBoxFilterAnim(Player:GetHostUin(), SkyboxFilter.Color, [=[0xffee58]=], Easing.Linear, 1)

GetDirRayDetection

  • 参数及类型:
    • posbegin:table起点位置{x=0
    • y=0
    • z=0}
    • dir:table方向向量{x=floatx
    • y=floaty
    • z=floatz}
    • maxlen:number:最大检测方块距离,itype:number:检测类型RayDetectType
  • 返回值及类型:
  • 该方法的主要作用: 获取对象到某个方向上的射线检测目标
  • 具体使用案例如下:
lua
    local x, y, z = Actor:GetPosition(Player:GetHostUin())

    local id = World:GetDirRayDetection({x, y, z}, {x + 10, y, z}, 100, RayDetectType.ActorType)

GetRayLength

  • 参数及类型:
    • srcx
    • srcy
    • srcz:number起点坐标
    • dstx
    • dsty
    • dstz:number终点坐标
    • distance:number最大检测距离
  • 返回值及类型:
  • 该方法的主要作用: 计算指定方向射线长度(遇到方块结束)
  • 具体使用案例如下:
lua
    local x, y, z = Actor:GetPosition(Player:GetHostUin())

    local length = World:GetRayLength(x, y, z, x, y + 20, z, 100)

GetRayBlock

  • 参数及类型:
    • srcx
    • srcy
    • srcz:number起点坐标
    • dstx
    • dsty
    • dstz:number终点坐标
    • distance:number最大检测距离
  • 返回值及类型:
  • 该方法的主要作用: 射线打到的方块类型(遇到方块结束)
  • 具体使用案例如下:
lua
    local x, y, z = Actor:GetPosition(Player:GetHostUin())

    local block = World:GetRayBlock(x, y, z, FaceDir.NegY, 100)

CalcDirectionByYawDirection

  • 参数及类型:
  • 返回值及类型:
    • ret:table:绝对方向向量{x: number
    • y: number
    • z: number}
  • 该方法的主要作用: 通过局部坐标方向计算绝对正方向(忽略视角仰角)
  • 具体使用案例如下:
lua
    local direction = World:CalcDirectionByYawDirection(Player:GetHostUin(), 100, 100, 100)

CalcDirectionByYawAngle

  • 参数及类型:
  • 返回值及类型:
    • ret:table:绝对方向向量{x: number
    • y: number
    • z: number}
  • 该方法的主要作用: 通过局部球坐标方向计算绝对正方向(忽略视角仰角)
  • 具体使用案例如下:
lua
    local direction = World:CalcDirectionByYawAngle(Player:GetHostUin(), 30, 45)

CalcDirectionByCoord

  • 参数及类型:
  • 返回值及类型:
    • ret:table:绝对方向向量{x: number
    • y: number
    • z: number}
  • 该方法的主要作用: 绝对坐标方向
  • 具体使用案例如下:
lua
    local direction = World:CalcDirectionByCoord(10 ,20, 30)

CalcDirectionByAngle

  • 参数及类型:
  • 返回值及类型:
    • ret:table:绝对方向向量{x: number
    • y: number
    • z: number}
  • 该方法的主要作用: 角度坐标方向
  • 具体使用案例如下:
lua
    local direction = World:CalcDirectionByAngle(45, 45)

RandomParticleEffectID

  • 参数及类型: 无
  • 返回值及类型:
  • 该方法的主要作用: 随机特效类型,随机返回一种特效ID
  • 具体使用案例如下:
lua
    local id = World:RandomParticleEffectID()

RandomSoundID

  • 参数及类型: 无
  • 返回值及类型:
  • 该方法的主要作用: 随机音效ID,随机返回一种音效ID
  • 具体使用案例如下:
lua
    local id = World:RandomSoundID()

CalcDistance

  • 参数及类型:
    • posSrc:table:源坐标{x:number
    • y:number
    • z:number}
    • posDst:table:目标坐标{x:number
    • y:number
    • z:number}
  • 返回值及类型:
    • ret:number两点之间的距离
  • 该方法的主要作用: 计算两个三维坐标之间的距离
  • 具体使用案例如下:
lua
    local distance = World:CalcDistance({x = 0, y = 0, z = 0}, {x = 10, y = 0, z = 0})

SetGroupWeather

  • 参数及类型:
  • 返回值及类型:
    • ret:boolean设置成功(true)或失败(false)
  • 该方法的主要作用: 设置天气组的天气状态
  • 具体使用案例如下:
lua
    local result = World:SetGroupWeather(WeatherGroup.Common, GroupWeatherType.Shine)

RandomWeatherID

  • 参数及类型: 无
  • 返回值及类型:
    • ret:number 随机出来的天气ID
  • 该方法的主要作用: 随机天气
  • 具体使用案例如下:
lua
    local id = World:RandomWeatherID()

GetGroupWeather

  • 参数及类型:
    • groupid:number地形组ID(WeatherGroup)
  • 返回值及类型:
  • 该方法的主要作用: 获取天气组天气
  • 具体使用案例如下:
lua
    local weather = World:GetGroupWeather(WeatherGroup.Common)

SetSpawnPoint

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 设置出生点
  • 具体使用案例如下:
lua
    local x, y, z = Actor:GetPosition(Player:GetHostUin())

    local result = World:SetSpawnPoint(x, y, z)

CalcDirectionByPos2Pos

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 位置到位置的单位方向
  • 具体使用案例如下:
lua
local ret = World:CalcDirectionByPos2Pos(pos1, pos2)