"use strict"; cc._RF.push(module, 'a9e8eXmlbpG26XbXfg4uht+', 'login_model'); // Scripts/mod/login/login_model.js "use strict"; var _shmix, _ServerData; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } // -------------------------------------------------------------------- // @author: shiraho@syg.com(必填, 创建模块的人员) // @description: // 登录数据管理 //
Create: new Date().toISOString() // -------------------------------------------------------------------- var LoginEvent = require("login_event"); var LoginPlatform = require("login_platform"); var ServerData = (_ServerData = {}, _defineProperty(_ServerData, "sh", _defineProperty({}, "1", "英雄之路")), _defineProperty(_ServerData, "shmix", (_shmix = {}, _defineProperty(_shmix, "1", "风王结界"), _defineProperty(_shmix, "2", "魔力领域"), _shmix)), _ServerData); var LoginModel = cc.Class({ ctor: function ctor() { this.server_list = []; this.login_info = {}; //登入游戏数据 this.isSocket = false; }, properties: {}, initConfig: function initConfig() { // this.login_info.platform = PLATFORM_NAME //暂时的 this.login_info.ip = ""; this.login_info.port = ""; this.login_info.role_count = "0"; this.login_info.status = "0"; // 默认的服务器拥挤状态 this.login_info.isNew = false; // 是否是新服 this.login_info.isClose = false; // 是否关服 this.login_info.host = ""; // host this.login_info.open_time = 0; this.login_info.srv_name = ""; this.login_info.srv_id = ""; this.login_info.main_srv_id = ""; this.login_info.rid = 0; this.login_info.usrName = ""; this.login_info.password = ""; this.login_info.tuijianCareer = 0; // 推荐职业 来源于 10100 this.login_info.platform_flag = ""; // 平台标签 // 从本地缓存读取最后一次使用的账号和密码 this.login_info.usrName = gcore.SysEnv.get("user_name") || ""; this.login_info.password = gcore.SysEnv.get("password") || ""; // this.loginData.usrNameList = SysEnv:getInstance():getTable(SysEnv.keys.usrNameList) }, //获取登录数据 getLoginInfo: function getLoginInfo() { return this.login_info; }, // 请求默认服务器信息 requestDefaultServer: function requestDefaultServer() { //1默认 0所有 var account = this.login_info.account || ''; var srv_id = ""; var str_ = "srv_id" + this.login_info.usrName; console.log("---服务器---", str_, gcore.SysEnv.get(str_)); if (gcore.SysEnv.get(str_)) { srv_id = gcore.SysEnv.get(str_); } var time = gcore.SmartSocket.getTime(); var url = SERVER_LIST_URL + "?platform=" + PLATFORM + "&chanleId=" + CHANNEL + "&account=" + account + "&srvid=" + srv_id + "&start=0&num=1" + "&time=" + time; //默认 var url1 = SERVER_LIST_URL + "?platform=" + PLATFORM + "&chanleId=" + CHANNEL + "&account=" + account + "&srvid=" + srv_id + "&start=0&num=0" + "&time=" + time; //所有 cc.loader.load(url, function (err, json) { cc.log("默认服务器列表"); var objs = JSON.parse(json); cc.log(objs); this.handleDefaultServer(objs); cc.loader.load(url1, function (err, json) { var objs1 = JSON.parse(json); this.handleAllServer(objs1); }.bind(this)); }.bind(this)); }, // 获取默认服务器列表 requestDefaultServerList: function requestDefaultServerList(account, platform) { account = account || this.loginData.usrName || ""; platform = platform || PLATFORM_NAME; this.account = account; this.platform = platform; var srv_id = ""; // console.log("---服务器---", gcore.SysEnv.get("srv_id")) // if(gcore.SysEnv.get("srv_id")){ // srv_id = gcore.SysEnv.get("srv_id") // } var str_ = "srv_id" + this.login_info.usrName; console.log("---服务器---", str_, gcore.SysEnv.get(str_)); if (gcore.SysEnv.get(str_)) { srv_id = gcore.SysEnv.get(str_); } var channelId = LoginPlatform.getInstance().getChannel(); var finalChannelId = LoginPlatform.getInstance().getFinalChannel(); if (!finalChannelId) finalChannelId = CHANNEL; // if (channelId) // account = channelId + "_" + account; var time = gcore.SmartSocket.getTime(); var url = SERVER_LIST_URL + "?platform=" + platform + "&chanleId=" + finalChannelId + "&account=" + account + "&srvid=" + srv_id + "&start=0&num=1" + "&time=" + time; //默认 var url1 = SERVER_LIST_URL + "?platform=" + platform + "&chanleId=" + finalChannelId + "&account=" + account + "&srvid=" + srv_id + "&start=0&num=0" + "&time=" + time; //所有 console.log("请求服务器列表链接" + url); cc.loader.load(url, function (err, json) { var objs = JSON.parse(json); this.handleSDKDefaultServer(objs, account, platform); cc.log("默认服务器列表"); cc.log(objs); console.log("默认服务器列表", objs); if (USE_SDK == true && PLATFORM_TYPR == "SH_SDK") { SDK.dataPlacement(75000); } cc.loader.load(url1, function (err, json) { var objs1 = JSON.parse(json); this.handleAllServer(objs1); }.bind(this)); }.bind(this)); }, // 获取所有服务列表 requestAllDefaultServerList: function requestAllDefaultServerList() {}, handleSDKDefaultServer: function handleSDKDefaultServer(objs, account, platform) { var data = objs.data || objs.msg; if (_typeof(data) != 'object') { return; } if (this.login_info.srv_name) { return; } var defserver = data.default_zone; var server = this.convertServerInfo(defserver); this.setCurServer(server); gcore.GlobalEvent.fire(LoginEvent.LOGIN_EVENT_DEFSERVER_SUCCESS); }, // 处理默认服务器信息 handleDefaultServer: function handleDefaultServer(objs) { var data = objs.data || objs.msg; if (_typeof(data) != 'object') { return; } if (this.login_info.srv_name) { return; } var defserver = data.default_zone; var server = this.convertServerInfo(defserver); this.setCurServer(server); gcore.GlobalEvent.fire(LoginEvent.LOGIN_EVENT_DEFSERVER_SUCCESS); }, handleAllServer: function handleAllServer(objs) { var data = objs.data || objs.msg; if (_typeof(data) != 'object') { return; } this.server_list = []; for (var i = 0; i < data.server_list.length; ++i) { var list = Utils.deepCopy(this.convertServerInfo(data.server_list[i])); this.server_list.push(list); } }, // 服务器信息数据转换 convertServerInfo: function convertServerInfo(server) { return { srv_name: server.name || server.srv_name, srv_id: server.srv_id || server.platform + "_" + server.zone_id, ip: server.ip || server.host, host: server.host || server.ip, port: server.port, ws: server.ws || "ws", zone_id: server.zone_id, platform: server.platform, main_srv_id: server.main_srv_id, is_close: server.maintain == 1, is_try: server.first_zone == 1, is_new: Number(server.isnew) == 1, is_recomed: server.recomed == 1, open_time: server.open_time || server.begin_time, roles: server.roles || [], group_num: server.group_num || 1, group_id: server.group_id || 1 }; }, // 设置当前服务器信息 setCurServer: function setCurServer(server) { this.login_info.ip = server.ip; this.login_info.host = server.host; this.login_info.port = server.port; this.login_info.ws = server.ws; this.login_info.srv_id = server.srv_id; this.login_info.platform = server.platform; this.login_info.zone_id = server.zone_id; this.login_info.srv_name = server.srv_name; this.login_info.open_time = server.open_time; this.login_info.is_close = server.is_close; this.login_info.is_new = server.is_new; gcore.GlobalEvent.fire(LoginEvent.LOGIN_EVENT_CUR_SERVER_UPDATE); }, // 查找指定服务器信息 findServer: function findServer(srv_id) { if (srv_id) { for (var srv_i in this.server_list) { if (this.server_list[srv_i].srv_id == srv_id) { return this.server_list[srv_i]; } } } return null; }, //获取服务器列表 getServerList: function getServerList() { return this.server_list; }, //获取对应服务器信息 getServerInfo: function getServerInfo(index) { if (this.server_list[index]) { return this.server_list[index]; } }, //获取当前服务器名称 getSvrName: function getSvrName(srv_id) { if (this.server_list == null || srv_id == null) { return ""; } for (var i in this.server_list) { var v = this.server_list[i]; if (v.srv_id == srv_id) { return v.srv_name; } } return ""; }, setIsSocket: function setIsSocket(bool) { this.isSocket = bool; }, getLoginData: function getLoginData() { return this.login_info; }, checkReloadServerData: function checkReloadServerData(data) { var now = gcore.SmartSocket.getTime(); this.check_time = this.check_time || 0; if (now - this.check_time > 10) { this.check_time = now; if (this.account && this.platform) { this.requestDefaultServerList(this.account, this.platform); } } }, setFirstRoleData: function setFirstRoleData(data) { this.first_role_data = data; }, getFirstRoleData: function getFirstRoleData() { return this.first_role_data; }, getSrvGroupNameByGroupId: function getSrvGroupNameByGroupId(group_id) { if (group_id == null) return ""; var srv_cfg = ServerData[PLATFORM_NAME]; if (srv_cfg) { return srv_cfg[group_id]; } return ""; // if(group_id == null) return ""; // let platform_id = 1 // if(PLATFORM_NAME == "sh"){ // platform_id = 1 // }else if(PLATFORM_NAME == "shmix"){ // platform_id = 2 // } // let srv_cfg = ServerData[group_id] // if(srv_cfg){ // return srv_cfg[platform_id] || "" // } // return "" } }); module.exports = LoginModel; cc._RF.pop();