zane před 1 měsícem
rodič
revize
5775e846cb

+ 19 - 6
assets/resources/i18n/en.ts

@@ -5,14 +5,27 @@ export const languages = {
     NoGem: `Insufficient balance`,
   },
   Family: {
-    CreateFamilySuccessTitle: "Success",
-    CreateFamilySuccess:
-      `🎉 Congrats! You’re now the Owner of the Family: [{value}].
- Start growing your family now!`,
-    RemoveSuccessTitle: "Success",
+    WhatIsFamily: `A Family is a group system where players team up to earn shared rewards.
+Families have unique names and earn shared bonuses by progressing together.`,
+    FamilyOwnerBenefits: `Earn extra 15% bonus from your Family’s total POG
+Manage members and reward settings`,
+    FamilyMemberBenefits: `Unlock Family Reward Boxes
+Help your Family climb event leaderboards
+Get bonus rewards through teamwork!`,
+
+    CreateFamilySuccess: `🎉 Congrats! You’re now the Owner of the Family: [{value}].
+Start growing your family now!`,
     RemoveConfirmContent: "Are you sure to remove this player?",
-    RemoveMemberSuccess: "Remove Success",
+    RemoveMemberSuccess: "Removal Complete",
+    JoinFamilySuccess: "You have joined the family",
+    KickedMe: "You have been kicked out of the family",
+    UpgradeFamilyConfirm: `Family Expansion System
+ - Create a Family: 10 Diamonds
+ - Expand Family Capacity: +10 members for 30 Diamonds
+ - Maximum Family Members: 100 players
 
+Spend {value}Diamond to upgrade family now?`,
+    UpgradeFamilySuccess: "Family upgrade successful! Max member count: +10.",
   },
   Rank: {
     Season: "SEASON",

+ 4 - 4
assets/resources/prefab/family/FamilyItem.prefab

@@ -442,7 +442,7 @@
       "b": 255,
       "a": 255
     },
-    "_string": "38",
+    "_string": "38/100",
     "_horizontalAlign": 0,
     "_verticalAlign": 1,
     "_actualFontSize": 20,
@@ -610,7 +610,7 @@
     },
     "_lpos": {
       "__type__": "cc.Vec3",
-      "x": 78.753,
+      "x": 114.91,
       "y": 0,
       "z": 0
     },
@@ -651,7 +651,7 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 500,
+      "width": 142.9453125,
       "height": 29.2
     },
     "_anchorPoint": {
@@ -694,7 +694,7 @@
     "_fontSize": 20,
     "_fontFamily": "Arial",
     "_lineHeight": 20,
-    "_overflow": 3,
+    "_overflow": 0,
     "_enableWrapText": true,
     "_font": null,
     "_isSystemFontUsed": true,

+ 5 - 1
assets/resources/prefab/family/FamilyMemberItem.ts

@@ -8,10 +8,14 @@ const { ccclass, property } = _decorator;
 export class FamilyMemberItem extends BaseUI {
   init(pd: FamilyMember) {
     this.setText("lbl_user_name", pd.userName);
+    let totalXp = pd.totalXp;
+    if (totalXp < pd.dailyXp) {
+      totalXp = pd.dailyXp;
+    }
     let expStr = `today:${Utils.formatNumber(
       Number(pd.dailyXp),
       1
-    )} total:${Utils.formatNumber(Number(pd.totalXp), 1)}`;
+    )} total:${Utils.formatNumber(Number(totalXp), 1)}`;
     this.setText("lbl_exp", expStr);
   }
 }

+ 2 - 2
assets/resources/prefab/family/FamilyPageHas.prefab

@@ -4762,7 +4762,7 @@
   },
   {
     "__type__": "cc.Node",
-    "_name": "lbl_pog_tips2",
+    "_name": "lbl_family_tips_member",
     "_objFlags": 0,
     "__editorExtras__": {},
     "_parent": {
@@ -5865,7 +5865,7 @@
   },
   {
     "__type__": "cc.Node",
-    "_name": "lbl_pog_tips2",
+    "_name": "lbl_family_tips_owner",
     "_objFlags": 0,
     "__editorExtras__": {},
     "_parent": {

+ 8 - 5
assets/resources/prefab/family/FamilyPageHas.ts

@@ -43,14 +43,20 @@ export class FamilyPageHas extends BaseUI {
   }
 
   onShow() {
+    this.staticUI()
     this.familyInfo();
     setTimeout(() => {
       this.showMembers();
     }, 1000);
   }
+  staticUI() {
+    this.setText("lbl_family_tips_member", Utils.setI18nLabel("Family.FamilyMemberBenefits"));
+    this.setText("lbl_family_tips_owner", Utils.setI18nLabel("Family.FamilyOwnerBenefits"));
+  }
 
   protected onLoad(): void {
     super.onLoad();
+    this.FindNode("owner_manage_node").active = false;
     EV.ins.on(EV_TYPE.FAMILY_DATA_UPDATE, this.familyInfo, this);
     EV.ins.on(EV_TYPE.FAMILY_MEMBER_UPDATE, this.showMembers, this);
   }
@@ -169,7 +175,7 @@ export class FamilyPageHas extends BaseUI {
 
     let dialogResult = await TipsLayer.showConfirm(
       "",
-      `Cost ${upgradeCost} to upgrade family? `
+      Utils.setI18nLabel("Family.UpgradeFamilyConfirm", ""+upgradeCost)
     );
     if (!dialogResult) {
       return;
@@ -177,10 +183,7 @@ export class FamilyPageHas extends BaseUI {
 
     let result = await FamilyM.ins.upgradeFamily(this._data.familyId);
     if (result) {
-      TipsLayer.showConfirm(
-        "",
-        `Upgrade family success,Max member count +10`
-      );
+      TipsLayer.showConfirm("", Utils.setI18nLabel("Family.UpgradeFamilySuccess"));
       EV.ins.emit(EV_TYPE.FAMILY_DATA_UPDATE);
       await UserM.ins.refreshInfo();
     }

+ 3 - 3
assets/resources/prefab/family/FamilyPageNo.prefab

@@ -2391,7 +2391,7 @@
   },
   {
     "__type__": "cc.Node",
-    "_name": "lbl_pog_tips2",
+    "_name": "lbl_family_tips_what_is",
     "_objFlags": 0,
     "__editorExtras__": {},
     "_parent": {
@@ -3465,7 +3465,7 @@
   },
   {
     "__type__": "cc.Node",
-    "_name": "lbl_pog_tips2",
+    "_name": "lbl_family_tips_owner",
     "_objFlags": 0,
     "__editorExtras__": {},
     "_parent": {
@@ -4403,7 +4403,7 @@
   },
   {
     "__type__": "cc.Node",
-    "_name": "lbl_pog_tips2",
+    "_name": "lbl_family_tips_member",
     "_objFlags": 0,
     "__editorExtras__": {},
     "_parent": {

+ 11 - 0
assets/resources/prefab/family/FamilyPageNo.ts

@@ -39,6 +39,17 @@ export class FamilyPageNo extends BaseUI {
 
     EV.ins.emit(EV_TYPE.FAMILY_STATUS_UPDATE);
   }
+
+  protected onLoad(): void {
+    super.onLoad();
+    this.staticUI();
+  }
+  staticUI() {
+    this.setText("lbl_family_tips_what_is", Utils.setI18nLabel("Family.WhatIsFamily"));
+    this.setText("lbl_family_tips_member", Utils.setI18nLabel("Family.FamilyMemberBenefits"));
+    this.setText("lbl_family_tips_owner", Utils.setI18nLabel("Family.FamilyOwnerBenefits"));
+
+  }
   async searchFamily() {
     let keyword = this.FindAs("EditBoxSearchFamily", EditBox).string;
     if (keyword == "") {

+ 11 - 3
assets/resources/prefab/family/ManagePlayerItem.ts

@@ -45,9 +45,17 @@ export class ManagePlayerItem extends BaseUI {
       let reason = data.reason;
       this.setText("lbl_approve_info", reason);
     } else if (this.type == ManagePlayerItemType.MEMBERS) {
-      let totalXp = Utils.formatNumber(data.totalXp, 1);
-      let dailyXp = Utils.formatNumber(data.dailyXp, 1);
-      this.setText("lbl_exp_value", "today:" + totalXp + " total:" + dailyXp);
+      let totalXp = data.totalXp;
+      if (totalXp < data.dailyXp) {
+        totalXp = data.dailyXp;
+      }
+      this.setText(
+        "lbl_exp_value",
+        "today:" +
+          Utils.formatNumber(data.dailyXp, 1) +
+          " total:" +
+          Utils.formatNumber(totalXp, 1)
+      );
     }
   }
   initType(type: ManagePlayerItemType) {

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 603 - 169
assets/resources/prefab/hall/Hall.prefab


+ 1 - 1
assets/resources/prefab/hall/Hall.ts

@@ -84,7 +84,7 @@ export class Hall extends BaseUI {
         GemRechargeLayer.show();
         break;
       case "btn_family":
-        if (!DebugM.ins.isDebugPeople()) {
+        if (!DebugM.ins.isOpenFamily()) {
           Tips.show("Family Coming Soon");
           return;
         }

+ 21 - 7
assets/resources/prefab/hall/HallTitleBar.ts

@@ -28,6 +28,7 @@ import ConfigM from "../../scripts/api/ConfigM";
 import { Sprite } from "cc";
 import AB from "../../scripts/base/AB";
 import { SpriteFrame } from "cc";
+import FamilyM from "../../scripts/api/FamilyM";
 
 const { ccclass, property } = _decorator;
 
@@ -56,9 +57,10 @@ export class HallTitleBar extends BaseUI {
     ItemsM.ins.on(GoodsId.POG, this.onPogChange, this);
     ItemsM.ins.on(GoodsId.GEM, this.onGemChange, this);
 
-    EV.ins.on(EV_TYPE.USER_GOOD_REFRESH, this.onUserGoodRefresh, this);
-
     this.refreshUI();
+
+    EV.ins.on(EV_TYPE.USER_GOOD_REFRESH, this.onUserGoodRefresh, this);
+    EV.ins.on(EV_TYPE.FAMILY_STATUS_UPDATE, this.setFamilyInfo, this);
   }
 
   onUserGoodRefresh(goodList: GoodInfo[]) {
@@ -87,8 +89,8 @@ export class HallTitleBar extends BaseUI {
       "lbl_hall_title_season_time",
       UserM.ins.getSeasonEndTimeText()
     );
-    this.setText("lbl_pog", Utils.formatNumber(this._pog, 0));
-    this.setText("lbl_gem", Utils.formatNumber(this._gem, 0));
+    this.setText("lbl_pog", UserM.ins.getPogDisplay());
+    this.setText("lbl_gem", Utils.formatNumber(this._gem, 1));
 
     let gamePassCount = UserM.ins.getGamePassCount();
     this.FindNode("lbl_game_pass_count").active = gamePassCount > 0;
@@ -96,14 +98,26 @@ export class HallTitleBar extends BaseUI {
       this.setText("lbl_game_pass_count", "x" + gamePassCount);
     }
 
-    this.setGradeIcon();
+    this.setFamilyInfo();
 
-    // if(UserM.ins.data.)
+    this.setGradeIcon();
+  }
+  async setFamilyInfo() {
+    if (UserM.ins.data.familyId != null && UserM.ins.data.familyId != "") {
+      let family = await FamilyM.ins.getFamilyInfo(UserM.ins.data.familyId);
+      if (UserM.ins.data.userId == family?.ownerDto?.ownerId) {
+        this.setText("lbl_title_player_family_name", "👑" + family.familyName);
+      } else {
+        this.setText("lbl_title_player_family_name", "👤" + family.familyName);
+      }
+    } else {
+      this.setText("lbl_title_player_family_name", "");
+    }
   }
   async setGradeIcon() {
     let data: RankDto = await RankM.ins.rankData(PageRank.RankTypeSeason);
     let grade = data.rankInfo.badgeId;
-// grade=3
+    // grade=3
     if (grade <= 0 || grade > 7) {
       return;
     }

+ 2 - 2
assets/resources/prefab/hall/PageRank.ts

@@ -160,12 +160,12 @@ export class PageRank extends BaseUI implements OnTabClickListener {
     return data;
   }
   async ui(data: RankDto) {
-    this.setText("lbl_total_pog", "" + Utils.formatNumber(data.seasonPog, 0));
+    this.setText("lbl_total_pog", "" + Utils.formatNumber(data.seasonPog, 2));
     this.setText(
       "lbl_today_send",
       "" + Utils.formatNumber(data.dailyGrantPog, 0)
     );
-    this.setText("lbl_remain_pog", "" + Utils.formatNumber(data.remainPog, 0));
+    this.setText("lbl_remain_pog", "" + Utils.formatNumber(data.remainPog, 2));
     // let gradeAddValue = ConfigM.ins.getGradeAddValue(data.rankInfo.rank);
     let grade = data.rankInfo.badgeId;
 

+ 6 - 8
assets/resources/prefab/item/PlayGameItem.ts

@@ -8,9 +8,7 @@ import Utils from "../../scripts/utils/Utils";
 import AB from "../../scripts/base/AB";
 import { Sprite } from "cc";
 import ConfigM from "../../scripts/api/ConfigM";
-import { WS } from "../../scripts/net/WS";
 import { DebugM } from "../../scripts/mgr/DebugM";
-import { WheelDialog } from "../play/WheelDialog";
 
 const { ccclass, property } = _decorator;
 
@@ -30,7 +28,7 @@ export class PlayGameItem extends BaseUI {
     if (item.seasonPog > 0) {
       this.setText(
         "lbl_remain_info",
-        Utils.formatNumber(item.remainPog, 5) +
+        Utils.formatNumber(item.remainPog, 2) +
           "/" +
           Utils.formatNumber(item.seasonPog, 0)
       );
@@ -56,12 +54,12 @@ export class PlayGameItem extends BaseUI {
 
   protected simpleOnBtnClick(name: string): void {
     if (name === "btn_play") {
-      Tips.show("Coming soon");
-
-      if (DebugM.ins.isDebugPeople()) {
-
-        GameDetailLayer.show(this.data.gameId, this.FindNode("icon_game"));
+      if (!DebugM.ins.isOpenPlayGame()) {
+        Tips.show("Coming soon");
+        return;
       }
+
+      GameDetailLayer.show(this.data.gameId, this.FindNode("icon_game"));
     }
   }
 }

+ 1 - 1
assets/resources/prefab/item/RankPlayerItem.ts

@@ -22,7 +22,7 @@ export class RankPlayerItem extends BaseUI {
       rank_icons.getChildByName(data.rank + "").active = true;
     }
 
-    this.setText("lbl_rank_value", Utils.formatNumber(data.rankValue, 0));
+    this.setText("lbl_rank_value", Utils.formatNumber(data.rankValue, 1));
     
       if (data.userName != null) {
         this.setText("lbl_user_name", data.userName);  

+ 0 - 1
assets/resources/prefab/layer/GemRechargeLayer.ts

@@ -10,7 +10,6 @@ import { GoodsId } from "../../scripts/api/GoodsId";
 import Utils from "../../scripts/utils/Utils";
 import EV, { EV_TYPE } from "../../scripts/mgr/EV";
 import { HistoryRecharge } from "./HistoryRecharge";
-import { DebugM } from "../../scripts/mgr/DebugM";
 
 const { ccclass, property } = _decorator;
 

+ 0 - 1
assets/resources/scripts/api/RechargeM.ts

@@ -1,4 +1,3 @@
-import { DebugM } from "../mgr/DebugM";
 import PayM from "../mgr/PayM";
 import WsM from "./WsM";
 

+ 3 - 3
assets/resources/scripts/api/UserM.ts

@@ -146,13 +146,13 @@ export default class UserM {
   }
 
   getEsTogDisplay(): string {
-    return Utils.formatNumber(this.getGoodsCount(GoodsId.ES_TOG), 0);
+    return Utils.formatNumber(this.getGoodsCount(GoodsId.ES_TOG), 1);
   }
   getTogDisplay(): string {
-    return Utils.formatNumber(this.getGoodsCount(GoodsId.TOG), 0);
+    return Utils.formatNumber(this.getGoodsCount(GoodsId.TOG), 1);
   }
   getPogDisplay(): string {
-    return Utils.formatNumber(this.getGoodsCount(GoodsId.POG), 0);
+    return Utils.formatNumber(this.getGoodsCount(GoodsId.POG), 1);
   }
   refreshGoods(goodList: GoodInfo[]) {
     this.data.goodList = goodList;

+ 6 - 0
assets/resources/scripts/mgr/DebugM.ts

@@ -3,6 +3,12 @@ import { Tips } from "./Tips";
 import { find } from "cc";
 
 export class DebugM {
+  isOpenPlayGame() {
+    return this.isDebugPeople();
+  }
+  isOpenFamily() {
+    return this.isDebugPeople();
+  }
   private static _ins: DebugM;
   public static get ins(): DebugM {
     return this._ins ?? (this._ins = new DebugM());

+ 27 - 0
assets/resources/scripts/mgr/PushMsgM.ts

@@ -1,7 +1,11 @@
+import { Hall } from "../../prefab/hall/Hall";
 import { RewardLayer } from "../../prefab/layer/RewardLayer";
+import { TipsLayer } from "../../prefab/layer/TipsLayer";
 import UserM, { GoodInfo } from "../api/UserM";
 import WsM from "../api/WsM";
 import { WS, WsResponse } from "../net/WS";
+import Utils from "../utils/Utils";
+import EV, { EV_TYPE } from "./EV";
 import ItemsM from "./ItemsM";
 
 export class RewardGoods {
@@ -19,9 +23,32 @@ export default class PushMsgM {
     WS.ins.on(10003, this.onRefreshUserData, this);
     WS.ins.on(10004, this.onRewardGoods, this);
 
+    WS.ins.on(10005, this.OnJoinFamilySuccess, this);
+    WS.ins.on(10006, this.OnFamilyKickedMe, this);
     WS.ins.on(401, this.OnUserTokenError, this);
   }
 
+  async OnJoinFamilySuccess(msg: WsResponse) {
+    await UserM.ins.refreshInfo();
+    await TipsLayer.showConfirm(
+      "",
+      Utils.setI18nLabel("Family.JoinFamilySuccess")
+    );
+    EV.ins.emit(EV_TYPE.FAMILY_STATUS_UPDATE);
+
+    Hall.ins.switchPage(Hall.PageFamily);
+  }
+
+  async OnFamilyKickedMe(msg: WsResponse) {
+    let result = await TipsLayer.showConfirm(
+      "",
+      Utils.setI18nLabel("Family.KickedMe")
+    );
+
+    await UserM.ins.refreshInfo();
+    EV.ins.emit(EV_TYPE.FAMILY_STATUS_UPDATE);
+  }
+
   OnUserTokenError(msg: WsResponse) {
     console.warn("OnUserTokenError", msg);
     window.location.reload();

+ 281 - 0
assets/resources/scripts/utils/DisplayNumber.ts

@@ -0,0 +1,281 @@
+export default class DisplayNumber {
+  private static aLetters: any = [
+    "K",
+    3,
+    "M",
+    6,
+    "B",
+    9,
+    "T",
+    12,
+    "aa",
+    15,
+    "bb",
+    18,
+    "cc",
+    21,
+    "dd",
+    24,
+    "ee",
+    27,
+    "ff",
+    30,
+    "gg",
+    33,
+    "hh",
+    36,
+    "ii",
+    39,
+    "jj",
+    42,
+    "kk",
+    45,
+    "ll",
+    48,
+    "mm",
+    51,
+    "nn",
+    54,
+    "oo",
+    57,
+    "pp",
+    60,
+    "qq",
+    63,
+    "rr",
+    66,
+    "ss",
+    69,
+    "tt",
+    72,
+    "uu",
+    75,
+    "vv",
+    78,
+    "ww",
+    81,
+    "xx",
+    84,
+    "yy",
+    87,
+    "zz",
+    90,
+    "aaa",
+    93,
+    "bbb",
+    96,
+    "ccc",
+    99,
+    "ddd",
+    102,
+    "eee",
+    105,
+    "fff",
+    108,
+    "ggg",
+    111,
+    "hhh",
+    114,
+    "iii",
+    117,
+    "jjj",
+    120,
+    "kkk",
+    123,
+    "lll",
+    126,
+    "mmm",
+    129,
+    "nnn",
+    132,
+    "ooo",
+    135,
+    "ppp",
+    138,
+    "qqq",
+    141,
+    "rrr",
+    144,
+    "sss",
+    147,
+    "ttt",
+    150,
+    "uuu",
+    153,
+    "vvv",
+    156,
+    "www",
+    159,
+    "xxx",
+    162,
+    "yyy",
+    165,
+    "zzz",
+    168,
+    "aaaa",
+    171,
+    "bbbb",
+    174,
+    "cccc",
+    177,
+    "dddd",
+    180,
+    "eeee",
+    183,
+    "ffff",
+    186,
+    "gggg",
+    189,
+    "hhhh",
+    192,
+    "iiii",
+    195,
+    "jjjj",
+    198,
+    "kkkk",
+    201,
+    "llll",
+    204,
+    "mmmm",
+    207,
+    "nnnn",
+    210,
+    "oooo",
+    213,
+    "pppp",
+    216,
+    "qqqq",
+    219,
+    "rrrr",
+    222,
+    "ssss",
+    225,
+    "tttt",
+    228,
+    "uuuu",
+    231,
+    "vvvv",
+    234,
+    "wwww",
+    237,
+    "xxxx",
+    240,
+    "yyyy",
+    243,
+    "zzzz",
+    246,
+    "aaaaa",
+    249,
+    "bbbbb",
+    252,
+    "ccccc",
+    255,
+    "ddddd",
+    258,
+    "eeeee",
+    261,
+    "fffff",
+    264,
+    "ggggg",
+    267,
+    "hhhhh",
+    270,
+    "iiiii",
+    273,
+    "jjjjj",
+    276,
+    "kkkkk",
+    279,
+    "lllll",
+    282,
+    "mmmmm",
+    285,
+    "nnnnn",
+    288,
+    "ooooo",
+    291,
+    "ppppp",
+    294,
+    "qqqqq",
+    297,
+    "rrrrr",
+    300,
+    "sssss",
+    303,
+    "ttttt",
+    306,
+    "uuuuu",
+    309,
+    "vvvvv",
+    312,
+    "wwwww",
+    315,
+    "xxxxx",
+    318,
+    "yyyyy",
+    321,
+    "zzzzz",
+    324,
+  ];
+
+  static displayNumber(num: number, afterdot: number = 5): string {
+    if (num === 0) return "0";
+    
+    // 处理负数
+    const isNegative = num < 0;
+    const absNum = Math.abs(num);
+    
+    // 找到合适的缩写
+    let letter = "";
+    let divisor = 1;
+    
+    for (let i = 0; i < this.aLetters.length; i += 2) {
+      const currentLetter = this.aLetters[i];
+      const currentPower = this.aLetters[i + 1];
+      const currentDivisor = Math.pow(10, currentPower);
+      
+      if (absNum >= currentDivisor) {
+        letter = currentLetter;
+        divisor = currentDivisor;
+      } else {
+        break;
+      }
+    }
+    
+    // 计算缩写后的数值
+    const abbreviatedNum = absNum / divisor;
+    
+    // 直接截断到指定的小数位数,不进行四捨五入
+    const multiplier = Math.pow(10, afterdot);
+    const truncatedNum = Math.floor(abbreviatedNum * multiplier) / multiplier;
+    
+    // 格式化数字,保留指定的小数位数
+    let formattedNum = truncatedNum.toFixed(afterdot);
+    
+    // 如果afterdot为0,直接返回整数部分
+    if (afterdot === 0) {
+      formattedNum = Math.floor(abbreviatedNum).toString();
+    } else {
+      // 移除末尾的0,但保留afterdot指定的位数
+      const parts = formattedNum.split('.');
+      if (parts.length > 1) {
+        const integerPart = parts[0];
+        let decimalPart = parts[1];
+        
+        // 只保留afterdot指定的位数,移除多余的0
+        decimalPart = decimalPart.substring(0, afterdot).replace(/0+$/, '');
+        
+        if (decimalPart.length > 0) {
+          formattedNum = integerPart + '.' + decimalPart;
+        } else {
+          formattedNum = integerPart;
+        }
+      }
+    }
+    
+    // 添加负号(如果有)
+    const sign = isNegative ? "-" : "";
+    
+    return sign + formattedNum + letter;
+  }
+}

+ 9 - 0
assets/resources/scripts/utils/DisplayNumber.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.24",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "1bfa4282-d4f0-482c-abb0-96e997637293",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 5 - 2
assets/resources/scripts/utils/Utils.ts

@@ -28,6 +28,7 @@ import { LanguageManager } from "./LanguageManager";
 import PoolMgr from "./PoolMgr";
 import BaseUI from "../base/BaseUI";
 import { Tips } from "../mgr/Tips";
+import DisplayNumber from "./DisplayNumber";
 
 export enum EFLY_TYPE {
   金币,
@@ -174,8 +175,10 @@ export default class Utils {
     num = Number(num.toFixed(afterdot));
      if (num < 1000) {
       return num.toString();
-    }
-    return BigNumber.getLargeString(num);
+     }
+    return DisplayNumber.displayNumber(num,afterdot);
+    
+    // return BigNumber.getLargeString(num);
   }
   public static getPowNum(p) {
     return Math.pow(10, p);

+ 2 - 2
settings/v2/packages/information.json

@@ -7,7 +7,7 @@
       "enable": true,
       "customSplash": {
         "complete": true,
-        "form": "https://creator-api.cocos.com/api/form/show?sid=d87da536ccdf19cb24727f534391b889"
+        "form": "https://creator-api.cocos.com/api/form/show?sid=44a8766990987461eae385c4fd2979c8"
       }
     },
     "removeSplash": {
@@ -16,7 +16,7 @@
       "enable": true,
       "removeSplash": {
         "complete": true,
-        "form": "https://creator-api.cocos.com/api/form/show?sid=d87da536ccdf19cb24727f534391b889"
+        "form": "https://creator-api.cocos.com/api/form/show?sid=44a8766990987461eae385c4fd2979c8"
       }
     }
   }

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů