MiscService
其他服务
枚举列表
MiscService.EQueryableObjectType
- 描述: 可查询对象类型
| 成员名称 | 成员说明 |
|---|---|
| Character | 角色 |
| Creature | 生物 |
| Element | 元件 |
| LogicElement | 逻辑元件 |
| Player | 玩家 |
| TriggerBox | 触发盒 |
MiscService.EStringConvertibleType
- 描述: 可转义对象类型
| 成员名称 | 成员说明 |
|---|---|
| Boolean | 布尔 |
| Number | 数字 |
| String | 字符串 |
| Vector | 向量 |
| Player | 玩家 |
| Character | 角色 |
| Creature | 生物 |
| Element | 元件 |
| LogicElement | 逻辑元件 |
| SignalBox | 信号盒 |
| Item | 道具 |
| MotionUnit | 运动单元 |
| Effect | 特效 |
| Audio | 音效 |
MiscService.ETimeUnit
- 描述: 时间对象类型
| 成员名称 | 成员说明 |
|---|---|
| Year | 年 |
| Month | 月 |
| Day | 日 |
| Hour | 时 |
| Min | 分 |
| Sec | 秒 |
MiscService.EQuitGameTextType
- 描述: 中途退出弹窗提示文本类型
| 成员名称 | 成员说明 |
|---|---|
| Content | 内容文本 |
| Confirm | 确认键文本 |
| Cancel | 取消键文本 |
MiscService.GRAPHICS_QUALITY
- 描述: 游戏画质
| 成员名称 | 成员说明 |
|---|---|
| Low | 节能,值为:1 |
| Standard | 标准,值为:2 |
| High | 高清,值为:3 |
| Best | 极致,值为:4 |
MiscService.DEVICE_LEVEL
- 描述: 设备等级
| 成员名称 | 成员说明 |
|---|---|
| High | 高端机,值为:0 |
| High_Mid | 中高端机,值为:1 |
| Middle | 中端机,值为:2 |
| Middle_Low | 中低端机,值为:3 |
| Low | 低端机,值为:4 |
MiscService.ELogParamKey
- 描述: 日志参数
| 成员名称 | 成员说明 |
|---|---|
| Param1 | 参数1 |
| Param2 | 参数2 |
| Param3 | 参数3 |
| Param4 | 参数4 |
| Param5 | 参数5 |
| Param6 | 参数6 |
| Param7 | 参数7 |
| Param8 | 参数8 |
| Param9 | 参数9 |
| Param10 | 参数10 |
函数列表
SetMidJoinOpen
-
描述: 是否允许玩家中途加入地图
-
范围: 服务端
-
警告: 需要开启【地图设置】-【玩法设置】-【支持中途加入】
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| IsOpen | boolean | 是否允许中途加入 |
MiscService:SetMidJoinOpen(true)SetPlayerEnterOB
-
描述: 让玩家进入观战模式
-
描述: 仅多人模式生效,游戏人数需大于一人
-
范围: 客户端
MiscService:SetPlayerEnterOB()SetPlayerLeaveOB
-
描述: 让玩家退出观战模式
-
范围: 客户端
MiscService:SetPlayerLeaveOB()TakePhoto
-
描述: 让玩家拍照
-
范围: 客户端
MiscService:TakePhoto()IsObjectExist
-
描述: 判断对象是否存在于游戏内。支持角色|生物|元件|逻辑元件|触发盒
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| ObjType | MiscService.EQueryableObjectType | 对象类型 |
| ObjID | number | 对象ID |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| isExist | boolean | 是否存在 |
local playerId = MiscService:GetHomeOwner()MiscService:IsObjectExist(MiscService.EQueryableObjectType.Player, playerId)IsObjectEqual
-
描述: 判断对象是否相等
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| Object1 | any | 对象1 |
| Object2 | any | 对象2 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| isEqual | boolean | 是否相等 |
local playerId = Character:GetPlayerBySideAndIndex(1, 1)local ownerId = MiscService:GetHomeOwner()MiscService:IsObjectEqual(ownerId, playerId)ObjectToString
-
描述: 对象转字符串
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| ObjType | MiscService.EStringConvertibleType | 对象类型 |
| Obj | any | 即将转换的对象 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| str | string | 对象的可读信息 |
local playerId = MiscService:GetHomeOwner()local position = Character:GetPosition(playerId)MiscService:ObjectToString(MiscService.EStringConvertibleType.Vector, position)RandomColor
-
描述: 获取随机颜色
-
范围: 服务端、客户端
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| color | string | 颜色,十六进制代码:#FFFFFFFF |
MiscService:RandomColor()GetPassedRuntime
-
描述: 获取当前游戏时间
-
范围: 服务端
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| time | number | 游戏启动时间,单位秒 |
MiscService:GetPassedRuntime()DateYMDHMSToTime
-
描述: 时间单位(年-月-日 时:分:秒)转换为时间戳
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| Completetime | string | 包含年月日的完整字符串 |
| Option | MiscService.ETimeUnit | 时间对象类型(可不填) |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| time | number | 时间戳 |
MiscService:DateYMDHMSToTime("2023-12-15 07:00:00", MiscService.ETimeUnit.Year) --2023MiscService:DateYMDHMSToTime("2023-12-15 07:00:00") --1702594800GetServerTimeToTime
-
描述: 获取服务器时间,以格式YYYY-MM-DD HH:MM:SS返回
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| Option | MiscService.ETimeUnit | 时间对象类型(可不填) |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| time | string | 服务器时间 |
--假设当前时间为2023年12月15日早上7点整MiscService:GetServerTimeToTime(MiscService.ETimeUnit.Year) --2023MiscService:GetServerTimeToTime() --2023-12-15 07:00:00TimeStampToTime
-
描述: 将时间戳转为时间单位(年-月-日 时:分:秒)
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| Timestamp | number | 时间戳 |
| Option | MiscService.ETimeUnit | 时间对象类型(可不填) |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| time | string | 返回年月日格式字符串 |
MiscService:TimeStampToTime(1702594800, MiscService.ETimeUnit.Year) --2023MiscService:TimeStampToTime(1702594800) --1702594800TimeStampToDateYMDHMS
-
描述: 将时间戳转为完整时间单位(年-月-日 时:分:秒)
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| Timestamp | number | 时间戳 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| time | string | 返回完整的年月日格式字符串 |
MiscService:TimeStampToDateYMDHMS(1702594800) --2023-12-15 07:00:00GetLocalScreenSize
-
描述: 获取屏幕分辨率
-
范围: 客户端
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| size | {X:number,Y:number} | 包含宽度(X),高度(Y)的表 |
MiscService:GetLocalScreenSize() --{X=1920, Y=1080}NormalizeLocalScreenPos
-
描述: 屏幕坐标归一化
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| ScreenX | number | 屏幕上X坐标 |
| ScreenY | number | 屏幕上Y坐标 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| pos | {X:number,Y:number} | 归一化的屏幕坐标 |
MiscService:GetLocalScreenSize() --{X=1920, Y=1080}MiscService:NormalizeLocalScreenPos(192,216) --{X=0.1, Y=0.2}ScreenToWorld
-
描述: 屏幕坐标转世界坐标
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| ScreenX | number | 屏幕上X坐标 |
| ScreenY | number | 屏幕上Y坐标 |
| PlaneZ | number | 在摄像机空间的深度 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| worldPos | {X:number,Y:number,Z:number} | 世界坐标 |
| worldDir | {X:number,Y:number,Z:number} | 摄像机方向向量 |
local position = MiscService:ScreenToWorld(100, 200, 100) --将屏幕坐标{X=100, Y=200}转换为世界坐标Particle:PlayAtPosition(75, position, 1, true, 100) --在转换的世界坐标上创建一个特效WorldToScreenPoint
-
描述: 世界坐标转屏幕坐标
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| Position | Engine.Vector | 世界坐标 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| screenPos | {X:number,Y:number} | 屏幕坐标 |
local worldPosition = Element:GetPosition(343) --获取某个元件的世界坐标local screenPosition = MiscService:WorldToScreenPoint(worldPosition) --获取到对应的屏幕坐标GetHomeOwner
-
描述: 获取房主玩家的ID
-
范围: 服务端
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| ownerID | number | 房主ID |
MiscService:GetHomeOwner()SetQuitGameResult
-
描述: 设置玩家中途退出结算结果
-
范围: 服务端
-
警告: 仅积分赛生效
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| Players | number[] | 玩家id数组 |
| IsVictory | boolean | 胜利:true 失败:false |
local players = {Character:GetPlayerBySideAndIndex(0,1)}MiscService:SetQuitGameResult(players,false)SetQuitGameText
-
描述: 设置玩家中途退出弹窗提示
-
范围: 服务端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| Players | number[] | 玩家id数组 |
| TextType | MiscService.EQuitGameTextType | 文本类型 |
| Text | string | 文本 |
local players = {Character:GetPlayerBySideAndIndex(0,1)}MiscService:SetQuitGameText(players,MiscService.EQuitGameTextType.Content,"text")SetGraphicsQuality
-
描述: 设置游戏画质
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| GraphicsQuality | MiscService.GRAPHICS_QUALITY | 画质等级 |
MiscService:SetGraphicsQuality(MiscService.GRAPHICS_QUALITY.Low)GetGraphicsQuality
-
描述: 获取当前游戏画质
-
范围: 客户端
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| graphicsQuality | MiscService.GRAPHICS_QUALITY | 当前游戏画质 |
Log:PrintLog("Graphics Quality:", MiscService:GetGraphicsQuality())GetDeviceLevel
-
描述: 获取当前设备等级
-
范围: 客户端
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| DeviceLevel | MiscService.DEVICE_LEVEL | 当前设备等级 |
Log:PrintLog("Device Level:", MiscService:GetDeviceLevel())Log
-
描述: 设置日志
-
范围: 服务端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| key | MiscService.ELogParamKey | 日志参数 |
| value | number | 参数值 |
MiscService:Log(MiscService.ELogParamKey.Param1,222)PushLog
-
描述: 推送日志
-
范围: 服务端
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| res | boolean | 是否推送成功 |
MiscService:Log(MiscService.ELogParamKey.Param1,222)MiscService:PushLog()Table2JsonStr
-
描述: 将table解析成json格式的字符串
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| Table | table | 需要解析成json格式字符串的表 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| jsonStr | string | 解析成json格式的字符串 |
local _t = {key1 = 1, key2 = "string1", key3 = true, key4 = {key = 1}}local jsonStr = MiscService:Table2JsonStr(_t)Log:PrintLog(jsonStr)JsonStr2Table
-
描述: 将json格式的字符串还原成table
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| JsonStr | string | json格式的字符串 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| jsonTable | table | json格式的字符串还原出来的表 |
local _s = '{"key2":"string1","key4":{"key":1},"key1":1,"key3":true}'local jsonTable = MiscService:JsonStr2Table(_s)Log:PrintTable(jsonTable)RandomPositionWithCapsule
-
描述: 获取胶囊体内随机点
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CenterPos | {X:number,Y:number,Z:number} | 胶囊体中心坐标 |
| CapsuleRadius | number | 胶囊体的半径 |
| CapsuleHalfHeight | number | 胶囊体的半高 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| randomPosition | {X:number,Y:number,Z:number} | 随机点坐标 |
local pos = MiscService:RandomPositionWithCapsule({X=500,Y=100,Z=500}, 2, 3)RandomPositionWithSphere
-
描述: 获取球体内随机点
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CenterPos | {X:number,Y:number,Z:number} | 球体中心坐标 |
| SphereRadius | number | 球体的半径 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| randomPosition | {X:number,Y:number,Z:number} | 随机点坐标 |
local pos = MiscService:RandomPositionWithSphere({X=500,Y=100,Z=500}, 5)RandomPositionWithCube
-
描述: 获取立方体内随机点
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CenterPos | {X:number,Y:number,Z:number} | 立方体中心坐标 |
| Length | number | 立方体的长 |
| Width | number | 立方体的宽 |
| Height | number | 立方体的高 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| randomPosition | {X:number,Y:number,Z:number} | 随机点坐标 |
local pos = MiscService:RandomPositionWithCube({X=500,Y=100,Z=500}, 3, 4, 5)