区服模块提供获取服务器列表,角色列表相关功能。
注意一:区服模块需申请参数,并在打包工具配置。接入完成后需确认是否接入成功。
注意二:区服模块获取的信息只做显示玩家历史角色、服务器、等级信息。
注意三:区服模块提供的信息不可作为游戏活动的依据。
注意四:游戏需要对外网预告服做进入游戏的限制。
说明:部分接口需要添加权限,如下所示:
注意:仅支持 Android。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
接口描述:获取区服列表。
接口调用:
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"
}]
}
}
接口描述:获取推荐服列表。
接口调用:
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"
}]
},
}}
接口描述:获取最近登录角色信息。
接口调用:
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": ""
}
}
接口描述:获取角色列表。
接口调用:
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": ""
}
}
]
}
接口描述:进入游戏事件,统计每个角色进入游戏的时间,用于获取列表时的排序,和上传进入游戏时间。
接口调用:
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);
接口描述:用户创建角色后调用。
接口调用:
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);
接口描述:用户角色信息存在改动的情况下调用,例如:角色等级、角色名称,等等。
接口调用:
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);
接口描述:删除一个已经创建的角色。
接口调用:
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"
}
接口描述:设置更新上报角色信息的时间间隔,默认 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 覆盖 |
Q:接口返回无数据。
A:将请求链接在浏览器中访问,如果返回无数据,需运营在开服系统后台配置。
Q:浏览器中访问的数据,与游戏接口返回的数据不一致。
A:检查 opid,opgameid 等参数是否正确,然后确认后台配置是否有开内网限制。