Files
fc/dev/project/library/imports/14/14df0e70-cf60-473c-96b9-8741d90c6a01.js
T
2026-05-24 10:21:26 +08:00

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();