C2/C3 Wiki

C2/C3开发者的乐园

用户工具

站点工具


r2i.io使用方法

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
r2i.io使用方法 [2017/08/10 21:03] Avenr2i.io使用方法 [2024/01/22 11:09] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
 +====== r2i.io排行榜使用方法 ======
 +<WRAP center round important 60%>
 +注意:由于r2i.io绑定了更多服务,原服务地址更改为 http://r2i.io/rank/ 请及时调整
 +</WRAP>
 +
 ===== 注册排行榜 ===== ===== 注册排行榜 =====
-[[http://r2i.io/regnew.php]]+[[http://r2i.io/rank/regnew.php]]
 点击左下角“New”按钮,注册新的排行榜(此功能将不定期开放) 点击左下角“New”按钮,注册新的排行榜(此功能将不定期开放)
  
-注册后将看到  NNNN_CCCCCCCC : CCCCCCCC 格式的提示信息,NNNN为数字,CCCCCCCC为字母,NNNN_CCCCCCCC为排行榜列表ID,CCCCCCCC为默认密码。密码的功能是用于数据传输中XOR的加密和解密,可以在注册页面修改此密码。+注册后将看到  NNNN_CCCCCCCC : CCCCCCCC 格式的提示信息,NNNN为数字,CCCCCCCC为字母数字组合(大小写敏感),NNNN_CCCCCCCC为排行榜列表ID,CCCCCCCC为默认密码。密码的功能是用于数据传输中XOR的加密和解密,可以在注册页面修改此密码。(XOR数据传输加密解析详见文章:[[通过xor技术对数据传输进行加密]],建议务必阅读并理解本文内容)
  
 在注册页面同样可以修改排行榜其他设置,如排行榜显示数量,正序或逆序排行等 在注册页面同样可以修改排行榜其他设置,如排行榜显示数量,正序或逆序排行等
  
 +===== 基础接口使用 ===== 
 +==== 需要使用的插件 ==== 
 +<wrap hi>目前这套方法的一个重要缺陷是,需要的插件较多,如果能整合成一个插件固然是最好……然而……</wrap> 
 +  * 官方:AJAX,WebStorage 
 +  * Rex:SimpleXOREncryption,JSON 
 +  * 其他:CBHash 
 +==== 变量和本地存储的使用 ==== 
 +  * ListID:即一开始获得的排行榜列表ID 
 +  * ListPass:一开始获得的排行榜密码(不建议用变量保存,而是在每次传输数据时临时写进去) 
 +  * UserID:用户ID,第一次调用ready接口时获得(格式为16位随机字母,大小写敏感),之后需要保存到本地(webStorage或localStorage) 
 +  * UserName:用户昵称,用于在排行榜中展示,如果没有昵称,则会在排行榜中显示用户ID 
 +  * GameTime:Ready接口返回的时间戳,上传分数时必须带此数据一起上传,否则会被判数据无效 
 +==== ready接口 ==== 
 +  * 游戏开始前调用此接口,将用户信息传递给服务器,服务器将返回一串已加密的数据 
 +  * 调用:http://r2i.io/rank/?a=rd&l={ListID}[&n={UserName}&u={UserID}] [..]内为可选项 
 +  * 返回结果需要用XOR解密(使用ListPass作为密码,XOR.Decrypt(AJAX.LastData, CBHash.MD5({ListPass}))) 
 +  * 返回格式为:{UserID}|0|{GameTime} 
 +==== Submit接口 ==== 
 +  * 游戏完成时,通过此接口上传分数,服务器将返回用户ID和当前最高得分 
 +  * 调用:http://r2i.io/rank/?a=sub&l={ListID}&d={data} 
 +  * data的结构:URLEncode(XOR.Encrypt({UserID}|{Score}|{GameTime}, CBHash.MD5({ListPass})) <wrap hi>注意:所有XOR加密后的数据带入data前,需要用URLEncode进行转义,防止XOR产生的空格和换行干扰数据传输</wrap> 
 +  * 返回结果格式为:{UserID}|{MaxScore} 
 +==== List接口 ==== 
 +  * 获取排行榜接口可以获取到当前游戏的排行榜 
 +  * 调用:http://r2i.io/rank/?a=list&l={ListID}[&u={UserID}]  [..]为可选内容,如果传入用户ID,则会额外返回当前用户得分与排名 
 +  * 返回JSON:"listID":排行榜ID,"listCount":当前排行榜显示数据数,"myScore":我的得分,"myRank":我的排名,"data":数据表 
 +  * 数据表结构:"name":玩家昵称,"score":玩家得分..... 
 +  * 建议使用JSON插件解析并展示数据 
 +==== 演示地址 ==== 
 +  * [[http://t.0tw.cn/rt/]] 
 +  * {{ :ranktest.zip |示例程序}}
r2i.io使用方法.1502370214.txt.gz · 最后更改: (外部编辑)