supersdk

文档中心

文档中心

下载文档

区服模块


区服模块提供获取服务器列表,角色列表相关功能。

一、注意事项

注意一:区服模块需申请参数,并在打包工具配置。接入完成后需确认是否接入成功。

注意二:区服模块获取的信息只做显示玩家历史角色、服务器、等级信息。

注意三:区服模块提供的信息不可作为游戏活动的依据。

注意四:游戏需要对外网预告服做进入游戏的限制。

二、配置信息(必接)

说明:部分接口需要添加权限,如下所示:

注意:仅支持 Android。

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

三、功能接口

1. 获取区服列表

接口描述:获取区服列表。

接口调用:

Dictionary<string, object> queryDic = new Dictionary<string, object>();
queryDic.Add("opid", "2106"); // 渠道编号
queryDic.Add("opgameid", "2345"); // 混服编号
queryDic.Add("yz_game_id", "94"); // 游戏开服系统中的游戏编号
queryDic.Add("packageId", ""); // 包 ID (选传)
queryDic.Add("pageNo", "1"); // 区服分页,第多少页,值必须大于等于 1 的 int 类型。非必传参数
queryDic.Add("pageSize", "1"); // 区服分页,每页数据条数,值须为大于等于 1 的 int 类型的值。非必须参数,
queryDic.Add("backColums", "[]"); // 区服返回字段,值须为 JSONArray 字符串。非必传参数,如果不传,则默认返回列。具体字段请参考附录
SuperSDK.getInstance().Invoke("xsdk", "queryServers", queryDic);

接口回调:

public void OnCallBack(string moduleName, string funcName, string result)
{
    Debug.Log("moduleName:" + moduleName);
    Debug.Log("funcName:" + funcName);
    Debug.Log("result:" + result);

    JsonData resultData = JsonMapper.ToObject(result);
    if (moduleName.Equals("xsdk"))
    {
        if (funcName.Equals("queryServers"))
        {
            JsonData resultData = JsonMapper.ToObject(result);
            int code = (int)resultData["code"];
            string data = JsonMapper.ToJson(resultData["data"]);
            if (code == SuperSDKConstants.SUCCESS)
            {
                // 查询区服成功,数据在 data 中
            }
            else
            {
                // 查询区服失败
            }
        }
    }
}

日志打印:

{
 "code": 1,
 "msg": "查询区服成功",
 "data" : {
    "totalCount" : 2,
    "list" : [
          {
            "op_sid" : "1516440002",
            "type" : "44",
            "server_name" : "测试服2",
            "is_recommend" : "1",
            "first_opentime" : "1537372800",
            "server_id" : "1516440002",
            "new_style" : "3",
            "is_active" : "1",
            "server_url" : "s1516440002-sbzh.youzu.com"
          },
          {
            "op_sid" : "1516440001",
            "type" : "44",
            "server_name" : "测试服1",
            "is_recommend" : "1",
            "first_opentime" : "1537372800",
            "server_id" : "1516440001",
            "new_style" : "3",
            "is_active" : "1",
            "server_url" : "s1516440001-sbzh.youzu.com"
          }]
      }
}

2. 获取推荐服列表(选接)

接口描述:获取推荐服列表。

接口调用:

Dictionary<string, object> queryDic = new Dictionary<string, object>();
queryDic.Add("opid", "2106"); // 渠道编号
queryDic.Add("opgameid", "2345"); // 混服编号
queryDic.Add("yz_game_id", "94"); // 游戏开服系统中的游戏编号
queryDic.Add("packageId", ""); // 包 ID (选传)
queryDic.Add("pageNo", "1"); // 推荐服分页,第多少页,值必须大于等于 1 的 int 类型。非必传参数
queryDic.Add("pageSize", "1"); // 推荐服分页,每页数据条数,值须为大于等于 1 的 int 类型的值。非必须参数,
queryDic.Add("isCache", "1"); // 是否使用缓存数据,1:使用,0:不使用,非必传参数,默认使用缓存
queryDic.Add("backColums", "["cover_style"]"); // 推荐服返回字段,值须为 JSONArray 字符串。非必传参数,如果不传,则默认返回列。具体字段请参考附录
SuperSDK.getInstance().Invoke("xsdk", "queryRecoServers", queryDic);

接口回调:

public void OnCallBack(string moduleName, string funcName, string result)
{
    Debug.Log("moduleName:" + moduleName);
    Debug.Log("funcName:" + funcName);
    Debug.Log("result:" + result);

    JsonData resultData = JsonMapper.ToObject(result);
    if (moduleName.Equals("xsdk"))
    {
        if (funcName.Equals("queryRecoServers"))
        {
            JsonData resultData = JsonMapper.ToObject(result);
            int code = (int)resultData["code"];
            string data = JsonMapper.ToJson(resultData["data"]);
            if (code == SuperSDKConstants.SUCCESS)
            {
                // 查询推荐服成功,数据在 data 中
            }
            else
            {
                // 查询推荐服失败
            }
        }
    }
}

日志打印:

{
 "code": 1,
 "msg": "查询推荐服成功",
 "data" : {
    "totalCount" : 2,
    "list" : [
          {
            "op_sid" : "1516440002",
            "type" : "44",
            "server_name" : "测试服2",
            "is_recommend" : "1",
            "first_opentime" : "1537372800",
            "server_id" : "1516440002",
            "new_style" : "3",
            "is_active" : "1",
            "cover_style" : "1",
            "server_url" : "s1516440002-sbzh.youzu.com"
          },
          {
            "op_sid" : "1516440001",
            "type" : "44",
            "server_name" : "测试服1",
            "is_recommend" : "1",
            "first_opentime" : "1537372800",
            "server_id" : "1516440001",
            "new_style" : "3",
            "is_active" : "1",
             "cover_style" : "1",
            "server_url" : "s1516440001-sbzh.youzu.com"
          }]
      },
}}

3. 获取最近登录角色信息(选接)

接口描述:获取最近登录角色信息。

接口调用:

Dictionary<string, object> queryRoleMap = new Dictionary<string, object>();
queryRoleMap.Add("opid", "2106"); // 区服编号
queryRoleMap.Add("yz_game_id", "94"); // 游戏开服系统中的游戏编号
queryRoleMap.Add("osdk_user_id", osdk_user_id); // SuperSDK 登录回调的 osdk_user_id
queryRoleMap.Add("opgameid", "2345"); // 混服编号
queryRoleMap.Add("packageId", ""); // 包 ID (选传)
queryRoleMap.Add("backColums", "[op_sid]"); // 区服返回字段,值须为 JSONArray 字符串。非必传参数,如果不传,则默认返回列。具体字段请参考附录
SuperSDK.getInstance().Invoke("xsdk", "queryLastRole", queryRoleMap);

接口回调:

public void OnCallBack(string moduleName, string funcName, string result)
{
    Debug.Log("moduleName:" + moduleName);
    Debug.Log("funcName:" + funcName);
    Debug.Log("result:" + result);

    JsonData resultData = JsonMapper.ToObject(result);
    if (moduleName.Equals("xsdk"))
    {
        if (funcName.Equals("queryLastRole"))
        {
            JsonData resultData = JsonMapper.ToObject(result);
            int code = (int)resultData["code"];
            string data = JsonMapper.ToJson(resultData["data"]);
            if (code == SuperSDKConstants.SUCCESS)
            {
                // 查询角色信息成功,数据在 data 中
            }
            else
            {
                // 查询角色信息失败
            }
        }
    }
}

日志打印:

{
 "code": 1,
 "msg": "查询最后角色信息成功",
 "data": {
   "extend": "",
   "yz_game_id": "",
   "level": ,
   "opid": "",
   "role_id": "",
   "role_name": "",
   "server_id": "",
   "osdk_user_id": "",
   "vip_grade": ,
   "roleCreateTime": ,
   "serverInfo": {
     "first_opentime": "",
     "is_active": "",
     "new_style": "",
     "server_id": "",
     "server_name": "",
     "type": ""
   }
}

4. 获取角色列表

接口描述:获取角色列表。

接口调用:

Dictionary<string, object> queryRoleMap = new Dictionary<string, object>();
queryRoleMap.Add("opid", "2106"); // 区服编号
queryRoleMap.Add("yz_game_id", "94"); // 游戏开服系统中的游戏编号
queryRoleMap.Add("osdk_user_id", osdk_user_id); // SuperSDK 登录回调的 osdk_user_id
queryRoleMap.Add("opgameid", "2345"); // 混服编号
queryRoleMap.Add("packageId", ""); // 包 ID (选传)
queryRoleMap.Add("backColums", "[op_sid]"); // 区服返回字段,值须为 JSONArray 字符串。非必传参数,如果不传,则默认返回列。具体字段请参考附录
SuperSDK.getInstance().Invoke("xsdk", "queryRoles", queryRoleMap);

接口回调:

public void OnCallBack(string moduleName, string funcName, string result)
{
    Debug.Log("moduleName:" + moduleName);
    Debug.Log("funcName:" + funcName);
    Debug.Log("result:" + result);

    JsonData resultData = JsonMapper.ToObject(result);
    if (moduleName.Equals("xsdk"))
    {
        if (funcName.Equals("queryRoles"))
        {
            JsonData resultData = JsonMapper.ToObject(result);
            int code = (int)resultData["code"];
            string data = JsonMapper.ToJson(resultData["data"]);
            if (code == SuperSDKConstants.SUCCESS)
            {
                // 查询角色信息成功,数据在 data 中
            }
            else
            {
                // 查询角色信息失败
            }
        }
    }
}

日志打印:

{
 "code": 1,
 "msg": "查询角色信息成功",
 "data": [
   {
     "extend": "null",
     "yz_game_id": "94",
     "level": 120,
     "opid": "2443",
     "role_id": "1519958050",
     "role_name": "觉得就觉得",
     "server_id": "2072311068",
     "osdk_user_id": "0060015_1234",
     "vip_grade": 12,
     "roleCreateTime": 1519958050,
     "serverInfo": {
       "first_opentime": "",
       "new_style": "",
       "op_sid": "",
       "server_id": "",
       "server_name": ")",
       "type": ""
     }
   },
   {
     "extend": "null",
     "yz_game_id": "94",
     "level": 120,
     "opid": "2443",
     "role_id": "1519958050",
     "role_name": "觉得就觉得",
     "server_id": "2072311068",
     "osdk_user_id": "0060015_1234",
     "vip_grade": 12,
     "roleCreateTime": 1519958050,
     "serverInfo": {
       "first_opentime": "",
       "new_style": "",
       "op_sid": "",
       "server_id": "",
       "server_name": ")",
       "type": ""
     }
   },
   {
     "extend": "null",
     "yz_game_id": "94",
     "level": 120,
     "opid": "2443",
     "role_id": "1519958050",
     "role_name": "觉得就觉得",
     "server_id": "2072311068",
     "osdk_user_id": "0060015_1234",
     "vip_grade": 12,
     "roleCreateTime": 1519958050,
     "serverInfo": {
       "first_opentime": "",
       "new_style": "",
       "op_sid": "",
       "server_id": "",
       "server_name": ")",
       "type": ""
     }
   }
 ]
}

5. 进入游戏(必接)

接口描述:进入游戏事件,统计每个角色进入游戏的时间,用于获取列表时的排序,和上传进入游戏时间。

接口调用:

Dictionary<string, object> enterMap = new Dictionary<string, object>();
enterMap.Add("opid", opid); // 区服编号
enterMap.Add("yz_game_id", gameId); // 开服系统 gameId
enterMap.Add("osdk_user_id", osdk_user_id); // SuperSDK 登录回调的 osdk_user_id
enterMap.Add("extend", extend); // 可选               
enterMap.Add("level", roleLevel); // 角色等级
enterMap.Add("role_id", roleId); // 角色 ID
enterMap.Add("role_name", roleName); // 角色名称
enterMap.Add("server_id", serverId); // 服务器 ID
enterMap.Add("vip_grade", roleVip); // 角色 VIP 等级
enterMap.Add("roleCreateTime", roleCreateTime); // 创角必传,游戏客户端可取服务端的时间戳,作为创角时间
SuperSDK.getInstance().Invoke("xsdk", "enterGame", enterMap);

6. 创建角色(必接)

接口描述:用户创建角色后调用。

接口调用:

Dictionary<string, object> creatRoleMap = new Dictionary<string, object>();
creatRoleMap.Add("opid", opid); // 区服编号
creatRoleMap.Add("yz_game_id", gameId); // 开服系统 gameId
creatRoleMap.Add("osdk_user_id", osdk_user_id); // SuperSDK 登录回调的 osdk_user_id
creatRoleMap.Add("extend", extend); // 可选               
creatRoleMap.Add("level", roleLevel); // 角色等级
creatRoleMap.Add("role_id", roleId); // 角色 ID
creatRoleMap.Add("role_name", roleName); // 角色名称
creatRoleMap.Add("server_id", serverId); // 服务器 ID
creatRoleMap.Add("vip_grade", roleVip); // 角色 VIP 等级
creatRoleMap.Add("roleCreateTime", roleCreateTime); // 创角必传,游戏客户端可取服务端的时间戳,作为创角时间
SuperSDK.getInstance().Invoke("xsdk", "createRole", creatRoleMap);

7. 更新角色(必接)

接口描述:用户角色信息存在改动的情况下调用,例如:角色等级、角色名称,等等。

接口调用:

Dictionary<string, object> updataMap = new Dictionary<string, object>();
updataMap.Add("opid", opid); // 区服编号
updataMap.Add("yz_game_id", gameId); // 开服系统 gameId
updataMap.Add("osdk_user_id", osdk_user_id); // SuperSDK 登录回调的 osdk_user_id
updataMap.Add("extend", extend); // 可选               
updataMap.Add("level", roleLevel); // 角色等级
updataMap.Add("role_id", roleId); // 角色 ID
updataMap.Add("role_name", roleName); // 角色名称
updataMap.Add("server_id", serverId); // 服务器 ID
updataMap.Add("vip_grade", roleVip); // 角色 VIP 等级
updataMap.Add("roleCreateTime", roleCreateTime); // 创角必传,游戏客户端可取服务端的时间戳,作为创角时间
SuperSDK.getInstance().Invoke("xsdk", "updateRole", updataMap);

8. 删除角色(选接)

接口描述:删除一个已经创建的角色。

接口调用:

Dictionary<string, object> deleteMap = new Dictionary<string, object>();
deleteMap.Add("opid", opid); // 区服编号
deleteMap.Add("yz_game_id", gameId); // 开服系统 gameId
deleteMap.Add("osdk_user_id", userId); // SuperSDK 登录回调的 osdk_user_id
deleteMap.Add("extend", ""); // 可选
deleteMap.Add("level", grade); // 角色等级
deleteMap.Add("role_id", roleId); // 角色 ID
deleteMap.Add("role_name", roleN); // 角色名称
deleteMap.Add("server_id", serverId); // 服务器 ID
deleteMap.Add("vip_grade", vip); // 角色 VIP 等级
deleteMap.Add("roleCreateTime", roleCreateTime); // 创角必传,游戏客户端可取服务端的时间戳,作为创角时间
SuperSDK.getInstance().Invoke("xsdk", "deleteRoleNew", deleteMap);

接口回调:

public void OnCallBack(string moduleName, string funcName, string result)
{
    Debug.Log("moduleName:" + moduleName);
    Debug.Log("funcName:" + funcName);
    Debug.Log("result:" + result);

    JsonData resultData = JsonMapper.ToObject(result);
    if (moduleName.Equals("xsdk"))
    {
        if (funcName.Equals("deleteRoleNew"))
        {
            JsonData resultData = JsonMapper.ToObject(result);
            int code = (int)resultData["code"];
            if (code == SuperSDKConstants.SUCCESS)
            {
                // 删除角色成功            
            }
            else
            {
                // 删除角色失败
            }
        }
    }
}

日志打印:

{
 "code": 1,
 "msg": "删除角色成功:success"
}

9. 设置上报时间间隔(选接)

接口描述:设置更新上报角色信息的时间间隔,默认 60 秒。传 0 表示每次更新必定上报。

接口调用:

Dictionary<string, object> updateMap = new Dictionary<string, object>();
updateMap.Add("seconds", 10); // 必传,为大于等于 0 的整形数字,最小为 0,最大 600,单位/秒
SuperSDK.getInstance().Invoke("xsdk", "setUpdateInterval", updateMap)

附录

说明:参数为可选返回列参数,如下:

返回列 说明
socket_domain socket 域名
socket_port socket 端口
op_sid 运营商区服 ID
is_active 是否激活
is_recommend 是否推荐
server_url 区服地址
recharge_url 充值地址
recharge_opentime 充值开启时间
notice_opentime 开服预告时间
fcm_time 防沉迷时间
cover_style 是否覆盖区服状态

特殊字段说明说明:

字段名 字段说明 取值说明
type 区服类型 31:正式服、41:永测服、42:外网测试服、43:内网测试服、44:QA 测试服
new_style 新样式 1:正常开启(开服 30 天以上)、3:火爆开启(开服 1 周 - 30 天)、4:即将开启(到达预告时间或在 IP 白名单内可见)、5:停服维护、6:停止激活、7:新开服(开服 1 周)、100:推荐、101:流畅、102:拥挤
cover_style 是否覆盖区服状态 0 不覆盖,1 覆盖

FAQ

Q:接口返回无数据。

A:将请求链接在浏览器中访问,如果返回无数据,需运营在开服系统后台配置。

Q:浏览器中访问的数据,与游戏接口返回的数据不一致。

A:检查 opid,opgameid 等参数是否正确,然后确认后台配置是否有开内网限制。