[隐藏]

目录

  • 1、API介绍

    存档API分为普通存档服务与双人存档服务,请按照实际需求添加使用。

    普通存档服务(添加步骤见3.3),可实现普通游戏存档需求。添加该服务后,玩家可以在线存档,保存游戏进度方便下一次继续游戏。

    双人存档服务(只支持AS3,添加步骤见AS3 3.4部分)是在普通存档服务基础上实现的一种高级存档服务。添加双人存档的游戏,可以实现在同一台电脑上,同时读取两个单人存档游戏账号一起游戏。

  • 2、使用案例

  • 3、添加步骤

    • AS2
    • AS3

    3.1.普通存档服务开发者可自行下载相关代码添加;

    3.2.下载as2_api.rar包,并解压到你游戏代码的根目录

    3.3.在游戏第一帧添加api通用代码(所有api共用,有且仅添加一次)

    import AS2_4399_API.Bridge;
    _global.bridge = Bridge.getInstance();

    添加存档id

    var _4399_function_store_id:String = '3885799f65acec467d97b4923caebaae';

    调用4399存档界面,进行存档时,返回档索引的回调函数

    /*
    * 接口参数类型:
    * @param   saveContext 回调函数所在的位置
    * @param   saveFunc    回调函数
    */
    _global.bridge.getSaveUiIdx(saveContext, saveFunc);
    //存档 操作完成 执行saveContext.saveFunc(res); 
    //res.idx:为返回的档索引值(从0开始算)

    网络存档失败的回调函数

    /*
    * 接口参数类型:
    * @param   netSaveErrorContext回调函数所在的位置
    * @param   netSaveErrorFunc回调函数
    */
    if(_global.bridge){
    _global.bridge.netSaveErrorCallBack(netSaveErrorContext,netSaveErrorFunc);
    }
    //网络存档失败后执行netSaveErrorContext.netSaveErrorFunc();

    网络取档失败的回调函数

    /*
    * 接口参数类型:
    * @param   netGetErrorContext回调函数所在的位置
    * @param   netGetErrorFunc回调函数
    */
    if(_global.bridge){
    _global.bridge.netGetErrorCallBack(netGetErrorContext,netGetErrorFunc);
    }
    //网络取档失败后执行netGetErrorContext.netGetErrorFunc(ret); 其中,ret类型为Number,表示取档的索引值

    游戏防多开的回调函数

    /*
    * 接口参数类型:
    * @param   multipleErrorContext回调函数所在的位置
    * @param   multipleErrorFunc回调函数
    */
    if(_global.bridge){
    _global.bridge.multipleErrorCallBack(multipleErrorContext,multipleErrorFunc);
    }
    //游戏多开时执行multipleErrorContext.multipleErrorFunc();

    调用读档接口且该档被封时,则回调该函数

    /*
    * 接口参数类型:
    * @param   getDataExcepContext回调函数所在的位置
    * @param   getDataExcepFunc回调函数
    */
    if(_global.bridge){
    	_global.bridge.getDataExcepCallBack(getDataExcepContext,getDataExcepFunc);
    }
    /*
    调用读档接口且该档被封时执行getDataExcepContext.getDataExcepFunc(ret);其中ret的值:
    
    * ret中的status表示存档状态。"0":正常 "1":临时封 "2":永久封
    * 当status为"1"(临时封)时,请加带有申诉功能的提示框,允许玩家向客服申诉处理
    **   申诉入口:http://app.my.4399.com/r.php?app=feedback
    **   提供给玩家举报其他作弊玩家的入口:http://app.my.4399.com/r.php?app=feedback-report
    * 当status为"2"(永久封)时,请加提示框且无需做申诉处理的功能
    
    var tmpStr:String = "存档的位置:" + ret.index +"存档状态:"+ ret.status;
    trace(tmpStr);
    */

    3.4.存读档API使用:

    存档操作

    /*
    *  存档参数类型:
    * @param   title       存档标题(类型为String)
    * @param   data        存档数据(类型 Object,Array,String,Number,XML)
    *                      Object,Array类型只能由: String,Number,Array,Object 三种组合
    * @param   saveContext 回调函数所在的位置
    * @param   saveFunc    回调函数
    * @param   ui          是否打开存档UI  默认为 true
    * @param   index       如果不开启UI,指定存档的位置(0-7)
    */
    _global.bridge.saveData(title, data, saveContext, saveFunc,ui, index);
    //存档 操作完成 执行 saveContext.saveFunc(res);
    // res:Boolean类型 true 存档成功 false 存档失败

    读档操作

    /*
    * 读档参数类型:
    * @param   getContext  回调函数所在的位置
    * @param   getFunc     回调函数
    * @param   ui          是否打开读档UI  默认为 true
    * @param   index       如果不开启UI,指定读档的位置(0-7)
    */
    _global.bridge.getData(getContext,getFunc,ui,index);
    // 读档 操作完成 执行getContex.getFunc(data);
    // data ={"index":0,"data":"abc","datetime":"2010-11-02 16:30:59","title":"标题"};
    // data.index:存档的位置,data.data:存档内容data.datetime:存档时间data.title:存档标题

    读取存档列表

    /*
    * 读取存档列表参数类型:
    * @param   callBackContext 回调函数所在的位置
    * @param   callBackFunc        回调函数
    */
    _global.bridge.getListData(callBackContext,callBackFunc);
    /*读取存档列表 操作完成 执行callBackContext.callBackFunc(data),其中data为Array参数;
    按以下方法取data中的值:
    for(var i in data){
    	var obj:Object = data[i];
    	if(obj == null) continue;
    
    	//其中status表示存档状态。"0":正常 "1":临时封 "2":永久封
    	//当status为"1"(临时封)或"2"(永久封)时,请在存档列表上加以提示
    	//在点击该档位且status为"1"(临时封)时,请加带有申诉功能的提示框,允许玩家向客服申诉处理
    	//    申诉入口:http://app.my.4399.com/r.php?app=feedback
    	//    提供给玩家举报其他作弊玩家的入口:http://app.my.4399.com/r.php?app=feedback-report
    	//在点击该档位且status为"2"(永久封)时,请加提示框且无需做申诉处理的功能
    
    	var tmpStr:String = "存档的位置:" + obj.index + "存档时间:" + obj.datetime +"存档标题:"+ obj.title + "存档状态:"+ obj.status;
    	trace(tmpStr);
    }
    */

    打开存档面板

    /*
    * 开启存读档UI(可以保存,又可以读取)
    * 玩家选择存档 操作完成 执行 saveContext. saveFunc(res);
    * res:Boolean类型 true 存档成功 false 存档失败
    * 玩家选择读档 操作完成 执行getContex.getFunc(data);
    * data ={"index":0,"data":"abc","datetime":"2010-11-02 16:30:59","title":"标题"};
    * data.index:存档的位置,data.data:存档内容data.datetime:存档时间data.title:存档标题
    * @param   title       存档标题
    * @param   data        存档数据(类型 Object,Array,String,Number,XML)
    *                      Object,Array类型只能由:  String,Number,Array,Object 三种组合
    * @param   saveContext 存档回调函数所在的位置
    * @param   saveFunc    存档回调函数
    * @param   getContext  读档回调函数所在的位置
    * @param   getFunc     读档回调函数
    */
    _global.bridge.openSaveUI(title,data,saveContext,saveFunc,getContext,getFunc);

    获取游戏是否多开的状态

    /*
    * 参数类型:
    * @param   getStoreStateContext    回调函数所在的位置
    * @param   getStoreStateFunc       回调函数
    */
    _global.bridge.getStoreState(getStoreStateContext,getStoreStateFunc);
    // 获取游戏是否多开的状态 操作完成 执行getStoreStateContext.getStoreStateFunc(ret);
    // ret的值为0:多开了,1:没多开,-1:请求数据出错了,-2:没添加存档API的key,-3:未登录不能取状态

    调用读档接口且该档被封时,则回调该函数

    /*
    * 接口参数类型:
    * @param   getDataExcepContext回调函数所在的位置
    * @param   getDataExcepFunc回调函数
    */
    if(_global.bridge){
    	_global.bridge.getDataExcepCallBack(getDataExcepContext,getDataExcepFunc);
    }
    /*
    调用读档接口且该档被封时执行getDataExcepContext.getDataExcepFunc(ret);其中ret的值:
    
    * ret中的status表示存档状态。"0":正常 "1":临时封 "2":永久封
    * 当status为"1"(临时封)时,请加带有申诉功能的提示框,允许玩家向客服申诉处理
    **   申诉入口:http://app.my.4399.com/r.php?app=feedback
    **   提供给玩家举报其他作弊玩家的入口:http://app.my.4399.com/r.php?app=feedback-report
    * 当status为"2"(永久封)时,请加提示框且无需做申诉处理的功能
    
    var tmpStr:String = "存档的位置:" + ret.index +"存档状态:"+ ret.status;
    trace(tmpStr);
    */

  • 4、常见问题解答

    4.1.双人存档服务添加有什么限制吗?

    使用多人存档服务需要先添加普通存档服务,此外添加多人存档服务需要游戏场景及UI支持,同时考虑一台电脑双人的操作需求。我们一般推荐街机与格斗与横版过关类游戏添加此服务。

    4.2.添加双人存档服务的游戏在有那些要求?

    添加双人存档的游戏需要添加触发第二玩家登录UI及第二玩家存档选择列表。目前已存在的多人存档数据无法支持双人存档服务。

    4.3.主账号退出时,已登录的次账号是否会同时退出?

    在进行双人存档游戏时,当主账号退出游戏,次账号也会同时退出游戏。