Appearance
世界模块管理接口 World
具体函数名及描述如下:
StopParticleOnPos
lua
local x, y, z = Actor:GetPosition(Player:GetHostUin())
local result = World:StopParticleOnPos(x, y, z, 1001)SetParticleTransform
- 参数及类型:
- 返回值及类型:
- code:
bool成功(true)
- code:
- 该方法的主要作用: 设置指定位置的特效偏移 旋转 缩放
- 具体使用案例如下:
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
- 参数及类型:
- 返回值及类型:
- code:
bool成功(true)
- code:
- 该方法的主要作用: 在指定位置播放特效
- 具体使用案例如下:
lua
local x, y, z = Actor:GetPosition(Player:GetHostUin())
local result = World:PlayParticle({x = x, y = y, z = z}, 1001, 2)GetLightByPos
lua
local light = World:GetLightByPos(x, y, z)
print("获取光照强度 ", light)SpawnCreature
- 参数及类型:
- 返回值及类型:
- objs:
table生物ID组
- objs:
- 该方法的主要作用: 生成生物(包括怪物、NPC、动物等)
- 具体使用案例如下:
lua
local x1, y1, z1 = Actor:GetPosition(Player:GetHostUin())
local creatures = World:SpawnCreature(x1 + 5, y1 + 1, z1, 3400)DespawnActor
lua
local result = World:DespawnActor(creatureId)GetPlayerTotal
lua
local total = World:GetPlayerTotal()GetAllPlayers
lua
local players = World:GetAllPlayers()GetSpawnPoint
- 参数及类型: 无
- 返回值及类型:
- x,y,z:
number方块坐标
- x,y,z:
- 该方法的主要作用: 获取默认出生点
- 具体使用案例如下:
lua
local x, y, z = World:GetSpawnPoint()FindCanSpawnMobPosList
- 参数及类型:
- 返回值及类型:
- posList:
table位置列表
- posList:
- 该方法的主要作用: 获取附近合适的生物出生点位置(方块坐标单位)
- 具体使用案例如下:
lua
local x, y, z = Actor:GetPosition(Player:GetHostUin())
local posList = World:FindCanSpawnMobPosList(x, y, z, 10)
if posList then
for i, v in ipairs(posList) do
print("可以创建生物位置", v.x, v.y, v.z)
end
endFindNearestPlayerByPos
- 参数及类型:
- 返回值及类型:
- objid:
number玩家uin
- objid:
- 该方法的主要作用: 获取距离某点最近的玩家(方块坐标单位)
- 具体使用案例如下:
lua
local playerId = World:FindNearestPlayerByPos(x, y, z)PlaySoundEffectOnPos
- 参数及类型:
- 返回值及类型:
- ret:
bool成功(true)
- ret:
- 该方法的主要作用: 在指定位置上播放指定音效
- 具体使用案例如下:
lua
local x, y, z = Actor:GetPosition(Player:GetHostUin())
local result = World:PlaySoundEffectOnPos({x = x, y = y, z = z}, 10946, 100, 1, false)StopSoundEffectOnPos
lua
local x, y, z = Actor:GetPosition(Player:GetHostUin())
local result = World:StopSoundEffectOnPos({x = x, y = y, z = z}, 10946)PauseSoundEffectOnPos
- 参数及类型:
- 返回值及类型:
- code:
bool成功(true)
- code:
- 该方法的主要作用: 暂停/恢复指定位置上的指定音效
- 具体使用案例如下:
lua
local x, y, z = Actor:GetPosition(Player:GetHostUin())
local result = World:PauseSoundEffectOnPos({x = x, y = y, z = z}, 10946, true)IsDaytime
- 参数及类型: 无
- 返回值及类型:
- isDaytime:
bool是否白天
- isDaytime:
- 该方法的主要作用: 是否是白天
- 具体使用案例如下:
lua
local isDaytime = World:IsDaytime()SetHours
lua
local result = World:SetHours(2)GetHours
- 参数及类型: 无
- 返回值及类型:
- curHour:
number时间(小时)
- curHour:
- 该方法的主要作用: 获取游戏当前时间(小时)
- 具体使用案例如下:
lua
local hours = World:GetHours()GetDay
- 参数及类型: 无
- 返回值及类型:
- code:
number天数
- code:
- 该方法的主要作用: 获取游戏当前天数
- 具体使用案例如下:
lua
local day = World:GetDay()SetGravity
lua
local result = World:SetGravity(12)AddGravity
lua
local code = World:AddGravity(value)GetGravity
- 参数及类型: 无
- 返回值及类型:
- value:
number重力值
- value:
- 该方法的主要作用: 获取重力
- 具体使用案例如下:
lua
local gravity = World:GetGravity()CanMobSpawnOnPosXZ
- 参数及类型:
- x,y,z:
number位置坐标
- x,y,z:
- 返回值及类型:
- posy:
numberY轴坐标(-1表示不可创建生物)
- posy:
- 该方法的主要作用: 获取XZ位置上是否可创建生物 并返回对应的Y轴位置
- 具体使用案例如下:
lua
local canSpawnY = World:CanMobSpawnOnPosXZ(x,y, z)
if canSpawnY and canSpawnY > 0 then
print("可以创建生物位置", x, canSpawnY, z)
endGetCurMapId
- 参数及类型: 无
- 返回值及类型:
- mapid:
number地图ID
- mapid:
- 该方法的主要作用: 获取当前地图的mapid
- 具体使用案例如下:
lua
local mapId = World:GetCurMapId()SpawnProjectile
- 参数及类型:
- 返回值及类型:
- objid:
number投掷物objid
- objid:
- 该方法的主要作用: 生成投掷物
- 具体使用案例如下:
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
- 参数及类型:
- 返回值及类型:
- objid:
number投掷物objid
- objid:
- 该方法的主要作用: 生成投掷物
- 具体使用案例如下:
lua
local x, y, z = Actor:GetPosition(Player:GetHostUin())
local projectile = World:SpawnProjectileByDir(Player:GetHostUin(), 12051, x, y, z, 20, 5, 20, 10)GetBiomeType
lua
local biomeType = World:GetBiomeType(x, y)
if biomeType == BiomeType.GrassLand then
print("草原")
elseif biomeType == BiomeType.Forest then
print("森林")
endGetBiomeGroup
- 参数及类型:
- posX,posZ:
number位置坐标
- posX,posZ:
- 返回值及类型:
- biometype:
number地形组类型(WeatherGroup)
- biometype:
- 该方法的主要作用: 获取地形类型所属的地形组类型
- 具体使用案例如下:
lua
local group = World:GetBiomeGroup(x, z)FindEcosystem
- 参数及类型:
- 返回值及类型:
- x,y,z:
number找到的地形位置坐标
- x,y,z:
- 该方法的主要作用: 查找地形位置
- 具体使用案例如下:
lua
local x,y,z = World:FindEcosystem(centerX, centerY, centerZ, BiomeType.GrassLand, 50)
if x and y and z then
print("找到草原", x, y, z)
endPixelMapAddMarker
- 参数及类型:
- uin:玩家ID
- id:标记id
- params:标记的超参数
- 返回值及类型:
- ret:
boolean添加成功(true)
- ret:
- 该方法的主要作用: 地图增加标记
- 具体使用案例如下:
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
- 参数及类型:
- uin:玩家ID
- id:标记id
- params:标记的超参数(提供改变的参数即可)
- 返回值及类型:
- ret:
boolean刷新成功(true)
- ret:
- 该方法的主要作用: 地图刷新标记
- 具体使用案例如下:
lua
local x, y, z = Actor:GetPosition(Player:GetHostUin())
local params = {
posX = x,
posZ = z,
-- name = defaultCustomMarkerConfig[1].name, 名字
iconName = "0_10103", --图片ID
-- zoomMin = 0, 最小scale倍率
-- zoomMax = 100, 最大scale倍率
-- isTrace = false, 是否追踪
-- isRadarTrace = false, 雷达上是否追踪
-- appearInBlockFog = true,
-- isCanUI = false, 是否能点击
-- desc = "", 描述
-- level = 4, UI层级
}
local result = World:PixelMapRefreshMarker(Player:GetHostUin(), "markId_123", params)PixelMapDelMarker
- 参数及类型:
- uin:玩家ID
- id:标记id
- 返回值及类型:
- ret:
boolean删除成功(true)
- ret:
- 该方法的主要作用: 地图删除标记
- 具体使用案例如下:
lua
local result = World:PixelMapDelMarker(Player:GetHostUin(), "markId_123")PixelMapAddTexture
- 参数及类型:
- uin:玩家ID
- id:纹理id
- params:纹理的超参数
- 返回值及类型:
- ret:
boolean添加成功(true)
- ret:
- 该方法的主要作用: 地图增加纹理标签
- 具体使用案例如下:
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
- 参数及类型:
- uin:玩家ID
- id:纹理id
- params:纹理的超参数(提供改变的参数即可)
- 返回值及类型:
- ret:
boolean刷新成功(true)
- ret:
- 该方法的主要作用: 地图刷新纹理标签
- 具体使用案例如下:
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)
- code:
- 该方法的主要作用: 设置某玩家天空盒全部时间点的颜色参数(带动效)
- 具体使用案例如下:
lua
local result = World:SetSkyBoxColorAnim(Player:GetHostUin(), SkyboxColor.Moon, [=[0xffe082]=], Easing.Linear, 1)SetTimeVanishingSpeed
lua
local result = World:SetTimeVanishingSpeed(20)SetSkyBoxTemplate
- 参数及类型:
- value:number,string模板值(官方模板填数值,自定义模板填ID)
- 返回值及类型:
- code:
bool成功(true)
- code:
- 该方法的主要作用: 设置天空盒模板
- 具体使用案例如下:
lua
local result = World:SetSkyBoxTemplate(7)SetSkyBoxMaps
- 参数及类型:
- 返回值及类型:
- code:
bool成功(true)
- code:
- 该方法的主要作用: 设置天空盒贴图
- 具体使用案例如下:
lua
local result = World:SetSkyBoxMaps(SkyboxMap.Sky, [=[0_30011]=])SetSkyBoxColor
- 参数及类型:
- time:
number游戏时间 - itype:
number颜色属性枚举(SkyboxColor)SkyboxColor - color:
string16进制颜色值(0xffffff)
- time:
- 返回值及类型:
- code:
bool成功(true)
- code:
- 该方法的主要作用: 设置天空盒颜色参数
- 具体使用案例如下:
lua
local result = World:SetSkyBoxColor(SkyboxTime.Current, SkyboxColor.Top, [=[0x1e88e5]=])SetSkyBoxAttr
- 参数及类型:
- time:
number游戏时间 - itype:
number参数类型(SkyboxAttr)SkyboxAttr - value:
number参数值(0~100)
- time:
- 返回值及类型:
- code:
bool成功(true)
- code:
- 该方法的主要作用: 设置天空盒属性参数
- 具体使用案例如下:
lua
local result = World:SetSkyBoxAttr(SkyboxTime.Current, SkyboxAttr.SunScale, 20)SetSkyBoxFilter
- 参数及类型:
- itype:
number参数类型(SkyboxFilter)SkyboxFilter - value:number:参数值(0~100) 或者 string:16进制颜色值(0xffffff)
- itype:
- 返回值及类型:
- code:
bool成功(true)
- code:
- 该方法的主要作用: 设置天空盒滤镜参数
- 具体使用案例如下:
lua
local result = World:SetSkyBoxFilter(Player:GetHostUin(), SkyboxFilter.Contrast, 50)SetSkyBoxSwitch
- 参数及类型:
- time:
number游戏时间 - itype:
number参数类型(SkyboxSwitch)SkyboxSwitch - value:
number参数值(0~1)
- time:
- 返回值及类型:
- code:
bool成功(true)
- code:
- 该方法的主要作用: 天空盒属性开关
- 具体使用案例如下:
lua
local result = World:SetSkyBoxSwitch(SkyboxTime.Current, SkyboxSwitch.Fogenable, true)SetSkyBoxMapsAnim
- 参数及类型:
- 返回值及类型:
- code:
bool成功(true)
- code:
- 该方法的主要作用: 设置天空盒贴图(带动效)
- 具体使用案例如下:
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动画时间
- itype:
- 返回值及类型:
- code:
bool成功(true)
- code:
- 该方法的主要作用: 设置天空盒滤镜参数(带动效)
- 具体使用案例如下:
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最大检测方块距离 - picktype:
number检测类型 RayDetectTypeRayDetectType
- posbegin:
- 返回值及类型:
- 该方法的主要作用: 获取对象到某个方向上的射线检测目标
- 具体使用案例如下:
lua
local ray = Player:GetAimDir(uin)
local x,y,z = Player:GetRayOriginPos(uin)
local id = World:GetDirRayDetection({x=x, y=y, z=z}, {x= ray.x, y= ray.y, z= ray.z}, 10, RayDetectType.Block)GetRayLength
- 参数及类型:
- 返回值及类型:
- ret:
number距离
- ret:
- 该方法的主要作用: 计算指定方向射线长度(遇到方块结束)
- 具体使用案例如下:
lua
local x, y, z = Actor:GetPosition(Player:GetHostUin())
local length = World:GetRayLength(x, y, z, x, y + 20, z, 100)GetRayBlock
- 参数及类型:
- 返回值及类型:
- ret:
number方块ID
- ret:
- 该方法的主要作用: 射线打到的方块类型(遇到方块结束)
- 具体使用案例如下:
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
- 参数及类型: 无
- 返回值及类型:
- ret:
number特效ID
- ret:
- 该方法的主要作用: 随机特效类型,随机返回一种特效ID
- 具体使用案例如下:
lua
local id = World:RandomParticleEffectID()RandomSoundID
- 参数及类型: 无
- 返回值及类型:
- ret:
number音效ID
- ret:
- 该方法的主要作用: 随机音效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两点之间的距离
- ret:
- 该方法的主要作用: 计算两个三维坐标之间的距离
- 具体使用案例如下:
lua
local distance = World:CalcDistance({x = 0, y = 0, z = 0}, {x = 10, y = 0, z = 0})SetGroupWeather
- 参数及类型:
- groupid:
number天气组ID(WeatherGroup)WeatherGroup - weatherid:
number天气ID(GroupWeatherType)GroupWeatherType
- groupid:
- 返回值及类型:
- ret:
boolean设置成功(true)或失败(false)
- ret:
- 该方法的主要作用: 设置天气组的天气状态
- 具体使用案例如下:
lua
local result = World:SetGroupWeather(WeatherGroup.Common, GroupWeatherType.Shine)RandomWeatherID
- 参数及类型: 无
- 返回值及类型:
- ret:
number随机出来的天气ID
- ret:
- 该方法的主要作用: 随机天气
- 具体使用案例如下:
lua
local id = World:RandomWeatherID()GetGroupWeather
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)SetWorldCreateMobRule
- 参数及类型:
- cfgs:
table生物规则配置
- cfgs:
- 返回值及类型:
- ret:
boolean成功true
- ret:
- 该方法的主要作用: 设置世界创建生物规则(设置不保存,退出游戏后失效, 只适用迷拉星)
- 具体使用案例如下:
lua
local cfgs = {
-- 草原
[BiomeType.GrassLand] = {
{
id = 3400, -- 生物id,嘟嘟鸟
weight = 100 -- 权重
},
{
id = 3401, -- 生物id
weight = 100 -- 权重
},
},
[BiomeType.Forest] = {--迷拉星森林
{
id = 3400,
weight = 50
}
}
}
local result = World:SetWorldCreateMobRule(cfgs)SetMobSpawnDensity
- 参数及类型:
- 返回值及类型:
- ret:
boolean成功true
- ret:
- 该方法的主要作用: 设置生物生成密度(设置不保存,退出游戏后失效, 只适用迷拉星)
- 具体使用案例如下:
lua
local result = World:SetMobSpawnDensity(MobType.Passive, 100) -- 设置动物密度SetPlantGrowRate
- 参数及类型:
- rate:
number时间修正(大于0)
- rate:
- 返回值及类型:
- ret:
boolean成功true
- ret:
- 该方法的主要作用: 设置农作物生长时间要求修正,在原来的时间上乘以系数设置不保存,退出游戏后失效, 只适用迷拉星)
- 具体使用案例如下:
lua
local result = World:SetPlantGrowRate(0.5) -- 设置生长速度为原来的0.5倍SetInnerViewEnable
- 参数及类型:
- iview:
number弹窗类型枚举(InnerPopUpview)InnerPopUpview - bopen:
bool启用或者禁用
- iview:
- 返回值及类型:
- ret:
bool是否成功
- ret:
- 该方法的主要作用: 设置游戏内的界面是否禁用
- 具体使用案例如下:
lua
-- 一般和Player:OpenInnerView 接口配合使用
local ret = World:SetInnerViewEnable(InnerPopUpview.CollectMaps,false)
if ret then
print("设置成功")
endSetMidJoin
lua
local ret = World:SetMidJoin(true)
if ret then
print("设置成功")
endGetGameMode
- 参数及类型: 无
- 返回值及类型:
- mode:
number游戏模式 WorldType
- mode:
- 该方法的主要作用: 获取游戏模式
- 具体使用案例如下:
lua
local curmode = World:GetGameMode()
if curmode and curmode == WorldType.GamemakerRun then
print("当前地图是玩法模式")
elseif curmode and curmode == WorldType.Single then
print("当前地图是冒险模式")
endSetLightByPos
lua
local result = World:SetLightByPos(x, y, z, 10)
print("设置光照强度 10 ", result)