138 lines
4.0 KiB
JavaScript
138 lines
4.0 KiB
JavaScript
"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(); |