dzduole há 2 semanas atrás
pai
commit
48ed75edfe

BIN
client/laya/bin/asset/fgui/game.obj


BIN
client/laya/bin/asset/fgui/game_atlas0.png


BIN
client/laya/bin/asset/fgui/game_atlas0_2.png


+ 46 - 21
client/laya/bin/js/bundle.js

@@ -5253,13 +5253,7 @@
         }
         show() {
             super.show();
-            this.myIndex = 51;
-            Moyu.getRankList({
-                rankId: xGame.common.curRankID,
-                type: MoyuRankType.total,
-                page: 1,
-                pageSize: 50,
-            }, this, this.updateItemData);
+            this.getPaiHangBangDataFormJosnFile();
             this.updateSelf();
             let self = Moyu.getUserInfo();
             if (!self.isAuth) {
@@ -5268,19 +5262,35 @@
                 });
             }
         }
+        getPaiHangBangDataFormJosnFile() {
+            const rankingList = cfgTable.paiHangBangData.list;
+            this.updateItemData(rankingList);
+        }
         updateSelfItem() {
+            console.log('zh:Moyu.platType =' + Moyu.platType);
             let self = Moyu.getUserInfo();
+            let topX = 10;
             this.ui.myNode.selfNode.c1.selectedIndex = this.myIndex < 4 ? this.myIndex - 1 : 3;
-            this.ui.myNode.selfNode.rankTxt.text = this.myIndex > 50 ? "未上榜" : this.myIndex.toString();
+            this.ui.myNode.selfNode.rankTxt.text = this.myIndex > topX ? "No Rank" : this.myIndex.toString();
+            if (this.myIndex > topX) {
+                this.ui.myNode.selfNode.rankTxt.fontSize = 36;
+            }
+            else {
+                this.ui.myNode.selfNode.rankTxt.fontSize = 30;
+            }
             this.ui.myNode.selfNode.valueTxt.text = this.myStar + "";
-            this.ui.myNode.selfNode.nameTxt.text = Moyu.platType < 11 ? self.nickName : "myself";
+            this.ui.myNode.selfNode.nameTxt.text = 'myself';
             xGame.common.createHead(this.ui.myNode.selfNode.headNode.head.myIcon, self.headIcon);
         }
         updateItemData(data) {
             this.myStar = xGame.common.getAllStarNum();
+            this.myStar = 10;
+            this.myIndex = 3;
             if (this.rankList.length < 2) {
                 this.rankList = data;
                 let self = Moyu.getUserInfo();
+                console.log('zh:myself iuserinfo = ' + JSON.stringify(self));
+                console.log('zh:myself headIcon= ' + self.headIcon);
                 for (let i = 0; i < data.length; i++) {
                     let data = this.rankList[i];
                     if (data.userId == self.userId) {
@@ -5295,6 +5305,7 @@
                         let user = { headIcon: self.headIcon, nickName: "myself" };
                         let ud = { user: user, data: {} };
                         let md = { rankScore: this.myStar.toString(), userId: self.userId, userData: JSON.stringify(ud) };
+                        console.log('zh:Moyu.platType = ' + Moyu.platType);
                         if (Moyu.platType < 11) {
                             user.headIcon = self.headIcon;
                             user.nickName = self.nickName;
@@ -5309,6 +5320,7 @@
         }
         updateItemUI(index, obj) {
             let data = this.rankList[index];
+            console.log('zh:updateItemui  idex = ' + JSON.stringify(data));
             let userData = JSON.parse(data.userData).user;
             obj.nameTxt.text = userData.nickName.toString();
             obj.valueTxt.text = data.rankScore;
@@ -6611,7 +6623,6 @@
             xGame.eventMgr.on(CHANGE_SECRETARY, this, this.changeSecretary);
             let curUse = DataMgr.getCurSecretary();
             this.changeSecretary(curUse);
-            this.ui.rankBtn.visible = false;
             this.ui.talkNode.visible = false;
             let guide = DataMgr.getSkillGuide();
             if (xGame.common.isNewDay && guide == 1) {
@@ -6659,6 +6670,7 @@
             this.addUIClick(this.ui.shopBtn, this.openShopView);
             this.addUIClick(this.ui.signBtn, this.openSignView);
             this.addUIClick(this.ui.drawBtn, this.openDrawView);
+            this.addUIClick(this.ui.rankBtn, this.openRanking);
         }
         show(showFailWords) {
             super.show();
@@ -11363,6 +11375,7 @@
             node.visible = false;
         }
         createHead(loader, url, size = 107) {
+            console.log('zh:createHead url=', url);
             if (Laya.Browser.name == "Browser") {
                 loader.url = url;
                 return;
@@ -20424,13 +20437,7 @@
         }
         show() {
             super.show();
-            this.myIndex = 51;
-            Moyu.getRankList({
-                rankId: xGame.common.curRankID,
-                type: MoyuRankType.total,
-                page: 1,
-                pageSize: 50,
-            }, this, this.updateItemData);
+            this.getPaiHangBangDataFormJosnFile();
             this.updateSelf();
             let self = Moyu.getUserInfo();
             if (!self.isAuth) {
@@ -20439,19 +20446,35 @@
                 });
             }
         }
+        getPaiHangBangDataFormJosnFile() {
+            const rankingList = cfgTable.paiHangBangData.list;
+            this.updateItemData(rankingList);
+        }
         updateSelfItem() {
+            console.log('zh:Moyu.platType =' + Moyu.platType);
             let self = Moyu.getUserInfo();
+            let topX = 10;
             this.ui.myNode.selfNode.c1.selectedIndex = this.myIndex < 4 ? this.myIndex - 1 : 3;
-            this.ui.myNode.selfNode.rankTxt.text = this.myIndex > 50 ? "未上榜" : this.myIndex.toString();
+            this.ui.myNode.selfNode.rankTxt.text = this.myIndex > topX ? "No Rank" : this.myIndex.toString();
+            if (this.myIndex > topX) {
+                this.ui.myNode.selfNode.rankTxt.fontSize = 36;
+            }
+            else {
+                this.ui.myNode.selfNode.rankTxt.fontSize = 30;
+            }
             this.ui.myNode.selfNode.valueTxt.text = this.myStar + "";
-            this.ui.myNode.selfNode.nameTxt.text = Moyu.platType < 11 ? self.nickName : "myself";
+            this.ui.myNode.selfNode.nameTxt.text = 'myself';
             xGame.common.createHead(this.ui.myNode.selfNode.headNode.head.myIcon, self.headIcon);
         }
         updateItemData(data) {
             this.myStar = xGame.common.getAllStarNum();
+            this.myStar = 10;
+            this.myIndex = 3;
             if (this.rankList.length < 2) {
                 this.rankList = data;
                 let self = Moyu.getUserInfo();
+                console.log('zh:myself iuserinfo = ' + JSON.stringify(self));
+                console.log('zh:myself headIcon= ' + self.headIcon);
                 for (let i = 0; i < data.length; i++) {
                     let data = this.rankList[i];
                     if (data.userId == self.userId) {
@@ -20466,6 +20489,7 @@
                         let user = { headIcon: self.headIcon, nickName: "myself" };
                         let ud = { user: user, data: {} };
                         let md = { rankScore: this.myStar.toString(), userId: self.userId, userData: JSON.stringify(ud) };
+                        console.log('zh:Moyu.platType = ' + Moyu.platType);
                         if (Moyu.platType < 11) {
                             user.headIcon = self.headIcon;
                             user.nickName = self.nickName;
@@ -20480,6 +20504,7 @@
         }
         updateItemUI(index, obj) {
             let data = this.rankList[index];
+            console.log('zh:updateItemui  idex = ' + JSON.stringify(data));
             let userData = JSON.parse(data.userData).user;
             obj.nameTxt.text = userData.nickName.toString();
             obj.valueTxt.text = data.rankScore;
@@ -21510,7 +21535,6 @@
             xGame.eventMgr.on(CHANGE_SECRETARY, this, this.changeSecretary);
             let curUse = DataMgr.getCurSecretary();
             this.changeSecretary(curUse);
-            this.ui.rankBtn.visible = false;
             this.ui.talkNode.visible = false;
             let guide = DataMgr.getSkillGuide();
             if (xGame.common.isNewDay && guide == 1) {
@@ -21558,6 +21582,7 @@
             this.addUIClick(this.ui.shopBtn, this.openShopView);
             this.addUIClick(this.ui.signBtn, this.openSignView);
             this.addUIClick(this.ui.drawBtn, this.openDrawView);
+            this.addUIClick(this.ui.rankBtn, this.openRanking);
         }
         show(showFailWords) {
             super.show();
@@ -21911,7 +21936,7 @@
     function getPlat() {
         let cfg = new MoyuCfg();
         cfg.plat = MoyuPlat.web;
-        cfg.myId = 120;
+        cfg.myId = 180;
         cfg.myKey = '8848a885774230a4';
         cfg.version = 0;
         if (window.hasOwnProperty("gamebox")) {

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
client/laya/bin/js/bundle.js.map


+ 937 - 904
client/laya/bin/js/cfgTable.js

@@ -10,990 +10,1023 @@
 
 cfgTable = {}
 //aiskill表数据
-cfgTable.aiskillData={
-    [0]:{
-        victorynum:0,
-        skillselect:['1-20','2-30','3-50','4-20'],
-        skilllevel:[-3,0],
-    },
-    [1]:{
-        victorynum:1,
-        skillselect:['1-30','2-30','3-40','4-20'],
-        skilllevel:[-3,2],
-    },
-    [2]:{
-        victorynum:2,
-        skillselect:['1-40','2-40','3-40','4-40'],
-        skilllevel:[-1,3],
-    },
-    [3]:{
-        victorynum:3,
-        skillselect:['1-50','2-50','3-40','4-40'],
-        skilllevel:[0,3],
-    },
-    [4]:{
-        victorynum:4,
-        skillselect:['1-80','2-70','3-20','4-40'],
-        skilllevel:[1,4],
-    },
-    [5]:{
-        victorynum:5,
-        skillselect:['1-80','2-70','3-20','4-40'],
-        skilllevel:[2,5],
-    },
-    [6]:{
-        victorynum:6,
-        skillselect:['1-90','2-70','3-20','4-40'],
-        skilllevel:[3,6],
-    },
-    [7]:{
-        victorynum:7,
-        skillselect:['1-90','2-70','3-20','4-40'],
-        skilllevel:[4,7],
-    },
-    [8]:{
-        victorynum:8,
-        skillselect:['1-90','2-70','3-50','4-40'],
-        skilllevel:[5,8],
-    },
-    [9]:{
-        victorynum:9,
-        skillselect:['1-90','2-70','3-50','4-40'],
-        skilllevel:[6,9],
+cfgTable.aiskillData = {
+    [0]: {
+        victorynum: 0,
+        skillselect: ['1-20', '2-30', '3-50', '4-20'],
+        skilllevel: [-3, 0],
+    },
+    [1]: {
+        victorynum: 1,
+        skillselect: ['1-30', '2-30', '3-40', '4-20'],
+        skilllevel: [-3, 2],
+    },
+    [2]: {
+        victorynum: 2,
+        skillselect: ['1-40', '2-40', '3-40', '4-40'],
+        skilllevel: [-1, 3],
+    },
+    [3]: {
+        victorynum: 3,
+        skillselect: ['1-50', '2-50', '3-40', '4-40'],
+        skilllevel: [0, 3],
+    },
+    [4]: {
+        victorynum: 4,
+        skillselect: ['1-80', '2-70', '3-20', '4-40'],
+        skilllevel: [1, 4],
+    },
+    [5]: {
+        victorynum: 5,
+        skillselect: ['1-80', '2-70', '3-20', '4-40'],
+        skilllevel: [2, 5],
+    },
+    [6]: {
+        victorynum: 6,
+        skillselect: ['1-90', '2-70', '3-20', '4-40'],
+        skilllevel: [3, 6],
+    },
+    [7]: {
+        victorynum: 7,
+        skillselect: ['1-90', '2-70', '3-20', '4-40'],
+        skilllevel: [4, 7],
+    },
+    [8]: {
+        victorynum: 8,
+        skillselect: ['1-90', '2-70', '3-50', '4-40'],
+        skilllevel: [5, 8],
+    },
+    [9]: {
+        victorynum: 9,
+        skillselect: ['1-90', '2-70', '3-50', '4-40'],
+        skilllevel: [6, 9],
     },
 }
 //ballrod表数据
-cfgTable.ballrodData={
-    [1]:{
-        id:1,
-        name:'Crimson Edge',
-        price:0,
-        describe:'rookie',
-        quality:0,
-        img:'qg0',
-        spine:'',
-        skillLevel:0,
-        sort:1,
-    },
-    [2]:{
-        id:2,
-        name:'Violet Glaze',
-        price:1000,
-        describe:'master',
-        quality:1,
-        img:'qg1',
-        spine:'qiugan1',
-        skillLevel:0,
-        sort:3,
-    },
-    [3]:{
-        id:3,
-        name:'Vine Pact',
-        price:1500,
-        describe:'master',
-        quality:1,
-        img:'qg2',
-        spine:'qiugan2',
-        skillLevel:0,
-        sort:4,
-    },
-    [4]:{
-        id:4,
-        name:'Blaze Chain',
-        price:2000,
-        describe:'master',
-        quality:1,
-        img:'qg3',
-        spine:'qiugan3',
-        skillLevel:0,
-        sort:5,
-    },
-    [5]:{
-        id:5,
-        name:'Dragon Rainbow',
-        price:3000,
-        describe:'legend',
-        quality:2,
-        img:'qg4',
-        spine:'qiugan4',
-        skillLevel:0,
-        sort:6,
-    },
-    [6]:{
-        id:6,
-        name:'Brown Ease',
-        price:0,
-        describe:'rookie',
-        quality:0,
-        img:'qg5',
-        spine:'',
-        skillLevel:0,
-        sort:2,
+cfgTable.ballrodData = {
+    [1]: {
+        id: 1,
+        name: 'Crimson Edge',
+        price: 0,
+        describe: 'rookie',
+        quality: 0,
+        img: 'qg0',
+        spine: '',
+        skillLevel: 0,
+        sort: 1,
+    },
+    [2]: {
+        id: 2,
+        name: 'Violet Glaze',
+        price: 1000,
+        describe: 'master',
+        quality: 1,
+        img: 'qg1',
+        spine: 'qiugan1',
+        skillLevel: 0,
+        sort: 3,
+    },
+    [3]: {
+        id: 3,
+        name: 'Vine Pact',
+        price: 1500,
+        describe: 'master',
+        quality: 1,
+        img: 'qg2',
+        spine: 'qiugan2',
+        skillLevel: 0,
+        sort: 4,
+    },
+    [4]: {
+        id: 4,
+        name: 'Blaze Chain',
+        price: 2000,
+        describe: 'master',
+        quality: 1,
+        img: 'qg3',
+        spine: 'qiugan3',
+        skillLevel: 0,
+        sort: 5,
+    },
+    [5]: {
+        id: 5,
+        name: 'Dragon Rainbow',
+        price: 3000,
+        describe: 'legend',
+        quality: 2,
+        img: 'qg4',
+        spine: 'qiugan4',
+        skillLevel: 0,
+        sort: 6,
+    },
+    [6]: {
+        id: 6,
+        name: 'Brown Ease',
+        price: 0,
+        describe: 'rookie',
+        quality: 0,
+        img: 'qg5',
+        spine: '',
+        skillLevel: 0,
+        sort: 2,
     },
 }
 //bigmove表数据
-cfgTable.bigmoveData={
-    [1]:{
-        level:1,
-        target:20,
+cfgTable.bigmoveData = {
+    [1]: {
+        level: 1,
+        target: 20,
     },
-    [2]:{
-        level:2,
-        target:35,
+    [2]: {
+        level: 2,
+        target: 35,
     },
-    [3]:{
-        level:3,
-        target:20,
+    [3]: {
+        level: 3,
+        target: 20,
     },
-    [4]:{
-        level:4,
-        target:25,
+    [4]: {
+        level: 4,
+        target: 25,
     },
-    [5]:{
-        level:5,
-        target:18,
+    [5]: {
+        level: 5,
+        target: 18,
     },
-    [6]:{
-        level:6,
-        target:20,
+    [6]: {
+        level: 6,
+        target: 20,
     },
-    [7]:{
-        level:7,
-        target:15,
+    [7]: {
+        level: 7,
+        target: 15,
     },
 }
 //classictimes表数据
-cfgTable.classictimesData={
-    [1]:{
-        id:1,
-        name:'Newbie',
-        times:9,
-    },
-    [2]:{
-        id:2,
-        name:'Veteran',
-        times:49,
-    },
-    [3]:{
-        id:3,
-        name:'Master',
-        times:119,
-    },
-    [4]:{
-        id:4,
-        name:'Professional level',
-        times:199,
-    },
-    [5]:{
-        id:5,
-        name:'Pinnacle Master',
-        times:200,
+cfgTable.classictimesData = {
+    [1]: {
+        id: 1,
+        name: 'Newbie',
+        times: 9,
+    },
+    [2]: {
+        id: 2,
+        name: 'Veteran',
+        times: 49,
+    },
+    [3]: {
+        id: 3,
+        name: 'Master',
+        times: 119,
+    },
+    [4]: {
+        id: 4,
+        name: 'Professional level',
+        times: 199,
+    },
+    [5]: {
+        id: 5,
+        name: 'Pinnacle Master',
+        times: 200,
     },
 }
 //draw表数据
-cfgTable.drawData={
-    [1]:{
-        id:1,
-        icon:'qg2',
-        award:4,
-        num:1,
-        weight:0,
-        times:3,
-        nextid:['1','888','hb_zs_5'],
-        rotation:0,
-    },
-    [2]:{
-        id:2,
-        icon:'hb_jb1',
-        award:2,
-        num:1000,
-        weight:50,
-        times:-1,
-        nextid:[''],
-        rotation:-60,
-    },
-    [3]:{
-        id:3,
-        icon:'hb_jb2',
-        award:2,
-        num:6666,
-        weight:45,
-        times:-1,
-        nextid:[''],
-        rotation:-120,
-    },
-    [4]:{
-        id:4,
-        icon:'hb_zs_1',
-        award:1,
-        num:200,
-        weight:30,
-        times:-1,
-        nextid:[''],
-        rotation:180,
-    },
-    [5]:{
-        id:5,
-        icon:'hb_jb3',
-        award:2,
-        num:10000,
-        weight:20,
-        times:-1,
-        nextid:[''],
-        rotation:120,
-    },
-    [6]:{
-        id:6,
-        icon:'hb_zs_3',
-        award:1,
-        num:500,
-        weight:10,
-        times:-1,
-        nextid:[''],
-        rotation:60,
+cfgTable.drawData = {
+    [1]: {
+        id: 1,
+        icon: 'qg2',
+        award: 4,
+        num: 1,
+        weight: 0,
+        times: 3,
+        nextid: ['1', '888', 'hb_zs_5'],
+        rotation: 0,
+    },
+    [2]: {
+        id: 2,
+        icon: 'hb_jb1',
+        award: 2,
+        num: 1000,
+        weight: 50,
+        times: -1,
+        nextid: [''],
+        rotation: -60,
+    },
+    [3]: {
+        id: 3,
+        icon: 'hb_jb2',
+        award: 2,
+        num: 6666,
+        weight: 45,
+        times: -1,
+        nextid: [''],
+        rotation: -120,
+    },
+    [4]: {
+        id: 4,
+        icon: 'hb_zs_1',
+        award: 1,
+        num: 200,
+        weight: 30,
+        times: -1,
+        nextid: [''],
+        rotation: 180,
+    },
+    [5]: {
+        id: 5,
+        icon: 'hb_jb3',
+        award: 2,
+        num: 10000,
+        weight: 20,
+        times: -1,
+        nextid: [''],
+        rotation: 120,
+    },
+    [6]: {
+        id: 6,
+        icon: 'hb_zs_3',
+        award: 1,
+        num: 500,
+        weight: 10,
+        times: -1,
+        nextid: [''],
+        rotation: 60,
     },
 }
 //emotion表数据
-cfgTable.emotionData={
-    [1]:{
-        id:1,
-        icon:'yxz_bqb1',
-        spine:'kuxiao',
-    },
-    [2]:{
-        id:2,
-        icon:'yxz_bqb2',
-        spine:'kanshouji',
-    },
-    [3]:{
-        id:3,
-        icon:'yxz_bqb3',
-        spine:'wunai',
-    },
-    [4]:{
-        id:4,
-        icon:'yxz_bqb4',
-        spine:'wenhao',
-    },
-    [5]:{
-        id:5,
-        icon:'yxz_bqb5',
-        spine:'weixiao',
-    },
-    [6]:{
-        id:6,
-        icon:'yxz_bqb6',
-        spine:'zhoumei',
-    },
-    [7]:{
-        id:7,
-        icon:'yxz_bqb7',
-        spine:'wa',
-    },
-    [8]:{
-        id:8,
-        icon:'yxz_bqb8',
-        spine:'xiaolian',
+cfgTable.emotionData = {
+    [1]: {
+        id: 1,
+        icon: 'yxz_bqb1',
+        spine: 'kuxiao',
+    },
+    [2]: {
+        id: 2,
+        icon: 'yxz_bqb2',
+        spine: 'kanshouji',
+    },
+    [3]: {
+        id: 3,
+        icon: 'yxz_bqb3',
+        spine: 'wunai',
+    },
+    [4]: {
+        id: 4,
+        icon: 'yxz_bqb4',
+        spine: 'wenhao',
+    },
+    [5]: {
+        id: 5,
+        icon: 'yxz_bqb5',
+        spine: 'weixiao',
+    },
+    [6]: {
+        id: 6,
+        icon: 'yxz_bqb6',
+        spine: 'zhoumei',
+    },
+    [7]: {
+        id: 7,
+        icon: 'yxz_bqb7',
+        spine: 'wa',
+    },
+    [8]: {
+        id: 8,
+        icon: 'yxz_bqb8',
+        spine: 'xiaolian',
     }
-    
+
 }
 //modeselect表数据
-cfgTable.modeselectData={
-    [1]:{
-        id:1,
-        need:500,
-        award:1000,
-        aiLevel:[1,3],
-    },
-    [2]:{
-        id:2,
-        need:1000,
-        award:2000,
-        aiLevel:[4,7],
-    },
-    [3]:{
-        id:3,
-        need:2000,
-        award:3000,
-        aiLevel:[8,10],
+cfgTable.modeselectData = {
+    [1]: {
+        id: 1,
+        need: 500,
+        award: 1000,
+        aiLevel: [1, 3],
+    },
+    [2]: {
+        id: 2,
+        need: 1000,
+        award: 2000,
+        aiLevel: [4, 7],
+    },
+    [3]: {
+        id: 3,
+        need: 2000,
+        award: 3000,
+        aiLevel: [8, 10],
     },
 }
 //money表数据
-cfgTable.moneyData={
-    [1]:{
-        id:1,
-        type:'diamond',
-        get:'share',
-        num:15,
-    },
-    [2]:{
-        id:2,
-        type:'diamond',
-        get:'video',
-        num:50,
-    },
-    [3]:{
-        id:3,
-        type:'coin',
-        get:'diamond_50',
-        num:2000,
-    },
-    [4]:{
-        id:4,
-        type:'coin',
-        get:'diamond_100',
-        num:5000,
-    },
-    [5]:{
-        id:5,
-        type:'coin',
-        get:'diamond_200',
-        num:12000,
+cfgTable.moneyData = {
+    [1]: {
+        id: 1,
+        type: 'diamond',
+        get: 'share',
+        num: 15,
+    },
+    [2]: {
+        id: 2,
+        type: 'diamond',
+        get: 'video',
+        num: 50,
+    },
+    [3]: {
+        id: 3,
+        type: 'coin',
+        get: 'diamond_50',
+        num: 2000,
+    },
+    [4]: {
+        id: 4,
+        type: 'coin',
+        get: 'diamond_100',
+        num: 5000,
+    },
+    [5]: {
+        id: 5,
+        type: 'coin',
+        get: 'diamond_200',
+        num: 12000,
     },
 }
 //placeball表数据
-cfgTable.placeballData={
-    [1]:{
-        id:1,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [2]:{
-        id:2,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [3]:{
-        id:3,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [4]:{
-        id:4,
-        type:1,
-        ball:10,
-        hp:4,
-        award:[0,50],
-    },
-    [5]:{
-        id:5,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [6]:{
-        id:6,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [7]:{
-        id:7,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [8]:{
-        id:8,
-        type:1,
-        ball:15,
-        hp:4,
-        award:[0,50],
-    },
-    [9]:{
-        id:9,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [10]:{
-        id:10,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [11]:{
-        id:11,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [12]:{
-        id:12,
-        type:1,
-        ball:15,
-        hp:4,
-        award:[0,50],
-    },
-    [13]:{
-        id:13,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [14]:{
-        id:14,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [15]:{
-        id:15,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [16]:{
-        id:16,
-        type:1,
-        ball:20,
-        hp:4,
-        award:[0,50],
-    },
-    [17]:{
-        id:17,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [18]:{
-        id:18,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [19]:{
-        id:19,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [20]:{
-        id:20,
-        type:1,
-        ball:15,
-        hp:4,
-        award:[0,50],
-    },
-    [21]:{
-        id:21,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [22]:{
-        id:22,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [23]:{
-        id:23,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [24]:{
-        id:24,
-        type:1,
-        ball:15,
-        hp:4,
-        award:[0,50],
-    },
-    [25]:{
-        id:25,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [26]:{
-        id:26,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [27]:{
-        id:27,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [28]:{
-        id:28,
-        type:1,
-        ball:15,
-        hp:4,
-        award:[0,50],
-    },
-    [29]:{
-        id:29,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [30]:{
-        id:30,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [31]:{
-        id:31,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [32]:{
-        id:32,
-        type:1,
-        ball:15,
-        hp:4,
-        award:[0,50],
-    },
-    [33]:{
-        id:33,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [34]:{
-        id:34,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [35]:{
-        id:35,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [36]:{
-        id:36,
-        type:1,
-        ball:15,
-        hp:4,
-        award:[0,50],
-    },
-    [37]:{
-        id:37,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [38]:{
-        id:38,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [39]:{
-        id:39,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [40]:{
-        id:40,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [41]:{
-        id:41,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [42]:{
-        id:42,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [43]:{
-        id:43,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [44]:{
-        id:44,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [45]:{
-        id:45,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [46]:{
-        id:46,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [47]:{
-        id:47,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [48]:{
-        id:48,
-        type:1,
-        ball:15,
-        hp:4,
-        award:[0,50],
-    },
-    [49]:{
-        id:49,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [50]:{
-        id:50,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [51]:{
-        id:51,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [52]:{
-        id:52,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [53]:{
-        id:53,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [54]:{
-        id:54,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [55]:{
-        id:55,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [56]:{
-        id:56,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [57]:{
-        id:57,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [58]:{
-        id:58,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [59]:{
-        id:59,
-        type:0,
-        ball:-1,
-        hp:4,
-        award:[800,5],
-    },
-    [60]:{
-        id:60,
-        type:1,
-        ball:20,
-        hp:4,
-        award:[0,50],
+cfgTable.placeballData = {
+    [1]: {
+        id: 1,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [2]: {
+        id: 2,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [3]: {
+        id: 3,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [4]: {
+        id: 4,
+        type: 1,
+        ball: 10,
+        hp: 4,
+        award: [0, 50],
+    },
+    [5]: {
+        id: 5,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [6]: {
+        id: 6,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [7]: {
+        id: 7,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [8]: {
+        id: 8,
+        type: 1,
+        ball: 15,
+        hp: 4,
+        award: [0, 50],
+    },
+    [9]: {
+        id: 9,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [10]: {
+        id: 10,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [11]: {
+        id: 11,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [12]: {
+        id: 12,
+        type: 1,
+        ball: 15,
+        hp: 4,
+        award: [0, 50],
+    },
+    [13]: {
+        id: 13,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [14]: {
+        id: 14,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [15]: {
+        id: 15,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [16]: {
+        id: 16,
+        type: 1,
+        ball: 20,
+        hp: 4,
+        award: [0, 50],
+    },
+    [17]: {
+        id: 17,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [18]: {
+        id: 18,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [19]: {
+        id: 19,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [20]: {
+        id: 20,
+        type: 1,
+        ball: 15,
+        hp: 4,
+        award: [0, 50],
+    },
+    [21]: {
+        id: 21,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [22]: {
+        id: 22,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [23]: {
+        id: 23,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [24]: {
+        id: 24,
+        type: 1,
+        ball: 15,
+        hp: 4,
+        award: [0, 50],
+    },
+    [25]: {
+        id: 25,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [26]: {
+        id: 26,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [27]: {
+        id: 27,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [28]: {
+        id: 28,
+        type: 1,
+        ball: 15,
+        hp: 4,
+        award: [0, 50],
+    },
+    [29]: {
+        id: 29,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [30]: {
+        id: 30,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [31]: {
+        id: 31,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [32]: {
+        id: 32,
+        type: 1,
+        ball: 15,
+        hp: 4,
+        award: [0, 50],
+    },
+    [33]: {
+        id: 33,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [34]: {
+        id: 34,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [35]: {
+        id: 35,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [36]: {
+        id: 36,
+        type: 1,
+        ball: 15,
+        hp: 4,
+        award: [0, 50],
+    },
+    [37]: {
+        id: 37,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [38]: {
+        id: 38,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [39]: {
+        id: 39,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [40]: {
+        id: 40,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [41]: {
+        id: 41,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [42]: {
+        id: 42,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [43]: {
+        id: 43,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [44]: {
+        id: 44,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [45]: {
+        id: 45,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [46]: {
+        id: 46,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [47]: {
+        id: 47,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [48]: {
+        id: 48,
+        type: 1,
+        ball: 15,
+        hp: 4,
+        award: [0, 50],
+    },
+    [49]: {
+        id: 49,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [50]: {
+        id: 50,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [51]: {
+        id: 51,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [52]: {
+        id: 52,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [53]: {
+        id: 53,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [54]: {
+        id: 54,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [55]: {
+        id: 55,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [56]: {
+        id: 56,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [57]: {
+        id: 57,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [58]: {
+        id: 58,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [59]: {
+        id: 59,
+        type: 0,
+        ball: -1,
+        hp: 4,
+        award: [800, 5],
+    },
+    [60]: {
+        id: 60,
+        type: 1,
+        ball: 20,
+        hp: 4,
+        award: [0, 50],
     },
 }
 //secretary表数据
-cfgTable.secretaryData={
-    [1]:{
-        id:1,
-        msg:'Welcome back, boss',
+cfgTable.secretaryData = {
+    [1]: {
+        id: 1,
+        msg: 'Welcome back, boss',
     },
-    [2]:{
-        id:2,
-        msg:'Strengthening the pole method will make you stronger, boss',
+    [2]: {
+        id: 2,
+        msg: 'Strengthening the pole method will make you stronger, boss',
     },
-    [3]:{
-        id:3,
-        msg:'What color does the boss like?',
+    [3]: {
+        id: 3,
+        msg: 'What color does the boss like?',
     },
-    [4]:{
-        id:4,
-        msg:'Don\'t worry, I won\'t take a leave',
+    [4]: {
+        id: 4,
+        msg: 'Don\'t worry, I won\'t take a leave',
     },
-    [5]:{
-        id:5,
-        msg:'After wiping my glasses, I felt clearer looking at the boss',
+    [5]: {
+        id: 5,
+        msg: 'After wiping my glasses, I felt clearer looking at the boss',
     },
-    [6]:{
-        id:6,
-        msg:'Eating grapes without vomiting Oh, I accidentally said something',
+    [6]: {
+        id: 6,
+        msg: 'Eating grapes without vomiting Oh, I accidentally said something',
     },
-    [7]:{
-        id:7,
-        msg:'Is the boss still there ...? Fortunately, my collar was crooked and I wasn\'t seen',
+    [7]: {
+        id: 7,
+        msg: 'Is the boss still there ...? Fortunately, my collar was crooked and I wasn\'t seen',
     },
-    [8]:{
-        id:8,
-        msg:'Truly worthy of being the boss! You played too well'
+    [8]: {
+        id: 8,
+        msg: 'Truly worthy of being the boss! You played too well'
     },
-    [9]:{
-        id:9,
-        msg:'It\'s okay, the boss has already played very well'
+    [9]: {
+        id: 9,
+        msg: 'It\'s okay, the boss has already played very well'
     },
-    [10]:{
-        id:10,
-        msg:'Please claim today\'s reward'
+    [10]: {
+        id: 10,
+        msg: 'Please claim today\'s reward'
     },
-    [11]:{
-        id:11,
-        msg:'Your luck is amazing!'
+    [11]: {
+        id: 11,
+        msg: 'Your luck is amazing!'
     },
-    [12]:{
-        id:12,
-        msg:'These are all the boss\'s tricks'
+    [12]: {
+        id: 12,
+        msg: 'These are all the boss\'s tricks'
     },
-    [13]:{
-        id:13,
-        msg:'come on! I have confidence in you'
+    [13]: {
+        id: 13,
+        msg: 'come on! I have confidence in you'
     },
-    [14]:{
-        id:14,
-        msg:'I can\'t wait to see your performance'
+    [14]: {
+        id: 14,
+        msg: 'I can\'t wait to see your performance'
     },
-    [15]:{
-        id:15,
-        msg:'It\'s also good to come to the mall occasionally to take a look'
+    [15]: {
+        id: 15,
+        msg: 'It\'s also good to come to the mall occasionally to take a look'
     },
-    [16]:{
-        id:16,
-        msg:'Boss, you are here. I am your exclusive secretary, Luna'
+    [16]: {
+        id: 16,
+        msg: 'Boss, you are here. I am your exclusive secretary, Luna'
     },
 }
 //secretaryshop表数据
-cfgTable.secretaryshopData={
-    [1]:{
-        id:1,
-        name:'Luna',
-        height:'164',
-        food:'Pizza,Cake',
-        history:'Luna is a smart, clever, and caring secretary. She is diligent and responsible at work, hoping to achieve a happy life through her own efforts. Everyone likes her very much.',
-        price:2000,
-        nameImg:'xiaoning',
-        spine:'mishu',
+cfgTable.secretaryshopData = {
+    [1]: {
+        id: 1,
+        name: 'Luna',
+        height: '164',
+        food: 'Pizza,Cake',
+        history: 'Luna is a smart, clever, and caring secretary. She is diligent and responsible at work, hoping to achieve a happy life through her own efforts. Everyone likes her very much.',
+        price: 2000,
+        nameImg: 'xiaoning',
+        spine: 'mishu',
     }
 }
 //sign表数据
-cfgTable.signData={
-    [1]:{
-        id:1,
-        icon:['hb_jb1'],
-        title:'Day1',
-        award:['2-2000'],
-    },
-    [2]:{
-        id:2,
-        icon:['qg1'],
-        title:'Day2',
-        award:['3-1'],
-    },
-    [3]:{
-        id:3,
-        icon:['hb_zs_1'],
-        title:'Day3',
-        award:['1-100'],
-    },
-    [4]:{
-        id:4,
-        icon:['hb_jb2'],
-        title:'Day4',
-        award:['2-5000'],
-    },
-    [5]:{
-        id:5,
-        icon:['hb_zs_3'],
-        title:'Day5',
-        award:['1-150'],
-    },
-    [6]:{
-        id:6,
-        icon:['hb_jb3'],
-        title:'Day6',
-        award:['2-8000'],
-    },
-    [7]:{
-        id:7,
-        icon:['hb_zs_5','hb_jb3'],
-        title:'Day7',
-        award:['1-300','2-10000'],
+cfgTable.signData = {
+    [1]: {
+        id: 1,
+        icon: ['hb_jb1'],
+        title: 'Day1',
+        award: ['2-2000'],
+    },
+    [2]: {
+        id: 2,
+        icon: ['qg1'],
+        title: 'Day2',
+        award: ['3-1'],
+    },
+    [3]: {
+        id: 3,
+        icon: ['hb_zs_1'],
+        title: 'Day3',
+        award: ['1-100'],
+    },
+    [4]: {
+        id: 4,
+        icon: ['hb_jb2'],
+        title: 'Day4',
+        award: ['2-5000'],
+    },
+    [5]: {
+        id: 5,
+        icon: ['hb_zs_3'],
+        title: 'Day5',
+        award: ['1-150'],
+    },
+    [6]: {
+        id: 6,
+        icon: ['hb_jb3'],
+        title: 'Day6',
+        award: ['2-8000'],
+    },
+    [7]: {
+        id: 7,
+        icon: ['hb_zs_5', 'hb_jb3'],
+        title: 'Day7',
+        award: ['1-300', '2-10000'],
     },
 }
 //talkwords表数据
-cfgTable.talkwordsData={
-    [1]:{
-        id:1,
-        msg:'Good shot',
+cfgTable.talkwordsData = {
+    [1]: {
+        id: 1,
+        msg: 'Good shot',
     },
-    [2]:{
-        id:2,
-        msg:'Thank you',
+    [2]: {
+        id: 2,
+        msg: 'Thank you',
     },
-    [3]:{
-        id:3,
-        msg:'Give you a shot',
+    [3]: {
+        id: 3,
+        msg: 'Give you a shot',
     },
-    [4]:{
-        id:4,
-        msg:'Look at me!',
+    [4]: {
+        id: 4,
+        msg: 'Look at me!',
     },
-    [5]:{
-        id:5,
-        msg:'I am the true king.',
+    [5]: {
+        id: 5,
+        msg: 'I am the true king.',
     },
-    [6]:{
-        id:6,
-        msg:'hello',
+    [6]: {
+        id: 6,
+        msg: 'hello',
     },
-    [7]:{
-        id:7,
-        msg:'What a talented person!',
+    [7]: {
+        id: 7,
+        msg: 'What a talented person!',
     },
-    [8]:{
-        id:8,
-        msg:'Goodbye',
+    [8]: {
+        id: 8,
+        msg: 'Goodbye',
     },
 }
 //words表数据
-cfgTable.wordsData={
-    [1]:{
-        id:1,
-        msg:'Opponent broke. You shoot next. Target: Solid Balls.',
+cfgTable.wordsData = {
+    [1]: {
+        id: 1,
+        msg: 'Opponent broke. You shoot next. Target: Solid Balls.',
     },
-    [2]:{
-        id:2,
-        msg:'Opponent broke. You shoot next. Target: Striped Balls',
+    [2]: {
+        id: 2,
+        msg: 'Opponent broke. You shoot next. Target: Striped Balls',
     },
-    [3]:{
-        id:3,
-        msg:'Break successful. Target: Solid Balls.',
+    [3]: {
+        id: 3,
+        msg: 'Break successful. Target: Solid Balls.',
     },
-    [4]:{
-        id:4,
-        msg:'The break was successful, and your objective for this round is to pocket the [striped/solid/colored] balls.',
+    [4]: {
+        id: 4,
+        msg: 'The break was successful, and your objective for this round is to pocket the [striped/solid/colored] balls.',
     },
-    [5]:{
-        id:5,
-        msg:'Opponent fouled (# of $). Your turn.',
+    [5]: {
+        id: 5,
+        msg: 'Opponent fouled (# of $). Your turn.',
     },
-    [6]:{
-        id:6,
-        msg:'Foul. Opponent racks. Fouls: # of $.',
+    [6]: {
+        id: 6,
+        msg: 'Foul. Opponent racks. Fouls: # of $.',
     },
-    [7]:{
-        id:7,
-        msg:'No ball scored; turn exchanges.',
+    [7]: {
+        id: 7,
+        msg: 'No ball scored; turn exchanges.',
     },
-    [8]:{
-        id:8,
-        msg:'The black ball is pocketed, and the game ends.',
+    [8]: {
+        id: 8,
+        msg: 'The black ball is pocketed, and the game ends.',
     },
-    [9]:{
-        id:9,
-        msg:'This game will kick off for you first',
+    [9]: {
+        id: 9,
+        msg: 'This game will kick off for you first',
     },
-    [10]:{
-        id:10,
-        msg:'This game will kick off for the opponent first',
+    [10]: {
+        id: 10,
+        msg: 'This game will kick off for the opponent first',
     },
-    [11]:{
-        id:11,
-        msg:'If you pot a non-target ball, the turn switches to your opponent.',
+    [11]: {
+        id: 11,
+        msg: 'If you pot a non-target ball, the turn switches to your opponent.',
     },
-    [12]:{
-        id:12,
-        msg:'Your opponent\'s white ball went in the pocket, +3 points for you.',
+    [12]: {
+        id: 12,
+        msg: 'Your opponent\'s white ball went in the pocket, +3 points for you.',
     },
-    [13]:{
-        id:13,
-        msg:'You pocketed the white ball, so your opponent gets +3 points.',
+    [13]: {
+        id: 13,
+        msg: 'You pocketed the white ball, so your opponent gets +3 points.',
     },
-    [14]:{
-        id:14,
-        msg:'Your opponent timed out on the shot, +3 points for you.',
+    [14]: {
+        id: 14,
+        msg: 'Your opponent timed out on the shot, +3 points for you.',
     },
-    [15]:{
-        id:15,
-        msg:'You timed out, +3 points for your opponent.',
+    [15]: {
+        id: 15,
+        msg: 'You timed out, +3 points for your opponent.',
     },
 }
+
+//排行榜数据
+cfgTable.paiHangBangData = {
+		"list": [{
+			"rankScore": "170",
+			"userId": "my1204nv7opn0j0ruz0u",
+			"userData": "{\"user\":{\"userId\":\"my1204nv7opn0j0ruz0u\",\"nickName\":\"晴1天2江3龙\",\"headIcon\":\"https://userglobal-vivofs.vivo.com.cn/RnRBscqz28sppmra/defaultimage/20201014150605/5284e6e3ffdef34e432588ec2aaa822ds.png\"}}"
+		}, {
+			"rankScore": "168",
+			"userId": "my1208tvwh3z7ttej5hk",
+			"userData": "{\"user\":{\"userId\":\"my1208tvwh3z7ttej5hk\",\"nickName\":\"冷酷小帅\",\"headIcon\":\"https://p4-pro.a.yximgs.com/uhead/AB/2024/08/18/21/BMjAyNDA4MTgyMTQ0NTZfMzE3MTY0MTU3OV8yX2hkODE1XzkxMA==_s.jpg\"}}"
+		}, {
+			"rankScore": "166",
+			"userId": "my120yfv7bdb7imrttd1",
+			"userData": "{\"user\":{\"userId\":\"my120yfv7bdb7imrttd1\",\"nickName\":\":-(蓦然*沧桑:-)\",\"headIcon\":\"https://p2-pro.a.yximgs.com/uhead/AB/2020/07/16/01/BMjAyMDA3MTYwMTIzNDRfNTUyMzg4NTQ5XzJfaGQxODVfMjE5_s.jpg\"}}"
+		}, {
+			"rankScore": "150",
+			"userId": "my120hb47wlqv8ujmdle",
+			"userData": "{\"user\":{\"userId\":\"my120hb47wlqv8ujmdle\",\"nickName\":\"騰 少\",\"headIcon\":\"https://p2-pro.a.yximgs.com/uhead/AB/2025/04/05/19/BMjAyNTA0MDUxOTM3NThfMTg3MTAzMjM2MV8yX2hkNzQ5XzU0MA==_s.jpg\"}}"
+		}, {
+			"rankScore": "148",
+			"userId": "my120e8bbxhv8rjxml2h",
+			"userData": "{\"user\":{\"userId\":\"my120e8bbxhv8rjxml2h\",\"nickName\":\"7/.祥的第七章\",\"headIcon\":\"https://p5-pro.a.yximgs.com/uhead/AB/2024/03/01/20/BMjAyNDAzMDEyMDExMTZfMjkyMzUyNTk3NV8yX2hkOTE1XzUxMQ==_s.jpg\"}}"
+		}, {
+			"rankScore": "158",
+			"userId": "my1206pfouw21pfcupwd",
+			"userData": "{\"user\":{\"userId\":\"my1206pfouw21pfcupwd\",\"nickName\":\"yuwen\",\"headIcon\":\"https://userglobal-vivofs.vivo.com.cn/RnRBscqz28sppmra/defaultimage/20201014150303/6a1892a54ff5bd641593b210e4eef043s.png\"}}"
+		}],
+		"lastScore": "111",
+		"type": "total",
+		"rankId": "12000"
+	
+}

+ 92 - 87
client/laya/bin/libs/moyu.js

@@ -1,4 +1,4 @@
-! function() {
+! function () {
 	"use strict";
 	class t {
 		static getHost() {
@@ -46,7 +46,7 @@
 				n = window,
 				r = n["XML" + this.hKey + "Request"];
 			if (r ? a = new r : n.ActiveXObject && (a = new ActiveXObject("Microsoft.XML" + this.hKey.toUpperCase())), !a) return console.log("sender is null"), void s(null);
-			a.onload = function() {
+			a.onload = function () {
 				if (200 == a.status) {
 					if (a.responseText && "" != a.responseText) {
 						let t;
@@ -71,16 +71,16 @@
 			for ((t = new Uint8Array(n << 2)).set(new Uint8Array(a.buffer)), t = new Uint32Array(t.buffer), i = new DataView(t.buffer), e = 0; e < n; e++) t[e] = i.getUint32(e << 2);
 			t[a.length >> 2] |= 128 << 24 - 8 * (3 & a.length), t[n - 1] = a.length << 3;
 			var r = [],
-				o = [function() {
+				o = [function () {
 					return l[1] & l[2] | ~l[1] & l[3]
-				}, function() {
+				}, function () {
 					return l[1] ^ l[2] ^ l[3]
-				}, function() {
+				}, function () {
 					return l[1] & l[2] | l[1] & l[3] | l[2] & l[3]
-				}, function() {
+				}, function () {
 					return l[1] ^ l[2] ^ l[3]
 				}],
-				h = function(t, e) {
+				h = function (t, e) {
 					return t << e | t >>> 32 - e
 				},
 				d = [1518500249, 1859775393, -1894007588, -899497514],
@@ -92,7 +92,7 @@
 			}
 			i = new DataView(new Uint32Array(l).buffer);
 			for (let t = 0; t < 5; t++) l[t] = i.getUint32(t << 2);
-			return Array.prototype.map.call(new Uint8Array(new Uint32Array(l).buffer), function(t) {
+			return Array.prototype.map.call(new Uint8Array(new Uint32Array(l).buffer), function (t) {
 				return (t < 16 ? "0" : "") + t.toString(16)
 			}).join("")
 		}
@@ -301,14 +301,14 @@
 		}
 	}
 	var o, h;
-	! function(t) {
+	! function (t) {
 		t.total = "total", t.month = "month", t.week = "week", t.day = "day"
 	}(o || (o = {}));
 	class d {
 		constructor() {
 			this.ttVideoId = "", this.ttBannerId = "", this.ttInsertId = "", this.opVideoId = "", this.opBannerId = "", this.opNativeId = "", this.vvVideoId = "", this.vvBannerId = "", this.vvInsertId = "", this.vvNativeId = "", this.mzVideoId = "", this.mzBannerId = "", this.mzInsertId = "", this.wxVideoId = "", this.wxBannerId = "", this.wxInsertId = "", this.qqVideoId = "", this.qqBannerId = "", this.qqInsertId = "", this.qqBoxId = "", this.qqBlockId = "", this.hwVideoId = "", this.hwBannerId = "", this.hwInsertId = "", this.ksVideoId = "", this.ksBannerId = "", this.ksInsertId = ""
 		}
-	}! function(t) {
+	} ! function (t) {
 		t[t.web = 0] = "web", t[t.tt = 1] = "tt", t[t.op = 2] = "op", t[t.vv = 3] = "vv", t[t.mz = 4] = "mz", t[t.wx = 5] = "wx", t[t.qq = 6] = "qq", t[t.f399 = 7] = "f399", t[t.ks = 8] = "ks", t[t.hw = 9] = "hw", t[t.xm = 10] = "xm", t[t.csj = 11] = "csj", t[t.mmy = 12] = "mmy", t[t.xmApk = 13] = "xmApk", t[t.vvApk = 14] = "vvApk", t[t.ios = 15] = "ios", t[t.t33 = 16] = "t33", t[t.hwkb = 17] = "hwkb", t[t.opApk = 18] = "opApk", t[t.hhw = 19] = "hhw", t[t.f399Apk = 20] = "f399Apk", t[t.ttApk = 21] = "ttApk", t[t.a233 = 22] = "a233"
 	}(h || (h = {}));
 	class l {
@@ -316,6 +316,7 @@
 			this.authUser = !1, this.userId = "", this.realName = "", this.realCode = "", this.age = 0, this.nickName = "", this.headIcon = "", this.openId = "", this.focused = !1, this.curDate = 0, this.curWeek = 0, this.createTime = 0, this.gameTime = 999, this.fcmDate = 0, this.minScore = 0, this.loginCount = 0, this.adScusNum = 0, this.adFailNum = 0
 		}
 		saveData(t) {
+			console.log('zh: saveData ' + t);
 			let e = {};
 			for (let t in this) e[t.toString()] = this[t];
 			localStorage.setItem("moyudata_" + t, JSON.stringify(e))
@@ -345,7 +346,11 @@
 		init(e) {
 			if (t.debug = e, this.moyuUser = new a, this.data = new l, this.nativeInfo = new r, this.data.getData(this.myId), this.data.userId.length < 2) {
 				let e = this.getRandStr(5);
-				this.data.headIcon = t.getTagro("headimg/0.jpg"), this.data.userId = "my" + this.myId + e, this.data.nickName = "player_" + e, this.data.loginCount = 1, this.data.createTime = this.getTime()
+				//zh:用户默认昵称
+				this.data.headIcon = t.getTagro("headimg/0.jpg");
+				this.data.userId = "my" + this.myId + e;
+				this.data.nickName = "player_" + e;
+				this.data.loginCount = 1; this.data.createTime = this.getTime();
 			} else this.data.loginCount++;
 			this.moyuUser.loginCount = this.data.loginCount, this.moyuUser.userId = this.data.userId, this.moyuUser.nickName = this.data.nickName, this.moyuUser.headIcon = this.data.headIcon, this.moyuUser.openId = this.data.openId, this.moyuUser.createTime = this.data.createTime, this.moyuUser.videoCount = [this.data.adScusNum, this.data.adFailNum], this.moyuUser.realName = this.data.realName, this.moyuUser.realCode = this.data.realCode, this.moyuUser.age = this.data.age, this.setGameTime(), this.data.saveData(this.myId)
 		}
@@ -453,7 +458,7 @@
 						this.moyuUser.headIcon = t.icon, this.moyuUser.nickName = t.userName, this.moyuUser.openId = t.uId;
 						break;
 					default:
-						console.log("该平台没有用户信息")
+						console.log("zh:该平台没有用户信息")
 				}
 				this.moyuUser.userId = this.data.userId, this.moyuUser.isAuth = !0, this.data.authUser = !0, this.data.openId = this.moyuUser.openId, this.data.nickName = this.moyuUser.nickName, this.data.headIcon = this.moyuUser.headIcon, this.saveData()
 			}
@@ -511,15 +516,15 @@
 			} else this.nativeInfo.icon = "", this.nativeInfo.image = "";
 			this.onNativeCall && this.onNativeCall(), this.onNativeCall = null
 		}
-		getUserInfo(t) {}
+		getUserInfo(t) { }
 		oppoSign(t, e, s, i, a) {
 			let r = {
-					appKey: t,
-					appSecret: e,
-					pkgName: s,
-					timeStamp: a,
-					token: i
-				},
+				appKey: t,
+				appSecret: e,
+				pkgName: s,
+				timeStamp: a,
+				token: i
+			},
 				o = "";
 			for (const t in r) {
 				let e = r[t];
@@ -550,7 +555,7 @@
 			let t = null;
 			this.sdk.getLaunchOptionsSync && (t = this.sdk.getLaunchOptionsSync()), t && (u.platOptions = t), this.subLoader = this.sdk.loadSubpackage
 		}
-		initApp(t) {}
+		initApp(t) { }
 		initAds() {
 			if (!this.sdk || !this.sdk.getSystemInfoSync) return;
 			let e = this.sdk.getSystemInfoSync(),
@@ -560,16 +565,16 @@
 		initUser(t, e = !1) {
 			t && t()
 		}
-		getOpenId(t) {}
+		getOpenId(t) { }
 		getLocation(t) {
 			t && t()
 		}
-		userAgree(t) {}
-		onAdMsg(t) {}
+		userAgree(t) { }
+		onAdMsg(t) { }
 		onUserInfo(t) {
 			this.userCall && this.userCall()
 		}
-		showMoreGame() {}
+		showMoreGame() { }
 		createAudio() {
 			if (this.sdk.createInnerAudioContext) return this.sdk.createInnerAudioContext();
 			u.platLog("audio is null")
@@ -578,22 +583,22 @@
 			let t = this.sdk.getSystemInfoSync && this.sdk.getSystemInfoSync();
 			t && (u.platWidth = t.screenWidth ? t.screenWidth : 750, u.platHeight = t.screenHeight ? t.screenHeight : 1334)
 		}
-		exit() {}
+		exit() { }
 		addLnk(t) {
 			t && t()
 		}
-		focus(t) {}
-		shareGame(t, e, s) {}
-		recordeGame(t, e) {}
-		recordPause(t) {}
-		recordeStart() {}
+		focus(t) { }
+		shareGame(t, e, s) { }
+		recordeGame(t, e) { }
+		recordPause(t) { }
+		recordeStart() { }
 		recordeEnd(t) {
 			t && t()
 		}
-		showBlock(t) {}
-		showBox() {}
-		sendDataEvent(t, e) {}
-		toVideoView(t) {}
+		showBlock(t) { }
+		showBox() { }
+		sendDataEvent(t, e) { }
+		toVideoView(t) { }
 		vibrate(t) {
 			this.sdk && (t && this.sdk.vibrateLong ? this.sdk.vibrateLong() : this.sdk.vibrateShort && this.sdk.vibrateShort())
 		}
@@ -646,9 +651,9 @@
 				u.platError(10211, t)
 			}), u.bannerAd.onLoad(() => {
 				this.setBannerPos(), u.bannerShow ? 0 == this.bannerType && u.bannerAd.show() : u.bannerAd.hide()
-			}), u.bannerAd.onClose && u.bannerAd.onClose(function() {
+			}), u.bannerAd.onClose && u.bannerAd.onClose(function () {
 				u.onBannerHide()
-			}), u.bannerAd.onHide && u.bannerAd.onHide(function() {
+			}), u.bannerAd.onHide && u.bannerAd.onHide(function () {
 				u.onBannerHide()
 			}), u.platLog("BannerAd inited")
 		}
@@ -726,7 +731,7 @@
 				adUnitId: t
 			}), u.nativeAd && (u.nativeAd.onError(t => {
 				this.setNative(!0), u.onNativeLoad(null), u.platError(10231, t)
-			}), u.nativeAd.onLoad(function(t) {
+			}), u.nativeAd.onLoad(function (t) {
 				let e = t.adList.pop();
 				u.platLog("native onload"), u.onNativeLoad(e), u.nativeAd.reportAdShow({
 					adId: u.nativeInfo.id
@@ -771,25 +776,25 @@
 						p.Inst.platName = t.appName, "Douyin" != t.appName && "douyin_lite" != t.appName || (p.Inst.isDouyin = !0)
 					}
 				}), this.initRecoder(), this.sdk.checkShortcut && this.sdk.checkShortcut({
-					success: function(t) {
+					success: function (t) {
 						p.Inst.hasShortCut = t.status.exist
 					},
-					fail: function(t) {
+					fail: function (t) {
 						p.Inst.platLog("Shortcut失败", t), p.Inst.hasShortCut = !0
 					}
 				}), this.sdk.onShareAppMessage(e => {
 					const s = {
-							title: t.shareTitle,
-							imageUrl: t.shareImg,
-							extra: {},
-							query: t.shareQuery,
-							success(t) {
-								p.Inst.platLog("分享成功", t)
-							},
-							fail(t) {
-								p.Inst.platLog("分享失败", t), p.Inst.showTip(20301)
-							}
+						title: t.shareTitle,
+						imageUrl: t.shareImg,
+						extra: {},
+						query: t.shareQuery,
+						success(t) {
+							p.Inst.platLog("分享成功", t)
 						},
+						fail(t) {
+							p.Inst.platLog("分享失败", t), p.Inst.showTip(20301)
+						}
+					},
 						i = Object.assign({
 							channel: e.channel
 						}, s);
@@ -828,7 +833,7 @@
 				title: " iOS不支持"
 			})
 		}
-		getOpenId() {}
+		getOpenId() { }
 		initUser(t, e) {
 			this.sdk ? (this.sdk.getSetting({
 				success: s => {
@@ -874,10 +879,10 @@
 		}
 		addLnk(t) {
 			this.sdk ? this.sdk.addShortcut({
-				success: function(e) {
+				success: function (e) {
 					p.Inst.hasShortCut = !0, t && t()
 				},
-				fail: function(t) {
+				fail: function (t) {
 					p.Inst.hasShortCut = !1
 				}
 			}) : t && t(!0)
@@ -968,11 +973,11 @@
 				i()
 			}) : i()
 		}
-		getToken(t, e, s) {}
+		getToken(t, e, s) { }
 		toVideoView(t) {
 			t.length < 2 || this.sdk.navigateToVideoView({
 				videoId: t,
-				success: t => {},
+				success: t => { },
 				fail: t => {
 					p.Inst.platLog("toVideoView fail:", t), 1006 === t.errCode && this.sdk.showToast({
 						title: "something wrong with your network"
@@ -985,10 +990,10 @@
 		init() {
 			if (this.sdk || (this.sdk = window.qg), !this.sdk) return void p.Inst.platError(10001);
 			this.subLoader = this.sdk.loadSubpackage, this.sdk.getLaunchOptionsSync().referrerInfo, this.sdk.hasShortcutInstalled({
-				success: function(t) {
+				success: function (t) {
 					0 == t && (p.Inst.hasShortCut = !1)
 				},
-				fail: function(t) {
+				fail: function (t) {
 					p.Inst.hasShortCut = !1, p.Inst.platLog("ShortCut出错", t)
 				}
 			}), super.init()
@@ -1003,20 +1008,20 @@
 		}
 		addLnk(t) {
 			this.sdk && this.sdk.installShortcut({
-				success: function() {
+				success: function () {
 					p.Inst.platLog("ShortCut成功"), p.Inst.hasShortCut = !0, t && t()
 				},
-				fail: function(t) {
+				fail: function (t) {
 					p.Inst.platError(10301, t)
 				}
 			})
 		}
 		initUser(t) {
 			this.sdk.login({
-				success: function(e) {
+				success: function (e) {
 					p.Inst.platCode = e.data.token, p.Inst.appSecret.length > 1 ? p.Inst.getUserInfo(t) : (p.Inst.initUser(e.data), t && t(!0))
 				},
-				fail: function(t) {
+				fail: function (t) {
 					p.Inst.platError(10011, t)
 				}
 			})
@@ -1026,7 +1031,7 @@
 	class f extends c {
 		init() {
 			this.sdk || (this.sdk = window.qg), this.sdk ? (this.subLoader = this.sdk.loadSubpackage, this.sdk.hasShortcutInstalled({
-				success: function(t) {
+				success: function (t) {
 					I.hasShortCut = !!t
 				}
 			}), super.init()) : I.platError(10001)
@@ -1043,10 +1048,10 @@
 		}
 		addLnk(t) {
 			this.sdk && this.sdk.installShortcut({
-				success: function() {
+				success: function () {
 					I.platLog("ShortCut成功"), I.hasShortCut = !0, t && t()
 				},
-				fail: function(t) {
+				fail: function (t) {
 					I.platError(10301, t), I.hasShortCut = !1
 				}
 			})
@@ -1060,7 +1065,7 @@
 				I.platError(10211, t)
 			}), I.bannerAd.onLoad(() => {
 				I.bannerShow ? I.bannerAd.show() : I.bannerAd.hide()
-			}), I.bannerAd.onClose(function() {
+			}), I.bannerAd.onClose(function () {
 				I.onBannerHide()
 			}))
 		}
@@ -1163,7 +1168,7 @@
 				}
 			})
 		}
-		getOpenId() {}
+		getOpenId() { }
 		onShare() {
 			this.shared || (this.shared = !0, this.shareCall && (p.Inst.getTime() - this.shareTime < 3100 ? this.shareCall(!1) : this.shareCall(!0)))
 		}
@@ -1208,10 +1213,10 @@
 		}
 		getData(s) {
 			let i = e.Inst.codeMsg("bc48cbce46946057", {
-					appKey: 100,
-					platform: "web",
-					settingIndex: 0
-				}),
+				appKey: 100,
+				platform: "web",
+				settingIndex: 0
+			}),
 				a = t.getUrl("app/setting-get-new?", i);
 			e.Inst.sendGet(a, t => {
 				if (t && 0 == t.code && t.data) {
@@ -1295,7 +1300,7 @@
 				}
 			})
 		}
-		getOpenId() {}
+		getOpenId() { }
 		onShare() {
 			this.shared || (this.shared = !0, this.shareCall && (p.Inst.getTime() - this.shareTime < 3100 ? this.shareCall(!1) : this.shareCall(!0)))
 		}
@@ -1324,7 +1329,7 @@
 						left: 12,
 						top: e - 100
 					}
-				}), !p.Inst.blockAd || !p.Inst.blockAd.onError) return p.Inst.platLog("blockAd is null"), void(p.Inst.blockAd = null);
+				}), !p.Inst.blockAd || !p.Inst.blockAd.onError) return p.Inst.platLog("blockAd is null"), void (p.Inst.blockAd = null);
 				p.Inst.blockAd.onError(t => {
 					p.Inst.platError(10241, t)
 				}), p.Inst.blockAd.onLoad(() => {
@@ -1338,7 +1343,7 @@
 		showBlock(t) {
 			p.Inst.blockAd && (p.Inst.blockAd.hide(), p.Inst.blockAd.destroy(), p.Inst.blockAd = null), t && this.initBlock()
 		}
-		createCash(t, e) {}
+		createCash(t, e) { }
 	}
 	class w extends c {
 		constructor() {
@@ -1346,7 +1351,7 @@
 		}
 		init() {
 			this.sdk = window.ks, this.sdk ? (this.subLoader = this.sdk.loadSubpackage, this.initRecoder(), this.sdk.login({
-				success(t) {},
+				success(t) { },
 				fail(t) {
 					p.Inst.platLog("ks login fail", t)
 				}
@@ -1409,7 +1414,7 @@
 			this.recorder ? (this.recordDelta = p.Inst.getTime(), p.Inst.platLog("recordeGame", this.recordDelta), this.recorder.start()) : p.Inst.platError(10401, "recorder is null")
 		}
 		recordeEnd(t) {
-			if (this.recordCall = t, this.recordloop && p.Inst.shareMp4.length > 0 && p.Inst.getTime() - this.recordDelta < 5e3) return this.recordDelta = 0, this.recordloop = !1, this.recordCall && this.recordCall(), void(this.recorder && this.recorder.pause());
+			if (this.recordCall = t, this.recordloop && p.Inst.shareMp4.length > 0 && p.Inst.getTime() - this.recordDelta < 5e3) return this.recordDelta = 0, this.recordloop = !1, this.recordCall && this.recordCall(), void (this.recorder && this.recorder.pause());
 			this.recordloop = !1, this.recordDelta = 0, this.recorder && this.recorder.stop()
 		}
 		shareGame(e, s) {
@@ -1424,7 +1429,7 @@
 			})) : p.Inst.platLog("无法分享:", p.Inst.shareMp4)
 		}
 		initRecoder() {
-			this.recorder = this.sdk.getGameRecorder(), this.recorder.on("start", () => {}), this.recorder.on("error", t => {
+			this.recorder = this.sdk.getGameRecorder(), this.recorder.on("start", () => { }), this.recorder.on("error", t => {
 				p.Inst.platLog("recorder error", t)
 			}), this.recorder.on("stop", t => {
 				t && t.videoID ? (p.Inst.platLog("record stop", t.videoID), p.Inst.shareMp4 = t.videoID, this.recordCall && this.recordCall(), this.recordloop && setTimeout(() => {
@@ -1529,7 +1534,7 @@
 		}
 	}
 	var U;
-	! function(t) {
+	! function (t) {
 		t.adDataId = "AdStatis", t.gameLogin = "GameLogin", t.gameStart = "GameStart", t.gameEnd = "GameEnd"
 	}(U || (U = {}));
 	let C = p.Inst,
@@ -1626,8 +1631,8 @@
 			return !!this.isPlat(h.ttApk) && !this.isRealName
 		}
 		authenticate(e, s, i) {
-			if (!this.isName(e) || !this.isID(s)) return void(i && i(!1));
-			if (!(C.realName ? C.getRandom(0, 100) < C.realName : this.isLegal) || this.isVoidPlat) return C.onRealName(e, s), void(i && i(!0));
+			if (!this.isName(e) || !this.isID(s)) return void (i && i(!1));
+			if (!(C.realName ? C.getRandom(0, 100) < C.realName : this.isLegal) || this.isVoidPlat) return C.onRealName(e, s), void (i && i(!0));
 			let a = t.getUrl("real-info/enter"),
 				n = this.getUserInfo(),
 				r = {
@@ -1669,7 +1674,7 @@
 			2 == (2 & C.markBit) && this.sendEvent(U.gameEnd, {
 				id: t,
 				res: e
-			}), C.getTime() - this.lastVideoTime > 3e4 && C.getRandom(0, 100) < C.autoAd && this.showVideoAd(() => {}, 0)
+			}), C.getTime() - this.lastVideoTime > 3e4 && C.getRandom(0, 100) < C.autoAd && this.showVideoAd(() => { }, 0)
 		}
 		needRealTime(e = !0) {
 			t.realTime = e, M.getNetTime()
@@ -1844,18 +1849,18 @@
 		}
 		loadSubRes(t, e) {
 			let s = this.platform;
-			return new Promise(function(i) {
+			return new Promise(function (i) {
 				s && s.subLoader || (C.platLog("平台无分包"), i(!0));
 				var a = s.subLoader({
 					name: t,
-					success: function() {
+					success: function () {
 						C.platLog(t + "完成"), i(!0)
 					},
-					fail: function(t) {
+					fail: function (t) {
 						C.platError(10121, t), i(!1)
 					}
 				});
-				e && a.onProgressUpdate(function(t) {
+				e && a.onProgressUpdate(function (t) {
 					let s = t.progress > 1 ? .01 * t.progress : t.progress;
 					e(s)
 				})
@@ -1907,7 +1912,7 @@
 			t && (this.recordTime += e - this.recordMark), this.recordMark = e, this.platform.recordPause(t)
 		}
 		recordEnd(t, e) {
-			if (this.isVoidPlat) return C.platLog("测试录屏完成"), void(e && e.apply(t));
+			if (this.isVoidPlat) return C.platLog("测试录屏完成"), void (e && e.apply(t));
 			let s = this.getTime();
 			this.recordTime += s - this.recordMark, this.platform.recordeEnd(() => {
 				e && e.apply(t, [C.shareMp4])
@@ -2144,14 +2149,14 @@
 				} else this.platform.vibrate(t >= 400)
 		}
 		waitNext() {
-			return new Promise(function(t) {
+			return new Promise(function (t) {
 				requestAnimationFrame(() => {
 					t()
 				})
 			})
 		}
 		waitFrames(t) {
-			return new Promise(function(e) {
+			return new Promise(function (e) {
 				let s = t + 1,
 					i = !0;
 				setInterval(() => {
@@ -2162,7 +2167,7 @@
 			})
 		}
 		waitSeconds(t) {
-			return new Promise(function(e) {
+			return new Promise(function (e) {
 				setTimeout(() => {
 					e()
 				}, 1e3 * t)

+ 123 - 89
client/laya/libs/cfgTable.d.ts

@@ -8,194 +8,228 @@
 **************************
 */
 
-declare namespace cfgTable
-{
+declare namespace cfgTable {
     //aiskill表的数据结构体
-    export class aiskill{
+    export class aiskill {
         //连胜累积次数
-        readonly victorynum:number;
+        readonly victorynum: number;
         //技能选择
-        readonly skillselect:string[];
+        readonly skillselect: string[];
         //技能等级
-        readonly skilllevel:number[];
+        readonly skilllevel: number[];
     }
     //aiskill表数据
-    export const aiskillData:{ [key:number]: aiskill };	
+    export const aiskillData: { [key: number]: aiskill };
     //ballrod表的数据结构体
-    export class ballrod{
+    export class ballrod {
         //序号
-        readonly id:number;
+        readonly id: number;
         //球杆名称
-        readonly name:string;
+        readonly name: string;
         //价格
-        readonly price:number;
+        readonly price: number;
         //品级描述
-        readonly describe:string;
+        readonly describe: string;
         //品级
-        readonly quality:number;
+        readonly quality: number;
         //图标名称
-        readonly img:string;
+        readonly img: string;
         //spine名称
-        readonly spine:string;
+        readonly spine: string;
         //增加所有技能等级
-        readonly skillLevel:number;
+        readonly skillLevel: number;
         //排列顺序
-        readonly sort:number;
+        readonly sort: number;
     }
     //ballrod表数据
-    export const ballrodData:{ [key:number]: ballrod };	
+    export const ballrodData: { [key: number]: ballrod };
     //bigmove表的数据结构体
-    export class bigmove{
+    export class bigmove {
         //关卡
-        readonly level:number;
+        readonly level: number;
         //成功分数
-        readonly target:number;
+        readonly target: number;
     }
     //bigmove表数据
-    export const bigmoveData:{ [key:number]: bigmove };	
+    export const bigmoveData: { [key: number]: bigmove };
     //classictimes表的数据结构体
-    export class classictimes{
+    export class classictimes {
         //序号
-        readonly id:number;
+        readonly id: number;
         //段位名称
-        readonly name:string;
+        readonly name: string;
         //胜利场次
-        readonly times:number;
+        readonly times: number;
     }
     //classictimes表数据
-    export const classictimesData:{ [key:number]: classictimes };	
+    export const classictimesData: { [key: number]: classictimes };
     //draw表的数据结构体
-    export class draw{
+    export class draw {
         //序号
-        readonly id:number;
+        readonly id: number;
         //图标
-        readonly icon:string;
+        readonly icon: string;
         //奖励类型
-        readonly award:number;
+        readonly award: number;
         //奖励数目
-        readonly num:number;
+        readonly num: number;
         //权重
-        readonly weight:number;
+        readonly weight: number;
         //获得次数
-        readonly times:number;
+        readonly times: number;
         //替代物品
-        readonly nextid:string[];
+        readonly nextid: string[];
         //旋转角度
-        readonly rotation:number;
+        readonly rotation: number;
     }
     //draw表数据
-    export const drawData:{ [key:number]: draw };	
+    export const drawData: { [key: number]: draw };
     //emotion表的数据结构体
-    export class emotion{
+    export class emotion {
         //序号
-        readonly id:number;
+        readonly id: number;
         //对话内容
-        readonly icon:string;
+        readonly icon: string;
         //spine名称
-        readonly spine:string;
+        readonly spine: string;
     }
     //emotion表数据
-    export const emotionData:{ [key:number]: emotion };	
+    export const emotionData: { [key: number]: emotion };
     //modeselect表的数据结构体
-    export class modeselect{
+    export class modeselect {
         //序号
-        readonly id:number;
+        readonly id: number;
         //入场费
-        readonly need:number;
+        readonly need: number;
         //奖励
-        readonly award:number;
+        readonly award: number;
         //ai等级
-        readonly aiLevel:number[];
+        readonly aiLevel: number[];
     }
     //modeselect表数据
-    export const modeselectData:{ [key:number]: modeselect };	
+    export const modeselectData: { [key: number]: modeselect };
     //money表的数据结构体
-    export class money{
+    export class money {
         //序号
-        readonly id:number;
+        readonly id: number;
         //金币或者钻石
-        readonly type:string;
+        readonly type: string;
         //获取途径
-        readonly get:string;
+        readonly get: string;
         //获得数目
-        readonly num:number;
+        readonly num: number;
     }
     //money表数据
-    export const moneyData:{ [key:number]: money };	
+    export const moneyData: { [key: number]: money };
     //placeball表的数据结构体
-    export class placeball{
+    export class placeball {
         //序号
-        readonly id:number;
+        readonly id: number;
         //类型(普通模式,挑战模式)
-        readonly type:number;
+        readonly type: number;
         //挑战模式通关进球数
-        readonly ball:number;
+        readonly ball: number;
         //生命值
-        readonly hp:number;
+        readonly hp: number;
         //三星奖励
-        readonly award:number[];
+        readonly award: number[];
     }
     //placeball表数据
-    export const placeballData:{ [key:number]: placeball };	
+    export const placeballData: { [key: number]: placeball };
     //secretary表的数据结构体
-    export class secretary{
+    export class secretary {
         //序号
-        readonly id:number;
+        readonly id: number;
         //对话内容
-        readonly msg:string;
+        readonly msg: string;
     }
     //secretary表数据
-    export const secretaryData:{ [key:number]: secretary };	
+    export const secretaryData: { [key: number]: secretary };
     //secretaryshop表的数据结构体
-    export class secretaryshop{
+    export class secretaryshop {
         //序号
-        readonly id:number;
+        readonly id: number;
         //名字
-        readonly name:string;
+        readonly name: string;
         //身高
-        readonly height:string;
+        readonly height: string;
         //喜欢的食物
-        readonly food:string;
+        readonly food: string;
         //背景故事
-        readonly history:string;
+        readonly history: string;
         //购买价格
-        readonly price:number;
+        readonly price: number;
         //名字图片
-        readonly nameImg:string;
+        readonly nameImg: string;
         //spine名字
-        readonly spine:string;
+        readonly spine: string;
     }
     //secretaryshop表数据
-    export const secretaryshopData:{ [key:number]: secretaryshop };	
+    export const secretaryshopData: { [key: number]: secretaryshop };
     //sign表的数据结构体
-    export class sign{
+    export class sign {
         //序号
-        readonly id:number;
+        readonly id: number;
         //图标
-        readonly icon:string[];
+        readonly icon: string[];
         //标题
-        readonly title:string;
+        readonly title: string;
         //奖励
-        readonly award:string[];
+        readonly award: string[];
     }
     //sign表数据
-    export const signData:{ [key:number]: sign };	
+    export const signData: { [key: number]: sign };
     //talkwords表的数据结构体
-    export class talkwords{
+    export class talkwords {
         //序号
-        readonly id:number;
+        readonly id: number;
         //对话内容
-        readonly msg:string;
+        readonly msg: string;
     }
     //talkwords表数据
-    export const talkwordsData:{ [key:number]: talkwords };	
+    export const talkwordsData: { [key: number]: talkwords };
     //words表的数据结构体
-    export class words{
+    export class words {
         //序号
-        readonly id:number;
+        readonly id: number;
         //对话内容
-        readonly msg:string;
+        readonly msg: string;
     }
     //words表数据
-    export const wordsData:{ [key:number]: words };	
+    export const wordsData: { [key: number]: words };
+
+
+    /**
+     * 排行榜条目数据结构
+     */
+    export class PaiHangBang {
+        // 排名分数
+        readonly rankScore: string;
+        // 用户ID
+        readonly userId: string;
+        // 用户信息字符串(需解析为对象)
+        readonly userData: string;
+    }
+
+    /**
+     * 排行榜整体数据结构
+     */
+    export interface PaiHangBangData {
+        // 排行榜列表
+        readonly list: PaiHangBang[];
+        // 上一次得分
+        readonly lastScore: string;
+        // 排行榜类型
+        readonly type: string;
+        // 排名ID
+        readonly rankId: string;
+    }
+
+    /**
+     * 排行榜数据常量
+     */
+    export const paiHangBangData: PaiHangBangData;
+
+
+    //cfgTable.paiHangBangData
 }

+ 2 - 1
client/laya/src/GameInit.ts

@@ -122,7 +122,8 @@ function getPlat() {
     cfg.plat = MoyuPlat.web;
 
     
-    cfg.myId = 120;
+    //cfg.myId = 120; 20250627日Q
+    cfg.myId = 180;
     cfg.myKey = '8848a885774230a4';
     cfg.version = 0;
     if (window.hasOwnProperty("gamebox")) {

+ 2 - 5
client/laya/src/ui/UIMain.ts

@@ -157,7 +157,7 @@ export default class UIMain extends UIBase {
         let curUse = DataMgr.getCurSecretary();
         this.changeSecretary(curUse);
         //
-        this.ui.rankBtn.visible = false;
+        //this.ui.rankBtn.visible = false;
         this.ui.talkNode.visible = false;
         let guide = DataMgr.getSkillGuide();
         if (xGame.common.isNewDay && guide == 1) {
@@ -223,7 +223,7 @@ export default class UIMain extends UIBase {
         //
         this.addUIClick(this.ui.signBtn, this.openSignView);
         this.addUIClick(this.ui.drawBtn, this.openDrawView);
-        // this.addUIClick(this.ui.rankBtn, this.openRanking);
+        this.addUIClick(this.ui.rankBtn, this.openRanking);
 
     }
     public show(showFailWords): void {
@@ -556,8 +556,5 @@ export default class UIMain extends UIBase {
     }
 
 
-
-
-
 }
 UIMain.uiName = "UIMain";

+ 75 - 39
client/laya/src/ui/UIRanking.ts

@@ -8,9 +8,11 @@ export default class UIRanking extends UIBase {
     public showSelf: boolean = true;//隐藏
     public rankType: number = 1;//1-星星排行,2-关卡排行
     //
-    public rankList=[];
-    private myIndex:number=0;
-    private myStar:number=0;
+    public rankList = [];
+    private myIndex: number = 0;
+    private myStar: number = 0;
+
+    private topX = 10;//只展示前X名
     public constructor() {
         super();
     }
@@ -30,62 +32,95 @@ export default class UIRanking extends UIBase {
     public show(): void {
         super.show();
         //
-        this.myIndex=51;
-        Moyu.getRankList({
-            rankId: xGame.common.curRankID,    //排行榜id
-            type: MoyuRankType.total, //排行榜类别
-            page: 1,       //拉取第几页
-            pageSize: 50,  //一页数量  
-        }, this, this.updateItemData)
-        //
+
+        // Moyu.getRankList({
+        //     rankId: xGame.common.curRankID,    //排行榜id
+        //     type: MoyuRankType.total, //排行榜类别
+        //     page: 1,       //拉取第几页
+        //     pageSize: 50,  //一页数量  
+        // }, this, this.updateItemData)
+
+        this.getPaiHangBangDataFormJosnFile();
+
         this.updateSelf();
         let self = Moyu.getUserInfo();
-        if(!self.isAuth)
-        {
-            Moyu.initUser(this,()=>{
+        if (!self.isAuth) {
+            Moyu.initUser(this, () => {
                 DataMgr.upRankData();
             });
         }
     }
 
+
+    getPaiHangBangDataFormJosnFile() {
+        const rankingList = cfgTable.paiHangBangData.list;
+
+        //下面是原有的从NET获取
+        // rankingList.forEach((item, index) => {
+        //     const userData = JSON.parse(item.userData.replace(/'/g, '"'));
+        //     console.log(`
+        // 排名: ${index + 1}
+        // 用户ID: ${item.userId}
+        // 昵称: ${userData.user.nickName}
+        // 分数: ${item.rankScore}
+        // 头像: ${userData.user.headIcon}
+        // `);
+        // });
+
+        //zh改为从本地JSON种读取
+        this.updateItemData(rankingList);
+    }
+
     updateSelfItem() {
+        console.log('zh:Moyu.platType =' + Moyu.platType);
         let self = Moyu.getUserInfo();
-        this.ui.myNode.selfNode.c1.selectedIndex=this.myIndex<4?this.myIndex-1:3;
-        this.ui.myNode.selfNode.rankTxt.text = this.myIndex>50?"未上榜":this.myIndex.toString();
+        this.ui.myNode.selfNode.c1.selectedIndex = this.myIndex < 4 ? this.myIndex - 1 : 3;
+        this.ui.myNode.selfNode.rankTxt.text = this.myIndex > this.topX ? "No Rank" : this.myIndex.toString();
+        if (this.myIndex > this.topX) {
+            this.ui.myNode.selfNode.rankTxt.fontSize = 36;
+        } else {
+            this.ui.myNode.selfNode.rankTxt.fontSize = 30;
+        }
+
         this.ui.myNode.selfNode.valueTxt.text = this.myStar + "";
-        this.ui.myNode.selfNode.nameTxt.text = Moyu.platType<11?self.nickName:"myself";
+        //this.ui.myNode.selfNode.nameTxt.text = Moyu.platType < 11 ? self.nickName : "myself";
+        this.ui.myNode.selfNode.nameTxt.text = 'myself';
         xGame.common.createHead(this.ui.myNode.selfNode.headNode.head.myIcon, self.headIcon);
     }
     updateItemData(data: Array<any>) {
-        this.myStar =xGame.common.getAllStarNum();
-        if(this.rankList.length<2)
-        {
+        //console.log('zh: 获取排行榜数据成功'+JSON.stringify(data));
+        //获取所有的小星星
+        this.myStar = xGame.common.getAllStarNum();
+        //debug ...
+        this.myStar = 10;
+        this.myIndex = 3;
+        if (this.rankList.length < 2) {
             this.rankList = data;
             let self = Moyu.getUserInfo();
-            for(let i=0;i<data.length;i++)
-            {
+            console.log('zh:myself iuserinfo = ' + JSON.stringify(self));
+            //self.headIcon = https://mygame1.tangro.cn/headimg/0.jpg
+            //改为本地icon
+            console.log('zh:myself headIcon= ' + self.headIcon);
+            for (let i = 0; i < data.length; i++) {
                 let data = this.rankList[i];
-                if(data.userId==self.userId)
-                {
-                    this.rankList.splice(i,1);
+                if (data.userId == self.userId) {
+                    this.rankList.splice(i, 1);
                     break;
                 }
             }
-            for(let i=0;i<data.length;i++)
-            {
+            for (let i = 0; i < data.length; i++) {
                 let data = this.rankList[i];
-                if(data.rankScore<this.myStar && this.myIndex>50)
-                {
-                    this.myIndex=i+1;
-                    let user={headIcon:self.headIcon,nickName:"myself"};
-                    let ud={user:user,data:{}};
-                    let md = {rankScore:this.myStar.toString(),userId:self.userId,userData:JSON.stringify(ud)};
-                    if(Moyu.platType<11)
-                    {
-                        user.headIcon=self.headIcon;
-                        user.nickName=self.nickName;
+                if (data.rankScore < this.myStar && this.myIndex > this.topX) {
+                    this.myIndex = i + 1;
+                    let user = { headIcon: self.headIcon, nickName: "myself" };
+                    let ud = { user: user, data: {} };
+                    let md = { rankScore: this.myStar.toString(), userId: self.userId, userData: JSON.stringify(ud) };
+                    console.log('zh:Moyu.platType = ' + Moyu.platType)
+                    if (Moyu.platType < 11) {
+                        user.headIcon = self.headIcon;
+                        user.nickName = self.nickName;
                     }
-                    this.rankList.splice(i,0,md);
+                    this.rankList.splice(i, 0, md);
                     break;
                 }
             }
@@ -95,11 +130,12 @@ export default class UIRanking extends UIBase {
     }
     updateItemUI(index, obj: ui_RankItem) {
         let data = this.rankList[index];
+        console.log('zh:updateItemui  idex = ' + JSON.stringify(data));
         let userData = JSON.parse(data.userData).user;
         obj.nameTxt.text = userData.nickName.toString();
         obj.valueTxt.text = data.rankScore;
         xGame.common.createHead(obj.headNode.head.myIcon, userData.headIcon, 80);
-        obj.rankTxt.text = index + 1;
+        obj.rankTxt.text = index + 1;//排名
         //
         switch (index) {
             case 0:

+ 15 - 13
client/laya/src/utils/Common.ts

@@ -114,7 +114,7 @@ export default class Common {
         wxStar: 12001
     }
     //
-   // skillNameList = ["Fall from the sky", "Unstoppable Force", "Freeze Shot","Coming Soon"];
+    // skillNameList = ["Fall from the sky", "Unstoppable Force", "Freeze Shot","Coming Soon"];
     skillNameList = ["Surging Break", "Skyfall Shot", "Frost Lock"];
     //skillIconList = ["gf_jn1", "gf_jn2", "gf_jn4", "gf_jn4"];
     skillIconList = ["gf_jn1", "gf_jn2", "gf_jn4"];
@@ -412,24 +412,26 @@ export default class Common {
         node.visible = false;
     }
     createHead(loader: fgui.GLoader, url, size = 107) {
+        console.log('zh:createHead url=', url);
         if (Laya.Browser.name == "Browser") {
             //console.log("处于浏览器中", Laya.Browser.name);
             loader.url = url;
             return;
         }
-        if (Moyu.isTT) {
-            let localImage = new Image();
-            localImage.src = url;
-            localImage.onload = () => {
-                let t2d = new Laya.Texture2D();
-                t2d.width = size;
-                t2d.height = size;
-                loader.displayObject.graphics.drawImage(new Laya.Texture(t2d), 0, 0);
-                t2d.loadImageSource(localImage);
-            }
-        }
+
+        // if (Moyu.isTT) {
+        //     let localImage = new Image();
+        //     localImage.src = url;
+        //     localImage.onload = () => {
+        //         let t2d = new Laya.Texture2D();
+        //         t2d.width = size;
+        //         t2d.height = size;
+        //         loader.displayObject.graphics.drawImage(new Laya.Texture(t2d), 0, 0);
+        //         t2d.loadImageSource(localImage);
+        //     }
+        // }
         else {
-            console.log('zh:url=',url);
+            console.log('zh:url=', url);
             loader.url = url;
         }
     }

+ 106 - 0
client/laya/src/utils/LocalStorageManager.ts

@@ -0,0 +1,106 @@
+/**
+ * 本地存储管理类
+ */
+export class LocalStorageManager {
+
+    private test1(): void {
+        // 存储数据
+        LocalStorageManager.setItem("playerName", "Tom");
+        LocalStorageManager.setItem("playerLevel", 5);
+        LocalStorageManager.setItem("playerData", { score: 100, level: 3 });
+        // 获取数据
+        const name = LocalStorageManager.getItem<string>("playerName");
+        const level = LocalStorageManager.getItem<number>("playerLevel");
+        const data = LocalStorageManager.getItem<{ score: number, level: number }>("playerData");
+
+        console.log(name);  // 输出: Tom
+        console.log(level); // 输出: 5
+        console.log(data);  // 输出: { score: 100, level: 3 }
+
+        // 删除某项
+        LocalStorageManager.removeItem("playerLevel");
+
+        // 清空全部
+        // LocalStorageManager.clear();
+
+        // 判断是否存在
+        if (LocalStorageManager.hasKey("playerName")) {
+            console.log("playerName 存在");
+        }
+    }
+
+
+    /**
+     * 存储数据到本地
+     * @param key 键名
+     * @param value 值(会自动序列化为 JSON)
+     */
+    public static setItem(key: string, value: any): void {
+        Laya.LocalStorage.setItem(key, JSON.stringify(value));
+    }
+
+    /**
+     * 获取本地存储的数据
+     * @param key 键名
+     * @returns 解析后的对象或原始字符串,不存在返回 null
+     */
+    public static getItem<T = any>(key: string): T | null {
+        const data = Laya.LocalStorage.getItem(key);
+        if (data === null) return null;
+        try {
+            return JSON.parse(data) as T;
+        } catch (e) {
+            // 如果不是 JSON 格式,直接返回原始字符串
+            return data as any;
+        }
+    }
+
+    /**
+     * 删除指定键的本地数据
+     * @param key 键名
+     */
+    public static removeItem(key: string): void {
+        Laya.LocalStorage.removeItem(key);
+    }
+
+    /**
+     * 清空所有本地存储数据
+     */
+    public static clear(): void {
+        Laya.LocalStorage.clear();
+    }
+
+    /**
+         * 获取所有存储的键名
+         * @returns 键名数组
+         */
+    public static getKeys(): string[] {
+        const rawStorage = Laya.LocalStorage as any;
+        const length = Laya.LocalStorage.length;
+        const keys: string[] = [];
+        for (let i = 0; i < length; i++) {
+            const key = rawStorage.key ? rawStorage.key(i) : null;
+            if (key) {
+                keys.push(key);
+            }
+        }
+        return keys;
+    }
+
+    /**
+     * 检查是否存在某个键
+     * @param key 键名
+     * @returns 是否存在
+     */
+    public static hasKey(key: string): boolean {
+        const keys = this.getKeys();
+        return keys.indexOf(key) !== -1;
+    }
+
+
+
+
+
+
+
+}

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff