匹配相关接口

最近更新时间:2020-07-03 11:10:48

matchPlayers

接口描述

玩家在线匹配。

参数描述

参数名 类型/值 描述
matchPlayersPara MGOBE.types.MatchPlayersPara 玩家匹配参数
callback MGOBE.types.ReqCallback<MGOBE.types.MatchPlayersRsp> 响应回调函数
说明:

  • 调用该接口后,将发起玩家在线匹配,callback 将异步返回调用结果。返回码为0表示调用成功。
  • 调用成功后,Room.onMatch、Room.onCancelMatch 将回调匹配结果。
  • 该接口需要与匹配规则配合使用,因此,匹配超时时间由开发者在匹配规则中定义。开发者需要在控制台上创建匹配,得到匹配 Code 作为该方法的参数 matchCode。
  • matchPlayersPara.playerInfo 中的 matchAttributes 数组对应匹配规则中定义的 playerAttributes,playerAttributes 的每一种属性都要填入 matchAttributes 中,name 表示属性名,value 表示玩家该属性的值。

返回值说明

使用示例

    const playerInfo = {
        name: "Tom",
        customPlayerStatus: 1,
        customProfile: "https://xxx.com/icon.png",
        matchAttributes: [{
            name: "skill1",
            value: 99,
        }]
    };

    const matchPlayersPara = {
        playerInfo,
        matchCode: "play-xxx",
    };

    // 发起匹配
    room.matchPlayers(matchPlayersPara, event => {
        if (event.code === 0) {
            console.log("请求成功");
        } else {
            console.log("请求失败", event.code);
        }
    });

    // 监听匹配结果
    Room.onMatch = (event) => {

        if (event.data.errCode === MGOBE.ErrCode.EC_OK) {
            console.log("组队匹配成功");
            room.initRoom(event.data.roomInfo);
            return;
        }

        // 匹配失败
        // ...
    };

matchGroup

接口描述

组队匹配。

参数描述

参数名 类型/值 描述
matchGroupPara MGOBE.types.MatchGroupPara 玩家匹配参数
callback MGOBE.types.ReqCallback<MGOBE.types.MatchGroupRsp> 响应回调函数
说明:

  • 调用该接口后,将以 playerInfoList 为小组一起进行匹配,callback 将异步返回调用结果。
  • 调用成功后,Room.onMatch、Room.onCancelMatch 将回调匹配结果。小组成员都可以通过 cancelPlayerMatch 取消匹配。
  • 匹配成功后,小组成员都会进入同一个房间,同一个队伍。
  • 该接口需要与匹配规则配合使用,匹配超时时间由开发者在匹配规则中定义。开发者需要在控制台上创建匹配,得到匹配 Code 作为该方法的参数 matchCode。
  • 根据匹配规则的不同,房间内的队伍可能包含多个小组。例如4V4的匹配(两个队伍),如果小组成员数为2,那么同一个队伍将由两个小组组成。

返回值说明

使用示例

    const playerInfo1 = {
        id: "playerId1",
        name: "Tom",
        customPlayerStatus: 1,
        customProfile: "https://xxx.com/icon.png",
        matchAttributes: [{
            name: "skill1",
            value: 99,
        }]
    };

    const playerInfo2 = {
        id: "playerId2",
        name: "Jack",
        customPlayerStatus: 1,
        customProfile: "https://xxx.com/icon.png",
        matchAttributes: [{
            name: "skill1",
            value: 99,
        }]
    };

    const matchGroupPara = {
        playerInfoList: [playerInfo1, playerInfo2],
        matchCode: "match-xxx",
    };

    // 发起匹配
    room.matchGroup(matchGroupPara, event => {
        if (event.code === 0) {
            console.log("发起匹配成功");
        } else {
            console.log("发起匹配失败");
        }
    });

    // 监听匹配结果
    Room.onMatch = (event) => {

        if (event.data.errCode === MGOBE.ErrCode.EC_OK) {
            console.log("组队匹配成功");
            room.initRoom(event.data.roomInfo);
            return;
        }

        // 匹配失败
        // ...
    };

matchRoom

接口描述

房间匹配。

参数描述

参数名 类型/值 描述
matchRoomPara MGOBE.types.MatchRoomPara 房间匹配参数
callback MGOBE.types.ReqCallback<MGOBE.types.MatchRoomSimpleRsp> 响应回调函数
说明:

  • 调用该接口后将发起房间匹配,匹配结果将在 callback 中异步返回。操作成功后,Room 对象内部 roomInfo 属性将更新。
  • 房间匹配指按照传入的参数(maxPlayers、roomType)搜索现存的房间,如果已经存在房间属性 maxPlayers、roomType 对应相同的房间,同时满足房间允许加入(isForbidJoin 为 false)、房间为非私有(isPrivate 为 false)、房间人数未满,则将调用者加入到该房间,并且房间内成员(不含调用者)会收到 onJoinRoom 广播。如果不存在这样的房间,会直接使用 maxPlayers、roomType 这两个参数作为房间属性为调用者创建一个新房间。

返回值说明

使用示例

    const playerInfo = {
        name: "Tom",
        customPlayerStatus: 1,
        customProfile: "https://xxx.com/icon.png",
    };

    const matchRoomPara = {
        playerInfo,
        maxPlayers: 5,
        roomType: "1",
    };

    room.matchRoom(matchRoomPara, event => {
        if (event.code !== 0) {
            console.log("匹配失败", event.code);
        }
    });

cancelPlayerMatch

接口描述

取消玩家匹配。

参数描述

参数名 类型/值 描述
cancelMatchPara MGOBE.types.CancelPlayerMatchPara 取消匹配参数
callback MGOBE.types.ReqCallback<MGOBE.types.CancelPlayerMatchRsp> 响应回调函数
说明:

  • 该接口作用是取消匹配请求,即 matchPlayers、matchGroup 请求。调用结果将在 callback 中异步返回。如果玩家已经在房间中,回调函数将返回 roomInfo。
  • cancelMatchPara.matchType 需要设置为 MGOBE.ENUM.MatchType.PLAYER_COMPLEX。

返回值说明

使用示例

    const cancelMatchPara = {
        matchType: MGOBE.ENUM.MatchType.PLAYER_COMPLEX,
    };

    room.cancelPlayerMatch(cancelMatchPara, event => console.log(event));

onMatch

接口描述

匹配结束广播。

参数描述

参数名 类型/值 描述
event MGOBE.types.BroadcastEvent<MGOBE.types.MatchGroupBst> 回调参数
说明:

  • onMatch 广播表示组队匹配结束。匹配成功或者匹配超时后,全部小组成员都会收到该广播。
  • 使用 event.data.errCode 判断是否匹配成功。
  • 注意该方法为 Room 类的静态方法。

返回值说明

使用示例

Room.onMatch = (event) => {

    if (event.data.errCode === MGOBE.ErrCode.EC_OK) {
        console.log("组队匹配成功");
        // 需要更新 room 实例信息
        room.initRoom(event.data.roomInfo);
        return;
    }

    // 匹配超时
    // ...
};

onCancelMatch

接口描述

取消匹配广播。

参数描述

参数名 类型/值 描述
event MGOBE.types.BroadcastEvent<MGOBE.types.CancelMatchBst> 回调参数
说明:

  • onCancelMatch 广播表示成功取消 matchPlayers、matchGroup。调用者或全部小组成员都将收到该广播。
  • 注意该方法为 Room 类的静态方法。

返回值说明

使用示例

    Room.onCancelMatch = (event) => {
        console.log("组队匹配已取消");
    };
目录