Skip to content
RoomService

服务 / RoomService

RoomService Class

MGS以及玩家信息、数据、头像等相关API。 MGS = Meta Game Service, 是编辑器提供给开发者的一些原生服务,如发布游戏后的左上角聊天、好友相关信息服务。

Table of contents

Methods

getCurrentEnvironment(resp: MGSResponse): void
获取当前的环境
getMGSRoomId(): string
获取 MGS 平台的 RoomId
getRoomId(): string
获取游戏的RoomMgr分配的RoomId
isSupported(): boolean
获取当前环境是否支持MGS功能
joinAudio(resp: MGSResponse): void
游戏方可调用 joinAudio 加入语音频道,游戏用户可使用语音服务(可说话、可听到其他游戏用户声音)
kick(player: number Player, message?: string): void server
将某一玩家踢下线
registerMGSChatMessageEvent(callback: MGSEvent): void
注册聊天回调
reportLogInfo(eventName: string, eventDesc: string, jsonData: string): void
游戏方调用 reportLogInfo 接口上报运营所需的埋点数据
requestSaveImage(resp: MGSResponse, mgsData: string): void
向233发起imageModify并获得回调
requestSavePortrait(resp: MGSResponse, mgsData: string): void
向233发起editProfile并获得回调
requestShareScreenShot(resp: MGSResponse, mgsData: string): void
向 233 发起 shareScreenshot 并获得回调
showExitGameDialog(resp: MGSResponse): void
游戏方可调用 showExitGameDialog 来显示退出游戏确认框
showFloatingLayer(resp: MGSResponse, tab: number): void
向 233 发起 showFloatingLayer 来展开悬浮层的内容,可展开聊天/好友功能
showUserProfile(resp: MGSResponse, userId: string): void
若需要查看 233 玩家的资料信息,可通过调用 showUserProfile 进行查看, SDK 会弹出资料卡片弹窗

Methods

getCurrentEnvironment

Static getCurrentEnvironment(resp): void

获取当前的环境

Parameters

resp MGSResponse获取到的当前的环境

Precautions

只在移动端由233拉起生效


getMGSRoomId

Static getMGSRoomId(): string

获取 MGS 平台的 RoomId

Returns

stringMGS 平台的 RoomId

Precautions

只在由 233 拉起生效

使用示例:创建一个名为RoomExample的脚本,放置在对象栏中,打开脚本,将原本内容修改为如下内容,保存并运行游戏,输出MGS平台的RoomId,PC环境下输出undefined
ts
@Component
export default class RoomExample extends mw.Script {

    protected onStart(): void {
        console.log("获取MGS平台的RoomId", RoomService.getMGSRoomId());
    }

}
@Component
export default class RoomExample extends mw.Script {

    protected onStart(): void {
        console.log("获取MGS平台的RoomId", RoomService.getMGSRoomId());
    }

}

getRoomId

Static getRoomId(): string

获取游戏的RoomMgr分配的RoomId

Returns

string游戏的RoomMgr分配的RoomId

Precautions

只在由233拉起生效

使用示例:创建一个名为 RoomExample 的脚本,放置在对象栏中,打开脚本,将原本内容修改为如下内容,保存并运行游戏,输出游戏的RoomMgr分配的RoomId,PC环境下输出undefined
ts
@Component
export default class RoomExample extends mw.Script {

    protected onStart(): void {
        console.log("获取当前游戏的RoomMgr分配的RoomId", RoomService.getRoomId());
    }

}
@Component
export default class RoomExample extends mw.Script {

    protected onStart(): void {
        console.log("获取当前游戏的RoomMgr分配的RoomId", RoomService.getRoomId());
    }

}

isSupported

Static isSupported(): boolean

获取当前环境是否支持MGS功能

Returns

boolean当前环境是否支持MGS功能
使用示例:创建一个名为RoomExample的脚本,放置在对象栏中,打开脚本,将原本内容修改为如下内容,保存并运行游戏,输出当前环境是否支持MGS功能
ts
@Component
export default class RoomExample extends mw.Script {

    protected onStart(): void {
        console.log("当前环境是否支持MGS功能:", RoomService.isSupported());
    }

}
@Component
export default class RoomExample extends mw.Script {

    protected onStart(): void {
        console.log("当前环境是否支持MGS功能:", RoomService.isSupported());
    }

}

joinAudio

Static joinAudio(resp): void

游戏方可调用 joinAudio 加入语音频道,游戏用户可使用语音服务(可说话、可听到其他游戏用户声音)

Parameters

resp MGSResponse233的回调

Precautions

只在移动端由233拉起生效


kick

Static kick(player, message?): void server

将某一玩家踢下线

Parameters

player number Player踢下线的 Player
message? string踢出玩家时触发退出 UI 弹出的信息 default:null range: 提示适合长度的信息即可
使用示例: 创建一个名为 NewScript 的脚本,放置在对象栏中,打开脚本,将原本内容修改为如下内容,保存并运行游戏,按下 G 键,踢出角色。
ts
@Component
export default class NewScript extends Script {

    protected onStart(): void {
        if(SystemUtil.isServer()) {
            Player.spawnDefaultCharacter();
        }

       let player = await mw.Player.asyncGetLocalPlayer();

        if(SystemUtil.isClient()) {
           mw.InputUtil.onKeyDown(Keys.G,()=>{
             mw.Event.dispatchToServer(`AddPlayerPassable`,player);
           })
        }
       if(SystemUtil.isServer()) {
           mw.Event.addClientListener(`AddPlayerPassable`,(player : Player)=>{
              RoomService.kick(player);
           })
        }
   }
}
@Component
export default class NewScript extends Script {

    protected onStart(): void {
        if(SystemUtil.isServer()) {
            Player.spawnDefaultCharacter();
        }

       let player = await mw.Player.asyncGetLocalPlayer();

        if(SystemUtil.isClient()) {
           mw.InputUtil.onKeyDown(Keys.G,()=>{
             mw.Event.dispatchToServer(`AddPlayerPassable`,player);
           })
        }
       if(SystemUtil.isServer()) {
           mw.Event.addClientListener(`AddPlayerPassable`,(player : Player)=>{
              RoomService.kick(player);
           })
        }
   }
}

registerMGSChatMessageEvent

Static registerMGSChatMessageEvent(callback): void

注册聊天回调

Parameters

callback MGSEvent有消息时的触发函数

Precautions

只在移动端由233拉起生效

使用示例: 创建一个名为 NewScript 的脚本,放置在对象栏中,打开脚本,将原本内容修改为如下内容,保存并运行游戏,按下 G 键,踢出角色。
ts
@Component
export default class NewScript extends Script {

    protected onStart(): void {
        if(SystemUtil.isClient()){
         const callback = (receivedMsg: string) =>{
             console.log("we received Chat message"+ receivedMsg +"from MGS");
         };
         RoomService.registerMGSChatMessageEvent(callback);
       }
   }
}
@Component
export default class NewScript extends Script {

    protected onStart(): void {
        if(SystemUtil.isClient()){
         const callback = (receivedMsg: string) =>{
             console.log("we received Chat message"+ receivedMsg +"from MGS");
         };
         RoomService.registerMGSChatMessageEvent(callback);
       }
   }
}

reportLogInfo

Static reportLogInfo(eventName, eventDesc, jsonData): void

游戏方调用 reportLogInfo 接口上报运营所需的埋点数据

Parameters

eventName string事件名称 range:字符串长度不做限制,制定适合长度的字符串即可
eventDesc string事件描述 range:字符串长度不做限制,制定适合长度的字符串即可
jsonData string发送的 json 数据 range:字符串长度不做限制,制定适合长度的字符串即可

Precautions

只在移动端由233拉起生效,数据需要时json格式


requestSaveImage

Static requestSaveImage(resp, mgsData): void

向233发起imageModify并获得回调

Parameters

resp MGSResponse233的回调
mgsData string要保存的图片 Url 地址 range:地址

Precautions

只在移动端由233拉起生效


requestSavePortrait

Static requestSavePortrait(resp, mgsData): void

向233发起editProfile并获得回调

Parameters

resp MGSResponse233的回调
mgsData string要保存的 mgs 数据 range:制定适合长度的字符串数据即可

Precautions

只在移动端由233拉起生效


requestShareScreenShot

Static requestShareScreenShot(resp, mgsData): void

向 233 发起 shareScreenshot 并获得回调

Parameters

resp MGSResponse233的回调
mgsData string要保存的图片 Url 地址 range:地址

Precautions

只在移动端由233拉起生效


showExitGameDialog

Static showExitGameDialog(resp): void

游戏方可调用 showExitGameDialog 来显示退出游戏确认框

Parameters

resp MGSResponse233的回调

Precautions

只在移动端由233拉起生效


showFloatingLayer

Static showFloatingLayer(resp, tab): void

向 233 发起 showFloatingLayer 来展开悬浮层的内容,可展开聊天/好友功能

Parameters

resp MGSResponse233的回调
tab number悬浮层功能位置 range:取值(0: 聊天 1: 好友) type:整数

Precautions

只在移动端由 233 拉起生效


showUserProfile

Static showUserProfile(resp, userId): void

若需要查看 233 玩家的资料信息,可通过调用 showUserProfile 进行查看, SDK 会弹出资料卡片弹窗

Parameters

resp MGSResponse233的回调
userId string要显示的用户的 userId range: 依据 userid 长度而定

Precautions

只在移动端由233拉起生效