From 9a3525afd3097eb60b8a9fc5125c74eb8905c9b7 Mon Sep 17 00:00:00 2001 From: xlj <543978819@qq.com> Date: Tue, 16 Sep 2025 16:55:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=81=8A=E5=A4=A9=E9=83=A8?= =?UTF-8?q?=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scripts/chat18x/core/ApiConfigLoader.ts | 37 +- assets/Scripts/chat18x/core/ChatAIService.ts | 3 +- assets/Scripts/chat18x/core/ChatController.ts | 8 +- .../Scripts/chat18x/core/RoleConfigLoader.ts | 5 +- assets/Scripts/chat18x/data/DialogData.ts | 14 +- .../Scripts/chat18x/manager/DialogManager.ts | 90 +- .../ui/components/ChatContentsLayout.ts | 161 +- .../chat18x/ui/components/DialogBubble.ts | 32 +- assets/Scripts/chat18x/ui/panels/ChatPanel.ts | 7 +- assets/Scripts/schema/schema.ts | 6 +- assets/bundles/Chat18x/ChatPanel.prefab | 1630 ++++++++++++----- assets/bundles/DataTable/tbaicharacters.bin | Bin 79915 -> 82274 bytes assets/bundles/DataTable/tbgirls.bin | Bin 2930 -> 2929 bytes assets/bundles/DataTable/tbgirlsdetail.bin | Bin 28150 -> 28155 bytes assets/bundles/DataTable/tbglobalconfig.bin | Bin 2324 -> 1897 bytes xchat_cfg | 2 +- 16 files changed, 1442 insertions(+), 553 deletions(-) diff --git a/assets/Scripts/chat18x/core/ApiConfigLoader.ts b/assets/Scripts/chat18x/core/ApiConfigLoader.ts index ec957223..e22ff472 100644 --- a/assets/Scripts/chat18x/core/ApiConfigLoader.ts +++ b/assets/Scripts/chat18x/core/ApiConfigLoader.ts @@ -3,6 +3,8 @@ * 统一管理所有API相关的配置信息 */ +import { DataId, DataManager } from "../data/DataManager"; +import { GlobalData } from "../data/GlobalData"; import { ConfigManager } from "../manager/ConfigManager"; export interface AIConfig { @@ -41,15 +43,21 @@ export class ApiConfig { * TODO: 应该从环境变量或安全配置文件中读取 */ private initConfig(): void { - const config = ConfigManager.tables.TbGlobalConfig; + //const config = DataManager.I.getDataById(DataId.Global).getApiKey(); this.config = { // 警告: API密钥不应该硬编码在代码中 // 生产环境中应该从环境变量或安全配置文件中读取 - apiKey: config.ApiKey, - model: config.Model, - temperature: config.Temperature, - maxTokens: config.MaxTokens, - timeout: config.Timeout, // 30秒 + apiKey: DataManager.I.getDataById(DataId.Global).getApiKey(), + model: DataManager.I.getDataById(DataId.Global).getModel(), + temperature: DataManager.I.getDataById( + DataId.Global + ).getTemperature(), + maxTokens: DataManager.I.getDataById( + DataId.Global + ).getMaxTokens(), + timeout: DataManager.I.getDataById( + DataId.Global + ).getTimeout(), // 30秒 }; } @@ -64,13 +72,18 @@ export class ApiConfig { * 获取情绪AI配置 */ public getEmotionAIConfig(): AIConfig { - const config = ConfigManager.tables.TbGlobalConfig; return { - apiKey: config.emotionApiKey, - model: config.Model, - temperature: config.Temperature, - maxTokens: config.MaxTokens, - timeout: config.Timeout, + apiKey: DataManager.I.getDataById( + DataId.Global + ).getEmotionApiKey(), + model: DataManager.I.getDataById(DataId.Global).getModel(), + temperature: 0.2, + maxTokens: DataManager.I.getDataById( + DataId.Global + ).getMaxTokens(), + timeout: DataManager.I.getDataById( + DataId.Global + ).getTimeout(), }; } diff --git a/assets/Scripts/chat18x/core/ChatAIService.ts b/assets/Scripts/chat18x/core/ChatAIService.ts index 0a7d2b8a..f6f097b5 100644 --- a/assets/Scripts/chat18x/core/ChatAIService.ts +++ b/assets/Scripts/chat18x/core/ChatAIService.ts @@ -87,10 +87,9 @@ export class ChatAIService { const config = ApiConfig.Instance.getAIConfig(); // 使用 ChatHistoryManager 的统一加载方法(优先本地,无则获取服务端) - const savedHistory = await ChatHistoryManager.Instance.loadChatHistory( + let savedHistory = await ChatHistoryManager.Instance.loadChatHistory( roleId ); - let chat; if (savedHistory && savedHistory.length > 0) { chat = this.ai.chats.create({ diff --git a/assets/Scripts/chat18x/core/ChatController.ts b/assets/Scripts/chat18x/core/ChatController.ts index 9b4d59a8..aefc5f81 100644 --- a/assets/Scripts/chat18x/core/ChatController.ts +++ b/assets/Scripts/chat18x/core/ChatController.ts @@ -191,9 +191,6 @@ export class ChatController { throw new Error("Role ID is not available in ChatModel"); } - // 通知界面消息发送开始 - this.callback?.onMessageSent(message); - // 添加用户消息到模型 this.chatModel.addDialog(true, message); @@ -201,6 +198,9 @@ export class ChatController { this.dialogManager?.updateDialog(true, message, true); this.callback?.onDialogUpdated(); + // 通知界面消息发送开始 + this.callback?.onMessageSent(message); + // 显示加载中的对话 this.dialogManager?.addLoadingDialog(); @@ -469,7 +469,7 @@ export class ChatController { * 检查是否有指定角色的数据 * @param roleId 角色ID */ - public hasRoleData(categoryId:string,roleId: number): boolean { + public hasRoleData(categoryId: string, roleId: number): boolean { return this.chatModel.hasRoleData(roleId); } diff --git a/assets/Scripts/chat18x/core/RoleConfigLoader.ts b/assets/Scripts/chat18x/core/RoleConfigLoader.ts index d6344572..accbfa3e 100644 --- a/assets/Scripts/chat18x/core/RoleConfigLoader.ts +++ b/assets/Scripts/chat18x/core/RoleConfigLoader.ts @@ -20,6 +20,9 @@ export class RoleConfigLoader { AiCharacter.basePrompt + "\n" + AiCharacter.additionPrompt; + + console.log(AiCharacter.basePrompt); + console.log(AiCharacter.additionPrompt); return prompt; } @@ -30,7 +33,7 @@ export class RoleConfigLoader { */ public static getEmotionInstruction(roleId: number): string { const AiCharacter = ConfigManager.tables.TbAiCharacters.get(roleId); - const globalPrompt = ConfigManager.tables.TbGlobalConfig.EmotionRating; + const globalPrompt = ConfigManager.tables.TbGlobalConfig.EmotionBasePrompt; const prompt = globalPrompt + "\n" + AiCharacter.basePrompt; return prompt; } diff --git a/assets/Scripts/chat18x/data/DialogData.ts b/assets/Scripts/chat18x/data/DialogData.ts index 15b87231..d1a4f7e3 100644 --- a/assets/Scripts/chat18x/data/DialogData.ts +++ b/assets/Scripts/chat18x/data/DialogData.ts @@ -4,16 +4,24 @@ export interface Dialog { isLoading?: boolean; } -export class DemoData { +export class DiaLogData { public Dialogs: Dialog[] = []; public cleanDialog() { this.Dialogs = []; } - public pushDialog(isPlayer: boolean, str: string, isLoading: boolean = false) { + public pushDialog( + isPlayer: boolean, + str: string, + isLoading: boolean = false + ) { if (!this.Dialogs) this.Dialogs = []; - this.Dialogs.push({ isPlayer: isPlayer, content: str, isLoading: isLoading }); + this.Dialogs.push({ + isPlayer: isPlayer, + content: str, + isLoading: isLoading, + }); } public GetDialogs() { diff --git a/assets/Scripts/chat18x/manager/DialogManager.ts b/assets/Scripts/chat18x/manager/DialogManager.ts index c6a6bab5..65844968 100644 --- a/assets/Scripts/chat18x/manager/DialogManager.ts +++ b/assets/Scripts/chat18x/manager/DialogManager.ts @@ -1,7 +1,5 @@ -import { find } from "cc"; import { ChatContentsLayout } from "../ui/components/ChatContentsLayout"; -import { DemoData, Dialog } from "../data/DialogData"; -import { NavigationManager } from "./NavigationManager"; +import { DiaLogData, Dialog } from "../data/DialogData"; import Utils from "db://assets/Scripts/Main/Common/Utils"; import { InnerMsgCode } from "db://assets/Scripts/Main/Config/InnerMsgCode"; @@ -31,19 +29,15 @@ export class DialogManager { } private constructor() { - this.demoData = new DemoData(); + this.dialogData = new DiaLogData(); } /** 对话数据实例 */ - private demoData: DemoData; - - /** 当前主题ID */ - private themeId = -1; + private dialogData: DiaLogData; /** 聊天内容布局组件引用 */ public layoutout: ChatContentsLayout; - /** * 更新对话内容 * @@ -57,14 +51,9 @@ export class DialogManager { fromPlayer: boolean = false ): void { if (fromPlayer) { - this.demoData.cleanDialog(); + this.dialogData.cleanDialog(); } - this.demoData.pushDialog(isPlayer, str); - console.log("Dialog updated:", { - isPlayer, - content: str.substring(0, 50) + "...", - }); - Utils.sendInnerMsg(InnerMsgCode.Chat_DialogRefresh); + this.dialogData.pushDialog(isPlayer, str); } /** @@ -80,27 +69,25 @@ export class DialogManager { fromPlayer: boolean = false ): void { if (fromPlayer) { - this.demoData.cleanDialog(); + this.dialogData.cleanDialog(); } // 如果是玩家消息,直接添加单个气泡 if (isPlayer) { - this.demoData.pushDialog(isPlayer, str); + this.dialogData.pushDialog(isPlayer, str); console.log("Dialog updated:", { isPlayer, content: str.substring(0, 50) + "...", }); - Utils.sendInnerMsg(InnerMsgCode.Chat_DialogRefresh); return; } // 如果是AI消息,进行分段处理 const segments = this.splitMessageIntoSegments(str); - + if (segments.length <= 1) { // 如果只有一段,直接显示单个气泡 - this.demoData.pushDialog(isPlayer, str); - Utils.sendInnerMsg(InnerMsgCode.Chat_DialogRefresh); + this.dialogData.pushDialog(isPlayer, str); } else { // 多段内容,依次显示多个气泡 this.displaySegmentsWithDelay(segments, isPlayer); @@ -115,16 +102,16 @@ export class DialogManager { private splitMessageIntoSegments(message: string): string[] { // 首先按双换行符分割 let segments = message.split(/\n\n+/); - + // 如果只有一段,则按单换行符分割 if (segments.length === 1) { segments = message.split(/\n+/); } - + // 过滤空段落并去除首尾空白 return segments - .map(segment => segment.trim()) - .filter(segment => segment.length > 0); + .map((segment) => segment.trim()) + .filter((segment) => segment.length > 0); } /** @@ -132,22 +119,17 @@ export class DialogManager { * @param segments 段落数组 * @param isPlayer 是否为玩家消息 */ - private displaySegmentsWithDelay(segments: string[], isPlayer: boolean): void { - let currentDelay = 500; // 基础延迟 500ms - + private displaySegmentsWithDelay( + segments: string[], + isPlayer: boolean + ): void { + // let currentDelay = 500; // 基础延迟 500ms + // 每个后续段落增加随机延迟 (800-1500ms) + + // currentDelay += 800 + Math.random() * 700; + segments.forEach((segment, index) => { - setTimeout(() => { - this.demoData.pushDialog(isPlayer, segment); - console.log(`Segment ${index + 1}/${segments.length} displayed:`, { - isPlayer, - content: segment.substring(0, 30) + "...", - delay: currentDelay - }); - Utils.sendInnerMsg(InnerMsgCode.Chat_DialogRefresh); - }, currentDelay); - - // 每个后续段落增加随机延迟 (800-1500ms) - currentDelay += 800 + Math.random() * 700; + this.dialogData.pushDialog(isPlayer, segment); }); } @@ -156,7 +138,7 @@ export class DialogManager { * 显示"..."循环动画表示AI正在回复 */ public addLoadingDialog(): void { - this.demoData.pushDialog(false, "...", true); + this.dialogData.pushDialog(false, "...", true); console.log("Loading dialog added"); Utils.sendInnerMsg(InnerMsgCode.Chat_DialogRefresh); } @@ -166,8 +148,8 @@ export class DialogManager { * 在收到AI回复或出错时调用 */ public removeLoadingDialog(): void { - const dialogs = this.demoData.GetDialogs(); - const loadingIndex = dialogs.findIndex(dialog => dialog.isLoading); + const dialogs = this.dialogData.GetDialogs(); + const loadingIndex = dialogs.findIndex((dialog) => dialog.isLoading); if (loadingIndex !== -1) { dialogs.splice(loadingIndex, 1); console.log("Loading dialog removed"); @@ -181,14 +163,14 @@ export class DialogManager { * @returns {Dialog[]} 对话记录数组 */ public getDialogs() { - return this.demoData.GetDialogs(); + return this.dialogData.GetDialogs(); } /** * 清空当前对话记录 */ public clearDialogs(): void { - this.demoData.cleanDialog(); + this.dialogData.cleanDialog(); console.log("All dialogs cleared"); Utils.sendInnerMsg(InnerMsgCode.Chat_DialogRefresh); } @@ -198,9 +180,13 @@ export class DialogManager { * @param dialogs 对话记录数组 */ public setDialogs(dialogs: Dialog[]): void { - this.demoData.cleanDialog(); - dialogs.forEach(dialog => { - this.demoData.pushDialog(dialog.isPlayer, dialog.content, dialog.isLoading || false); + this.dialogData.cleanDialog(); + dialogs.forEach((dialog) => { + this.dialogData.pushDialog( + dialog.isPlayer, + dialog.content, + dialog.isLoading || false + ); }); console.log(`DialogManager: Set ${dialogs.length} dialogs`); Utils.sendInnerMsg(InnerMsgCode.Chat_DialogRefresh); @@ -219,14 +205,14 @@ export class DialogManager { * 获取对话记录数量 */ public getDialogCount(): number { - return this.demoData.GetDialogs().length; + return this.dialogData.GetDialogs().length; } /** * 获取最后一条对话记录 */ public getLastDialog(): Dialog | null { - const dialogs = this.demoData.GetDialogs(); + const dialogs = this.dialogData.GetDialogs(); return dialogs.length > 0 ? dialogs[dialogs.length - 1] : null; } @@ -234,6 +220,6 @@ export class DialogManager { * 检查是否有对话记录 */ public hasDialogs(): boolean { - return this.demoData.GetDialogs().length > 0; + return this.dialogData.GetDialogs().length > 0; } } diff --git a/assets/Scripts/chat18x/ui/components/ChatContentsLayout.ts b/assets/Scripts/chat18x/ui/components/ChatContentsLayout.ts index 178f3410..6d52761c 100644 --- a/assets/Scripts/chat18x/ui/components/ChatContentsLayout.ts +++ b/assets/Scripts/chat18x/ui/components/ChatContentsLayout.ts @@ -29,6 +29,9 @@ export class ChatContentsLayout extends Component { fixMaxWidth: number; + // 用于跟踪延时任务,支持中断清理 + private delayedTasks: number[] = []; + protected start(): void { this.lBubble.node.active = false; this.rBubble.node.active = false; @@ -42,6 +45,9 @@ export class ChatContentsLayout extends Component { } UpdateDialog(dialogs: Dialog[]) { + // 清理所有正在进行的延时任务 + this.clearDelayedTasks(); + // 隐藏当前使用的气泡并放入缓存 for (let i = 0; i < this.bubbles.length; i++) { if (this.bubbles[i].node) { @@ -51,7 +57,7 @@ export class ChatContentsLayout extends Component { } this.bubbles = []; - this.updateDialogLayout(dialogs); + this.updateDialogLayoutWithDelay(dialogs); // 清理多余的缓存气泡,避免内存泄漏 this.cleanupExcessCachedBubbles(); @@ -93,7 +99,7 @@ export class ChatContentsLayout extends Component { ? instantiate(this.rBubble.node) : instantiate(this.lBubble.node); newBubble = newBubbleNode.getComponent(DialogBubble); - newBubble.init(); + newBubble.init(650); newBubbleNode.setParent(this.node); } @@ -104,6 +110,7 @@ export class ChatContentsLayout extends Component { pendingUpdates++; newBubble.updateBubbleContent( dialog.content, + dialog.isPlayer, (actualHeight: number) => { initPosY += actualHeight + 40; pendingUpdates--; @@ -135,4 +142,154 @@ export class ChatContentsLayout extends Component { } } } + + private clearDelayedTasks() { + // 清理所有正在进行的延时任务 + for (const taskId of this.delayedTasks) { + clearTimeout(taskId); + } + this.delayedTasks = []; + } + + private groupConsecutiveNonPlayerDialogs(dialogs: Dialog[]): Dialog[][] { + const groups: Dialog[][] = []; + let currentGroup: Dialog[] = []; + + for (const dialog of dialogs) { + if (dialog.isPlayer) { + // 遇到player消息,结束当前非player组 + if (currentGroup.length > 0) { + groups.push([...currentGroup]); + currentGroup = []; + } + // player消息单独成组 + groups.push([dialog]); + } else { + // 非player消息加入当前组 + currentGroup.push(dialog); + } + } + + // 处理最后一组非player消息 + if (currentGroup.length > 0) { + groups.push(currentGroup); + } + + return groups; + } + + private updateDialogLayoutWithDelay(dialogs: Dialog[]) { + const groups = this.groupConsecutiveNonPlayerDialogs(dialogs); + let initPosY: number = this.initPos.position.y; + + // 倒序处理组,保持原有的显示顺序 + this.processGroupsWithDelay(groups, groups.length - 1, initPosY); + } + + private processGroupsWithDelay( + groups: Dialog[][], + groupIndex: number, + currentPosY: number + ) { + if (groupIndex < 0) return; + + const currentGroup = groups[groupIndex]; + + // 直接渲染组,延时逻辑已移到单条消息级别 + this.renderDialogGroup(currentGroup, currentPosY, (newPosY) => { + // 递归处理下一组,传递更新后的位置 + this.processGroupsWithDelay(groups, groupIndex - 1, newPosY); + }); + } + + private renderDialogGroup( + dialogs: Dialog[], + startPosY: number, + onComplete: (finalPosY: number) => void + ) { + let currentPosY = startPosY; + + const updateNextBubble = (index: number) => { + if (index < 0) { + onComplete(currentPosY); + return; + } + + const dialog = dialogs[index]; + + // 计算当前消息的延时:非player消息且不是组内最后一条时添加延时 + const isNonPlayerMessage = !dialog.isPlayer; + const isLastInGroup = index === dialogs.length - 1; + const delay = + isNonPlayerMessage && !isLastInGroup ? Math.random() * 1000 + 500 : 0; // 500-1500ms随机延时 + + const renderCurrentBubble = () => { + let newBubble: DialogBubble = null; + + // 尝试从缓存中获取合适的气泡 + const isPlayerBubble = dialog.isPlayer; + for (let j = 0; j < this.cachedBubbles.length; j++) { + const cached = this.cachedBubbles[j]; + if (cached && cached.node) { + const isRightBubble = cached.node.position.x > 0; + if ( + (isPlayerBubble && isRightBubble) || + (!isPlayerBubble && !isRightBubble) + ) { + newBubble = cached; + this.cachedBubbles.splice(j, 1); + break; + } + } + } + + // 如果缓存中没有合适的气泡,创建新的 + if (!newBubble) { + let newBubbleNode = isPlayerBubble + ? instantiate(this.rBubble.node) + : instantiate(this.lBubble.node); + newBubble = newBubbleNode.getComponent(DialogBubble); + newBubble.init(650); + newBubbleNode.setParent(this.node); + } + + newBubble.node.active = true; + let pos = newBubble.node.position; + newBubble.node.position = new Vec3(pos.x, currentPosY, pos.z); + + newBubble.updateBubbleContent( + dialog.content, + dialog.isPlayer, + (actualHeight: number) => { + currentPosY += actualHeight + 40; + // 渲染完当前气泡后,处理下一个 + updateNextBubble(index - 1); + }, + dialog.isLoading || false + ); + + this.bubbles.push(newBubble); + }; + + if (delay > 0) { + // 添加延时任务ID到跟踪数组 + const taskId = setTimeout(() => { + // 从跟踪数组中移除已完成的任务 + const taskIndex = this.delayedTasks.indexOf(taskId); + if (taskIndex > -1) { + this.delayedTasks.splice(taskIndex, 1); + } + renderCurrentBubble(); + }, delay); + + this.delayedTasks.push(taskId); + } else { + // 立即渲染 + renderCurrentBubble(); + } + }; + + // 从组内最后一个对话开始处理(倒序) + updateNextBubble(dialogs.length - 1); + } } diff --git a/assets/Scripts/chat18x/ui/components/DialogBubble.ts b/assets/Scripts/chat18x/ui/components/DialogBubble.ts index d34145db..fb09f57a 100644 --- a/assets/Scripts/chat18x/ui/components/DialogBubble.ts +++ b/assets/Scripts/chat18x/ui/components/DialogBubble.ts @@ -5,14 +5,21 @@ import { Node, Overflow, Size, + Sprite, UITransform, view, } from "cc"; import Tools from "../../utils/tools"; +import { GirlData } from "../../data/GirlData"; +import { DataId, DataManager } from "../../data/DataManager"; +import { NavigationManager } from "../../manager/NavigationManager"; +import ResManager from "../../../Main/Manager/ResManager"; const { ccclass, property } = _decorator; @ccclass("DialogBubble") export class DialogBubble extends Component { + @property(Sprite) + avatar: Sprite = null; @property(UITransform) bg: UITransform = null; @property(Label) @@ -21,8 +28,12 @@ export class DialogBubble extends Component { contentT: UITransform = null; fixMaxWidth: number; - private loadingAnimationId: number = null; + + uiTransform: UITransform; + init(maxWidth?: number) { + this.uiTransform = this.node.getComponent(UITransform); + // 如果没有提供maxWidth,使用屏幕宽度的80% if (maxWidth === undefined) { this.fixMaxWidth = view.getVisibleSize().width * 0.8; @@ -33,6 +44,7 @@ export class DialogBubble extends Component { updateBubbleContent( str: string, + isPlayer: boolean = false, callback?: (actualHeight: number) => void, isLoading: boolean = false ) { @@ -80,7 +92,7 @@ export class DialogBubble extends Component { // 设置内容区域宽度,让Label自动计算高度 this.contentT.setContentSize(new Size(contentWidth, 0)); this.bg.setContentSize(new Size(contentWidth + 37, 0)); - + this.uiTransform.setContentSize(new Size(contentWidth + 37, 0)); // 强制更新Label的渲染数据以获取正确的高度 this.content.updateRenderData(true); @@ -95,6 +107,9 @@ export class DialogBubble extends Component { // 根据内容大小调整背景大小,添加适当的内边距 //const bgHeight = actualHeight + 17; this.bg.setContentSize(new Size(actualSize.x + 40, actualSize.y + 30)); + this.uiTransform.setContentSize( + new Size(actualSize.x + 40, actualSize.y + 30) + ); // 回调通知实际高度 if (callback) { @@ -104,6 +119,19 @@ export class DialogBubble extends Component { // 返回预估的背景高度(用于同步计算) const estimatedHeight = Math.max(lines.length * 35 + 20, 60); // 最小高度60 + + //设置头像 + if (isPlayer) { + //获取玩家头像,等接入luffa + } else { + const girlData = DataManager.I.getDataById(DataId.Girl); + const path = girlData.getGrilAvatar( + NavigationManager.Instance.getSelectedCategoryId().toString(), + NavigationManager.Instance.getSelectedGirlId() + ); + ResManager.I.changeBundleSpriteFrame(this.avatar, path, "Girls"); + } + return estimatedHeight; } diff --git a/assets/Scripts/chat18x/ui/panels/ChatPanel.ts b/assets/Scripts/chat18x/ui/panels/ChatPanel.ts index f99d24e0..8c4b9a4f 100644 --- a/assets/Scripts/chat18x/ui/panels/ChatPanel.ts +++ b/assets/Scripts/chat18x/ui/panels/ChatPanel.ts @@ -33,6 +33,7 @@ import { SceneBgVideoLayer } from "../../../Sub/UI/SceneBgVideoLayer"; import { NavigationManager, PanelType } from "../../manager/NavigationManager"; import { GirlService } from "../../network/services/GirlService"; import proto from "db://assets/Scripts/proto/proto.pb.js"; +import { TipsPanel } from "./TipsPanel"; const { ccclass, property } = _decorator; @ccclass("ChatPanel") @@ -389,7 +390,10 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { public async OnClickSend() { const str = this.editBox.string; - if (!str || str == "") return; + if (!str || str == "") { + TipsPanel.show("请输入内容"); + return; + } // 通过ChatController发送消息 const succeed = await this.chatController.sendMessage(str); @@ -437,6 +441,7 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { onChatLimitReached(): void { this.payToTalkPanel.show(this.categoryId, this.id); + TipsPanel.show(LanguageUtils.getText("chat_error_code_1001")); } /** * 情绪状态更新回调 (实现IChatPanelCallback接口) diff --git a/assets/Scripts/schema/schema.ts b/assets/Scripts/schema/schema.ts index 55a12bb9..e22b5d54 100644 --- a/assets/Scripts/schema/schema.ts +++ b/assets/Scripts/schema/schema.ts @@ -232,7 +232,7 @@ export class GlobalConfig { this.OnceChatAddScore = _buf_.readInt() this.ScoreExchangeStarLevel = _buf_.readInt() this.GameName = _buf_.readString() - this.EmotionRating = _buf_.readString() + this.EmotionBasePrompt = _buf_.readString() this.girlBasePrompt = _buf_.readString() } @@ -276,7 +276,7 @@ export class GlobalConfig { /** * 情绪评分机器人system_prompt,需拼接角色prompt */ - readonly EmotionRating: string + readonly EmotionBasePrompt: string /** * ai机器人基础规则 */ @@ -801,7 +801,7 @@ export class TbGlobalConfig { /** * 情绪评分机器人system_prompt,需拼接角色prompt */ - get EmotionRating(): string { return this._data.EmotionRating; } + get EmotionBasePrompt(): string { return this._data.EmotionBasePrompt; } /** * ai机器人基础规则 */ diff --git a/assets/bundles/Chat18x/ChatPanel.prefab b/assets/bundles/Chat18x/ChatPanel.prefab index c0f7d9c0..f021b49e 100644 --- a/assets/bundles/Chat18x/ChatPanel.prefab +++ b/assets/bundles/Chat18x/ChatPanel.prefab @@ -22,32 +22,32 @@ "__id__": 2 }, { - "__id__": 205 + "__id__": 237 }, { "__id__": 74 }, { - "__id__": 98 + "__id__": 114 }, { - "__id__": 283 + "__id__": 315 } ], "_active": true, "_components": [ { - "__id__": 313 + "__id__": 345 }, { - "__id__": 315 + "__id__": 347 }, { - "__id__": 317 + "__id__": 349 } ], "_prefab": { - "__id__": 319 + "__id__": 351 }, "_lpos": { "__type__": "cc.Vec3", @@ -100,26 +100,29 @@ "__id__": 56 }, { - "__id__": 122 + "__id__": 62 }, { - "__id__": 134 + "__id__": 154 + }, + { + "__id__": 166 } ], "_active": true, "_components": [ { - "__id__": 198 + "__id__": 230 }, { - "__id__": 200 + "__id__": 232 }, { - "__id__": 202 + "__id__": 234 } ], "_prefab": { - "__id__": 204 + "__id__": 236 }, "_lpos": { "__type__": "cc.Vec3", @@ -1366,92 +1369,29 @@ }, { "__type__": "cc.Node", - "_name": "BubbleBox", + "_name": "initPos", "_objFlags": 0, "__editorExtras__": {}, "_parent": { "__id__": 2 }, - "_children": [ - { - "__id__": 57 - } - ], - "_active": true, - "_components": [ - { - "__id__": 63 - }, - { - "__id__": 65 - }, - { - "__id__": 67 - }, - { - "__id__": 69 - }, - { - "__id__": 71 - } - ], - "_prefab": { - "__id__": 121 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 0, - "y": 10, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 1, - "y": 1, - "z": 1 - }, - "_mobility": 0, - "_layer": 33554432, - "_euler": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_id": "" - }, - { - "__type__": "cc.Node", - "_name": "initPos", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 56 - }, "_children": [], "_active": true, "_components": [ { - "__id__": 58 + "__id__": 57 }, { - "__id__": 60 + "__id__": 59 } ], "_prefab": { - "__id__": 62 + "__id__": 61 }, "_lpos": { "__type__": "cc.Vec3", - "x": 487.977, - "y": -933.0930000000001, + "x": 487.9770000000001, + "y": -519.41, "z": 0 }, "_lrot": { @@ -1483,11 +1423,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 57 + "__id__": 56 }, "_enabled": true, "__prefab": { - "__id__": 59 + "__id__": 58 }, "_contentSize": { "__type__": "cc.Size", @@ -1511,18 +1451,18 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 57 + "__id__": 56 }, "_enabled": true, "__prefab": { - "__id__": 61 + "__id__": 60 }, "_alignFlags": 36, "_target": null, "_left": 0, - "_right": 52.023000000000025, + "_right": 52.02299999999991, "_top": 0, - "_bottom": 46.90699999999998, + "_bottom": 650.59, "_horizontalCenter": 0, "_verticalCenter": 0, "_isAbsLeft": true, @@ -1554,13 +1494,72 @@ "targetOverrides": null, "nestedPrefabInstanceRoots": null }, + { + "__type__": "cc.Node", + "_name": "BubbleBox", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 63 + }, + { + "__id__": 65 + }, + { + "__id__": 67 + }, + { + "__id__": 69 + }, + { + "__id__": 71 + } + ], + "_prefab": { + "__id__": 153 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 138.75, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, { "__type__": "cc.UITransform", "_name": "", "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 56 + "__id__": 62 }, "_enabled": true, "__prefab": { @@ -1569,7 +1568,7 @@ "_contentSize": { "__type__": "cc.Size", "width": 1080, - "height": 1960 + "height": 1548.5 }, "_anchorPoint": { "__type__": "cc.Vec2", @@ -1588,7 +1587,7 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 56 + "__id__": 62 }, "_enabled": true, "__prefab": { @@ -1598,8 +1597,8 @@ "_target": null, "_left": 0, "_right": 0, - "_top": 180, - "_bottom": 200, + "_top": 257, + "_bottom": 534.5, "_horizontalCenter": 0, "_verticalCenter": 0, "_isAbsLeft": true, @@ -1624,7 +1623,7 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 56 + "__id__": 62 }, "_enabled": true, "__prefab": { @@ -1646,7 +1645,7 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 56 + "__id__": 62 }, "_enabled": true, "__prefab": { @@ -1692,20 +1691,20 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 56 + "__id__": 62 }, "_enabled": true, "__prefab": { "__id__": 72 }, "initPos": { - "__id__": 57 + "__id__": 56 }, "lBubble": { "__id__": 73 }, "rBubble": { - "__id__": 97 + "__id__": 113 }, "_id": "" }, @@ -1723,16 +1722,19 @@ }, "_enabled": true, "__prefab": { - "__id__": 96 + "__id__": 112 + }, + "avatar": { + "__id__": 80 }, "bg": { - "__id__": 76 + "__id__": 92 }, "content": { - "__id__": 86 + "__id__": 102 }, "contentT": { - "__id__": 84 + "__id__": 100 }, "_id": "" }, @@ -1749,27 +1751,27 @@ "__id__": 75 }, { - "__id__": 83 + "__id__": 99 } ], "_active": true, "_components": [ { - "__id__": 91 + "__id__": 107 }, { - "__id__": 93 + "__id__": 109 }, { "__id__": 73 } ], "_prefab": { - "__id__": 95 + "__id__": 111 }, "_lpos": { "__type__": "cc.Vec3", - "x": -490, + "x": -380, "y": -416.69299999999987, "z": 0 }, @@ -1804,12 +1806,126 @@ "_parent": { "__id__": 74 }, - "_children": [], + "_children": [ + { + "__id__": 76 + } + ], "_active": true, "_components": [ { - "__id__": 76 + "__id__": 92 }, + { + "__id__": 94 + }, + { + "__id__": 96 + } + ], + "_prefab": { + "__id__": 98 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 325, + "y": 127.18549999999999, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "avatarmask", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 75 + }, + "_children": [ + { + "__id__": 77 + } + ], + "_active": true, + "_components": [ + { + "__id__": 83 + }, + { + "__id__": 85 + }, + { + "__id__": 87 + }, + { + "__id__": 89 + } + ], + "_prefab": { + "__id__": 91 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": -392.3, + "y": 82.18549999999999, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "avatar", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 76 + }, + "_children": [], + "_active": true, + "_components": [ { "__id__": 78 }, @@ -1822,8 +1938,8 @@ }, "_lpos": { "__type__": "cc.Vec3", - "x": 324.9755, - "y": 127.18549999999999, + "x": 0, + "y": 0, "z": 0 }, "_lrot": { @@ -1849,6 +1965,236 @@ }, "_id": "" }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 77 + }, + "_enabled": true, + "__prefab": { + "__id__": 79 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 90, + "height": 90 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "e4wsPRAYdMb7tMYvc35DyU" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 77 + }, + "_enabled": true, + "__prefab": { + "__id__": 81 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "777fc276-1999-4eba-a9a4-9bcfb84cbd72@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 0, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "a06aMCtoRN664ml5zvZu8A" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "72PdwFrdtJkZ1lDjX3FEzh", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 76 + }, + "_enabled": true, + "__prefab": { + "__id__": 84 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 90, + "height": 90 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "bbTk4oNuhISa4UkVQw5T9a" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 76 + }, + "_enabled": true, + "__prefab": { + "__id__": 86 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "4cef8664-eeed-4be5-b33b-1bb74a6019cb@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 0, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "4am/3aPsBDT7xk3TSdKHRT" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 76 + }, + "_enabled": true, + "__prefab": { + "__id__": 88 + }, + "_alignFlags": 9, + "_target": null, + "_left": -112.3, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_horizontalCenter": 0, + "_verticalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 40, + "_originalHeight": 0, + "_alignMode": 1, + "_lockFlags": 9, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "73wg0EC4RCQYuIaleXK304" + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 76 + }, + "_enabled": true, + "__prefab": { + "__id__": 90 + }, + "_type": 3, + "_inverted": false, + "_segments": 64, + "_alphaThreshold": 0.1, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "227IPAhaBFwLwVa7J/yqgY" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d4pD8BakVFyYumSlLeKIcP", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, { "__type__": "cc.UITransform", "_name": "", @@ -1859,11 +2205,11 @@ }, "_enabled": true, "__prefab": { - "__id__": 77 + "__id__": 93 }, "_contentSize": { "__type__": "cc.Size", - "width": 649.951, + "width": 650, "height": 254.37099999999998 }, "_anchorPoint": { @@ -1887,7 +2233,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 79 + "__id__": 95 }, "_alignFlags": 12, "_target": null, @@ -1923,7 +2269,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 81 + "__id__": 97 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -1983,17 +2329,17 @@ "_active": true, "_components": [ { - "__id__": 84 + "__id__": 100 }, { - "__id__": 86 + "__id__": 102 }, { - "__id__": 88 + "__id__": 104 } ], "_prefab": { - "__id__": 90 + "__id__": 106 }, "_lpos": { "__type__": "cc.Vec3", @@ -2030,11 +2376,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 83 + "__id__": 99 }, "_enabled": true, "__prefab": { - "__id__": 85 + "__id__": 101 }, "_contentSize": { "__type__": "cc.Size", @@ -2058,11 +2404,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 83 + "__id__": 99 }, "_enabled": true, "__prefab": { - "__id__": 87 + "__id__": 103 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -2126,11 +2472,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 83 + "__id__": 99 }, "_enabled": true, "__prefab": { - "__id__": 89 + "__id__": 105 }, "_alignFlags": 12, "_target": null, @@ -2179,12 +2525,12 @@ }, "_enabled": true, "__prefab": { - "__id__": 92 + "__id__": 108 }, "_contentSize": { "__type__": "cc.Size", - "width": 100, - "height": 100 + "width": 920, + "height": 245.8 }, "_anchorPoint": { "__type__": "cc.Vec2", @@ -2207,11 +2553,11 @@ }, "_enabled": true, "__prefab": { - "__id__": 94 + "__id__": 110 }, - "_alignFlags": 8, + "_alignFlags": 40, "_target": null, - "_left": 50, + "_left": 160, "_right": 0, "_top": 0, "_bottom": 0, @@ -2223,7 +2569,7 @@ "_isAbsBottom": true, "_isAbsHorizontalCenter": true, "_isAbsVerticalCenter": true, - "_originalWidth": 0, + "_originalWidth": 100, "_originalHeight": 0, "_alignMode": 2, "_lockFlags": 0, @@ -2256,20 +2602,23 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 98 + "__id__": 114 }, "_enabled": true, "__prefab": { + "__id__": 152 + }, + "avatar": { "__id__": 120 }, "bg": { - "__id__": 100 + "__id__": 132 }, "content": { - "__id__": 110 + "__id__": 142 }, "contentT": { - "__id__": 108 + "__id__": 140 }, "_id": "" }, @@ -2283,31 +2632,31 @@ }, "_children": [ { - "__id__": 99 + "__id__": 115 }, { - "__id__": 107 + "__id__": 139 } ], "_active": true, "_components": [ { - "__id__": 115 + "__id__": 147 }, { - "__id__": 117 + "__id__": 149 }, { - "__id__": 97 + "__id__": 113 } ], "_prefab": { - "__id__": 119 + "__id__": 151 }, "_lpos": { "__type__": "cc.Vec3", - "x": 490, - "y": -420.4179999999999, + "x": 380, + "y": -420.418, "z": 0 }, "_lrot": { @@ -2339,23 +2688,27 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 98 + "__id__": 114 }, - "_children": [], + "_children": [ + { + "__id__": 116 + } + ], "_active": true, "_components": [ { - "__id__": 100 + "__id__": 132 }, { - "__id__": 102 + "__id__": 134 }, { - "__id__": 104 + "__id__": 136 } ], "_prefab": { - "__id__": 106 + "__id__": 138 }, "_lpos": { "__type__": "cc.Vec3", @@ -2386,17 +2739,357 @@ }, "_id": "" }, + { + "__type__": "cc.Node", + "_name": "avatarmask", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 115 + }, + "_children": [ + { + "__id__": 117 + } + ], + "_active": true, + "_components": [ + { + "__id__": 123 + }, + { + "__id__": 125 + }, + { + "__id__": 127 + }, + { + "__id__": 129 + } + ], + "_prefab": { + "__id__": 131 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 306.596, + "y": 74.1195, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "avatar", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 116 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 118 + }, + { + "__id__": 120 + } + ], + "_prefab": { + "__id__": 122 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, { "__type__": "cc.UITransform", "_name": "", "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 99 + "__id__": 117 }, "_enabled": true, "__prefab": { - "__id__": 101 + "__id__": 119 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 90, + "height": 90 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "aapheTaPFB5qmt1BWLwn0f" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 117 + }, + "_enabled": true, + "__prefab": { + "__id__": 121 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "57520716-48c8-4a19-8acf-41c9f8777fb0@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 0, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "7bde0lOd1AK40NLbg7P1NN" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "376YwTyVpHGY5IWZzNwKnt", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 116 + }, + "_enabled": true, + "__prefab": { + "__id__": 124 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 90, + "height": 90 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "babGwk5b5BiIglu+OEYefe" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 116 + }, + "_enabled": true, + "__prefab": { + "__id__": 126 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "4cef8664-eeed-4be5-b33b-1bb74a6019cb@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 0, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "dbz6pBcRVOoJ60W4dNimrj" + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 116 + }, + "_enabled": true, + "__prefab": { + "__id__": 128 + }, + "_type": 3, + "_inverted": false, + "_segments": 64, + "_alphaThreshold": 0.1, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "75t/I/U39PHpAobWSiydWR" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 116 + }, + "_enabled": true, + "__prefab": { + "__id__": 130 + }, + "_alignFlags": 33, + "_target": null, + "_left": -112.3, + "_right": -107.3, + "_top": 0, + "_bottom": 0, + "_horizontalCenter": 0, + "_verticalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 100, + "_originalHeight": 0, + "_alignMode": 1, + "_lockFlags": 9, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "e5GhmzTGpGp6N0HWlJEW5O" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "36d5VGROJCSJslnDxJqZPJ", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 115 + }, + "_enabled": true, + "__prefab": { + "__id__": 133 }, "_contentSize": { "__type__": "cc.Size", @@ -2420,11 +3113,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 99 + "__id__": 115 }, "_enabled": true, "__prefab": { - "__id__": 103 + "__id__": 135 }, "_alignFlags": 36, "_target": null, @@ -2456,11 +3149,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 99 + "__id__": 115 }, "_enabled": true, "__prefab": { - "__id__": 105 + "__id__": 137 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -2514,28 +3207,28 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 98 + "__id__": 114 }, "_children": [], "_active": true, "_components": [ { - "__id__": 108 + "__id__": 140 }, { - "__id__": 110 + "__id__": 142 }, { - "__id__": 112 + "__id__": 144 } ], "_prefab": { - "__id__": 114 + "__id__": 146 }, "_lpos": { "__type__": "cc.Vec3", "x": -37, - "y": 185.2, + "y": 145.2, "z": 0 }, "_lrot": { @@ -2567,16 +3260,16 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 107 + "__id__": 139 }, "_enabled": true, "__prefab": { - "__id__": 109 + "__id__": 141 }, "_contentSize": { "__type__": "cc.Size", - "width": 444.93, - "height": 330.4 + "width": 680.3430000000001, + "height": 250.39999999999998 }, "_anchorPoint": { "__type__": "cc.Vec2", @@ -2595,11 +3288,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 107 + "__id__": 139 }, "_enabled": true, "__prefab": { - "__id__": 111 + "__id__": 143 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -2663,11 +3356,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 107 + "__id__": 139 }, "_enabled": true, "__prefab": { - "__id__": 113 + "__id__": 145 }, "_alignFlags": 36, "_target": null, @@ -2712,11 +3405,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 98 + "__id__": 114 }, "_enabled": true, "__prefab": { - "__id__": 116 + "__id__": 148 }, "_contentSize": { "__type__": "cc.Size", @@ -2740,16 +3433,16 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 98 + "__id__": 114 }, "_enabled": true, "__prefab": { - "__id__": 118 + "__id__": 150 }, "_alignFlags": 32, "_target": null, "_left": 0, - "_right": 50, + "_right": 160, "_top": 0, "_bottom": 0, "_horizontalCenter": 0, @@ -2810,20 +3503,20 @@ }, "_children": [ { - "__id__": 123 + "__id__": 155 } ], "_active": true, "_components": [ { - "__id__": 129 + "__id__": 161 }, { - "__id__": 131 + "__id__": 163 } ], "_prefab": { - "__id__": 133 + "__id__": 165 }, "_lpos": { "__type__": "cc.Vec3", @@ -2860,20 +3553,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 122 + "__id__": 154 }, "_children": [], "_active": false, "_components": [ { - "__id__": 124 + "__id__": 156 }, { - "__id__": 126 + "__id__": 158 } ], "_prefab": { - "__id__": 128 + "__id__": 160 }, "_lpos": { "__type__": "cc.Vec3", @@ -2910,11 +3603,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 123 + "__id__": 155 }, "_enabled": true, "__prefab": { - "__id__": 125 + "__id__": 157 }, "_contentSize": { "__type__": "cc.Size", @@ -2938,11 +3631,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 123 + "__id__": 155 }, "_enabled": true, "__prefab": { - "__id__": 127 + "__id__": 159 }, "_resourceType": 1, "_remoteURL": "", @@ -2981,11 +3674,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 122 + "__id__": 154 }, "_enabled": true, "__prefab": { - "__id__": 130 + "__id__": 162 }, "_contentSize": { "__type__": "cc.Size", @@ -3009,11 +3702,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 122 + "__id__": 154 }, "_enabled": true, "__prefab": { - "__id__": 132 + "__id__": 164 }, "_alignFlags": 45, "_target": null, @@ -3062,37 +3755,37 @@ }, "_children": [ { - "__id__": 135 + "__id__": 167 }, { - "__id__": 143 + "__id__": 175 }, { - "__id__": 151 + "__id__": 183 }, { - "__id__": 176 + "__id__": 208 } ], "_active": true, "_components": [ { - "__id__": 191 + "__id__": 223 }, { - "__id__": 193 + "__id__": 225 }, { - "__id__": 195 + "__id__": 227 } ], "_prefab": { - "__id__": 197 + "__id__": 229 }, "_lpos": { "__type__": "cc.Vec3", "x": 0, - "y": -1070, + "y": -842.1, "z": 0 }, "_lrot": { @@ -3124,23 +3817,23 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 134 + "__id__": 166 }, "_children": [], "_active": true, "_components": [ { - "__id__": 136 + "__id__": 168 }, { - "__id__": 138 + "__id__": 170 }, { - "__id__": 140 + "__id__": 172 } ], "_prefab": { - "__id__": 142 + "__id__": 174 }, "_lpos": { "__type__": "cc.Vec3", @@ -3177,11 +3870,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 135 + "__id__": 167 }, "_enabled": true, "__prefab": { - "__id__": 137 + "__id__": 169 }, "_contentSize": { "__type__": "cc.Size", @@ -3205,11 +3898,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 135 + "__id__": 167 }, "_enabled": true, "__prefab": { - "__id__": 139 + "__id__": 171 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -3250,11 +3943,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 135 + "__id__": 167 }, "_enabled": true, "__prefab": { - "__id__": 141 + "__id__": 173 }, "_alignFlags": 40, "_target": null, @@ -3299,23 +3992,23 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 134 + "__id__": 166 }, "_children": [], "_active": true, "_components": [ { - "__id__": 144 + "__id__": 176 }, { - "__id__": 146 + "__id__": 178 }, { - "__id__": 148 + "__id__": 180 } ], "_prefab": { - "__id__": 150 + "__id__": 182 }, "_lpos": { "__type__": "cc.Vec3", @@ -3352,11 +4045,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 143 + "__id__": 175 }, "_enabled": true, "__prefab": { - "__id__": 145 + "__id__": 177 }, "_contentSize": { "__type__": "cc.Size", @@ -3380,11 +4073,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 143 + "__id__": 175 }, "_enabled": true, "__prefab": { - "__id__": 147 + "__id__": 179 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -3425,11 +4118,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 143 + "__id__": 175 }, "_enabled": true, "__prefab": { - "__id__": 149 + "__id__": 181 }, "_alignFlags": 40, "_target": null, @@ -3474,33 +4167,33 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 134 + "__id__": 166 }, "_children": [ { - "__id__": 152 + "__id__": 184 }, { - "__id__": 158 + "__id__": 190 } ], "_active": true, "_components": [ { - "__id__": 166 + "__id__": 198 }, { - "__id__": 168 + "__id__": 200 }, { - "__id__": 170 + "__id__": 202 }, { - "__id__": 173 + "__id__": 205 } ], "_prefab": { - "__id__": 175 + "__id__": 207 }, "_lpos": { "__type__": "cc.Vec3", @@ -3537,20 +4230,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 151 + "__id__": 183 }, "_children": [], "_active": false, "_components": [ { - "__id__": 153 + "__id__": 185 }, { - "__id__": 155 + "__id__": 187 } ], "_prefab": { - "__id__": 157 + "__id__": 189 }, "_lpos": { "__type__": "cc.Vec3", @@ -3587,11 +4280,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 152 + "__id__": 184 }, "_enabled": true, "__prefab": { - "__id__": 154 + "__id__": 186 }, "_contentSize": { "__type__": "cc.Size", @@ -3615,11 +4308,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 152 + "__id__": 184 }, "_enabled": true, "__prefab": { - "__id__": 156 + "__id__": 188 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -3696,23 +4389,23 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 151 + "__id__": 183 }, "_children": [], "_active": true, "_components": [ { - "__id__": 159 + "__id__": 191 }, { - "__id__": 161 + "__id__": 193 }, { - "__id__": 163 + "__id__": 195 } ], "_prefab": { - "__id__": 165 + "__id__": 197 }, "_lpos": { "__type__": "cc.Vec3", @@ -3749,11 +4442,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 158 + "__id__": 190 }, "_enabled": true, "__prefab": { - "__id__": 160 + "__id__": 192 }, "_contentSize": { "__type__": "cc.Size", @@ -3777,11 +4470,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 158 + "__id__": 190 }, "_enabled": true, "__prefab": { - "__id__": 162 + "__id__": 194 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -3845,11 +4538,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 158 + "__id__": 190 }, "_enabled": true, "__prefab": { - "__id__": 164 + "__id__": 196 }, "languageKey": "chatpanel.inputplaceholder", "defaultText": "", @@ -3879,11 +4572,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 151 + "__id__": 183 }, "_enabled": true, "__prefab": { - "__id__": 167 + "__id__": 199 }, "_contentSize": { "__type__": "cc.Size", @@ -3907,11 +4600,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 151 + "__id__": 183 }, "_enabled": false, "__prefab": { - "__id__": 169 + "__id__": 201 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -3949,25 +4642,25 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 151 + "__id__": 183 }, "_enabled": true, "__prefab": { - "__id__": 171 + "__id__": 203 }, "editingDidBegan": [], "textChanged": [], "editingDidEnded": [], "editingReturn": [ { - "__id__": 172 + "__id__": 204 } ], "_textLabel": { - "__id__": 155 + "__id__": 187 }, "_placeholderLabel": { - "__id__": 161 + "__id__": 193 }, "_returnType": 0, "_string": "", @@ -3998,11 +4691,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 151 + "__id__": 183 }, "_enabled": true, "__prefab": { - "__id__": 174 + "__id__": 206 }, "_alignFlags": 44, "_target": null, @@ -4047,27 +4740,27 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 134 + "__id__": 166 }, "_children": [ { - "__id__": 177 + "__id__": 209 } ], "_active": true, "_components": [ { - "__id__": 183 + "__id__": 215 }, { - "__id__": 185 + "__id__": 217 }, { - "__id__": 187 + "__id__": 219 } ], "_prefab": { - "__id__": 190 + "__id__": 222 }, "_lpos": { "__type__": "cc.Vec3", @@ -4104,20 +4797,20 @@ "_objFlags": 512, "__editorExtras__": {}, "_parent": { - "__id__": 176 + "__id__": 208 }, "_children": [], "_active": true, "_components": [ { - "__id__": 178 + "__id__": 210 }, { - "__id__": 180 + "__id__": 212 } ], "_prefab": { - "__id__": 182 + "__id__": 214 }, "_lpos": { "__type__": "cc.Vec3", @@ -4154,11 +4847,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 177 + "__id__": 209 }, "_enabled": true, "__prefab": { - "__id__": 179 + "__id__": 211 }, "_contentSize": { "__type__": "cc.Size", @@ -4182,11 +4875,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 177 + "__id__": 209 }, "_enabled": true, "__prefab": { - "__id__": 181 + "__id__": 213 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -4266,11 +4959,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 176 + "__id__": 208 }, "_enabled": true, "__prefab": { - "__id__": 184 + "__id__": 216 }, "_contentSize": { "__type__": "cc.Size", @@ -4294,11 +4987,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 176 + "__id__": 208 }, "_enabled": true, "__prefab": { - "__id__": 186 + "__id__": 218 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -4339,15 +5032,15 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 176 + "__id__": 208 }, "_enabled": true, "__prefab": { - "__id__": 188 + "__id__": 220 }, "clickEvents": [ { - "__id__": 189 + "__id__": 221 } ], "_interactable": true, @@ -4399,7 +5092,7 @@ "_duration": 0.1, "_zoomScale": 0.9, "_target": { - "__id__": 176 + "__id__": 208 }, "_id": "" }, @@ -4436,11 +5129,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 134 + "__id__": 166 }, "_enabled": true, "__prefab": { - "__id__": 192 + "__id__": 224 }, "_contentSize": { "__type__": "cc.Size", @@ -4464,11 +5157,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 134 + "__id__": 166 }, "_enabled": false, "__prefab": { - "__id__": 194 + "__id__": 226 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -4509,18 +5202,18 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 134 + "__id__": 166 }, "_enabled": true, "__prefab": { - "__id__": 196 + "__id__": 228 }, "_alignFlags": 44, "_target": null, "_left": 0, "_right": 0, "_top": 0, - "_bottom": 0, + "_bottom": 227.9, "_horizontalCenter": 0, "_verticalCenter": 0, "_isAbsLeft": true, @@ -4562,7 +5255,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 199 + "__id__": 231 }, "_contentSize": { "__type__": "cc.Size", @@ -4590,7 +5283,7 @@ }, "_enabled": false, "__prefab": { - "__id__": 201 + "__id__": 233 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -4632,7 +5325,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 203 + "__id__": 235 }, "_alignFlags": 45, "_target": null, @@ -4681,40 +5374,40 @@ }, "_children": [ { - "__id__": 206 + "__id__": 238 }, { - "__id__": 214 + "__id__": 246 }, { - "__id__": 243 + "__id__": 275 } ], "_active": true, "_components": [ { - "__id__": 272 + "__id__": 304 }, { - "__id__": 274 + "__id__": 306 }, { - "__id__": 276 + "__id__": 308 }, { - "__id__": 278 + "__id__": 310 }, { - "__id__": 280 + "__id__": 312 } ], "_prefab": { - "__id__": 282 + "__id__": 314 }, "_lpos": { "__type__": "cc.Vec3", "x": 0, - "y": -638.999, + "y": -167.72699999999998, "z": 0 }, "_lrot": { @@ -4746,23 +5439,23 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 205 + "__id__": 237 }, "_children": [], "_active": true, "_components": [ { - "__id__": 207 + "__id__": 239 }, { - "__id__": 209 + "__id__": 241 }, { - "__id__": 211 + "__id__": 243 } ], "_prefab": { - "__id__": 213 + "__id__": 245 }, "_lpos": { "__type__": "cc.Vec3", @@ -4799,11 +5492,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 206 + "__id__": 238 }, "_enabled": true, "__prefab": { - "__id__": 208 + "__id__": 240 }, "_contentSize": { "__type__": "cc.Size", @@ -4827,11 +5520,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 206 + "__id__": 238 }, "_enabled": true, "__prefab": { - "__id__": 210 + "__id__": 242 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -4895,11 +5588,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 206 + "__id__": 238 }, "_enabled": true, "__prefab": { - "__id__": 212 + "__id__": 244 }, "languageKey": "chatpanel.paytotalk.desc", "defaultText": "", @@ -4929,36 +5622,36 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 205 + "__id__": 237 }, "_children": [ { - "__id__": 215 + "__id__": 247 }, { - "__id__": 221 + "__id__": 253 }, { - "__id__": 227 + "__id__": 259 } ], "_active": true, "_components": [ { - "__id__": 233 + "__id__": 265 }, { - "__id__": 235 + "__id__": 267 }, { - "__id__": 237 + "__id__": 269 }, { - "__id__": 240 + "__id__": 272 } ], "_prefab": { - "__id__": 242 + "__id__": 274 }, "_lpos": { "__type__": "cc.Vec3", @@ -4995,20 +5688,20 @@ "_objFlags": 512, "__editorExtras__": {}, "_parent": { - "__id__": 214 + "__id__": 246 }, "_children": [], "_active": true, "_components": [ { - "__id__": 216 + "__id__": 248 }, { - "__id__": 218 + "__id__": 250 } ], "_prefab": { - "__id__": 220 + "__id__": 252 }, "_lpos": { "__type__": "cc.Vec3", @@ -5045,11 +5738,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 215 + "__id__": 247 }, "_enabled": true, "__prefab": { - "__id__": 217 + "__id__": 249 }, "_contentSize": { "__type__": "cc.Size", @@ -5073,11 +5766,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 215 + "__id__": 247 }, "_enabled": true, "__prefab": { - "__id__": 219 + "__id__": 251 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -5157,20 +5850,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 214 + "__id__": 246 }, "_children": [], "_active": true, "_components": [ { - "__id__": 222 + "__id__": 254 }, { - "__id__": 224 + "__id__": 256 } ], "_prefab": { - "__id__": 226 + "__id__": 258 }, "_lpos": { "__type__": "cc.Vec3", @@ -5207,11 +5900,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 221 + "__id__": 253 }, "_enabled": true, "__prefab": { - "__id__": 223 + "__id__": 255 }, "_contentSize": { "__type__": "cc.Size", @@ -5235,11 +5928,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 221 + "__id__": 253 }, "_enabled": true, "__prefab": { - "__id__": 225 + "__id__": 257 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -5293,20 +5986,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 214 + "__id__": 246 }, "_children": [], "_active": true, "_components": [ { - "__id__": 228 + "__id__": 260 }, { - "__id__": 230 + "__id__": 262 } ], "_prefab": { - "__id__": 232 + "__id__": 264 }, "_lpos": { "__type__": "cc.Vec3", @@ -5343,11 +6036,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 227 + "__id__": 259 }, "_enabled": true, "__prefab": { - "__id__": 229 + "__id__": 261 }, "_contentSize": { "__type__": "cc.Size", @@ -5371,11 +6064,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 227 + "__id__": 259 }, "_enabled": true, "__prefab": { - "__id__": 231 + "__id__": 263 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -5455,11 +6148,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 214 + "__id__": 246 }, "_enabled": true, "__prefab": { - "__id__": 234 + "__id__": 266 }, "_contentSize": { "__type__": "cc.Size", @@ -5483,11 +6176,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 214 + "__id__": 246 }, "_enabled": true, "__prefab": { - "__id__": 236 + "__id__": 268 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -5528,15 +6221,15 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 214 + "__id__": 246 }, "_enabled": true, "__prefab": { - "__id__": 238 + "__id__": 270 }, "clickEvents": [ { - "__id__": 239 + "__id__": 271 } ], "_interactable": true, @@ -5576,7 +6269,7 @@ "_duration": 0.1, "_zoomScale": 0.9, "_target": { - "__id__": 214 + "__id__": 246 }, "_id": "" }, @@ -5587,7 +6280,7 @@ { "__type__": "cc.ClickEvent", "target": { - "__id__": 205 + "__id__": 237 }, "component": "", "_componentId": "06f47u6codPJodunp6ofax0", @@ -5600,11 +6293,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 214 + "__id__": 246 }, "_enabled": true, "__prefab": { - "__id__": 241 + "__id__": 273 }, "_alignFlags": 16, "_target": null, @@ -5649,36 +6342,36 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 205 + "__id__": 237 }, "_children": [ { - "__id__": 244 + "__id__": 276 }, { - "__id__": 250 + "__id__": 282 }, { - "__id__": 256 + "__id__": 288 } ], "_active": true, "_components": [ { - "__id__": 262 + "__id__": 294 }, { - "__id__": 264 + "__id__": 296 }, { - "__id__": 266 + "__id__": 298 }, { - "__id__": 269 + "__id__": 301 } ], "_prefab": { - "__id__": 271 + "__id__": 303 }, "_lpos": { "__type__": "cc.Vec3", @@ -5715,20 +6408,20 @@ "_objFlags": 512, "__editorExtras__": {}, "_parent": { - "__id__": 243 + "__id__": 275 }, "_children": [], "_active": true, "_components": [ { - "__id__": 245 + "__id__": 277 }, { - "__id__": 247 + "__id__": 279 } ], "_prefab": { - "__id__": 249 + "__id__": 281 }, "_lpos": { "__type__": "cc.Vec3", @@ -5765,11 +6458,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 244 + "__id__": 276 }, "_enabled": true, "__prefab": { - "__id__": 246 + "__id__": 278 }, "_contentSize": { "__type__": "cc.Size", @@ -5793,11 +6486,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 244 + "__id__": 276 }, "_enabled": true, "__prefab": { - "__id__": 248 + "__id__": 280 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -5877,20 +6570,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 243 + "__id__": 275 }, "_children": [], "_active": true, "_components": [ { - "__id__": 251 + "__id__": 283 }, { - "__id__": 253 + "__id__": 285 } ], "_prefab": { - "__id__": 255 + "__id__": 287 }, "_lpos": { "__type__": "cc.Vec3", @@ -5927,11 +6620,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 250 + "__id__": 282 }, "_enabled": true, "__prefab": { - "__id__": 252 + "__id__": 284 }, "_contentSize": { "__type__": "cc.Size", @@ -5955,11 +6648,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 250 + "__id__": 282 }, "_enabled": true, "__prefab": { - "__id__": 254 + "__id__": 286 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -6039,20 +6732,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 243 + "__id__": 275 }, "_children": [], "_active": true, "_components": [ { - "__id__": 257 + "__id__": 289 }, { - "__id__": 259 + "__id__": 291 } ], "_prefab": { - "__id__": 261 + "__id__": 293 }, "_lpos": { "__type__": "cc.Vec3", @@ -6089,11 +6782,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 256 + "__id__": 288 }, "_enabled": true, "__prefab": { - "__id__": 258 + "__id__": 290 }, "_contentSize": { "__type__": "cc.Size", @@ -6117,11 +6810,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 256 + "__id__": 288 }, "_enabled": true, "__prefab": { - "__id__": 260 + "__id__": 292 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -6175,11 +6868,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 243 + "__id__": 275 }, "_enabled": true, "__prefab": { - "__id__": 263 + "__id__": 295 }, "_contentSize": { "__type__": "cc.Size", @@ -6203,11 +6896,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 243 + "__id__": 275 }, "_enabled": true, "__prefab": { - "__id__": 265 + "__id__": 297 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -6248,15 +6941,15 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 243 + "__id__": 275 }, "_enabled": true, "__prefab": { - "__id__": 267 + "__id__": 299 }, "clickEvents": [ { - "__id__": 268 + "__id__": 300 } ], "_interactable": true, @@ -6296,7 +6989,7 @@ "_duration": 0.1, "_zoomScale": 0.9, "_target": { - "__id__": 243 + "__id__": 275 }, "_id": "" }, @@ -6307,7 +7000,7 @@ { "__type__": "cc.ClickEvent", "target": { - "__id__": 205 + "__id__": 237 }, "component": "", "_componentId": "06f47u6codPJodunp6ofax0", @@ -6320,11 +7013,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 243 + "__id__": 275 }, "_enabled": true, "__prefab": { - "__id__": 270 + "__id__": 302 }, "_alignFlags": 16, "_target": null, @@ -6369,11 +7062,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 205 + "__id__": 237 }, "_enabled": true, "__prefab": { - "__id__": 273 + "__id__": 305 }, "_contentSize": { "__type__": "cc.Size", @@ -6397,11 +7090,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 205 + "__id__": 237 }, "_enabled": true, "__prefab": { - "__id__": 275 + "__id__": 307 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -6442,11 +7135,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 205 + "__id__": 237 }, "_enabled": true, "__prefab": { - "__id__": 277 + "__id__": 309 }, "_alignFlags": 40, "_target": null, @@ -6478,23 +7171,23 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 205 + "__id__": 237 }, "_enabled": true, "__prefab": { - "__id__": 279 + "__id__": 311 }, "timeLabel": { - "__id__": 218 + "__id__": 250 }, "timeBtnLabel": { - "__id__": 230 + "__id__": 262 }, "vipLabel": { - "__id__": 247 + "__id__": 279 }, "vipBtnLabel": { - "__id__": 253 + "__id__": 285 }, "_id": "" }, @@ -6508,11 +7201,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 205 + "__id__": 237 }, "_enabled": true, "__prefab": { - "__id__": 281 + "__id__": 313 }, "_opacity": 255, "_id": "" @@ -6544,20 +7237,20 @@ }, "_children": [ { - "__id__": 284 + "__id__": 316 } ], "_active": true, "_components": [ { - "__id__": 308 + "__id__": 340 }, { - "__id__": 310 + "__id__": 342 } ], "_prefab": { - "__id__": 312 + "__id__": 344 }, "_lpos": { "__type__": "cc.Vec3", @@ -6594,24 +7287,24 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 283 + "__id__": 315 }, "_children": [ { - "__id__": 285 + "__id__": 317 } ], "_active": true, "_components": [ { - "__id__": 303 + "__id__": 335 }, { - "__id__": 305 + "__id__": 337 } ], "_prefab": { - "__id__": 307 + "__id__": 339 }, "_lpos": { "__type__": "cc.Vec3", @@ -6648,27 +7341,27 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 284 + "__id__": 316 }, "_children": [ { - "__id__": 286 + "__id__": 318 } ], "_active": true, "_components": [ { - "__id__": 296 + "__id__": 328 }, { - "__id__": 298 + "__id__": 330 }, { - "__id__": 300 + "__id__": 332 } ], "_prefab": { - "__id__": 302 + "__id__": 334 }, "_lpos": { "__type__": "cc.Vec3", @@ -6705,26 +7398,26 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 285 + "__id__": 317 }, "_children": [], "_active": true, "_components": [ { - "__id__": 287 + "__id__": 319 }, { - "__id__": 289 + "__id__": 321 }, { - "__id__": 291 + "__id__": 323 }, { - "__id__": 293 + "__id__": 325 } ], "_prefab": { - "__id__": 295 + "__id__": 327 }, "_lpos": { "__type__": "cc.Vec3", @@ -6761,11 +7454,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 286 + "__id__": 318 }, "_enabled": true, "__prefab": { - "__id__": 288 + "__id__": 320 }, "_contentSize": { "__type__": "cc.Size", @@ -6789,11 +7482,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 286 + "__id__": 318 }, "_enabled": true, "__prefab": { - "__id__": 290 + "__id__": 322 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -6805,10 +7498,7 @@ "b": 255, "a": 255 }, - "_spriteFrame": { - "__uuid__": "777fc276-1999-4eba-a9a4-9bcfb84cbd72@f9941", - "__expectedType__": "cc.SpriteFrame" - }, + "_spriteFrame": null, "_type": 0, "_fillType": 0, "_sizeMode": 0, @@ -6834,11 +7524,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 286 + "__id__": 318 }, "_enabled": true, "__prefab": { - "__id__": 292 + "__id__": 324 }, "_alignFlags": 12, "_target": null, @@ -6870,11 +7560,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 286 + "__id__": 318 }, "_enabled": true, "__prefab": { - "__id__": 294 + "__id__": 326 }, "clickEvents": [], "_interactable": true, @@ -6939,11 +7629,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 285 + "__id__": 317 }, "_enabled": true, "__prefab": { - "__id__": 297 + "__id__": 329 }, "_contentSize": { "__type__": "cc.Size", @@ -6967,11 +7657,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 285 + "__id__": 317 }, "_enabled": true, "__prefab": { - "__id__": 299 + "__id__": 331 }, "_type": 3, "_inverted": false, @@ -6989,11 +7679,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 285 + "__id__": 317 }, "_enabled": true, "__prefab": { - "__id__": 301 + "__id__": 333 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -7047,11 +7737,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 284 + "__id__": 316 }, "_enabled": true, "__prefab": { - "__id__": 304 + "__id__": 336 }, "_contentSize": { "__type__": "cc.Size", @@ -7075,11 +7765,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 284 + "__id__": 316 }, "_enabled": true, "__prefab": { - "__id__": 306 + "__id__": 338 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -7133,11 +7823,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 283 + "__id__": 315 }, "_enabled": true, "__prefab": { - "__id__": 309 + "__id__": 341 }, "_contentSize": { "__type__": "cc.Size", @@ -7161,14 +7851,14 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 283 + "__id__": 315 }, "_enabled": true, "__prefab": { - "__id__": 311 + "__id__": 343 }, "image": { - "__id__": 289 + "__id__": 321 }, "_id": "" }, @@ -7199,7 +7889,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 314 + "__id__": 346 }, "_contentSize": { "__type__": "cc.Size", @@ -7227,7 +7917,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 316 + "__id__": 348 }, "_alignFlags": 45, "_target": null, @@ -7263,26 +7953,26 @@ }, "_enabled": true, "__prefab": { - "__id__": 318 + "__id__": 350 }, "m_rootNode": null, "payToTalkPanel": { - "__id__": 278 + "__id__": 310 }, "editBox": { - "__id__": 170 + "__id__": 202 }, "girlName": { "__id__": 44 }, "videoArea": { - "__id__": 129 + "__id__": 161 }, "layout": { "__id__": 71 }, "popUpImage": { - "__id__": 310 + "__id__": 342 }, "_id": "" }, diff --git a/assets/bundles/DataTable/tbaicharacters.bin b/assets/bundles/DataTable/tbaicharacters.bin index a582eff6e3998f089b636e01c2837dbf0d7a5cb7..cabc25ad5d9d0751fc82cbb3b37196f8189d3fde 100644 GIT binary patch delta 5270 zcmZvgPp>356~z@u5IjW+Q3NOv3eF7DOURp+l7T3CEMW2n@)8mO^Q35&?kaber(Jf* zcD+b2bC2t<|9$fF zhfjU&#Xmp$@Sit7`}dPiyfD3EuIxsumtTAHm2-7RHJy$&^*Y-|?ZR5CUZ-rLTE)<- zp9g)WQfJfamZsBlUmvJ7|oe7560H|wQBT`?G=0R@2yQOTWH_%PBQJ- z@W`mi>pVv7%EA3Y{W5AEH1fu!_BkHHkoVeA){U<28N7-%^HWmE`o^$>b!`_yTVo`V zWrz}CXWQ0zwKG{+pN&sOwIcO6f?t!+Va>Y_2BJx_mn@i? z;8zxS8tOK5yF~s@r5uf4=kBa*4+TKodYgA8&39~acEg_6)2#nixzm|w?+aKQS%DP< znlQ#>N|<;24txb6mEVx{txe#l*QTWO*qXA$taJ~s!U_F{|Lp(%;&*P|3!~Ch@kgg` z-hf}ZQ)%?KHWp&GY8iw7#O(j^%(wS{eE%CK+33we@kZQt>80BRx?4oySt`UxVU^tu zcEu}xdHMDmw_bna*6lZ6IjbAr{^2|OXTSNvv`}}gyP_XJ2;`w2Na+o6k5O&4P5G89 z$f>2%%|>Ids1etTnMml8MSTe#y#z}4z5)z7q%v*8l%##55B#XIz8~J*}<5O zRg-Frr(Z08Q@q+!XEZ0+kn#=!yFy^q8Sk|kbOw4VUCKhp)~PmZg*wCw8NuWZ@M}3u zd5JCMQ9|>Zq_%7#E0xpZ8ZNZ)CC!tyl3l&fv9!tPoN{)khwOjz?03JiIN9I%^ttIW zc)RZMnF_*2z1G&B$$n?5iVp0edIgsuicZkOA<|7Wu+foz=B!nSHCjjtGv|IQKWlOs zmyYhNqG1YnN)H2Xt2mitN;RcLV0F*oRJt{0ID$Yy<}(0m?(sgL2)T5RE{#%1OrL<4 zB)w1{M>%6Ispl}5WBrv)R-#GPZBR-5-qw|L;e~IZjOa)VfiRN&L{b}v@|$*!it=}_ z3*4uGf(++bHgmUs@2js)^xqnO09hEx2N-L%D`VFvVa>H>C?#9#Pk=lt16g-ST)!j& zC?i3H0sR)4k_MH6NPLY}u&$?rqwXOkO zL$s7%PGxxL!T};5^k+YLg28i-gE!t72R%wy9m41kH}rc=0XTmdM+A@4CF%^%il&uF zz*pcM+(?(n9jH@-Ac;oA)D2QrdG;bh^8Vc>+TswGZ2k(kOkO>j;IiJ!>@ z4N^vgh)%cn$CPE+{^F_cPbDISG7e{y;|j9MKD4~enZTE}P>PKN*3rR;Gu1ewuh6}! zvr8kOFUO25)n6nw?KjTkq&C9aUTmt4rs_A^R>>C!+18%NHZkXG7*bv3PMKp;i^7asLPJYX(ySq^;r=c zCJKxpH#D;DEVFkW1BEH4=*EcR6r35hh2ESJgYN5(bF-f&wG8c!QkhCdV6joHokrP; z?z07he2Ek@1SA8|qvIhA`zG2Y6ar2rV#E9sR+fWn$cRvDvdAO26x0V6qDmr4RS*(= zJ2q^e&eh8|KHP~vs3D_1Mm^&o!)j!9?)qhLY5%XMo@ZRhI(a-Z8r>khrUR97IzQWt zg*j8b(7nWe$g(bwBp2#}PL9YAV?ak5MAr>TDM(DoRI8%VY-#Kj8bLObmo!&ywCzHD z6ol(is^m}E&P(62bCp1FH~xOu&A=1Z3@ve0FyF$jEDdrjIBHa#_*5?);DbC-akMf` znL@lX!0a^P1{aIPjaN>@2)#W!jjS*bgVVcn3`7C@F+tL8Pe;}x4hBV9PK*LC)*yuw zrPu{1F|Pfw(}lp3q(TFFj&0JgN`R+LqCh1x^G zzx14t(S?k=E}~uL&%H3pi{g~846h!;SySmkbN1-8pQwhxSJYFzX0c4{1{tISN+>WV z6a1*D{33 zsP@4<0$5gwK(2wCw_OC5tHSfB*GwP3YXU zCk>`Vs?Sk0jdXQadUnfYt6;bcG=gPS67C&jl~G}lCAX?$>0WUUUvO|D9p@*nE!3|~ z8sxfA%47Y63t$%48wnnoxSeUs-2ewdH*QhDM}|krh=7J8Aoy?zt=uck;^g&(dJp24 znBiwn^`r+}A?R#gq{pgPq2Z^}q(3J3E9|eiuetk_4wfNEuOF6DWO;8Xo`PL%KlY20 z+Y7ucW?HTX=*t<3XhV9NFD-u|b*eQ{du>SgjyD)YbI9%rpM zT-tCz4uv5(MwyAkgt;z`51Ay$`kXOpu-I$p(Ntn^OV{FCDP1DbwAu+>OEnJH0}uGG@uJ>YO{A}z>KJM>9_-4&&8NDr;5k)5W%uIK z6BjM<=*3cSx0cEXL4^!UQAN~iv4=I)GKUG&lh~n+I}{|xkzeE@h-R1;eW3XY z0pzqIeaYzcz!#a)edUUE9AUF4$Pkt- zWH{9?HIgFc_RxwD^9x4$!XNyp^cdbA|0kBcnx|{fJaYT7c1FP>^+%) z@<7iRX5x%5llF4nSbPd$Id1ZNkJw5TG4RJ-wjsj%V@lVPIF8-6-gQa$(}z$0?cvi; I{N>gE0l%Ap>;M1& delta 2561 zcmYjTO^*~s7!C&1-2-0+!}3||lCXrCiAYG4i>{FfK}1*#A;g%syWi<9rn+jVs-B^} zi~&7(gg%&f^n!^OZ(jTfCT4$tiQ(Wu5BL*&-kRCP3uI@i-jC<2=J}&NKmEIVcH-HA zM?bHv-ExLi;25q=6dqi2fB zO)Yz+t@_B3npRGEDl|n7C~HGQMoo1nT&>6!3MFIJs+yKc%MtYks{8xhW3!Cx2otEB zJfj-QUU;jgLdD9usftW_g@Tc6^xOTVT^w@7~+WOh;oHD!f@ z0&49F_EufBz*LUimHX%f^i}SRdD(Ms__8MN+iw5nQP5?~f)-M%_nQzE zKTH?~ez^MWZ{44}S7yL_*x+&^D`(tywiSwnrA(+DdS`)kMTS%b%Gee%ilDd9qX9BN zSY@q>z&mqxs4+AEN=2}MY5VvFpJBI=ntB=!lu#48_g+0c%cTG&b?JP7)N zBPs|SM3o&qSh?qNCaW?i{!4}!s6}fXtF$3TL&+g!qIW22jsu{S&9-MBS!Uo5%?WO{ zn7Rp=@=e+6wqAQtZa4;{ ziUz8|4Wof1=8RAwLXx?=1FxT6N(%?0$K8*|k6j%sudS)g5yTiSCHE~NA#l+o`(0A2 z>({~ELNHJ`d?=a;fCE#Oj0}j-@B7OuH>BlN*({7PR3%Y^lh>$*FL6^99CEKSi5?LK zPRsW-7=V(HcCIFglWik+r|uq~AtliaSYRUvyH<6pjEfD9xu7K>=CCK7Vy^;|ssbr0 z2hpaiQlqQlPKGwoYD&JCca{X|qqEVXB1t?~072+XQip48m$ZeLgo$qB+RE$>1SN7r z3FKVa!@Bc0OhF`~kyT_XnA{Qo0!ks5ipj4TV-uOo(u9quKs<)OlZUd#TM*@-fDi{~ zSA~(yMe2(k+F689(09Sg#A&cmcsEX7glZdTOY%ks3A{wdHt2Ic=2=`woWlQ8*O&tT z`cUby+N|`1fWLI0x+i1dh4vdOferJN2{0sLVHpO)(K8eDKnh9FwJL8+#AK4X z8CyJ(m7I~>_YM5vgR|6~pPbx-cZp2*qB=2Kypdu&p=-=Q0X~vmIxfFGxB~c7S9}VV zDWy*4Q28R&sE!9&xU6+Cx2)3$TnYg%LRh{q_za2aaaHK95WO{Svag&g)H?WY`!e1; zeR=Zxc=30hptCT14f$s*VTd;sg3r0T`OO!7D8bIx`rms65`8myvRpBJD!DNZoP01aeF+E8Y=d-D0| zb1^-Y*vT~k%O!#ls6brM@(vH_wmZ8&ZX7v=ActNcO@rZqqXe2f_K<1Y9r$#m`{&{D z**ur0Ks>-~LGl6~6Pr^Df+4pND?{V4u!9GD*i#8kH9uA`BcXw`ui9AE$nSJPR44Y0 zAUzD!Wn1ER1*WS!1r)E@L_y7|o7bEjk=3$!LRc0j?1GHz%@G&hVvR9V`qc#6z@`rx i06mYKAeYv SA_80>@ggvJ1x%W8+W-KauNw3K delta 113 zcmew;_DO8QOQz=M8(+O+VPu$mlQj`YTC;)3xnS}?m`r3(WM$~LW{{lxkX?B4Ep{)U nyebDsRXdn`2`0Tc4+BN`xj^EDTreFUxr8Ub;sWU~<+cF;P}CvK diff --git a/assets/bundles/DataTable/tbgirlsdetail.bin b/assets/bundles/DataTable/tbgirlsdetail.bin index ad9cf95624192182a1f609c38673ba83d32d5c1b..c3b9f9142caa9ea31ccb4c03bfafda8cb37db0e3 100644 GIT binary patch delta 303 zcmex%oALK;#toO5m>5JSA7mEcG)SK#5)^ zt`vxVOCYb0Nu=S#yujAkal&vw#+Z1#d$HIf1ST zn+vudq|}&Am5D)Yav-b7>eO*aw{vyogmhJ zR*36C>^o3VX|R7lA|`CAOvz%C3t2@b=d-c1fIR@>^szaDg5)Bb91}AzWPlU{!(>5r yxg?Ma!~RJc8Wz8Gwq~=4&c(6#k8OYIL|8dHjgZvTBfKwjm&&^ZW)6xLvL5oBH diff --git a/assets/bundles/DataTable/tbglobalconfig.bin b/assets/bundles/DataTable/tbglobalconfig.bin index 580571605ae5ab5cf1c8cfbb837c73b325657705..e3ff2bc7ddbb58d0e7e6547f51db1a0fd3417b22 100644 GIT binary patch literal 1897 zcma)7O>ZMb5QVEx9QXmHX_zI*@bviRXT-p=ap{KYS? zPGUWCAMCePbrjO&?%w%nJ^1nV_MLfovYL)xkFGBLi?@xlv)R@3`h9u%S)$^4BaJ@qef+yOnSP_aId4?__}AeJ6?8#U8@(%25w){ty}?_TXr+yz z&ZsrThRHj_}(5<7!kTG$eI?ok*wgr>6mGiBVn);+{DQP3$#XhZf^*L+SgmN6-aF(g^ zuFc7R;?}*>WORr>Q*;OqEB5_qMSO=Rg4Cf=2m3Y%uA|Y2I;U+6eVWqBB~v1J!896- zcPEl(&UCI!OQl<(sPSlUGTz2*PbWo+fN?S&JbQFwy+427mxA@gyA+hcYV!~l+q771;(z_;P$&T3*U4}=>j}?o z3Xzmqsdd=Utpd75Dn?;PFVR$P71-bNB{hKxk&FB<*@sM07?LDZp24DP^jt@DIaAWI z6&kgz!H$ZVK)E-WlJgLZQNCvU+BzvLT352U&!!+GXsyFT(9Tw4mA*rEt6JzPbTr3c+= zRJxZnbep^!JnF(557RhgDp7G1<%)&&k7g}ztdT{isAVO+sgj{qS<7BB29S)lZSW$2 z_DE`hb|!g&l?v^P)XED5>JLp;t$3r4u~9@i`r%@50S~VFgK(j8O7Gs(zhy!m-6nMF~!g9X)FZU3=E+R&U zDjN(NA?v@XDQrp&+bGehD!GGGB5tn*ch(^?XZb;29W&ajrQLPSAzMcp9N31WwsP(q zMh}?595re!gzrV4XQY(fr&YrM(7{EW*GlF|p2j;`1K(wM3JuF#C>vpGXds(Q+!!i= z6EVqf&4cHGJC!J+Nb>{<%$>&=bf^-3MkhcmqOw7ONG))N9)Jxwarp5&A8vdhZ!#RV za=r}o#ZGDm4MQIXxy*wp8HYK779V{1V0goDdgBe5+1shG0v1V$Ek{wA1*y5XRzcKN d{xS#wkabR7Ctc>EA79UOZoVZRVMZ6C;9)PcUX5!r-4oN!G_48HL_f>!V+4(d;$S_SUQRB~{mD(`?3*_ivsXWt=btRO)>e<6 zji;l9QK8!3-~aNrkN!-PPY3V*863~P(%zg_D!%)B_e2F<(9A~f%2Y({?9pI!;}Wg4 zG1M5fp;$3_XPDfA6g6Q}RL;1iE|eh!mpdIdFqpdtr&z(JaJJ9^UK|={aR_l^cuYvf zB{`cz7M1dFXa6KnsTCq79#Z3Z!Jciwr0v4_S_!5hDO*a|$oFwbn;xIDWV0ZUCmvw=%js}1I@c;$qWA9Q>2B$U=4qaHBTK`{v-<1(y-aZ))M+2F& zWwb&%WY%gE+KFR=7!EkJqy^UsqkkBdm=>;X3`cIq=&n5&p)Cl<#uavoeU$}bte?J_AGYFDz^#!=u9Xx1PD0(A6R=zCzcss^PbVd=<% ze3`5cZ1oso_w6>-4Y?F$#yyW)GUflI4H>WaBeh;=F2{71ywolx;M_xbaJ+N61f+&h zFD!ztH42a~Mspa`YY)9RO11=wD5UMPb`0)1=XFu_UP43#FYq^a2$U}>;Oaerr!7$1 zJ7?}-MXCi=AyB)Zr4EG={XkS6 zb2G-RrL_0d_kS^t=xNq;PpBb18`CS<6oI4k2Uzye6RB+b&qHHBL?8)~ z+Y{J|;k8z5GOSP5;V1y**h5y3-I-hnEiN536`45n+dXnE;eNn($1QeM_6RNu-opaUz3 z0g^M;4-5oF;QNF`*gCCQu3q**w+Zr_0Z52jDBG&L51a$!7b+^#L$68AMd}Eg@1@5J zg^>qHa~nujRak%yY~|(2TNwSb|0v(|>S3T=I-*ORAen>`Mmr{E?muu(CmbUGMG{s}p`V~y%Rnk`V3syQH4a1W0 zx|S0}4_