|
@@ -1,4 +1,4 @@
|
|
|
-import { _decorator, Label, Toggle, tween, UIOpacity } from 'cc';
|
|
|
+import { _decorator, Button, HorizontalTextAlignment, Label, Sprite, SpriteFrame, Toggle, tween, UIOpacity } from 'cc';
|
|
|
import { BaseView } from '../../../framework/layer/BaseView';
|
|
|
import { ServerItem } from './ServerItem';
|
|
|
import { AudioID } from '../../../framework/config/AudioConf';
|
|
@@ -7,24 +7,23 @@ import { UserData } from '../../data/UserData';
|
|
|
import List from '../../../framework/list/List';
|
|
|
import { StringUtil } from '../../../framework/util/StringUtil';
|
|
|
import { GameEvent } from '../../data/GameEvent';
|
|
|
+import { LoginMgr } from '../../common/LoginManager';
|
|
|
+import { ServergatewaylistConf } from '../../config/ServergatewaylistConf';
|
|
|
const { ccclass, property } = _decorator;
|
|
|
|
|
|
@ccclass('SelectServer')
|
|
|
export class SelectServer extends BaseView {
|
|
|
- @property({ type: Label, tooltip: "关闭提示" })
|
|
|
- closeTips: Label = null;
|
|
|
-
|
|
|
@property({ type: Label, tooltip: "标题" })
|
|
|
titlteTx: Label = null;
|
|
|
|
|
|
@property({ type: Label, tooltip: "分区文字1" })
|
|
|
- arenaTx1: Label = null;
|
|
|
+ areaTx1: Label = null;
|
|
|
|
|
|
@property({ type: Label, tooltip: "分区文字2" })
|
|
|
- arenaTx2: Label = null;
|
|
|
+ areaTx2: Label = null;
|
|
|
|
|
|
@property({ type: Label, tooltip: "分区文字3" })
|
|
|
- arenaTx3: Label = null;
|
|
|
+ areaTx3: Label = null;
|
|
|
|
|
|
@property({ type: List, tooltip: "服务器组容器" })
|
|
|
serverGroupSv: List = null;
|
|
@@ -38,14 +37,14 @@ export class SelectServer extends BaseView {
|
|
|
private Server_data = null;
|
|
|
private tabulation = 'recently_login';
|
|
|
private initialized = false;//首次刷新标记
|
|
|
+ private areaId = '1';
|
|
|
|
|
|
protected onLoad() {
|
|
|
super.onLoad();
|
|
|
- this.closeTips.string = StringUtil.getLanguageData('点击空白关闭');
|
|
|
- this.titlteTx.string = StringUtil.getLanguageData('邮件');
|
|
|
- this.closeTips.node.getComponent(UIOpacity).opacity = 0;
|
|
|
+ this.titlteTx.string = StringUtil.getLanguageData('选择服务器');
|
|
|
|
|
|
Framework.event.addEvent(GameEvent.SelectServer, () => {
|
|
|
+ UserData.setAreanId(this.areaId);
|
|
|
Framework.layer.close(this);
|
|
|
}, this);
|
|
|
|
|
@@ -57,58 +56,7 @@ export class SelectServer extends BaseView {
|
|
|
|
|
|
//UI开打时会调用,如果有初始化代码应该放到此函数
|
|
|
onOpen() {
|
|
|
- tween(this.closeTips.node.getComponent(UIOpacity))
|
|
|
- .to(1, { opacity: 255 })
|
|
|
- .to(1.2, { opacity: 10 })
|
|
|
- .union()
|
|
|
- .repeatForever()
|
|
|
- .start()
|
|
|
-
|
|
|
-
|
|
|
- let roles = UserData.getRoleServers();
|
|
|
- if (roles.length != 0) {
|
|
|
- let roleList = [];
|
|
|
- for (const v of roles) {
|
|
|
- if (v && v.sid) {
|
|
|
- roleList.push(v);
|
|
|
- }
|
|
|
- }
|
|
|
- this.groupList.push({ name: 'lately', data: [roleList[0]] });
|
|
|
- this.groupList.push({ name: 'user', data: roleList });
|
|
|
- } else {
|
|
|
- let recmds = UserData.getRecmdServers();
|
|
|
- if (recmds.length != 0) {
|
|
|
- let recommendList = [];
|
|
|
- for (const v of recmds) {
|
|
|
- if (v && v.sid) {
|
|
|
- recommendList.push(v);
|
|
|
- }
|
|
|
- }
|
|
|
- this.groupList.push({ name: 'recommend', data: recommendList });
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- let allList = UserData.getAllServers();
|
|
|
- let num = 0;
|
|
|
- let idx = 1;
|
|
|
- let serverList = {};
|
|
|
- for (let list in allList) {
|
|
|
- num++;
|
|
|
- if (!serverList[idx]) {
|
|
|
- serverList[idx] = []
|
|
|
- }
|
|
|
- if (num == 10) {
|
|
|
- idx++
|
|
|
- num = 0;
|
|
|
- }
|
|
|
- serverList[idx].push(allList[list])
|
|
|
- }
|
|
|
- for (const key in serverList) {
|
|
|
- const element = serverList[key];
|
|
|
- this.groupList.push({ name: Number(key) * 10, data: element });
|
|
|
- }
|
|
|
-
|
|
|
- this.serverGroupSv.numItems = this.groupList.length;
|
|
|
+ this.updateUI()
|
|
|
}
|
|
|
|
|
|
// serverTab(event: Event) {
|
|
@@ -153,40 +101,121 @@ export class SelectServer extends BaseView {
|
|
|
let target: any = event.target;
|
|
|
if (target.name == 'serverItem') {
|
|
|
let idx = target.getChildByName('Index').getComponent(Label).string
|
|
|
- } else if (target.name == 'mask') {
|
|
|
+ } else if (target.name == 'close_btn') {
|
|
|
Framework.layer.close(this)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- onEventSelectArena(target: Toggle, customEventData: string) {
|
|
|
+ updateUI() {
|
|
|
+ this.groupList = [];
|
|
|
+ let roles = UserData.getRoleServers();
|
|
|
+ if (roles.length != 0) {
|
|
|
+ let roleList = [];
|
|
|
+ for (const v of roles) {
|
|
|
+ if (v && v.sid) {
|
|
|
+ roleList.push(v);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.groupList.push({ name: 'lately', data: [roleList[0]] });
|
|
|
+ this.groupList.push({ name: 'user', data: roleList });
|
|
|
+ } else {
|
|
|
+ let recmds = UserData.getRecmdServers();
|
|
|
+ if (recmds.length != 0) {
|
|
|
+ let recommendList = [];
|
|
|
+ for (const v of recmds) {
|
|
|
+ if (v && v.sid) {
|
|
|
+ recommendList.push(v);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.groupList.push({ name: 'recommend', data: recommendList });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ let allList = UserData.getAllServers();
|
|
|
+ let num = 0;
|
|
|
+ let idx = 1;
|
|
|
+ let serverList = {};
|
|
|
+ for (let list in allList) {
|
|
|
+ num++;
|
|
|
+ if (!serverList[idx]) {
|
|
|
+ serverList[idx] = []
|
|
|
+ }
|
|
|
+ if (num == 10) {
|
|
|
+ idx++
|
|
|
+ num = 0;
|
|
|
+ }
|
|
|
+ serverList[idx].push(allList[list])
|
|
|
+ }
|
|
|
+ for (const key in serverList) {
|
|
|
+ const element = serverList[key];
|
|
|
+ this.groupList.push({ name: Number(key) * 10, data: element });
|
|
|
+ }
|
|
|
+
|
|
|
+ this.serverGroupSv.numItems = this.groupList.length;
|
|
|
+ }
|
|
|
+
|
|
|
+ onEventSelectArea(target: Toggle, customEventData: string) {
|
|
|
if (target.isChecked) {
|
|
|
console.log('============== 大区id', customEventData)
|
|
|
+ let url = ServergatewaylistConf.data.debug['Url' + customEventData];
|
|
|
+
|
|
|
+ let loginData = {
|
|
|
+ url: url,
|
|
|
+ uid: UserData.save_locally('UserID'),
|
|
|
+ }
|
|
|
+ UserData.setAreanId(this.areaId);
|
|
|
+ LoginMgr.getServerList((data) => {
|
|
|
+ if (data) {
|
|
|
+ UserData.parseLoginData(data);
|
|
|
+ this.updateUI();
|
|
|
+ }
|
|
|
+ }, loginData)
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
onEventSelectGroup(target: Toggle) {
|
|
|
+ let selectPoint = target.node.getChildByName('select_point').getComponent(Sprite);
|
|
|
if (target.isChecked) {
|
|
|
let idx = Number(target.node.name);
|
|
|
this.serverList = this.groupList[idx].data;
|
|
|
this.serverItemSv.numItems = this.groupList[idx].data.length;
|
|
|
+ this.load('package', 'texture/login/area_select_point/spriteFrame', SpriteFrame, (res: SpriteFrame) => {
|
|
|
+ selectPoint.getComponent(Sprite).spriteFrame = res;
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ this.load('package', 'texture/login/area_bg_point/spriteFrame', SpriteFrame, (res: SpriteFrame) => {
|
|
|
+ selectPoint.getComponent(Sprite).spriteFrame = res;
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
// 列表渲染
|
|
|
onServerListEvent(item, idx) {
|
|
|
item.name = String(idx);
|
|
|
let nameTx = item.getChildByName('name_tx').getComponent(Label);
|
|
|
+ let selectPoint = item.getChildByName('select_point');
|
|
|
let gData = this.groupList[idx]
|
|
|
if (gData.name == 'lately') {
|
|
|
+ selectPoint.active = false;
|
|
|
+ nameTx.node.setPosition(0, 6);
|
|
|
+ nameTx.horizontalAlign = HorizontalTextAlignment.CENTER;
|
|
|
+ nameTx.fontSize = 26;
|
|
|
nameTx.string = StringUtil.getLanguageData('最近登录');
|
|
|
this.initialized = true;
|
|
|
item.getComponent(Toggle).isChecked = false;
|
|
|
item.getComponent(Toggle).isChecked = true;
|
|
|
} else if (gData.name == 'user') {
|
|
|
+ selectPoint.active = false;
|
|
|
+ nameTx.node.setPosition(0, 6);
|
|
|
+ nameTx.horizontalAlign = HorizontalTextAlignment.CENTER;
|
|
|
+ nameTx.fontSize = 26;
|
|
|
nameTx.string = StringUtil.getLanguageData('拥有角色');
|
|
|
} else if (gData.name == 'recommend') {
|
|
|
+ selectPoint.active = false;
|
|
|
+ nameTx.node.setPosition(0, 6);
|
|
|
+ nameTx.horizontalAlign = HorizontalTextAlignment.CENTER;
|
|
|
+ nameTx.fontSize = 26;
|
|
|
nameTx.string = StringUtil.getLanguageData('推荐服务器');
|
|
|
if (!this.initialized) {
|
|
|
this.initialized = true
|
|
@@ -194,10 +223,14 @@ export class SelectServer extends BaseView {
|
|
|
item.getComponent(Toggle).isChecked = true;
|
|
|
}
|
|
|
} else {
|
|
|
+ selectPoint.active = true;
|
|
|
+ nameTx.node.setPosition(10, 6);
|
|
|
+ nameTx.horizontalAlign = HorizontalTextAlignment.LEFT;
|
|
|
+ nameTx.fontSize = 22;
|
|
|
if (gData.name > 10) {
|
|
|
- nameTx.string = (gData.name + 1) + "_" + (gData.name + 10)
|
|
|
+ nameTx.string = `${(gData.name + 1) + "_" + (gData.name + 10)}${StringUtil.getLanguageData('区')}`
|
|
|
} else {
|
|
|
- nameTx.string = "1-10";
|
|
|
+ nameTx.string = `1-10${StringUtil.getLanguageData('区')}`;
|
|
|
if (!this.initialized) {
|
|
|
this.initialized = true
|
|
|
item.getComponent(Toggle).isChecked = false;
|