主题
Skip to content
配置服务器地址
- 在 XYXGlobalConfig.json 中配置好 MiniRankUrl 字段,也就是排行榜服务器的地址
c#
"MiniRankUrl":"http://192.168.241.71:8091/"
- 部分渠道需要配置白名单
c#
// 环境变量
using XYXCommon;
using XYXCommon.Rank;
上传排行榜数据
- 使用 XYX.MiniToplistRank.ReportRankScore 接口上传排行榜数据
c#
void ReportRankScore(SendRank_SendMsg sendMsg, Action<SendRank_RecvMsg> sendRankSuccess, Action<string> sendRankFailed)
// 示例
public void Test_SendRank()
{
XYXLOG.Log($"Test_GetRank");
var name = m_SendRankNameDropdown.options[m_SendRankNameDropdown.value].text;
var type = m_SendRankTypeDropdown.value + 1;
var incr = m_SendRankIncrToggle.isOn;
var uid = XYXGlobalData.OpenID;
var score = int.Parse(sendRankInputFields[0].text);
var forceUpdate = m_SendRankForceUpdateToggle.isOn;
var nick = sendRankInputFields[1].text;
var lv = int.Parse(sendRankInputFields[2].text);
var custom = sendRankInputFields[3].text;
var sendMsg = new SendRank_SendMsg
{
name = name,
category = type,
incr = incr,
uid = uid,
score = score,
forceUpdate = forceUpdate,
ext = new SendRank_SendMsg.ExtData
{
nick = nick,
lv = lv,
custom = custom,
},
};
XYX.MiniToplistRank.ReportRankScore(sendMsg, SendRankSuccess, SendRankFailed);
}
- SendRank_SendMsg 是上传数据要填写的参数
参数定义如下
c++
/// <summary>
/// 排行榜名,客户端根据需求自定义
/// </summary>
public string name;
/// <summary>
/// 排行榜周期类型 1: 永久榜 2: 天榜 3: 周榜(周一0点重置)
/// </summary>
public int category;
/// <summary>
/// 是否增量打榜 注意: 永久榜单不允许增量打榜
/// </summary>
public bool incr;
//可以填写用户的openid,也可以填写省份信息
public string uid;
/// <summary>
/// 打榜的分数
/// </summary>
public int score;
/// <summary>
/// 覆盖打榜模式下,强制更新score
/// </summary>
public bool forceUpdate;
/// <summary>
/// 客户端自定义字段, 一般用来自定义榜单上需要显示的信息
/// </summary>
public ExtData ext;
[System.Serializable]
public class ExtData
{
//扩展数据内置了最常用的昵称和等级
public string nick;
public int lv;
//可以按需要填充需要的数据
public string custom;
}
- 成功回调 sendRankSuccess 的参数类型 SendRank_RecvMsg 是上传数据成功后收到的消息
typescript
public string msg;
public int code;
- 失败回调 sendRankFailed
会触发失败回调的情况:
- 断网,参数为:“网络不可用”
- 请求15秒没反应,参数为:“请求超时”
- 加密失败,一般情况下不会出现
- 密钥过期,调用一次发送接口即可,会自动刷新密钥
获取排行榜数据
- 使用 XYX.MiniToplistRank.QueryRankList 接口上传排行榜数据
c#
void QueryRankList(GetRank_SendMsg sendMsg, Action<GetRank_RecvMsg> getRankSuccess, Action<string> getRankFailed)
// 示例
public void Test_GetRank()
{
XYXLOG.Log($"Test_GetRank");
var name = m_GetRankNameDropdown.options[m_GetRankNameDropdown.value].text;
var type = m_GetRankTypeDropdown.value + 1;
var uid = XYXGlobalData.OpenID;
var offset = int.Parse(getRankInputFields[0].text);
var page = int.Parse(getRankInputFields[1].text);
var count = int.Parse(getRankInputFields[2].text);
var getRankMsg = new GetRank_SendMsg
{
name = name,
category = type,
uid = uid,
offset = offset,
page = page,
count = count,
};
XYX.MiniToplistRank.QueryRankList(getRankMsg, GetRankSuccess, GetRankFailed);
}
- GetRank_SendMsg 是拉取排行榜信息需要填写的参数
c#
/// <summary>
/// 排行榜名,客户端根据需求自定义
/// </summary>
public string name;
/// <summary>
/// 排行榜周期类型 1: 永久榜 2: 天榜 3: 周榜(周一0点重置)
/// </summary>
public int category;
//可以填写用户的openid,也可以填写省份信息
public string uid;
/// <summary>
/// 增量读取偏移
/// offset=1就返回上一个周期的数据;offset=2就返回上两个周期的数据。什么都不填就返回本次周期的数据。(可搭配排行榜发送奖励食用)
/// </summary>
public int offset;
/// <summary>
/// 页数是从 0 开始的
/// </summary>
public int page;
/// <summary>
/// 请求条数
/// </summary>
public int count;
- 成功回调 GetRank_RecvMsg 的参数类型 SendRank_RecvMsg 是上传数据成功后收到的消息
c#
public string msg;
public int code;
public RankData data;
[System.Serializable]
public class RankData
{
public int no; // 玩家自己的排名, 如果不在榜单上则为0
public int score; // 玩家自己的分数
public int offset;
public string name;
public int count;
public int page;
public int category;
public List<RankItem> list;
}
[System.Serializable]
public class RankItem
{
public ExtData ext;
public int score;
public int no; // 榜单上的排名
}
[System.Serializable]
public class ExtData // 注意:这个ExtData结构与UpdateRank_SendMsg中的可能不同,根据GetRank的返回定义
{
public string nick;
public string uid; // 注意:这里也有uid,与外层uid区分
public int lv;
public string custom;
}
- 失败回调 getRankFailed 的情况跟上传排行榜数据的失败情况一致
点我快速对接


