"use strict"; cc._RF.push(module, '14df05wz2BHPJa5h0HZDGoB', 'bridge.mod.game'); // Scripts/zbridge/mods/bridge.mod.game.js "use strict"; /****************************************************************** * * 桥接:核心流程管理 * ******************************************************************/ var BridgeController = require("bridge.controller"); var BDef = require("bridge.define"); var RoleController = require("role_controller"); var BridgeGame = cc.Class({ "extends": BridgeController, // 初始化配置数据 initConfig: function initConfig() { // 全局支持 nx.bridge.game = this; }, // 注册监听事件 registerEvents: function registerEvents() {}, // 注册协议接受事件 registerProtocals: function registerProtocals() { this.RegisterProtocal(10300, this.onGameReady); // 前端准备完毕 this.RegisterProtocal(10304, this.onEnterGame); // 显示主场景(登录成功) this.RegisterProtocal(10370, this.onGameReadyDone); // 登录推送数据完成 this.RegisterProtocal(10810, this.on10810); // BUG反馈处理 this.RegisterProtocal(10996, this.onVerifyVersion); // 版本验证 }, // 前端准备完毕 gameReady: function gameReady(_cb) { var _this = this; nx.debug("$GAME:前端准备完毕!"); this.cbDone = _cb; this.SendProtocal(10300, {}, function (_ret, _data) { if (!_ret) { nx.dt.fnInvoke(_cb, _ret, _data); _this.cbDone = null; return; } }); }, // 前端准备完毕 onGameReady: function onGameReady(_data) { // TODO... }, // 开服天数推送(首次标记代表登录推送数据完成) onGameReadyDone: function onGameReadyDone(_data) { if (!_data || _data.first != 1) { return; } // 推送完成,所有模块初始化 nx.debug("$GAME:推送完成,准备初始化模块..."); nx.dt.fnInvoke(this.cbDone, true); this.cbDone = null; }, // 进入主场景 enterGame: function enterGame() { // 首次进入引导 var role = RoleController.getInstance().getRoleVo(); if (role && role.lev <= 1 && nx.dt.arrEmpty(nx.bridge.plot.records.ids)) { nx.debug("$GAME:进入首次引导场景..."); nx.bridge.setGS(BDef.GameStage.First); return; } // 进入主场景 nx.debug("$GAME:进入主场景..."); nx.bridge.setGS(BDef.GameStage.Game); }, // 显示主场景(登录成功) onEnterGame: function onEnterGame(_data) { nx.debug("$GAME:正式进入游戏!"); // 请求数据通告 var flag = nx.bridge.vget("RoleReady"); nx.bridge.vset("RoleReady", flag + 1); }, // ================================================================= // 核心步骤 // ================================================================= // 初始化所有模块 initModules: function initModules(_cb) { // 基础模块 nx.bridge.mods.initModules(function (_ret, _data) { nx.dt.fnInvoke(_cb, _ret, _data); }); }, // ================================================================= // BUG反馈 // ================================================================= // 发送反馈信息 reqCommitIssue: function reqCommitIssue(issue_type, title, content, _cb) { var protocal = {}; protocal.issue_type = issue_type; protocal.title = title; protocal.content = content; this.SendProtocal(10810, protocal, _cb); }, // 反馈结果 on10810: function on10810(data) { if (data && nx.dt.strNEmpty(data.msg)) { nx.tbox(data.msg); } }, // 版本验证 onVerifyVersion: function onVerifyVersion(_data) { if (!_data || !_data.cli_ver_list) { return; } // 渠道验证 var info = null; var cname = nx.bridge.vget("channelName"); var list = _data.cli_ver_list || []; for (var i = 0; i < list.length; ++i) { if (list[i].sdk == cname) { info = list[i]; break; } } // 验证参数更新 if (info) { nx.bridge.vset("matVersion", info.cli_ver || ""); } } }); module.exports = BridgeGame; cc._RF.pop();