"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:
|
// 登录数据管理
|
// <br/>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();
|