diff --git a/assets/Scripts/Sub/UI/PreloadUI.ts b/assets/Scripts/Sub/UI/PreloadUI.ts index 4ad33f02..6e540957 100644 --- a/assets/Scripts/Sub/UI/PreloadUI.ts +++ b/assets/Scripts/Sub/UI/PreloadUI.ts @@ -28,7 +28,9 @@ import LanguageUtils, { LanguageType } from "../../Main/Common/LanguageUtils"; import { DataManager, DataId } from "../../chat18x/data/DataManager"; import { LoginData } from "../../chat18x/data/LoginData"; import { PlayerData } from "../../chat18x/data/PlayerData"; +import { AccountData } from "../../chat18x/data/AccountData"; import { WalletData } from "../../chat18x/data/WalletData"; +import { EnvData } from "../../chat18x/data/EnvData"; import { ConfigManager } from "../../chat18x/manager/ConfigManager"; import { AppConfig } from "db://assets/Scripts/chat18x/config/env/appConfig"; import DeviceIdService from "db://assets/Scripts/chat18x/foundation/identity/DeviceIdService"; @@ -59,9 +61,7 @@ export class PreloadUI extends Component { this.jinduFilled = this.jinduBar .getChildByName("jinduFilled") .getComponent(Sprite); - // this.LabProgress = this.node - // .getChildByName("LabProgress") - // .getComponent(Label); + this.loginNode = this.node.getChildByName("loginNode"); this.btnLogin = this.loginNode.getChildByName("btnLogin"); @@ -258,12 +258,12 @@ export class PreloadUI extends Component { // 游客登录 const deviceId = DeviceIdService.I.id; - const machineIdentifier = MachineInfoService.I.getMachineIdentifier(); + const os = MachineInfoService.I.getMachineOs(); const reqData = { platType: "guset", userId: deviceId, device: deviceId, - os: 3, + os, }; console.log("登录请求数据:", reqData); let res = await AuthService.I.login(reqData); @@ -274,28 +274,33 @@ export class PreloadUI extends Component { const loginData = DataManager.I.getDataById(DataId.Login); loginData.token = resData.token; loginData.refreshToken = resData.refreshToken; - loginData.expire = resData.expire; + loginData.expire = Number(resData.expire); const playerData = DataManager.I.getDataById(DataId.Player); playerData.name = resData.name; + const accountData = DataManager.I.getDataById( + DataId.Account + ); + accountData.accId = resData.accId; + const envData = DataManager.I.getDataById(DataId.Env); + envData.cdn = resData.cdn; this.loginFinish = true; - - // this.reqMyInfo(); + // 请求个人信息 + this.reqMyInfo(); } } // 请求个人信息 private async reqMyInfo() { const reqData = {}; - console.log("个人信息请求数据:", reqData); let res = await PlayerDataService.I.reqMyInfo(reqData); console.log("个人信息响应数据:", res); if (res && res.code === proto.cs.EnmRetCode.SUCCESS) { const resData = res.data; // 保存数据 const walletData = DataManager.I.getDataById(DataId.Wallet); - walletData.diamond = resData.diamond; - walletData.vipExpire = resData.vipExpire; + walletData.balance = Number(resData.balance); + walletData.vipExpire = Number(resData.vipExpire); } } diff --git a/assets/Scripts/chat18x/config/AiCharacterConfig.ts b/assets/Scripts/chat18x/config/AiCharacterConfig.ts index 88738217..0fe393fd 100644 --- a/assets/Scripts/chat18x/config/AiCharacterConfig.ts +++ b/assets/Scripts/chat18x/config/AiCharacterConfig.ts @@ -25,6 +25,20 @@ export class AiCharacterConfig extends BaseConfig { return ConfigManager.tables.TbAiCharacters; } + /** + * 获取所有配置 id,如果存在 + */ + public getAllId(): any | null { + let allData = this.getAllConfig(); + if (!allData) return null; + const dataArr = allData.getDataList(); + let allId = []; + for (let oneData of dataArr) { + allId.push(oneData.id); + } + return allId; + } + /** * 获取配置,根据 id */ diff --git a/assets/Scripts/chat18x/config/GirlConfig.ts b/assets/Scripts/chat18x/config/GirlConfig.ts index bc97c76a..429935d8 100644 --- a/assets/Scripts/chat18x/config/GirlConfig.ts +++ b/assets/Scripts/chat18x/config/GirlConfig.ts @@ -82,6 +82,20 @@ export class GirlConfig extends BaseConfig { if (!oneData) return null; return oneData.priceType; } + + /** 根据 id 获取购买价格 */ + public getPriceById(id: number): number | null { + let oneData = this.getConfigById(id); + if (!oneData) return null; + return oneData.price; + } + + /** 根据 id 获取VIP能否解锁 */ + public getVipUnlockById(id: number): number | null { + let oneData = this.getConfigById(id); + if (!oneData) return null; + return oneData.vipUnlock; + } /** 根据 id 获取头像路径 */ public getAvatarPathById(id: number): string | null { diff --git a/assets/Scripts/chat18x/config/GirlDetailConfig.ts b/assets/Scripts/chat18x/config/GirlDetailConfig.ts index 2ea766bc..94435baa 100644 --- a/assets/Scripts/chat18x/config/GirlDetailConfig.ts +++ b/assets/Scripts/chat18x/config/GirlDetailConfig.ts @@ -53,30 +53,59 @@ export class GirlDetailConfig extends BaseConfig { let oneData = this.getCommercialImagesById(id); if (!oneData) return null; return oneData.length; - } - - /** 根据 id 和 index 获取图片类型 */ - public getImageTypeById(id: number, index: number): number | null { + } + + /** 根据 id 获取 commercialImages的id数组 */ + public getCommercialImagesIds(id: number): number[] { + let oneData = this.getCommercialImagesById(id); + if (!oneData) return []; + // 获取所有 id + let allId = []; + for (let one of oneData) { + allId.push(one.id); + } + return allId; + } + + /** 根据 id 获取 某一个commercialImage */ + private getOneCommercialImageById(id: number, resId: number): any | null { let oneData = this.getCommercialImagesById(id); if (!oneData) return null; - if (index < 0 || index >= oneData.length) return null; - return oneData[index].imageType; + // 遍历数组找到匹配的资源 + for (let one of oneData) { + if (one.id === resId) { + return one; + } + } + return null; + } + + /** 根据 id 获取图片类型 */ + public getImageTypeById(id: number, resId: number): number | null { + let oneData = this.getOneCommercialImageById(id, resId); + if (!oneData) return null; + return oneData.imageType; } - /** 根据 id 和 index 获取图片价格 */ - public getImagePriceById(id: number, index: number): number | null { - let oneData = this.getCommercialImagesById(id); + /** 根据 id 获取聊天触发次数 */ + public getImageUnlockCountsById(id: number, resId: number): number | null { + let oneData = this.getOneCommercialImageById(id, resId); if (!oneData) return null; - if (index < 0 || index >= oneData.length) return null; - return oneData[index].imagePrice; + return oneData.unlockCounts; + } + + /** 根据 id 获取图片价格 */ + public getImagePriceById(id: number, resId: number): number | null { + let oneData = this.getOneCommercialImageById(id, resId); + if (!oneData) return null; + return oneData.imagePrice; } - /** 根据 id 和 index 获取图片路径 */ - public getImagePathById(id: number, index: number): string | null { - let oneData = this.getCommercialImagesById(id); + /** 根据 id 获取图片路径 */ + public getImagePathById(id: number, resId: number): string | null { + let oneData = this.getOneCommercialImageById(id, resId); if (!oneData) return null; - if (index < 0 || index >= oneData.length) return null; - return oneData[index].path; + return oneData.path; } /** 根据 id 获取 commercialVideos */ @@ -93,27 +122,49 @@ export class GirlDetailConfig extends BaseConfig { return oneData.length; } - /** 根据 id 和 index 获取视频路径 */ - public getVideoPathById(id: number, index: number): string | null { + /** 根据 id 获取 commercialVideo的id数组 */ + public getCommercialVideosIds(id: number): number[] { let oneData = this.getCommercialVideosById(id); - if (!oneData) return null; - if (index < 0 || index >= oneData.length) return null; - return oneData[index].path; + if (!oneData) return []; + // 获取所有 id + let allId = []; + for (let one of oneData) { + allId.push(one.id); + } + return allId; } - /** 根据 id 和 index 获取关联情绪 */ - public getVideoEmotionById(id: number, index: number): number | null { + /** 根据 id 获取 某一个commercialVideo */ + private getOneCommercialVideoById(id: number, resId: number): any | null { let oneData = this.getCommercialVideosById(id); if (!oneData) return null; - if (index < 0 || index >= oneData.length) return null; - return oneData[index].emotion; + // 遍历数组找到匹配的资源 + for (let one of oneData) { + if (one.id === resId) { + return one; + } + } + return null; + } + + /** 根据 id 获取视频路径 */ + public getVideoPathById(id: number, resId: number): string | null { + let oneData = this.getOneCommercialVideoById(id, resId); + if (!oneData) return null; + return oneData.path; } - /** 根据 id 和 index 获取视频价格 */ - public getVideoPriceById(id: number, index: number): number | null { - let oneData = this.getCommercialVideosById(id); + /** 根据 id 获取关联情绪 */ + public getVideoEmotionById(id: number, resId: number): number | null { + let oneData = this.getOneCommercialVideoById(id, resId); if (!oneData) return null; - if (index < 0 || index >= oneData.length) return null; - return oneData[index].videoPrice; + return oneData.emotion; + } + + /** 根据 id 获取视频价格 */ + public getVideoPriceById(id: number, resId: number): number | null { + let oneData = this.getOneCommercialVideoById(id, resId); + if (!oneData) return null; + return oneData.videoPrice; } } \ No newline at end of file diff --git a/assets/Scripts/chat18x/config/GlobalConfig.ts b/assets/Scripts/chat18x/config/GlobalConfig.ts index a371f88f..438ea684 100644 --- a/assets/Scripts/chat18x/config/GlobalConfig.ts +++ b/assets/Scripts/chat18x/config/GlobalConfig.ts @@ -74,6 +74,20 @@ export class GlobalConfig extends BaseConfig { return oneData.FreeChatTimes; } + /** 单次对话增长好感度 */ + public getOnceChatAddScore(): number | null { + let oneData = this.getAllConfig(); + if (!oneData) return null; + return oneData.OnceChatAddScore; + } + + /** 好感度等级兑换比例 */ + public getScoreExchangeStarLevel(): number | null { + let oneData = this.getAllConfig(); + if (!oneData) return null; + return oneData.ScoreExchangeStarLevel; + } + /** 游戏名 */ public getGameName(): string | null { let oneData = this.getAllConfig(); diff --git a/assets/Scripts/chat18x/config/PurchaseConfig.ts b/assets/Scripts/chat18x/config/PurchaseConfig.ts index c97f2fc5..0eaaaf84 100644 --- a/assets/Scripts/chat18x/config/PurchaseConfig.ts +++ b/assets/Scripts/chat18x/config/PurchaseConfig.ts @@ -25,6 +25,65 @@ export class PurchaseConfig extends BaseConfig { return ConfigManager.tables.TbPurchaseConfig; } + /** + * 获取所有配置 id,如果存在 + */ + public getAllId(): any | null { + let allData = this.getAllConfig(); + if (!allData) return null; + const dataArr = allData.getDataList(); + let allId = []; + for (let oneData of dataArr) { + allId.push(oneData.id); + } + return allId; + } + + /** 获取 充值商品的id数组,首位数字为 1 */ + public getRechargeIds(): number[] { + let allId = this.getAllId(); + if (!allId) return []; + // 获取所有 id + let resultId = []; + for (let one of allId) { + const firstDigit = one.toString()[0]; // 取首位字符 + if (firstDigit === "1") { + resultId.push(one); + } + } + return resultId; + } + + /** 获取 会员商品的id数组,首位数字为 2 */ + public getMemberIds(): number[] { + let allId = this.getAllId(); + if (!allId) return []; + // 获取所有 id + let resultId = []; + for (let one of allId) { + const firstDigit = one.toString()[0]; // 取首位字符 + if (firstDigit === "2") { + resultId.push(one); + } + } + return resultId; + } + + /** 获取 聊天商品的id数组,首位数字为 3 */ + public getChatIds(): number[] { + let allId = this.getAllId(); + if (!allId) return []; + // 获取所有 id + let resultId = []; + for (let one of allId) { + const firstDigit = one.toString()[0]; // 取首位字符 + if (firstDigit === "3") { + resultId.push(one); + } + } + return resultId; + } + /** * 获取配置,根据 id */ @@ -47,4 +106,11 @@ export class PurchaseConfig extends BaseConfig { if (!oneData) return null; return oneData.count; } + + /** 根据商品 id 获取商品价格 */ + public getPriceById(id: number): number | null { + let oneData = this.getConfigById(id); + if (!oneData) return null; + return oneData.price; + } } \ No newline at end of file diff --git a/assets/Scripts/chat18x/data/AccountData.ts b/assets/Scripts/chat18x/data/AccountData.ts index 357673fc..ab33c879 100644 --- a/assets/Scripts/chat18x/data/AccountData.ts +++ b/assets/Scripts/chat18x/data/AccountData.ts @@ -8,8 +8,8 @@ export class AccountData extends BaseData { private _identifier = ""; // 身份类型,1:游客;2:微信;3:googleplay private _identityType = 1; - // 玩家Uid - private _uid = ""; + // 用户id + private _accId: string = ""; // 是否新手 private _isNewGuide = true; // 是否刚注册 @@ -18,7 +18,7 @@ export class AccountData extends BaseData { public reset(): void { this._identifier = ""; this._identityType = 1; - this._uid = ""; + this._accId = ""; this._isNewGuide = true; this._isNewRegist = true; } @@ -26,7 +26,7 @@ export class AccountData extends BaseData { public clear(): void { this._identifier = ""; this._identityType = 1; - this._uid = ""; + this._accId = ""; this._isNewGuide = true; this._isNewRegist = true; } @@ -35,7 +35,7 @@ export class AccountData extends BaseData { super.destroy(); this._identifier = null; this._identityType = null; - this._uid = null; + this._accId = null; this._isNewGuide = null; this._isNewRegist = null; } @@ -60,14 +60,14 @@ export class AccountData extends BaseData { return this._identityType; } - /** 设置玩家Uid */ - public set uid(value: string) { - this._uid = value; + /** 设置用户id */ + public set accId(value: string) { + this._accId = value; } - /** 获取玩家Uid */ - public get uid(): string { - return this._uid; + /** 获取用户id */ + public get accId(): string { + return this._accId; } /** 设置是否新手 */ diff --git a/assets/Scripts/chat18x/data/BaseData.ts b/assets/Scripts/chat18x/data/BaseData.ts index 3e2e3b37..b96c1a13 100644 --- a/assets/Scripts/chat18x/data/BaseData.ts +++ b/assets/Scripts/chat18x/data/BaseData.ts @@ -13,6 +13,13 @@ export class BaseData { /** 数据ID */ protected _dataId: string = ''; + /** + * 构造方法 + */ + constructor() { + + } + /** * 初始化数据 * @param dataId 数据ID diff --git a/assets/Scripts/chat18x/data/DataManager.ts b/assets/Scripts/chat18x/data/DataManager.ts index 0cec46ed..04ceb0c5 100644 --- a/assets/Scripts/chat18x/data/DataManager.ts +++ b/assets/Scripts/chat18x/data/DataManager.ts @@ -13,6 +13,8 @@ import { WalletData } from "./WalletData"; import { ShopData } from "./ShopData"; import { OrderData } from "./OrderData"; import { GirlData } from "./GirlData"; +import { EnvData } from "./EnvData"; +import { GlobalData } from "./GlobalData"; /** * 集中定义数据ID,避免写错字符串 @@ -28,6 +30,13 @@ export enum DataId { Shop = "shop", // 商城数据 Order = "order", // 订单数据 Girl = "girl", // 技师数据 + GirlBrief = "girlBrief", // 技师的简要数据 + GirlDetail = "girlDetail", // 技师的详细数据 + GirlUnlock = "girlUnlock", // 技师的解锁数据 + GirlChat = "girlChat", // 技师的聊天数据 + GirlFavorability = "girlFavorability", // 技师的好感度数据 + Env = "env", // 环境数据 + Global = "global", // 全局数据 } /** 构造器类型 */ @@ -70,6 +79,8 @@ export class DataManager { this.register(DataId.Shop, ShopData); this.register(DataId.Order, OrderData); this.register(DataId.Girl, GirlData); + this.register(DataId.Env, EnvData); + this.register(DataId.Global, GlobalData); } /** @@ -102,8 +113,6 @@ export class DataManager { // 若你的 BaseData.init 接受 dataId,可传入 instance.init?.(dataId); this._dataMap.set(dataId, instance); - - console.log(`[DataManager] 实例化并缓存数据: ${dataId}`); return instance; } @@ -115,7 +124,6 @@ export class DataManager { if (data) { data.destroy?.(); this._dataMap.delete(dataId); - console.log(`[DataManager] 移除数据: ${dataId}`); return true; } return false; @@ -125,7 +133,6 @@ export class DataManager { * 重置所有数据 */ public resetAllData(): void { - console.log("[DataManager] 重置所有数据"); this._dataMap.forEach((data) => data.reset?.()); } @@ -133,7 +140,6 @@ export class DataManager { * 清空所有数据 */ public clearAllData(): void { - console.log("[DataManager] 清空所有数据"); this._dataMap.forEach((data) => data.clear?.()); } @@ -141,7 +147,6 @@ export class DataManager { * 销毁所有数据 */ public destroyAllData(): void { - console.log("[DataManager] 销毁所有数据"); this._dataMap.forEach((data) => data.destroy?.()); this._dataMap.clear(); } diff --git a/assets/Scripts/chat18x/data/EnvData.ts b/assets/Scripts/chat18x/data/EnvData.ts new file mode 100644 index 00000000..28a7adf7 --- /dev/null +++ b/assets/Scripts/chat18x/data/EnvData.ts @@ -0,0 +1,32 @@ +/** + * 环境数据 + */ +import { BaseData } from "./BaseData"; + +export class EnvData extends BaseData { + // cdn地址 + private _cdn: string = ''; + + public reset(): void { + this._cdn = ''; + } + + public clear(): void { + this._cdn = ''; + } + + public destroy(): void { + super.destroy(); + this._cdn = null; + } + + /** 设置cdn地址 */ + public set cdn(value: string) { + this._cdn = value; + } + + /** 获取cdn地址 */ + public get cdn(): string { + return this._cdn; + } +} \ No newline at end of file diff --git a/assets/Scripts/chat18x/data/EnvData.ts.meta b/assets/Scripts/chat18x/data/EnvData.ts.meta new file mode 100644 index 00000000..c71c2518 --- /dev/null +++ b/assets/Scripts/chat18x/data/EnvData.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "cf8c891f-8726-42be-918b-4f101118dae3", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/chat18x/data/GirlBriefData.ts b/assets/Scripts/chat18x/data/GirlBriefData.ts new file mode 100644 index 00000000..9f4813fc --- /dev/null +++ b/assets/Scripts/chat18x/data/GirlBriefData.ts @@ -0,0 +1,147 @@ +/** + * 技师的简要数据 + */ +import { BaseData } from "./BaseData"; +import proto from 'db://assets/Scripts/proto/proto.pb.js'; + +export class GirlBriefData extends BaseData { + // id + private id: number; + // 名字键 + private nameKey: string; + // 年龄 + private age: string; + // 主题枚举 + private category: number; + // 标签键 + private tagKey: string; + // 付费类型 + private priceType: number; + // 购买价格 + private price: number; + // VIP能否解锁 + private vipUnlock: number; + // 头像路径 + private avatarPath: string; + // list头像路径 + private listAvatarPath: string; + + constructor() { + super(); + this.id = 0; + this.nameKey = ""; + this.age = ""; + this.category = 0; + this.tagKey = ""; + this.priceType = 0; + this.price = 0; + this.vipUnlock = 0; + this.avatarPath = ""; + this.listAvatarPath = ""; + } + + public reset(): void { + this.id = 0; + this.nameKey = ""; + this.age = ""; + this.category = 0; + this.tagKey = ""; + this.priceType = 0; + this.price = 0; + this.vipUnlock = 0; + this.avatarPath = ""; + this.listAvatarPath = ""; + } + + public clear(): void { + this.id = 0; + this.nameKey = ""; + this.age = ""; + this.category = 0; + this.tagKey = ""; + this.priceType = 0; + this.price = 0; + this.vipUnlock = 0; + this.avatarPath = ""; + this.listAvatarPath = ""; + } + + public destroy(): void { + super.destroy(); + this.id = null; + this.nameKey = null; + this.age = null; + this.category = null; + this.tagKey = null; + this.priceType = null; + this.price = null; + this.vipUnlock = null; + this.avatarPath = null; + this.listAvatarPath = null; + } + + /** 保存数据 */ + public setData(data: proto.cs.IGirls): void { + if (!data) return; + this.id = data.id; + this.nameKey = data.nameKey; + this.age = data.age; + this.category = data.category; + this.tagKey = data.tagKey; + this.priceType = data.priceType; + this.price = data.price; + this.vipUnlock = data.vipUnlock; + this.avatarPath = data.avatarPath; + this.listAvatarPath = data.listAvatarPath; + } + + /** 获取 id */ + public getId(): number { + return this.id; + } + + /** 获取名字键 */ + public getGrilName(): string { + return this.nameKey; + } + + /** 获取年龄 */ + public getGrilAge(): string { + return this.age; + } + + /** 获取主题枚举 */ + public getGrilCategory(): number { + return this.category; + } + + /** 获取标签键 */ + public getGrilTagKey(): string { + return this.tagKey; + } + + /** 获取付费类型 */ + public getGrilPriceType(): number { + return this.priceType; + } + + /** 获取价格 */ + public getGrilPrice(): number { + return this.price; + } + + /** 获取VIP能否解锁 */ + public getGrilVipUnlock(): number { + return this.vipUnlock; + } + + /** 获取头像路径 */ + public getGrilAvatar(): string { + return this.avatarPath; + } + + /** 获取list头像路径 */ + public getGrilListAvatar(): string { + return this.listAvatarPath; + } +} diff --git a/assets/Scripts/chat18x/data/GirlBriefData.ts.meta b/assets/Scripts/chat18x/data/GirlBriefData.ts.meta new file mode 100644 index 00000000..56f77212 --- /dev/null +++ b/assets/Scripts/chat18x/data/GirlBriefData.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "35c42c32-997a-40f3-b689-6de7e53cdf3b", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/chat18x/data/GirlChatData.ts b/assets/Scripts/chat18x/data/GirlChatData.ts new file mode 100644 index 00000000..1eac96f1 --- /dev/null +++ b/assets/Scripts/chat18x/data/GirlChatData.ts @@ -0,0 +1,79 @@ +/** + * 技师的聊天数据 + */ +import { BaseData } from "./BaseData"; +import proto from 'db://assets/Scripts/proto/proto.pb.js'; + +export class GirlChatData extends BaseData { + // id + private id: number; + // 总聊天次数 + private chatTotalCount: number; + // 剩余聊天次数, < 0: 不限制; = 0 聊天次数已经用完; > 0 还剩余多少次聊天次数 + private chatRemainCount: number; + + constructor() { + super(); + this.id = 0; + this.chatTotalCount = 0; + this.chatRemainCount = 0; + } + + public reset(): void { + this.id = 0; + this.chatTotalCount = 0; + this.chatRemainCount = 0; + } + + public clear(): void { + this.id = 0; + this.chatTotalCount = 0; + this.chatRemainCount = 0; + } + + public destroy(): void { + super.destroy(); + this.id = null; + this.chatTotalCount = null; + this.chatRemainCount = null; + } + + /** 获取 id */ + public getId(): number { + return this.id; + } + + /** 保存 id */ + public setId(value: number): void { + this.id = value; + } + + /** 获取总聊天次数 */ + public getChatTotalCount(): number { + return this.chatTotalCount; + } + + /** 保存总聊天次数 */ + public setChatTotalCount(value: number): void { + this.chatTotalCount = value; + console.log("当前技师 ", this.id, " ,总聊天次数:", this.chatTotalCount); + } + + /** 获取剩余聊天次数 */ + public getChatRemainCount(): number { + return this.chatRemainCount; + } + + /** 保存剩余聊天次数 */ + public setChatRemainCount(value: number): void { + this.chatRemainCount = value; + console.log("当前技师 ", this.id, " ,剩余聊天次数:", this.chatRemainCount); + } + + /** 更新剩余聊天次数 */ + public useChat(times: number = 1) { + if (this.chatRemainCount > 0) { + this.setChatRemainCount(Math.max(0, this.chatRemainCount - times)); + } + } +} diff --git a/assets/Scripts/chat18x/data/GirlChatData.ts.meta b/assets/Scripts/chat18x/data/GirlChatData.ts.meta new file mode 100644 index 00000000..d4755cbf --- /dev/null +++ b/assets/Scripts/chat18x/data/GirlChatData.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "40a2e0a1-fce2-4812-97b5-f96153800c52", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/chat18x/data/GirlData.ts b/assets/Scripts/chat18x/data/GirlData.ts index 24755002..887a769a 100644 --- a/assets/Scripts/chat18x/data/GirlData.ts +++ b/assets/Scripts/chat18x/data/GirlData.ts @@ -1,15 +1,27 @@ /** - * 技师数据 + * 技师数据,统一访问入口 */ import { BaseData } from "./BaseData"; +import { GirlBriefData } from "./GirlBriefData"; +import { GirlDetailData } from "./GirlDetailData"; +import { GirlUnlockData } from "./GirlUnlockData"; +import { GirlChatData } from "./GirlChatData"; +import { GirlFavorabilityData } from "./GirlFavorabilityData"; +import { DataId } from "./DataManager"; import proto from 'db://assets/Scripts/proto/proto.pb.js'; // 分类的数据结构 interface CategoryBucket { // 技师的简要数据 - briefs: Map; + briefs: Map; // 技师的详细数据 - details: Map; + details: Map; + // 技师的解锁数据 + unlocks: Map; + // 技师的聊天数据 + chats: Map; + // 技师的好感度数据 + favorability: Map; // 技师的id girlIds: number[]; } @@ -20,8 +32,6 @@ const DAILY_BUCKET = "__daily__"; export class GirlData extends BaseData { // 大分类 private _categories = new Map(); - // 每日推荐(存放在 DAILY_BUCKET 中,同时保留 id 索引便于 UI 使用) - private _dailyRecommendIds: number[] = []; public reset(): void { this._categories.clear(); @@ -50,271 +60,212 @@ export class GirlData extends BaseData { let bucket = cats.get(categoryId); if (!bucket) { bucket = { - briefs: new Map(), - details: new Map(), + briefs: new Map(), + details: new Map(), + unlocks: new Map(), + chats: new Map(), + favorability: new Map(), girlIds: [], }; cats.set(categoryId, bucket); } return bucket; } - - /** - * 合并一批简要信息到指定分类;并维护 girlIds 顺序(去重追加) - */ - public mergeBriefs(categoryId: string, respOrList: proto.cs.IGirlBrief[]): void { - if (!respOrList) return; - let allData = this.parseAllGirlBrief(respOrList); - if (!allData) return; - const bucket = this.ensureBucket(categoryId); - // 用一个临时 Set 保存已有的 id,加速去重 - const existed = new Set(bucket.girlIds); - for (const g of allData) { - const id = g.id; - bucket.briefs.set(id, g); - // 去重 - if (!existed.has(id)) { - bucket.girlIds.push(id); - existed.add(id); - } - } - console.log("保存技师的简要数据: ", bucket); - } /** 取分类下的全部 girlIds(若分类不存在返回空数组) */ public getGirlIds(categoryId: string): number[] { const b = this.ensureCategories().get(categoryId); return b ? b.girlIds : []; } + + /** 保存技师列表 */ + public setGirlList(categoryId: string, data: proto.cs.ICSGetGirlListRes): void { + if (!data) return; + this.setGirlBrief(categoryId, data.girls); + this.setGirlUnlock(categoryId, data.girls); + this.setGirlFavorability(categoryId, data.girls); + + const bucket = this.ensureBucket(categoryId); + console.log("保存类别 ", categoryId, " 的技师列表: ", bucket); + } + + /** 保存技师详细数据 */ + public setGirlDetailData(categoryId: string, data: proto.cs.ICSGetGirlDetailRes): void { + if (!data) return; + let details = [] + details.push(data.girl); + this.setGirlBrief(categoryId, details); + this.setGirlDetail(categoryId, details); + this.setGirlUnlock(categoryId, details); + this.setGirlChat(categoryId, details); + this.setGirlFavorability(categoryId, details); + + const bucket = this.ensureBucket(categoryId); + console.log("保存类别 ", categoryId, " 的详细数据: ", bucket); + } /** --------------------------------------------------------- 技师的简要数据 --------------------------------------------------------- */ - // 解析技师简要数据,一个 - private parseOneGirlBrief(data: proto.cs.IGirlBrief): proto.cs.IGirlBrief | null { + /** + * 合并一个简要数据到指定分类;并维护 girlIds 顺序(去重追加) + */ + private mergeOneBrief(categoryId: string, data: proto.cs.IGirls): void { + if (!data) return; + const bucket = this.ensureBucket(categoryId); + // 用一个临时 Set 保存已有的 id,加速去重 + const existed = new Set(bucket.girlIds); + let id = data.id; + const one = this.parseOneGirlBrief(data); + if (!one) return; + bucket.briefs.set(id, one); + if (!existed.has(id)) { + bucket.girlIds.push(id); + } + } + + /** + * 合并一批简要数据到指定分类;并维护 girlIds 顺序(去重追加) + */ + private mergeBriefs(categoryId: string, respOrList: proto.cs.IGirlData[]): void { + if (!respOrList) return; + const bucket = this.ensureBucket(categoryId); + // 用一个临时 Set 保存已有的 id,加速去重 + const existed = new Set(bucket.girlIds); + + for (const g of respOrList) { + const one = this.parseOneGirlBrief(g.girl); + if (!one) continue; + bucket.briefs.set(g.id, one); + + if (!existed.has(g.id)) { + bucket.girlIds.push(g.id); + existed.add(g.id); + } + } + } + + private parseOneGirlBrief(data: proto.cs.IGirls): GirlBriefData | null { if (!data) return null; - const oneData: proto.cs.IGirlBrief = { - id: data.id, // id - name: data.name, // 名字 - age: data.age, // 年龄 - tagKey: data.tagKey, // 标签 - priceType: data.priceType, // 付费类型 - price: data.price, // 价格 - avatar: data.avatar, // 头像 - star: data.star, // 星级 - category: data.category, // 主题枚举 - listAvatarPath: data.listAvatarPath, // list头像路径 - }; + let oneData = new GirlBriefData(); + oneData.init?.(DataId.GirlBrief); + oneData.setData(data); return oneData; } - // 解析技师简要数据,多个 - private parseAllGirlBrief(data: proto.cs.IGirlBrief[]): proto.cs.IGirlBrief[] | null { - if (!data) return null; - let allData = []; - for (const value of data) { - const oneData: proto.cs.IGirlBrief = this.parseOneGirlBrief(value); - if (oneData) { - allData.push(oneData); - } - } - return allData; - } - /** 保存技师的简要数据 */ - public setGirlBriefs(categoryId: string, data: proto.cs.ICSGetGirlListRes): void { - this.mergeBriefs(categoryId, data.girls); + private setGirlBrief(categoryId: string, data: proto.cs.IGirlData[]): void { + this.mergeBriefs(categoryId, data); } - /** 取某分类 + girlId 的简要信息 */ - private getGrilBrief(categoryId: string, girlId: number): proto.cs.IGirlBrief | null { + /** 取某分类 + girlId 的简要数据 */ + private getGrilBrief(categoryId: string, girlId: number): GirlBriefData | null { const b = this.ensureCategories().get(categoryId); if (!b) return null; return b.briefs.get(girlId) ?? null; } - /** 获取名字 */ + /** 获取名字键 */ public getGrilName(categoryId: string, girlId: number): string { let oneData = this.getGrilBrief(categoryId, girlId); if (!oneData) return ""; - return oneData.name; + return oneData.getGrilName(); } /** 获取年龄 */ - public getGrilAge(categoryId: string, girlId: number): number { + public getGrilAge(categoryId: string, girlId: number): string { + let oneData = this.getGrilBrief(categoryId, girlId); + if (!oneData) return "0"; + return oneData.getGrilAge(); + } + + /** 获取主题枚举 */ + public getGrilCategory(categoryId: string, girlId: number): number { let oneData = this.getGrilBrief(categoryId, girlId); if (!oneData) return 0; - return oneData.age; - } + return oneData.getGrilCategory(); + } - /** 获取标签 */ + /** 获取标签键 */ public getGrilTagKey(categoryId: string, girlId: number): string { let oneData = this.getGrilBrief(categoryId, girlId); if (!oneData) return ""; - return oneData.tagKey; + return oneData.getGrilTagKey(); } /** 获取付费类型 */ public getGrilPriceType(categoryId: string, girlId: number): number { let oneData = this.getGrilBrief(categoryId, girlId); if (!oneData) return 0; - return oneData.priceType; + return oneData.getGrilPriceType(); } /** 获取价格 */ public getGrilPrice(categoryId: string, girlId: number): number { let oneData = this.getGrilBrief(categoryId, girlId); if (!oneData) return 0; - return oneData.price; + return oneData.getGrilPrice(); } + + /** 获取VIP能否解锁 */ + public getGrilVipUnlock(categoryId: string, girlId: number): number { + let oneData = this.getGrilBrief(categoryId, girlId); + if (!oneData) return 0; + return oneData.getGrilVipUnlock(); + } - /** 获取头像 */ + /** 获取头像路径 */ public getGrilAvatar(categoryId: string, girlId: number): string { let oneData = this.getGrilBrief(categoryId, girlId); if (!oneData) return ""; - return oneData.avatar; - } - - /** 获取星级 */ - public getGrilStar(categoryId: string, girlId: number): number { + return oneData.getGrilAvatar(); + } + + /** 获取list头像路径 */ + public getGrilListAvatar(categoryId: string, girlId: number): string { let oneData = this.getGrilBrief(categoryId, girlId); - if (!oneData) return 0; - return oneData.star; - } - - /** 获取主题枚举 */ - public getGrilCategory(categoryId: string, girlId: number): number { - let oneData = this.getGrilBrief(categoryId, girlId); - if (!oneData) return 0; - return oneData.category; + if (!oneData) return ""; + return oneData.getGrilListAvatar(); } /** 获取主题枚举,根据 id */ public getGrilCategoryById(girlId: number): number { const cats = this.ensureCategories(); - + // 遍历 for (const bucket of cats.values()) { // 先查简要信息 const brief = bucket.briefs.get(girlId); - if (brief && brief.category) { - return brief.category; - } - // 兜底:若只缓存了详情,也从详情里的 brief 取 - const detail = bucket.details.get(girlId); - if (detail?.brief && typeof detail.brief.category) { - return detail.brief.category; + if (brief) { + return brief.getGrilCategory(); } } - // 未找到 return 0; } - /** 获取list头像路径 */ - public getGrilListAvatar(categoryId: string, girlId: number): string { - let oneData = this.getGrilBrief(categoryId, girlId); - if (!oneData) return ""; - return oneData.listAvatarPath; - } - /** --------------------------------------------------------- 技师的详细数据 --------------------------------------------------------- */ - // 解析技师图片数据,一个 - private parseOneGirlPhoto(data: proto.cs.IPurchaseCommercialImage): proto.cs.IPurchaseCommercialImage | null { - if (!data) return null; - const oneData: proto.cs.IPurchaseCommercialImage = { - imageType: data.imageType, // 图片类型 - imagePrice: data.imagePrice, // 图片价格 - path: data.path, // 图片资源路径 - isRelease: data.isRelease, // 是否解锁 - }; - return oneData; - } - - // 解析技师图片数据,多个 - private parseAllGirlPhoto(data: proto.cs.IPurchaseCommercialImage[]): proto.cs.IPurchaseCommercialImage[] | null { - if (!data) return null; - let allData = []; - for (const value of data) { - const oneData: proto.cs.IPurchaseCommercialImage = this.parseOneGirlPhoto(value); - if (oneData) { - allData.push(oneData); - } - } - return allData; - } - - // 解析技师视频数据,一个 - private parseOneGirlVideo(data: proto.cs.IPurchaseCommercialVideo): proto.cs.IPurchaseCommercialVideo | null { - if (!data) return null; - const oneData: proto.cs.IPurchaseCommercialVideo = { - path: data.path, // 视频资源路径 - emotion: data.emotion, // 关联情绪 - videoPrice: data.videoPrice, // 价格 - isRelease: data.isRelease, // 是否解锁 - }; - return oneData; - } - - // 解析技师视频数据,多个 - private parseAllGirlVideo(data: proto.cs.IPurchaseCommercialVideo[]): proto.cs.IPurchaseCommercialVideo[] | null { - if (!data) return null; - let allData = []; - for (const value of data) { - const oneData: proto.cs.IPurchaseCommercialVideo = this.parseOneGirlVideo(value); - if (oneData) { - allData.push(oneData); - } - } - return allData; - } - // 解析技师详细数据,一个 - private parseOneGirlDetail(data: proto.cs.IGirlDetail): proto.cs.IGirlDetail | null { + private parseOneGirlDetail(data: proto.cs.IGirlsDetail): GirlDetailData | null { if (!data) return null; - const photoData = this.parseAllGirlPhoto(data.images); - const videoData = this.parseAllGirlVideo(data.videos); - const briefData = this.parseOneGirlBrief(data.brief); - const oneData: proto.cs.IGirlDetail = { - brief: briefData, // 技师简要数据 - desc: data.desc, // 技师描述 - isRelease: data.isRelease, // 技师是否解锁 - chatCount: data.chatCount, // 剩余聊天次数 - images: photoData, // 技师图片列表 - videos: videoData, // 技师视频列表 - }; + let oneData = new GirlDetailData(); + oneData.init?.(DataId.GirlDetail); + oneData.setData(data); return oneData; } - // 解析技师详细数据,多个 - private parseAllGirlDetail(data: proto.cs.IGirlDetail[]): proto.cs.IGirlDetail[] | null { - if (!data) return null; - let allData = []; - for (const value of data) { - const oneData: proto.cs.IGirlDetail = this.parseOneGirlDetail(value); - if (oneData) { - allData.push(oneData); - } - } - return allData; - } - /** 保存技师的详细数据 */ - public setGirlDetails(categoryId: string, data: proto.cs.ICSGetGirlDetailRes): void { - const d = data?.detail; - if (!d) return; - // 合并简要信息 - if (d.brief) this.mergeBriefs(categoryId, [d.brief]); - const oneDetail = this.parseOneGirlDetail(d); + private setGirlDetail(categoryId: string, data: proto.cs.IGirlData[]): void { + if (!data) return; const bucket = this.ensureBucket(categoryId); - // id - const id = d.brief?.id ?? 0; - // 写入详情 - bucket.details.set(id, oneDetail); - console.log("保存技师的详细数据: ", bucket); + for (const g of data) { + const one = this.parseOneGirlDetail(g.detail); + if (!one) continue; + bucket.details.set(g.id, one); + } } - /** 取某分类 + girlId 的详细信息 */ - public getGrilDetail(categoryId: string, girlId: number): proto.cs.IGirlDetail | null { + /** 取某分类 + girlId 的详细数据 */ + public getGrilDetail(categoryId: string, girlId: number): GirlDetailData | null { const b = this.ensureCategories().get(categoryId); if (!b) return null; return b.details.get(girlId) ?? null; @@ -324,163 +275,344 @@ export class GirlData extends BaseData { public getGrilDesc(categoryId: string, girlId: number): string { let oneData = this.getGrilDetail(categoryId, girlId); if (!oneData) return ""; - return oneData.desc; - } - - /** 获取技师是否解锁 */ - public getGrilIsRelease(categoryId: string, girlId: number): boolean { - let oneData = this.getGrilDetail(categoryId, girlId); - if (!oneData) return false; - return oneData.isRelease; - } - - /** 获取技师剩余聊天次数 */ - public getGrilChatCount(categoryId: string, girlId: number): number { - let oneData = this.getGrilDetail(categoryId, girlId); - if (!oneData) return 0; - return oneData.chatCount; - } - - /** 获取所有技师图片数据 */ - private getAllGrilPhotoData(categoryId: string, girlId: number): proto.cs.IPurchaseCommercialImage[] | null { - let oneData = this.getGrilDetail(categoryId, girlId); - if (!oneData || !oneData.images) return null; - return oneData.images; - } + return oneData.getGirlDesc(); + } /** 获取所有技师图片数据的数量 */ public getAllGrilPhotoDataCount(categoryId: string, girlId: number): number { - let allData = this.getAllGrilPhotoData(categoryId, girlId); - if (!allData) return 0; - return allData.length; + let oneData = this.getGrilDetail(categoryId, girlId); + if (!oneData) return 0; + return oneData.getAllGrilPhotoDataCount(); } - /** 获取技师图片数据,通过 index */ - private getGrilPhotoData(categoryId: string, girlId: number, index: number): proto.cs.IPurchaseCommercialImage | null { - let allData = this.getAllGrilPhotoData(categoryId, girlId); - if (!allData) return null; - // 下标越界保护 - if (index < 0 || index >= allData.length) return null; + /** 获取所有技师图片数据的id */ + public getAllGrilPhotoDataId(categoryId: string, girlId: number): number[] { + let oneData = this.getGrilDetail(categoryId, girlId); + if (!oneData) return []; + return oneData.getAllGrilPhotoDataId(); + } - return allData[index] ?? null; - } + /** 获取第一个技师图片的资源路径 */ + public getFirstGrilPhotoPath(categoryId: string, girlId: number): string { + let oneData = this.getGrilDetail(categoryId, girlId); + if (!oneData) return ""; + // 第一个 id + const ids = this.getAllGrilPhotoDataId(categoryId, girlId); + const length = ids.length; + if (length <= 0) return ""; + // 返回数据 + return oneData.getGrilPhotoPath(ids[0]); + } /** 获取技师图片的类型 */ - public getGrilPhotoType(categoryId: string, girlId: number, index: number): number { - let oneData = this.getGrilPhotoData(categoryId, girlId, index); + public getGrilPhotoType(categoryId: string, girlId: number, id: number): number { + let oneData = this.getGrilDetail(categoryId, girlId); if (!oneData) return 0; - return oneData.imageType; + return oneData.getGrilPhotoType(id); } + + /** 获取技师图片的聊天触发次数 */ + public getGrilPhotoUnlockCounts(categoryId: string, girlId: number, id: number): number { + let oneData = this.getGrilDetail(categoryId, girlId); + if (!oneData) return 0; + return oneData.getGrilPhotoUnlockCounts(id); + } /** 获取技师图片的价格 */ - public getGrilPhotoPrice(categoryId: string, girlId: number, index: number): number { - let oneData = this.getGrilPhotoData(categoryId, girlId, index); - if (!oneData) return 0; - return oneData.imagePrice; - } - - /** 获取技师图片的路径 */ - public getGrilPhotoPic(categoryId: string, girlId: number, index: number): string { - let oneData = this.getGrilPhotoData(categoryId, girlId, index); - if (!oneData) return ""; - return oneData.path; - } - - /** 获取技师图片是否解锁 */ - public getGrilPhotoIsRelease(categoryId: string, girlId: number, index: number): boolean { - let oneData = this.getGrilPhotoData(categoryId, girlId, index); - if (!oneData) return false; - return oneData.isRelease; - } - - /** 获取所有技师视频数据 */ - private getAllGrilVideoData(categoryId: string, girlId: number): proto.cs.IPurchaseCommercialVideo[] | null { + public getGrilPhotoPrice(categoryId: string, girlId: number, id: number): number { let oneData = this.getGrilDetail(categoryId, girlId); - if (!oneData || !oneData.videos) return null; - - return oneData.videos ?? null; + if (!oneData) return 0; + return oneData.getGrilPhotoPrice(id); } + /** 获取技师图片的资源路径 */ + public getGrilPhotoPic(categoryId: string, girlId: number, id: number): string { + let oneData = this.getGrilDetail(categoryId, girlId); + if (!oneData) return ""; + return oneData.getGrilPhotoPath(id); + } + /** 获取所有技师视频数据的数量 */ public getAllGrilVideoDataCount(categoryId: string, girlId: number): number { - let allData = this.getAllGrilVideoData(categoryId, girlId); - if (!allData) return 0; - return allData.length; - } - - /** 获取技师视频数据,通过 index */ - private getGrilVideoData(categoryId: string, girlId: number, index: number): proto.cs.IPurchaseCommercialVideo | null { - let allData = this.getAllGrilVideoData(categoryId, girlId); - if (!allData) return null; - // 下标越界保护 - if (index < 0 || index >= allData.length) return null; - - return allData[index] ?? null; + let oneData = this.getGrilDetail(categoryId, girlId); + if (!oneData) return 0; + return oneData.getAllGrilVideoDataCount(); } - /** 获取技师视频的路径 */ - public getGrilVideoPath(categoryId: string, girlId: number, index: number): string { - let oneData = this.getGrilVideoData(categoryId, girlId, index); + /** 获取所有技师视频数据的id */ + public getAllGrilVideoDataId(categoryId: string, girlId: number): number[] { + let oneData = this.getGrilDetail(categoryId, girlId); + if (!oneData) return []; + return oneData.getAllGrilVideoDataId(); + } + + /** 获取第一个技师视频的资源路径 */ + public getFirstGrilVideoPath(categoryId: string, girlId: number): string { + let oneData = this.getGrilDetail(categoryId, girlId); if (!oneData) return ""; - return oneData.path; + // 第一个 id + const ids = this.getAllGrilVideoDataId(categoryId, girlId); + const length = ids.length; + if (length <= 0) return ""; + // 返回数据 + return oneData.getGrilVideoPath(ids[0]); + } + + /** 获取技师视频的资源路径 */ + public getGrilVideoPath(categoryId: string, girlId: number, id: number): string { + let oneData = this.getGrilDetail(categoryId, girlId); + if (!oneData) return ""; + return oneData.getGrilVideoPath(id); } /** 获取技师视频的关联情绪 */ - public getGrilVideoEmotion(categoryId: string, girlId: number, index: number): number { - let oneData = this.getGrilVideoData(categoryId, girlId, index); + public getGrilVideoEmotion(categoryId: string, girlId: number, id: number): number { + let oneData = this.getGrilDetail(categoryId, girlId); if (!oneData) return 0; - return oneData.emotion; + return oneData.getGrilVideoEmotion(id); } /** 获取技师视频的价格 */ - public getGrilVideoPrice(categoryId: string, girlId: number, index: number): number { - let oneData = this.getGrilVideoData(categoryId, girlId, index); + public getGrilVideoPrice(categoryId: string, girlId: number, id: number): number { + let oneData = this.getGrilDetail(categoryId, girlId); if (!oneData) return 0; - return oneData.videoPrice; + return oneData.getGrilVideoPrice(id); } - /** 获取技师视频是否解锁 */ - public getGrilVideoIsRelease(categoryId: string, girlId: number, index: number): boolean { - let oneData = this.getGrilVideoData(categoryId, girlId, index); + /** --------------------------------------------------------- 技师的解锁数据 --------------------------------------------------------- */ + + // 解析技师解锁数据,一个 + private parseOneGirlUnlock(data: proto.cs.IGirlData): GirlUnlockData | null { + if (!data) return null; + let oneData = new GirlUnlockData(); + oneData.init?.(DataId.GirlUnlock); + oneData.setId(data.id); + oneData.setIsRelease(data.isRelease); + if (data.images) { + let ids = []; + for (let one of data.images) { + ids.push(one.resId); + } + oneData.setUnlockedImageIds(ids); + } + if (data.videos) { + let ids = []; + for (let one of data.videos) { + ids.push(one.resId); + } + oneData.setUnlockedVideoIds(ids); + } + return oneData; + } + + /** 保存技师的解锁数据 */ + private setGirlUnlock(categoryId: string, data: proto.cs.IGirlData[]): void { + if (!data) return; + const bucket = this.ensureBucket(categoryId); + for (const g of data) { + const one = this.parseOneGirlUnlock(g); + if (!one) continue; + bucket.unlocks.set(g.id, one); + } + } + + /** 取某分类 + girlId 的解锁数据 */ + private getGrilUnlock(categoryId: string, girlId: number): GirlUnlockData | null { + const b = this.ensureCategories().get(categoryId); + if (!b) return null; + return b.unlocks.get(girlId) ?? null; + } + + /** 获取 付费技师是否已经解锁 */ + public getIsRelease(categoryId: string, girlId: number): boolean { + let oneData = this.getGrilUnlock(categoryId, girlId); if (!oneData) return false; - return oneData.isRelease; + return oneData.getIsRelease(); + } + + /** 判断图片是否解锁 */ + public isImageUnlock(categoryId: string, girlId: number, id: number): boolean { + let oneData = this.getGrilUnlock(categoryId, girlId); + if (!oneData) return false; + return oneData.isImageUnlock(id); + } + + /** 解锁图片 */ + public unlockImage(categoryId: string, girlId: number, id: number): void { + let oneData = this.getGrilUnlock(categoryId, girlId); + if (!oneData) return; + return oneData.unlockImage(id); + } + + /** 获取所有解锁图片的 id */ + public getUnlockedImageIds(categoryId: string, girlId: number): number[] { + let oneData = this.getGrilUnlock(categoryId, girlId); + if (!oneData) return []; + return oneData.getUnlockedImageIds(); + } + + /** 判断视频是否解锁 */ + public isVideoUnlock(categoryId: string, girlId: number, id: number): boolean { + let oneData = this.getGrilUnlock(categoryId, girlId); + if (!oneData) return false; + return oneData.isVideoUnlock(id); + } + + /** 解锁视频 */ + public unlockVideo(categoryId: string, girlId: number, id: number): void { + let oneData = this.getGrilUnlock(categoryId, girlId); + if (!oneData) return; + return oneData.unlockVideo(id); + } + + /** 获取所有解锁视频的 id */ + public getUnlockedVideoIds(categoryId: string, girlId: number): number[] { + let oneData = this.getGrilUnlock(categoryId, girlId); + if (!oneData) return []; + return oneData.getUnlockedVideoIds(); } + /** --------------------------------------------------------- 技师的聊天数据 --------------------------------------------------------- */ + + // 解析技师聊天数据,一个 + private parseOneGirlChat(data: proto.cs.IGirlData): GirlChatData | null { + if (!data) return null; + let oneData = new GirlChatData(); + oneData.init?.(DataId.GirlChat); + oneData.setId(data.id); + oneData.setChatTotalCount(data.chatTotalCount); + oneData.setChatRemainCount(data.chatRemainCount); + return oneData; + } + + /** 保存技师的聊天数据 */ + private setGirlChat(categoryId: string, data: proto.cs.IGirlData[]): void { + if (!data) return; + const bucket = this.ensureBucket(categoryId); + for (const g of data) { + const one = this.parseOneGirlChat(g); + if (!one) continue; + bucket.chats.set(g.id, one); + } + } + + /** 取某分类 + girlId 的聊天数据 */ + private getGrilChat(categoryId: string, girlId: number): GirlChatData | null { + const b = this.ensureCategories().get(categoryId); + if (!b) return null; + return b.chats.get(girlId) ?? null; + } + + /** 获取总聊天次数 */ + public getChatTotalCount(categoryId: string, girlId: number): number { + let oneData = this.getGrilChat(categoryId, girlId); + if (!oneData) return 0; + return oneData.getChatTotalCount(); + } + + /** 保存总聊天次数 */ + public setChatTotalCount(categoryId: string, girlId: number, value: number): void { + let oneData = this.getGrilChat(categoryId, girlId); + if (!oneData) return; + return oneData.setChatTotalCount(value); + } + + /** 获取剩余聊天次数 */ + public getChatRemainCount(categoryId: string, girlId: number): number { + let oneData = this.getGrilChat(categoryId, girlId); + if (!oneData) return 0; + return oneData.getChatRemainCount(); + } + + /** 保存剩余聊天次数 */ + public setChatRemainCount(categoryId: string, girlId: number, value: number): void { + let oneData = this.getGrilChat(categoryId, girlId); + if (!oneData) return; + return oneData.setChatRemainCount(value); + } + + /** 更新剩余聊天次数 */ + public useChat(categoryId: string, girlId: number, times: number = 1): void { + let oneData = this.getGrilChat(categoryId, girlId); + if (!oneData) return; + return oneData.useChat(times); + } + + /** --------------------------------------------------------- 技师的好感度数据 --------------------------------------------------------- */ + + // 解析技师好感度数据,一个 + private parseOneGirlFavorability(data: proto.cs.IGirlData): GirlFavorabilityData | null { + if (!data) return null; + let oneData = new GirlFavorabilityData(); + oneData.init?.(DataId.GirlFavorability); + oneData.setId(data.id); + oneData.setStar(data.star); + return oneData; + } + + /** 保存技师的好感度数据 */ + private setGirlFavorability(categoryId: string, data: proto.cs.IGirlData[]): void { + if (!data) return; + const bucket = this.ensureBucket(categoryId); + for (const g of data) { + const one = this.parseOneGirlFavorability(g); + if (!one) continue; + bucket.favorability.set(g.id, one); + } + } + + /** 取某分类 + girlId 的好感度数据 */ + private getGrilFavorability(categoryId: string, girlId: number): GirlFavorabilityData | null { + const b = this.ensureCategories().get(categoryId); + if (!b) return null; + return b.favorability.get(girlId) ?? null; + } + + /** 获取星级 */ + public getStar(categoryId: string, girlId: number): number { + let oneData = this.getGrilFavorability(categoryId, girlId); + if (!oneData) return 0; + return oneData.getStar(); + } + /** --------------------------------------------------------- 每日推荐 --------------------------------------------------------- */ /** 保存每日推荐:放入特殊分类 DAILY_BUCKET,并维护 id 索引 */ - public setDailyRecommend(res: proto.cs.ICSDailyRecommendRes): void { - this.mergeBriefs(DAILY_BUCKET, res.girls); - this._dailyRecommendIds = res.girls.map(g => g.id ?? 0); - console.log("保存每日推荐: ", this._dailyRecommendIds); + public setDailyRecommend(data: proto.cs.ICSDailyRecommendRes): void { + if (!data) return; + this.mergeOneBrief(DAILY_BUCKET, data.girl); + const bucket = this.ensureBucket(DAILY_BUCKET); + console.log("保存每日推荐: ", bucket); } - /** 获取每日推荐的简要信息 */ - private getRecommendGrilBrief(categoryId: string, index: number): proto.cs.IGirlBrief | null { - const b = this.ensureCategories().get(categoryId); - if (!b) return null; - if (index < 0 || index >= b.girlIds.length) return null; - return b.briefs.get(b.girlIds[index]) ?? null; + /** 获取推荐id */ + public getRecommendGirlId(): number { + const bucket = this.ensureBucket(DAILY_BUCKET); + const girlIds = bucket.girlIds; + const length = girlIds.length; + if (length <= 0) return 0; + return girlIds[length-1]; + } + + /** 获取每日推荐的简要数据 */ + private getRecommendGrilBrief(): GirlBriefData | null { + const recId = this.getRecommendGirlId(); + if (recId <= 0) return null; + const data = this.getGrilBrief(DAILY_BUCKET, recId); + return data; } - /** 获取 id */ - public getRecommendGrilId(index: number): number { - let oneData = this.getRecommendGrilBrief(DAILY_BUCKET, index); - if (!oneData) return 0; - return oneData.id; - } - /** 获取名字 */ - public getRecommendGrilName(index: number): string { - let oneData = this.getRecommendGrilBrief(DAILY_BUCKET, index); + public getRecommendGrilName(): string { + let oneData = this.getRecommendGrilBrief(); if (!oneData) return ""; - return oneData.name; + return oneData.getGrilName(); } - /** 获取头像 */ - public getRecommendGrilAvatar(index: number): string { - let oneData = this.getRecommendGrilBrief(DAILY_BUCKET, index); + /** 获取头像路径 */ + public getRecommendGrilAvatar(): string { + let oneData = this.getRecommendGrilBrief(); if (!oneData) return ""; - return oneData.avatar; + return oneData.getGrilAvatar(); } } diff --git a/assets/Scripts/chat18x/data/GirlDetailData.ts b/assets/Scripts/chat18x/data/GirlDetailData.ts new file mode 100644 index 00000000..43cc5fb1 --- /dev/null +++ b/assets/Scripts/chat18x/data/GirlDetailData.ts @@ -0,0 +1,227 @@ +/** + * 技师的详细数据 + */ +import { BaseData } from "./BaseData"; +import proto from 'db://assets/Scripts/proto/proto.pb.js'; + +export class GirlDetailData extends BaseData { + // id + private id: number; + // 自我介绍 + private detailDesc: string; + // 图片数据 + private photoData: proto.cs.IPurchaseCommercialImage[]; + // 视频数据 + private videoData: proto.cs.IPurchaseCommercialVideo[]; + + constructor() { + super(); + this.id = 0; + this.detailDesc = ""; + this.photoData = []; + this.videoData = []; + } + + public reset(): void { + this.id = 0; + this.detailDesc = ""; + this.photoData = []; + this.videoData = []; + } + + public clear(): void { + this.id = 0; + this.detailDesc = ""; + this.photoData = []; + this.videoData = []; + } + + public destroy(): void { + super.destroy(); + this.id = null; + this.detailDesc = null; + this.photoData = null; + this.videoData = null; + } + + /** 保存数据 */ + public setData(data: proto.cs.IGirlsDetail): void { + if (!data) return; + this.id = data.id; + this.detailDesc = data.detailDesc; + this.photoData = this.parseAllGirlPhoto(data.commercialImages); + this.videoData = this.parseAllGirlVideo(data.commercialVideos); + } + + /** 获取 id */ + public getId(): number { + return this.id; + } + + /** 获取自我介绍 */ + public getGirlDesc(): string { + return this.detailDesc; + } + + /** --------------------------------------------------------- 图片数据 --------------------------------------------------------- */ + + // 解析技师图片数据,一个 + private parseOneGirlPhoto(data: proto.cs.IPurchaseCommercialImage): proto.cs.IPurchaseCommercialImage | null { + if (!data) return null; + const oneData: proto.cs.IPurchaseCommercialImage = { + id: data.id, // 图片 id + imageType: data.imageType, // 图片类型 + unlockCounts: data.unlockCounts, // 聊天触发次数 + imagePrice: data.imagePrice, // 图片价格 + path: data.path, // 图片资源路径 + }; + return oneData; + } + + // 解析技师图片数据,多个 + private parseAllGirlPhoto(data: proto.cs.IPurchaseCommercialImage[]): proto.cs.IPurchaseCommercialImage[] { + if (!data) return []; + let allData = []; + for (const value of data) { + const oneData: proto.cs.IPurchaseCommercialImage = this.parseOneGirlPhoto(value); + if (oneData) { + allData.push(oneData); + } + } + return allData; + } + + /** 获取所有技师图片数据的数量 */ + public getAllGrilPhotoDataCount(): number { + if (!this.photoData) return 0; + return this.photoData.length; + } + + /** 获取所有技师图片数据的id */ + public getAllGrilPhotoDataId(): number[] { + if (!this.photoData) return []; + // 获取所有 id + let allId = []; + for (let one of this.photoData) { + allId.push(one.id); + } + return allId; + } + + /** 获取技师图片数据,通过 id */ + private getGrilPhotoData(id: number): proto.cs.IPurchaseCommercialImage | null { + if (!this.photoData) return null; + // 遍历数组找到匹配的资源 + for (let oneData of this.photoData) { + if (oneData.id === id) { + return oneData; + } + } + return null; + } + + /** 获取技师图片的类型 */ + public getGrilPhotoType(id: number): number { + let oneData = this.getGrilPhotoData(id); + if (!oneData) return 0; + return oneData.imageType; + } + + /** 获取技师图片的聊天触发次数 */ + public getGrilPhotoUnlockCounts(id: number): number { + let oneData = this.getGrilPhotoData(id); + if (!oneData) return 0; + return oneData.unlockCounts; + } + + /** 获取技师图片的价格 */ + public getGrilPhotoPrice(id: number): number { + let oneData = this.getGrilPhotoData(id); + if (!oneData) return 0; + return oneData.imagePrice; + } + + /** 获取技师图片的资源路径 */ + public getGrilPhotoPath(id: number): string { + let oneData = this.getGrilPhotoData(id); + if (!oneData) return ""; + return oneData.path; + } + + /** --------------------------------------------------------- 视频数据 --------------------------------------------------------- */ + + // 解析技师视频数据,一个 + private parseOneGirlVideo(data: proto.cs.IPurchaseCommercialVideo): proto.cs.IPurchaseCommercialVideo | null { + if (!data) return null; + const oneData: proto.cs.IPurchaseCommercialVideo = { + id: data.id, // 视频 id + path: data.path, // 视频资源路径 + emotion: data.emotion, // 关联情绪 + videoPrice: data.videoPrice, // 价格 + }; + return oneData; + } + + // 解析技师视频数据,多个 + private parseAllGirlVideo(data: proto.cs.IPurchaseCommercialVideo[]): proto.cs.IPurchaseCommercialVideo[] { + if (!data) return []; + let allData = []; + for (const value of data) { + const oneData: proto.cs.IPurchaseCommercialVideo = this.parseOneGirlVideo(value); + if (oneData) { + allData.push(oneData); + } + } + return allData; + } + + /** 获取所有技师视频数据的数量 */ + public getAllGrilVideoDataCount(): number { + if (!this.videoData) return 0; + return this.videoData.length; + } + + /** 获取所有技师视频数据的id */ + public getAllGrilVideoDataId(): number[] { + if (!this.videoData) return []; + // 获取所有 id + let allId = []; + for (let one of this.videoData) { + allId.push(one.id); + } + return allId; + } + + /** 获取技师视频数据,通过 id */ + private getGrilVideoData(id: number): proto.cs.IPurchaseCommercialVideo | null { + if (!this.videoData) return null; + // 遍历数组找到匹配的资源 + for (let oneData of this.videoData) { + if (oneData.id === id) { + return oneData; + } + } + return null; + } + + /** 获取技师视频的资源路径 */ + public getGrilVideoPath(id: number): string { + let oneData = this.getGrilVideoData(id); + if (!oneData) return ""; + return oneData.path; + } + + /** 获取技师视频的关联情绪 */ + public getGrilVideoEmotion(id: number): number { + let oneData = this.getGrilVideoData(id); + if (!oneData) return 0; + return oneData.emotion; + } + + /** 获取技师视频的价格 */ + public getGrilVideoPrice(id: number): number { + let oneData = this.getGrilVideoData(id); + if (!oneData) return 0; + return oneData.videoPrice; + } +} diff --git a/assets/Scripts/chat18x/data/GirlDetailData.ts.meta b/assets/Scripts/chat18x/data/GirlDetailData.ts.meta new file mode 100644 index 00000000..cb8b9559 --- /dev/null +++ b/assets/Scripts/chat18x/data/GirlDetailData.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "f10268c6-f575-4249-9175-499a07aeb2d8", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/chat18x/data/GirlFavorabilityData.ts b/assets/Scripts/chat18x/data/GirlFavorabilityData.ts new file mode 100644 index 00000000..3a8efbfd --- /dev/null +++ b/assets/Scripts/chat18x/data/GirlFavorabilityData.ts @@ -0,0 +1,54 @@ +/** + * 技师的好感度数据 + */ +import { BaseData } from "./BaseData"; +import proto from 'db://assets/Scripts/proto/proto.pb.js'; + +export class GirlFavorabilityData extends BaseData { + // id + private id: number; + // 星级 + private star: number; + + constructor() { + super(); + this.id = 0; + this.star = 0; + } + + public reset(): void { + this.id = 0; + this.star = 0; + } + + public clear(): void { + this.id = 0; + this.star = 0; + } + + public destroy(): void { + super.destroy(); + this.id = null; + this.star = null; + } + + /** 获取 id */ + public getId(): number { + return this.id; + } + + /** 保存 id */ + public setId(value: number): void { + this.id = value; + } + + /** 获取星级 */ + public getStar(): number { + return this.star; + } + + /** 保存星级 */ + public setStar(value: number): void { + this.star = value; + } +} diff --git a/assets/Scripts/chat18x/data/GirlFavorabilityData.ts.meta b/assets/Scripts/chat18x/data/GirlFavorabilityData.ts.meta new file mode 100644 index 00000000..6ef9a019 --- /dev/null +++ b/assets/Scripts/chat18x/data/GirlFavorabilityData.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "fc838010-523c-4f4a-bff4-8c83d0ce5618", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/chat18x/data/GirlUnlockData.ts b/assets/Scripts/chat18x/data/GirlUnlockData.ts new file mode 100644 index 00000000..da9da60d --- /dev/null +++ b/assets/Scripts/chat18x/data/GirlUnlockData.ts @@ -0,0 +1,130 @@ +/** + * 技师的解锁数据 + */ +import { BaseData } from "./BaseData"; +import proto from 'db://assets/Scripts/proto/proto.pb.js'; + +export class GirlUnlockData extends BaseData { + // id + private id: number; + // 付费技师是否已经解锁 + private isRelease: boolean; + // 解锁图片 id + private unlockedImageIds: number[]; + // 解锁视频 id + private unlockedVideoIds: number[]; + + constructor() { + super(); + this.id = 0; + this.isRelease = false; + this.unlockedImageIds = []; + this.unlockedVideoIds = []; + } + + public reset(): void { + this.id = 0; + this.isRelease = false; + this.unlockedImageIds = []; + this.unlockedVideoIds = []; + } + + public clear(): void { + this.id = 0; + this.isRelease = false; + this.unlockedImageIds = []; + this.unlockedVideoIds = []; + } + + public destroy(): void { + super.destroy(); + this.id = null; + this.isRelease = null; + this.unlockedImageIds = null; + this.unlockedVideoIds = null; + } + + /** 获取 id */ + public getId(): number { + return this.id; + } + + /** 保存 id */ + public setId(value: number): void { + this.id = value; + } + + /** 获取 付费技师是否已经解锁 */ + public getIsRelease(): boolean { + return this.isRelease; + } + + /** 保存 付费技师是否已经解锁 */ + public setIsRelease(value: boolean): void { + this.isRelease = value; + } + + /** 判断图片是否解锁,根据 id */ + public isImageUnlock(id: number): boolean { + for (let i = 0; i < this.unlockedImageIds.length; i++) { + if (this.unlockedImageIds[i] === id) { + return true; + } + } + return false; + } + + /** 解锁图片 */ + public unlockImage(id: number) { + // 去重 + let exists = this.isImageUnlock(id); + if (!exists) { + this.unlockedImageIds.push(id); + } + console.log("技师 ", this.id, " 当前解锁图片的所有id:",this.unlockedImageIds); + } + + /** 获取所有解锁图片的 id */ + public getUnlockedImageIds(): number[] { + return this.unlockedImageIds; + } + + /** 保存解锁图片 id */ + public setUnlockedImageIds(value: number[]): void { + for(let one of value) { + this.unlockImage(one); + } + } + + /** 判断视频是否解锁,根据 id */ + public isVideoUnlock(id: number): boolean { + for (let i = 0; i < this.unlockedVideoIds.length; i++) { + if (this.unlockedVideoIds[i] === id) { + return true; + } + } + return false; + } + + /** 解锁视频 */ + public unlockVideo(id: number) { + // 去重 + let exists = this.isVideoUnlock(id);; + if (!exists) { + this.unlockedVideoIds.push(id); + } + console.log("技师 ", this.id, " 当前解锁视频的所有id:",this.unlockedVideoIds); + } + + /** 获取所有解锁视频的 id */ + public getUnlockedVideoIds(): number[] { + return this.unlockedVideoIds; + } + + /** 保存解锁视频 id */ + public setUnlockedVideoIds(value: number[]): void { + for(let one of value) { + this.unlockVideo(one); + } + } +} diff --git a/assets/Scripts/chat18x/data/GirlUnlockData.ts.meta b/assets/Scripts/chat18x/data/GirlUnlockData.ts.meta new file mode 100644 index 00000000..79426d1b --- /dev/null +++ b/assets/Scripts/chat18x/data/GirlUnlockData.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "9ae023d4-bad5-4afc-9418-34c70cc4cb08", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/chat18x/data/GlobalData.ts b/assets/Scripts/chat18x/data/GlobalData.ts new file mode 100644 index 00000000..e4c72da5 --- /dev/null +++ b/assets/Scripts/chat18x/data/GlobalData.ts @@ -0,0 +1,28 @@ +/** + * 全局数据 + */ +import { BaseData } from "./BaseData"; +import proto from 'db://assets/Scripts/proto/proto.pb.js'; + +export class GlobalData extends BaseData { + + + public reset(): void { + + } + + public clear(): void { + + } + + public destroy(): void { + super.destroy(); + } + + /** 设置全局数据 */ + public set globals(res: proto.cs.ICSGetResConfigRes) { + + + console.log("设置全局数据:"); + } +} diff --git a/assets/Scripts/chat18x/data/GlobalData.ts.meta b/assets/Scripts/chat18x/data/GlobalData.ts.meta new file mode 100644 index 00000000..1f9d115d --- /dev/null +++ b/assets/Scripts/chat18x/data/GlobalData.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "cc12432f-6e2f-4190-94c6-084037af001f", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/chat18x/data/LoginData.ts b/assets/Scripts/chat18x/data/LoginData.ts index 7a1f2fa4..b1590204 100644 --- a/assets/Scripts/chat18x/data/LoginData.ts +++ b/assets/Scripts/chat18x/data/LoginData.ts @@ -88,7 +88,6 @@ export class LoginData extends BaseData { /** 设置登录refresh token */ public set refreshToken(value: string) { this._refreshToken = value; - console.log("设置登录refresh token", this._refreshToken); } /** 获取登录refresh token */ diff --git a/assets/Scripts/chat18x/data/PlayerData.ts b/assets/Scripts/chat18x/data/PlayerData.ts index e8034af7..8e3c51dc 100644 --- a/assets/Scripts/chat18x/data/PlayerData.ts +++ b/assets/Scripts/chat18x/data/PlayerData.ts @@ -6,28 +6,18 @@ import { BaseData } from "./BaseData"; export class PlayerData extends BaseData { // 用户名 private _name: string = ''; - // 钻石数 - private _diamond: number = 0; - // vip失效时间戳 - private _vipExpire: number = 0; public reset(): void { this._name = ''; - this._diamond = 0; - this._vipExpire = 0; } public clear(): void { this._name = ''; - this._diamond = 0; - this._vipExpire = 0; } public destroy(): void { super.destroy(); this._name = null; - this._diamond = null; - this._vipExpire = null; } /** 设置用户名 */ @@ -38,25 +28,5 @@ export class PlayerData extends BaseData { /** 获取用户名 */ public get name(): string { return this._name; - } - - /** 设置钻石数 */ - public set diamond(value: number) { - this._diamond = value; - } - - /** 获取钻石数 */ - public get diamond(): number { - return this._diamond; - } - - /** 设置vip失效时间戳 */ - public set vipExpire(value: number) { - this._vipExpire = value; - } - - /** 获取vip失效时间戳 */ - public get vipExpire(): number { - return this._vipExpire; - } + } } \ No newline at end of file diff --git a/assets/Scripts/chat18x/data/ShopData.ts b/assets/Scripts/chat18x/data/ShopData.ts index 49ef5850..cd365fc2 100644 --- a/assets/Scripts/chat18x/data/ShopData.ts +++ b/assets/Scripts/chat18x/data/ShopData.ts @@ -1,12 +1,12 @@ /** - * 商品数据 + * 商城数据 */ import { BaseData } from "./BaseData"; import proto from 'db://assets/Scripts/proto/proto.pb.js'; export class ShopData extends BaseData { // 商品数据 - private _goods = new Map(); + private _goods = new Map(); // 商品 id private _goodIds: number[] = []; @@ -27,17 +27,16 @@ export class ShopData extends BaseData { } /** 设置商品数据 */ - public set goods(res: proto.cs.ICSGetShopRes) { - const list = res.Goods ?? []; + public set goods(res: proto.cs.ICSGetPurchaseRes) { + const list = res.items ?? []; this._goods.clear(); this._goodIds = []; for (const g of list) { - const vo: proto.cs.IGood = { + const vo: proto.cs.IPurchaseConfig = { id: g.id, // 商品 id - name: g.name || "", // 商品名字 - desc: g.desc || "", // 商品描述 - price: g.price || "0.00", // 商品价格 - count: g.count || 0, // 商品数量 + name: g.name, // 商品名字 + count: g.count, // 商品数量 + price: g.price, // 商品价格 }; this._goods.set(vo.id, vo); this._goodIds.push(vo.id); @@ -46,7 +45,7 @@ export class ShopData extends BaseData { } /** 获取所有商品数据 */ - public get goods(): Map { return this._goods; } + public get goods(): Map { return this._goods; } /** 获取所有商品数据的数量 */ public get goodsCount(): number { return this._goods ? this._goods.size : 0; } @@ -54,18 +53,53 @@ export class ShopData extends BaseData { /** 获取所有商品 id */ public get goodIds(): number[] { return this._goodIds; } - /** 获取vip商品数据 */ - public get vipGoods(): proto.cs.IGood[] { - return this._goodIds.map(id => this._goods.get(id)!).filter(g => g.id > 2000); + /** 获取 充值商品的id数组,首位数字为 1 */ + private getRechargeIds(): number[] { + let allId = this._goodIds; + if (!allId) return []; + // 获取所有 id + let resultId = []; + for (let one of allId) { + const firstDigit = one.toString()[0]; // 取首位字符 + if (firstDigit === "1") { + resultId.push(one); + } + } + return resultId; } - /** 获取普通商品数据 */ - public get normalGoods(): proto.cs.IGood[] { - return this._goodIds.map(id => this._goods.get(id)!).filter(g => g.id <= 2000); + /** 获取 会员商品的id数组,首位数字为 2 */ + private getMemberIds(): number[] { + let allId = this._goodIds; + if (!allId) return []; + // 获取所有 id + let resultId = []; + for (let one of allId) { + const firstDigit = one.toString()[0]; // 取首位字符 + if (firstDigit === "2") { + resultId.push(one); + } + } + return resultId; } + /** 获取 聊天商品的id数组,首位数字为 3 */ + private getChatIds(): number[] { + let allId = this._goodIds; + if (!allId) return []; + // 获取所有 id + let resultId = []; + for (let one of allId) { + const firstDigit = one.toString()[0]; // 取首位字符 + if (firstDigit === "3") { + resultId.push(one); + } + } + return resultId; + } + /** 根据商品 id 获取商品数据 */ - private getGoodDataById(id: number): proto.cs.IGood | null { + private getGoodDataById(id: number): proto.cs.IPurchaseConfig | null { if (!this._goods) return null; return this._goods.get(id) ?? null; } @@ -77,15 +111,8 @@ export class ShopData extends BaseData { return oneData.name; } - /** 根据商品 id 获取商品描述 */ - public getDescById(id: number): string | null { - let oneData = this.getGoodDataById(id); - if (!oneData) return null; - return oneData.desc; - } - /** 根据商品 id 获取商品价格 */ - public getPriceById(id: number): string | null { + public getPriceById(id: number): number | null { let oneData = this.getGoodDataById(id); if (!oneData) return null; return oneData.price; diff --git a/assets/Scripts/chat18x/data/ThemeData.ts b/assets/Scripts/chat18x/data/ThemeData.ts index 458c26c0..98a8f6d8 100644 --- a/assets/Scripts/chat18x/data/ThemeData.ts +++ b/assets/Scripts/chat18x/data/ThemeData.ts @@ -6,7 +6,7 @@ import proto from 'db://assets/Scripts/proto/proto.pb.js'; export class ThemeData extends BaseData { // 主题数据 - private _themes = new Map(); + private _themes = new Map(); // 主题 id private _themeIds: number[] = []; @@ -32,13 +32,13 @@ export class ThemeData extends BaseData { this._themes.clear(); this._themeIds = []; for (const t of list) { - const vo: proto.cs.IHallTheme = { - id: t.id || 0, // 主题 id - key: t.key || "", // 多语言键 - name: t.name || "", // 主题名称 - category: t.category || 0, // 主题枚举 + const vo: proto.cs.IThemes = { + id: t.id, // 主题 id + key: t.key, // 多语言键 + name: t.name, // 主题名称 + category: t.category, // 主题枚举 isRelease: t.isRelease, // 是否解锁 - path: t.path || "", // 图片路径 + path: t.path, // 图片路径 }; this._themes.set(vo.id, vo); this._themeIds.push(vo.id); @@ -47,7 +47,7 @@ export class ThemeData extends BaseData { } /** 获取所有主题数据 */ - public get themes(): Map { return this._themes; } + public get themes(): Map { return this._themes; } /** 获取所有主题数据的数量 */ public get themesCount(): number { return this._themes ? this._themes.size : 0; } @@ -56,7 +56,7 @@ export class ThemeData extends BaseData { public get themeIds(): number[] { return this._themeIds; } /** 根据主题 id 获取主题数据 */ - private getThemeDataById(id: number): proto.cs.IHallTheme | null { + private getThemeDataById(id: number): proto.cs.IThemes | null { if (!this._themes) return null; return this._themes.get(id) ?? null; } diff --git a/assets/Scripts/chat18x/data/WalletData.ts b/assets/Scripts/chat18x/data/WalletData.ts index 38182fe7..6aa46cd9 100644 --- a/assets/Scripts/chat18x/data/WalletData.ts +++ b/assets/Scripts/chat18x/data/WalletData.ts @@ -4,35 +4,35 @@ import { BaseData } from "./BaseData"; export class WalletData extends BaseData { - // 钻石数 - private _diamond = 0; + // 余额 + private _balance: number = 0; // vip失效时间戳 - private _vipExpire = 0; + private _vipExpire: number = 0; public reset(): void { - this._diamond = 0; + this._balance = 0; this._vipExpire = 0; } public clear(): void { - this._diamond = 0; + this._balance = 0; this._vipExpire = 0; } public destroy(): void { super.destroy(); - this._diamond = null; + this._balance = null; this._vipExpire = null; } - /** 设置钻石数 */ - public set diamond(value: number) { - this._diamond = value; + /** 设置余额 */ + public set balance(value: number) { + this._balance = value; } - /** 获取钻石数 */ - public get diamond(): number { - return this._diamond; + /** 获取余额 */ + public get balance(): number { + return this._balance; } /** 设置vip失效时间戳 */ diff --git a/assets/Scripts/chat18x/foundation/identity/MachineInfoService.ts b/assets/Scripts/chat18x/foundation/identity/MachineInfoService.ts index 8d65abdb..423e7d45 100644 --- a/assets/Scripts/chat18x/foundation/identity/MachineInfoService.ts +++ b/assets/Scripts/chat18x/foundation/identity/MachineInfoService.ts @@ -108,6 +108,24 @@ export class MachineInfoService { if (s.length > 64) s = s.slice(0, 64); return s || "Unknown"; } + + /** 获取机器系统标识 1: android 2:ios; 3: windows */ + public getMachineOs(): number { + if (EDITOR) { + return 3; // 在 Cocos Creator 编辑器里运行 + } + + if (sys.platform === sys.Platform.ANDROID) { + return 1; + } + if (sys.platform === sys.Platform.IOS) { + return 2; + } + if (sys.platform === sys.Platform.WIN32) { + return 3; + } + return 3; + } } export default MachineInfoService; diff --git a/assets/Scripts/chat18x/manager/ConfigManager.ts b/assets/Scripts/chat18x/manager/ConfigManager.ts index 283132ea..8e4804fd 100644 --- a/assets/Scripts/chat18x/manager/ConfigManager.ts +++ b/assets/Scripts/chat18x/manager/ConfigManager.ts @@ -156,8 +156,6 @@ export class ConfigManager { // 若你的 BaseConfig.init 接受 configId,可传入 instance.init?.(configId); this._dataMap.set(configId, instance); - - console.log(`[ConfigManager] 实例化并缓存数据: ${configId}`); return instance; } @@ -169,7 +167,6 @@ export class ConfigManager { if (data) { data.destroy?.(); this._dataMap.delete(configId); - console.log(`[ConfigManager] 移除数据: ${configId}`); return true; } return false; @@ -179,7 +176,6 @@ export class ConfigManager { * 重置所有数据 */ public resetAllData(): void { - console.log("[ConfigManager] 重置所有数据"); this._dataMap.forEach((data) => data.reset?.()); } @@ -187,7 +183,6 @@ export class ConfigManager { * 清空所有数据 */ public clearAllData(): void { - console.log("[ConfigManager] 清空所有数据"); this._dataMap.forEach((data) => data.clear?.()); } @@ -195,7 +190,6 @@ export class ConfigManager { * 销毁所有数据 */ public destroyAllData(): void { - console.log("[ConfigManager] 销毁所有数据"); this._dataMap.forEach((data) => data.destroy?.()); this._dataMap.clear(); } diff --git a/assets/Scripts/chat18x/manager/NavigationManager.ts b/assets/Scripts/chat18x/manager/NavigationManager.ts index bb772ce9..5038c6d9 100644 --- a/assets/Scripts/chat18x/manager/NavigationManager.ts +++ b/assets/Scripts/chat18x/manager/NavigationManager.ts @@ -64,7 +64,7 @@ export class NavigationManager { console.warn("Invalid role ID for chat navigation:", roleId); return; } - + GameRootUI.I.hideDefaultView(); console.log(`Navigating to chat with role ID: ${roleId}`); ViewManager.I.openBundlesView("ChatPanel", roleId); } diff --git a/assets/Scripts/chat18x/network/client/ApiClient.ts b/assets/Scripts/chat18x/network/client/ApiClient.ts index b23a2346..d4f9a5f4 100644 --- a/assets/Scripts/chat18x/network/client/ApiClient.ts +++ b/assets/Scripts/chat18x/network/client/ApiClient.ts @@ -25,9 +25,8 @@ export class ApiClient { let jsonData: any; if (ep.needsAuth && this.token) { - headers["Authorization"] = `Bearer ${this.token}`; + headers["Authorization"] = `${this.token}`; } - // 编码 if (ep.codec === "json") { jsonData = (ep.method === "GET") ? req : JsonCodec.encode(req); diff --git a/assets/Scripts/chat18x/network/services/ChatService.ts b/assets/Scripts/chat18x/network/services/ChatService.ts index 9f6e8832..f718e231 100644 --- a/assets/Scripts/chat18x/network/services/ChatService.ts +++ b/assets/Scripts/chat18x/network/services/ChatService.ts @@ -26,8 +26,18 @@ export class ChatService implements IChatService { this.impl = useMock ? new MockChatService() : new HttpChatService(); } - // 对外 API 保持不变 - public async reqBuyChat(req: proto.cs.ICSBuyChatReq): Promise> { - return this.impl.reqBuyChat(req); + // 上报聊天数据 + public async reqChatMsg(req: proto.cs.ICSChatMsgReq): Promise> { + return this.impl.reqChatMsg(req); } + + // 获取聊天数据 + public async reqGetChatMsg(req: proto.cs.ICSGetChatMsgReq): Promise> { + return this.impl.reqGetChatMsg(req); + } + + // 获取技师聊天次数 + public async reqChatCountData(req: proto.cs.ICSGetChatRemainCountReq): Promise> { + return this.impl.reqChatCountData(req); + } } diff --git a/assets/Scripts/chat18x/network/services/CommonService.ts b/assets/Scripts/chat18x/network/services/CommonService.ts new file mode 100644 index 00000000..ee98091b --- /dev/null +++ b/assets/Scripts/chat18x/network/services/CommonService.ts @@ -0,0 +1,32 @@ +import type { ApiResponse } from "../client/types"; +import proto from "db://assets/Scripts/proto/proto.pb.js"; +import type { ICommonService } from "./ICommonService"; +import { HttpCommonService } from "./HttpCommonService"; +import { MockCommonService } from "./MockCommonService"; + +// 模拟开关 +const USE_MOCK = true; + +export class CommonService implements ICommonService { + private static _I: CommonService | null = null; + public static get I(): CommonService { + if (!CommonService._I) CommonService._I = new CommonService(); + return CommonService._I; + } + + private impl: ICommonService; + + private constructor() { + this.impl = USE_MOCK ? new MockCommonService() : new HttpCommonService(); + } + + /** 运行期切换 */ + public switch(useMock: boolean) { + this.impl = useMock ? new MockCommonService() : new HttpCommonService(); + } + + // 获取配置 + public async reqResConfig(req: proto.cs.ICSGetResConfigReq): Promise> { + return this.impl.reqResConfig(req); + } +} diff --git a/assets/Scripts/chat18x/network/services/CommonService.ts.meta b/assets/Scripts/chat18x/network/services/CommonService.ts.meta new file mode 100644 index 00000000..3d907bf0 --- /dev/null +++ b/assets/Scripts/chat18x/network/services/CommonService.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "c53fc890-4e39-4c5e-bf35-ab87a8359139", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/chat18x/network/services/GirlService.ts b/assets/Scripts/chat18x/network/services/GirlService.ts index f948fd28..b2bcca54 100644 --- a/assets/Scripts/chat18x/network/services/GirlService.ts +++ b/assets/Scripts/chat18x/network/services/GirlService.ts @@ -5,7 +5,7 @@ import type { ApiResponse } from "../client/types"; import proto from "db://assets/Scripts/proto/proto.pb.js"; // 模拟开关 -const USE_MOCK = true; +const USE_MOCK = false; export class GirlService implements IGirlService { private static _I: GirlService | null = null; @@ -38,4 +38,14 @@ export class GirlService implements IGirlService { public async reqGetGirlDetail(req: proto.cs.ICSGetGirlDetailReq): Promise> { return this.impl.reqGetGirlDetail(req); } + + // 解锁技师 + public async reqUnlockGirl(req: proto.cs.ICSUnlockGirlReq): Promise> { + return this.impl.reqUnlockGirl(req); + } + + // 解锁资源 + public async reqUnlockGirlRes(req: proto.cs.ICSUnlockResourceReq): Promise> { + return this.impl.reqUnlockGirlRes(req); + } } diff --git a/assets/Scripts/chat18x/network/services/HttpChatService.ts b/assets/Scripts/chat18x/network/services/HttpChatService.ts index 2f9bcbfa..ae67fd57 100644 --- a/assets/Scripts/chat18x/network/services/HttpChatService.ts +++ b/assets/Scripts/chat18x/network/services/HttpChatService.ts @@ -7,14 +7,36 @@ import type { IChatService } from "./IChatService"; export class HttpChatService implements IChatService { constructor(private api = ApiClient.I) {} - // 购买聊天次数 - async reqBuyChat(req: proto.cs.ICSBuyChatReq): Promise> { - const ep: Endpoint = { - path: "api/logic/buyChat", + // 上报聊天数据 + async reqChatMsg(req: proto.cs.ICSChatMsgReq): Promise> { + const ep: Endpoint = { + path: "api/logic/chatMsg", method: "POST", codec: "json", needsAuth: true, }; return this.api.call(ep, req); } + + // 获取聊天数据 + async reqGetChatMsg(req: proto.cs.ICSGetChatMsgReq): Promise> { + const ep: Endpoint = { + path: "api/logic/getChatMsg", + method: "POST", + codec: "json", + needsAuth: true, + }; + return this.api.call(ep, req); + } + + // 获取技师聊天次数 + async reqChatCountData(req: proto.cs.ICSGetChatRemainCountReq): Promise> { + const ep: Endpoint = { + path: "api/logic/getChatRemainCount", + method: "POST", + codec: "json", + needsAuth: true, + }; + return this.api.call(ep, req); + } } diff --git a/assets/Scripts/chat18x/network/services/HttpCommonService.ts b/assets/Scripts/chat18x/network/services/HttpCommonService.ts new file mode 100644 index 00000000..4ded40e7 --- /dev/null +++ b/assets/Scripts/chat18x/network/services/HttpCommonService.ts @@ -0,0 +1,20 @@ +import { ApiClient } from "../client/ApiClient"; +import type { Endpoint } from "../client/endpoints"; +import type { ApiResponse } from "../client/types"; +import proto from "db://assets/Scripts/proto/proto.pb.js"; +import type { ICommonService } from "./ICommonService"; + +export class HttpCommonService implements ICommonService { + constructor(private api = ApiClient.I) {} + + // 获取配置 + async reqResConfig(req: proto.cs.ICSGetResConfigReq): Promise> { + const ep: Endpoint = { + path: "api/logic/getResConfig", + method: "POST", + codec: "json", + needsAuth: true, + }; + return this.api.call(ep, req); + } +} diff --git a/assets/Scripts/chat18x/network/services/HttpCommonService.ts.meta b/assets/Scripts/chat18x/network/services/HttpCommonService.ts.meta new file mode 100644 index 00000000..ae9b07af --- /dev/null +++ b/assets/Scripts/chat18x/network/services/HttpCommonService.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "612b35c8-b85f-4ac1-8cbb-e4fd58c5d3c1", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/chat18x/network/services/HttpGirlService.ts b/assets/Scripts/chat18x/network/services/HttpGirlService.ts index 7b1e11c3..f1f32ae0 100644 --- a/assets/Scripts/chat18x/network/services/HttpGirlService.ts +++ b/assets/Scripts/chat18x/network/services/HttpGirlService.ts @@ -39,4 +39,26 @@ export class HttpGirlService implements IGirlService { }; return this.api.call(epData, req); } + + // 解锁技师 + async reqUnlockGirl(req: proto.cs.ICSUnlockGirlReq): Promise> { + let epData: Endpoint = { + path: "api/logic/unlockGirl", + method: "POST", + codec: "json", + needsAuth: true + }; + return this.api.call(epData, req); + } + + // 解锁资源 + async reqUnlockGirlRes(req: proto.cs.ICSUnlockResourceReq): Promise> { + let epData: Endpoint = { + path: "api/logic/unlockResource", + method: "POST", + codec: "json", + needsAuth: true + }; + return this.api.call(epData, req); + } } diff --git a/assets/Scripts/chat18x/network/services/HttpShopService.ts b/assets/Scripts/chat18x/network/services/HttpShopService.ts index 95b6860a..d6894303 100644 --- a/assets/Scripts/chat18x/network/services/HttpShopService.ts +++ b/assets/Scripts/chat18x/network/services/HttpShopService.ts @@ -8,13 +8,24 @@ export class HttpShopService implements IShopService { constructor(private api = ApiClient.I) {} // 获取商品列表 - async reqShopList(req: proto.cs.ICSGetShopReq): Promise> { - const ep: Endpoint = { - path: "api/logic/shop", + async reqShopList(req: proto.cs.ICSGetPurchaseReq): Promise> { + const ep: Endpoint = { + path: "api/logic/getPurchase", method: "POST", codec: "json", needsAuth: true, }; return this.api.call(ep, req); } + + // 使用余额购买商品 + async reqBuyGood(req: proto.cs.ICSBuyGoodReq): Promise> { + const ep: Endpoint = { + path: "api/logic/buyGood", + method: "POST", + codec: "json", + needsAuth: true, + }; + return this.api.call(ep, req); + } } diff --git a/assets/Scripts/chat18x/network/services/IChatService.ts b/assets/Scripts/chat18x/network/services/IChatService.ts index f53151cd..6f4e19a6 100644 --- a/assets/Scripts/chat18x/network/services/IChatService.ts +++ b/assets/Scripts/chat18x/network/services/IChatService.ts @@ -3,6 +3,10 @@ import type { ApiResponse } from "../client/types"; import proto from "db://assets/Scripts/proto/proto.pb.js"; export interface IChatService { - // 购买聊天次数 - reqBuyChat(req: proto.cs.ICSBuyChatReq): Promise>; + // 上报聊天数据 + reqChatMsg(req: proto.cs.ICSChatMsgReq): Promise>; + // 获取聊天数据 + reqGetChatMsg(req: proto.cs.ICSGetChatMsgReq): Promise>; + // 获取技师聊天次数 + reqChatCountData(req: proto.cs.ICSGetChatRemainCountReq): Promise>; } diff --git a/assets/Scripts/chat18x/network/services/ICommonService.ts b/assets/Scripts/chat18x/network/services/ICommonService.ts new file mode 100644 index 00000000..7e89ae32 --- /dev/null +++ b/assets/Scripts/chat18x/network/services/ICommonService.ts @@ -0,0 +1,7 @@ +import type { ApiResponse } from "../client/types"; +import proto from "db://assets/Scripts/proto/proto.pb.js"; + +export interface ICommonService { + // 获取配置 + reqResConfig(req: proto.cs.ICSGetResConfigReq): Promise>; +} diff --git a/assets/Scripts/chat18x/network/services/ICommonService.ts.meta b/assets/Scripts/chat18x/network/services/ICommonService.ts.meta new file mode 100644 index 00000000..a43e995d --- /dev/null +++ b/assets/Scripts/chat18x/network/services/ICommonService.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "05ed90ec-18c9-42cd-ae17-4a7ea4b3875c", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/chat18x/network/services/IGirlService.ts b/assets/Scripts/chat18x/network/services/IGirlService.ts index 5115b98b..5351022b 100644 --- a/assets/Scripts/chat18x/network/services/IGirlService.ts +++ b/assets/Scripts/chat18x/network/services/IGirlService.ts @@ -8,4 +8,8 @@ export interface IGirlService { reqGetGirlList(req: proto.cs.ICSGetGirlListReq): Promise>; // 获取技师详细信息 reqGetGirlDetail(req: proto.cs.ICSGetGirlDetailReq): Promise>; + // 解锁技师 + reqUnlockGirl(req: proto.cs.ICSUnlockGirlReq): Promise>; + // 解锁资源 + reqUnlockGirlRes(req: proto.cs.ICSUnlockResourceReq): Promise>; } diff --git a/assets/Scripts/chat18x/network/services/IShopService.ts b/assets/Scripts/chat18x/network/services/IShopService.ts index e426cac9..fd2e4277 100644 --- a/assets/Scripts/chat18x/network/services/IShopService.ts +++ b/assets/Scripts/chat18x/network/services/IShopService.ts @@ -3,5 +3,7 @@ import proto from "db://assets/Scripts/proto/proto.pb.js"; export interface IShopService { // 获取商品列表 - reqShopList(req: proto.cs.ICSGetShopReq): Promise>; + reqShopList(req: proto.cs.ICSGetPurchaseReq): Promise>; + // 使用余额购买商品 + reqBuyGood(req: proto.cs.ICSBuyGoodReq): Promise>; } diff --git a/assets/Scripts/chat18x/network/services/MockAuthService.ts b/assets/Scripts/chat18x/network/services/MockAuthService.ts index e8facf50..2f28c5aa 100644 --- a/assets/Scripts/chat18x/network/services/MockAuthService.ts +++ b/assets/Scripts/chat18x/network/services/MockAuthService.ts @@ -4,10 +4,8 @@ import type { IAuthService } from "./IAuthService"; export class MockAuthService implements IAuthService { private delay(ms = 180) { return new Promise(r => setTimeout(r, ms)); } - - // 项目里 ApiResponse 结构若固定(code/message 等),把 ok()/err() 调整为你的真实结构即可 private ok(data: T): ApiResponse { - return ({ ok: true, data } as unknown) as ApiResponse; + return ({ code: proto.cs.EnmRetCode.SUCCESS, data } as unknown) as ApiResponse; } // private err(message = "mock login error"): ApiResponse { // return ({ ok: false, error: { message } } as unknown) as ApiResponse; @@ -15,18 +13,29 @@ export class MockAuthService implements IAuthService { // 登录 async login(req: proto.cs.ICSLoginReq): Promise> { + // 延时 await this.delay(150); - const name = req?.platType === "guest" ? `guest_${(req?.userId ?? "uid").toString().slice(-6)}` : "tester"; - // 注意:protobufjs 会把 int64 表达为 number/Long。这里用「秒」级时间戳更常见 + const isGuest = req?.platType === "guest"; + const userId = req?.userId ?? "uid"; + const name = isGuest ? `guest_${userId.toString().slice(-6)}` : "tester"; + + // 过期时间(秒级时间戳,7天后过期) const expireSeconds = Math.floor(Date.now() / 1000) + 7 * 24 * 3600; - // 你的生成器通常会把 refresh_token 转成 refreshToken(camelCase) + // 模拟用户ID + const accId = (Math.floor(Math.random() * 1000000)).toString(); + + // 模拟 CDN 前缀 + const cdn = "https://cdn.mockserver.com/"; + const res: proto.cs.ICSLoginRes = { name, token: `mock_token_${Date.now()}`, refreshToken: `mock_refresh_${Date.now()}`, expire: expireSeconds, + accId, + cdn, }; return this.ok(res); diff --git a/assets/Scripts/chat18x/network/services/MockChatService.ts b/assets/Scripts/chat18x/network/services/MockChatService.ts index 995ee7c9..5b7e4871 100644 --- a/assets/Scripts/chat18x/network/services/MockChatService.ts +++ b/assets/Scripts/chat18x/network/services/MockChatService.ts @@ -1,22 +1,91 @@ import type { ApiResponse } from "../client/types"; import proto from "db://assets/Scripts/proto/proto.pb.js"; import type { IChatService } from "./IChatService"; +import { DataManager, DataId } from "../../data/DataManager"; +import { GirlData } from "../../data/GirlData"; export class MockChatService implements IChatService { private delay(ms = 160) { return new Promise(r => setTimeout(r, ms)); } - // 按你们项目的 ApiResponse 结构调整这里即可 private ok(data: T): ApiResponse { - return ({ ok: true, data } as unknown) as ApiResponse; + return ({ code: proto.cs.EnmRetCode.SUCCESS, data } as unknown) as ApiResponse; } - // private err(message = "mock buyChat error"): ApiResponse { - // return ({ ok: false, error: { message } } as unknown) as ApiResponse; - // } - async reqBuyChat(_req: proto.cs.ICSBuyChatReq): Promise> { + // 上报聊天数据 + async reqChatMsg(req: proto.cs.ICSChatMsgReq): Promise> { + // 延时 await this.delay(); - // CSBuyChatRes 在 proto 中为空消息,这里返回 {} - const res: proto.cs.ICSBuyChatRes = {}; + // 请求数据 + const reqGirlId = req.girlId; + // 数据层的数据 + const girlData = DataManager.I.getDataById(DataId.Girl); + const reqGirlCategory = girlData.getGrilCategoryById(reqGirlId); + const chatTotalCount = girlData.getChatTotalCount(reqGirlCategory.toString(), reqGirlId); + const chatRemainCount = girlData.getChatRemainCount(reqGirlCategory.toString(), reqGirlId); + // 计算 + let resultTotalCount = chatTotalCount + 1; + let resultRemainCount = chatRemainCount; + if (chatRemainCount > 0) { + resultRemainCount = chatRemainCount - 1; + } + // 返回数据 + const res: proto.cs.ICSChatMsgRes = { + chatRemainCount: resultRemainCount, + chatTotalCount: resultTotalCount, + }; return this.ok(res); } + + // 获取聊天数据 + async reqGetChatMsg(req: proto.cs.ICSGetChatMsgReq): Promise> { + // 延时 + await this.delay(); + // 请求数据 + const reqGirlId = req.GirlId; + const page = req.page; + const limit = req.limit; + // 数据层的数据 + const girlData = DataManager.I.getDataById(DataId.Girl); + const reqGirlCategory = girlData.getGrilCategoryById(reqGirlId); + const chatTotalCount = girlData.getChatTotalCount(reqGirlCategory.toString(), reqGirlId); + const chatRemainCount = girlData.getChatRemainCount(reqGirlCategory.toString(), reqGirlId); + // 模拟一个完整的聊天记录池 + const allMsgs: proto.cs.IChatMsg[] = []; + for (let i = 0; i < 50; i++) { + allMsgs.push({ + msg: `模拟消息 ${i + 1} 来自技师 ${reqGirlId}`, + isAi: i % 2 === 0, // 偶数条当成 AI 说的 + }); + } + // 分页计算 + const start = (page - 1) * limit; + const end = start + limit; + const pageMsgs = allMsgs.slice(start, end); + // 返回数据 + const res: proto.cs.ICSGetChatMsgRes = { + msgs: pageMsgs, + chatRemainCount, + chatTotalCount, + }; + return this.ok(res); + } + + // 获取技师聊天次数 + async reqChatCountData(req: proto.cs.ICSGetChatRemainCountReq): Promise> { + // 延时 + await this.delay(); + // 请求数据 + const reqGirlId = req.id; + // 数据层的数据 + const girlData = DataManager.I.getDataById(DataId.Girl); + const reqGirlCategory = girlData.getGrilCategoryById(reqGirlId); + const chatTotalCount = girlData.getChatTotalCount(reqGirlCategory.toString(), reqGirlId); + const chatRemainCount = girlData.getChatRemainCount(reqGirlCategory.toString(), reqGirlId); + // 返回数据 + const res: proto.cs.ICSGetChatRemainCountRes = { + chatRemainCount, + chatTotalCount, + }; + return this.ok(res); + } } diff --git a/assets/Scripts/chat18x/network/services/MockCommonService.ts b/assets/Scripts/chat18x/network/services/MockCommonService.ts new file mode 100644 index 00000000..1d6034af --- /dev/null +++ b/assets/Scripts/chat18x/network/services/MockCommonService.ts @@ -0,0 +1,37 @@ +import type { ApiResponse } from "../client/types"; +import proto from "db://assets/Scripts/proto/proto.pb.js"; +import type { ICommonService } from "./ICommonService"; +import { ConfigManager, ConfigId } from "../../manager/ConfigManager"; +import { GlobalConfig } from "../../config/GlobalConfig"; + +export class MockCommonService implements ICommonService { + private delay(ms = 160) { return new Promise(r => setTimeout(r, ms)); } + private ok(data: T): ApiResponse { + return ({ code: proto.cs.EnmRetCode.SUCCESS, data } as unknown) as ApiResponse; + } + + // 获取配置 + async reqResConfig(req: proto.cs.ICSGetResConfigReq): Promise> { + // 延时 + await this.delay(); + + let data = ""; + const resName = req.resName; + if (resName === "TbGlobalConfig") { + // 全局配置 + data = this.getGlobalConfig(); + } + + // 返回数据 + const res: proto.cs.ICSGetResConfigRes = { data }; + return this.ok(res); + } + + // 全局配置 + private getGlobalConfig(): string { + + const configData = ConfigManager.I.getDataById(ConfigId.Global); + + return ""; + } +} diff --git a/assets/Scripts/chat18x/network/services/MockCommonService.ts.meta b/assets/Scripts/chat18x/network/services/MockCommonService.ts.meta new file mode 100644 index 00000000..ca4d7d64 --- /dev/null +++ b/assets/Scripts/chat18x/network/services/MockCommonService.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "8fd66f05-3289-4fa5-aed1-69f384223065", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/chat18x/network/services/MockGirlService.ts b/assets/Scripts/chat18x/network/services/MockGirlService.ts index 89a27835..a444d05e 100644 --- a/assets/Scripts/chat18x/network/services/MockGirlService.ts +++ b/assets/Scripts/chat18x/network/services/MockGirlService.ts @@ -15,71 +15,87 @@ export class MockGirlService implements IGirlService { return ({ code: 100, error: { message } } as unknown) as ApiResponse; } - private genBrief(id: number, name: string, age: number, tagKey: string, priceType: number, price: number, avatar: string, star: number, category: number, listAvatarPath: string): proto.cs.IGirlBrief { + private genBrief(id: number, nameKey: string, age: string, category: number, tagKey: string, priceType: number, price: number, vipUnlock: number, avatarPath: string, listAvatarPath: string): proto.cs.IGirls { return { id, - name, + nameKey, age, + category, tagKey, priceType, price, - avatar, - star, - category, + vipUnlock, + avatarPath, listAvatarPath, }; } - private genPhoto(imageType: number, imagePrice: number, path: string, isRelease: boolean, ): proto.cs.IPurchaseCommercialImage { + private genPhoto(id: number, imageType: number, unlockCounts: number, imagePrice: number, path: string): proto.cs.IPurchaseCommercialImage { return { + id, imageType, + unlockCounts, imagePrice, path, - isRelease, }; } - private genVideo(path: string, emotion: number, videoPrice: number, isRelease: boolean): proto.cs.IPurchaseCommercialVideo { - return { + private genVideo(id: number, path: string, emotion: number, videoPrice: number): proto.cs.IPurchaseCommercialVideo { + return { + id, path, emotion, videoPrice, - isRelease, }; } - private genDetail(brief: proto.cs.IGirlBrief, desc: string, images: proto.cs.IPurchaseCommercialImage[], videos: proto.cs.IPurchaseCommercialVideo[], isRelease: boolean, chatCount: number): proto.cs.IGirlDetail { + private genDetail(id: number, detailDesc: string, commercialImages: proto.cs.IPurchaseCommercialImage[], commercialVideos: proto.cs.IPurchaseCommercialVideo[]): proto.cs.IGirlsDetail { return { - brief, - desc, - images, - videos, - isRelease, - chatCount, + id, + detailDesc, + commercialImages, + commercialVideos, }; } + private genGirlData( + id: number, girl: proto.cs.IGirls, isRelease: boolean, star: number, + detail: proto.cs.IGirlsDetail, images: proto.cs.IResourceUnlock[], videos: proto.cs.IResourceUnlock[], + chatTotalCount: number, chatRemainCount: number): proto.cs.IGirlData { + return { + id, + girl, + isRelease, + star, + detail, + images, + videos, + chatTotalCount, + chatRemainCount, + }; + } + // 每日推荐 - async reqDailyRecommend(_req: proto.cs.ICSDailyRecommendReq): Promise> { + async reqDailyRecommend(req: proto.cs.ICSDailyRecommendReq): Promise> { // 延时 await this.delay(180); // 配置数据 const configData = ConfigManager.I.getDataById(ConfigId.Girl); const allId = configData.getAllId(); const recId = allId[0]; - let name = configData.getNameById(recId); - let age = Number(configData.getAgeById(recId)); + let nameKey = configData.getNameById(recId); + let age = configData.getAgeById(recId); let tagKey = configData.getTagKeyById(recId); let priceType = configData.getPriceTypeById(recId); - let price = 9.9; - let avatar = configData.getAvatarPathById(recId); - let star = 3; + let price = configData.getPriceById(recId); + let vipUnlock = configData.getVipUnlockById(recId); + let avatarPath = configData.getAvatarPathById(recId); let category = configData.getCategoryById(recId); let listAvatarPath = configData.getListAvatarPathPathById(recId); - let oneData = this.genBrief(recId, name, age, tagKey, priceType, price, avatar, star, category, listAvatarPath); + let oneData = this.genBrief(recId, nameKey, age, category, tagKey, priceType, price, vipUnlock, avatarPath, listAvatarPath); // 返回数据 - const girls = [oneData]; - return this.ok({ girls }); + const res: proto.cs.ICSDailyRecommendRes = {girl: oneData}; + return this.ok(res); } // 获取技师列表 @@ -105,29 +121,35 @@ export class MockGirlService implements IGirlService { const start = (page - 1) * limit; const pageIds = filteredIds.slice(start, start + limit); - // 映射为 IGirlBrief - const girls: proto.cs.IGirlBrief[] = pageIds.map((id: number) => { - const name = configData.getNameById(id); - const age = Number(configData.getAgeById(id)); + // 映射数据 + const girls: proto.cs.IGirlData[] = pageIds.map((id: number) => { + // 简要数据 + const nameKey = configData.getNameById(id); + const age = configData.getAgeById(id); const tagKey = configData.getTagKeyById(id); - const priceType = Number(configData.getPriceTypeById(id)); - const avatar = configData.getAvatarPathById(id); - - // 如果有价格配置,就用配置里的,否则给个兜底值 - const price = typeof (configData as any).getPriceById === "function" - ? Number((configData as any).getPriceById(id) ?? 9.9) - : 9.9; - - // 星级兜底:1~5 - const star = (id % 5) + 1; - + const priceType = configData.getPriceTypeById(id); + const price = configData.getPriceById(id); + const vipUnlock = configData.getVipUnlockById(id); + const avatarPath = configData.getAvatarPathById(id); const category = configData.getCategoryById(id); - const listAvatarPath = configData.getListAvatarPathPathById(id); - - return this.genBrief(id, name, age, tagKey, priceType, price, avatar, star, category, listAvatarPath); + const listAvatarPath = configData.getListAvatarPathPathById(id); + const briefData = this.genBrief(id, nameKey, age, category, tagKey, priceType, price, vipUnlock, avatarPath, listAvatarPath); + + const isRelease = true; + const star = 3; + // 详细数据 + const detail = null; + const images = []; + const videos = []; + const chatTotalCount = 0; + const chatRemainCount = 0; + const girlData = this.genGirlData(id, briefData, isRelease, star, detail, images, videos, chatTotalCount, chatRemainCount); + + return girlData; }); // 返回数据 - return this.ok({ girls }); + const res: proto.cs.ICSGetGirlListRes = {girls}; + return this.ok(res); } // 获取技师详细信息 @@ -140,45 +162,94 @@ export class MockGirlService implements IGirlService { // id const girlId = req.id; // 简要数据 - let name = girlConfig.getNameById(girlId); - let age = Number(girlConfig.getAgeById(girlId)); + let nameKey = girlConfig.getNameById(girlId); + let age = girlConfig.getAgeById(girlId); let tagKey = girlConfig.getTagKeyById(girlId); let priceType = girlConfig.getPriceTypeById(girlId); - let price = 9.9; - let avatar = girlConfig.getAvatarPathById(girlId); - let star = 3; + let price = girlConfig.getPriceById(girlId); + let vipUnlock = girlConfig.getVipUnlockById(girlId); + let avatarPath = girlConfig.getAvatarPathById(girlId); let category = girlConfig.getCategoryById(girlId); let listAvatarPath = girlConfig.getListAvatarPathPathById(girlId); - let briefData = this.genBrief(girlId, name, age, tagKey, priceType, price, avatar, star, category, listAvatarPath); + let briefData = this.genBrief(girlId, nameKey, age, category, tagKey, priceType, price, vipUnlock, avatarPath, listAvatarPath); - let desc = girlDetailConfig.getDetailDescById(girlId); let isRelease = Math.random() < 0.4; - let chatCount = 10; + let detailDesc = girlDetailConfig.getDetailDescById(girlId); // 图片 let photoData = []; - let photoCount = girlDetailConfig.getCommercialImagesCount(girlId); - for (let i = 0; i < photoCount; i++) { - let imageType = girlDetailConfig.getImageTypeById(girlId, i); - let imagePath = girlDetailConfig.getImagePathById(girlId, i); - let isRelease = Math.random() < 0.4; - let imagePrice = girlDetailConfig.getImagePriceById(girlId, i); - let oneData = this.genPhoto(imageType, imagePrice, imagePath, isRelease); + let photoIds = girlDetailConfig.getCommercialImagesIds(girlId); + for (let id of photoIds) { + let imageType = girlDetailConfig.getImageTypeById(girlId, id); + let unlockCounts = girlDetailConfig.getImageUnlockCountsById(girlId, id); + let imagePrice = girlDetailConfig.getImagePriceById(girlId, id); + let imagePath = girlDetailConfig.getImagePathById(girlId, id); + let oneData = this.genPhoto(id, imageType, unlockCounts, imagePrice, imagePath); photoData.push(oneData); } // 视频 let videoData = []; - let videoCount = girlDetailConfig.getCommercialVideosCount(girlId); - for (let i = 0; i < videoCount; i++) { - let videoPath = girlDetailConfig.getVideoPathById(girlId, i); - let videoEmotion = girlDetailConfig.getVideoEmotionById(girlId, i); - let videoPrice = girlDetailConfig.getVideoPriceById(girlId, i); - let isRelease = Math.random() < 0.4; - let oneData = this.genVideo(videoPath, videoEmotion, videoPrice, isRelease); + let videoIds = girlDetailConfig.getCommercialVideosIds(girlId); + for (let id of videoIds) { + let videoPath = girlDetailConfig.getVideoPathById(girlId, id); + let videoEmotion = girlDetailConfig.getVideoEmotionById(girlId, id); + let videoPrice = girlDetailConfig.getVideoPriceById(girlId, id); + let oneData = this.genVideo(id, videoPath, videoEmotion, videoPrice); videoData.push(oneData); - } + } // 详细数据 - let detail = this.genDetail(briefData, desc, photoData, videoData, isRelease, chatCount); + let detail = this.genDetail(girlId, detailDesc, photoData, videoData); + // 图片解锁数据 + let unlockImageData: proto.cs.IResourceUnlock[] = []; + for (let id of photoIds) { + // 偶数才解锁 + let isUnlock = (id % 2 === 0); + if (isUnlock) { + let oneData = { + girlId: girlId, + resId: id, + }; + unlockImageData.push(oneData); + } + } + // 视频解锁数据 + let unlockVideoData: proto.cs.IResourceUnlock[] = []; + for (let id of videoIds) { + // 偶数才解锁 + let isUnlock = (id % 2 === 0); + if (isUnlock) { + let oneData = { + girlId: girlId, + resId: id, + }; + unlockVideoData.push(oneData); + } + } + + const star = 3; + const chatTotalCount = 20; + const chatRemainCount = 20; + + const girlData = this.genGirlData(girlId, briefData, isRelease, star, detail, unlockImageData, unlockVideoData, chatTotalCount, chatRemainCount); // 返回数据 - return this.ok({ detail }); + const res: proto.cs.ICSGetGirlDetailRes = {girl: girlData}; + return this.ok(res); } + + // 解锁技师 + async reqUnlockGirl(_req: proto.cs.ICSUnlockGirlReq): Promise> { + // 延时 + await this.delay(180); + // 返回数据 + const res: proto.cs.ICSUnlockGirlRes = {}; + return this.ok(res); + } + + // 解锁资源 + async reqUnlockGirlRes(_req: proto.cs.ICSUnlockResourceReq): Promise> { + // 延时 + await this.delay(180); + // 返回数据 + const res: proto.cs.ICSUnlockResourceRes = {}; + return this.ok(res); + } } diff --git a/assets/Scripts/chat18x/network/services/MockPlayerDataService.ts b/assets/Scripts/chat18x/network/services/MockPlayerDataService.ts index 88d412c3..5def29a2 100644 --- a/assets/Scripts/chat18x/network/services/MockPlayerDataService.ts +++ b/assets/Scripts/chat18x/network/services/MockPlayerDataService.ts @@ -3,26 +3,26 @@ import proto from "db://assets/Scripts/proto/proto.pb.js"; import type { IPlayerDataService } from "./IPlayerDataService"; export class MockPlayerDataService implements IPlayerDataService { - private delay(ms = 160) { return new Promise(r => setTimeout(r, ms)); } + private delay(ms = 160) { + return new Promise(r => setTimeout(r, ms)); + } - // 按你项目的 ApiResponse 真实结构调整这里 private ok(data: T): ApiResponse { - return ({ ok: true, data } as unknown) as ApiResponse; + return ({ code: proto.cs.EnmRetCode.SUCCESS, data } as unknown) as ApiResponse; } - // 如需模拟失败 - // private err(message = "mock myInfo error"): ApiResponse { - // return ({ ok: false, error: { message } } as unknown) as ApiResponse; - // } // 获取个人信息 async reqMyInfo(_req: proto.cs.ICSMyInfoReq): Promise> { + // 延时 await this.delay(); - // 由于我们并不知道 ICSMyInfoRes 的具体字段,这里提供一个“最安全”的空对象返回; - // 如果你有明确字段(例如 name/diamond/vipExpire 等),可在此构造并 as-cast: - // const res = { name: "Player-001", diamond: 123, vipExpire: Math.floor(Date.now()/1000) } as unknown as proto.cs.ICSMyInfoRes; + const nowSeconds = Math.floor(Date.now() / 1000); - const res = ({} as unknown) as proto.cs.ICSMyInfoRes; + const res: proto.cs.ICSMyInfoRes = { + balance: Math.floor(Math.random() * 100000), // 随机余额 + vipExpire: nowSeconds + 30 * 24 * 3600, // vip 30天后过期 + }; + // 返回数据 return this.ok(res); } } diff --git a/assets/Scripts/chat18x/network/services/MockShopService.ts b/assets/Scripts/chat18x/network/services/MockShopService.ts index dd96c5c9..44613d99 100644 --- a/assets/Scripts/chat18x/network/services/MockShopService.ts +++ b/assets/Scripts/chat18x/network/services/MockShopService.ts @@ -1,6 +1,8 @@ import type { ApiResponse } from "../client/types"; import proto from "db://assets/Scripts/proto/proto.pb.js"; import type { IShopService } from "./IShopService"; +import { PurchaseConfig } from "../../config/PurchaseConfig"; +import { ConfigManager, ConfigId } from "../../manager/ConfigManager"; export class MockShopService implements IShopService { private delay(ms = 180) { return new Promise(r => setTimeout(r, ms)); } @@ -11,29 +13,44 @@ export class MockShopService implements IShopService { } private ok(data: T): ApiResponse { - return ({ ok: true, data } as unknown) as ApiResponse; + return ({ code: proto.cs.EnmRetCode.SUCCESS, data } as unknown) as ApiResponse; } - private genGood(id: number, vip = false): proto.cs.IGood { + private genGood(id: number, name: string, count: number, price: number): proto.cs.IPurchaseConfig { return { id, - name: vip ? `VIP-${id}` : `Diamond Pack ${id}`, - desc: vip ? `VIP access for ${this.randInt(24, 168)} hours` : `Diamonds x${this.randInt(60, 2000)}`, - price: this.priceUSD(vip ? 4.99 : 0.99, vip ? 49.99 : 29.99), - count: vip ? this.randInt(24, 168) : this.randInt(60, 2000), // VIP=小时,普通=数量 + name, + count, + price, }; } // 获取商品列表 - async reqShopList(_req: proto.cs.ICSGetShopReq): Promise> { + async reqShopList(_req: proto.cs.ICSGetPurchaseReq): Promise> { + // 延时 await this.delay(); - - // 普通商品(<=2000)+ VIP 商品(>2000) - const normals: proto.cs.IGood[] = Array.from({ length: 5 }, (_, i) => this.genGood(1000 + i, false)); - const vips: proto.cs.IGood[] = Array.from({ length: 3 }, (_, i) => this.genGood(2001 + i, true)); - - // 注意:你的 proto 定义中字段名为 "Goods"(大写 G) - const res: proto.cs.ICSGetShopRes = { Goods: [...normals, ...vips] }; + // 配置数据 + const configData = ConfigManager.I.getDataById(ConfigId.Purchase); + const allId = configData.getAllId(); + let goodData: proto.cs.IPurchaseConfig[] = []; + for (let id of allId) { + let name = configData.getNameById(id); + let count = configData.getCountById(id); + let price = configData.getPriceById(id); + let oneData = this.genGood(id, name, count, price); + goodData.push(oneData); + } + // 返回数据 + const res: proto.cs.ICSGetPurchaseRes = { items: goodData }; return this.ok(res); } + + // 使用余额购买商品 + async reqBuyGood(_req: proto.cs.ICSBuyGoodReq): Promise> { + // 延时 + await this.delay(); + // 返回数据 + const res: proto.cs.ICSBuyGoodRes = {}; + return this.ok(res); + } } diff --git a/assets/Scripts/chat18x/network/services/MockThemeService.ts b/assets/Scripts/chat18x/network/services/MockThemeService.ts index c3da3317..bd741e29 100644 --- a/assets/Scripts/chat18x/network/services/MockThemeService.ts +++ b/assets/Scripts/chat18x/network/services/MockThemeService.ts @@ -10,7 +10,7 @@ export class MockThemeService implements IThemeService { return ({ code: proto.cs.EnmRetCode.SUCCESS, data } as unknown) as ApiResponse; } - private makeTheme(id: number, key: string, name: string, category: number, isRelease: boolean, path: string): proto.cs.IHallTheme { + private makeTheme(id: number, key: string, name: string, category: number, isRelease: boolean, path: string): proto.cs.IThemes { return { id, key, @@ -22,13 +22,13 @@ export class MockThemeService implements IThemeService { } // 获取大厅分类列表 - async reqHallTheme(_req: proto.cs.ICSHallThemeReq): Promise> { + async reqHallTheme(req: proto.cs.ICSHallThemeReq): Promise> { // 延时 await this.delay(); const configData = ConfigManager.I.getDataById(ConfigId.Theme); const allId = configData.getAllId(); - let themes: proto.cs.IHallTheme[] = []; + let themes: proto.cs.IThemes[] = []; for (let oneId of allId) { let key = configData.getLanKeyById(oneId); let name = configData.getNameById(oneId); diff --git a/assets/Scripts/chat18x/network/services/PlayerDataService.ts b/assets/Scripts/chat18x/network/services/PlayerDataService.ts index f4d7ad8a..ea397a83 100644 --- a/assets/Scripts/chat18x/network/services/PlayerDataService.ts +++ b/assets/Scripts/chat18x/network/services/PlayerDataService.ts @@ -5,7 +5,7 @@ import { HttpPlayerDataService } from "./HttpPlayerDataService"; import { MockPlayerDataService } from "./MockPlayerDataService"; // 模拟开关 -const USE_MOCK = true; +const USE_MOCK = false; export class PlayerDataService implements IPlayerDataService { private static _I: PlayerDataService | null = null; diff --git a/assets/Scripts/chat18x/network/services/ShopService.ts b/assets/Scripts/chat18x/network/services/ShopService.ts index c4caeb6c..9d65e3ed 100644 --- a/assets/Scripts/chat18x/network/services/ShopService.ts +++ b/assets/Scripts/chat18x/network/services/ShopService.ts @@ -26,7 +26,12 @@ export class ShopService implements IShopService { } // 获取商品列表 - public async reqShopList(req: proto.cs.ICSGetShopReq): Promise> { + public async reqShopList(req: proto.cs.ICSGetPurchaseReq): Promise> { return this.impl.reqShopList(req); } + + // 使用余额购买商品 + public async reqBuyGood(req: proto.cs.ICSBuyGoodReq): Promise> { + return this.impl.reqBuyGood(req); + } } diff --git a/assets/Scripts/chat18x/network/services/ThemeService.ts b/assets/Scripts/chat18x/network/services/ThemeService.ts index 32f191b6..c5c6f593 100644 --- a/assets/Scripts/chat18x/network/services/ThemeService.ts +++ b/assets/Scripts/chat18x/network/services/ThemeService.ts @@ -5,7 +5,7 @@ import { HttpThemeService } from "./HttpThemeService"; import { MockThemeService } from "./MockThemeService"; // 模拟开关 -const USE_MOCK = true; +const USE_MOCK = false; export class ThemeService implements IThemeService { private static _I: ThemeService | null = null; diff --git a/assets/Scripts/chat18x/ui/panels/GirlDetailPanel.ts b/assets/Scripts/chat18x/ui/panels/GirlDetailPanel.ts index e21ec4ea..e9ab1ada 100644 --- a/assets/Scripts/chat18x/ui/panels/GirlDetailPanel.ts +++ b/assets/Scripts/chat18x/ui/panels/GirlDetailPanel.ts @@ -19,12 +19,14 @@ import { SimpleToggle } from "../components/SimpleToggle"; import { DataManager, DataId } from "../../data/DataManager"; import { GirlData } from "../../data/GirlData"; import { GirlService } from "db://assets/Scripts/chat18x/network/services/GirlService"; -import proto from "db://assets/Scripts/proto/proto.pb.js"; +import proto from 'db://assets/Scripts/proto/proto.pb.js'; const { ccclass, property } = _decorator; @ccclass("GirlDetailPanel") export class GirlDetailPanel extends li_BaseView { + @property(Sprite) + avatar: Sprite; @property(VideoPlayer) avatarVideo: VideoPlayer; @property(Label) @@ -107,7 +109,7 @@ export class GirlDetailPanel extends li_BaseView { const videoTransform = this.avatarVideo.node.getComponent(UITransform); if (parentTransform && videoTransform && videoTransform.height > 0) { - const scale = parentTransform.width / videoTransform.width; + const scale = parentTransform.height / videoTransform.height; this.avatarVideo.node.setScale(scale, scale, 1); console.log( `Video scaled to: ${scale}, parent height: ${parentTransform.height}, video height: ${videoTransform.height}` @@ -143,14 +145,11 @@ export class GirlDetailPanel extends li_BaseView { let res = await GirlService.I.reqGetGirlDetail(reqData); if (res && res.code === proto.cs.EnmRetCode.SUCCESS) { // 保存数据 - girlData.setGirlDetails(this.category.toString(), res.data); + girlData.setGirlDetailData(this.category.toString(), res.data); // 根据数据,刷新界面 this.nameKey = girlData.getGrilName(this.category.toString(), this.id); - this.girlName.string = LanguageUtils.getText(this.nameKey); - this.desc.string = girlData.getGrilDesc( - this.category.toString(), - this.id - ); + this.girlName.string = LanguageUtils.getText(this.nameKey); + this.desc.string = girlData.getGrilDesc(this.category.toString(), this.id); let desc = ""; this.tagKey = girlData.getGrilTagKey(this.category.toString(), this.id); @@ -166,51 +165,49 @@ export class GirlDetailPanel extends li_BaseView { let age = girlData.getGrilAge(this.category.toString(), this.id); this.descAge.string = LanguageUtils.getText("girldetailpanel.age") + age.toString(); - - const firstPath = girlData.getGrilVideoPath( - this.category.toString(), - this.id, - 0 + + const firstPath = girlData.getFirstGrilVideoPath(this.category.toString(), this.id); + ResManager.I.changeBundleVideo( + this.avatarVideo, + firstPath, + "Chat18x" ); - ResManager.I.changeBundleVideo(this.avatarVideo, firstPath, "Chat18x"); - let allPhotoDataCount = girlData.getAllGrilPhotoDataCount( - this.category.toString(), - this.id - ); + let resIds = girlData.getAllGrilPhotoDataId(this.category.toString(), this.id); // 也立即尝试调整(以防已经加载完成) this.adjustVideoScale(); - this.refreshImgs(1, this.category, this.id, allPhotoDataCount); - } + this.refreshImgs(1, this.category, this.id, resIds); + } } bindImgToggle() { const girlData = DataManager.I.getDataById(DataId.Girl); - let allPhotoDataCount = girlData.getAllGrilPhotoDataCount( - this.category.toString(), - this.id - ); - this.refreshImgs(1, this.category, this.id, allPhotoDataCount); + let resIds = girlData.getAllGrilPhotoDataId(this.category.toString(), this.id); + this.refreshImgs(1, this.category, this.id, resIds); } bindVideoToggle() { const girlData = DataManager.I.getDataById(DataId.Girl); - let allVideoDataCount = girlData.getAllGrilVideoDataCount( - this.category.toString(), - this.id - ); - this.refreshImgs(2, this.category, this.id, allVideoDataCount); + let resIds = girlData.getAllGrilVideoDataId(this.category.toString(), this.id); + this.refreshImgs(2, this.category, this.id, resIds); } - refreshImgs(type: number, category: number, id: number, count: number) { + refreshImgs( + type: number, + category: number, + id: number, + resIds: number[] + ) { for (let i = this.imgsLayout.children.length - 1; i >= 0; i--) { this.imgsLayout.children[i].destroy(); } + let count = resIds.length; for (let i = 0; i < count; i++) { let newNode = instantiate(this.imgItemInst.node); let item = newNode.getComponent(DetailImageItem); - item.refresh(this, type, category, id, i); + let resId = resIds[i]; + item.refresh(this, type, category, id, resId); newNode.active = true; this.imgsLayout.addChild(newNode); } diff --git a/assets/Scripts/chat18x/ui/panels/GirlListPanel.ts b/assets/Scripts/chat18x/ui/panels/GirlListPanel.ts index ded7f9b0..94590596 100644 --- a/assets/Scripts/chat18x/ui/panels/GirlListPanel.ts +++ b/assets/Scripts/chat18x/ui/panels/GirlListPanel.ts @@ -51,7 +51,7 @@ export class GirlListPanel extends li_BaseView { if (res && res.code === proto.cs.EnmRetCode.SUCCESS) { // 保存数据 const girlData = DataManager.I.getDataById(DataId.Girl); - girlData.setGirlBriefs(category.toString(), res.data); + girlData.setGirlList(category.toString(), res.data); // 根据数据,刷新界面 const allId = girlData.getGirlIds(category.toString()); for (let id of allId) { diff --git a/assets/Scripts/chat18x/ui/panels/ThemePanel.ts b/assets/Scripts/chat18x/ui/panels/ThemePanel.ts index 3573c4e5..e086b7cc 100644 --- a/assets/Scripts/chat18x/ui/panels/ThemePanel.ts +++ b/assets/Scripts/chat18x/ui/panels/ThemePanel.ts @@ -95,10 +95,10 @@ export class ThemePanel extends li_BaseView { const girlData = DataManager.I.getDataById(DataId.Girl); girlData.setDailyRecommend(res2.data); // 根据数据,刷新界面 - this.recId = girlData.getRecommendGrilId(0); - this.rectNameKey = girlData.getRecommendGrilName(0); - let avatarPath = girlData.getRecommendGrilAvatar(0); - //this.recName.string = LanguageUtils.getText(this.rectNameKey); + this.recId = girlData.getRecommendGirlId(); + this.rectNameKey = girlData.getRecommendGrilName(); + let avatarPath = girlData.getRecommendGrilAvatar(); + this.recName.string = LanguageUtils.getText(this.rectNameKey); ResManager.I.changeBundleSpriteFrame( this.recSprite, avatarPath, diff --git a/assets/Scripts/chat18x/uiitems/DetailImageItem.ts b/assets/Scripts/chat18x/uiitems/DetailImageItem.ts index 24c3a701..9bc6b97a 100644 --- a/assets/Scripts/chat18x/uiitems/DetailImageItem.ts +++ b/assets/Scripts/chat18x/uiitems/DetailImageItem.ts @@ -1,4 +1,12 @@ -import { _decorator, Component, math, Node, Sprite, UITransform } from "cc"; +import { + _decorator, + Component, + Label, + math, + Node, + Sprite, + UITransform, +} from "cc"; import { Config18x } from "db://assets/Scripts/Main/Config/Config18x"; import ResManager from "db://assets/Scripts/Main/Manager/ResManager"; import { ViewManager } from "db://assets/Scripts/Main/Manager/ViewManager"; @@ -21,13 +29,19 @@ export class DetailImageItem extends Component { @property(Sprite) video: Sprite; + @property(Node) + priceFrame: Node; + @property(Label) + videoPrice: Label; + base: GirlDetailPanel; url: string; isImage: boolean; uitransform: UITransform; category: number; - id: number; - index: number; + + girlId: number; + resId: number; type: number; onLoad() { @@ -59,7 +73,8 @@ export class DetailImageItem extends Component { doScaleToFill() { if (!this.img || !this.img.spriteFrame) return; - + if (!this.uitransform) + this.uitransform = this.node.getComponent(UITransform); const itemSize = this.uitransform.contentSize; const imageSize = this.img.spriteFrame.originalSize; @@ -93,24 +108,26 @@ export class DetailImageItem extends Component { type: number, category: number, id: number, - index: number + resId: number ) { this.base = base; this.type = type; this.category = category; - this.id = id; - this.index = index; + this.girlId = id; + + this.resId = resId; this.question.active = true; // 显示问号,表示加载中 const girlData = DataManager.I.getDataById(DataId.Girl); let imgPath = ""; this.video.enabled = type === 2; + this.priceFrame.active = type === 2; if (type === 1) { // 图片 this.url = girlData.getGrilPhotoPic( this.category.toString(), - this.id, - this.index + this.girlId, + this.resId ); imgPath = this.url; this.isImage = true; @@ -119,19 +136,28 @@ export class DetailImageItem extends Component { this.isImage = false; this.url = girlData.getGrilVideoPath( this.category.toString(), - this.id, - this.index + this.girlId, + this.resId ); let videoPrice = girlData.getGrilVideoPrice( this.category.toString(), - this.id, - this.index + this.girlId, + this.resId ); + this.url = girlData.getGrilVideoPath( + this.category.toString(), + this.girlId, + this.resId + ); + if (videoPrice > 0) { imgPath = this.url + "_thumbnail_blur"; } else { imgPath = this.url + "_thumbnail"; } + this.priceFrame.active = videoPrice > 0; + + this.videoPrice.string = videoPrice.toString(); } ResManager.I.changeBundleSpriteFrame(this.img, imgPath, "Chat18x", () => { diff --git a/assets/Scripts/proto/proto.pb.d.ts b/assets/Scripts/proto/proto.pb.d.ts index ceff1ac8..a92602bb 100644 --- a/assets/Scripts/proto/proto.pb.d.ts +++ b/assets/Scripts/proto/proto.pb.d.ts @@ -6,623 +6,6 @@ declare namespace proto { /** Namespace cs. */ export namespace cs { - /** Properties of a GirlBrief. */ - interface IGirlBrief { - - /** GirlBrief id */ - id?: (number|null); - - /** GirlBrief name */ - name?: (string|null); - - /** GirlBrief age */ - age?: (number|null); - - /** GirlBrief tagKey */ - tagKey?: (string|null); - - /** GirlBrief priceType */ - priceType?: (number|null); - - /** GirlBrief price */ - price?: (number|Long|null); - - /** GirlBrief avatar */ - avatar?: (string|null); - - /** GirlBrief star */ - star?: (number|null); - - /** GirlBrief category */ - category?: (number|null); - - /** GirlBrief listAvatarPath */ - listAvatarPath?: (string|null); - } - - /** Represents a GirlBrief. */ - class GirlBrief implements IGirlBrief { - - /** - * Constructs a new GirlBrief. - * @param [properties] Properties to set - */ - constructor(properties?: cs.IGirlBrief); - - /** GirlBrief id. */ -id: number; - - /** GirlBrief name. */ -name: string; - - /** GirlBrief age. */ -age: number; - - /** GirlBrief tagKey. */ -tagKey: string; - - /** GirlBrief priceType. */ -priceType: number; - - /** GirlBrief price. */ -price: (number|Long); - - /** GirlBrief avatar. */ -avatar: string; - - /** GirlBrief star. */ -star: number; - - /** GirlBrief category. */ -category: number; - - /** GirlBrief listAvatarPath. */ -listAvatarPath: string; - - /** - * Creates a new GirlBrief instance using the specified properties. - * @param [properties] Properties to set - * @returns GirlBrief instance - */ -static create(properties?: cs.IGirlBrief): cs.GirlBrief; - - /** - * Encodes the specified GirlBrief message. Does not implicitly {@link cs.GirlBrief.verify|verify} messages. - * @param message GirlBrief message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ -static encode(message: cs.IGirlBrief, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified GirlBrief message, length delimited. Does not implicitly {@link cs.GirlBrief.verify|verify} messages. - * @param message GirlBrief message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ -static encodeDelimited(message: cs.IGirlBrief, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a GirlBrief message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns GirlBrief - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ -static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.GirlBrief; - - /** - * Decodes a GirlBrief message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns GirlBrief - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ -static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.GirlBrief; - - /** - * Verifies a GirlBrief message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ -static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a GirlBrief message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns GirlBrief - */ -static fromObject(object: { [k: string]: any }): cs.GirlBrief; - - /** - * Creates a plain object from a GirlBrief message. Also converts values to other types if specified. - * @param message GirlBrief - * @param [options] Conversion options - * @returns Plain object - */ -static toObject(message: cs.GirlBrief, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this GirlBrief to JSON. - * @returns JSON object - */ -toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for GirlBrief - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ -static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a GirlPhoto. */ - interface IGirlPhoto { - - /** GirlPhoto pic */ - pic?: (string|null); - - /** GirlPhoto isRelease */ - isRelease?: (boolean|null); - - /** GirlPhoto price */ - price?: (number|null); - } - - /** Represents a GirlPhoto. */ - class GirlPhoto implements IGirlPhoto { - - /** - * Constructs a new GirlPhoto. - * @param [properties] Properties to set - */ - constructor(properties?: cs.IGirlPhoto); - - /** GirlPhoto pic. */ -pic: string; - - /** GirlPhoto isRelease. */ -isRelease: boolean; - - /** GirlPhoto price. */ -price: number; - - /** - * Creates a new GirlPhoto instance using the specified properties. - * @param [properties] Properties to set - * @returns GirlPhoto instance - */ -static create(properties?: cs.IGirlPhoto): cs.GirlPhoto; - - /** - * Encodes the specified GirlPhoto message. Does not implicitly {@link cs.GirlPhoto.verify|verify} messages. - * @param message GirlPhoto message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ -static encode(message: cs.IGirlPhoto, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified GirlPhoto message, length delimited. Does not implicitly {@link cs.GirlPhoto.verify|verify} messages. - * @param message GirlPhoto message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ -static encodeDelimited(message: cs.IGirlPhoto, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a GirlPhoto message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns GirlPhoto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ -static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.GirlPhoto; - - /** - * Decodes a GirlPhoto message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns GirlPhoto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ -static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.GirlPhoto; - - /** - * Verifies a GirlPhoto message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ -static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a GirlPhoto message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns GirlPhoto - */ -static fromObject(object: { [k: string]: any }): cs.GirlPhoto; - - /** - * Creates a plain object from a GirlPhoto message. Also converts values to other types if specified. - * @param message GirlPhoto - * @param [options] Conversion options - * @returns Plain object - */ -static toObject(message: cs.GirlPhoto, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this GirlPhoto to JSON. - * @returns JSON object - */ -toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for GirlPhoto - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ -static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a PurchaseCommercialImage. */ - interface IPurchaseCommercialImage { - - /** PurchaseCommercialImage imageType */ - imageType?: (number|null); - - /** PurchaseCommercialImage imagePrice */ - imagePrice?: (number|null); - - /** PurchaseCommercialImage path */ - path?: (string|null); - - /** PurchaseCommercialImage isRelease */ - isRelease?: (boolean|null); - } - - /** Represents a PurchaseCommercialImage. */ - class PurchaseCommercialImage implements IPurchaseCommercialImage { - - /** - * Constructs a new PurchaseCommercialImage. - * @param [properties] Properties to set - */ - constructor(properties?: cs.IPurchaseCommercialImage); - - /** PurchaseCommercialImage imageType. */ -imageType: number; - - /** PurchaseCommercialImage imagePrice. */ -imagePrice: number; - - /** PurchaseCommercialImage path. */ -path: string; - - /** PurchaseCommercialImage isRelease. */ -isRelease: boolean; - - /** - * Creates a new PurchaseCommercialImage instance using the specified properties. - * @param [properties] Properties to set - * @returns PurchaseCommercialImage instance - */ -static create(properties?: cs.IPurchaseCommercialImage): cs.PurchaseCommercialImage; - - /** - * Encodes the specified PurchaseCommercialImage message. Does not implicitly {@link cs.PurchaseCommercialImage.verify|verify} messages. - * @param message PurchaseCommercialImage message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ -static encode(message: cs.IPurchaseCommercialImage, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified PurchaseCommercialImage message, length delimited. Does not implicitly {@link cs.PurchaseCommercialImage.verify|verify} messages. - * @param message PurchaseCommercialImage message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ -static encodeDelimited(message: cs.IPurchaseCommercialImage, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a PurchaseCommercialImage message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns PurchaseCommercialImage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ -static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.PurchaseCommercialImage; - - /** - * Decodes a PurchaseCommercialImage message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns PurchaseCommercialImage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ -static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.PurchaseCommercialImage; - - /** - * Verifies a PurchaseCommercialImage message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ -static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a PurchaseCommercialImage message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns PurchaseCommercialImage - */ -static fromObject(object: { [k: string]: any }): cs.PurchaseCommercialImage; - - /** - * Creates a plain object from a PurchaseCommercialImage message. Also converts values to other types if specified. - * @param message PurchaseCommercialImage - * @param [options] Conversion options - * @returns Plain object - */ -static toObject(message: cs.PurchaseCommercialImage, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this PurchaseCommercialImage to JSON. - * @returns JSON object - */ -toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for PurchaseCommercialImage - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ -static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a PurchaseCommercialVideo. */ - interface IPurchaseCommercialVideo { - - /** PurchaseCommercialVideo path */ - path?: (string|null); - - /** PurchaseCommercialVideo emotion */ - emotion?: (number|null); - - /** PurchaseCommercialVideo videoPrice */ - videoPrice?: (number|null); - - /** PurchaseCommercialVideo isRelease */ - isRelease?: (boolean|null); - } - - /** Represents a PurchaseCommercialVideo. */ - class PurchaseCommercialVideo implements IPurchaseCommercialVideo { - - /** - * Constructs a new PurchaseCommercialVideo. - * @param [properties] Properties to set - */ - constructor(properties?: cs.IPurchaseCommercialVideo); - - /** PurchaseCommercialVideo path. */ -path: string; - - /** PurchaseCommercialVideo emotion. */ -emotion: number; - - /** PurchaseCommercialVideo videoPrice. */ -videoPrice: number; - - /** PurchaseCommercialVideo isRelease. */ -isRelease: boolean; - - /** - * Creates a new PurchaseCommercialVideo instance using the specified properties. - * @param [properties] Properties to set - * @returns PurchaseCommercialVideo instance - */ -static create(properties?: cs.IPurchaseCommercialVideo): cs.PurchaseCommercialVideo; - - /** - * Encodes the specified PurchaseCommercialVideo message. Does not implicitly {@link cs.PurchaseCommercialVideo.verify|verify} messages. - * @param message PurchaseCommercialVideo message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ -static encode(message: cs.IPurchaseCommercialVideo, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified PurchaseCommercialVideo message, length delimited. Does not implicitly {@link cs.PurchaseCommercialVideo.verify|verify} messages. - * @param message PurchaseCommercialVideo message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ -static encodeDelimited(message: cs.IPurchaseCommercialVideo, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a PurchaseCommercialVideo message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns PurchaseCommercialVideo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ -static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.PurchaseCommercialVideo; - - /** - * Decodes a PurchaseCommercialVideo message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns PurchaseCommercialVideo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ -static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.PurchaseCommercialVideo; - - /** - * Verifies a PurchaseCommercialVideo message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ -static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a PurchaseCommercialVideo message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns PurchaseCommercialVideo - */ -static fromObject(object: { [k: string]: any }): cs.PurchaseCommercialVideo; - - /** - * Creates a plain object from a PurchaseCommercialVideo message. Also converts values to other types if specified. - * @param message PurchaseCommercialVideo - * @param [options] Conversion options - * @returns Plain object - */ -static toObject(message: cs.PurchaseCommercialVideo, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this PurchaseCommercialVideo to JSON. - * @returns JSON object - */ -toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for PurchaseCommercialVideo - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ -static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a GirlDetail. */ - interface IGirlDetail { - - /** GirlDetail brief */ - brief?: (cs.IGirlBrief|null); - - /** GirlDetail desc */ - desc?: (string|null); - - /** GirlDetail isRelease */ - isRelease?: (boolean|null); - - /** GirlDetail chatCount */ - chatCount?: (number|null); - - /** GirlDetail images */ - images?: (cs.IPurchaseCommercialImage[]|null); - - /** GirlDetail videos */ - videos?: (cs.IPurchaseCommercialVideo[]|null); - } - - /** Represents a GirlDetail. */ - class GirlDetail implements IGirlDetail { - - /** - * Constructs a new GirlDetail. - * @param [properties] Properties to set - */ - constructor(properties?: cs.IGirlDetail); - - /** GirlDetail brief. */ -brief?: (cs.IGirlBrief|null); - - /** GirlDetail desc. */ -desc: string; - - /** GirlDetail isRelease. */ -isRelease: boolean; - - /** GirlDetail chatCount. */ -chatCount: number; - - /** GirlDetail images. */ -images: cs.IPurchaseCommercialImage[]; - - /** GirlDetail videos. */ -videos: cs.IPurchaseCommercialVideo[]; - - /** - * Creates a new GirlDetail instance using the specified properties. - * @param [properties] Properties to set - * @returns GirlDetail instance - */ -static create(properties?: cs.IGirlDetail): cs.GirlDetail; - - /** - * Encodes the specified GirlDetail message. Does not implicitly {@link cs.GirlDetail.verify|verify} messages. - * @param message GirlDetail message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ -static encode(message: cs.IGirlDetail, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified GirlDetail message, length delimited. Does not implicitly {@link cs.GirlDetail.verify|verify} messages. - * @param message GirlDetail message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ -static encodeDelimited(message: cs.IGirlDetail, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a GirlDetail message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns GirlDetail - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ -static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.GirlDetail; - - /** - * Decodes a GirlDetail message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns GirlDetail - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ -static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.GirlDetail; - - /** - * Verifies a GirlDetail message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ -static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a GirlDetail message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns GirlDetail - */ -static fromObject(object: { [k: string]: any }): cs.GirlDetail; - - /** - * Creates a plain object from a GirlDetail message. Also converts values to other types if specified. - * @param message GirlDetail - * @param [options] Conversion options - * @returns Plain object - */ -static toObject(message: cs.GirlDetail, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this GirlDetail to JSON. - * @returns JSON object - */ -toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for GirlDetail - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ -static getTypeUrl(typeUrlPrefix?: string): string; - } - /** Properties of a CSDailyRecommendReq. */ interface ICSDailyRecommendReq { } @@ -717,8 +100,8 @@ static getTypeUrl(typeUrlPrefix?: string): string; /** Properties of a CSDailyRecommendRes. */ interface ICSDailyRecommendRes { - /** CSDailyRecommendRes girls */ - girls?: (cs.IGirlBrief[]|null); + /** CSDailyRecommendRes girl */ + girl?: (cs.IGirls|null); } /** Represents a CSDailyRecommendRes. */ @@ -730,8 +113,8 @@ static getTypeUrl(typeUrlPrefix?: string): string; */ constructor(properties?: cs.ICSDailyRecommendRes); - /** CSDailyRecommendRes girls. */ -girls: cs.IGirlBrief[]; + /** CSDailyRecommendRes girl. */ +girl?: (cs.IGirls|null); /** * Creates a new CSDailyRecommendRes instance using the specified properties. @@ -902,138 +285,11 @@ toJSON(): { [k: string]: any }; static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a HallTheme. */ - interface IHallTheme { - - /** HallTheme id */ - id?: (number|null); - - /** HallTheme key */ - key?: (string|null); - - /** HallTheme name */ - name?: (string|null); - - /** HallTheme category */ - category?: (number|null); - - /** HallTheme isRelease */ - isRelease?: (boolean|null); - - /** HallTheme path */ - path?: (string|null); - } - - /** Represents a HallTheme. */ - class HallTheme implements IHallTheme { - - /** - * Constructs a new HallTheme. - * @param [properties] Properties to set - */ - constructor(properties?: cs.IHallTheme); - - /** HallTheme id. */ -id: number; - - /** HallTheme key. */ -key: string; - - /** HallTheme name. */ -name: string; - - /** HallTheme category. */ -category: number; - - /** HallTheme isRelease. */ -isRelease: boolean; - - /** HallTheme path. */ -path: string; - - /** - * Creates a new HallTheme instance using the specified properties. - * @param [properties] Properties to set - * @returns HallTheme instance - */ -static create(properties?: cs.IHallTheme): cs.HallTheme; - - /** - * Encodes the specified HallTheme message. Does not implicitly {@link cs.HallTheme.verify|verify} messages. - * @param message HallTheme message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ -static encode(message: cs.IHallTheme, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified HallTheme message, length delimited. Does not implicitly {@link cs.HallTheme.verify|verify} messages. - * @param message HallTheme message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ -static encodeDelimited(message: cs.IHallTheme, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a HallTheme message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns HallTheme - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ -static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.HallTheme; - - /** - * Decodes a HallTheme message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns HallTheme - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ -static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.HallTheme; - - /** - * Verifies a HallTheme message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ -static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a HallTheme message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns HallTheme - */ -static fromObject(object: { [k: string]: any }): cs.HallTheme; - - /** - * Creates a plain object from a HallTheme message. Also converts values to other types if specified. - * @param message HallTheme - * @param [options] Conversion options - * @returns Plain object - */ -static toObject(message: cs.HallTheme, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this HallTheme to JSON. - * @returns JSON object - */ -toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for HallTheme - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ -static getTypeUrl(typeUrlPrefix?: string): string; - } - /** Properties of a CSHallThemeRes. */ interface ICSHallThemeRes { /** CSHallThemeRes themes */ - themes?: (cs.IHallTheme[]|null); + themes?: (cs.IThemes[]|null); } /** Represents a CSHallThemeRes. */ @@ -1046,7 +302,7 @@ static getTypeUrl(typeUrlPrefix?: string): string; constructor(properties?: cs.ICSHallThemeRes); /** CSHallThemeRes themes. */ -themes: cs.IHallTheme[]; +themes: cs.IThemes[]; /** * Creates a new CSHallThemeRes instance using the specified properties. @@ -1126,6 +382,254 @@ toJSON(): { [k: string]: any }; static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of a ResourceUnlock. */ + interface IResourceUnlock { + + /** ResourceUnlock girlId */ + girlId?: (number|null); + + /** ResourceUnlock resId */ + resId?: (number|null); + } + + /** Represents a ResourceUnlock. */ + class ResourceUnlock implements IResourceUnlock { + + /** + * Constructs a new ResourceUnlock. + * @param [properties] Properties to set + */ + constructor(properties?: cs.IResourceUnlock); + + /** ResourceUnlock girlId. */ +girlId: number; + + /** ResourceUnlock resId. */ +resId: number; + + /** + * Creates a new ResourceUnlock instance using the specified properties. + * @param [properties] Properties to set + * @returns ResourceUnlock instance + */ +static create(properties?: cs.IResourceUnlock): cs.ResourceUnlock; + + /** + * Encodes the specified ResourceUnlock message. Does not implicitly {@link cs.ResourceUnlock.verify|verify} messages. + * @param message ResourceUnlock message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.IResourceUnlock, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ResourceUnlock message, length delimited. Does not implicitly {@link cs.ResourceUnlock.verify|verify} messages. + * @param message ResourceUnlock message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.IResourceUnlock, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ResourceUnlock message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ResourceUnlock + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.ResourceUnlock; + + /** + * Decodes a ResourceUnlock message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ResourceUnlock + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.ResourceUnlock; + + /** + * Verifies a ResourceUnlock message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ResourceUnlock message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ResourceUnlock + */ +static fromObject(object: { [k: string]: any }): cs.ResourceUnlock; + + /** + * Creates a plain object from a ResourceUnlock message. Also converts values to other types if specified. + * @param message ResourceUnlock + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.ResourceUnlock, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ResourceUnlock to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ResourceUnlock + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a GirlData. */ + interface IGirlData { + + /** GirlData id */ + id?: (number|null); + + /** GirlData girl */ + girl?: (cs.IGirls|null); + + /** GirlData isRelease */ + isRelease?: (boolean|null); + + /** GirlData star */ + star?: (number|null); + + /** GirlData detail */ + detail?: (cs.IGirlsDetail|null); + + /** GirlData images */ + images?: (cs.IResourceUnlock[]|null); + + /** GirlData videos */ + videos?: (cs.IResourceUnlock[]|null); + + /** GirlData chatTotalCount */ + chatTotalCount?: (number|null); + + /** GirlData chatRemainCount */ + chatRemainCount?: (number|null); + } + + /** Represents a GirlData. */ + class GirlData implements IGirlData { + + /** + * Constructs a new GirlData. + * @param [properties] Properties to set + */ + constructor(properties?: cs.IGirlData); + + /** GirlData id. */ +id: number; + + /** GirlData girl. */ +girl?: (cs.IGirls|null); + + /** GirlData isRelease. */ +isRelease: boolean; + + /** GirlData star. */ +star: number; + + /** GirlData detail. */ +detail?: (cs.IGirlsDetail|null); + + /** GirlData images. */ +images: cs.IResourceUnlock[]; + + /** GirlData videos. */ +videos: cs.IResourceUnlock[]; + + /** GirlData chatTotalCount. */ +chatTotalCount: number; + + /** GirlData chatRemainCount. */ +chatRemainCount: number; + + /** + * Creates a new GirlData instance using the specified properties. + * @param [properties] Properties to set + * @returns GirlData instance + */ +static create(properties?: cs.IGirlData): cs.GirlData; + + /** + * Encodes the specified GirlData message. Does not implicitly {@link cs.GirlData.verify|verify} messages. + * @param message GirlData message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.IGirlData, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GirlData message, length delimited. Does not implicitly {@link cs.GirlData.verify|verify} messages. + * @param message GirlData message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.IGirlData, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GirlData message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GirlData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.GirlData; + + /** + * Decodes a GirlData message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GirlData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.GirlData; + + /** + * Verifies a GirlData message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a GirlData message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GirlData + */ +static fromObject(object: { [k: string]: any }): cs.GirlData; + + /** + * Creates a plain object from a GirlData message. Also converts values to other types if specified. + * @param message GirlData + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.GirlData, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GirlData to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for GirlData + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of a CSGetGirlListReq. */ interface ICSGetGirlListReq { @@ -1239,7 +743,7 @@ static getTypeUrl(typeUrlPrefix?: string): string; interface ICSGetGirlListRes { /** CSGetGirlListRes girls */ - girls?: (cs.IGirlBrief[]|null); + girls?: (cs.IGirlData[]|null); } /** Represents a CSGetGirlListRes. */ @@ -1252,7 +756,7 @@ static getTypeUrl(typeUrlPrefix?: string): string; constructor(properties?: cs.ICSGetGirlListRes); /** CSGetGirlListRes girls. */ -girls: cs.IGirlBrief[]; +girls: cs.IGirlData[]; /** * Creates a new CSGetGirlListRes instance using the specified properties. @@ -1432,8 +936,8 @@ static getTypeUrl(typeUrlPrefix?: string): string; /** Properties of a CSGetGirlDetailRes. */ interface ICSGetGirlDetailRes { - /** CSGetGirlDetailRes detail */ - detail?: (cs.IGirlDetail|null); + /** CSGetGirlDetailRes girl */ + girl?: (cs.IGirlData|null); } /** Represents a CSGetGirlDetailRes. */ @@ -1445,8 +949,8 @@ static getTypeUrl(typeUrlPrefix?: string): string; */ constructor(properties?: cs.ICSGetGirlDetailRes); - /** CSGetGirlDetailRes detail. */ -detail?: (cs.IGirlDetail|null); + /** CSGetGirlDetailRes girl. */ +girl?: (cs.IGirlData|null); /** * Creates a new CSGetGirlDetailRes instance using the specified properties. @@ -1526,503 +1030,588 @@ toJSON(): { [k: string]: any }; static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a Good. */ - interface IGood { + /** Properties of a CSUnlockGirlReq. */ + interface ICSUnlockGirlReq { - /** Good id */ + /** CSUnlockGirlReq id */ id?: (number|null); - - /** Good name */ - name?: (string|null); - - /** Good desc */ - desc?: (string|null); - - /** Good price */ - price?: (string|null); - - /** Good count */ - count?: (number|null); } - /** Represents a Good. */ - class Good implements IGood { + /** Represents a CSUnlockGirlReq. */ + class CSUnlockGirlReq implements ICSUnlockGirlReq { /** - * Constructs a new Good. + * Constructs a new CSUnlockGirlReq. * @param [properties] Properties to set */ - constructor(properties?: cs.IGood); + constructor(properties?: cs.ICSUnlockGirlReq); - /** Good id. */ + /** CSUnlockGirlReq id. */ id: number; - /** Good name. */ -name: string; - - /** Good desc. */ -desc: string; - - /** Good price. */ -price: string; - - /** Good count. */ -count: number; - /** - * Creates a new Good instance using the specified properties. + * Creates a new CSUnlockGirlReq instance using the specified properties. * @param [properties] Properties to set - * @returns Good instance + * @returns CSUnlockGirlReq instance */ -static create(properties?: cs.IGood): cs.Good; +static create(properties?: cs.ICSUnlockGirlReq): cs.CSUnlockGirlReq; /** - * Encodes the specified Good message. Does not implicitly {@link cs.Good.verify|verify} messages. - * @param message Good message or plain object to encode + * Encodes the specified CSUnlockGirlReq message. Does not implicitly {@link cs.CSUnlockGirlReq.verify|verify} messages. + * @param message CSUnlockGirlReq message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ -static encode(message: cs.IGood, writer?: $protobuf.Writer): $protobuf.Writer; +static encode(message: cs.ICSUnlockGirlReq, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Good message, length delimited. Does not implicitly {@link cs.Good.verify|verify} messages. - * @param message Good message or plain object to encode + * Encodes the specified CSUnlockGirlReq message, length delimited. Does not implicitly {@link cs.CSUnlockGirlReq.verify|verify} messages. + * @param message CSUnlockGirlReq message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ -static encodeDelimited(message: cs.IGood, writer?: $protobuf.Writer): $protobuf.Writer; +static encodeDelimited(message: cs.ICSUnlockGirlReq, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Good message from the specified reader or buffer. + * Decodes a CSUnlockGirlReq message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Good + * @returns CSUnlockGirlReq * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ -static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.Good; +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSUnlockGirlReq; /** - * Decodes a Good message from the specified reader or buffer, length delimited. + * Decodes a CSUnlockGirlReq message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Good + * @returns CSUnlockGirlReq * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ -static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.Good; +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSUnlockGirlReq; /** - * Verifies a Good message. + * Verifies a CSUnlockGirlReq message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ static verify(message: { [k: string]: any }): (string|null); /** - * Creates a Good message from a plain object. Also converts values to their respective internal types. + * Creates a CSUnlockGirlReq message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Good + * @returns CSUnlockGirlReq */ -static fromObject(object: { [k: string]: any }): cs.Good; +static fromObject(object: { [k: string]: any }): cs.CSUnlockGirlReq; /** - * Creates a plain object from a Good message. Also converts values to other types if specified. - * @param message Good + * Creates a plain object from a CSUnlockGirlReq message. Also converts values to other types if specified. + * @param message CSUnlockGirlReq * @param [options] Conversion options * @returns Plain object */ -static toObject(message: cs.Good, options?: $protobuf.IConversionOptions): { [k: string]: any }; +static toObject(message: cs.CSUnlockGirlReq, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Good to JSON. + * Converts this CSUnlockGirlReq to JSON. * @returns JSON object */ toJSON(): { [k: string]: any }; /** - * Gets the default type url for Good + * Gets the default type url for CSUnlockGirlReq * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a CSGetShopReq. */ - interface ICSGetShopReq { + /** Properties of a CSUnlockGirlRes. */ + interface ICSUnlockGirlRes { } - /** Represents a CSGetShopReq. */ - class CSGetShopReq implements ICSGetShopReq { + /** Represents a CSUnlockGirlRes. */ + class CSUnlockGirlRes implements ICSUnlockGirlRes { /** - * Constructs a new CSGetShopReq. + * Constructs a new CSUnlockGirlRes. * @param [properties] Properties to set */ - constructor(properties?: cs.ICSGetShopReq); + constructor(properties?: cs.ICSUnlockGirlRes); /** - * Creates a new CSGetShopReq instance using the specified properties. + * Creates a new CSUnlockGirlRes instance using the specified properties. * @param [properties] Properties to set - * @returns CSGetShopReq instance + * @returns CSUnlockGirlRes instance */ -static create(properties?: cs.ICSGetShopReq): cs.CSGetShopReq; +static create(properties?: cs.ICSUnlockGirlRes): cs.CSUnlockGirlRes; /** - * Encodes the specified CSGetShopReq message. Does not implicitly {@link cs.CSGetShopReq.verify|verify} messages. - * @param message CSGetShopReq message or plain object to encode + * Encodes the specified CSUnlockGirlRes message. Does not implicitly {@link cs.CSUnlockGirlRes.verify|verify} messages. + * @param message CSUnlockGirlRes message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ -static encode(message: cs.ICSGetShopReq, writer?: $protobuf.Writer): $protobuf.Writer; +static encode(message: cs.ICSUnlockGirlRes, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified CSGetShopReq message, length delimited. Does not implicitly {@link cs.CSGetShopReq.verify|verify} messages. - * @param message CSGetShopReq message or plain object to encode + * Encodes the specified CSUnlockGirlRes message, length delimited. Does not implicitly {@link cs.CSUnlockGirlRes.verify|verify} messages. + * @param message CSUnlockGirlRes message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ -static encodeDelimited(message: cs.ICSGetShopReq, writer?: $protobuf.Writer): $protobuf.Writer; +static encodeDelimited(message: cs.ICSUnlockGirlRes, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a CSGetShopReq message from the specified reader or buffer. + * Decodes a CSUnlockGirlRes message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns CSGetShopReq + * @returns CSUnlockGirlRes * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ -static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSGetShopReq; +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSUnlockGirlRes; /** - * Decodes a CSGetShopReq message from the specified reader or buffer, length delimited. + * Decodes a CSUnlockGirlRes message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns CSGetShopReq + * @returns CSUnlockGirlRes * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ -static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSGetShopReq; +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSUnlockGirlRes; /** - * Verifies a CSGetShopReq message. + * Verifies a CSUnlockGirlRes message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ static verify(message: { [k: string]: any }): (string|null); /** - * Creates a CSGetShopReq message from a plain object. Also converts values to their respective internal types. + * Creates a CSUnlockGirlRes message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns CSGetShopReq + * @returns CSUnlockGirlRes */ -static fromObject(object: { [k: string]: any }): cs.CSGetShopReq; +static fromObject(object: { [k: string]: any }): cs.CSUnlockGirlRes; /** - * Creates a plain object from a CSGetShopReq message. Also converts values to other types if specified. - * @param message CSGetShopReq + * Creates a plain object from a CSUnlockGirlRes message. Also converts values to other types if specified. + * @param message CSUnlockGirlRes * @param [options] Conversion options * @returns Plain object */ -static toObject(message: cs.CSGetShopReq, options?: $protobuf.IConversionOptions): { [k: string]: any }; +static toObject(message: cs.CSUnlockGirlRes, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this CSGetShopReq to JSON. + * Converts this CSUnlockGirlRes to JSON. * @returns JSON object */ toJSON(): { [k: string]: any }; /** - * Gets the default type url for CSGetShopReq + * Gets the default type url for CSUnlockGirlRes * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a CSGetShopRes. */ - interface ICSGetShopRes { - - /** CSGetShopRes Goods */ - Goods?: (cs.IGood[]|null); + /** EnmResType enum. */ + enum EnmResType { + ERT_Image = 0, + ERT_Video = 1 } - /** Represents a CSGetShopRes. */ - class CSGetShopRes implements ICSGetShopRes { + /** Properties of a CSUnlockResourceReq. */ + interface ICSUnlockResourceReq { - /** - * Constructs a new CSGetShopRes. - * @param [properties] Properties to set - */ - constructor(properties?: cs.ICSGetShopRes); - - /** CSGetShopRes Goods. */ -Goods: cs.IGood[]; - - /** - * Creates a new CSGetShopRes instance using the specified properties. - * @param [properties] Properties to set - * @returns CSGetShopRes instance - */ -static create(properties?: cs.ICSGetShopRes): cs.CSGetShopRes; - - /** - * Encodes the specified CSGetShopRes message. Does not implicitly {@link cs.CSGetShopRes.verify|verify} messages. - * @param message CSGetShopRes message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ -static encode(message: cs.ICSGetShopRes, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified CSGetShopRes message, length delimited. Does not implicitly {@link cs.CSGetShopRes.verify|verify} messages. - * @param message CSGetShopRes message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ -static encodeDelimited(message: cs.ICSGetShopRes, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a CSGetShopRes message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns CSGetShopRes - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ -static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSGetShopRes; - - /** - * Decodes a CSGetShopRes message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns CSGetShopRes - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ -static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSGetShopRes; - - /** - * Verifies a CSGetShopRes message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ -static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a CSGetShopRes message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns CSGetShopRes - */ -static fromObject(object: { [k: string]: any }): cs.CSGetShopRes; - - /** - * Creates a plain object from a CSGetShopRes message. Also converts values to other types if specified. - * @param message CSGetShopRes - * @param [options] Conversion options - * @returns Plain object - */ -static toObject(message: cs.CSGetShopRes, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this CSGetShopRes to JSON. - * @returns JSON object - */ -toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for CSGetShopRes - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ -static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a CSBuyChatReq. */ - interface ICSBuyChatReq { - - /** CSBuyChatReq girlId */ + /** CSUnlockResourceReq girlId */ girlId?: (number|null); - /** CSBuyChatReq times */ - times?: (number|null); + /** CSUnlockResourceReq resId */ + resId?: (number|null); + + /** CSUnlockResourceReq type */ + type?: (number|null); } - /** Represents a CSBuyChatReq. */ - class CSBuyChatReq implements ICSBuyChatReq { + /** Represents a CSUnlockResourceReq. */ + class CSUnlockResourceReq implements ICSUnlockResourceReq { /** - * Constructs a new CSBuyChatReq. + * Constructs a new CSUnlockResourceReq. * @param [properties] Properties to set */ - constructor(properties?: cs.ICSBuyChatReq); + constructor(properties?: cs.ICSUnlockResourceReq); - /** CSBuyChatReq girlId. */ + /** CSUnlockResourceReq girlId. */ girlId: number; - /** CSBuyChatReq times. */ -times: number; + /** CSUnlockResourceReq resId. */ +resId: number; + + /** CSUnlockResourceReq type. */ +type: number; /** - * Creates a new CSBuyChatReq instance using the specified properties. + * Creates a new CSUnlockResourceReq instance using the specified properties. * @param [properties] Properties to set - * @returns CSBuyChatReq instance + * @returns CSUnlockResourceReq instance */ -static create(properties?: cs.ICSBuyChatReq): cs.CSBuyChatReq; +static create(properties?: cs.ICSUnlockResourceReq): cs.CSUnlockResourceReq; /** - * Encodes the specified CSBuyChatReq message. Does not implicitly {@link cs.CSBuyChatReq.verify|verify} messages. - * @param message CSBuyChatReq message or plain object to encode + * Encodes the specified CSUnlockResourceReq message. Does not implicitly {@link cs.CSUnlockResourceReq.verify|verify} messages. + * @param message CSUnlockResourceReq message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ -static encode(message: cs.ICSBuyChatReq, writer?: $protobuf.Writer): $protobuf.Writer; +static encode(message: cs.ICSUnlockResourceReq, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified CSBuyChatReq message, length delimited. Does not implicitly {@link cs.CSBuyChatReq.verify|verify} messages. - * @param message CSBuyChatReq message or plain object to encode + * Encodes the specified CSUnlockResourceReq message, length delimited. Does not implicitly {@link cs.CSUnlockResourceReq.verify|verify} messages. + * @param message CSUnlockResourceReq message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ -static encodeDelimited(message: cs.ICSBuyChatReq, writer?: $protobuf.Writer): $protobuf.Writer; +static encodeDelimited(message: cs.ICSUnlockResourceReq, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a CSBuyChatReq message from the specified reader or buffer. + * Decodes a CSUnlockResourceReq message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns CSBuyChatReq + * @returns CSUnlockResourceReq * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ -static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSBuyChatReq; +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSUnlockResourceReq; /** - * Decodes a CSBuyChatReq message from the specified reader or buffer, length delimited. + * Decodes a CSUnlockResourceReq message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns CSBuyChatReq + * @returns CSUnlockResourceReq * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ -static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSBuyChatReq; +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSUnlockResourceReq; /** - * Verifies a CSBuyChatReq message. + * Verifies a CSUnlockResourceReq message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ static verify(message: { [k: string]: any }): (string|null); /** - * Creates a CSBuyChatReq message from a plain object. Also converts values to their respective internal types. + * Creates a CSUnlockResourceReq message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns CSBuyChatReq + * @returns CSUnlockResourceReq */ -static fromObject(object: { [k: string]: any }): cs.CSBuyChatReq; +static fromObject(object: { [k: string]: any }): cs.CSUnlockResourceReq; /** - * Creates a plain object from a CSBuyChatReq message. Also converts values to other types if specified. - * @param message CSBuyChatReq + * Creates a plain object from a CSUnlockResourceReq message. Also converts values to other types if specified. + * @param message CSUnlockResourceReq * @param [options] Conversion options * @returns Plain object */ -static toObject(message: cs.CSBuyChatReq, options?: $protobuf.IConversionOptions): { [k: string]: any }; +static toObject(message: cs.CSUnlockResourceReq, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this CSBuyChatReq to JSON. + * Converts this CSUnlockResourceReq to JSON. * @returns JSON object */ toJSON(): { [k: string]: any }; /** - * Gets the default type url for CSBuyChatReq + * Gets the default type url for CSUnlockResourceReq * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a CSBuyChatRes. */ - interface ICSBuyChatRes { + /** Properties of a CSUnlockResourceRes. */ + interface ICSUnlockResourceRes { } - /** Represents a CSBuyChatRes. */ - class CSBuyChatRes implements ICSBuyChatRes { + /** Represents a CSUnlockResourceRes. */ + class CSUnlockResourceRes implements ICSUnlockResourceRes { /** - * Constructs a new CSBuyChatRes. + * Constructs a new CSUnlockResourceRes. * @param [properties] Properties to set */ - constructor(properties?: cs.ICSBuyChatRes); + constructor(properties?: cs.ICSUnlockResourceRes); /** - * Creates a new CSBuyChatRes instance using the specified properties. + * Creates a new CSUnlockResourceRes instance using the specified properties. * @param [properties] Properties to set - * @returns CSBuyChatRes instance + * @returns CSUnlockResourceRes instance */ -static create(properties?: cs.ICSBuyChatRes): cs.CSBuyChatRes; +static create(properties?: cs.ICSUnlockResourceRes): cs.CSUnlockResourceRes; /** - * Encodes the specified CSBuyChatRes message. Does not implicitly {@link cs.CSBuyChatRes.verify|verify} messages. - * @param message CSBuyChatRes message or plain object to encode + * Encodes the specified CSUnlockResourceRes message. Does not implicitly {@link cs.CSUnlockResourceRes.verify|verify} messages. + * @param message CSUnlockResourceRes message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ -static encode(message: cs.ICSBuyChatRes, writer?: $protobuf.Writer): $protobuf.Writer; +static encode(message: cs.ICSUnlockResourceRes, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified CSBuyChatRes message, length delimited. Does not implicitly {@link cs.CSBuyChatRes.verify|verify} messages. - * @param message CSBuyChatRes message or plain object to encode + * Encodes the specified CSUnlockResourceRes message, length delimited. Does not implicitly {@link cs.CSUnlockResourceRes.verify|verify} messages. + * @param message CSUnlockResourceRes message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ -static encodeDelimited(message: cs.ICSBuyChatRes, writer?: $protobuf.Writer): $protobuf.Writer; +static encodeDelimited(message: cs.ICSUnlockResourceRes, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a CSBuyChatRes message from the specified reader or buffer. + * Decodes a CSUnlockResourceRes message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns CSBuyChatRes + * @returns CSUnlockResourceRes * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ -static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSBuyChatRes; +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSUnlockResourceRes; /** - * Decodes a CSBuyChatRes message from the specified reader or buffer, length delimited. + * Decodes a CSUnlockResourceRes message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns CSBuyChatRes + * @returns CSUnlockResourceRes * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ -static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSBuyChatRes; +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSUnlockResourceRes; /** - * Verifies a CSBuyChatRes message. + * Verifies a CSUnlockResourceRes message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ static verify(message: { [k: string]: any }): (string|null); /** - * Creates a CSBuyChatRes message from a plain object. Also converts values to their respective internal types. + * Creates a CSUnlockResourceRes message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns CSBuyChatRes + * @returns CSUnlockResourceRes */ -static fromObject(object: { [k: string]: any }): cs.CSBuyChatRes; +static fromObject(object: { [k: string]: any }): cs.CSUnlockResourceRes; /** - * Creates a plain object from a CSBuyChatRes message. Also converts values to other types if specified. - * @param message CSBuyChatRes + * Creates a plain object from a CSUnlockResourceRes message. Also converts values to other types if specified. + * @param message CSUnlockResourceRes * @param [options] Conversion options * @returns Plain object */ -static toObject(message: cs.CSBuyChatRes, options?: $protobuf.IConversionOptions): { [k: string]: any }; +static toObject(message: cs.CSUnlockResourceRes, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this CSBuyChatRes to JSON. + * Converts this CSUnlockResourceRes to JSON. * @returns JSON object */ toJSON(): { [k: string]: any }; /** - * Gets the default type url for CSBuyChatRes + * Gets the default type url for CSUnlockResourceRes + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a CSBuyGoodReq. */ + interface ICSBuyGoodReq { + + /** CSBuyGoodReq goodId */ + goodId?: (number|null); + + /** CSBuyGoodReq girlId */ + girlId?: (number|null); + } + + /** Represents a CSBuyGoodReq. */ + class CSBuyGoodReq implements ICSBuyGoodReq { + + /** + * Constructs a new CSBuyGoodReq. + * @param [properties] Properties to set + */ + constructor(properties?: cs.ICSBuyGoodReq); + + /** CSBuyGoodReq goodId. */ +goodId: number; + + /** CSBuyGoodReq girlId. */ +girlId: number; + + /** + * Creates a new CSBuyGoodReq instance using the specified properties. + * @param [properties] Properties to set + * @returns CSBuyGoodReq instance + */ +static create(properties?: cs.ICSBuyGoodReq): cs.CSBuyGoodReq; + + /** + * Encodes the specified CSBuyGoodReq message. Does not implicitly {@link cs.CSBuyGoodReq.verify|verify} messages. + * @param message CSBuyGoodReq message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.ICSBuyGoodReq, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CSBuyGoodReq message, length delimited. Does not implicitly {@link cs.CSBuyGoodReq.verify|verify} messages. + * @param message CSBuyGoodReq message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.ICSBuyGoodReq, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CSBuyGoodReq message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CSBuyGoodReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSBuyGoodReq; + + /** + * Decodes a CSBuyGoodReq message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CSBuyGoodReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSBuyGoodReq; + + /** + * Verifies a CSBuyGoodReq message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CSBuyGoodReq message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CSBuyGoodReq + */ +static fromObject(object: { [k: string]: any }): cs.CSBuyGoodReq; + + /** + * Creates a plain object from a CSBuyGoodReq message. Also converts values to other types if specified. + * @param message CSBuyGoodReq + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.CSBuyGoodReq, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CSBuyGoodReq to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CSBuyGoodReq + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a CSBuyGoodRes. */ + interface ICSBuyGoodRes { + } + + /** Represents a CSBuyGoodRes. */ + class CSBuyGoodRes implements ICSBuyGoodRes { + + /** + * Constructs a new CSBuyGoodRes. + * @param [properties] Properties to set + */ + constructor(properties?: cs.ICSBuyGoodRes); + + /** + * Creates a new CSBuyGoodRes instance using the specified properties. + * @param [properties] Properties to set + * @returns CSBuyGoodRes instance + */ +static create(properties?: cs.ICSBuyGoodRes): cs.CSBuyGoodRes; + + /** + * Encodes the specified CSBuyGoodRes message. Does not implicitly {@link cs.CSBuyGoodRes.verify|verify} messages. + * @param message CSBuyGoodRes message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.ICSBuyGoodRes, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CSBuyGoodRes message, length delimited. Does not implicitly {@link cs.CSBuyGoodRes.verify|verify} messages. + * @param message CSBuyGoodRes message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.ICSBuyGoodRes, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CSBuyGoodRes message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CSBuyGoodRes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSBuyGoodRes; + + /** + * Decodes a CSBuyGoodRes message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CSBuyGoodRes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSBuyGoodRes; + + /** + * Verifies a CSBuyGoodRes message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CSBuyGoodRes message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CSBuyGoodRes + */ +static fromObject(object: { [k: string]: any }): cs.CSBuyGoodRes; + + /** + * Creates a plain object from a CSBuyGoodRes message. Also converts values to other types if specified. + * @param message CSBuyGoodRes + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.CSBuyGoodRes, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CSBuyGoodRes to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CSBuyGoodRes * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ @@ -2032,8 +1621,8 @@ static getTypeUrl(typeUrlPrefix?: string): string; /** Properties of a CSCreateOrderReq. */ interface ICSCreateOrderReq { - /** CSCreateOrderReq id */ - id?: (number|null); + /** CSCreateOrderReq goodId */ + goodId?: (number|null); } /** Represents a CSCreateOrderReq. */ @@ -2045,8 +1634,8 @@ static getTypeUrl(typeUrlPrefix?: string): string; */ constructor(properties?: cs.ICSCreateOrderReq); - /** CSCreateOrderReq id. */ -id: number; + /** CSCreateOrderReq goodId. */ +goodId: number; /** * Creates a new CSCreateOrderReq instance using the specified properties. @@ -2335,8 +1924,8 @@ static getTypeUrl(typeUrlPrefix?: string): string; /** CSQueryOrderRes retCode */ retCode?: (number|null); - /** CSQueryOrderRes diamond */ - diamond?: (number|Long|null); + /** CSQueryOrderRes balance */ + balance?: (number|Long|null); /** CSQueryOrderRes vipExpire */ vipExpire?: (number|Long|null); @@ -2357,8 +1946,8 @@ status: number; /** CSQueryOrderRes retCode. */ retCode: number; - /** CSQueryOrderRes diamond. */ -diamond: (number|Long); + /** CSQueryOrderRes balance. */ +balance: (number|Long); /** CSQueryOrderRes vipExpire. */ vipExpire: (number|Long); @@ -2547,6 +2136,9 @@ static getTypeUrl(typeUrlPrefix?: string): string; /** Properties of a CSChatMsgReq. */ interface ICSChatMsgReq { + /** CSChatMsgReq girlId */ + girlId?: (number|null); + /** CSChatMsgReq msgs */ msgs?: (cs.IChatMsg[]|null); } @@ -2560,6 +2152,9 @@ static getTypeUrl(typeUrlPrefix?: string): string; */ constructor(properties?: cs.ICSChatMsgReq); + /** CSChatMsgReq girlId. */ +girlId: number; + /** CSChatMsgReq msgs. */ msgs: cs.IChatMsg[]; @@ -2643,6 +2238,12 @@ static getTypeUrl(typeUrlPrefix?: string): string; /** Properties of a CSChatMsgRes. */ interface ICSChatMsgRes { + + /** CSChatMsgRes chatRemainCount */ + chatRemainCount?: (number|null); + + /** CSChatMsgRes chatTotalCount */ + chatTotalCount?: (number|null); } /** Represents a CSChatMsgRes. */ @@ -2654,6 +2255,12 @@ static getTypeUrl(typeUrlPrefix?: string): string; */ constructor(properties?: cs.ICSChatMsgRes); + /** CSChatMsgRes chatRemainCount. */ +chatRemainCount: number; + + /** CSChatMsgRes chatTotalCount. */ +chatTotalCount: number; + /** * Creates a new CSChatMsgRes instance using the specified properties. * @param [properties] Properties to set @@ -2740,6 +2347,9 @@ static getTypeUrl(typeUrlPrefix?: string): string; /** CSGetChatMsgReq limit */ limit?: (number|null); + + /** CSGetChatMsgReq GirlId */ + GirlId?: (number|null); } /** Represents a CSGetChatMsgReq. */ @@ -2757,6 +2367,9 @@ page: number; /** CSGetChatMsgReq limit. */ limit: number; + /** CSGetChatMsgReq GirlId. */ +GirlId: number; + /** * Creates a new CSGetChatMsgReq instance using the specified properties. * @param [properties] Properties to set @@ -2840,6 +2453,12 @@ static getTypeUrl(typeUrlPrefix?: string): string; /** CSGetChatMsgRes msgs */ msgs?: (cs.IChatMsg[]|null); + + /** CSGetChatMsgRes chatRemainCount */ + chatRemainCount?: (number|null); + + /** CSGetChatMsgRes chatTotalCount */ + chatTotalCount?: (number|null); } /** Represents a CSGetChatMsgRes. */ @@ -2854,6 +2473,12 @@ static getTypeUrl(typeUrlPrefix?: string): string; /** CSGetChatMsgRes msgs. */ msgs: cs.IChatMsg[]; + /** CSGetChatMsgRes chatRemainCount. */ +chatRemainCount: number; + + /** CSGetChatMsgRes chatTotalCount. */ +chatTotalCount: number; + /** * Creates a new CSGetChatMsgRes instance using the specified properties. * @param [properties] Properties to set @@ -2932,6 +2557,2764 @@ toJSON(): { [k: string]: any }; static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of a CSGetChatRemainCountReq. */ + interface ICSGetChatRemainCountReq { + + /** CSGetChatRemainCountReq id */ + id?: (number|null); + } + + /** Represents a CSGetChatRemainCountReq. */ + class CSGetChatRemainCountReq implements ICSGetChatRemainCountReq { + + /** + * Constructs a new CSGetChatRemainCountReq. + * @param [properties] Properties to set + */ + constructor(properties?: cs.ICSGetChatRemainCountReq); + + /** CSGetChatRemainCountReq id. */ +id: number; + + /** + * Creates a new CSGetChatRemainCountReq instance using the specified properties. + * @param [properties] Properties to set + * @returns CSGetChatRemainCountReq instance + */ +static create(properties?: cs.ICSGetChatRemainCountReq): cs.CSGetChatRemainCountReq; + + /** + * Encodes the specified CSGetChatRemainCountReq message. Does not implicitly {@link cs.CSGetChatRemainCountReq.verify|verify} messages. + * @param message CSGetChatRemainCountReq message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.ICSGetChatRemainCountReq, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CSGetChatRemainCountReq message, length delimited. Does not implicitly {@link cs.CSGetChatRemainCountReq.verify|verify} messages. + * @param message CSGetChatRemainCountReq message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.ICSGetChatRemainCountReq, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CSGetChatRemainCountReq message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CSGetChatRemainCountReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSGetChatRemainCountReq; + + /** + * Decodes a CSGetChatRemainCountReq message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CSGetChatRemainCountReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSGetChatRemainCountReq; + + /** + * Verifies a CSGetChatRemainCountReq message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CSGetChatRemainCountReq message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CSGetChatRemainCountReq + */ +static fromObject(object: { [k: string]: any }): cs.CSGetChatRemainCountReq; + + /** + * Creates a plain object from a CSGetChatRemainCountReq message. Also converts values to other types if specified. + * @param message CSGetChatRemainCountReq + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.CSGetChatRemainCountReq, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CSGetChatRemainCountReq to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CSGetChatRemainCountReq + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a CSGetChatRemainCountRes. */ + interface ICSGetChatRemainCountRes { + + /** CSGetChatRemainCountRes chatRemainCount */ + chatRemainCount?: (number|null); + + /** CSGetChatRemainCountRes chatTotalCount */ + chatTotalCount?: (number|null); + } + + /** Represents a CSGetChatRemainCountRes. */ + class CSGetChatRemainCountRes implements ICSGetChatRemainCountRes { + + /** + * Constructs a new CSGetChatRemainCountRes. + * @param [properties] Properties to set + */ + constructor(properties?: cs.ICSGetChatRemainCountRes); + + /** CSGetChatRemainCountRes chatRemainCount. */ +chatRemainCount: number; + + /** CSGetChatRemainCountRes chatTotalCount. */ +chatTotalCount: number; + + /** + * Creates a new CSGetChatRemainCountRes instance using the specified properties. + * @param [properties] Properties to set + * @returns CSGetChatRemainCountRes instance + */ +static create(properties?: cs.ICSGetChatRemainCountRes): cs.CSGetChatRemainCountRes; + + /** + * Encodes the specified CSGetChatRemainCountRes message. Does not implicitly {@link cs.CSGetChatRemainCountRes.verify|verify} messages. + * @param message CSGetChatRemainCountRes message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.ICSGetChatRemainCountRes, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CSGetChatRemainCountRes message, length delimited. Does not implicitly {@link cs.CSGetChatRemainCountRes.verify|verify} messages. + * @param message CSGetChatRemainCountRes message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.ICSGetChatRemainCountRes, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CSGetChatRemainCountRes message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CSGetChatRemainCountRes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSGetChatRemainCountRes; + + /** + * Decodes a CSGetChatRemainCountRes message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CSGetChatRemainCountRes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSGetChatRemainCountRes; + + /** + * Verifies a CSGetChatRemainCountRes message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CSGetChatRemainCountRes message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CSGetChatRemainCountRes + */ +static fromObject(object: { [k: string]: any }): cs.CSGetChatRemainCountRes; + + /** + * Creates a plain object from a CSGetChatRemainCountRes message. Also converts values to other types if specified. + * @param message CSGetChatRemainCountRes + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.CSGetChatRemainCountRes, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CSGetChatRemainCountRes to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CSGetChatRemainCountRes + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a CSGetResConfigReq. */ + interface ICSGetResConfigReq { + + /** CSGetResConfigReq resName */ + resName?: (string|null); + } + + /** Represents a CSGetResConfigReq. */ + class CSGetResConfigReq implements ICSGetResConfigReq { + + /** + * Constructs a new CSGetResConfigReq. + * @param [properties] Properties to set + */ + constructor(properties?: cs.ICSGetResConfigReq); + + /** CSGetResConfigReq resName. */ +resName: string; + + /** + * Creates a new CSGetResConfigReq instance using the specified properties. + * @param [properties] Properties to set + * @returns CSGetResConfigReq instance + */ +static create(properties?: cs.ICSGetResConfigReq): cs.CSGetResConfigReq; + + /** + * Encodes the specified CSGetResConfigReq message. Does not implicitly {@link cs.CSGetResConfigReq.verify|verify} messages. + * @param message CSGetResConfigReq message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.ICSGetResConfigReq, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CSGetResConfigReq message, length delimited. Does not implicitly {@link cs.CSGetResConfigReq.verify|verify} messages. + * @param message CSGetResConfigReq message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.ICSGetResConfigReq, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CSGetResConfigReq message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CSGetResConfigReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSGetResConfigReq; + + /** + * Decodes a CSGetResConfigReq message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CSGetResConfigReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSGetResConfigReq; + + /** + * Verifies a CSGetResConfigReq message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CSGetResConfigReq message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CSGetResConfigReq + */ +static fromObject(object: { [k: string]: any }): cs.CSGetResConfigReq; + + /** + * Creates a plain object from a CSGetResConfigReq message. Also converts values to other types if specified. + * @param message CSGetResConfigReq + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.CSGetResConfigReq, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CSGetResConfigReq to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CSGetResConfigReq + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a CSGetResConfigRes. */ + interface ICSGetResConfigRes { + + /** CSGetResConfigRes data */ + data?: (string|null); + } + + /** Represents a CSGetResConfigRes. */ + class CSGetResConfigRes implements ICSGetResConfigRes { + + /** + * Constructs a new CSGetResConfigRes. + * @param [properties] Properties to set + */ + constructor(properties?: cs.ICSGetResConfigRes); + + /** CSGetResConfigRes data. */ +data: string; + + /** + * Creates a new CSGetResConfigRes instance using the specified properties. + * @param [properties] Properties to set + * @returns CSGetResConfigRes instance + */ +static create(properties?: cs.ICSGetResConfigRes): cs.CSGetResConfigRes; + + /** + * Encodes the specified CSGetResConfigRes message. Does not implicitly {@link cs.CSGetResConfigRes.verify|verify} messages. + * @param message CSGetResConfigRes message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.ICSGetResConfigRes, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CSGetResConfigRes message, length delimited. Does not implicitly {@link cs.CSGetResConfigRes.verify|verify} messages. + * @param message CSGetResConfigRes message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.ICSGetResConfigRes, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CSGetResConfigRes message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CSGetResConfigRes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSGetResConfigRes; + + /** + * Decodes a CSGetResConfigRes message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CSGetResConfigRes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSGetResConfigRes; + + /** + * Verifies a CSGetResConfigRes message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CSGetResConfigRes message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CSGetResConfigRes + */ +static fromObject(object: { [k: string]: any }): cs.CSGetResConfigRes; + + /** + * Creates a plain object from a CSGetResConfigRes message. Also converts values to other types if specified. + * @param message CSGetResConfigRes + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.CSGetResConfigRes, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CSGetResConfigRes to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CSGetResConfigRes + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a CSGetPurchaseReq. */ + interface ICSGetPurchaseReq { + } + + /** Represents a CSGetPurchaseReq. */ + class CSGetPurchaseReq implements ICSGetPurchaseReq { + + /** + * Constructs a new CSGetPurchaseReq. + * @param [properties] Properties to set + */ + constructor(properties?: cs.ICSGetPurchaseReq); + + /** + * Creates a new CSGetPurchaseReq instance using the specified properties. + * @param [properties] Properties to set + * @returns CSGetPurchaseReq instance + */ +static create(properties?: cs.ICSGetPurchaseReq): cs.CSGetPurchaseReq; + + /** + * Encodes the specified CSGetPurchaseReq message. Does not implicitly {@link cs.CSGetPurchaseReq.verify|verify} messages. + * @param message CSGetPurchaseReq message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.ICSGetPurchaseReq, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CSGetPurchaseReq message, length delimited. Does not implicitly {@link cs.CSGetPurchaseReq.verify|verify} messages. + * @param message CSGetPurchaseReq message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.ICSGetPurchaseReq, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CSGetPurchaseReq message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CSGetPurchaseReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSGetPurchaseReq; + + /** + * Decodes a CSGetPurchaseReq message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CSGetPurchaseReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSGetPurchaseReq; + + /** + * Verifies a CSGetPurchaseReq message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CSGetPurchaseReq message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CSGetPurchaseReq + */ +static fromObject(object: { [k: string]: any }): cs.CSGetPurchaseReq; + + /** + * Creates a plain object from a CSGetPurchaseReq message. Also converts values to other types if specified. + * @param message CSGetPurchaseReq + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.CSGetPurchaseReq, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CSGetPurchaseReq to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CSGetPurchaseReq + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a CSGetPurchaseRes. */ + interface ICSGetPurchaseRes { + + /** CSGetPurchaseRes items */ + items?: (cs.IPurchaseConfig[]|null); + } + + /** Represents a CSGetPurchaseRes. */ + class CSGetPurchaseRes implements ICSGetPurchaseRes { + + /** + * Constructs a new CSGetPurchaseRes. + * @param [properties] Properties to set + */ + constructor(properties?: cs.ICSGetPurchaseRes); + + /** CSGetPurchaseRes items. */ +items: cs.IPurchaseConfig[]; + + /** + * Creates a new CSGetPurchaseRes instance using the specified properties. + * @param [properties] Properties to set + * @returns CSGetPurchaseRes instance + */ +static create(properties?: cs.ICSGetPurchaseRes): cs.CSGetPurchaseRes; + + /** + * Encodes the specified CSGetPurchaseRes message. Does not implicitly {@link cs.CSGetPurchaseRes.verify|verify} messages. + * @param message CSGetPurchaseRes message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.ICSGetPurchaseRes, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CSGetPurchaseRes message, length delimited. Does not implicitly {@link cs.CSGetPurchaseRes.verify|verify} messages. + * @param message CSGetPurchaseRes message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.ICSGetPurchaseRes, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CSGetPurchaseRes message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CSGetPurchaseRes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSGetPurchaseRes; + + /** + * Decodes a CSGetPurchaseRes message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CSGetPurchaseRes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSGetPurchaseRes; + + /** + * Verifies a CSGetPurchaseRes message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CSGetPurchaseRes message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CSGetPurchaseRes + */ +static fromObject(object: { [k: string]: any }): cs.CSGetPurchaseRes; + + /** + * Creates a plain object from a CSGetPurchaseRes message. Also converts values to other types if specified. + * @param message CSGetPurchaseRes + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.CSGetPurchaseRes, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CSGetPurchaseRes to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CSGetPurchaseRes + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Category enum. */ + enum Category { + Category_mature = 0, + Category_eighteen = 1, + Category_qinfan = 2, + Category_luanlun = 3, + Category_bdsm = 4, + Category_loli = 5, + Category_upcomming = 6 + } + + /** PriceType enum. */ + enum PriceType { + PriceType_free = 0, + PriceType_first_time_free = 1, + PriceType_pay = 2 + } + + /** VideoEmotion enum. */ + enum VideoEmotion { + VideoEmotion_calm_down = 0, + VideoEmotion_arousal = 1, + VideoEmotion_desire = 2, + VideoEmotion_passion = 3, + VideoEmotion_orgasm = 4 + } + + /** Properties of an AiCharacters. */ + interface IAiCharacters { + + /** AiCharacters id */ + id?: (number|null); + + /** AiCharacters basePrompt */ + basePrompt?: (string|null); + + /** AiCharacters additionPrompt */ + additionPrompt?: (string|null); + } + + /** Represents an AiCharacters. */ + class AiCharacters implements IAiCharacters { + + /** + * Constructs a new AiCharacters. + * @param [properties] Properties to set + */ + constructor(properties?: cs.IAiCharacters); + + /** AiCharacters id. */ +id: number; + + /** AiCharacters basePrompt. */ +basePrompt: string; + + /** AiCharacters additionPrompt. */ +additionPrompt: string; + + /** + * Creates a new AiCharacters instance using the specified properties. + * @param [properties] Properties to set + * @returns AiCharacters instance + */ +static create(properties?: cs.IAiCharacters): cs.AiCharacters; + + /** + * Encodes the specified AiCharacters message. Does not implicitly {@link cs.AiCharacters.verify|verify} messages. + * @param message AiCharacters message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.IAiCharacters, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified AiCharacters message, length delimited. Does not implicitly {@link cs.AiCharacters.verify|verify} messages. + * @param message AiCharacters message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.IAiCharacters, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an AiCharacters message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns AiCharacters + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.AiCharacters; + + /** + * Decodes an AiCharacters message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns AiCharacters + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.AiCharacters; + + /** + * Verifies an AiCharacters message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an AiCharacters message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns AiCharacters + */ +static fromObject(object: { [k: string]: any }): cs.AiCharacters; + + /** + * Creates a plain object from an AiCharacters message. Also converts values to other types if specified. + * @param message AiCharacters + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.AiCharacters, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this AiCharacters to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for AiCharacters + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a Girls. */ + interface IGirls { + + /** Girls id */ + id?: (number|null); + + /** Girls nameKey */ + nameKey?: (string|null); + + /** Girls age */ + age?: (string|null); + + /** Girls category */ + category?: (cs.Category|null); + + /** Girls tagKey */ + tagKey?: (string|null); + + /** Girls priceType */ + priceType?: (cs.PriceType|null); + + /** Girls price */ + price?: (number|null); + + /** Girls vipUnlock */ + vipUnlock?: (number|null); + + /** Girls avatarPath */ + avatarPath?: (string|null); + + /** Girls listAvatarPath */ + listAvatarPath?: (string|null); + } + + /** Represents a Girls. */ + class Girls implements IGirls { + + /** + * Constructs a new Girls. + * @param [properties] Properties to set + */ + constructor(properties?: cs.IGirls); + + /** Girls id. */ +id: number; + + /** Girls nameKey. */ +nameKey: string; + + /** Girls age. */ +age: string; + + /** Girls category. */ +category: cs.Category; + + /** Girls tagKey. */ +tagKey: string; + + /** Girls priceType. */ +priceType: cs.PriceType; + + /** Girls price. */ +price: number; + + /** Girls vipUnlock. */ +vipUnlock: number; + + /** Girls avatarPath. */ +avatarPath: string; + + /** Girls listAvatarPath. */ +listAvatarPath: string; + + /** + * Creates a new Girls instance using the specified properties. + * @param [properties] Properties to set + * @returns Girls instance + */ +static create(properties?: cs.IGirls): cs.Girls; + + /** + * Encodes the specified Girls message. Does not implicitly {@link cs.Girls.verify|verify} messages. + * @param message Girls message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.IGirls, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Girls message, length delimited. Does not implicitly {@link cs.Girls.verify|verify} messages. + * @param message Girls message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.IGirls, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Girls message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Girls + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.Girls; + + /** + * Decodes a Girls message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Girls + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.Girls; + + /** + * Verifies a Girls message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a Girls message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Girls + */ +static fromObject(object: { [k: string]: any }): cs.Girls; + + /** + * Creates a plain object from a Girls message. Also converts values to other types if specified. + * @param message Girls + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.Girls, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Girls to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Girls + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a GirlsDetail. */ + interface IGirlsDetail { + + /** GirlsDetail id */ + id?: (number|null); + + /** GirlsDetail detailDesc */ + detailDesc?: (string|null); + + /** GirlsDetail commercialImages */ + commercialImages?: (cs.IPurchaseCommercialImage[]|null); + + /** GirlsDetail commercialVideos */ + commercialVideos?: (cs.IPurchaseCommercialVideo[]|null); + } + + /** Represents a GirlsDetail. */ + class GirlsDetail implements IGirlsDetail { + + /** + * Constructs a new GirlsDetail. + * @param [properties] Properties to set + */ + constructor(properties?: cs.IGirlsDetail); + + /** GirlsDetail id. */ +id: number; + + /** GirlsDetail detailDesc. */ +detailDesc: string; + + /** GirlsDetail commercialImages. */ +commercialImages: cs.IPurchaseCommercialImage[]; + + /** GirlsDetail commercialVideos. */ +commercialVideos: cs.IPurchaseCommercialVideo[]; + + /** + * Creates a new GirlsDetail instance using the specified properties. + * @param [properties] Properties to set + * @returns GirlsDetail instance + */ +static create(properties?: cs.IGirlsDetail): cs.GirlsDetail; + + /** + * Encodes the specified GirlsDetail message. Does not implicitly {@link cs.GirlsDetail.verify|verify} messages. + * @param message GirlsDetail message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.IGirlsDetail, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GirlsDetail message, length delimited. Does not implicitly {@link cs.GirlsDetail.verify|verify} messages. + * @param message GirlsDetail message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.IGirlsDetail, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GirlsDetail message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GirlsDetail + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.GirlsDetail; + + /** + * Decodes a GirlsDetail message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GirlsDetail + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.GirlsDetail; + + /** + * Verifies a GirlsDetail message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a GirlsDetail message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GirlsDetail + */ +static fromObject(object: { [k: string]: any }): cs.GirlsDetail; + + /** + * Creates a plain object from a GirlsDetail message. Also converts values to other types if specified. + * @param message GirlsDetail + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.GirlsDetail, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GirlsDetail to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for GirlsDetail + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a GlobalConfig. */ + interface IGlobalConfig { + + /** GlobalConfig ApiKey */ + ApiKey?: (string|null); + + /** GlobalConfig emotionApiKey */ + emotionApiKey?: (string|null); + + /** GlobalConfig Model */ + Model?: (string|null); + + /** GlobalConfig Temperature */ + Temperature?: (number|null); + + /** GlobalConfig MaxTokens */ + MaxTokens?: (number|null); + + /** GlobalConfig Timeout */ + Timeout?: (number|null); + + /** GlobalConfig FreeChatTimes */ + FreeChatTimes?: (number|null); + + /** GlobalConfig OnceChatAddScore */ + OnceChatAddScore?: (number|null); + + /** GlobalConfig ScoreExchangeStarLevel */ + ScoreExchangeStarLevel?: (number|null); + + /** GlobalConfig GameName */ + GameName?: (string|null); + + /** GlobalConfig EmotionRating */ + EmotionRating?: (string|null); + + /** GlobalConfig girlBasePrompt */ + girlBasePrompt?: (string|null); + } + + /** Represents a GlobalConfig. */ + class GlobalConfig implements IGlobalConfig { + + /** + * Constructs a new GlobalConfig. + * @param [properties] Properties to set + */ + constructor(properties?: cs.IGlobalConfig); + + /** GlobalConfig ApiKey. */ +ApiKey: string; + + /** GlobalConfig emotionApiKey. */ +emotionApiKey: string; + + /** GlobalConfig Model. */ +Model: string; + + /** GlobalConfig Temperature. */ +Temperature: number; + + /** GlobalConfig MaxTokens. */ +MaxTokens: number; + + /** GlobalConfig Timeout. */ +Timeout: number; + + /** GlobalConfig FreeChatTimes. */ +FreeChatTimes: number; + + /** GlobalConfig OnceChatAddScore. */ +OnceChatAddScore: number; + + /** GlobalConfig ScoreExchangeStarLevel. */ +ScoreExchangeStarLevel: number; + + /** GlobalConfig GameName. */ +GameName: string; + + /** GlobalConfig EmotionRating. */ +EmotionRating: string; + + /** GlobalConfig girlBasePrompt. */ +girlBasePrompt: string; + + /** + * Creates a new GlobalConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns GlobalConfig instance + */ +static create(properties?: cs.IGlobalConfig): cs.GlobalConfig; + + /** + * Encodes the specified GlobalConfig message. Does not implicitly {@link cs.GlobalConfig.verify|verify} messages. + * @param message GlobalConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.IGlobalConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GlobalConfig message, length delimited. Does not implicitly {@link cs.GlobalConfig.verify|verify} messages. + * @param message GlobalConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.IGlobalConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GlobalConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GlobalConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.GlobalConfig; + + /** + * Decodes a GlobalConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GlobalConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.GlobalConfig; + + /** + * Verifies a GlobalConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a GlobalConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GlobalConfig + */ +static fromObject(object: { [k: string]: any }): cs.GlobalConfig; + + /** + * Creates a plain object from a GlobalConfig message. Also converts values to other types if specified. + * @param message GlobalConfig + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.GlobalConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GlobalConfig to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for GlobalConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a Language. */ + interface ILanguage { + + /** Language key */ + key?: (string|null); + + /** Language languageEn */ + languageEn?: (string|null); + + /** Language languageCn */ + languageCn?: (string|null); + + /** Language languageHi */ + languageHi?: (string|null); + + /** Language languageFr */ + languageFr?: (string|null); + + /** Language languageDe */ + languageDe?: (string|null); + } + + /** Represents a Language. */ + class Language implements ILanguage { + + /** + * Constructs a new Language. + * @param [properties] Properties to set + */ + constructor(properties?: cs.ILanguage); + + /** Language key. */ +key: string; + + /** Language languageEn. */ +languageEn: string; + + /** Language languageCn. */ +languageCn: string; + + /** Language languageHi. */ +languageHi: string; + + /** Language languageFr. */ +languageFr: string; + + /** Language languageDe. */ +languageDe: string; + + /** + * Creates a new Language instance using the specified properties. + * @param [properties] Properties to set + * @returns Language instance + */ +static create(properties?: cs.ILanguage): cs.Language; + + /** + * Encodes the specified Language message. Does not implicitly {@link cs.Language.verify|verify} messages. + * @param message Language message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.ILanguage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Language message, length delimited. Does not implicitly {@link cs.Language.verify|verify} messages. + * @param message Language message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.ILanguage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Language message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Language + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.Language; + + /** + * Decodes a Language message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Language + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.Language; + + /** + * Verifies a Language message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a Language message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Language + */ +static fromObject(object: { [k: string]: any }): cs.Language; + + /** + * Creates a plain object from a Language message. Also converts values to other types if specified. + * @param message Language + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.Language, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Language to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Language + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a PurchaseCommercialImage. */ + interface IPurchaseCommercialImage { + + /** PurchaseCommercialImage id */ + id?: (number|null); + + /** PurchaseCommercialImage imageType */ + imageType?: (number|null); + + /** PurchaseCommercialImage unlockCounts */ + unlockCounts?: (number|null); + + /** PurchaseCommercialImage imagePrice */ + imagePrice?: (number|null); + + /** PurchaseCommercialImage path */ + path?: (string|null); + } + + /** Represents a PurchaseCommercialImage. */ + class PurchaseCommercialImage implements IPurchaseCommercialImage { + + /** + * Constructs a new PurchaseCommercialImage. + * @param [properties] Properties to set + */ + constructor(properties?: cs.IPurchaseCommercialImage); + + /** PurchaseCommercialImage id. */ +id: number; + + /** PurchaseCommercialImage imageType. */ +imageType: number; + + /** PurchaseCommercialImage unlockCounts. */ +unlockCounts: number; + + /** PurchaseCommercialImage imagePrice. */ +imagePrice: number; + + /** PurchaseCommercialImage path. */ +path: string; + + /** + * Creates a new PurchaseCommercialImage instance using the specified properties. + * @param [properties] Properties to set + * @returns PurchaseCommercialImage instance + */ +static create(properties?: cs.IPurchaseCommercialImage): cs.PurchaseCommercialImage; + + /** + * Encodes the specified PurchaseCommercialImage message. Does not implicitly {@link cs.PurchaseCommercialImage.verify|verify} messages. + * @param message PurchaseCommercialImage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.IPurchaseCommercialImage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified PurchaseCommercialImage message, length delimited. Does not implicitly {@link cs.PurchaseCommercialImage.verify|verify} messages. + * @param message PurchaseCommercialImage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.IPurchaseCommercialImage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a PurchaseCommercialImage message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PurchaseCommercialImage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.PurchaseCommercialImage; + + /** + * Decodes a PurchaseCommercialImage message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PurchaseCommercialImage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.PurchaseCommercialImage; + + /** + * Verifies a PurchaseCommercialImage message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a PurchaseCommercialImage message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PurchaseCommercialImage + */ +static fromObject(object: { [k: string]: any }): cs.PurchaseCommercialImage; + + /** + * Creates a plain object from a PurchaseCommercialImage message. Also converts values to other types if specified. + * @param message PurchaseCommercialImage + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.PurchaseCommercialImage, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this PurchaseCommercialImage to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for PurchaseCommercialImage + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a PurchaseCommercialVideo. */ + interface IPurchaseCommercialVideo { + + /** PurchaseCommercialVideo id */ + id?: (number|null); + + /** PurchaseCommercialVideo path */ + path?: (string|null); + + /** PurchaseCommercialVideo emotion */ + emotion?: (cs.VideoEmotion|null); + + /** PurchaseCommercialVideo videoPrice */ + videoPrice?: (number|null); + } + + /** Represents a PurchaseCommercialVideo. */ + class PurchaseCommercialVideo implements IPurchaseCommercialVideo { + + /** + * Constructs a new PurchaseCommercialVideo. + * @param [properties] Properties to set + */ + constructor(properties?: cs.IPurchaseCommercialVideo); + + /** PurchaseCommercialVideo id. */ +id: number; + + /** PurchaseCommercialVideo path. */ +path: string; + + /** PurchaseCommercialVideo emotion. */ +emotion: cs.VideoEmotion; + + /** PurchaseCommercialVideo videoPrice. */ +videoPrice: number; + + /** + * Creates a new PurchaseCommercialVideo instance using the specified properties. + * @param [properties] Properties to set + * @returns PurchaseCommercialVideo instance + */ +static create(properties?: cs.IPurchaseCommercialVideo): cs.PurchaseCommercialVideo; + + /** + * Encodes the specified PurchaseCommercialVideo message. Does not implicitly {@link cs.PurchaseCommercialVideo.verify|verify} messages. + * @param message PurchaseCommercialVideo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.IPurchaseCommercialVideo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified PurchaseCommercialVideo message, length delimited. Does not implicitly {@link cs.PurchaseCommercialVideo.verify|verify} messages. + * @param message PurchaseCommercialVideo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.IPurchaseCommercialVideo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a PurchaseCommercialVideo message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PurchaseCommercialVideo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.PurchaseCommercialVideo; + + /** + * Decodes a PurchaseCommercialVideo message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PurchaseCommercialVideo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.PurchaseCommercialVideo; + + /** + * Verifies a PurchaseCommercialVideo message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a PurchaseCommercialVideo message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PurchaseCommercialVideo + */ +static fromObject(object: { [k: string]: any }): cs.PurchaseCommercialVideo; + + /** + * Creates a plain object from a PurchaseCommercialVideo message. Also converts values to other types if specified. + * @param message PurchaseCommercialVideo + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.PurchaseCommercialVideo, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this PurchaseCommercialVideo to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for PurchaseCommercialVideo + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a PurchaseConfig. */ + interface IPurchaseConfig { + + /** PurchaseConfig id */ + id?: (number|null); + + /** PurchaseConfig name */ + name?: (string|null); + + /** PurchaseConfig count */ + count?: (number|null); + + /** PurchaseConfig price */ + price?: (number|null); + } + + /** Represents a PurchaseConfig. */ + class PurchaseConfig implements IPurchaseConfig { + + /** + * Constructs a new PurchaseConfig. + * @param [properties] Properties to set + */ + constructor(properties?: cs.IPurchaseConfig); + + /** PurchaseConfig id. */ +id: number; + + /** PurchaseConfig name. */ +name: string; + + /** PurchaseConfig count. */ +count: number; + + /** PurchaseConfig price. */ +price: number; + + /** + * Creates a new PurchaseConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns PurchaseConfig instance + */ +static create(properties?: cs.IPurchaseConfig): cs.PurchaseConfig; + + /** + * Encodes the specified PurchaseConfig message. Does not implicitly {@link cs.PurchaseConfig.verify|verify} messages. + * @param message PurchaseConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.IPurchaseConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified PurchaseConfig message, length delimited. Does not implicitly {@link cs.PurchaseConfig.verify|verify} messages. + * @param message PurchaseConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.IPurchaseConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a PurchaseConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PurchaseConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.PurchaseConfig; + + /** + * Decodes a PurchaseConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PurchaseConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.PurchaseConfig; + + /** + * Verifies a PurchaseConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a PurchaseConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PurchaseConfig + */ +static fromObject(object: { [k: string]: any }): cs.PurchaseConfig; + + /** + * Creates a plain object from a PurchaseConfig message. Also converts values to other types if specified. + * @param message PurchaseConfig + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.PurchaseConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this PurchaseConfig to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for PurchaseConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a Themes. */ + interface IThemes { + + /** Themes id */ + id?: (number|null); + + /** Themes key */ + key?: (string|null); + + /** Themes name */ + name?: (string|null); + + /** Themes category */ + category?: (cs.Category|null); + + /** Themes isRelease */ + isRelease?: (boolean|null); + + /** Themes path */ + path?: (string|null); + } + + /** Represents a Themes. */ + class Themes implements IThemes { + + /** + * Constructs a new Themes. + * @param [properties] Properties to set + */ + constructor(properties?: cs.IThemes); + + /** Themes id. */ +id: number; + + /** Themes key. */ +key: string; + + /** Themes name. */ +name: string; + + /** Themes category. */ +category: cs.Category; + + /** Themes isRelease. */ +isRelease: boolean; + + /** Themes path. */ +path: string; + + /** + * Creates a new Themes instance using the specified properties. + * @param [properties] Properties to set + * @returns Themes instance + */ +static create(properties?: cs.IThemes): cs.Themes; + + /** + * Encodes the specified Themes message. Does not implicitly {@link cs.Themes.verify|verify} messages. + * @param message Themes message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.IThemes, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Themes message, length delimited. Does not implicitly {@link cs.Themes.verify|verify} messages. + * @param message Themes message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.IThemes, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Themes message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Themes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.Themes; + + /** + * Decodes a Themes message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Themes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.Themes; + + /** + * Verifies a Themes message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a Themes message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Themes + */ +static fromObject(object: { [k: string]: any }): cs.Themes; + + /** + * Creates a plain object from a Themes message. Also converts values to other types if specified. + * @param message Themes + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.Themes, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Themes to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Themes + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a vector2. */ + interface Ivector2 { + + /** vector2 x */ + x?: (number|null); + + /** vector2 y */ + y?: (number|null); + } + + /** Represents a vector2. */ + class vector2 implements Ivector2 { + + /** + * Constructs a new vector2. + * @param [properties] Properties to set + */ + constructor(properties?: cs.Ivector2); + + /** vector2 x. */ +x: number; + + /** vector2 y. */ +y: number; + + /** + * Creates a new vector2 instance using the specified properties. + * @param [properties] Properties to set + * @returns vector2 instance + */ +static create(properties?: cs.Ivector2): cs.vector2; + + /** + * Encodes the specified vector2 message. Does not implicitly {@link cs.vector2.verify|verify} messages. + * @param message vector2 message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.Ivector2, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified vector2 message, length delimited. Does not implicitly {@link cs.vector2.verify|verify} messages. + * @param message vector2 message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.Ivector2, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a vector2 message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns vector2 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.vector2; + + /** + * Decodes a vector2 message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns vector2 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.vector2; + + /** + * Verifies a vector2 message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a vector2 message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns vector2 + */ +static fromObject(object: { [k: string]: any }): cs.vector2; + + /** + * Creates a plain object from a vector2 message. Also converts values to other types if specified. + * @param message vector2 + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.vector2, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this vector2 to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for vector2 + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a vector3. */ + interface Ivector3 { + + /** vector3 x */ + x?: (number|null); + + /** vector3 y */ + y?: (number|null); + + /** vector3 z */ + z?: (number|null); + } + + /** Represents a vector3. */ + class vector3 implements Ivector3 { + + /** + * Constructs a new vector3. + * @param [properties] Properties to set + */ + constructor(properties?: cs.Ivector3); + + /** vector3 x. */ +x: number; + + /** vector3 y. */ +y: number; + + /** vector3 z. */ +z: number; + + /** + * Creates a new vector3 instance using the specified properties. + * @param [properties] Properties to set + * @returns vector3 instance + */ +static create(properties?: cs.Ivector3): cs.vector3; + + /** + * Encodes the specified vector3 message. Does not implicitly {@link cs.vector3.verify|verify} messages. + * @param message vector3 message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.Ivector3, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified vector3 message, length delimited. Does not implicitly {@link cs.vector3.verify|verify} messages. + * @param message vector3 message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.Ivector3, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a vector3 message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns vector3 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.vector3; + + /** + * Decodes a vector3 message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns vector3 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.vector3; + + /** + * Verifies a vector3 message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a vector3 message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns vector3 + */ +static fromObject(object: { [k: string]: any }): cs.vector3; + + /** + * Creates a plain object from a vector3 message. Also converts values to other types if specified. + * @param message vector3 + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.vector3, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this vector3 to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for vector3 + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a vector4. */ + interface Ivector4 { + + /** vector4 x */ + x?: (number|null); + + /** vector4 y */ + y?: (number|null); + + /** vector4 z */ + z?: (number|null); + + /** vector4 w */ + w?: (number|null); + } + + /** Represents a vector4. */ + class vector4 implements Ivector4 { + + /** + * Constructs a new vector4. + * @param [properties] Properties to set + */ + constructor(properties?: cs.Ivector4); + + /** vector4 x. */ +x: number; + + /** vector4 y. */ +y: number; + + /** vector4 z. */ +z: number; + + /** vector4 w. */ +w: number; + + /** + * Creates a new vector4 instance using the specified properties. + * @param [properties] Properties to set + * @returns vector4 instance + */ +static create(properties?: cs.Ivector4): cs.vector4; + + /** + * Encodes the specified vector4 message. Does not implicitly {@link cs.vector4.verify|verify} messages. + * @param message vector4 message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.Ivector4, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified vector4 message, length delimited. Does not implicitly {@link cs.vector4.verify|verify} messages. + * @param message vector4 message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.Ivector4, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a vector4 message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns vector4 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.vector4; + + /** + * Decodes a vector4 message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns vector4 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.vector4; + + /** + * Verifies a vector4 message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a vector4 message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns vector4 + */ +static fromObject(object: { [k: string]: any }): cs.vector4; + + /** + * Creates a plain object from a vector4 message. Also converts values to other types if specified. + * @param message vector4 + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.vector4, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this vector4 to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for vector4 + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a TbLanguage. */ + interface ITbLanguage { + + /** TbLanguage items */ + items?: (cs.ILanguage[]|null); + } + + /** Represents a TbLanguage. */ + class TbLanguage implements ITbLanguage { + + /** + * Constructs a new TbLanguage. + * @param [properties] Properties to set + */ + constructor(properties?: cs.ITbLanguage); + + /** TbLanguage items. */ +items: cs.ILanguage[]; + + /** + * Creates a new TbLanguage instance using the specified properties. + * @param [properties] Properties to set + * @returns TbLanguage instance + */ +static create(properties?: cs.ITbLanguage): cs.TbLanguage; + + /** + * Encodes the specified TbLanguage message. Does not implicitly {@link cs.TbLanguage.verify|verify} messages. + * @param message TbLanguage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.ITbLanguage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified TbLanguage message, length delimited. Does not implicitly {@link cs.TbLanguage.verify|verify} messages. + * @param message TbLanguage message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.ITbLanguage, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a TbLanguage message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns TbLanguage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.TbLanguage; + + /** + * Decodes a TbLanguage message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns TbLanguage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.TbLanguage; + + /** + * Verifies a TbLanguage message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a TbLanguage message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns TbLanguage + */ +static fromObject(object: { [k: string]: any }): cs.TbLanguage; + + /** + * Creates a plain object from a TbLanguage message. Also converts values to other types if specified. + * @param message TbLanguage + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.TbLanguage, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this TbLanguage to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for TbLanguage + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a TbGirls. */ + interface ITbGirls { + + /** TbGirls items */ + items?: (cs.IGirls[]|null); + } + + /** Represents a TbGirls. */ + class TbGirls implements ITbGirls { + + /** + * Constructs a new TbGirls. + * @param [properties] Properties to set + */ + constructor(properties?: cs.ITbGirls); + + /** TbGirls items. */ +items: cs.IGirls[]; + + /** + * Creates a new TbGirls instance using the specified properties. + * @param [properties] Properties to set + * @returns TbGirls instance + */ +static create(properties?: cs.ITbGirls): cs.TbGirls; + + /** + * Encodes the specified TbGirls message. Does not implicitly {@link cs.TbGirls.verify|verify} messages. + * @param message TbGirls message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.ITbGirls, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified TbGirls message, length delimited. Does not implicitly {@link cs.TbGirls.verify|verify} messages. + * @param message TbGirls message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.ITbGirls, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a TbGirls message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns TbGirls + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.TbGirls; + + /** + * Decodes a TbGirls message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns TbGirls + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.TbGirls; + + /** + * Verifies a TbGirls message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a TbGirls message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns TbGirls + */ +static fromObject(object: { [k: string]: any }): cs.TbGirls; + + /** + * Creates a plain object from a TbGirls message. Also converts values to other types if specified. + * @param message TbGirls + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.TbGirls, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this TbGirls to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for TbGirls + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a TbGirlsDetail. */ + interface ITbGirlsDetail { + + /** TbGirlsDetail items */ + items?: (cs.IGirlsDetail[]|null); + } + + /** Represents a TbGirlsDetail. */ + class TbGirlsDetail implements ITbGirlsDetail { + + /** + * Constructs a new TbGirlsDetail. + * @param [properties] Properties to set + */ + constructor(properties?: cs.ITbGirlsDetail); + + /** TbGirlsDetail items. */ +items: cs.IGirlsDetail[]; + + /** + * Creates a new TbGirlsDetail instance using the specified properties. + * @param [properties] Properties to set + * @returns TbGirlsDetail instance + */ +static create(properties?: cs.ITbGirlsDetail): cs.TbGirlsDetail; + + /** + * Encodes the specified TbGirlsDetail message. Does not implicitly {@link cs.TbGirlsDetail.verify|verify} messages. + * @param message TbGirlsDetail message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.ITbGirlsDetail, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified TbGirlsDetail message, length delimited. Does not implicitly {@link cs.TbGirlsDetail.verify|verify} messages. + * @param message TbGirlsDetail message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.ITbGirlsDetail, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a TbGirlsDetail message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns TbGirlsDetail + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.TbGirlsDetail; + + /** + * Decodes a TbGirlsDetail message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns TbGirlsDetail + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.TbGirlsDetail; + + /** + * Verifies a TbGirlsDetail message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a TbGirlsDetail message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns TbGirlsDetail + */ +static fromObject(object: { [k: string]: any }): cs.TbGirlsDetail; + + /** + * Creates a plain object from a TbGirlsDetail message. Also converts values to other types if specified. + * @param message TbGirlsDetail + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.TbGirlsDetail, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this TbGirlsDetail to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for TbGirlsDetail + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a TbThemes. */ + interface ITbThemes { + + /** TbThemes items */ + items?: (cs.IThemes[]|null); + } + + /** Represents a TbThemes. */ + class TbThemes implements ITbThemes { + + /** + * Constructs a new TbThemes. + * @param [properties] Properties to set + */ + constructor(properties?: cs.ITbThemes); + + /** TbThemes items. */ +items: cs.IThemes[]; + + /** + * Creates a new TbThemes instance using the specified properties. + * @param [properties] Properties to set + * @returns TbThemes instance + */ +static create(properties?: cs.ITbThemes): cs.TbThemes; + + /** + * Encodes the specified TbThemes message. Does not implicitly {@link cs.TbThemes.verify|verify} messages. + * @param message TbThemes message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.ITbThemes, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified TbThemes message, length delimited. Does not implicitly {@link cs.TbThemes.verify|verify} messages. + * @param message TbThemes message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.ITbThemes, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a TbThemes message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns TbThemes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.TbThemes; + + /** + * Decodes a TbThemes message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns TbThemes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.TbThemes; + + /** + * Verifies a TbThemes message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a TbThemes message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns TbThemes + */ +static fromObject(object: { [k: string]: any }): cs.TbThemes; + + /** + * Creates a plain object from a TbThemes message. Also converts values to other types if specified. + * @param message TbThemes + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.TbThemes, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this TbThemes to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for TbThemes + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a TbAiCharacters. */ + interface ITbAiCharacters { + + /** TbAiCharacters items */ + items?: (cs.IAiCharacters[]|null); + } + + /** Represents a TbAiCharacters. */ + class TbAiCharacters implements ITbAiCharacters { + + /** + * Constructs a new TbAiCharacters. + * @param [properties] Properties to set + */ + constructor(properties?: cs.ITbAiCharacters); + + /** TbAiCharacters items. */ +items: cs.IAiCharacters[]; + + /** + * Creates a new TbAiCharacters instance using the specified properties. + * @param [properties] Properties to set + * @returns TbAiCharacters instance + */ +static create(properties?: cs.ITbAiCharacters): cs.TbAiCharacters; + + /** + * Encodes the specified TbAiCharacters message. Does not implicitly {@link cs.TbAiCharacters.verify|verify} messages. + * @param message TbAiCharacters message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.ITbAiCharacters, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified TbAiCharacters message, length delimited. Does not implicitly {@link cs.TbAiCharacters.verify|verify} messages. + * @param message TbAiCharacters message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.ITbAiCharacters, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a TbAiCharacters message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns TbAiCharacters + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.TbAiCharacters; + + /** + * Decodes a TbAiCharacters message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns TbAiCharacters + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.TbAiCharacters; + + /** + * Verifies a TbAiCharacters message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a TbAiCharacters message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns TbAiCharacters + */ +static fromObject(object: { [k: string]: any }): cs.TbAiCharacters; + + /** + * Creates a plain object from a TbAiCharacters message. Also converts values to other types if specified. + * @param message TbAiCharacters + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.TbAiCharacters, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this TbAiCharacters to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for TbAiCharacters + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a TbGlobalConfig. */ + interface ITbGlobalConfig { + + /** TbGlobalConfig items */ + items?: (cs.IGlobalConfig[]|null); + } + + /** Represents a TbGlobalConfig. */ + class TbGlobalConfig implements ITbGlobalConfig { + + /** + * Constructs a new TbGlobalConfig. + * @param [properties] Properties to set + */ + constructor(properties?: cs.ITbGlobalConfig); + + /** TbGlobalConfig items. */ +items: cs.IGlobalConfig[]; + + /** + * Creates a new TbGlobalConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns TbGlobalConfig instance + */ +static create(properties?: cs.ITbGlobalConfig): cs.TbGlobalConfig; + + /** + * Encodes the specified TbGlobalConfig message. Does not implicitly {@link cs.TbGlobalConfig.verify|verify} messages. + * @param message TbGlobalConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.ITbGlobalConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified TbGlobalConfig message, length delimited. Does not implicitly {@link cs.TbGlobalConfig.verify|verify} messages. + * @param message TbGlobalConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.ITbGlobalConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a TbGlobalConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns TbGlobalConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.TbGlobalConfig; + + /** + * Decodes a TbGlobalConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns TbGlobalConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.TbGlobalConfig; + + /** + * Verifies a TbGlobalConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a TbGlobalConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns TbGlobalConfig + */ +static fromObject(object: { [k: string]: any }): cs.TbGlobalConfig; + + /** + * Creates a plain object from a TbGlobalConfig message. Also converts values to other types if specified. + * @param message TbGlobalConfig + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.TbGlobalConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this TbGlobalConfig to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for TbGlobalConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a TbPurchaseConfig. */ + interface ITbPurchaseConfig { + + /** TbPurchaseConfig items */ + items?: (cs.IPurchaseConfig[]|null); + } + + /** Represents a TbPurchaseConfig. */ + class TbPurchaseConfig implements ITbPurchaseConfig { + + /** + * Constructs a new TbPurchaseConfig. + * @param [properties] Properties to set + */ + constructor(properties?: cs.ITbPurchaseConfig); + + /** TbPurchaseConfig items. */ +items: cs.IPurchaseConfig[]; + + /** + * Creates a new TbPurchaseConfig instance using the specified properties. + * @param [properties] Properties to set + * @returns TbPurchaseConfig instance + */ +static create(properties?: cs.ITbPurchaseConfig): cs.TbPurchaseConfig; + + /** + * Encodes the specified TbPurchaseConfig message. Does not implicitly {@link cs.TbPurchaseConfig.verify|verify} messages. + * @param message TbPurchaseConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encode(message: cs.ITbPurchaseConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified TbPurchaseConfig message, length delimited. Does not implicitly {@link cs.TbPurchaseConfig.verify|verify} messages. + * @param message TbPurchaseConfig message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ +static encodeDelimited(message: cs.ITbPurchaseConfig, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a TbPurchaseConfig message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns TbPurchaseConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.TbPurchaseConfig; + + /** + * Decodes a TbPurchaseConfig message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns TbPurchaseConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ +static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.TbPurchaseConfig; + + /** + * Verifies a TbPurchaseConfig message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ +static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a TbPurchaseConfig message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns TbPurchaseConfig + */ +static fromObject(object: { [k: string]: any }): cs.TbPurchaseConfig; + + /** + * Creates a plain object from a TbPurchaseConfig message. Also converts values to other types if specified. + * @param message TbPurchaseConfig + * @param [options] Conversion options + * @returns Plain object + */ +static toObject(message: cs.TbPurchaseConfig, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this TbPurchaseConfig to JSON. + * @returns JSON object + */ +toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for TbPurchaseConfig + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ +static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of a CSLoginReq. */ interface ICSLoginReq { @@ -3061,6 +5444,12 @@ static getTypeUrl(typeUrlPrefix?: string): string; /** CSLoginRes expire */ expire?: (number|Long|null); + + /** CSLoginRes accId */ + accId?: (string|null); + + /** CSLoginRes cdn */ + cdn?: (string|null); } /** Represents a CSLoginRes. */ @@ -3084,6 +5473,12 @@ refreshToken: string; /** CSLoginRes expire. */ expire: (number|Long); + /** CSLoginRes accId. */ +accId: string; + + /** CSLoginRes cdn. */ +cdn: string; + /** * Creates a new CSLoginRes instance using the specified properties. * @param [properties] Properties to set @@ -3256,8 +5651,8 @@ static getTypeUrl(typeUrlPrefix?: string): string; /** Properties of a CSMyInfoRes. */ interface ICSMyInfoRes { - /** CSMyInfoRes diamond */ - diamond?: (number|Long|null); + /** CSMyInfoRes balance */ + balance?: (number|Long|null); /** CSMyInfoRes vipExpire */ vipExpire?: (number|Long|null); @@ -3272,8 +5667,8 @@ static getTypeUrl(typeUrlPrefix?: string): string; */ constructor(properties?: cs.ICSMyInfoRes); - /** CSMyInfoRes diamond. */ -diamond: (number|Long); + /** CSMyInfoRes balance. */ +balance: (number|Long); /** CSMyInfoRes vipExpire. */ vipExpire: (number|Long); diff --git a/assets/Scripts/proto/proto.pb.js b/assets/Scripts/proto/proto.pb.js index 31b91b5d..28ba57aa 100644 --- a/assets/Scripts/proto/proto.pb.js +++ b/assets/Scripts/proto/proto.pb.js @@ -18,1605 +18,6 @@ $root.cs = (function() { */ var cs = {}; - cs.GirlBrief = (function() { - - /** - * Properties of a GirlBrief. - * @memberof cs - * @interface IGirlBrief - * @property {number|null} [id] GirlBrief id - * @property {string|null} [name] GirlBrief name - * @property {number|null} [age] GirlBrief age - * @property {string|null} [tagKey] GirlBrief tagKey - * @property {number|null} [priceType] GirlBrief priceType - * @property {number|Long|null} [price] GirlBrief price - * @property {string|null} [avatar] GirlBrief avatar - * @property {number|null} [star] GirlBrief star - * @property {number|null} [category] GirlBrief category - * @property {string|null} [listAvatarPath] GirlBrief listAvatarPath - */ - - /** - * Constructs a new GirlBrief. - * @memberof cs - * @classdesc Represents a GirlBrief. - * @implements IGirlBrief - * @constructor - * @param {cs.IGirlBrief=} [properties] Properties to set - */ - function GirlBrief(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * GirlBrief id. - * @member {number} id - * @memberof cs.GirlBrief - * @instance - */ - GirlBrief.prototype.id = 0; - - /** - * GirlBrief name. - * @member {string} name - * @memberof cs.GirlBrief - * @instance - */ - GirlBrief.prototype.name = ""; - - /** - * GirlBrief age. - * @member {number} age - * @memberof cs.GirlBrief - * @instance - */ - GirlBrief.prototype.age = 0; - - /** - * GirlBrief tagKey. - * @member {string} tagKey - * @memberof cs.GirlBrief - * @instance - */ - GirlBrief.prototype.tagKey = ""; - - /** - * GirlBrief priceType. - * @member {number} priceType - * @memberof cs.GirlBrief - * @instance - */ - GirlBrief.prototype.priceType = 0; - - /** - * GirlBrief price. - * @member {number|Long} price - * @memberof cs.GirlBrief - * @instance - */ - GirlBrief.prototype.price = $util.Long ? $util.Long.fromBits(0,0,false) : 0; - - /** - * GirlBrief avatar. - * @member {string} avatar - * @memberof cs.GirlBrief - * @instance - */ - GirlBrief.prototype.avatar = ""; - - /** - * GirlBrief star. - * @member {number} star - * @memberof cs.GirlBrief - * @instance - */ - GirlBrief.prototype.star = 0; - - /** - * GirlBrief category. - * @member {number} category - * @memberof cs.GirlBrief - * @instance - */ - GirlBrief.prototype.category = 0; - - /** - * GirlBrief listAvatarPath. - * @member {string} listAvatarPath - * @memberof cs.GirlBrief - * @instance - */ - GirlBrief.prototype.listAvatarPath = ""; - - /** - * Creates a new GirlBrief instance using the specified properties. - * @function create - * @memberof cs.GirlBrief - * @static - * @param {cs.IGirlBrief=} [properties] Properties to set - * @returns {cs.GirlBrief} GirlBrief instance - */ - GirlBrief.create = function create(properties) { - return new GirlBrief(properties); - }; - - /** - * Encodes the specified GirlBrief message. Does not implicitly {@link cs.GirlBrief.verify|verify} messages. - * @function encode - * @memberof cs.GirlBrief - * @static - * @param {cs.IGirlBrief} message GirlBrief message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GirlBrief.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.id != null && Object.hasOwnProperty.call(message, "id")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.name); - if (message.age != null && Object.hasOwnProperty.call(message, "age")) - writer.uint32(/* id 3, wireType 0 =*/24).int32(message.age); - if (message.tagKey != null && Object.hasOwnProperty.call(message, "tagKey")) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.tagKey); - if (message.priceType != null && Object.hasOwnProperty.call(message, "priceType")) - writer.uint32(/* id 5, wireType 0 =*/40).int32(message.priceType); - if (message.price != null && Object.hasOwnProperty.call(message, "price")) - writer.uint32(/* id 6, wireType 0 =*/48).int64(message.price); - if (message.avatar != null && Object.hasOwnProperty.call(message, "avatar")) - writer.uint32(/* id 7, wireType 2 =*/58).string(message.avatar); - if (message.star != null && Object.hasOwnProperty.call(message, "star")) - writer.uint32(/* id 8, wireType 0 =*/64).int32(message.star); - if (message.category != null && Object.hasOwnProperty.call(message, "category")) - writer.uint32(/* id 9, wireType 0 =*/72).int32(message.category); - if (message.listAvatarPath != null && Object.hasOwnProperty.call(message, "listAvatarPath")) - writer.uint32(/* id 10, wireType 2 =*/82).string(message.listAvatarPath); - return writer; - }; - - /** - * Encodes the specified GirlBrief message, length delimited. Does not implicitly {@link cs.GirlBrief.verify|verify} messages. - * @function encodeDelimited - * @memberof cs.GirlBrief - * @static - * @param {cs.IGirlBrief} message GirlBrief message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GirlBrief.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a GirlBrief message from the specified reader or buffer. - * @function decode - * @memberof cs.GirlBrief - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {cs.GirlBrief} GirlBrief - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GirlBrief.decode = function decode(reader, length, error) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.GirlBrief(); - while (reader.pos < end) { - var tag = reader.uint32(); - if (tag === error) - break; - switch (tag >>> 3) { - case 1: { - message.id = reader.int32(); - break; - } - case 2: { - message.name = reader.string(); - break; - } - case 3: { - message.age = reader.int32(); - break; - } - case 4: { - message.tagKey = reader.string(); - break; - } - case 5: { - message.priceType = reader.int32(); - break; - } - case 6: { - message.price = reader.int64(); - break; - } - case 7: { - message.avatar = reader.string(); - break; - } - case 8: { - message.star = reader.int32(); - break; - } - case 9: { - message.category = reader.int32(); - break; - } - case 10: { - message.listAvatarPath = reader.string(); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a GirlBrief message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof cs.GirlBrief - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {cs.GirlBrief} GirlBrief - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GirlBrief.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a GirlBrief message. - * @function verify - * @memberof cs.GirlBrief - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - GirlBrief.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.id != null && message.hasOwnProperty("id")) - if (!$util.isInteger(message.id)) - return "id: integer expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.age != null && message.hasOwnProperty("age")) - if (!$util.isInteger(message.age)) - return "age: integer expected"; - if (message.tagKey != null && message.hasOwnProperty("tagKey")) - if (!$util.isString(message.tagKey)) - return "tagKey: string expected"; - if (message.priceType != null && message.hasOwnProperty("priceType")) - if (!$util.isInteger(message.priceType)) - return "priceType: integer expected"; - if (message.price != null && message.hasOwnProperty("price")) - if (!$util.isInteger(message.price) && !(message.price && $util.isInteger(message.price.low) && $util.isInteger(message.price.high))) - return "price: integer|Long expected"; - if (message.avatar != null && message.hasOwnProperty("avatar")) - if (!$util.isString(message.avatar)) - return "avatar: string expected"; - if (message.star != null && message.hasOwnProperty("star")) - if (!$util.isInteger(message.star)) - return "star: integer expected"; - if (message.category != null && message.hasOwnProperty("category")) - if (!$util.isInteger(message.category)) - return "category: integer expected"; - if (message.listAvatarPath != null && message.hasOwnProperty("listAvatarPath")) - if (!$util.isString(message.listAvatarPath)) - return "listAvatarPath: string expected"; - return null; - }; - - /** - * Creates a GirlBrief message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof cs.GirlBrief - * @static - * @param {Object.} object Plain object - * @returns {cs.GirlBrief} GirlBrief - */ - GirlBrief.fromObject = function fromObject(object) { - if (object instanceof $root.cs.GirlBrief) - return object; - var message = new $root.cs.GirlBrief(); - if (object.id != null) - message.id = object.id | 0; - if (object.name != null) - message.name = String(object.name); - if (object.age != null) - message.age = object.age | 0; - if (object.tagKey != null) - message.tagKey = String(object.tagKey); - if (object.priceType != null) - message.priceType = object.priceType | 0; - if (object.price != null) - if ($util.Long) - (message.price = $util.Long.fromValue(object.price)).unsigned = false; - else if (typeof object.price === "string") - message.price = parseInt(object.price, 10); - else if (typeof object.price === "number") - message.price = object.price; - else if (typeof object.price === "object") - message.price = new $util.LongBits(object.price.low >>> 0, object.price.high >>> 0).toNumber(); - if (object.avatar != null) - message.avatar = String(object.avatar); - if (object.star != null) - message.star = object.star | 0; - if (object.category != null) - message.category = object.category | 0; - if (object.listAvatarPath != null) - message.listAvatarPath = String(object.listAvatarPath); - return message; - }; - - /** - * Creates a plain object from a GirlBrief message. Also converts values to other types if specified. - * @function toObject - * @memberof cs.GirlBrief - * @static - * @param {cs.GirlBrief} message GirlBrief - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - GirlBrief.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.id = 0; - object.name = ""; - object.age = 0; - object.tagKey = ""; - object.priceType = 0; - if ($util.Long) { - var long = new $util.Long(0, 0, false); - object.price = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.price = options.longs === String ? "0" : 0; - object.avatar = ""; - object.star = 0; - object.category = 0; - object.listAvatarPath = ""; - } - if (message.id != null && message.hasOwnProperty("id")) - object.id = message.id; - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.age != null && message.hasOwnProperty("age")) - object.age = message.age; - if (message.tagKey != null && message.hasOwnProperty("tagKey")) - object.tagKey = message.tagKey; - if (message.priceType != null && message.hasOwnProperty("priceType")) - object.priceType = message.priceType; - if (message.price != null && message.hasOwnProperty("price")) - if (typeof message.price === "number") - object.price = options.longs === String ? String(message.price) : message.price; - else - object.price = options.longs === String ? $util.Long.prototype.toString.call(message.price) : options.longs === Number ? new $util.LongBits(message.price.low >>> 0, message.price.high >>> 0).toNumber() : message.price; - if (message.avatar != null && message.hasOwnProperty("avatar")) - object.avatar = message.avatar; - if (message.star != null && message.hasOwnProperty("star")) - object.star = message.star; - if (message.category != null && message.hasOwnProperty("category")) - object.category = message.category; - if (message.listAvatarPath != null && message.hasOwnProperty("listAvatarPath")) - object.listAvatarPath = message.listAvatarPath; - return object; - }; - - /** - * Converts this GirlBrief to JSON. - * @function toJSON - * @memberof cs.GirlBrief - * @instance - * @returns {Object.} JSON object - */ - GirlBrief.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - /** - * Gets the default type url for GirlBrief - * @function getTypeUrl - * @memberof cs.GirlBrief - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - GirlBrief.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/cs.GirlBrief"; - }; - - return GirlBrief; - })(); - - cs.GirlPhoto = (function() { - - /** - * Properties of a GirlPhoto. - * @memberof cs - * @interface IGirlPhoto - * @property {string|null} [pic] GirlPhoto pic - * @property {boolean|null} [isRelease] GirlPhoto isRelease - * @property {number|null} [price] GirlPhoto price - */ - - /** - * Constructs a new GirlPhoto. - * @memberof cs - * @classdesc Represents a GirlPhoto. - * @implements IGirlPhoto - * @constructor - * @param {cs.IGirlPhoto=} [properties] Properties to set - */ - function GirlPhoto(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * GirlPhoto pic. - * @member {string} pic - * @memberof cs.GirlPhoto - * @instance - */ - GirlPhoto.prototype.pic = ""; - - /** - * GirlPhoto isRelease. - * @member {boolean} isRelease - * @memberof cs.GirlPhoto - * @instance - */ - GirlPhoto.prototype.isRelease = false; - - /** - * GirlPhoto price. - * @member {number} price - * @memberof cs.GirlPhoto - * @instance - */ - GirlPhoto.prototype.price = 0; - - /** - * Creates a new GirlPhoto instance using the specified properties. - * @function create - * @memberof cs.GirlPhoto - * @static - * @param {cs.IGirlPhoto=} [properties] Properties to set - * @returns {cs.GirlPhoto} GirlPhoto instance - */ - GirlPhoto.create = function create(properties) { - return new GirlPhoto(properties); - }; - - /** - * Encodes the specified GirlPhoto message. Does not implicitly {@link cs.GirlPhoto.verify|verify} messages. - * @function encode - * @memberof cs.GirlPhoto - * @static - * @param {cs.IGirlPhoto} message GirlPhoto message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GirlPhoto.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.pic != null && Object.hasOwnProperty.call(message, "pic")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.pic); - if (message.isRelease != null && Object.hasOwnProperty.call(message, "isRelease")) - writer.uint32(/* id 2, wireType 0 =*/16).bool(message.isRelease); - if (message.price != null && Object.hasOwnProperty.call(message, "price")) - writer.uint32(/* id 3, wireType 0 =*/24).int32(message.price); - return writer; - }; - - /** - * Encodes the specified GirlPhoto message, length delimited. Does not implicitly {@link cs.GirlPhoto.verify|verify} messages. - * @function encodeDelimited - * @memberof cs.GirlPhoto - * @static - * @param {cs.IGirlPhoto} message GirlPhoto message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GirlPhoto.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a GirlPhoto message from the specified reader or buffer. - * @function decode - * @memberof cs.GirlPhoto - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {cs.GirlPhoto} GirlPhoto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GirlPhoto.decode = function decode(reader, length, error) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.GirlPhoto(); - while (reader.pos < end) { - var tag = reader.uint32(); - if (tag === error) - break; - switch (tag >>> 3) { - case 1: { - message.pic = reader.string(); - break; - } - case 2: { - message.isRelease = reader.bool(); - break; - } - case 3: { - message.price = reader.int32(); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a GirlPhoto message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof cs.GirlPhoto - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {cs.GirlPhoto} GirlPhoto - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GirlPhoto.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a GirlPhoto message. - * @function verify - * @memberof cs.GirlPhoto - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - GirlPhoto.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.pic != null && message.hasOwnProperty("pic")) - if (!$util.isString(message.pic)) - return "pic: string expected"; - if (message.isRelease != null && message.hasOwnProperty("isRelease")) - if (typeof message.isRelease !== "boolean") - return "isRelease: boolean expected"; - if (message.price != null && message.hasOwnProperty("price")) - if (!$util.isInteger(message.price)) - return "price: integer expected"; - return null; - }; - - /** - * Creates a GirlPhoto message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof cs.GirlPhoto - * @static - * @param {Object.} object Plain object - * @returns {cs.GirlPhoto} GirlPhoto - */ - GirlPhoto.fromObject = function fromObject(object) { - if (object instanceof $root.cs.GirlPhoto) - return object; - var message = new $root.cs.GirlPhoto(); - if (object.pic != null) - message.pic = String(object.pic); - if (object.isRelease != null) - message.isRelease = Boolean(object.isRelease); - if (object.price != null) - message.price = object.price | 0; - return message; - }; - - /** - * Creates a plain object from a GirlPhoto message. Also converts values to other types if specified. - * @function toObject - * @memberof cs.GirlPhoto - * @static - * @param {cs.GirlPhoto} message GirlPhoto - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - GirlPhoto.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.pic = ""; - object.isRelease = false; - object.price = 0; - } - if (message.pic != null && message.hasOwnProperty("pic")) - object.pic = message.pic; - if (message.isRelease != null && message.hasOwnProperty("isRelease")) - object.isRelease = message.isRelease; - if (message.price != null && message.hasOwnProperty("price")) - object.price = message.price; - return object; - }; - - /** - * Converts this GirlPhoto to JSON. - * @function toJSON - * @memberof cs.GirlPhoto - * @instance - * @returns {Object.} JSON object - */ - GirlPhoto.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - /** - * Gets the default type url for GirlPhoto - * @function getTypeUrl - * @memberof cs.GirlPhoto - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - GirlPhoto.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/cs.GirlPhoto"; - }; - - return GirlPhoto; - })(); - - cs.PurchaseCommercialImage = (function() { - - /** - * Properties of a PurchaseCommercialImage. - * @memberof cs - * @interface IPurchaseCommercialImage - * @property {number|null} [imageType] PurchaseCommercialImage imageType - * @property {number|null} [imagePrice] PurchaseCommercialImage imagePrice - * @property {string|null} [path] PurchaseCommercialImage path - * @property {boolean|null} [isRelease] PurchaseCommercialImage isRelease - */ - - /** - * Constructs a new PurchaseCommercialImage. - * @memberof cs - * @classdesc Represents a PurchaseCommercialImage. - * @implements IPurchaseCommercialImage - * @constructor - * @param {cs.IPurchaseCommercialImage=} [properties] Properties to set - */ - function PurchaseCommercialImage(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * PurchaseCommercialImage imageType. - * @member {number} imageType - * @memberof cs.PurchaseCommercialImage - * @instance - */ - PurchaseCommercialImage.prototype.imageType = 0; - - /** - * PurchaseCommercialImage imagePrice. - * @member {number} imagePrice - * @memberof cs.PurchaseCommercialImage - * @instance - */ - PurchaseCommercialImage.prototype.imagePrice = 0; - - /** - * PurchaseCommercialImage path. - * @member {string} path - * @memberof cs.PurchaseCommercialImage - * @instance - */ - PurchaseCommercialImage.prototype.path = ""; - - /** - * PurchaseCommercialImage isRelease. - * @member {boolean} isRelease - * @memberof cs.PurchaseCommercialImage - * @instance - */ - PurchaseCommercialImage.prototype.isRelease = false; - - /** - * Creates a new PurchaseCommercialImage instance using the specified properties. - * @function create - * @memberof cs.PurchaseCommercialImage - * @static - * @param {cs.IPurchaseCommercialImage=} [properties] Properties to set - * @returns {cs.PurchaseCommercialImage} PurchaseCommercialImage instance - */ - PurchaseCommercialImage.create = function create(properties) { - return new PurchaseCommercialImage(properties); - }; - - /** - * Encodes the specified PurchaseCommercialImage message. Does not implicitly {@link cs.PurchaseCommercialImage.verify|verify} messages. - * @function encode - * @memberof cs.PurchaseCommercialImage - * @static - * @param {cs.IPurchaseCommercialImage} message PurchaseCommercialImage message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - PurchaseCommercialImage.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.imageType != null && Object.hasOwnProperty.call(message, "imageType")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.imageType); - if (message.imagePrice != null && Object.hasOwnProperty.call(message, "imagePrice")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.imagePrice); - if (message.path != null && Object.hasOwnProperty.call(message, "path")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.path); - if (message.isRelease != null && Object.hasOwnProperty.call(message, "isRelease")) - writer.uint32(/* id 4, wireType 0 =*/32).bool(message.isRelease); - return writer; - }; - - /** - * Encodes the specified PurchaseCommercialImage message, length delimited. Does not implicitly {@link cs.PurchaseCommercialImage.verify|verify} messages. - * @function encodeDelimited - * @memberof cs.PurchaseCommercialImage - * @static - * @param {cs.IPurchaseCommercialImage} message PurchaseCommercialImage message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - PurchaseCommercialImage.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a PurchaseCommercialImage message from the specified reader or buffer. - * @function decode - * @memberof cs.PurchaseCommercialImage - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {cs.PurchaseCommercialImage} PurchaseCommercialImage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - PurchaseCommercialImage.decode = function decode(reader, length, error) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.PurchaseCommercialImage(); - while (reader.pos < end) { - var tag = reader.uint32(); - if (tag === error) - break; - switch (tag >>> 3) { - case 1: { - message.imageType = reader.int32(); - break; - } - case 2: { - message.imagePrice = reader.int32(); - break; - } - case 3: { - message.path = reader.string(); - break; - } - case 4: { - message.isRelease = reader.bool(); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a PurchaseCommercialImage message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof cs.PurchaseCommercialImage - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {cs.PurchaseCommercialImage} PurchaseCommercialImage - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - PurchaseCommercialImage.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a PurchaseCommercialImage message. - * @function verify - * @memberof cs.PurchaseCommercialImage - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - PurchaseCommercialImage.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.imageType != null && message.hasOwnProperty("imageType")) - if (!$util.isInteger(message.imageType)) - return "imageType: integer expected"; - if (message.imagePrice != null && message.hasOwnProperty("imagePrice")) - if (!$util.isInteger(message.imagePrice)) - return "imagePrice: integer expected"; - if (message.path != null && message.hasOwnProperty("path")) - if (!$util.isString(message.path)) - return "path: string expected"; - if (message.isRelease != null && message.hasOwnProperty("isRelease")) - if (typeof message.isRelease !== "boolean") - return "isRelease: boolean expected"; - return null; - }; - - /** - * Creates a PurchaseCommercialImage message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof cs.PurchaseCommercialImage - * @static - * @param {Object.} object Plain object - * @returns {cs.PurchaseCommercialImage} PurchaseCommercialImage - */ - PurchaseCommercialImage.fromObject = function fromObject(object) { - if (object instanceof $root.cs.PurchaseCommercialImage) - return object; - var message = new $root.cs.PurchaseCommercialImage(); - if (object.imageType != null) - message.imageType = object.imageType | 0; - if (object.imagePrice != null) - message.imagePrice = object.imagePrice | 0; - if (object.path != null) - message.path = String(object.path); - if (object.isRelease != null) - message.isRelease = Boolean(object.isRelease); - return message; - }; - - /** - * Creates a plain object from a PurchaseCommercialImage message. Also converts values to other types if specified. - * @function toObject - * @memberof cs.PurchaseCommercialImage - * @static - * @param {cs.PurchaseCommercialImage} message PurchaseCommercialImage - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - PurchaseCommercialImage.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.imageType = 0; - object.imagePrice = 0; - object.path = ""; - object.isRelease = false; - } - if (message.imageType != null && message.hasOwnProperty("imageType")) - object.imageType = message.imageType; - if (message.imagePrice != null && message.hasOwnProperty("imagePrice")) - object.imagePrice = message.imagePrice; - if (message.path != null && message.hasOwnProperty("path")) - object.path = message.path; - if (message.isRelease != null && message.hasOwnProperty("isRelease")) - object.isRelease = message.isRelease; - return object; - }; - - /** - * Converts this PurchaseCommercialImage to JSON. - * @function toJSON - * @memberof cs.PurchaseCommercialImage - * @instance - * @returns {Object.} JSON object - */ - PurchaseCommercialImage.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - /** - * Gets the default type url for PurchaseCommercialImage - * @function getTypeUrl - * @memberof cs.PurchaseCommercialImage - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - PurchaseCommercialImage.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/cs.PurchaseCommercialImage"; - }; - - return PurchaseCommercialImage; - })(); - - cs.PurchaseCommercialVideo = (function() { - - /** - * Properties of a PurchaseCommercialVideo. - * @memberof cs - * @interface IPurchaseCommercialVideo - * @property {string|null} [path] PurchaseCommercialVideo path - * @property {number|null} [emotion] PurchaseCommercialVideo emotion - * @property {number|null} [videoPrice] PurchaseCommercialVideo videoPrice - * @property {boolean|null} [isRelease] PurchaseCommercialVideo isRelease - */ - - /** - * Constructs a new PurchaseCommercialVideo. - * @memberof cs - * @classdesc Represents a PurchaseCommercialVideo. - * @implements IPurchaseCommercialVideo - * @constructor - * @param {cs.IPurchaseCommercialVideo=} [properties] Properties to set - */ - function PurchaseCommercialVideo(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * PurchaseCommercialVideo path. - * @member {string} path - * @memberof cs.PurchaseCommercialVideo - * @instance - */ - PurchaseCommercialVideo.prototype.path = ""; - - /** - * PurchaseCommercialVideo emotion. - * @member {number} emotion - * @memberof cs.PurchaseCommercialVideo - * @instance - */ - PurchaseCommercialVideo.prototype.emotion = 0; - - /** - * PurchaseCommercialVideo videoPrice. - * @member {number} videoPrice - * @memberof cs.PurchaseCommercialVideo - * @instance - */ - PurchaseCommercialVideo.prototype.videoPrice = 0; - - /** - * PurchaseCommercialVideo isRelease. - * @member {boolean} isRelease - * @memberof cs.PurchaseCommercialVideo - * @instance - */ - PurchaseCommercialVideo.prototype.isRelease = false; - - /** - * Creates a new PurchaseCommercialVideo instance using the specified properties. - * @function create - * @memberof cs.PurchaseCommercialVideo - * @static - * @param {cs.IPurchaseCommercialVideo=} [properties] Properties to set - * @returns {cs.PurchaseCommercialVideo} PurchaseCommercialVideo instance - */ - PurchaseCommercialVideo.create = function create(properties) { - return new PurchaseCommercialVideo(properties); - }; - - /** - * Encodes the specified PurchaseCommercialVideo message. Does not implicitly {@link cs.PurchaseCommercialVideo.verify|verify} messages. - * @function encode - * @memberof cs.PurchaseCommercialVideo - * @static - * @param {cs.IPurchaseCommercialVideo} message PurchaseCommercialVideo message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - PurchaseCommercialVideo.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.path != null && Object.hasOwnProperty.call(message, "path")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.path); - if (message.emotion != null && Object.hasOwnProperty.call(message, "emotion")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.emotion); - if (message.videoPrice != null && Object.hasOwnProperty.call(message, "videoPrice")) - writer.uint32(/* id 3, wireType 0 =*/24).int32(message.videoPrice); - if (message.isRelease != null && Object.hasOwnProperty.call(message, "isRelease")) - writer.uint32(/* id 4, wireType 0 =*/32).bool(message.isRelease); - return writer; - }; - - /** - * Encodes the specified PurchaseCommercialVideo message, length delimited. Does not implicitly {@link cs.PurchaseCommercialVideo.verify|verify} messages. - * @function encodeDelimited - * @memberof cs.PurchaseCommercialVideo - * @static - * @param {cs.IPurchaseCommercialVideo} message PurchaseCommercialVideo message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - PurchaseCommercialVideo.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a PurchaseCommercialVideo message from the specified reader or buffer. - * @function decode - * @memberof cs.PurchaseCommercialVideo - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {cs.PurchaseCommercialVideo} PurchaseCommercialVideo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - PurchaseCommercialVideo.decode = function decode(reader, length, error) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.PurchaseCommercialVideo(); - while (reader.pos < end) { - var tag = reader.uint32(); - if (tag === error) - break; - switch (tag >>> 3) { - case 1: { - message.path = reader.string(); - break; - } - case 2: { - message.emotion = reader.int32(); - break; - } - case 3: { - message.videoPrice = reader.int32(); - break; - } - case 4: { - message.isRelease = reader.bool(); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a PurchaseCommercialVideo message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof cs.PurchaseCommercialVideo - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {cs.PurchaseCommercialVideo} PurchaseCommercialVideo - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - PurchaseCommercialVideo.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a PurchaseCommercialVideo message. - * @function verify - * @memberof cs.PurchaseCommercialVideo - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - PurchaseCommercialVideo.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.path != null && message.hasOwnProperty("path")) - if (!$util.isString(message.path)) - return "path: string expected"; - if (message.emotion != null && message.hasOwnProperty("emotion")) - if (!$util.isInteger(message.emotion)) - return "emotion: integer expected"; - if (message.videoPrice != null && message.hasOwnProperty("videoPrice")) - if (!$util.isInteger(message.videoPrice)) - return "videoPrice: integer expected"; - if (message.isRelease != null && message.hasOwnProperty("isRelease")) - if (typeof message.isRelease !== "boolean") - return "isRelease: boolean expected"; - return null; - }; - - /** - * Creates a PurchaseCommercialVideo message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof cs.PurchaseCommercialVideo - * @static - * @param {Object.} object Plain object - * @returns {cs.PurchaseCommercialVideo} PurchaseCommercialVideo - */ - PurchaseCommercialVideo.fromObject = function fromObject(object) { - if (object instanceof $root.cs.PurchaseCommercialVideo) - return object; - var message = new $root.cs.PurchaseCommercialVideo(); - if (object.path != null) - message.path = String(object.path); - if (object.emotion != null) - message.emotion = object.emotion | 0; - if (object.videoPrice != null) - message.videoPrice = object.videoPrice | 0; - if (object.isRelease != null) - message.isRelease = Boolean(object.isRelease); - return message; - }; - - /** - * Creates a plain object from a PurchaseCommercialVideo message. Also converts values to other types if specified. - * @function toObject - * @memberof cs.PurchaseCommercialVideo - * @static - * @param {cs.PurchaseCommercialVideo} message PurchaseCommercialVideo - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - PurchaseCommercialVideo.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.path = ""; - object.emotion = 0; - object.videoPrice = 0; - object.isRelease = false; - } - if (message.path != null && message.hasOwnProperty("path")) - object.path = message.path; - if (message.emotion != null && message.hasOwnProperty("emotion")) - object.emotion = message.emotion; - if (message.videoPrice != null && message.hasOwnProperty("videoPrice")) - object.videoPrice = message.videoPrice; - if (message.isRelease != null && message.hasOwnProperty("isRelease")) - object.isRelease = message.isRelease; - return object; - }; - - /** - * Converts this PurchaseCommercialVideo to JSON. - * @function toJSON - * @memberof cs.PurchaseCommercialVideo - * @instance - * @returns {Object.} JSON object - */ - PurchaseCommercialVideo.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - /** - * Gets the default type url for PurchaseCommercialVideo - * @function getTypeUrl - * @memberof cs.PurchaseCommercialVideo - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - PurchaseCommercialVideo.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/cs.PurchaseCommercialVideo"; - }; - - return PurchaseCommercialVideo; - })(); - - cs.GirlDetail = (function() { - - /** - * Properties of a GirlDetail. - * @memberof cs - * @interface IGirlDetail - * @property {cs.IGirlBrief|null} [brief] GirlDetail brief - * @property {string|null} [desc] GirlDetail desc - * @property {boolean|null} [isRelease] GirlDetail isRelease - * @property {number|null} [chatCount] GirlDetail chatCount - * @property {Array.|null} [images] GirlDetail images - * @property {Array.|null} [videos] GirlDetail videos - */ - - /** - * Constructs a new GirlDetail. - * @memberof cs - * @classdesc Represents a GirlDetail. - * @implements IGirlDetail - * @constructor - * @param {cs.IGirlDetail=} [properties] Properties to set - */ - function GirlDetail(properties) { - this.images = []; - this.videos = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * GirlDetail brief. - * @member {cs.IGirlBrief|null|undefined} brief - * @memberof cs.GirlDetail - * @instance - */ - GirlDetail.prototype.brief = null; - - /** - * GirlDetail desc. - * @member {string} desc - * @memberof cs.GirlDetail - * @instance - */ - GirlDetail.prototype.desc = ""; - - /** - * GirlDetail isRelease. - * @member {boolean} isRelease - * @memberof cs.GirlDetail - * @instance - */ - GirlDetail.prototype.isRelease = false; - - /** - * GirlDetail chatCount. - * @member {number} chatCount - * @memberof cs.GirlDetail - * @instance - */ - GirlDetail.prototype.chatCount = 0; - - /** - * GirlDetail images. - * @member {Array.} images - * @memberof cs.GirlDetail - * @instance - */ - GirlDetail.prototype.images = $util.emptyArray; - - /** - * GirlDetail videos. - * @member {Array.} videos - * @memberof cs.GirlDetail - * @instance - */ - GirlDetail.prototype.videos = $util.emptyArray; - - /** - * Creates a new GirlDetail instance using the specified properties. - * @function create - * @memberof cs.GirlDetail - * @static - * @param {cs.IGirlDetail=} [properties] Properties to set - * @returns {cs.GirlDetail} GirlDetail instance - */ - GirlDetail.create = function create(properties) { - return new GirlDetail(properties); - }; - - /** - * Encodes the specified GirlDetail message. Does not implicitly {@link cs.GirlDetail.verify|verify} messages. - * @function encode - * @memberof cs.GirlDetail - * @static - * @param {cs.IGirlDetail} message GirlDetail message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GirlDetail.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.brief != null && Object.hasOwnProperty.call(message, "brief")) - $root.cs.GirlBrief.encode(message.brief, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.desc != null && Object.hasOwnProperty.call(message, "desc")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.desc); - if (message.isRelease != null && Object.hasOwnProperty.call(message, "isRelease")) - writer.uint32(/* id 4, wireType 0 =*/32).bool(message.isRelease); - if (message.chatCount != null && Object.hasOwnProperty.call(message, "chatCount")) - writer.uint32(/* id 5, wireType 0 =*/40).int32(message.chatCount); - if (message.images != null && message.images.length) - for (var i = 0; i < message.images.length; ++i) - $root.cs.PurchaseCommercialImage.encode(message.images[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); - if (message.videos != null && message.videos.length) - for (var i = 0; i < message.videos.length; ++i) - $root.cs.PurchaseCommercialVideo.encode(message.videos[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); - return writer; - }; - - /** - * Encodes the specified GirlDetail message, length delimited. Does not implicitly {@link cs.GirlDetail.verify|verify} messages. - * @function encodeDelimited - * @memberof cs.GirlDetail - * @static - * @param {cs.IGirlDetail} message GirlDetail message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - GirlDetail.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a GirlDetail message from the specified reader or buffer. - * @function decode - * @memberof cs.GirlDetail - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {cs.GirlDetail} GirlDetail - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GirlDetail.decode = function decode(reader, length, error) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.GirlDetail(); - while (reader.pos < end) { - var tag = reader.uint32(); - if (tag === error) - break; - switch (tag >>> 3) { - case 1: { - message.brief = $root.cs.GirlBrief.decode(reader, reader.uint32()); - break; - } - case 2: { - message.desc = reader.string(); - break; - } - case 4: { - message.isRelease = reader.bool(); - break; - } - case 5: { - message.chatCount = reader.int32(); - break; - } - case 6: { - if (!(message.images && message.images.length)) - message.images = []; - message.images.push($root.cs.PurchaseCommercialImage.decode(reader, reader.uint32())); - break; - } - case 7: { - if (!(message.videos && message.videos.length)) - message.videos = []; - message.videos.push($root.cs.PurchaseCommercialVideo.decode(reader, reader.uint32())); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a GirlDetail message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof cs.GirlDetail - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {cs.GirlDetail} GirlDetail - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - GirlDetail.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a GirlDetail message. - * @function verify - * @memberof cs.GirlDetail - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - GirlDetail.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.brief != null && message.hasOwnProperty("brief")) { - var error = $root.cs.GirlBrief.verify(message.brief); - if (error) - return "brief." + error; - } - if (message.desc != null && message.hasOwnProperty("desc")) - if (!$util.isString(message.desc)) - return "desc: string expected"; - if (message.isRelease != null && message.hasOwnProperty("isRelease")) - if (typeof message.isRelease !== "boolean") - return "isRelease: boolean expected"; - if (message.chatCount != null && message.hasOwnProperty("chatCount")) - if (!$util.isInteger(message.chatCount)) - return "chatCount: integer expected"; - if (message.images != null && message.hasOwnProperty("images")) { - if (!Array.isArray(message.images)) - return "images: array expected"; - for (var i = 0; i < message.images.length; ++i) { - var error = $root.cs.PurchaseCommercialImage.verify(message.images[i]); - if (error) - return "images." + error; - } - } - if (message.videos != null && message.hasOwnProperty("videos")) { - if (!Array.isArray(message.videos)) - return "videos: array expected"; - for (var i = 0; i < message.videos.length; ++i) { - var error = $root.cs.PurchaseCommercialVideo.verify(message.videos[i]); - if (error) - return "videos." + error; - } - } - return null; - }; - - /** - * Creates a GirlDetail message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof cs.GirlDetail - * @static - * @param {Object.} object Plain object - * @returns {cs.GirlDetail} GirlDetail - */ - GirlDetail.fromObject = function fromObject(object) { - if (object instanceof $root.cs.GirlDetail) - return object; - var message = new $root.cs.GirlDetail(); - if (object.brief != null) { - if (typeof object.brief !== "object") - throw TypeError(".cs.GirlDetail.brief: object expected"); - message.brief = $root.cs.GirlBrief.fromObject(object.brief); - } - if (object.desc != null) - message.desc = String(object.desc); - if (object.isRelease != null) - message.isRelease = Boolean(object.isRelease); - if (object.chatCount != null) - message.chatCount = object.chatCount | 0; - if (object.images) { - if (!Array.isArray(object.images)) - throw TypeError(".cs.GirlDetail.images: array expected"); - message.images = []; - for (var i = 0; i < object.images.length; ++i) { - if (typeof object.images[i] !== "object") - throw TypeError(".cs.GirlDetail.images: object expected"); - message.images[i] = $root.cs.PurchaseCommercialImage.fromObject(object.images[i]); - } - } - if (object.videos) { - if (!Array.isArray(object.videos)) - throw TypeError(".cs.GirlDetail.videos: array expected"); - message.videos = []; - for (var i = 0; i < object.videos.length; ++i) { - if (typeof object.videos[i] !== "object") - throw TypeError(".cs.GirlDetail.videos: object expected"); - message.videos[i] = $root.cs.PurchaseCommercialVideo.fromObject(object.videos[i]); - } - } - return message; - }; - - /** - * Creates a plain object from a GirlDetail message. Also converts values to other types if specified. - * @function toObject - * @memberof cs.GirlDetail - * @static - * @param {cs.GirlDetail} message GirlDetail - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - GirlDetail.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) { - object.images = []; - object.videos = []; - } - if (options.defaults) { - object.brief = null; - object.desc = ""; - object.isRelease = false; - object.chatCount = 0; - } - if (message.brief != null && message.hasOwnProperty("brief")) - object.brief = $root.cs.GirlBrief.toObject(message.brief, options); - if (message.desc != null && message.hasOwnProperty("desc")) - object.desc = message.desc; - if (message.isRelease != null && message.hasOwnProperty("isRelease")) - object.isRelease = message.isRelease; - if (message.chatCount != null && message.hasOwnProperty("chatCount")) - object.chatCount = message.chatCount; - if (message.images && message.images.length) { - object.images = []; - for (var j = 0; j < message.images.length; ++j) - object.images[j] = $root.cs.PurchaseCommercialImage.toObject(message.images[j], options); - } - if (message.videos && message.videos.length) { - object.videos = []; - for (var j = 0; j < message.videos.length; ++j) - object.videos[j] = $root.cs.PurchaseCommercialVideo.toObject(message.videos[j], options); - } - return object; - }; - - /** - * Converts this GirlDetail to JSON. - * @function toJSON - * @memberof cs.GirlDetail - * @instance - * @returns {Object.} JSON object - */ - GirlDetail.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - /** - * Gets the default type url for GirlDetail - * @function getTypeUrl - * @memberof cs.GirlDetail - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - GirlDetail.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/cs.GirlDetail"; - }; - - return GirlDetail; - })(); - cs.CSDailyRecommendReq = (function() { /** @@ -1800,7 +201,7 @@ $root.cs = (function() { * Properties of a CSDailyRecommendRes. * @memberof cs * @interface ICSDailyRecommendRes - * @property {Array.|null} [girls] CSDailyRecommendRes girls + * @property {cs.IGirls|null} [girl] CSDailyRecommendRes girl */ /** @@ -1812,7 +213,6 @@ $root.cs = (function() { * @param {cs.ICSDailyRecommendRes=} [properties] Properties to set */ function CSDailyRecommendRes(properties) { - this.girls = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -1820,12 +220,12 @@ $root.cs = (function() { } /** - * CSDailyRecommendRes girls. - * @member {Array.} girls + * CSDailyRecommendRes girl. + * @member {cs.IGirls|null|undefined} girl * @memberof cs.CSDailyRecommendRes * @instance */ - CSDailyRecommendRes.prototype.girls = $util.emptyArray; + CSDailyRecommendRes.prototype.girl = null; /** * Creates a new CSDailyRecommendRes instance using the specified properties. @@ -1851,9 +251,8 @@ $root.cs = (function() { CSDailyRecommendRes.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.girls != null && message.girls.length) - for (var i = 0; i < message.girls.length; ++i) - $root.cs.GirlBrief.encode(message.girls[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.girl != null && Object.hasOwnProperty.call(message, "girl")) + $root.cs.Girls.encode(message.girl, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; @@ -1891,9 +290,7 @@ $root.cs = (function() { break; switch (tag >>> 3) { case 1: { - if (!(message.girls && message.girls.length)) - message.girls = []; - message.girls.push($root.cs.GirlBrief.decode(reader, reader.uint32())); + message.girl = $root.cs.Girls.decode(reader, reader.uint32()); break; } default: @@ -1931,14 +328,10 @@ $root.cs = (function() { CSDailyRecommendRes.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.girls != null && message.hasOwnProperty("girls")) { - if (!Array.isArray(message.girls)) - return "girls: array expected"; - for (var i = 0; i < message.girls.length; ++i) { - var error = $root.cs.GirlBrief.verify(message.girls[i]); - if (error) - return "girls." + error; - } + if (message.girl != null && message.hasOwnProperty("girl")) { + var error = $root.cs.Girls.verify(message.girl); + if (error) + return "girl." + error; } return null; }; @@ -1955,15 +348,10 @@ $root.cs = (function() { if (object instanceof $root.cs.CSDailyRecommendRes) return object; var message = new $root.cs.CSDailyRecommendRes(); - if (object.girls) { - if (!Array.isArray(object.girls)) - throw TypeError(".cs.CSDailyRecommendRes.girls: array expected"); - message.girls = []; - for (var i = 0; i < object.girls.length; ++i) { - if (typeof object.girls[i] !== "object") - throw TypeError(".cs.CSDailyRecommendRes.girls: object expected"); - message.girls[i] = $root.cs.GirlBrief.fromObject(object.girls[i]); - } + if (object.girl != null) { + if (typeof object.girl !== "object") + throw TypeError(".cs.CSDailyRecommendRes.girl: object expected"); + message.girl = $root.cs.Girls.fromObject(object.girl); } return message; }; @@ -1981,13 +369,10 @@ $root.cs = (function() { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.girls = []; - if (message.girls && message.girls.length) { - object.girls = []; - for (var j = 0; j < message.girls.length; ++j) - object.girls[j] = $root.cs.GirlBrief.toObject(message.girls[j], options); - } + if (options.defaults) + object.girl = null; + if (message.girl != null && message.hasOwnProperty("girl")) + object.girl = $root.cs.Girls.toObject(message.girl, options); return object; }; @@ -2197,334 +582,13 @@ $root.cs = (function() { return CSHallThemeReq; })(); - cs.HallTheme = (function() { - - /** - * Properties of a HallTheme. - * @memberof cs - * @interface IHallTheme - * @property {number|null} [id] HallTheme id - * @property {string|null} [key] HallTheme key - * @property {string|null} [name] HallTheme name - * @property {number|null} [category] HallTheme category - * @property {boolean|null} [isRelease] HallTheme isRelease - * @property {string|null} [path] HallTheme path - */ - - /** - * Constructs a new HallTheme. - * @memberof cs - * @classdesc Represents a HallTheme. - * @implements IHallTheme - * @constructor - * @param {cs.IHallTheme=} [properties] Properties to set - */ - function HallTheme(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * HallTheme id. - * @member {number} id - * @memberof cs.HallTheme - * @instance - */ - HallTheme.prototype.id = 0; - - /** - * HallTheme key. - * @member {string} key - * @memberof cs.HallTheme - * @instance - */ - HallTheme.prototype.key = ""; - - /** - * HallTheme name. - * @member {string} name - * @memberof cs.HallTheme - * @instance - */ - HallTheme.prototype.name = ""; - - /** - * HallTheme category. - * @member {number} category - * @memberof cs.HallTheme - * @instance - */ - HallTheme.prototype.category = 0; - - /** - * HallTheme isRelease. - * @member {boolean} isRelease - * @memberof cs.HallTheme - * @instance - */ - HallTheme.prototype.isRelease = false; - - /** - * HallTheme path. - * @member {string} path - * @memberof cs.HallTheme - * @instance - */ - HallTheme.prototype.path = ""; - - /** - * Creates a new HallTheme instance using the specified properties. - * @function create - * @memberof cs.HallTheme - * @static - * @param {cs.IHallTheme=} [properties] Properties to set - * @returns {cs.HallTheme} HallTheme instance - */ - HallTheme.create = function create(properties) { - return new HallTheme(properties); - }; - - /** - * Encodes the specified HallTheme message. Does not implicitly {@link cs.HallTheme.verify|verify} messages. - * @function encode - * @memberof cs.HallTheme - * @static - * @param {cs.IHallTheme} message HallTheme message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - HallTheme.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.id != null && Object.hasOwnProperty.call(message, "id")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id); - if (message.key != null && Object.hasOwnProperty.call(message, "key")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.key); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.name); - if (message.category != null && Object.hasOwnProperty.call(message, "category")) - writer.uint32(/* id 4, wireType 0 =*/32).int32(message.category); - if (message.isRelease != null && Object.hasOwnProperty.call(message, "isRelease")) - writer.uint32(/* id 5, wireType 0 =*/40).bool(message.isRelease); - if (message.path != null && Object.hasOwnProperty.call(message, "path")) - writer.uint32(/* id 6, wireType 2 =*/50).string(message.path); - return writer; - }; - - /** - * Encodes the specified HallTheme message, length delimited. Does not implicitly {@link cs.HallTheme.verify|verify} messages. - * @function encodeDelimited - * @memberof cs.HallTheme - * @static - * @param {cs.IHallTheme} message HallTheme message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - HallTheme.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a HallTheme message from the specified reader or buffer. - * @function decode - * @memberof cs.HallTheme - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {cs.HallTheme} HallTheme - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - HallTheme.decode = function decode(reader, length, error) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.HallTheme(); - while (reader.pos < end) { - var tag = reader.uint32(); - if (tag === error) - break; - switch (tag >>> 3) { - case 1: { - message.id = reader.int32(); - break; - } - case 2: { - message.key = reader.string(); - break; - } - case 3: { - message.name = reader.string(); - break; - } - case 4: { - message.category = reader.int32(); - break; - } - case 5: { - message.isRelease = reader.bool(); - break; - } - case 6: { - message.path = reader.string(); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a HallTheme message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof cs.HallTheme - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {cs.HallTheme} HallTheme - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - HallTheme.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a HallTheme message. - * @function verify - * @memberof cs.HallTheme - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - HallTheme.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.id != null && message.hasOwnProperty("id")) - if (!$util.isInteger(message.id)) - return "id: integer expected"; - if (message.key != null && message.hasOwnProperty("key")) - if (!$util.isString(message.key)) - return "key: string expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.category != null && message.hasOwnProperty("category")) - if (!$util.isInteger(message.category)) - return "category: integer expected"; - if (message.isRelease != null && message.hasOwnProperty("isRelease")) - if (typeof message.isRelease !== "boolean") - return "isRelease: boolean expected"; - if (message.path != null && message.hasOwnProperty("path")) - if (!$util.isString(message.path)) - return "path: string expected"; - return null; - }; - - /** - * Creates a HallTheme message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof cs.HallTheme - * @static - * @param {Object.} object Plain object - * @returns {cs.HallTheme} HallTheme - */ - HallTheme.fromObject = function fromObject(object) { - if (object instanceof $root.cs.HallTheme) - return object; - var message = new $root.cs.HallTheme(); - if (object.id != null) - message.id = object.id | 0; - if (object.key != null) - message.key = String(object.key); - if (object.name != null) - message.name = String(object.name); - if (object.category != null) - message.category = object.category | 0; - if (object.isRelease != null) - message.isRelease = Boolean(object.isRelease); - if (object.path != null) - message.path = String(object.path); - return message; - }; - - /** - * Creates a plain object from a HallTheme message. Also converts values to other types if specified. - * @function toObject - * @memberof cs.HallTheme - * @static - * @param {cs.HallTheme} message HallTheme - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - HallTheme.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.id = 0; - object.key = ""; - object.name = ""; - object.category = 0; - object.isRelease = false; - object.path = ""; - } - if (message.id != null && message.hasOwnProperty("id")) - object.id = message.id; - if (message.key != null && message.hasOwnProperty("key")) - object.key = message.key; - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.category != null && message.hasOwnProperty("category")) - object.category = message.category; - if (message.isRelease != null && message.hasOwnProperty("isRelease")) - object.isRelease = message.isRelease; - if (message.path != null && message.hasOwnProperty("path")) - object.path = message.path; - return object; - }; - - /** - * Converts this HallTheme to JSON. - * @function toJSON - * @memberof cs.HallTheme - * @instance - * @returns {Object.} JSON object - */ - HallTheme.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - /** - * Gets the default type url for HallTheme - * @function getTypeUrl - * @memberof cs.HallTheme - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - HallTheme.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/cs.HallTheme"; - }; - - return HallTheme; - })(); - cs.CSHallThemeRes = (function() { /** * Properties of a CSHallThemeRes. * @memberof cs * @interface ICSHallThemeRes - * @property {Array.|null} [themes] CSHallThemeRes themes + * @property {Array.|null} [themes] CSHallThemeRes themes */ /** @@ -2545,7 +609,7 @@ $root.cs = (function() { /** * CSHallThemeRes themes. - * @member {Array.} themes + * @member {Array.} themes * @memberof cs.CSHallThemeRes * @instance */ @@ -2577,7 +641,7 @@ $root.cs = (function() { writer = $Writer.create(); if (message.themes != null && message.themes.length) for (var i = 0; i < message.themes.length; ++i) - $root.cs.HallTheme.encode(message.themes[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.cs.Themes.encode(message.themes[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; @@ -2617,7 +681,7 @@ $root.cs = (function() { case 1: { if (!(message.themes && message.themes.length)) message.themes = []; - message.themes.push($root.cs.HallTheme.decode(reader, reader.uint32())); + message.themes.push($root.cs.Themes.decode(reader, reader.uint32())); break; } default: @@ -2659,7 +723,7 @@ $root.cs = (function() { if (!Array.isArray(message.themes)) return "themes: array expected"; for (var i = 0; i < message.themes.length; ++i) { - var error = $root.cs.HallTheme.verify(message.themes[i]); + var error = $root.cs.Themes.verify(message.themes[i]); if (error) return "themes." + error; } @@ -2686,7 +750,7 @@ $root.cs = (function() { for (var i = 0; i < object.themes.length; ++i) { if (typeof object.themes[i] !== "object") throw TypeError(".cs.CSHallThemeRes.themes: object expected"); - message.themes[i] = $root.cs.HallTheme.fromObject(object.themes[i]); + message.themes[i] = $root.cs.Themes.fromObject(object.themes[i]); } } return message; @@ -2710,7 +774,7 @@ $root.cs = (function() { if (message.themes && message.themes.length) { object.themes = []; for (var j = 0; j < message.themes.length; ++j) - object.themes[j] = $root.cs.HallTheme.toObject(message.themes[j], options); + object.themes[j] = $root.cs.Themes.toObject(message.themes[j], options); } return object; }; @@ -2744,6 +808,679 @@ $root.cs = (function() { return CSHallThemeRes; })(); + cs.ResourceUnlock = (function() { + + /** + * Properties of a ResourceUnlock. + * @memberof cs + * @interface IResourceUnlock + * @property {number|null} [girlId] ResourceUnlock girlId + * @property {number|null} [resId] ResourceUnlock resId + */ + + /** + * Constructs a new ResourceUnlock. + * @memberof cs + * @classdesc Represents a ResourceUnlock. + * @implements IResourceUnlock + * @constructor + * @param {cs.IResourceUnlock=} [properties] Properties to set + */ + function ResourceUnlock(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ResourceUnlock girlId. + * @member {number} girlId + * @memberof cs.ResourceUnlock + * @instance + */ + ResourceUnlock.prototype.girlId = 0; + + /** + * ResourceUnlock resId. + * @member {number} resId + * @memberof cs.ResourceUnlock + * @instance + */ + ResourceUnlock.prototype.resId = 0; + + /** + * Creates a new ResourceUnlock instance using the specified properties. + * @function create + * @memberof cs.ResourceUnlock + * @static + * @param {cs.IResourceUnlock=} [properties] Properties to set + * @returns {cs.ResourceUnlock} ResourceUnlock instance + */ + ResourceUnlock.create = function create(properties) { + return new ResourceUnlock(properties); + }; + + /** + * Encodes the specified ResourceUnlock message. Does not implicitly {@link cs.ResourceUnlock.verify|verify} messages. + * @function encode + * @memberof cs.ResourceUnlock + * @static + * @param {cs.IResourceUnlock} message ResourceUnlock message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ResourceUnlock.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.girlId != null && Object.hasOwnProperty.call(message, "girlId")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.girlId); + if (message.resId != null && Object.hasOwnProperty.call(message, "resId")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.resId); + return writer; + }; + + /** + * Encodes the specified ResourceUnlock message, length delimited. Does not implicitly {@link cs.ResourceUnlock.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.ResourceUnlock + * @static + * @param {cs.IResourceUnlock} message ResourceUnlock message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ResourceUnlock.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ResourceUnlock message from the specified reader or buffer. + * @function decode + * @memberof cs.ResourceUnlock + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.ResourceUnlock} ResourceUnlock + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ResourceUnlock.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.ResourceUnlock(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.girlId = reader.int32(); + break; + } + case 2: { + message.resId = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ResourceUnlock message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.ResourceUnlock + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.ResourceUnlock} ResourceUnlock + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ResourceUnlock.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ResourceUnlock message. + * @function verify + * @memberof cs.ResourceUnlock + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ResourceUnlock.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.girlId != null && message.hasOwnProperty("girlId")) + if (!$util.isInteger(message.girlId)) + return "girlId: integer expected"; + if (message.resId != null && message.hasOwnProperty("resId")) + if (!$util.isInteger(message.resId)) + return "resId: integer expected"; + return null; + }; + + /** + * Creates a ResourceUnlock message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.ResourceUnlock + * @static + * @param {Object.} object Plain object + * @returns {cs.ResourceUnlock} ResourceUnlock + */ + ResourceUnlock.fromObject = function fromObject(object) { + if (object instanceof $root.cs.ResourceUnlock) + return object; + var message = new $root.cs.ResourceUnlock(); + if (object.girlId != null) + message.girlId = object.girlId | 0; + if (object.resId != null) + message.resId = object.resId | 0; + return message; + }; + + /** + * Creates a plain object from a ResourceUnlock message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.ResourceUnlock + * @static + * @param {cs.ResourceUnlock} message ResourceUnlock + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ResourceUnlock.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.girlId = 0; + object.resId = 0; + } + if (message.girlId != null && message.hasOwnProperty("girlId")) + object.girlId = message.girlId; + if (message.resId != null && message.hasOwnProperty("resId")) + object.resId = message.resId; + return object; + }; + + /** + * Converts this ResourceUnlock to JSON. + * @function toJSON + * @memberof cs.ResourceUnlock + * @instance + * @returns {Object.} JSON object + */ + ResourceUnlock.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ResourceUnlock + * @function getTypeUrl + * @memberof cs.ResourceUnlock + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ResourceUnlock.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.ResourceUnlock"; + }; + + return ResourceUnlock; + })(); + + cs.GirlData = (function() { + + /** + * Properties of a GirlData. + * @memberof cs + * @interface IGirlData + * @property {number|null} [id] GirlData id + * @property {cs.IGirls|null} [girl] GirlData girl + * @property {boolean|null} [isRelease] GirlData isRelease + * @property {number|null} [star] GirlData star + * @property {cs.IGirlsDetail|null} [detail] GirlData detail + * @property {Array.|null} [images] GirlData images + * @property {Array.|null} [videos] GirlData videos + * @property {number|null} [chatTotalCount] GirlData chatTotalCount + * @property {number|null} [chatRemainCount] GirlData chatRemainCount + */ + + /** + * Constructs a new GirlData. + * @memberof cs + * @classdesc Represents a GirlData. + * @implements IGirlData + * @constructor + * @param {cs.IGirlData=} [properties] Properties to set + */ + function GirlData(properties) { + this.images = []; + this.videos = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * GirlData id. + * @member {number} id + * @memberof cs.GirlData + * @instance + */ + GirlData.prototype.id = 0; + + /** + * GirlData girl. + * @member {cs.IGirls|null|undefined} girl + * @memberof cs.GirlData + * @instance + */ + GirlData.prototype.girl = null; + + /** + * GirlData isRelease. + * @member {boolean} isRelease + * @memberof cs.GirlData + * @instance + */ + GirlData.prototype.isRelease = false; + + /** + * GirlData star. + * @member {number} star + * @memberof cs.GirlData + * @instance + */ + GirlData.prototype.star = 0; + + /** + * GirlData detail. + * @member {cs.IGirlsDetail|null|undefined} detail + * @memberof cs.GirlData + * @instance + */ + GirlData.prototype.detail = null; + + /** + * GirlData images. + * @member {Array.} images + * @memberof cs.GirlData + * @instance + */ + GirlData.prototype.images = $util.emptyArray; + + /** + * GirlData videos. + * @member {Array.} videos + * @memberof cs.GirlData + * @instance + */ + GirlData.prototype.videos = $util.emptyArray; + + /** + * GirlData chatTotalCount. + * @member {number} chatTotalCount + * @memberof cs.GirlData + * @instance + */ + GirlData.prototype.chatTotalCount = 0; + + /** + * GirlData chatRemainCount. + * @member {number} chatRemainCount + * @memberof cs.GirlData + * @instance + */ + GirlData.prototype.chatRemainCount = 0; + + /** + * Creates a new GirlData instance using the specified properties. + * @function create + * @memberof cs.GirlData + * @static + * @param {cs.IGirlData=} [properties] Properties to set + * @returns {cs.GirlData} GirlData instance + */ + GirlData.create = function create(properties) { + return new GirlData(properties); + }; + + /** + * Encodes the specified GirlData message. Does not implicitly {@link cs.GirlData.verify|verify} messages. + * @function encode + * @memberof cs.GirlData + * @static + * @param {cs.IGirlData} message GirlData message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GirlData.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.id != null && Object.hasOwnProperty.call(message, "id")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id); + if (message.girl != null && Object.hasOwnProperty.call(message, "girl")) + $root.cs.Girls.encode(message.girl, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.isRelease != null && Object.hasOwnProperty.call(message, "isRelease")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.isRelease); + if (message.star != null && Object.hasOwnProperty.call(message, "star")) + writer.uint32(/* id 4, wireType 0 =*/32).int32(message.star); + if (message.detail != null && Object.hasOwnProperty.call(message, "detail")) + $root.cs.GirlsDetail.encode(message.detail, writer.uint32(/* id 30, wireType 2 =*/242).fork()).ldelim(); + if (message.images != null && message.images.length) + for (var i = 0; i < message.images.length; ++i) + $root.cs.ResourceUnlock.encode(message.images[i], writer.uint32(/* id 31, wireType 2 =*/250).fork()).ldelim(); + if (message.videos != null && message.videos.length) + for (var i = 0; i < message.videos.length; ++i) + $root.cs.ResourceUnlock.encode(message.videos[i], writer.uint32(/* id 32, wireType 2 =*/258).fork()).ldelim(); + if (message.chatTotalCount != null && Object.hasOwnProperty.call(message, "chatTotalCount")) + writer.uint32(/* id 34, wireType 0 =*/272).int32(message.chatTotalCount); + if (message.chatRemainCount != null && Object.hasOwnProperty.call(message, "chatRemainCount")) + writer.uint32(/* id 35, wireType 0 =*/280).int32(message.chatRemainCount); + return writer; + }; + + /** + * Encodes the specified GirlData message, length delimited. Does not implicitly {@link cs.GirlData.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.GirlData + * @static + * @param {cs.IGirlData} message GirlData message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GirlData.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GirlData message from the specified reader or buffer. + * @function decode + * @memberof cs.GirlData + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.GirlData} GirlData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GirlData.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.GirlData(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.id = reader.int32(); + break; + } + case 2: { + message.girl = $root.cs.Girls.decode(reader, reader.uint32()); + break; + } + case 3: { + message.isRelease = reader.bool(); + break; + } + case 4: { + message.star = reader.int32(); + break; + } + case 30: { + message.detail = $root.cs.GirlsDetail.decode(reader, reader.uint32()); + break; + } + case 31: { + if (!(message.images && message.images.length)) + message.images = []; + message.images.push($root.cs.ResourceUnlock.decode(reader, reader.uint32())); + break; + } + case 32: { + if (!(message.videos && message.videos.length)) + message.videos = []; + message.videos.push($root.cs.ResourceUnlock.decode(reader, reader.uint32())); + break; + } + case 34: { + message.chatTotalCount = reader.int32(); + break; + } + case 35: { + message.chatRemainCount = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GirlData message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.GirlData + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.GirlData} GirlData + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GirlData.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GirlData message. + * @function verify + * @memberof cs.GirlData + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GirlData.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.id != null && message.hasOwnProperty("id")) + if (!$util.isInteger(message.id)) + return "id: integer expected"; + if (message.girl != null && message.hasOwnProperty("girl")) { + var error = $root.cs.Girls.verify(message.girl); + if (error) + return "girl." + error; + } + if (message.isRelease != null && message.hasOwnProperty("isRelease")) + if (typeof message.isRelease !== "boolean") + return "isRelease: boolean expected"; + if (message.star != null && message.hasOwnProperty("star")) + if (!$util.isInteger(message.star)) + return "star: integer expected"; + if (message.detail != null && message.hasOwnProperty("detail")) { + var error = $root.cs.GirlsDetail.verify(message.detail); + if (error) + return "detail." + error; + } + if (message.images != null && message.hasOwnProperty("images")) { + if (!Array.isArray(message.images)) + return "images: array expected"; + for (var i = 0; i < message.images.length; ++i) { + var error = $root.cs.ResourceUnlock.verify(message.images[i]); + if (error) + return "images." + error; + } + } + if (message.videos != null && message.hasOwnProperty("videos")) { + if (!Array.isArray(message.videos)) + return "videos: array expected"; + for (var i = 0; i < message.videos.length; ++i) { + var error = $root.cs.ResourceUnlock.verify(message.videos[i]); + if (error) + return "videos." + error; + } + } + if (message.chatTotalCount != null && message.hasOwnProperty("chatTotalCount")) + if (!$util.isInteger(message.chatTotalCount)) + return "chatTotalCount: integer expected"; + if (message.chatRemainCount != null && message.hasOwnProperty("chatRemainCount")) + if (!$util.isInteger(message.chatRemainCount)) + return "chatRemainCount: integer expected"; + return null; + }; + + /** + * Creates a GirlData message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.GirlData + * @static + * @param {Object.} object Plain object + * @returns {cs.GirlData} GirlData + */ + GirlData.fromObject = function fromObject(object) { + if (object instanceof $root.cs.GirlData) + return object; + var message = new $root.cs.GirlData(); + if (object.id != null) + message.id = object.id | 0; + if (object.girl != null) { + if (typeof object.girl !== "object") + throw TypeError(".cs.GirlData.girl: object expected"); + message.girl = $root.cs.Girls.fromObject(object.girl); + } + if (object.isRelease != null) + message.isRelease = Boolean(object.isRelease); + if (object.star != null) + message.star = object.star | 0; + if (object.detail != null) { + if (typeof object.detail !== "object") + throw TypeError(".cs.GirlData.detail: object expected"); + message.detail = $root.cs.GirlsDetail.fromObject(object.detail); + } + if (object.images) { + if (!Array.isArray(object.images)) + throw TypeError(".cs.GirlData.images: array expected"); + message.images = []; + for (var i = 0; i < object.images.length; ++i) { + if (typeof object.images[i] !== "object") + throw TypeError(".cs.GirlData.images: object expected"); + message.images[i] = $root.cs.ResourceUnlock.fromObject(object.images[i]); + } + } + if (object.videos) { + if (!Array.isArray(object.videos)) + throw TypeError(".cs.GirlData.videos: array expected"); + message.videos = []; + for (var i = 0; i < object.videos.length; ++i) { + if (typeof object.videos[i] !== "object") + throw TypeError(".cs.GirlData.videos: object expected"); + message.videos[i] = $root.cs.ResourceUnlock.fromObject(object.videos[i]); + } + } + if (object.chatTotalCount != null) + message.chatTotalCount = object.chatTotalCount | 0; + if (object.chatRemainCount != null) + message.chatRemainCount = object.chatRemainCount | 0; + return message; + }; + + /** + * Creates a plain object from a GirlData message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.GirlData + * @static + * @param {cs.GirlData} message GirlData + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GirlData.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.images = []; + object.videos = []; + } + if (options.defaults) { + object.id = 0; + object.girl = null; + object.isRelease = false; + object.star = 0; + object.detail = null; + object.chatTotalCount = 0; + object.chatRemainCount = 0; + } + if (message.id != null && message.hasOwnProperty("id")) + object.id = message.id; + if (message.girl != null && message.hasOwnProperty("girl")) + object.girl = $root.cs.Girls.toObject(message.girl, options); + if (message.isRelease != null && message.hasOwnProperty("isRelease")) + object.isRelease = message.isRelease; + if (message.star != null && message.hasOwnProperty("star")) + object.star = message.star; + if (message.detail != null && message.hasOwnProperty("detail")) + object.detail = $root.cs.GirlsDetail.toObject(message.detail, options); + if (message.images && message.images.length) { + object.images = []; + for (var j = 0; j < message.images.length; ++j) + object.images[j] = $root.cs.ResourceUnlock.toObject(message.images[j], options); + } + if (message.videos && message.videos.length) { + object.videos = []; + for (var j = 0; j < message.videos.length; ++j) + object.videos[j] = $root.cs.ResourceUnlock.toObject(message.videos[j], options); + } + if (message.chatTotalCount != null && message.hasOwnProperty("chatTotalCount")) + object.chatTotalCount = message.chatTotalCount; + if (message.chatRemainCount != null && message.hasOwnProperty("chatRemainCount")) + object.chatRemainCount = message.chatRemainCount; + return object; + }; + + /** + * Converts this GirlData to JSON. + * @function toJSON + * @memberof cs.GirlData + * @instance + * @returns {Object.} JSON object + */ + GirlData.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for GirlData + * @function getTypeUrl + * @memberof cs.GirlData + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + GirlData.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.GirlData"; + }; + + return GirlData; + })(); + cs.CSGetGirlListReq = (function() { /** @@ -3002,7 +1739,7 @@ $root.cs = (function() { * Properties of a CSGetGirlListRes. * @memberof cs * @interface ICSGetGirlListRes - * @property {Array.|null} [girls] CSGetGirlListRes girls + * @property {Array.|null} [girls] CSGetGirlListRes girls */ /** @@ -3023,7 +1760,7 @@ $root.cs = (function() { /** * CSGetGirlListRes girls. - * @member {Array.} girls + * @member {Array.} girls * @memberof cs.CSGetGirlListRes * @instance */ @@ -3055,7 +1792,7 @@ $root.cs = (function() { writer = $Writer.create(); if (message.girls != null && message.girls.length) for (var i = 0; i < message.girls.length; ++i) - $root.cs.GirlBrief.encode(message.girls[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.cs.GirlData.encode(message.girls[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; @@ -3095,7 +1832,7 @@ $root.cs = (function() { case 1: { if (!(message.girls && message.girls.length)) message.girls = []; - message.girls.push($root.cs.GirlBrief.decode(reader, reader.uint32())); + message.girls.push($root.cs.GirlData.decode(reader, reader.uint32())); break; } default: @@ -3137,7 +1874,7 @@ $root.cs = (function() { if (!Array.isArray(message.girls)) return "girls: array expected"; for (var i = 0; i < message.girls.length; ++i) { - var error = $root.cs.GirlBrief.verify(message.girls[i]); + var error = $root.cs.GirlData.verify(message.girls[i]); if (error) return "girls." + error; } @@ -3164,7 +1901,7 @@ $root.cs = (function() { for (var i = 0; i < object.girls.length; ++i) { if (typeof object.girls[i] !== "object") throw TypeError(".cs.CSGetGirlListRes.girls: object expected"); - message.girls[i] = $root.cs.GirlBrief.fromObject(object.girls[i]); + message.girls[i] = $root.cs.GirlData.fromObject(object.girls[i]); } } return message; @@ -3188,7 +1925,7 @@ $root.cs = (function() { if (message.girls && message.girls.length) { object.girls = []; for (var j = 0; j < message.girls.length; ++j) - object.girls[j] = $root.cs.GirlBrief.toObject(message.girls[j], options); + object.girls[j] = $root.cs.GirlData.toObject(message.girls[j], options); } return object; }; @@ -3433,7 +2170,7 @@ $root.cs = (function() { * Properties of a CSGetGirlDetailRes. * @memberof cs * @interface ICSGetGirlDetailRes - * @property {cs.IGirlDetail|null} [detail] CSGetGirlDetailRes detail + * @property {cs.IGirlData|null} [girl] CSGetGirlDetailRes girl */ /** @@ -3452,12 +2189,12 @@ $root.cs = (function() { } /** - * CSGetGirlDetailRes detail. - * @member {cs.IGirlDetail|null|undefined} detail + * CSGetGirlDetailRes girl. + * @member {cs.IGirlData|null|undefined} girl * @memberof cs.CSGetGirlDetailRes * @instance */ - CSGetGirlDetailRes.prototype.detail = null; + CSGetGirlDetailRes.prototype.girl = null; /** * Creates a new CSGetGirlDetailRes instance using the specified properties. @@ -3483,8 +2220,8 @@ $root.cs = (function() { CSGetGirlDetailRes.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.detail != null && Object.hasOwnProperty.call(message, "detail")) - $root.cs.GirlDetail.encode(message.detail, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.girl != null && Object.hasOwnProperty.call(message, "girl")) + $root.cs.GirlData.encode(message.girl, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; @@ -3522,7 +2259,7 @@ $root.cs = (function() { break; switch (tag >>> 3) { case 1: { - message.detail = $root.cs.GirlDetail.decode(reader, reader.uint32()); + message.girl = $root.cs.GirlData.decode(reader, reader.uint32()); break; } default: @@ -3560,10 +2297,10 @@ $root.cs = (function() { CSGetGirlDetailRes.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.detail != null && message.hasOwnProperty("detail")) { - var error = $root.cs.GirlDetail.verify(message.detail); + if (message.girl != null && message.hasOwnProperty("girl")) { + var error = $root.cs.GirlData.verify(message.girl); if (error) - return "detail." + error; + return "girl." + error; } return null; }; @@ -3580,10 +2317,10 @@ $root.cs = (function() { if (object instanceof $root.cs.CSGetGirlDetailRes) return object; var message = new $root.cs.CSGetGirlDetailRes(); - if (object.detail != null) { - if (typeof object.detail !== "object") - throw TypeError(".cs.CSGetGirlDetailRes.detail: object expected"); - message.detail = $root.cs.GirlDetail.fromObject(object.detail); + if (object.girl != null) { + if (typeof object.girl !== "object") + throw TypeError(".cs.CSGetGirlDetailRes.girl: object expected"); + message.girl = $root.cs.GirlData.fromObject(object.girl); } return message; }; @@ -3602,9 +2339,9 @@ $root.cs = (function() { options = {}; var object = {}; if (options.defaults) - object.detail = null; - if (message.detail != null && message.hasOwnProperty("detail")) - object.detail = $root.cs.GirlDetail.toObject(message.detail, options); + object.girl = null; + if (message.girl != null && message.hasOwnProperty("girl")) + object.girl = $root.cs.GirlData.toObject(message.girl, options); return object; }; @@ -3637,28 +2374,24 @@ $root.cs = (function() { return CSGetGirlDetailRes; })(); - cs.Good = (function() { + cs.CSUnlockGirlReq = (function() { /** - * Properties of a Good. + * Properties of a CSUnlockGirlReq. * @memberof cs - * @interface IGood - * @property {number|null} [id] Good id - * @property {string|null} [name] Good name - * @property {string|null} [desc] Good desc - * @property {string|null} [price] Good price - * @property {number|null} [count] Good count + * @interface ICSUnlockGirlReq + * @property {number|null} [id] CSUnlockGirlReq id */ /** - * Constructs a new Good. + * Constructs a new CSUnlockGirlReq. * @memberof cs - * @classdesc Represents a Good. - * @implements IGood + * @classdesc Represents a CSUnlockGirlReq. + * @implements ICSUnlockGirlReq * @constructor - * @param {cs.IGood=} [properties] Properties to set + * @param {cs.ICSUnlockGirlReq=} [properties] Properties to set */ - function Good(properties) { + function CSUnlockGirlReq(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -3666,110 +2399,70 @@ $root.cs = (function() { } /** - * Good id. + * CSUnlockGirlReq id. * @member {number} id - * @memberof cs.Good + * @memberof cs.CSUnlockGirlReq * @instance */ - Good.prototype.id = 0; + CSUnlockGirlReq.prototype.id = 0; /** - * Good name. - * @member {string} name - * @memberof cs.Good - * @instance - */ - Good.prototype.name = ""; - - /** - * Good desc. - * @member {string} desc - * @memberof cs.Good - * @instance - */ - Good.prototype.desc = ""; - - /** - * Good price. - * @member {string} price - * @memberof cs.Good - * @instance - */ - Good.prototype.price = ""; - - /** - * Good count. - * @member {number} count - * @memberof cs.Good - * @instance - */ - Good.prototype.count = 0; - - /** - * Creates a new Good instance using the specified properties. + * Creates a new CSUnlockGirlReq instance using the specified properties. * @function create - * @memberof cs.Good + * @memberof cs.CSUnlockGirlReq * @static - * @param {cs.IGood=} [properties] Properties to set - * @returns {cs.Good} Good instance + * @param {cs.ICSUnlockGirlReq=} [properties] Properties to set + * @returns {cs.CSUnlockGirlReq} CSUnlockGirlReq instance */ - Good.create = function create(properties) { - return new Good(properties); + CSUnlockGirlReq.create = function create(properties) { + return new CSUnlockGirlReq(properties); }; /** - * Encodes the specified Good message. Does not implicitly {@link cs.Good.verify|verify} messages. + * Encodes the specified CSUnlockGirlReq message. Does not implicitly {@link cs.CSUnlockGirlReq.verify|verify} messages. * @function encode - * @memberof cs.Good + * @memberof cs.CSUnlockGirlReq * @static - * @param {cs.IGood} message Good message or plain object to encode + * @param {cs.ICSUnlockGirlReq} message CSUnlockGirlReq message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Good.encode = function encode(message, writer) { + CSUnlockGirlReq.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); if (message.id != null && Object.hasOwnProperty.call(message, "id")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.name); - if (message.desc != null && Object.hasOwnProperty.call(message, "desc")) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.desc); - if (message.price != null && Object.hasOwnProperty.call(message, "price")) - writer.uint32(/* id 4, wireType 2 =*/34).string(message.price); - if (message.count != null && Object.hasOwnProperty.call(message, "count")) - writer.uint32(/* id 5, wireType 0 =*/40).int32(message.count); return writer; }; /** - * Encodes the specified Good message, length delimited. Does not implicitly {@link cs.Good.verify|verify} messages. + * Encodes the specified CSUnlockGirlReq message, length delimited. Does not implicitly {@link cs.CSUnlockGirlReq.verify|verify} messages. * @function encodeDelimited - * @memberof cs.Good + * @memberof cs.CSUnlockGirlReq * @static - * @param {cs.IGood} message Good message or plain object to encode + * @param {cs.ICSUnlockGirlReq} message CSUnlockGirlReq message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Good.encodeDelimited = function encodeDelimited(message, writer) { + CSUnlockGirlReq.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Good message from the specified reader or buffer. + * Decodes a CSUnlockGirlReq message from the specified reader or buffer. * @function decode - * @memberof cs.Good + * @memberof cs.CSUnlockGirlReq * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {cs.Good} Good + * @returns {cs.CSUnlockGirlReq} CSUnlockGirlReq * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Good.decode = function decode(reader, length, error) { + CSUnlockGirlReq.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.Good(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.CSUnlockGirlReq(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) @@ -3779,22 +2472,6 @@ $root.cs = (function() { message.id = reader.int32(); break; } - case 2: { - message.name = reader.string(); - break; - } - case 3: { - message.desc = reader.string(); - break; - } - case 4: { - message.price = reader.string(); - break; - } - case 5: { - message.count = reader.int32(); - break; - } default: reader.skipType(tag & 7); break; @@ -3804,154 +2481,121 @@ $root.cs = (function() { }; /** - * Decodes a Good message from the specified reader or buffer, length delimited. + * Decodes a CSUnlockGirlReq message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof cs.Good + * @memberof cs.CSUnlockGirlReq * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {cs.Good} Good + * @returns {cs.CSUnlockGirlReq} CSUnlockGirlReq * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Good.decodeDelimited = function decodeDelimited(reader) { + CSUnlockGirlReq.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Good message. + * Verifies a CSUnlockGirlReq message. * @function verify - * @memberof cs.Good + * @memberof cs.CSUnlockGirlReq * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Good.verify = function verify(message) { + CSUnlockGirlReq.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; if (message.id != null && message.hasOwnProperty("id")) if (!$util.isInteger(message.id)) return "id: integer expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.desc != null && message.hasOwnProperty("desc")) - if (!$util.isString(message.desc)) - return "desc: string expected"; - if (message.price != null && message.hasOwnProperty("price")) - if (!$util.isString(message.price)) - return "price: string expected"; - if (message.count != null && message.hasOwnProperty("count")) - if (!$util.isInteger(message.count)) - return "count: integer expected"; return null; }; /** - * Creates a Good message from a plain object. Also converts values to their respective internal types. + * Creates a CSUnlockGirlReq message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof cs.Good + * @memberof cs.CSUnlockGirlReq * @static * @param {Object.} object Plain object - * @returns {cs.Good} Good + * @returns {cs.CSUnlockGirlReq} CSUnlockGirlReq */ - Good.fromObject = function fromObject(object) { - if (object instanceof $root.cs.Good) + CSUnlockGirlReq.fromObject = function fromObject(object) { + if (object instanceof $root.cs.CSUnlockGirlReq) return object; - var message = new $root.cs.Good(); + var message = new $root.cs.CSUnlockGirlReq(); if (object.id != null) message.id = object.id | 0; - if (object.name != null) - message.name = String(object.name); - if (object.desc != null) - message.desc = String(object.desc); - if (object.price != null) - message.price = String(object.price); - if (object.count != null) - message.count = object.count | 0; return message; }; /** - * Creates a plain object from a Good message. Also converts values to other types if specified. + * Creates a plain object from a CSUnlockGirlReq message. Also converts values to other types if specified. * @function toObject - * @memberof cs.Good + * @memberof cs.CSUnlockGirlReq * @static - * @param {cs.Good} message Good + * @param {cs.CSUnlockGirlReq} message CSUnlockGirlReq * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Good.toObject = function toObject(message, options) { + CSUnlockGirlReq.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { + if (options.defaults) object.id = 0; - object.name = ""; - object.desc = ""; - object.price = ""; - object.count = 0; - } if (message.id != null && message.hasOwnProperty("id")) object.id = message.id; - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.desc != null && message.hasOwnProperty("desc")) - object.desc = message.desc; - if (message.price != null && message.hasOwnProperty("price")) - object.price = message.price; - if (message.count != null && message.hasOwnProperty("count")) - object.count = message.count; return object; }; /** - * Converts this Good to JSON. + * Converts this CSUnlockGirlReq to JSON. * @function toJSON - * @memberof cs.Good + * @memberof cs.CSUnlockGirlReq * @instance * @returns {Object.} JSON object */ - Good.prototype.toJSON = function toJSON() { + CSUnlockGirlReq.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for Good + * Gets the default type url for CSUnlockGirlReq * @function getTypeUrl - * @memberof cs.Good + * @memberof cs.CSUnlockGirlReq * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - Good.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + CSUnlockGirlReq.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/cs.Good"; + return typeUrlPrefix + "/cs.CSUnlockGirlReq"; }; - return Good; + return CSUnlockGirlReq; })(); - cs.CSGetShopReq = (function() { + cs.CSUnlockGirlRes = (function() { /** - * Properties of a CSGetShopReq. + * Properties of a CSUnlockGirlRes. * @memberof cs - * @interface ICSGetShopReq + * @interface ICSUnlockGirlRes */ /** - * Constructs a new CSGetShopReq. + * Constructs a new CSUnlockGirlRes. * @memberof cs - * @classdesc Represents a CSGetShopReq. - * @implements ICSGetShopReq + * @classdesc Represents a CSUnlockGirlRes. + * @implements ICSUnlockGirlRes * @constructor - * @param {cs.ICSGetShopReq=} [properties] Properties to set + * @param {cs.ICSUnlockGirlRes=} [properties] Properties to set */ - function CSGetShopReq(properties) { + function CSUnlockGirlRes(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -3959,60 +2603,60 @@ $root.cs = (function() { } /** - * Creates a new CSGetShopReq instance using the specified properties. + * Creates a new CSUnlockGirlRes instance using the specified properties. * @function create - * @memberof cs.CSGetShopReq + * @memberof cs.CSUnlockGirlRes * @static - * @param {cs.ICSGetShopReq=} [properties] Properties to set - * @returns {cs.CSGetShopReq} CSGetShopReq instance + * @param {cs.ICSUnlockGirlRes=} [properties] Properties to set + * @returns {cs.CSUnlockGirlRes} CSUnlockGirlRes instance */ - CSGetShopReq.create = function create(properties) { - return new CSGetShopReq(properties); + CSUnlockGirlRes.create = function create(properties) { + return new CSUnlockGirlRes(properties); }; /** - * Encodes the specified CSGetShopReq message. Does not implicitly {@link cs.CSGetShopReq.verify|verify} messages. + * Encodes the specified CSUnlockGirlRes message. Does not implicitly {@link cs.CSUnlockGirlRes.verify|verify} messages. * @function encode - * @memberof cs.CSGetShopReq + * @memberof cs.CSUnlockGirlRes * @static - * @param {cs.ICSGetShopReq} message CSGetShopReq message or plain object to encode + * @param {cs.ICSUnlockGirlRes} message CSUnlockGirlRes message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CSGetShopReq.encode = function encode(message, writer) { + CSUnlockGirlRes.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); return writer; }; /** - * Encodes the specified CSGetShopReq message, length delimited. Does not implicitly {@link cs.CSGetShopReq.verify|verify} messages. + * Encodes the specified CSUnlockGirlRes message, length delimited. Does not implicitly {@link cs.CSUnlockGirlRes.verify|verify} messages. * @function encodeDelimited - * @memberof cs.CSGetShopReq + * @memberof cs.CSUnlockGirlRes * @static - * @param {cs.ICSGetShopReq} message CSGetShopReq message or plain object to encode + * @param {cs.ICSUnlockGirlRes} message CSUnlockGirlRes message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CSGetShopReq.encodeDelimited = function encodeDelimited(message, writer) { + CSUnlockGirlRes.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a CSGetShopReq message from the specified reader or buffer. + * Decodes a CSUnlockGirlRes message from the specified reader or buffer. * @function decode - * @memberof cs.CSGetShopReq + * @memberof cs.CSUnlockGirlRes * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {cs.CSGetShopReq} CSGetShopReq + * @returns {cs.CSUnlockGirlRes} CSUnlockGirlRes * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CSGetShopReq.decode = function decode(reader, length, error) { + CSUnlockGirlRes.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.CSGetShopReq(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.CSUnlockGirlRes(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) @@ -4027,110 +2671,125 @@ $root.cs = (function() { }; /** - * Decodes a CSGetShopReq message from the specified reader or buffer, length delimited. + * Decodes a CSUnlockGirlRes message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof cs.CSGetShopReq + * @memberof cs.CSUnlockGirlRes * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {cs.CSGetShopReq} CSGetShopReq + * @returns {cs.CSUnlockGirlRes} CSUnlockGirlRes * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CSGetShopReq.decodeDelimited = function decodeDelimited(reader) { + CSUnlockGirlRes.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a CSGetShopReq message. + * Verifies a CSUnlockGirlRes message. * @function verify - * @memberof cs.CSGetShopReq + * @memberof cs.CSUnlockGirlRes * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CSGetShopReq.verify = function verify(message) { + CSUnlockGirlRes.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; return null; }; /** - * Creates a CSGetShopReq message from a plain object. Also converts values to their respective internal types. + * Creates a CSUnlockGirlRes message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof cs.CSGetShopReq + * @memberof cs.CSUnlockGirlRes * @static * @param {Object.} object Plain object - * @returns {cs.CSGetShopReq} CSGetShopReq + * @returns {cs.CSUnlockGirlRes} CSUnlockGirlRes */ - CSGetShopReq.fromObject = function fromObject(object) { - if (object instanceof $root.cs.CSGetShopReq) + CSUnlockGirlRes.fromObject = function fromObject(object) { + if (object instanceof $root.cs.CSUnlockGirlRes) return object; - return new $root.cs.CSGetShopReq(); + return new $root.cs.CSUnlockGirlRes(); }; /** - * Creates a plain object from a CSGetShopReq message. Also converts values to other types if specified. + * Creates a plain object from a CSUnlockGirlRes message. Also converts values to other types if specified. * @function toObject - * @memberof cs.CSGetShopReq + * @memberof cs.CSUnlockGirlRes * @static - * @param {cs.CSGetShopReq} message CSGetShopReq + * @param {cs.CSUnlockGirlRes} message CSUnlockGirlRes * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CSGetShopReq.toObject = function toObject() { + CSUnlockGirlRes.toObject = function toObject() { return {}; }; /** - * Converts this CSGetShopReq to JSON. + * Converts this CSUnlockGirlRes to JSON. * @function toJSON - * @memberof cs.CSGetShopReq + * @memberof cs.CSUnlockGirlRes * @instance * @returns {Object.} JSON object */ - CSGetShopReq.prototype.toJSON = function toJSON() { + CSUnlockGirlRes.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for CSGetShopReq + * Gets the default type url for CSUnlockGirlRes * @function getTypeUrl - * @memberof cs.CSGetShopReq + * @memberof cs.CSUnlockGirlRes * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - CSGetShopReq.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + CSUnlockGirlRes.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/cs.CSGetShopReq"; + return typeUrlPrefix + "/cs.CSUnlockGirlRes"; }; - return CSGetShopReq; + return CSUnlockGirlRes; })(); - cs.CSGetShopRes = (function() { + /** + * EnmResType enum. + * @name cs.EnmResType + * @enum {number} + * @property {number} ERT_Image=0 ERT_Image value + * @property {number} ERT_Video=1 ERT_Video value + */ + cs.EnmResType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "ERT_Image"] = 0; + values[valuesById[1] = "ERT_Video"] = 1; + return values; + })(); + + cs.CSUnlockResourceReq = (function() { /** - * Properties of a CSGetShopRes. + * Properties of a CSUnlockResourceReq. * @memberof cs - * @interface ICSGetShopRes - * @property {Array.|null} [Goods] CSGetShopRes Goods + * @interface ICSUnlockResourceReq + * @property {number|null} [girlId] CSUnlockResourceReq girlId + * @property {number|null} [resId] CSUnlockResourceReq resId + * @property {number|null} [type] CSUnlockResourceReq type */ /** - * Constructs a new CSGetShopRes. + * Constructs a new CSUnlockResourceReq. * @memberof cs - * @classdesc Represents a CSGetShopRes. - * @implements ICSGetShopRes + * @classdesc Represents a CSUnlockResourceReq. + * @implements ICSUnlockResourceReq * @constructor - * @param {cs.ICSGetShopRes=} [properties] Properties to set + * @param {cs.ICSUnlockResourceReq=} [properties] Properties to set */ - function CSGetShopRes(properties) { - this.Goods = []; + function CSUnlockResourceReq(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -4138,306 +2797,90 @@ $root.cs = (function() { } /** - * CSGetShopRes Goods. - * @member {Array.} Goods - * @memberof cs.CSGetShopRes - * @instance - */ - CSGetShopRes.prototype.Goods = $util.emptyArray; - - /** - * Creates a new CSGetShopRes instance using the specified properties. - * @function create - * @memberof cs.CSGetShopRes - * @static - * @param {cs.ICSGetShopRes=} [properties] Properties to set - * @returns {cs.CSGetShopRes} CSGetShopRes instance - */ - CSGetShopRes.create = function create(properties) { - return new CSGetShopRes(properties); - }; - - /** - * Encodes the specified CSGetShopRes message. Does not implicitly {@link cs.CSGetShopRes.verify|verify} messages. - * @function encode - * @memberof cs.CSGetShopRes - * @static - * @param {cs.ICSGetShopRes} message CSGetShopRes message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - CSGetShopRes.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.Goods != null && message.Goods.length) - for (var i = 0; i < message.Goods.length; ++i) - $root.cs.Good.encode(message.Goods[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; - - /** - * Encodes the specified CSGetShopRes message, length delimited. Does not implicitly {@link cs.CSGetShopRes.verify|verify} messages. - * @function encodeDelimited - * @memberof cs.CSGetShopRes - * @static - * @param {cs.ICSGetShopRes} message CSGetShopRes message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - CSGetShopRes.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a CSGetShopRes message from the specified reader or buffer. - * @function decode - * @memberof cs.CSGetShopRes - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {cs.CSGetShopRes} CSGetShopRes - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - CSGetShopRes.decode = function decode(reader, length, error) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.CSGetShopRes(); - while (reader.pos < end) { - var tag = reader.uint32(); - if (tag === error) - break; - switch (tag >>> 3) { - case 1: { - if (!(message.Goods && message.Goods.length)) - message.Goods = []; - message.Goods.push($root.cs.Good.decode(reader, reader.uint32())); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a CSGetShopRes message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof cs.CSGetShopRes - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {cs.CSGetShopRes} CSGetShopRes - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - CSGetShopRes.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a CSGetShopRes message. - * @function verify - * @memberof cs.CSGetShopRes - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - CSGetShopRes.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.Goods != null && message.hasOwnProperty("Goods")) { - if (!Array.isArray(message.Goods)) - return "Goods: array expected"; - for (var i = 0; i < message.Goods.length; ++i) { - var error = $root.cs.Good.verify(message.Goods[i]); - if (error) - return "Goods." + error; - } - } - return null; - }; - - /** - * Creates a CSGetShopRes message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof cs.CSGetShopRes - * @static - * @param {Object.} object Plain object - * @returns {cs.CSGetShopRes} CSGetShopRes - */ - CSGetShopRes.fromObject = function fromObject(object) { - if (object instanceof $root.cs.CSGetShopRes) - return object; - var message = new $root.cs.CSGetShopRes(); - if (object.Goods) { - if (!Array.isArray(object.Goods)) - throw TypeError(".cs.CSGetShopRes.Goods: array expected"); - message.Goods = []; - for (var i = 0; i < object.Goods.length; ++i) { - if (typeof object.Goods[i] !== "object") - throw TypeError(".cs.CSGetShopRes.Goods: object expected"); - message.Goods[i] = $root.cs.Good.fromObject(object.Goods[i]); - } - } - return message; - }; - - /** - * Creates a plain object from a CSGetShopRes message. Also converts values to other types if specified. - * @function toObject - * @memberof cs.CSGetShopRes - * @static - * @param {cs.CSGetShopRes} message CSGetShopRes - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - CSGetShopRes.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.Goods = []; - if (message.Goods && message.Goods.length) { - object.Goods = []; - for (var j = 0; j < message.Goods.length; ++j) - object.Goods[j] = $root.cs.Good.toObject(message.Goods[j], options); - } - return object; - }; - - /** - * Converts this CSGetShopRes to JSON. - * @function toJSON - * @memberof cs.CSGetShopRes - * @instance - * @returns {Object.} JSON object - */ - CSGetShopRes.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - /** - * Gets the default type url for CSGetShopRes - * @function getTypeUrl - * @memberof cs.CSGetShopRes - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - CSGetShopRes.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/cs.CSGetShopRes"; - }; - - return CSGetShopRes; - })(); - - cs.CSBuyChatReq = (function() { - - /** - * Properties of a CSBuyChatReq. - * @memberof cs - * @interface ICSBuyChatReq - * @property {number|null} [girlId] CSBuyChatReq girlId - * @property {number|null} [times] CSBuyChatReq times - */ - - /** - * Constructs a new CSBuyChatReq. - * @memberof cs - * @classdesc Represents a CSBuyChatReq. - * @implements ICSBuyChatReq - * @constructor - * @param {cs.ICSBuyChatReq=} [properties] Properties to set - */ - function CSBuyChatReq(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * CSBuyChatReq girlId. + * CSUnlockResourceReq girlId. * @member {number} girlId - * @memberof cs.CSBuyChatReq + * @memberof cs.CSUnlockResourceReq * @instance */ - CSBuyChatReq.prototype.girlId = 0; + CSUnlockResourceReq.prototype.girlId = 0; /** - * CSBuyChatReq times. - * @member {number} times - * @memberof cs.CSBuyChatReq + * CSUnlockResourceReq resId. + * @member {number} resId + * @memberof cs.CSUnlockResourceReq * @instance */ - CSBuyChatReq.prototype.times = 0; + CSUnlockResourceReq.prototype.resId = 0; /** - * Creates a new CSBuyChatReq instance using the specified properties. + * CSUnlockResourceReq type. + * @member {number} type + * @memberof cs.CSUnlockResourceReq + * @instance + */ + CSUnlockResourceReq.prototype.type = 0; + + /** + * Creates a new CSUnlockResourceReq instance using the specified properties. * @function create - * @memberof cs.CSBuyChatReq + * @memberof cs.CSUnlockResourceReq * @static - * @param {cs.ICSBuyChatReq=} [properties] Properties to set - * @returns {cs.CSBuyChatReq} CSBuyChatReq instance + * @param {cs.ICSUnlockResourceReq=} [properties] Properties to set + * @returns {cs.CSUnlockResourceReq} CSUnlockResourceReq instance */ - CSBuyChatReq.create = function create(properties) { - return new CSBuyChatReq(properties); + CSUnlockResourceReq.create = function create(properties) { + return new CSUnlockResourceReq(properties); }; /** - * Encodes the specified CSBuyChatReq message. Does not implicitly {@link cs.CSBuyChatReq.verify|verify} messages. + * Encodes the specified CSUnlockResourceReq message. Does not implicitly {@link cs.CSUnlockResourceReq.verify|verify} messages. * @function encode - * @memberof cs.CSBuyChatReq + * @memberof cs.CSUnlockResourceReq * @static - * @param {cs.ICSBuyChatReq} message CSBuyChatReq message or plain object to encode + * @param {cs.ICSUnlockResourceReq} message CSUnlockResourceReq message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CSBuyChatReq.encode = function encode(message, writer) { + CSUnlockResourceReq.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); if (message.girlId != null && Object.hasOwnProperty.call(message, "girlId")) writer.uint32(/* id 1, wireType 0 =*/8).int32(message.girlId); - if (message.times != null && Object.hasOwnProperty.call(message, "times")) - writer.uint32(/* id 2, wireType 0 =*/16).int32(message.times); + if (message.resId != null && Object.hasOwnProperty.call(message, "resId")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.resId); + if (message.type != null && Object.hasOwnProperty.call(message, "type")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.type); return writer; }; /** - * Encodes the specified CSBuyChatReq message, length delimited. Does not implicitly {@link cs.CSBuyChatReq.verify|verify} messages. + * Encodes the specified CSUnlockResourceReq message, length delimited. Does not implicitly {@link cs.CSUnlockResourceReq.verify|verify} messages. * @function encodeDelimited - * @memberof cs.CSBuyChatReq + * @memberof cs.CSUnlockResourceReq * @static - * @param {cs.ICSBuyChatReq} message CSBuyChatReq message or plain object to encode + * @param {cs.ICSUnlockResourceReq} message CSUnlockResourceReq message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CSBuyChatReq.encodeDelimited = function encodeDelimited(message, writer) { + CSUnlockResourceReq.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a CSBuyChatReq message from the specified reader or buffer. + * Decodes a CSUnlockResourceReq message from the specified reader or buffer. * @function decode - * @memberof cs.CSBuyChatReq + * @memberof cs.CSUnlockResourceReq * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {cs.CSBuyChatReq} CSBuyChatReq + * @returns {cs.CSUnlockResourceReq} CSUnlockResourceReq * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CSBuyChatReq.decode = function decode(reader, length, error) { + CSUnlockResourceReq.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.CSBuyChatReq(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.CSUnlockResourceReq(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) @@ -4448,7 +2891,11 @@ $root.cs = (function() { break; } case 2: { - message.times = reader.int32(); + message.resId = reader.int32(); + break; + } + case 3: { + message.type = reader.int32(); break; } default: @@ -4460,130 +2907,138 @@ $root.cs = (function() { }; /** - * Decodes a CSBuyChatReq message from the specified reader or buffer, length delimited. + * Decodes a CSUnlockResourceReq message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof cs.CSBuyChatReq + * @memberof cs.CSUnlockResourceReq * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {cs.CSBuyChatReq} CSBuyChatReq + * @returns {cs.CSUnlockResourceReq} CSUnlockResourceReq * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CSBuyChatReq.decodeDelimited = function decodeDelimited(reader) { + CSUnlockResourceReq.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a CSBuyChatReq message. + * Verifies a CSUnlockResourceReq message. * @function verify - * @memberof cs.CSBuyChatReq + * @memberof cs.CSUnlockResourceReq * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CSBuyChatReq.verify = function verify(message) { + CSUnlockResourceReq.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; if (message.girlId != null && message.hasOwnProperty("girlId")) if (!$util.isInteger(message.girlId)) return "girlId: integer expected"; - if (message.times != null && message.hasOwnProperty("times")) - if (!$util.isInteger(message.times)) - return "times: integer expected"; + if (message.resId != null && message.hasOwnProperty("resId")) + if (!$util.isInteger(message.resId)) + return "resId: integer expected"; + if (message.type != null && message.hasOwnProperty("type")) + if (!$util.isInteger(message.type)) + return "type: integer expected"; return null; }; /** - * Creates a CSBuyChatReq message from a plain object. Also converts values to their respective internal types. + * Creates a CSUnlockResourceReq message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof cs.CSBuyChatReq + * @memberof cs.CSUnlockResourceReq * @static * @param {Object.} object Plain object - * @returns {cs.CSBuyChatReq} CSBuyChatReq + * @returns {cs.CSUnlockResourceReq} CSUnlockResourceReq */ - CSBuyChatReq.fromObject = function fromObject(object) { - if (object instanceof $root.cs.CSBuyChatReq) + CSUnlockResourceReq.fromObject = function fromObject(object) { + if (object instanceof $root.cs.CSUnlockResourceReq) return object; - var message = new $root.cs.CSBuyChatReq(); + var message = new $root.cs.CSUnlockResourceReq(); if (object.girlId != null) message.girlId = object.girlId | 0; - if (object.times != null) - message.times = object.times | 0; + if (object.resId != null) + message.resId = object.resId | 0; + if (object.type != null) + message.type = object.type | 0; return message; }; /** - * Creates a plain object from a CSBuyChatReq message. Also converts values to other types if specified. + * Creates a plain object from a CSUnlockResourceReq message. Also converts values to other types if specified. * @function toObject - * @memberof cs.CSBuyChatReq + * @memberof cs.CSUnlockResourceReq * @static - * @param {cs.CSBuyChatReq} message CSBuyChatReq + * @param {cs.CSUnlockResourceReq} message CSUnlockResourceReq * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CSBuyChatReq.toObject = function toObject(message, options) { + CSUnlockResourceReq.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { object.girlId = 0; - object.times = 0; + object.resId = 0; + object.type = 0; } if (message.girlId != null && message.hasOwnProperty("girlId")) object.girlId = message.girlId; - if (message.times != null && message.hasOwnProperty("times")) - object.times = message.times; + if (message.resId != null && message.hasOwnProperty("resId")) + object.resId = message.resId; + if (message.type != null && message.hasOwnProperty("type")) + object.type = message.type; return object; }; /** - * Converts this CSBuyChatReq to JSON. + * Converts this CSUnlockResourceReq to JSON. * @function toJSON - * @memberof cs.CSBuyChatReq + * @memberof cs.CSUnlockResourceReq * @instance * @returns {Object.} JSON object */ - CSBuyChatReq.prototype.toJSON = function toJSON() { + CSUnlockResourceReq.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for CSBuyChatReq + * Gets the default type url for CSUnlockResourceReq * @function getTypeUrl - * @memberof cs.CSBuyChatReq + * @memberof cs.CSUnlockResourceReq * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - CSBuyChatReq.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + CSUnlockResourceReq.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/cs.CSBuyChatReq"; + return typeUrlPrefix + "/cs.CSUnlockResourceReq"; }; - return CSBuyChatReq; + return CSUnlockResourceReq; })(); - cs.CSBuyChatRes = (function() { + cs.CSUnlockResourceRes = (function() { /** - * Properties of a CSBuyChatRes. + * Properties of a CSUnlockResourceRes. * @memberof cs - * @interface ICSBuyChatRes + * @interface ICSUnlockResourceRes */ /** - * Constructs a new CSBuyChatRes. + * Constructs a new CSUnlockResourceRes. * @memberof cs - * @classdesc Represents a CSBuyChatRes. - * @implements ICSBuyChatRes + * @classdesc Represents a CSUnlockResourceRes. + * @implements ICSUnlockResourceRes * @constructor - * @param {cs.ICSBuyChatRes=} [properties] Properties to set + * @param {cs.ICSUnlockResourceRes=} [properties] Properties to set */ - function CSBuyChatRes(properties) { + function CSUnlockResourceRes(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -4591,60 +3046,60 @@ $root.cs = (function() { } /** - * Creates a new CSBuyChatRes instance using the specified properties. + * Creates a new CSUnlockResourceRes instance using the specified properties. * @function create - * @memberof cs.CSBuyChatRes + * @memberof cs.CSUnlockResourceRes * @static - * @param {cs.ICSBuyChatRes=} [properties] Properties to set - * @returns {cs.CSBuyChatRes} CSBuyChatRes instance + * @param {cs.ICSUnlockResourceRes=} [properties] Properties to set + * @returns {cs.CSUnlockResourceRes} CSUnlockResourceRes instance */ - CSBuyChatRes.create = function create(properties) { - return new CSBuyChatRes(properties); + CSUnlockResourceRes.create = function create(properties) { + return new CSUnlockResourceRes(properties); }; /** - * Encodes the specified CSBuyChatRes message. Does not implicitly {@link cs.CSBuyChatRes.verify|verify} messages. + * Encodes the specified CSUnlockResourceRes message. Does not implicitly {@link cs.CSUnlockResourceRes.verify|verify} messages. * @function encode - * @memberof cs.CSBuyChatRes + * @memberof cs.CSUnlockResourceRes * @static - * @param {cs.ICSBuyChatRes} message CSBuyChatRes message or plain object to encode + * @param {cs.ICSUnlockResourceRes} message CSUnlockResourceRes message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CSBuyChatRes.encode = function encode(message, writer) { + CSUnlockResourceRes.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); return writer; }; /** - * Encodes the specified CSBuyChatRes message, length delimited. Does not implicitly {@link cs.CSBuyChatRes.verify|verify} messages. + * Encodes the specified CSUnlockResourceRes message, length delimited. Does not implicitly {@link cs.CSUnlockResourceRes.verify|verify} messages. * @function encodeDelimited - * @memberof cs.CSBuyChatRes + * @memberof cs.CSUnlockResourceRes * @static - * @param {cs.ICSBuyChatRes} message CSBuyChatRes message or plain object to encode + * @param {cs.ICSUnlockResourceRes} message CSUnlockResourceRes message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - CSBuyChatRes.encodeDelimited = function encodeDelimited(message, writer) { + CSUnlockResourceRes.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a CSBuyChatRes message from the specified reader or buffer. + * Decodes a CSUnlockResourceRes message from the specified reader or buffer. * @function decode - * @memberof cs.CSBuyChatRes + * @memberof cs.CSUnlockResourceRes * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {cs.CSBuyChatRes} CSBuyChatRes + * @returns {cs.CSUnlockResourceRes} CSUnlockResourceRes * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CSBuyChatRes.decode = function decode(reader, length, error) { + CSUnlockResourceRes.decode = function decode(reader, length, error) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.CSBuyChatRes(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.CSUnlockResourceRes(); while (reader.pos < end) { var tag = reader.uint32(); if (tag === error) @@ -4659,89 +3114,495 @@ $root.cs = (function() { }; /** - * Decodes a CSBuyChatRes message from the specified reader or buffer, length delimited. + * Decodes a CSUnlockResourceRes message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof cs.CSBuyChatRes + * @memberof cs.CSUnlockResourceRes * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {cs.CSBuyChatRes} CSBuyChatRes + * @returns {cs.CSUnlockResourceRes} CSUnlockResourceRes * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CSBuyChatRes.decodeDelimited = function decodeDelimited(reader) { + CSUnlockResourceRes.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a CSBuyChatRes message. + * Verifies a CSUnlockResourceRes message. * @function verify - * @memberof cs.CSBuyChatRes + * @memberof cs.CSUnlockResourceRes * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CSBuyChatRes.verify = function verify(message) { + CSUnlockResourceRes.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; return null; }; /** - * Creates a CSBuyChatRes message from a plain object. Also converts values to their respective internal types. + * Creates a CSUnlockResourceRes message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof cs.CSBuyChatRes + * @memberof cs.CSUnlockResourceRes * @static * @param {Object.} object Plain object - * @returns {cs.CSBuyChatRes} CSBuyChatRes + * @returns {cs.CSUnlockResourceRes} CSUnlockResourceRes */ - CSBuyChatRes.fromObject = function fromObject(object) { - if (object instanceof $root.cs.CSBuyChatRes) + CSUnlockResourceRes.fromObject = function fromObject(object) { + if (object instanceof $root.cs.CSUnlockResourceRes) return object; - return new $root.cs.CSBuyChatRes(); + return new $root.cs.CSUnlockResourceRes(); }; /** - * Creates a plain object from a CSBuyChatRes message. Also converts values to other types if specified. + * Creates a plain object from a CSUnlockResourceRes message. Also converts values to other types if specified. * @function toObject - * @memberof cs.CSBuyChatRes + * @memberof cs.CSUnlockResourceRes * @static - * @param {cs.CSBuyChatRes} message CSBuyChatRes + * @param {cs.CSUnlockResourceRes} message CSUnlockResourceRes * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CSBuyChatRes.toObject = function toObject() { + CSUnlockResourceRes.toObject = function toObject() { return {}; }; /** - * Converts this CSBuyChatRes to JSON. + * Converts this CSUnlockResourceRes to JSON. * @function toJSON - * @memberof cs.CSBuyChatRes + * @memberof cs.CSUnlockResourceRes * @instance * @returns {Object.} JSON object */ - CSBuyChatRes.prototype.toJSON = function toJSON() { + CSUnlockResourceRes.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for CSBuyChatRes + * Gets the default type url for CSUnlockResourceRes * @function getTypeUrl - * @memberof cs.CSBuyChatRes + * @memberof cs.CSUnlockResourceRes * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - CSBuyChatRes.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + CSUnlockResourceRes.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/cs.CSBuyChatRes"; + return typeUrlPrefix + "/cs.CSUnlockResourceRes"; }; - return CSBuyChatRes; + return CSUnlockResourceRes; + })(); + + cs.CSBuyGoodReq = (function() { + + /** + * Properties of a CSBuyGoodReq. + * @memberof cs + * @interface ICSBuyGoodReq + * @property {number|null} [goodId] CSBuyGoodReq goodId + * @property {number|null} [girlId] CSBuyGoodReq girlId + */ + + /** + * Constructs a new CSBuyGoodReq. + * @memberof cs + * @classdesc Represents a CSBuyGoodReq. + * @implements ICSBuyGoodReq + * @constructor + * @param {cs.ICSBuyGoodReq=} [properties] Properties to set + */ + function CSBuyGoodReq(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CSBuyGoodReq goodId. + * @member {number} goodId + * @memberof cs.CSBuyGoodReq + * @instance + */ + CSBuyGoodReq.prototype.goodId = 0; + + /** + * CSBuyGoodReq girlId. + * @member {number} girlId + * @memberof cs.CSBuyGoodReq + * @instance + */ + CSBuyGoodReq.prototype.girlId = 0; + + /** + * Creates a new CSBuyGoodReq instance using the specified properties. + * @function create + * @memberof cs.CSBuyGoodReq + * @static + * @param {cs.ICSBuyGoodReq=} [properties] Properties to set + * @returns {cs.CSBuyGoodReq} CSBuyGoodReq instance + */ + CSBuyGoodReq.create = function create(properties) { + return new CSBuyGoodReq(properties); + }; + + /** + * Encodes the specified CSBuyGoodReq message. Does not implicitly {@link cs.CSBuyGoodReq.verify|verify} messages. + * @function encode + * @memberof cs.CSBuyGoodReq + * @static + * @param {cs.ICSBuyGoodReq} message CSBuyGoodReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CSBuyGoodReq.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.goodId != null && Object.hasOwnProperty.call(message, "goodId")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.goodId); + if (message.girlId != null && Object.hasOwnProperty.call(message, "girlId")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.girlId); + return writer; + }; + + /** + * Encodes the specified CSBuyGoodReq message, length delimited. Does not implicitly {@link cs.CSBuyGoodReq.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.CSBuyGoodReq + * @static + * @param {cs.ICSBuyGoodReq} message CSBuyGoodReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CSBuyGoodReq.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CSBuyGoodReq message from the specified reader or buffer. + * @function decode + * @memberof cs.CSBuyGoodReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.CSBuyGoodReq} CSBuyGoodReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CSBuyGoodReq.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.CSBuyGoodReq(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.goodId = reader.int32(); + break; + } + case 2: { + message.girlId = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CSBuyGoodReq message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.CSBuyGoodReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.CSBuyGoodReq} CSBuyGoodReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CSBuyGoodReq.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CSBuyGoodReq message. + * @function verify + * @memberof cs.CSBuyGoodReq + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CSBuyGoodReq.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.goodId != null && message.hasOwnProperty("goodId")) + if (!$util.isInteger(message.goodId)) + return "goodId: integer expected"; + if (message.girlId != null && message.hasOwnProperty("girlId")) + if (!$util.isInteger(message.girlId)) + return "girlId: integer expected"; + return null; + }; + + /** + * Creates a CSBuyGoodReq message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.CSBuyGoodReq + * @static + * @param {Object.} object Plain object + * @returns {cs.CSBuyGoodReq} CSBuyGoodReq + */ + CSBuyGoodReq.fromObject = function fromObject(object) { + if (object instanceof $root.cs.CSBuyGoodReq) + return object; + var message = new $root.cs.CSBuyGoodReq(); + if (object.goodId != null) + message.goodId = object.goodId | 0; + if (object.girlId != null) + message.girlId = object.girlId | 0; + return message; + }; + + /** + * Creates a plain object from a CSBuyGoodReq message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.CSBuyGoodReq + * @static + * @param {cs.CSBuyGoodReq} message CSBuyGoodReq + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CSBuyGoodReq.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.goodId = 0; + object.girlId = 0; + } + if (message.goodId != null && message.hasOwnProperty("goodId")) + object.goodId = message.goodId; + if (message.girlId != null && message.hasOwnProperty("girlId")) + object.girlId = message.girlId; + return object; + }; + + /** + * Converts this CSBuyGoodReq to JSON. + * @function toJSON + * @memberof cs.CSBuyGoodReq + * @instance + * @returns {Object.} JSON object + */ + CSBuyGoodReq.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CSBuyGoodReq + * @function getTypeUrl + * @memberof cs.CSBuyGoodReq + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CSBuyGoodReq.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.CSBuyGoodReq"; + }; + + return CSBuyGoodReq; + })(); + + cs.CSBuyGoodRes = (function() { + + /** + * Properties of a CSBuyGoodRes. + * @memberof cs + * @interface ICSBuyGoodRes + */ + + /** + * Constructs a new CSBuyGoodRes. + * @memberof cs + * @classdesc Represents a CSBuyGoodRes. + * @implements ICSBuyGoodRes + * @constructor + * @param {cs.ICSBuyGoodRes=} [properties] Properties to set + */ + function CSBuyGoodRes(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new CSBuyGoodRes instance using the specified properties. + * @function create + * @memberof cs.CSBuyGoodRes + * @static + * @param {cs.ICSBuyGoodRes=} [properties] Properties to set + * @returns {cs.CSBuyGoodRes} CSBuyGoodRes instance + */ + CSBuyGoodRes.create = function create(properties) { + return new CSBuyGoodRes(properties); + }; + + /** + * Encodes the specified CSBuyGoodRes message. Does not implicitly {@link cs.CSBuyGoodRes.verify|verify} messages. + * @function encode + * @memberof cs.CSBuyGoodRes + * @static + * @param {cs.ICSBuyGoodRes} message CSBuyGoodRes message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CSBuyGoodRes.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Encodes the specified CSBuyGoodRes message, length delimited. Does not implicitly {@link cs.CSBuyGoodRes.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.CSBuyGoodRes + * @static + * @param {cs.ICSBuyGoodRes} message CSBuyGoodRes message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CSBuyGoodRes.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CSBuyGoodRes message from the specified reader or buffer. + * @function decode + * @memberof cs.CSBuyGoodRes + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.CSBuyGoodRes} CSBuyGoodRes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CSBuyGoodRes.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.CSBuyGoodRes(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CSBuyGoodRes message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.CSBuyGoodRes + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.CSBuyGoodRes} CSBuyGoodRes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CSBuyGoodRes.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CSBuyGoodRes message. + * @function verify + * @memberof cs.CSBuyGoodRes + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CSBuyGoodRes.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + /** + * Creates a CSBuyGoodRes message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.CSBuyGoodRes + * @static + * @param {Object.} object Plain object + * @returns {cs.CSBuyGoodRes} CSBuyGoodRes + */ + CSBuyGoodRes.fromObject = function fromObject(object) { + if (object instanceof $root.cs.CSBuyGoodRes) + return object; + return new $root.cs.CSBuyGoodRes(); + }; + + /** + * Creates a plain object from a CSBuyGoodRes message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.CSBuyGoodRes + * @static + * @param {cs.CSBuyGoodRes} message CSBuyGoodRes + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CSBuyGoodRes.toObject = function toObject() { + return {}; + }; + + /** + * Converts this CSBuyGoodRes to JSON. + * @function toJSON + * @memberof cs.CSBuyGoodRes + * @instance + * @returns {Object.} JSON object + */ + CSBuyGoodRes.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CSBuyGoodRes + * @function getTypeUrl + * @memberof cs.CSBuyGoodRes + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CSBuyGoodRes.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.CSBuyGoodRes"; + }; + + return CSBuyGoodRes; })(); cs.CSCreateOrderReq = (function() { @@ -4750,7 +3611,7 @@ $root.cs = (function() { * Properties of a CSCreateOrderReq. * @memberof cs * @interface ICSCreateOrderReq - * @property {number|null} [id] CSCreateOrderReq id + * @property {number|null} [goodId] CSCreateOrderReq goodId */ /** @@ -4769,12 +3630,12 @@ $root.cs = (function() { } /** - * CSCreateOrderReq id. - * @member {number} id + * CSCreateOrderReq goodId. + * @member {number} goodId * @memberof cs.CSCreateOrderReq * @instance */ - CSCreateOrderReq.prototype.id = 0; + CSCreateOrderReq.prototype.goodId = 0; /** * Creates a new CSCreateOrderReq instance using the specified properties. @@ -4800,8 +3661,8 @@ $root.cs = (function() { CSCreateOrderReq.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.id != null && Object.hasOwnProperty.call(message, "id")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id); + if (message.goodId != null && Object.hasOwnProperty.call(message, "goodId")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.goodId); return writer; }; @@ -4839,7 +3700,7 @@ $root.cs = (function() { break; switch (tag >>> 3) { case 1: { - message.id = reader.int32(); + message.goodId = reader.int32(); break; } default: @@ -4877,9 +3738,9 @@ $root.cs = (function() { CSCreateOrderReq.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.id != null && message.hasOwnProperty("id")) - if (!$util.isInteger(message.id)) - return "id: integer expected"; + if (message.goodId != null && message.hasOwnProperty("goodId")) + if (!$util.isInteger(message.goodId)) + return "goodId: integer expected"; return null; }; @@ -4895,8 +3756,8 @@ $root.cs = (function() { if (object instanceof $root.cs.CSCreateOrderReq) return object; var message = new $root.cs.CSCreateOrderReq(); - if (object.id != null) - message.id = object.id | 0; + if (object.goodId != null) + message.goodId = object.goodId | 0; return message; }; @@ -4914,9 +3775,9 @@ $root.cs = (function() { options = {}; var object = {}; if (options.defaults) - object.id = 0; - if (message.id != null && message.hasOwnProperty("id")) - object.id = message.id; + object.goodId = 0; + if (message.goodId != null && message.hasOwnProperty("goodId")) + object.goodId = message.goodId; return object; }; @@ -5391,7 +4252,7 @@ $root.cs = (function() { * @interface ICSQueryOrderRes * @property {number|null} [status] CSQueryOrderRes status * @property {number|null} [retCode] CSQueryOrderRes retCode - * @property {number|Long|null} [diamond] CSQueryOrderRes diamond + * @property {number|Long|null} [balance] CSQueryOrderRes balance * @property {number|Long|null} [vipExpire] CSQueryOrderRes vipExpire */ @@ -5427,12 +4288,12 @@ $root.cs = (function() { CSQueryOrderRes.prototype.retCode = 0; /** - * CSQueryOrderRes diamond. - * @member {number|Long} diamond + * CSQueryOrderRes balance. + * @member {number|Long} balance * @memberof cs.CSQueryOrderRes * @instance */ - CSQueryOrderRes.prototype.diamond = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + CSQueryOrderRes.prototype.balance = $util.Long ? $util.Long.fromBits(0,0,false) : 0; /** * CSQueryOrderRes vipExpire. @@ -5470,8 +4331,8 @@ $root.cs = (function() { writer.uint32(/* id 1, wireType 0 =*/8).int32(message.status); if (message.retCode != null && Object.hasOwnProperty.call(message, "retCode")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.retCode); - if (message.diamond != null && Object.hasOwnProperty.call(message, "diamond")) - writer.uint32(/* id 3, wireType 0 =*/24).int64(message.diamond); + if (message.balance != null && Object.hasOwnProperty.call(message, "balance")) + writer.uint32(/* id 3, wireType 0 =*/24).int64(message.balance); if (message.vipExpire != null && Object.hasOwnProperty.call(message, "vipExpire")) writer.uint32(/* id 4, wireType 0 =*/32).int64(message.vipExpire); return writer; @@ -5519,7 +4380,7 @@ $root.cs = (function() { break; } case 3: { - message.diamond = reader.int64(); + message.balance = reader.int64(); break; } case 4: { @@ -5567,9 +4428,9 @@ $root.cs = (function() { if (message.retCode != null && message.hasOwnProperty("retCode")) if (!$util.isInteger(message.retCode)) return "retCode: integer expected"; - if (message.diamond != null && message.hasOwnProperty("diamond")) - if (!$util.isInteger(message.diamond) && !(message.diamond && $util.isInteger(message.diamond.low) && $util.isInteger(message.diamond.high))) - return "diamond: integer|Long expected"; + if (message.balance != null && message.hasOwnProperty("balance")) + if (!$util.isInteger(message.balance) && !(message.balance && $util.isInteger(message.balance.low) && $util.isInteger(message.balance.high))) + return "balance: integer|Long expected"; if (message.vipExpire != null && message.hasOwnProperty("vipExpire")) if (!$util.isInteger(message.vipExpire) && !(message.vipExpire && $util.isInteger(message.vipExpire.low) && $util.isInteger(message.vipExpire.high))) return "vipExpire: integer|Long expected"; @@ -5592,15 +4453,15 @@ $root.cs = (function() { message.status = object.status | 0; if (object.retCode != null) message.retCode = object.retCode | 0; - if (object.diamond != null) + if (object.balance != null) if ($util.Long) - (message.diamond = $util.Long.fromValue(object.diamond)).unsigned = false; - else if (typeof object.diamond === "string") - message.diamond = parseInt(object.diamond, 10); - else if (typeof object.diamond === "number") - message.diamond = object.diamond; - else if (typeof object.diamond === "object") - message.diamond = new $util.LongBits(object.diamond.low >>> 0, object.diamond.high >>> 0).toNumber(); + (message.balance = $util.Long.fromValue(object.balance)).unsigned = false; + else if (typeof object.balance === "string") + message.balance = parseInt(object.balance, 10); + else if (typeof object.balance === "number") + message.balance = object.balance; + else if (typeof object.balance === "object") + message.balance = new $util.LongBits(object.balance.low >>> 0, object.balance.high >>> 0).toNumber(); if (object.vipExpire != null) if ($util.Long) (message.vipExpire = $util.Long.fromValue(object.vipExpire)).unsigned = false; @@ -5631,9 +4492,9 @@ $root.cs = (function() { object.retCode = 0; if ($util.Long) { var long = new $util.Long(0, 0, false); - object.diamond = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.balance = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; } else - object.diamond = options.longs === String ? "0" : 0; + object.balance = options.longs === String ? "0" : 0; if ($util.Long) { var long = new $util.Long(0, 0, false); object.vipExpire = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; @@ -5644,11 +4505,11 @@ $root.cs = (function() { object.status = message.status; if (message.retCode != null && message.hasOwnProperty("retCode")) object.retCode = message.retCode; - if (message.diamond != null && message.hasOwnProperty("diamond")) - if (typeof message.diamond === "number") - object.diamond = options.longs === String ? String(message.diamond) : message.diamond; + if (message.balance != null && message.hasOwnProperty("balance")) + if (typeof message.balance === "number") + object.balance = options.longs === String ? String(message.balance) : message.balance; else - object.diamond = options.longs === String ? $util.Long.prototype.toString.call(message.diamond) : options.longs === Number ? new $util.LongBits(message.diamond.low >>> 0, message.diamond.high >>> 0).toNumber() : message.diamond; + object.balance = options.longs === String ? $util.Long.prototype.toString.call(message.balance) : options.longs === Number ? new $util.LongBits(message.balance.low >>> 0, message.balance.high >>> 0).toNumber() : message.balance; if (message.vipExpire != null && message.hasOwnProperty("vipExpire")) if (typeof message.vipExpire === "number") object.vipExpire = options.longs === String ? String(message.vipExpire) : message.vipExpire; @@ -5921,6 +4782,7 @@ $root.cs = (function() { * Properties of a CSChatMsgReq. * @memberof cs * @interface ICSChatMsgReq + * @property {number|null} [girlId] CSChatMsgReq girlId * @property {Array.|null} [msgs] CSChatMsgReq msgs */ @@ -5940,6 +4802,14 @@ $root.cs = (function() { this[keys[i]] = properties[keys[i]]; } + /** + * CSChatMsgReq girlId. + * @member {number} girlId + * @memberof cs.CSChatMsgReq + * @instance + */ + CSChatMsgReq.prototype.girlId = 0; + /** * CSChatMsgReq msgs. * @member {Array.} msgs @@ -5972,9 +4842,11 @@ $root.cs = (function() { CSChatMsgReq.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); + if (message.girlId != null && Object.hasOwnProperty.call(message, "girlId")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.girlId); if (message.msgs != null && message.msgs.length) for (var i = 0; i < message.msgs.length; ++i) - $root.cs.ChatMsg.encode(message.msgs[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + $root.cs.ChatMsg.encode(message.msgs[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; @@ -6012,6 +4884,10 @@ $root.cs = (function() { break; switch (tag >>> 3) { case 1: { + message.girlId = reader.int32(); + break; + } + case 2: { if (!(message.msgs && message.msgs.length)) message.msgs = []; message.msgs.push($root.cs.ChatMsg.decode(reader, reader.uint32())); @@ -6052,6 +4928,9 @@ $root.cs = (function() { CSChatMsgReq.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; + if (message.girlId != null && message.hasOwnProperty("girlId")) + if (!$util.isInteger(message.girlId)) + return "girlId: integer expected"; if (message.msgs != null && message.hasOwnProperty("msgs")) { if (!Array.isArray(message.msgs)) return "msgs: array expected"; @@ -6076,6 +4955,8 @@ $root.cs = (function() { if (object instanceof $root.cs.CSChatMsgReq) return object; var message = new $root.cs.CSChatMsgReq(); + if (object.girlId != null) + message.girlId = object.girlId | 0; if (object.msgs) { if (!Array.isArray(object.msgs)) throw TypeError(".cs.CSChatMsgReq.msgs: array expected"); @@ -6104,6 +4985,10 @@ $root.cs = (function() { var object = {}; if (options.arrays || options.defaults) object.msgs = []; + if (options.defaults) + object.girlId = 0; + if (message.girlId != null && message.hasOwnProperty("girlId")) + object.girlId = message.girlId; if (message.msgs && message.msgs.length) { object.msgs = []; for (var j = 0; j < message.msgs.length; ++j) @@ -6147,6 +5032,8 @@ $root.cs = (function() { * Properties of a CSChatMsgRes. * @memberof cs * @interface ICSChatMsgRes + * @property {number|null} [chatRemainCount] CSChatMsgRes chatRemainCount + * @property {number|null} [chatTotalCount] CSChatMsgRes chatTotalCount */ /** @@ -6164,6 +5051,22 @@ $root.cs = (function() { this[keys[i]] = properties[keys[i]]; } + /** + * CSChatMsgRes chatRemainCount. + * @member {number} chatRemainCount + * @memberof cs.CSChatMsgRes + * @instance + */ + CSChatMsgRes.prototype.chatRemainCount = 0; + + /** + * CSChatMsgRes chatTotalCount. + * @member {number} chatTotalCount + * @memberof cs.CSChatMsgRes + * @instance + */ + CSChatMsgRes.prototype.chatTotalCount = 0; + /** * Creates a new CSChatMsgRes instance using the specified properties. * @function create @@ -6188,6 +5091,10 @@ $root.cs = (function() { CSChatMsgRes.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); + if (message.chatRemainCount != null && Object.hasOwnProperty.call(message, "chatRemainCount")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.chatRemainCount); + if (message.chatTotalCount != null && Object.hasOwnProperty.call(message, "chatTotalCount")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.chatTotalCount); return writer; }; @@ -6224,6 +5131,14 @@ $root.cs = (function() { if (tag === error) break; switch (tag >>> 3) { + case 1: { + message.chatRemainCount = reader.int32(); + break; + } + case 2: { + message.chatTotalCount = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -6259,6 +5174,12 @@ $root.cs = (function() { CSChatMsgRes.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; + if (message.chatRemainCount != null && message.hasOwnProperty("chatRemainCount")) + if (!$util.isInteger(message.chatRemainCount)) + return "chatRemainCount: integer expected"; + if (message.chatTotalCount != null && message.hasOwnProperty("chatTotalCount")) + if (!$util.isInteger(message.chatTotalCount)) + return "chatTotalCount: integer expected"; return null; }; @@ -6273,7 +5194,12 @@ $root.cs = (function() { CSChatMsgRes.fromObject = function fromObject(object) { if (object instanceof $root.cs.CSChatMsgRes) return object; - return new $root.cs.CSChatMsgRes(); + var message = new $root.cs.CSChatMsgRes(); + if (object.chatRemainCount != null) + message.chatRemainCount = object.chatRemainCount | 0; + if (object.chatTotalCount != null) + message.chatTotalCount = object.chatTotalCount | 0; + return message; }; /** @@ -6285,8 +5211,19 @@ $root.cs = (function() { * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - CSChatMsgRes.toObject = function toObject() { - return {}; + CSChatMsgRes.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.chatRemainCount = 0; + object.chatTotalCount = 0; + } + if (message.chatRemainCount != null && message.hasOwnProperty("chatRemainCount")) + object.chatRemainCount = message.chatRemainCount; + if (message.chatTotalCount != null && message.hasOwnProperty("chatTotalCount")) + object.chatTotalCount = message.chatTotalCount; + return object; }; /** @@ -6326,6 +5263,7 @@ $root.cs = (function() { * @interface ICSGetChatMsgReq * @property {number|null} [page] CSGetChatMsgReq page * @property {number|null} [limit] CSGetChatMsgReq limit + * @property {number|null} [GirlId] CSGetChatMsgReq GirlId */ /** @@ -6359,6 +5297,14 @@ $root.cs = (function() { */ CSGetChatMsgReq.prototype.limit = 0; + /** + * CSGetChatMsgReq GirlId. + * @member {number} GirlId + * @memberof cs.CSGetChatMsgReq + * @instance + */ + CSGetChatMsgReq.prototype.GirlId = 0; + /** * Creates a new CSGetChatMsgReq instance using the specified properties. * @function create @@ -6387,6 +5333,8 @@ $root.cs = (function() { writer.uint32(/* id 1, wireType 0 =*/8).int32(message.page); if (message.limit != null && Object.hasOwnProperty.call(message, "limit")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.limit); + if (message.GirlId != null && Object.hasOwnProperty.call(message, "GirlId")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.GirlId); return writer; }; @@ -6431,6 +5379,10 @@ $root.cs = (function() { message.limit = reader.int32(); break; } + case 3: { + message.GirlId = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -6472,6 +5424,9 @@ $root.cs = (function() { if (message.limit != null && message.hasOwnProperty("limit")) if (!$util.isInteger(message.limit)) return "limit: integer expected"; + if (message.GirlId != null && message.hasOwnProperty("GirlId")) + if (!$util.isInteger(message.GirlId)) + return "GirlId: integer expected"; return null; }; @@ -6491,6 +5446,8 @@ $root.cs = (function() { message.page = object.page | 0; if (object.limit != null) message.limit = object.limit | 0; + if (object.GirlId != null) + message.GirlId = object.GirlId | 0; return message; }; @@ -6510,11 +5467,14 @@ $root.cs = (function() { if (options.defaults) { object.page = 0; object.limit = 0; + object.GirlId = 0; } if (message.page != null && message.hasOwnProperty("page")) object.page = message.page; if (message.limit != null && message.hasOwnProperty("limit")) object.limit = message.limit; + if (message.GirlId != null && message.hasOwnProperty("GirlId")) + object.GirlId = message.GirlId; return object; }; @@ -6554,6 +5514,8 @@ $root.cs = (function() { * @memberof cs * @interface ICSGetChatMsgRes * @property {Array.|null} [msgs] CSGetChatMsgRes msgs + * @property {number|null} [chatRemainCount] CSGetChatMsgRes chatRemainCount + * @property {number|null} [chatTotalCount] CSGetChatMsgRes chatTotalCount */ /** @@ -6580,6 +5542,22 @@ $root.cs = (function() { */ CSGetChatMsgRes.prototype.msgs = $util.emptyArray; + /** + * CSGetChatMsgRes chatRemainCount. + * @member {number} chatRemainCount + * @memberof cs.CSGetChatMsgRes + * @instance + */ + CSGetChatMsgRes.prototype.chatRemainCount = 0; + + /** + * CSGetChatMsgRes chatTotalCount. + * @member {number} chatTotalCount + * @memberof cs.CSGetChatMsgRes + * @instance + */ + CSGetChatMsgRes.prototype.chatTotalCount = 0; + /** * Creates a new CSGetChatMsgRes instance using the specified properties. * @function create @@ -6607,6 +5585,10 @@ $root.cs = (function() { if (message.msgs != null && message.msgs.length) for (var i = 0; i < message.msgs.length; ++i) $root.cs.ChatMsg.encode(message.msgs[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.chatRemainCount != null && Object.hasOwnProperty.call(message, "chatRemainCount")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.chatRemainCount); + if (message.chatTotalCount != null && Object.hasOwnProperty.call(message, "chatTotalCount")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.chatTotalCount); return writer; }; @@ -6649,6 +5631,14 @@ $root.cs = (function() { message.msgs.push($root.cs.ChatMsg.decode(reader, reader.uint32())); break; } + case 2: { + message.chatRemainCount = reader.int32(); + break; + } + case 3: { + message.chatTotalCount = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -6693,6 +5683,12 @@ $root.cs = (function() { return "msgs." + error; } } + if (message.chatRemainCount != null && message.hasOwnProperty("chatRemainCount")) + if (!$util.isInteger(message.chatRemainCount)) + return "chatRemainCount: integer expected"; + if (message.chatTotalCount != null && message.hasOwnProperty("chatTotalCount")) + if (!$util.isInteger(message.chatTotalCount)) + return "chatTotalCount: integer expected"; return null; }; @@ -6718,6 +5714,10 @@ $root.cs = (function() { message.msgs[i] = $root.cs.ChatMsg.fromObject(object.msgs[i]); } } + if (object.chatRemainCount != null) + message.chatRemainCount = object.chatRemainCount | 0; + if (object.chatTotalCount != null) + message.chatTotalCount = object.chatTotalCount | 0; return message; }; @@ -6736,11 +5736,19 @@ $root.cs = (function() { var object = {}; if (options.arrays || options.defaults) object.msgs = []; + if (options.defaults) { + object.chatRemainCount = 0; + object.chatTotalCount = 0; + } if (message.msgs && message.msgs.length) { object.msgs = []; for (var j = 0; j < message.msgs.length; ++j) object.msgs[j] = $root.cs.ChatMsg.toObject(message.msgs[j], options); } + if (message.chatRemainCount != null && message.hasOwnProperty("chatRemainCount")) + object.chatRemainCount = message.chatRemainCount; + if (message.chatTotalCount != null && message.hasOwnProperty("chatTotalCount")) + object.chatTotalCount = message.chatTotalCount; return object; }; @@ -6773,6 +5781,6730 @@ $root.cs = (function() { return CSGetChatMsgRes; })(); + cs.CSGetChatRemainCountReq = (function() { + + /** + * Properties of a CSGetChatRemainCountReq. + * @memberof cs + * @interface ICSGetChatRemainCountReq + * @property {number|null} [id] CSGetChatRemainCountReq id + */ + + /** + * Constructs a new CSGetChatRemainCountReq. + * @memberof cs + * @classdesc Represents a CSGetChatRemainCountReq. + * @implements ICSGetChatRemainCountReq + * @constructor + * @param {cs.ICSGetChatRemainCountReq=} [properties] Properties to set + */ + function CSGetChatRemainCountReq(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CSGetChatRemainCountReq id. + * @member {number} id + * @memberof cs.CSGetChatRemainCountReq + * @instance + */ + CSGetChatRemainCountReq.prototype.id = 0; + + /** + * Creates a new CSGetChatRemainCountReq instance using the specified properties. + * @function create + * @memberof cs.CSGetChatRemainCountReq + * @static + * @param {cs.ICSGetChatRemainCountReq=} [properties] Properties to set + * @returns {cs.CSGetChatRemainCountReq} CSGetChatRemainCountReq instance + */ + CSGetChatRemainCountReq.create = function create(properties) { + return new CSGetChatRemainCountReq(properties); + }; + + /** + * Encodes the specified CSGetChatRemainCountReq message. Does not implicitly {@link cs.CSGetChatRemainCountReq.verify|verify} messages. + * @function encode + * @memberof cs.CSGetChatRemainCountReq + * @static + * @param {cs.ICSGetChatRemainCountReq} message CSGetChatRemainCountReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CSGetChatRemainCountReq.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.id != null && Object.hasOwnProperty.call(message, "id")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id); + return writer; + }; + + /** + * Encodes the specified CSGetChatRemainCountReq message, length delimited. Does not implicitly {@link cs.CSGetChatRemainCountReq.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.CSGetChatRemainCountReq + * @static + * @param {cs.ICSGetChatRemainCountReq} message CSGetChatRemainCountReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CSGetChatRemainCountReq.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CSGetChatRemainCountReq message from the specified reader or buffer. + * @function decode + * @memberof cs.CSGetChatRemainCountReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.CSGetChatRemainCountReq} CSGetChatRemainCountReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CSGetChatRemainCountReq.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.CSGetChatRemainCountReq(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.id = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CSGetChatRemainCountReq message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.CSGetChatRemainCountReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.CSGetChatRemainCountReq} CSGetChatRemainCountReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CSGetChatRemainCountReq.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CSGetChatRemainCountReq message. + * @function verify + * @memberof cs.CSGetChatRemainCountReq + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CSGetChatRemainCountReq.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.id != null && message.hasOwnProperty("id")) + if (!$util.isInteger(message.id)) + return "id: integer expected"; + return null; + }; + + /** + * Creates a CSGetChatRemainCountReq message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.CSGetChatRemainCountReq + * @static + * @param {Object.} object Plain object + * @returns {cs.CSGetChatRemainCountReq} CSGetChatRemainCountReq + */ + CSGetChatRemainCountReq.fromObject = function fromObject(object) { + if (object instanceof $root.cs.CSGetChatRemainCountReq) + return object; + var message = new $root.cs.CSGetChatRemainCountReq(); + if (object.id != null) + message.id = object.id | 0; + return message; + }; + + /** + * Creates a plain object from a CSGetChatRemainCountReq message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.CSGetChatRemainCountReq + * @static + * @param {cs.CSGetChatRemainCountReq} message CSGetChatRemainCountReq + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CSGetChatRemainCountReq.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.id = 0; + if (message.id != null && message.hasOwnProperty("id")) + object.id = message.id; + return object; + }; + + /** + * Converts this CSGetChatRemainCountReq to JSON. + * @function toJSON + * @memberof cs.CSGetChatRemainCountReq + * @instance + * @returns {Object.} JSON object + */ + CSGetChatRemainCountReq.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CSGetChatRemainCountReq + * @function getTypeUrl + * @memberof cs.CSGetChatRemainCountReq + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CSGetChatRemainCountReq.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.CSGetChatRemainCountReq"; + }; + + return CSGetChatRemainCountReq; + })(); + + cs.CSGetChatRemainCountRes = (function() { + + /** + * Properties of a CSGetChatRemainCountRes. + * @memberof cs + * @interface ICSGetChatRemainCountRes + * @property {number|null} [chatRemainCount] CSGetChatRemainCountRes chatRemainCount + * @property {number|null} [chatTotalCount] CSGetChatRemainCountRes chatTotalCount + */ + + /** + * Constructs a new CSGetChatRemainCountRes. + * @memberof cs + * @classdesc Represents a CSGetChatRemainCountRes. + * @implements ICSGetChatRemainCountRes + * @constructor + * @param {cs.ICSGetChatRemainCountRes=} [properties] Properties to set + */ + function CSGetChatRemainCountRes(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CSGetChatRemainCountRes chatRemainCount. + * @member {number} chatRemainCount + * @memberof cs.CSGetChatRemainCountRes + * @instance + */ + CSGetChatRemainCountRes.prototype.chatRemainCount = 0; + + /** + * CSGetChatRemainCountRes chatTotalCount. + * @member {number} chatTotalCount + * @memberof cs.CSGetChatRemainCountRes + * @instance + */ + CSGetChatRemainCountRes.prototype.chatTotalCount = 0; + + /** + * Creates a new CSGetChatRemainCountRes instance using the specified properties. + * @function create + * @memberof cs.CSGetChatRemainCountRes + * @static + * @param {cs.ICSGetChatRemainCountRes=} [properties] Properties to set + * @returns {cs.CSGetChatRemainCountRes} CSGetChatRemainCountRes instance + */ + CSGetChatRemainCountRes.create = function create(properties) { + return new CSGetChatRemainCountRes(properties); + }; + + /** + * Encodes the specified CSGetChatRemainCountRes message. Does not implicitly {@link cs.CSGetChatRemainCountRes.verify|verify} messages. + * @function encode + * @memberof cs.CSGetChatRemainCountRes + * @static + * @param {cs.ICSGetChatRemainCountRes} message CSGetChatRemainCountRes message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CSGetChatRemainCountRes.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.chatRemainCount != null && Object.hasOwnProperty.call(message, "chatRemainCount")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.chatRemainCount); + if (message.chatTotalCount != null && Object.hasOwnProperty.call(message, "chatTotalCount")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.chatTotalCount); + return writer; + }; + + /** + * Encodes the specified CSGetChatRemainCountRes message, length delimited. Does not implicitly {@link cs.CSGetChatRemainCountRes.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.CSGetChatRemainCountRes + * @static + * @param {cs.ICSGetChatRemainCountRes} message CSGetChatRemainCountRes message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CSGetChatRemainCountRes.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CSGetChatRemainCountRes message from the specified reader or buffer. + * @function decode + * @memberof cs.CSGetChatRemainCountRes + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.CSGetChatRemainCountRes} CSGetChatRemainCountRes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CSGetChatRemainCountRes.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.CSGetChatRemainCountRes(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.chatRemainCount = reader.int32(); + break; + } + case 2: { + message.chatTotalCount = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CSGetChatRemainCountRes message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.CSGetChatRemainCountRes + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.CSGetChatRemainCountRes} CSGetChatRemainCountRes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CSGetChatRemainCountRes.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CSGetChatRemainCountRes message. + * @function verify + * @memberof cs.CSGetChatRemainCountRes + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CSGetChatRemainCountRes.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.chatRemainCount != null && message.hasOwnProperty("chatRemainCount")) + if (!$util.isInteger(message.chatRemainCount)) + return "chatRemainCount: integer expected"; + if (message.chatTotalCount != null && message.hasOwnProperty("chatTotalCount")) + if (!$util.isInteger(message.chatTotalCount)) + return "chatTotalCount: integer expected"; + return null; + }; + + /** + * Creates a CSGetChatRemainCountRes message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.CSGetChatRemainCountRes + * @static + * @param {Object.} object Plain object + * @returns {cs.CSGetChatRemainCountRes} CSGetChatRemainCountRes + */ + CSGetChatRemainCountRes.fromObject = function fromObject(object) { + if (object instanceof $root.cs.CSGetChatRemainCountRes) + return object; + var message = new $root.cs.CSGetChatRemainCountRes(); + if (object.chatRemainCount != null) + message.chatRemainCount = object.chatRemainCount | 0; + if (object.chatTotalCount != null) + message.chatTotalCount = object.chatTotalCount | 0; + return message; + }; + + /** + * Creates a plain object from a CSGetChatRemainCountRes message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.CSGetChatRemainCountRes + * @static + * @param {cs.CSGetChatRemainCountRes} message CSGetChatRemainCountRes + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CSGetChatRemainCountRes.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.chatRemainCount = 0; + object.chatTotalCount = 0; + } + if (message.chatRemainCount != null && message.hasOwnProperty("chatRemainCount")) + object.chatRemainCount = message.chatRemainCount; + if (message.chatTotalCount != null && message.hasOwnProperty("chatTotalCount")) + object.chatTotalCount = message.chatTotalCount; + return object; + }; + + /** + * Converts this CSGetChatRemainCountRes to JSON. + * @function toJSON + * @memberof cs.CSGetChatRemainCountRes + * @instance + * @returns {Object.} JSON object + */ + CSGetChatRemainCountRes.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CSGetChatRemainCountRes + * @function getTypeUrl + * @memberof cs.CSGetChatRemainCountRes + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CSGetChatRemainCountRes.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.CSGetChatRemainCountRes"; + }; + + return CSGetChatRemainCountRes; + })(); + + cs.CSGetResConfigReq = (function() { + + /** + * Properties of a CSGetResConfigReq. + * @memberof cs + * @interface ICSGetResConfigReq + * @property {string|null} [resName] CSGetResConfigReq resName + */ + + /** + * Constructs a new CSGetResConfigReq. + * @memberof cs + * @classdesc Represents a CSGetResConfigReq. + * @implements ICSGetResConfigReq + * @constructor + * @param {cs.ICSGetResConfigReq=} [properties] Properties to set + */ + function CSGetResConfigReq(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CSGetResConfigReq resName. + * @member {string} resName + * @memberof cs.CSGetResConfigReq + * @instance + */ + CSGetResConfigReq.prototype.resName = ""; + + /** + * Creates a new CSGetResConfigReq instance using the specified properties. + * @function create + * @memberof cs.CSGetResConfigReq + * @static + * @param {cs.ICSGetResConfigReq=} [properties] Properties to set + * @returns {cs.CSGetResConfigReq} CSGetResConfigReq instance + */ + CSGetResConfigReq.create = function create(properties) { + return new CSGetResConfigReq(properties); + }; + + /** + * Encodes the specified CSGetResConfigReq message. Does not implicitly {@link cs.CSGetResConfigReq.verify|verify} messages. + * @function encode + * @memberof cs.CSGetResConfigReq + * @static + * @param {cs.ICSGetResConfigReq} message CSGetResConfigReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CSGetResConfigReq.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.resName != null && Object.hasOwnProperty.call(message, "resName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.resName); + return writer; + }; + + /** + * Encodes the specified CSGetResConfigReq message, length delimited. Does not implicitly {@link cs.CSGetResConfigReq.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.CSGetResConfigReq + * @static + * @param {cs.ICSGetResConfigReq} message CSGetResConfigReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CSGetResConfigReq.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CSGetResConfigReq message from the specified reader or buffer. + * @function decode + * @memberof cs.CSGetResConfigReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.CSGetResConfigReq} CSGetResConfigReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CSGetResConfigReq.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.CSGetResConfigReq(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.resName = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CSGetResConfigReq message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.CSGetResConfigReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.CSGetResConfigReq} CSGetResConfigReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CSGetResConfigReq.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CSGetResConfigReq message. + * @function verify + * @memberof cs.CSGetResConfigReq + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CSGetResConfigReq.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.resName != null && message.hasOwnProperty("resName")) + if (!$util.isString(message.resName)) + return "resName: string expected"; + return null; + }; + + /** + * Creates a CSGetResConfigReq message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.CSGetResConfigReq + * @static + * @param {Object.} object Plain object + * @returns {cs.CSGetResConfigReq} CSGetResConfigReq + */ + CSGetResConfigReq.fromObject = function fromObject(object) { + if (object instanceof $root.cs.CSGetResConfigReq) + return object; + var message = new $root.cs.CSGetResConfigReq(); + if (object.resName != null) + message.resName = String(object.resName); + return message; + }; + + /** + * Creates a plain object from a CSGetResConfigReq message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.CSGetResConfigReq + * @static + * @param {cs.CSGetResConfigReq} message CSGetResConfigReq + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CSGetResConfigReq.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.resName = ""; + if (message.resName != null && message.hasOwnProperty("resName")) + object.resName = message.resName; + return object; + }; + + /** + * Converts this CSGetResConfigReq to JSON. + * @function toJSON + * @memberof cs.CSGetResConfigReq + * @instance + * @returns {Object.} JSON object + */ + CSGetResConfigReq.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CSGetResConfigReq + * @function getTypeUrl + * @memberof cs.CSGetResConfigReq + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CSGetResConfigReq.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.CSGetResConfigReq"; + }; + + return CSGetResConfigReq; + })(); + + cs.CSGetResConfigRes = (function() { + + /** + * Properties of a CSGetResConfigRes. + * @memberof cs + * @interface ICSGetResConfigRes + * @property {string|null} [data] CSGetResConfigRes data + */ + + /** + * Constructs a new CSGetResConfigRes. + * @memberof cs + * @classdesc Represents a CSGetResConfigRes. + * @implements ICSGetResConfigRes + * @constructor + * @param {cs.ICSGetResConfigRes=} [properties] Properties to set + */ + function CSGetResConfigRes(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CSGetResConfigRes data. + * @member {string} data + * @memberof cs.CSGetResConfigRes + * @instance + */ + CSGetResConfigRes.prototype.data = ""; + + /** + * Creates a new CSGetResConfigRes instance using the specified properties. + * @function create + * @memberof cs.CSGetResConfigRes + * @static + * @param {cs.ICSGetResConfigRes=} [properties] Properties to set + * @returns {cs.CSGetResConfigRes} CSGetResConfigRes instance + */ + CSGetResConfigRes.create = function create(properties) { + return new CSGetResConfigRes(properties); + }; + + /** + * Encodes the specified CSGetResConfigRes message. Does not implicitly {@link cs.CSGetResConfigRes.verify|verify} messages. + * @function encode + * @memberof cs.CSGetResConfigRes + * @static + * @param {cs.ICSGetResConfigRes} message CSGetResConfigRes message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CSGetResConfigRes.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.data != null && Object.hasOwnProperty.call(message, "data")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.data); + return writer; + }; + + /** + * Encodes the specified CSGetResConfigRes message, length delimited. Does not implicitly {@link cs.CSGetResConfigRes.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.CSGetResConfigRes + * @static + * @param {cs.ICSGetResConfigRes} message CSGetResConfigRes message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CSGetResConfigRes.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CSGetResConfigRes message from the specified reader or buffer. + * @function decode + * @memberof cs.CSGetResConfigRes + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.CSGetResConfigRes} CSGetResConfigRes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CSGetResConfigRes.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.CSGetResConfigRes(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.data = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CSGetResConfigRes message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.CSGetResConfigRes + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.CSGetResConfigRes} CSGetResConfigRes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CSGetResConfigRes.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CSGetResConfigRes message. + * @function verify + * @memberof cs.CSGetResConfigRes + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CSGetResConfigRes.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.data != null && message.hasOwnProperty("data")) + if (!$util.isString(message.data)) + return "data: string expected"; + return null; + }; + + /** + * Creates a CSGetResConfigRes message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.CSGetResConfigRes + * @static + * @param {Object.} object Plain object + * @returns {cs.CSGetResConfigRes} CSGetResConfigRes + */ + CSGetResConfigRes.fromObject = function fromObject(object) { + if (object instanceof $root.cs.CSGetResConfigRes) + return object; + var message = new $root.cs.CSGetResConfigRes(); + if (object.data != null) + message.data = String(object.data); + return message; + }; + + /** + * Creates a plain object from a CSGetResConfigRes message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.CSGetResConfigRes + * @static + * @param {cs.CSGetResConfigRes} message CSGetResConfigRes + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CSGetResConfigRes.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.data = ""; + if (message.data != null && message.hasOwnProperty("data")) + object.data = message.data; + return object; + }; + + /** + * Converts this CSGetResConfigRes to JSON. + * @function toJSON + * @memberof cs.CSGetResConfigRes + * @instance + * @returns {Object.} JSON object + */ + CSGetResConfigRes.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CSGetResConfigRes + * @function getTypeUrl + * @memberof cs.CSGetResConfigRes + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CSGetResConfigRes.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.CSGetResConfigRes"; + }; + + return CSGetResConfigRes; + })(); + + cs.CSGetPurchaseReq = (function() { + + /** + * Properties of a CSGetPurchaseReq. + * @memberof cs + * @interface ICSGetPurchaseReq + */ + + /** + * Constructs a new CSGetPurchaseReq. + * @memberof cs + * @classdesc Represents a CSGetPurchaseReq. + * @implements ICSGetPurchaseReq + * @constructor + * @param {cs.ICSGetPurchaseReq=} [properties] Properties to set + */ + function CSGetPurchaseReq(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new CSGetPurchaseReq instance using the specified properties. + * @function create + * @memberof cs.CSGetPurchaseReq + * @static + * @param {cs.ICSGetPurchaseReq=} [properties] Properties to set + * @returns {cs.CSGetPurchaseReq} CSGetPurchaseReq instance + */ + CSGetPurchaseReq.create = function create(properties) { + return new CSGetPurchaseReq(properties); + }; + + /** + * Encodes the specified CSGetPurchaseReq message. Does not implicitly {@link cs.CSGetPurchaseReq.verify|verify} messages. + * @function encode + * @memberof cs.CSGetPurchaseReq + * @static + * @param {cs.ICSGetPurchaseReq} message CSGetPurchaseReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CSGetPurchaseReq.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Encodes the specified CSGetPurchaseReq message, length delimited. Does not implicitly {@link cs.CSGetPurchaseReq.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.CSGetPurchaseReq + * @static + * @param {cs.ICSGetPurchaseReq} message CSGetPurchaseReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CSGetPurchaseReq.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CSGetPurchaseReq message from the specified reader or buffer. + * @function decode + * @memberof cs.CSGetPurchaseReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.CSGetPurchaseReq} CSGetPurchaseReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CSGetPurchaseReq.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.CSGetPurchaseReq(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CSGetPurchaseReq message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.CSGetPurchaseReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.CSGetPurchaseReq} CSGetPurchaseReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CSGetPurchaseReq.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CSGetPurchaseReq message. + * @function verify + * @memberof cs.CSGetPurchaseReq + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CSGetPurchaseReq.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + /** + * Creates a CSGetPurchaseReq message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.CSGetPurchaseReq + * @static + * @param {Object.} object Plain object + * @returns {cs.CSGetPurchaseReq} CSGetPurchaseReq + */ + CSGetPurchaseReq.fromObject = function fromObject(object) { + if (object instanceof $root.cs.CSGetPurchaseReq) + return object; + return new $root.cs.CSGetPurchaseReq(); + }; + + /** + * Creates a plain object from a CSGetPurchaseReq message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.CSGetPurchaseReq + * @static + * @param {cs.CSGetPurchaseReq} message CSGetPurchaseReq + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CSGetPurchaseReq.toObject = function toObject() { + return {}; + }; + + /** + * Converts this CSGetPurchaseReq to JSON. + * @function toJSON + * @memberof cs.CSGetPurchaseReq + * @instance + * @returns {Object.} JSON object + */ + CSGetPurchaseReq.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CSGetPurchaseReq + * @function getTypeUrl + * @memberof cs.CSGetPurchaseReq + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CSGetPurchaseReq.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.CSGetPurchaseReq"; + }; + + return CSGetPurchaseReq; + })(); + + cs.CSGetPurchaseRes = (function() { + + /** + * Properties of a CSGetPurchaseRes. + * @memberof cs + * @interface ICSGetPurchaseRes + * @property {Array.|null} [items] CSGetPurchaseRes items + */ + + /** + * Constructs a new CSGetPurchaseRes. + * @memberof cs + * @classdesc Represents a CSGetPurchaseRes. + * @implements ICSGetPurchaseRes + * @constructor + * @param {cs.ICSGetPurchaseRes=} [properties] Properties to set + */ + function CSGetPurchaseRes(properties) { + this.items = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CSGetPurchaseRes items. + * @member {Array.} items + * @memberof cs.CSGetPurchaseRes + * @instance + */ + CSGetPurchaseRes.prototype.items = $util.emptyArray; + + /** + * Creates a new CSGetPurchaseRes instance using the specified properties. + * @function create + * @memberof cs.CSGetPurchaseRes + * @static + * @param {cs.ICSGetPurchaseRes=} [properties] Properties to set + * @returns {cs.CSGetPurchaseRes} CSGetPurchaseRes instance + */ + CSGetPurchaseRes.create = function create(properties) { + return new CSGetPurchaseRes(properties); + }; + + /** + * Encodes the specified CSGetPurchaseRes message. Does not implicitly {@link cs.CSGetPurchaseRes.verify|verify} messages. + * @function encode + * @memberof cs.CSGetPurchaseRes + * @static + * @param {cs.ICSGetPurchaseRes} message CSGetPurchaseRes message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CSGetPurchaseRes.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.items != null && message.items.length) + for (var i = 0; i < message.items.length; ++i) + $root.cs.PurchaseConfig.encode(message.items[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified CSGetPurchaseRes message, length delimited. Does not implicitly {@link cs.CSGetPurchaseRes.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.CSGetPurchaseRes + * @static + * @param {cs.ICSGetPurchaseRes} message CSGetPurchaseRes message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CSGetPurchaseRes.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CSGetPurchaseRes message from the specified reader or buffer. + * @function decode + * @memberof cs.CSGetPurchaseRes + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.CSGetPurchaseRes} CSGetPurchaseRes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CSGetPurchaseRes.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.CSGetPurchaseRes(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + if (!(message.items && message.items.length)) + message.items = []; + message.items.push($root.cs.PurchaseConfig.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CSGetPurchaseRes message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.CSGetPurchaseRes + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.CSGetPurchaseRes} CSGetPurchaseRes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CSGetPurchaseRes.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CSGetPurchaseRes message. + * @function verify + * @memberof cs.CSGetPurchaseRes + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CSGetPurchaseRes.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.items != null && message.hasOwnProperty("items")) { + if (!Array.isArray(message.items)) + return "items: array expected"; + for (var i = 0; i < message.items.length; ++i) { + var error = $root.cs.PurchaseConfig.verify(message.items[i]); + if (error) + return "items." + error; + } + } + return null; + }; + + /** + * Creates a CSGetPurchaseRes message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.CSGetPurchaseRes + * @static + * @param {Object.} object Plain object + * @returns {cs.CSGetPurchaseRes} CSGetPurchaseRes + */ + CSGetPurchaseRes.fromObject = function fromObject(object) { + if (object instanceof $root.cs.CSGetPurchaseRes) + return object; + var message = new $root.cs.CSGetPurchaseRes(); + if (object.items) { + if (!Array.isArray(object.items)) + throw TypeError(".cs.CSGetPurchaseRes.items: array expected"); + message.items = []; + for (var i = 0; i < object.items.length; ++i) { + if (typeof object.items[i] !== "object") + throw TypeError(".cs.CSGetPurchaseRes.items: object expected"); + message.items[i] = $root.cs.PurchaseConfig.fromObject(object.items[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a CSGetPurchaseRes message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.CSGetPurchaseRes + * @static + * @param {cs.CSGetPurchaseRes} message CSGetPurchaseRes + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CSGetPurchaseRes.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.items = []; + if (message.items && message.items.length) { + object.items = []; + for (var j = 0; j < message.items.length; ++j) + object.items[j] = $root.cs.PurchaseConfig.toObject(message.items[j], options); + } + return object; + }; + + /** + * Converts this CSGetPurchaseRes to JSON. + * @function toJSON + * @memberof cs.CSGetPurchaseRes + * @instance + * @returns {Object.} JSON object + */ + CSGetPurchaseRes.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CSGetPurchaseRes + * @function getTypeUrl + * @memberof cs.CSGetPurchaseRes + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CSGetPurchaseRes.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.CSGetPurchaseRes"; + }; + + return CSGetPurchaseRes; + })(); + + /** + * Category enum. + * @name cs.Category + * @enum {number} + * @property {number} Category_mature=0 Category_mature value + * @property {number} Category_eighteen=1 Category_eighteen value + * @property {number} Category_qinfan=2 Category_qinfan value + * @property {number} Category_luanlun=3 Category_luanlun value + * @property {number} Category_bdsm=4 Category_bdsm value + * @property {number} Category_loli=5 Category_loli value + * @property {number} Category_upcomming=6 Category_upcomming value + */ + cs.Category = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "Category_mature"] = 0; + values[valuesById[1] = "Category_eighteen"] = 1; + values[valuesById[2] = "Category_qinfan"] = 2; + values[valuesById[3] = "Category_luanlun"] = 3; + values[valuesById[4] = "Category_bdsm"] = 4; + values[valuesById[5] = "Category_loli"] = 5; + values[valuesById[6] = "Category_upcomming"] = 6; + return values; + })(); + + /** + * PriceType enum. + * @name cs.PriceType + * @enum {number} + * @property {number} PriceType_free=0 PriceType_free value + * @property {number} PriceType_first_time_free=1 PriceType_first_time_free value + * @property {number} PriceType_pay=2 PriceType_pay value + */ + cs.PriceType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "PriceType_free"] = 0; + values[valuesById[1] = "PriceType_first_time_free"] = 1; + values[valuesById[2] = "PriceType_pay"] = 2; + return values; + })(); + + /** + * VideoEmotion enum. + * @name cs.VideoEmotion + * @enum {number} + * @property {number} VideoEmotion_calm_down=0 VideoEmotion_calm_down value + * @property {number} VideoEmotion_arousal=1 VideoEmotion_arousal value + * @property {number} VideoEmotion_desire=2 VideoEmotion_desire value + * @property {number} VideoEmotion_passion=3 VideoEmotion_passion value + * @property {number} VideoEmotion_orgasm=4 VideoEmotion_orgasm value + */ + cs.VideoEmotion = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "VideoEmotion_calm_down"] = 0; + values[valuesById[1] = "VideoEmotion_arousal"] = 1; + values[valuesById[2] = "VideoEmotion_desire"] = 2; + values[valuesById[3] = "VideoEmotion_passion"] = 3; + values[valuesById[4] = "VideoEmotion_orgasm"] = 4; + return values; + })(); + + cs.AiCharacters = (function() { + + /** + * Properties of an AiCharacters. + * @memberof cs + * @interface IAiCharacters + * @property {number|null} [id] AiCharacters id + * @property {string|null} [basePrompt] AiCharacters basePrompt + * @property {string|null} [additionPrompt] AiCharacters additionPrompt + */ + + /** + * Constructs a new AiCharacters. + * @memberof cs + * @classdesc Represents an AiCharacters. + * @implements IAiCharacters + * @constructor + * @param {cs.IAiCharacters=} [properties] Properties to set + */ + function AiCharacters(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * AiCharacters id. + * @member {number} id + * @memberof cs.AiCharacters + * @instance + */ + AiCharacters.prototype.id = 0; + + /** + * AiCharacters basePrompt. + * @member {string} basePrompt + * @memberof cs.AiCharacters + * @instance + */ + AiCharacters.prototype.basePrompt = ""; + + /** + * AiCharacters additionPrompt. + * @member {string} additionPrompt + * @memberof cs.AiCharacters + * @instance + */ + AiCharacters.prototype.additionPrompt = ""; + + /** + * Creates a new AiCharacters instance using the specified properties. + * @function create + * @memberof cs.AiCharacters + * @static + * @param {cs.IAiCharacters=} [properties] Properties to set + * @returns {cs.AiCharacters} AiCharacters instance + */ + AiCharacters.create = function create(properties) { + return new AiCharacters(properties); + }; + + /** + * Encodes the specified AiCharacters message. Does not implicitly {@link cs.AiCharacters.verify|verify} messages. + * @function encode + * @memberof cs.AiCharacters + * @static + * @param {cs.IAiCharacters} message AiCharacters message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + AiCharacters.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.id != null && Object.hasOwnProperty.call(message, "id")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id); + if (message.basePrompt != null && Object.hasOwnProperty.call(message, "basePrompt")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.basePrompt); + if (message.additionPrompt != null && Object.hasOwnProperty.call(message, "additionPrompt")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.additionPrompt); + return writer; + }; + + /** + * Encodes the specified AiCharacters message, length delimited. Does not implicitly {@link cs.AiCharacters.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.AiCharacters + * @static + * @param {cs.IAiCharacters} message AiCharacters message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + AiCharacters.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an AiCharacters message from the specified reader or buffer. + * @function decode + * @memberof cs.AiCharacters + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.AiCharacters} AiCharacters + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + AiCharacters.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.AiCharacters(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.id = reader.int32(); + break; + } + case 2: { + message.basePrompt = reader.string(); + break; + } + case 3: { + message.additionPrompt = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an AiCharacters message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.AiCharacters + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.AiCharacters} AiCharacters + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + AiCharacters.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an AiCharacters message. + * @function verify + * @memberof cs.AiCharacters + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + AiCharacters.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.id != null && message.hasOwnProperty("id")) + if (!$util.isInteger(message.id)) + return "id: integer expected"; + if (message.basePrompt != null && message.hasOwnProperty("basePrompt")) + if (!$util.isString(message.basePrompt)) + return "basePrompt: string expected"; + if (message.additionPrompt != null && message.hasOwnProperty("additionPrompt")) + if (!$util.isString(message.additionPrompt)) + return "additionPrompt: string expected"; + return null; + }; + + /** + * Creates an AiCharacters message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.AiCharacters + * @static + * @param {Object.} object Plain object + * @returns {cs.AiCharacters} AiCharacters + */ + AiCharacters.fromObject = function fromObject(object) { + if (object instanceof $root.cs.AiCharacters) + return object; + var message = new $root.cs.AiCharacters(); + if (object.id != null) + message.id = object.id | 0; + if (object.basePrompt != null) + message.basePrompt = String(object.basePrompt); + if (object.additionPrompt != null) + message.additionPrompt = String(object.additionPrompt); + return message; + }; + + /** + * Creates a plain object from an AiCharacters message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.AiCharacters + * @static + * @param {cs.AiCharacters} message AiCharacters + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + AiCharacters.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.id = 0; + object.basePrompt = ""; + object.additionPrompt = ""; + } + if (message.id != null && message.hasOwnProperty("id")) + object.id = message.id; + if (message.basePrompt != null && message.hasOwnProperty("basePrompt")) + object.basePrompt = message.basePrompt; + if (message.additionPrompt != null && message.hasOwnProperty("additionPrompt")) + object.additionPrompt = message.additionPrompt; + return object; + }; + + /** + * Converts this AiCharacters to JSON. + * @function toJSON + * @memberof cs.AiCharacters + * @instance + * @returns {Object.} JSON object + */ + AiCharacters.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for AiCharacters + * @function getTypeUrl + * @memberof cs.AiCharacters + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + AiCharacters.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.AiCharacters"; + }; + + return AiCharacters; + })(); + + cs.Girls = (function() { + + /** + * Properties of a Girls. + * @memberof cs + * @interface IGirls + * @property {number|null} [id] Girls id + * @property {string|null} [nameKey] Girls nameKey + * @property {string|null} [age] Girls age + * @property {cs.Category|null} [category] Girls category + * @property {string|null} [tagKey] Girls tagKey + * @property {cs.PriceType|null} [priceType] Girls priceType + * @property {number|null} [price] Girls price + * @property {number|null} [vipUnlock] Girls vipUnlock + * @property {string|null} [avatarPath] Girls avatarPath + * @property {string|null} [listAvatarPath] Girls listAvatarPath + */ + + /** + * Constructs a new Girls. + * @memberof cs + * @classdesc Represents a Girls. + * @implements IGirls + * @constructor + * @param {cs.IGirls=} [properties] Properties to set + */ + function Girls(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Girls id. + * @member {number} id + * @memberof cs.Girls + * @instance + */ + Girls.prototype.id = 0; + + /** + * Girls nameKey. + * @member {string} nameKey + * @memberof cs.Girls + * @instance + */ + Girls.prototype.nameKey = ""; + + /** + * Girls age. + * @member {string} age + * @memberof cs.Girls + * @instance + */ + Girls.prototype.age = ""; + + /** + * Girls category. + * @member {cs.Category} category + * @memberof cs.Girls + * @instance + */ + Girls.prototype.category = 0; + + /** + * Girls tagKey. + * @member {string} tagKey + * @memberof cs.Girls + * @instance + */ + Girls.prototype.tagKey = ""; + + /** + * Girls priceType. + * @member {cs.PriceType} priceType + * @memberof cs.Girls + * @instance + */ + Girls.prototype.priceType = 0; + + /** + * Girls price. + * @member {number} price + * @memberof cs.Girls + * @instance + */ + Girls.prototype.price = 0; + + /** + * Girls vipUnlock. + * @member {number} vipUnlock + * @memberof cs.Girls + * @instance + */ + Girls.prototype.vipUnlock = 0; + + /** + * Girls avatarPath. + * @member {string} avatarPath + * @memberof cs.Girls + * @instance + */ + Girls.prototype.avatarPath = ""; + + /** + * Girls listAvatarPath. + * @member {string} listAvatarPath + * @memberof cs.Girls + * @instance + */ + Girls.prototype.listAvatarPath = ""; + + /** + * Creates a new Girls instance using the specified properties. + * @function create + * @memberof cs.Girls + * @static + * @param {cs.IGirls=} [properties] Properties to set + * @returns {cs.Girls} Girls instance + */ + Girls.create = function create(properties) { + return new Girls(properties); + }; + + /** + * Encodes the specified Girls message. Does not implicitly {@link cs.Girls.verify|verify} messages. + * @function encode + * @memberof cs.Girls + * @static + * @param {cs.IGirls} message Girls message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Girls.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.id != null && Object.hasOwnProperty.call(message, "id")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id); + if (message.nameKey != null && Object.hasOwnProperty.call(message, "nameKey")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.nameKey); + if (message.age != null && Object.hasOwnProperty.call(message, "age")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.age); + if (message.category != null && Object.hasOwnProperty.call(message, "category")) + writer.uint32(/* id 4, wireType 0 =*/32).int32(message.category); + if (message.tagKey != null && Object.hasOwnProperty.call(message, "tagKey")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.tagKey); + if (message.priceType != null && Object.hasOwnProperty.call(message, "priceType")) + writer.uint32(/* id 6, wireType 0 =*/48).int32(message.priceType); + if (message.price != null && Object.hasOwnProperty.call(message, "price")) + writer.uint32(/* id 7, wireType 0 =*/56).int32(message.price); + if (message.vipUnlock != null && Object.hasOwnProperty.call(message, "vipUnlock")) + writer.uint32(/* id 8, wireType 0 =*/64).int32(message.vipUnlock); + if (message.avatarPath != null && Object.hasOwnProperty.call(message, "avatarPath")) + writer.uint32(/* id 9, wireType 2 =*/74).string(message.avatarPath); + if (message.listAvatarPath != null && Object.hasOwnProperty.call(message, "listAvatarPath")) + writer.uint32(/* id 10, wireType 2 =*/82).string(message.listAvatarPath); + return writer; + }; + + /** + * Encodes the specified Girls message, length delimited. Does not implicitly {@link cs.Girls.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.Girls + * @static + * @param {cs.IGirls} message Girls message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Girls.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Girls message from the specified reader or buffer. + * @function decode + * @memberof cs.Girls + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.Girls} Girls + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Girls.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.Girls(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.id = reader.int32(); + break; + } + case 2: { + message.nameKey = reader.string(); + break; + } + case 3: { + message.age = reader.string(); + break; + } + case 4: { + message.category = reader.int32(); + break; + } + case 5: { + message.tagKey = reader.string(); + break; + } + case 6: { + message.priceType = reader.int32(); + break; + } + case 7: { + message.price = reader.int32(); + break; + } + case 8: { + message.vipUnlock = reader.int32(); + break; + } + case 9: { + message.avatarPath = reader.string(); + break; + } + case 10: { + message.listAvatarPath = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Girls message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.Girls + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.Girls} Girls + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Girls.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Girls message. + * @function verify + * @memberof cs.Girls + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Girls.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.id != null && message.hasOwnProperty("id")) + if (!$util.isInteger(message.id)) + return "id: integer expected"; + if (message.nameKey != null && message.hasOwnProperty("nameKey")) + if (!$util.isString(message.nameKey)) + return "nameKey: string expected"; + if (message.age != null && message.hasOwnProperty("age")) + if (!$util.isString(message.age)) + return "age: string expected"; + if (message.category != null && message.hasOwnProperty("category")) + switch (message.category) { + default: + return "category: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + break; + } + if (message.tagKey != null && message.hasOwnProperty("tagKey")) + if (!$util.isString(message.tagKey)) + return "tagKey: string expected"; + if (message.priceType != null && message.hasOwnProperty("priceType")) + switch (message.priceType) { + default: + return "priceType: enum value expected"; + case 0: + case 1: + case 2: + break; + } + if (message.price != null && message.hasOwnProperty("price")) + if (!$util.isInteger(message.price)) + return "price: integer expected"; + if (message.vipUnlock != null && message.hasOwnProperty("vipUnlock")) + if (!$util.isInteger(message.vipUnlock)) + return "vipUnlock: integer expected"; + if (message.avatarPath != null && message.hasOwnProperty("avatarPath")) + if (!$util.isString(message.avatarPath)) + return "avatarPath: string expected"; + if (message.listAvatarPath != null && message.hasOwnProperty("listAvatarPath")) + if (!$util.isString(message.listAvatarPath)) + return "listAvatarPath: string expected"; + return null; + }; + + /** + * Creates a Girls message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.Girls + * @static + * @param {Object.} object Plain object + * @returns {cs.Girls} Girls + */ + Girls.fromObject = function fromObject(object) { + if (object instanceof $root.cs.Girls) + return object; + var message = new $root.cs.Girls(); + if (object.id != null) + message.id = object.id | 0; + if (object.nameKey != null) + message.nameKey = String(object.nameKey); + if (object.age != null) + message.age = String(object.age); + switch (object.category) { + default: + if (typeof object.category === "number") { + message.category = object.category; + break; + } + break; + case "Category_mature": + case 0: + message.category = 0; + break; + case "Category_eighteen": + case 1: + message.category = 1; + break; + case "Category_qinfan": + case 2: + message.category = 2; + break; + case "Category_luanlun": + case 3: + message.category = 3; + break; + case "Category_bdsm": + case 4: + message.category = 4; + break; + case "Category_loli": + case 5: + message.category = 5; + break; + case "Category_upcomming": + case 6: + message.category = 6; + break; + } + if (object.tagKey != null) + message.tagKey = String(object.tagKey); + switch (object.priceType) { + default: + if (typeof object.priceType === "number") { + message.priceType = object.priceType; + break; + } + break; + case "PriceType_free": + case 0: + message.priceType = 0; + break; + case "PriceType_first_time_free": + case 1: + message.priceType = 1; + break; + case "PriceType_pay": + case 2: + message.priceType = 2; + break; + } + if (object.price != null) + message.price = object.price | 0; + if (object.vipUnlock != null) + message.vipUnlock = object.vipUnlock | 0; + if (object.avatarPath != null) + message.avatarPath = String(object.avatarPath); + if (object.listAvatarPath != null) + message.listAvatarPath = String(object.listAvatarPath); + return message; + }; + + /** + * Creates a plain object from a Girls message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.Girls + * @static + * @param {cs.Girls} message Girls + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Girls.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.id = 0; + object.nameKey = ""; + object.age = ""; + object.category = options.enums === String ? "Category_mature" : 0; + object.tagKey = ""; + object.priceType = options.enums === String ? "PriceType_free" : 0; + object.price = 0; + object.vipUnlock = 0; + object.avatarPath = ""; + object.listAvatarPath = ""; + } + if (message.id != null && message.hasOwnProperty("id")) + object.id = message.id; + if (message.nameKey != null && message.hasOwnProperty("nameKey")) + object.nameKey = message.nameKey; + if (message.age != null && message.hasOwnProperty("age")) + object.age = message.age; + if (message.category != null && message.hasOwnProperty("category")) + object.category = options.enums === String ? $root.cs.Category[message.category] === undefined ? message.category : $root.cs.Category[message.category] : message.category; + if (message.tagKey != null && message.hasOwnProperty("tagKey")) + object.tagKey = message.tagKey; + if (message.priceType != null && message.hasOwnProperty("priceType")) + object.priceType = options.enums === String ? $root.cs.PriceType[message.priceType] === undefined ? message.priceType : $root.cs.PriceType[message.priceType] : message.priceType; + if (message.price != null && message.hasOwnProperty("price")) + object.price = message.price; + if (message.vipUnlock != null && message.hasOwnProperty("vipUnlock")) + object.vipUnlock = message.vipUnlock; + if (message.avatarPath != null && message.hasOwnProperty("avatarPath")) + object.avatarPath = message.avatarPath; + if (message.listAvatarPath != null && message.hasOwnProperty("listAvatarPath")) + object.listAvatarPath = message.listAvatarPath; + return object; + }; + + /** + * Converts this Girls to JSON. + * @function toJSON + * @memberof cs.Girls + * @instance + * @returns {Object.} JSON object + */ + Girls.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for Girls + * @function getTypeUrl + * @memberof cs.Girls + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Girls.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.Girls"; + }; + + return Girls; + })(); + + cs.GirlsDetail = (function() { + + /** + * Properties of a GirlsDetail. + * @memberof cs + * @interface IGirlsDetail + * @property {number|null} [id] GirlsDetail id + * @property {string|null} [detailDesc] GirlsDetail detailDesc + * @property {Array.|null} [commercialImages] GirlsDetail commercialImages + * @property {Array.|null} [commercialVideos] GirlsDetail commercialVideos + */ + + /** + * Constructs a new GirlsDetail. + * @memberof cs + * @classdesc Represents a GirlsDetail. + * @implements IGirlsDetail + * @constructor + * @param {cs.IGirlsDetail=} [properties] Properties to set + */ + function GirlsDetail(properties) { + this.commercialImages = []; + this.commercialVideos = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * GirlsDetail id. + * @member {number} id + * @memberof cs.GirlsDetail + * @instance + */ + GirlsDetail.prototype.id = 0; + + /** + * GirlsDetail detailDesc. + * @member {string} detailDesc + * @memberof cs.GirlsDetail + * @instance + */ + GirlsDetail.prototype.detailDesc = ""; + + /** + * GirlsDetail commercialImages. + * @member {Array.} commercialImages + * @memberof cs.GirlsDetail + * @instance + */ + GirlsDetail.prototype.commercialImages = $util.emptyArray; + + /** + * GirlsDetail commercialVideos. + * @member {Array.} commercialVideos + * @memberof cs.GirlsDetail + * @instance + */ + GirlsDetail.prototype.commercialVideos = $util.emptyArray; + + /** + * Creates a new GirlsDetail instance using the specified properties. + * @function create + * @memberof cs.GirlsDetail + * @static + * @param {cs.IGirlsDetail=} [properties] Properties to set + * @returns {cs.GirlsDetail} GirlsDetail instance + */ + GirlsDetail.create = function create(properties) { + return new GirlsDetail(properties); + }; + + /** + * Encodes the specified GirlsDetail message. Does not implicitly {@link cs.GirlsDetail.verify|verify} messages. + * @function encode + * @memberof cs.GirlsDetail + * @static + * @param {cs.IGirlsDetail} message GirlsDetail message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GirlsDetail.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.id != null && Object.hasOwnProperty.call(message, "id")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id); + if (message.detailDesc != null && Object.hasOwnProperty.call(message, "detailDesc")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.detailDesc); + if (message.commercialImages != null && message.commercialImages.length) + for (var i = 0; i < message.commercialImages.length; ++i) + $root.cs.PurchaseCommercialImage.encode(message.commercialImages[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.commercialVideos != null && message.commercialVideos.length) + for (var i = 0; i < message.commercialVideos.length; ++i) + $root.cs.PurchaseCommercialVideo.encode(message.commercialVideos[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified GirlsDetail message, length delimited. Does not implicitly {@link cs.GirlsDetail.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.GirlsDetail + * @static + * @param {cs.IGirlsDetail} message GirlsDetail message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GirlsDetail.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GirlsDetail message from the specified reader or buffer. + * @function decode + * @memberof cs.GirlsDetail + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.GirlsDetail} GirlsDetail + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GirlsDetail.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.GirlsDetail(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.id = reader.int32(); + break; + } + case 2: { + message.detailDesc = reader.string(); + break; + } + case 3: { + if (!(message.commercialImages && message.commercialImages.length)) + message.commercialImages = []; + message.commercialImages.push($root.cs.PurchaseCommercialImage.decode(reader, reader.uint32())); + break; + } + case 4: { + if (!(message.commercialVideos && message.commercialVideos.length)) + message.commercialVideos = []; + message.commercialVideos.push($root.cs.PurchaseCommercialVideo.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GirlsDetail message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.GirlsDetail + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.GirlsDetail} GirlsDetail + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GirlsDetail.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GirlsDetail message. + * @function verify + * @memberof cs.GirlsDetail + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GirlsDetail.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.id != null && message.hasOwnProperty("id")) + if (!$util.isInteger(message.id)) + return "id: integer expected"; + if (message.detailDesc != null && message.hasOwnProperty("detailDesc")) + if (!$util.isString(message.detailDesc)) + return "detailDesc: string expected"; + if (message.commercialImages != null && message.hasOwnProperty("commercialImages")) { + if (!Array.isArray(message.commercialImages)) + return "commercialImages: array expected"; + for (var i = 0; i < message.commercialImages.length; ++i) { + var error = $root.cs.PurchaseCommercialImage.verify(message.commercialImages[i]); + if (error) + return "commercialImages." + error; + } + } + if (message.commercialVideos != null && message.hasOwnProperty("commercialVideos")) { + if (!Array.isArray(message.commercialVideos)) + return "commercialVideos: array expected"; + for (var i = 0; i < message.commercialVideos.length; ++i) { + var error = $root.cs.PurchaseCommercialVideo.verify(message.commercialVideos[i]); + if (error) + return "commercialVideos." + error; + } + } + return null; + }; + + /** + * Creates a GirlsDetail message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.GirlsDetail + * @static + * @param {Object.} object Plain object + * @returns {cs.GirlsDetail} GirlsDetail + */ + GirlsDetail.fromObject = function fromObject(object) { + if (object instanceof $root.cs.GirlsDetail) + return object; + var message = new $root.cs.GirlsDetail(); + if (object.id != null) + message.id = object.id | 0; + if (object.detailDesc != null) + message.detailDesc = String(object.detailDesc); + if (object.commercialImages) { + if (!Array.isArray(object.commercialImages)) + throw TypeError(".cs.GirlsDetail.commercialImages: array expected"); + message.commercialImages = []; + for (var i = 0; i < object.commercialImages.length; ++i) { + if (typeof object.commercialImages[i] !== "object") + throw TypeError(".cs.GirlsDetail.commercialImages: object expected"); + message.commercialImages[i] = $root.cs.PurchaseCommercialImage.fromObject(object.commercialImages[i]); + } + } + if (object.commercialVideos) { + if (!Array.isArray(object.commercialVideos)) + throw TypeError(".cs.GirlsDetail.commercialVideos: array expected"); + message.commercialVideos = []; + for (var i = 0; i < object.commercialVideos.length; ++i) { + if (typeof object.commercialVideos[i] !== "object") + throw TypeError(".cs.GirlsDetail.commercialVideos: object expected"); + message.commercialVideos[i] = $root.cs.PurchaseCommercialVideo.fromObject(object.commercialVideos[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a GirlsDetail message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.GirlsDetail + * @static + * @param {cs.GirlsDetail} message GirlsDetail + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GirlsDetail.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.commercialImages = []; + object.commercialVideos = []; + } + if (options.defaults) { + object.id = 0; + object.detailDesc = ""; + } + if (message.id != null && message.hasOwnProperty("id")) + object.id = message.id; + if (message.detailDesc != null && message.hasOwnProperty("detailDesc")) + object.detailDesc = message.detailDesc; + if (message.commercialImages && message.commercialImages.length) { + object.commercialImages = []; + for (var j = 0; j < message.commercialImages.length; ++j) + object.commercialImages[j] = $root.cs.PurchaseCommercialImage.toObject(message.commercialImages[j], options); + } + if (message.commercialVideos && message.commercialVideos.length) { + object.commercialVideos = []; + for (var j = 0; j < message.commercialVideos.length; ++j) + object.commercialVideos[j] = $root.cs.PurchaseCommercialVideo.toObject(message.commercialVideos[j], options); + } + return object; + }; + + /** + * Converts this GirlsDetail to JSON. + * @function toJSON + * @memberof cs.GirlsDetail + * @instance + * @returns {Object.} JSON object + */ + GirlsDetail.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for GirlsDetail + * @function getTypeUrl + * @memberof cs.GirlsDetail + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + GirlsDetail.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.GirlsDetail"; + }; + + return GirlsDetail; + })(); + + cs.GlobalConfig = (function() { + + /** + * Properties of a GlobalConfig. + * @memberof cs + * @interface IGlobalConfig + * @property {string|null} [ApiKey] GlobalConfig ApiKey + * @property {string|null} [emotionApiKey] GlobalConfig emotionApiKey + * @property {string|null} [Model] GlobalConfig Model + * @property {number|null} [Temperature] GlobalConfig Temperature + * @property {number|null} [MaxTokens] GlobalConfig MaxTokens + * @property {number|null} [Timeout] GlobalConfig Timeout + * @property {number|null} [FreeChatTimes] GlobalConfig FreeChatTimes + * @property {number|null} [OnceChatAddScore] GlobalConfig OnceChatAddScore + * @property {number|null} [ScoreExchangeStarLevel] GlobalConfig ScoreExchangeStarLevel + * @property {string|null} [GameName] GlobalConfig GameName + * @property {string|null} [EmotionRating] GlobalConfig EmotionRating + * @property {string|null} [girlBasePrompt] GlobalConfig girlBasePrompt + */ + + /** + * Constructs a new GlobalConfig. + * @memberof cs + * @classdesc Represents a GlobalConfig. + * @implements IGlobalConfig + * @constructor + * @param {cs.IGlobalConfig=} [properties] Properties to set + */ + function GlobalConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * GlobalConfig ApiKey. + * @member {string} ApiKey + * @memberof cs.GlobalConfig + * @instance + */ + GlobalConfig.prototype.ApiKey = ""; + + /** + * GlobalConfig emotionApiKey. + * @member {string} emotionApiKey + * @memberof cs.GlobalConfig + * @instance + */ + GlobalConfig.prototype.emotionApiKey = ""; + + /** + * GlobalConfig Model. + * @member {string} Model + * @memberof cs.GlobalConfig + * @instance + */ + GlobalConfig.prototype.Model = ""; + + /** + * GlobalConfig Temperature. + * @member {number} Temperature + * @memberof cs.GlobalConfig + * @instance + */ + GlobalConfig.prototype.Temperature = 0; + + /** + * GlobalConfig MaxTokens. + * @member {number} MaxTokens + * @memberof cs.GlobalConfig + * @instance + */ + GlobalConfig.prototype.MaxTokens = 0; + + /** + * GlobalConfig Timeout. + * @member {number} Timeout + * @memberof cs.GlobalConfig + * @instance + */ + GlobalConfig.prototype.Timeout = 0; + + /** + * GlobalConfig FreeChatTimes. + * @member {number} FreeChatTimes + * @memberof cs.GlobalConfig + * @instance + */ + GlobalConfig.prototype.FreeChatTimes = 0; + + /** + * GlobalConfig OnceChatAddScore. + * @member {number} OnceChatAddScore + * @memberof cs.GlobalConfig + * @instance + */ + GlobalConfig.prototype.OnceChatAddScore = 0; + + /** + * GlobalConfig ScoreExchangeStarLevel. + * @member {number} ScoreExchangeStarLevel + * @memberof cs.GlobalConfig + * @instance + */ + GlobalConfig.prototype.ScoreExchangeStarLevel = 0; + + /** + * GlobalConfig GameName. + * @member {string} GameName + * @memberof cs.GlobalConfig + * @instance + */ + GlobalConfig.prototype.GameName = ""; + + /** + * GlobalConfig EmotionRating. + * @member {string} EmotionRating + * @memberof cs.GlobalConfig + * @instance + */ + GlobalConfig.prototype.EmotionRating = ""; + + /** + * GlobalConfig girlBasePrompt. + * @member {string} girlBasePrompt + * @memberof cs.GlobalConfig + * @instance + */ + GlobalConfig.prototype.girlBasePrompt = ""; + + /** + * Creates a new GlobalConfig instance using the specified properties. + * @function create + * @memberof cs.GlobalConfig + * @static + * @param {cs.IGlobalConfig=} [properties] Properties to set + * @returns {cs.GlobalConfig} GlobalConfig instance + */ + GlobalConfig.create = function create(properties) { + return new GlobalConfig(properties); + }; + + /** + * Encodes the specified GlobalConfig message. Does not implicitly {@link cs.GlobalConfig.verify|verify} messages. + * @function encode + * @memberof cs.GlobalConfig + * @static + * @param {cs.IGlobalConfig} message GlobalConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GlobalConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.ApiKey != null && Object.hasOwnProperty.call(message, "ApiKey")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.ApiKey); + if (message.emotionApiKey != null && Object.hasOwnProperty.call(message, "emotionApiKey")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.emotionApiKey); + if (message.Model != null && Object.hasOwnProperty.call(message, "Model")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.Model); + if (message.Temperature != null && Object.hasOwnProperty.call(message, "Temperature")) + writer.uint32(/* id 4, wireType 5 =*/37).float(message.Temperature); + if (message.MaxTokens != null && Object.hasOwnProperty.call(message, "MaxTokens")) + writer.uint32(/* id 5, wireType 0 =*/40).int32(message.MaxTokens); + if (message.Timeout != null && Object.hasOwnProperty.call(message, "Timeout")) + writer.uint32(/* id 6, wireType 0 =*/48).int32(message.Timeout); + if (message.FreeChatTimes != null && Object.hasOwnProperty.call(message, "FreeChatTimes")) + writer.uint32(/* id 7, wireType 0 =*/56).int32(message.FreeChatTimes); + if (message.OnceChatAddScore != null && Object.hasOwnProperty.call(message, "OnceChatAddScore")) + writer.uint32(/* id 8, wireType 0 =*/64).int32(message.OnceChatAddScore); + if (message.ScoreExchangeStarLevel != null && Object.hasOwnProperty.call(message, "ScoreExchangeStarLevel")) + writer.uint32(/* id 9, wireType 0 =*/72).int32(message.ScoreExchangeStarLevel); + if (message.GameName != null && Object.hasOwnProperty.call(message, "GameName")) + writer.uint32(/* id 10, wireType 2 =*/82).string(message.GameName); + if (message.EmotionRating != null && Object.hasOwnProperty.call(message, "EmotionRating")) + writer.uint32(/* id 11, wireType 2 =*/90).string(message.EmotionRating); + if (message.girlBasePrompt != null && Object.hasOwnProperty.call(message, "girlBasePrompt")) + writer.uint32(/* id 12, wireType 2 =*/98).string(message.girlBasePrompt); + return writer; + }; + + /** + * Encodes the specified GlobalConfig message, length delimited. Does not implicitly {@link cs.GlobalConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.GlobalConfig + * @static + * @param {cs.IGlobalConfig} message GlobalConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GlobalConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GlobalConfig message from the specified reader or buffer. + * @function decode + * @memberof cs.GlobalConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.GlobalConfig} GlobalConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GlobalConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.GlobalConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.ApiKey = reader.string(); + break; + } + case 2: { + message.emotionApiKey = reader.string(); + break; + } + case 3: { + message.Model = reader.string(); + break; + } + case 4: { + message.Temperature = reader.float(); + break; + } + case 5: { + message.MaxTokens = reader.int32(); + break; + } + case 6: { + message.Timeout = reader.int32(); + break; + } + case 7: { + message.FreeChatTimes = reader.int32(); + break; + } + case 8: { + message.OnceChatAddScore = reader.int32(); + break; + } + case 9: { + message.ScoreExchangeStarLevel = reader.int32(); + break; + } + case 10: { + message.GameName = reader.string(); + break; + } + case 11: { + message.EmotionRating = reader.string(); + break; + } + case 12: { + message.girlBasePrompt = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GlobalConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.GlobalConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.GlobalConfig} GlobalConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GlobalConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GlobalConfig message. + * @function verify + * @memberof cs.GlobalConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GlobalConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.ApiKey != null && message.hasOwnProperty("ApiKey")) + if (!$util.isString(message.ApiKey)) + return "ApiKey: string expected"; + if (message.emotionApiKey != null && message.hasOwnProperty("emotionApiKey")) + if (!$util.isString(message.emotionApiKey)) + return "emotionApiKey: string expected"; + if (message.Model != null && message.hasOwnProperty("Model")) + if (!$util.isString(message.Model)) + return "Model: string expected"; + if (message.Temperature != null && message.hasOwnProperty("Temperature")) + if (typeof message.Temperature !== "number") + return "Temperature: number expected"; + if (message.MaxTokens != null && message.hasOwnProperty("MaxTokens")) + if (!$util.isInteger(message.MaxTokens)) + return "MaxTokens: integer expected"; + if (message.Timeout != null && message.hasOwnProperty("Timeout")) + if (!$util.isInteger(message.Timeout)) + return "Timeout: integer expected"; + if (message.FreeChatTimes != null && message.hasOwnProperty("FreeChatTimes")) + if (!$util.isInteger(message.FreeChatTimes)) + return "FreeChatTimes: integer expected"; + if (message.OnceChatAddScore != null && message.hasOwnProperty("OnceChatAddScore")) + if (!$util.isInteger(message.OnceChatAddScore)) + return "OnceChatAddScore: integer expected"; + if (message.ScoreExchangeStarLevel != null && message.hasOwnProperty("ScoreExchangeStarLevel")) + if (!$util.isInteger(message.ScoreExchangeStarLevel)) + return "ScoreExchangeStarLevel: integer expected"; + if (message.GameName != null && message.hasOwnProperty("GameName")) + if (!$util.isString(message.GameName)) + return "GameName: string expected"; + if (message.EmotionRating != null && message.hasOwnProperty("EmotionRating")) + if (!$util.isString(message.EmotionRating)) + return "EmotionRating: string expected"; + if (message.girlBasePrompt != null && message.hasOwnProperty("girlBasePrompt")) + if (!$util.isString(message.girlBasePrompt)) + return "girlBasePrompt: string expected"; + return null; + }; + + /** + * Creates a GlobalConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.GlobalConfig + * @static + * @param {Object.} object Plain object + * @returns {cs.GlobalConfig} GlobalConfig + */ + GlobalConfig.fromObject = function fromObject(object) { + if (object instanceof $root.cs.GlobalConfig) + return object; + var message = new $root.cs.GlobalConfig(); + if (object.ApiKey != null) + message.ApiKey = String(object.ApiKey); + if (object.emotionApiKey != null) + message.emotionApiKey = String(object.emotionApiKey); + if (object.Model != null) + message.Model = String(object.Model); + if (object.Temperature != null) + message.Temperature = Number(object.Temperature); + if (object.MaxTokens != null) + message.MaxTokens = object.MaxTokens | 0; + if (object.Timeout != null) + message.Timeout = object.Timeout | 0; + if (object.FreeChatTimes != null) + message.FreeChatTimes = object.FreeChatTimes | 0; + if (object.OnceChatAddScore != null) + message.OnceChatAddScore = object.OnceChatAddScore | 0; + if (object.ScoreExchangeStarLevel != null) + message.ScoreExchangeStarLevel = object.ScoreExchangeStarLevel | 0; + if (object.GameName != null) + message.GameName = String(object.GameName); + if (object.EmotionRating != null) + message.EmotionRating = String(object.EmotionRating); + if (object.girlBasePrompt != null) + message.girlBasePrompt = String(object.girlBasePrompt); + return message; + }; + + /** + * Creates a plain object from a GlobalConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.GlobalConfig + * @static + * @param {cs.GlobalConfig} message GlobalConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GlobalConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.ApiKey = ""; + object.emotionApiKey = ""; + object.Model = ""; + object.Temperature = 0; + object.MaxTokens = 0; + object.Timeout = 0; + object.FreeChatTimes = 0; + object.OnceChatAddScore = 0; + object.ScoreExchangeStarLevel = 0; + object.GameName = ""; + object.EmotionRating = ""; + object.girlBasePrompt = ""; + } + if (message.ApiKey != null && message.hasOwnProperty("ApiKey")) + object.ApiKey = message.ApiKey; + if (message.emotionApiKey != null && message.hasOwnProperty("emotionApiKey")) + object.emotionApiKey = message.emotionApiKey; + if (message.Model != null && message.hasOwnProperty("Model")) + object.Model = message.Model; + if (message.Temperature != null && message.hasOwnProperty("Temperature")) + object.Temperature = options.json && !isFinite(message.Temperature) ? String(message.Temperature) : message.Temperature; + if (message.MaxTokens != null && message.hasOwnProperty("MaxTokens")) + object.MaxTokens = message.MaxTokens; + if (message.Timeout != null && message.hasOwnProperty("Timeout")) + object.Timeout = message.Timeout; + if (message.FreeChatTimes != null && message.hasOwnProperty("FreeChatTimes")) + object.FreeChatTimes = message.FreeChatTimes; + if (message.OnceChatAddScore != null && message.hasOwnProperty("OnceChatAddScore")) + object.OnceChatAddScore = message.OnceChatAddScore; + if (message.ScoreExchangeStarLevel != null && message.hasOwnProperty("ScoreExchangeStarLevel")) + object.ScoreExchangeStarLevel = message.ScoreExchangeStarLevel; + if (message.GameName != null && message.hasOwnProperty("GameName")) + object.GameName = message.GameName; + if (message.EmotionRating != null && message.hasOwnProperty("EmotionRating")) + object.EmotionRating = message.EmotionRating; + if (message.girlBasePrompt != null && message.hasOwnProperty("girlBasePrompt")) + object.girlBasePrompt = message.girlBasePrompt; + return object; + }; + + /** + * Converts this GlobalConfig to JSON. + * @function toJSON + * @memberof cs.GlobalConfig + * @instance + * @returns {Object.} JSON object + */ + GlobalConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for GlobalConfig + * @function getTypeUrl + * @memberof cs.GlobalConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + GlobalConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.GlobalConfig"; + }; + + return GlobalConfig; + })(); + + cs.Language = (function() { + + /** + * Properties of a Language. + * @memberof cs + * @interface ILanguage + * @property {string|null} [key] Language key + * @property {string|null} [languageEn] Language languageEn + * @property {string|null} [languageCn] Language languageCn + * @property {string|null} [languageHi] Language languageHi + * @property {string|null} [languageFr] Language languageFr + * @property {string|null} [languageDe] Language languageDe + */ + + /** + * Constructs a new Language. + * @memberof cs + * @classdesc Represents a Language. + * @implements ILanguage + * @constructor + * @param {cs.ILanguage=} [properties] Properties to set + */ + function Language(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Language key. + * @member {string} key + * @memberof cs.Language + * @instance + */ + Language.prototype.key = ""; + + /** + * Language languageEn. + * @member {string} languageEn + * @memberof cs.Language + * @instance + */ + Language.prototype.languageEn = ""; + + /** + * Language languageCn. + * @member {string} languageCn + * @memberof cs.Language + * @instance + */ + Language.prototype.languageCn = ""; + + /** + * Language languageHi. + * @member {string} languageHi + * @memberof cs.Language + * @instance + */ + Language.prototype.languageHi = ""; + + /** + * Language languageFr. + * @member {string} languageFr + * @memberof cs.Language + * @instance + */ + Language.prototype.languageFr = ""; + + /** + * Language languageDe. + * @member {string} languageDe + * @memberof cs.Language + * @instance + */ + Language.prototype.languageDe = ""; + + /** + * Creates a new Language instance using the specified properties. + * @function create + * @memberof cs.Language + * @static + * @param {cs.ILanguage=} [properties] Properties to set + * @returns {cs.Language} Language instance + */ + Language.create = function create(properties) { + return new Language(properties); + }; + + /** + * Encodes the specified Language message. Does not implicitly {@link cs.Language.verify|verify} messages. + * @function encode + * @memberof cs.Language + * @static + * @param {cs.ILanguage} message Language message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Language.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.key != null && Object.hasOwnProperty.call(message, "key")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.key); + if (message.languageEn != null && Object.hasOwnProperty.call(message, "languageEn")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.languageEn); + if (message.languageCn != null && Object.hasOwnProperty.call(message, "languageCn")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.languageCn); + if (message.languageHi != null && Object.hasOwnProperty.call(message, "languageHi")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.languageHi); + if (message.languageFr != null && Object.hasOwnProperty.call(message, "languageFr")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.languageFr); + if (message.languageDe != null && Object.hasOwnProperty.call(message, "languageDe")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.languageDe); + return writer; + }; + + /** + * Encodes the specified Language message, length delimited. Does not implicitly {@link cs.Language.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.Language + * @static + * @param {cs.ILanguage} message Language message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Language.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Language message from the specified reader or buffer. + * @function decode + * @memberof cs.Language + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.Language} Language + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Language.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.Language(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.key = reader.string(); + break; + } + case 2: { + message.languageEn = reader.string(); + break; + } + case 3: { + message.languageCn = reader.string(); + break; + } + case 4: { + message.languageHi = reader.string(); + break; + } + case 5: { + message.languageFr = reader.string(); + break; + } + case 6: { + message.languageDe = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Language message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.Language + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.Language} Language + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Language.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Language message. + * @function verify + * @memberof cs.Language + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Language.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.key != null && message.hasOwnProperty("key")) + if (!$util.isString(message.key)) + return "key: string expected"; + if (message.languageEn != null && message.hasOwnProperty("languageEn")) + if (!$util.isString(message.languageEn)) + return "languageEn: string expected"; + if (message.languageCn != null && message.hasOwnProperty("languageCn")) + if (!$util.isString(message.languageCn)) + return "languageCn: string expected"; + if (message.languageHi != null && message.hasOwnProperty("languageHi")) + if (!$util.isString(message.languageHi)) + return "languageHi: string expected"; + if (message.languageFr != null && message.hasOwnProperty("languageFr")) + if (!$util.isString(message.languageFr)) + return "languageFr: string expected"; + if (message.languageDe != null && message.hasOwnProperty("languageDe")) + if (!$util.isString(message.languageDe)) + return "languageDe: string expected"; + return null; + }; + + /** + * Creates a Language message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.Language + * @static + * @param {Object.} object Plain object + * @returns {cs.Language} Language + */ + Language.fromObject = function fromObject(object) { + if (object instanceof $root.cs.Language) + return object; + var message = new $root.cs.Language(); + if (object.key != null) + message.key = String(object.key); + if (object.languageEn != null) + message.languageEn = String(object.languageEn); + if (object.languageCn != null) + message.languageCn = String(object.languageCn); + if (object.languageHi != null) + message.languageHi = String(object.languageHi); + if (object.languageFr != null) + message.languageFr = String(object.languageFr); + if (object.languageDe != null) + message.languageDe = String(object.languageDe); + return message; + }; + + /** + * Creates a plain object from a Language message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.Language + * @static + * @param {cs.Language} message Language + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Language.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.key = ""; + object.languageEn = ""; + object.languageCn = ""; + object.languageHi = ""; + object.languageFr = ""; + object.languageDe = ""; + } + if (message.key != null && message.hasOwnProperty("key")) + object.key = message.key; + if (message.languageEn != null && message.hasOwnProperty("languageEn")) + object.languageEn = message.languageEn; + if (message.languageCn != null && message.hasOwnProperty("languageCn")) + object.languageCn = message.languageCn; + if (message.languageHi != null && message.hasOwnProperty("languageHi")) + object.languageHi = message.languageHi; + if (message.languageFr != null && message.hasOwnProperty("languageFr")) + object.languageFr = message.languageFr; + if (message.languageDe != null && message.hasOwnProperty("languageDe")) + object.languageDe = message.languageDe; + return object; + }; + + /** + * Converts this Language to JSON. + * @function toJSON + * @memberof cs.Language + * @instance + * @returns {Object.} JSON object + */ + Language.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for Language + * @function getTypeUrl + * @memberof cs.Language + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Language.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.Language"; + }; + + return Language; + })(); + + cs.PurchaseCommercialImage = (function() { + + /** + * Properties of a PurchaseCommercialImage. + * @memberof cs + * @interface IPurchaseCommercialImage + * @property {number|null} [id] PurchaseCommercialImage id + * @property {number|null} [imageType] PurchaseCommercialImage imageType + * @property {number|null} [unlockCounts] PurchaseCommercialImage unlockCounts + * @property {number|null} [imagePrice] PurchaseCommercialImage imagePrice + * @property {string|null} [path] PurchaseCommercialImage path + */ + + /** + * Constructs a new PurchaseCommercialImage. + * @memberof cs + * @classdesc Represents a PurchaseCommercialImage. + * @implements IPurchaseCommercialImage + * @constructor + * @param {cs.IPurchaseCommercialImage=} [properties] Properties to set + */ + function PurchaseCommercialImage(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PurchaseCommercialImage id. + * @member {number} id + * @memberof cs.PurchaseCommercialImage + * @instance + */ + PurchaseCommercialImage.prototype.id = 0; + + /** + * PurchaseCommercialImage imageType. + * @member {number} imageType + * @memberof cs.PurchaseCommercialImage + * @instance + */ + PurchaseCommercialImage.prototype.imageType = 0; + + /** + * PurchaseCommercialImage unlockCounts. + * @member {number} unlockCounts + * @memberof cs.PurchaseCommercialImage + * @instance + */ + PurchaseCommercialImage.prototype.unlockCounts = 0; + + /** + * PurchaseCommercialImage imagePrice. + * @member {number} imagePrice + * @memberof cs.PurchaseCommercialImage + * @instance + */ + PurchaseCommercialImage.prototype.imagePrice = 0; + + /** + * PurchaseCommercialImage path. + * @member {string} path + * @memberof cs.PurchaseCommercialImage + * @instance + */ + PurchaseCommercialImage.prototype.path = ""; + + /** + * Creates a new PurchaseCommercialImage instance using the specified properties. + * @function create + * @memberof cs.PurchaseCommercialImage + * @static + * @param {cs.IPurchaseCommercialImage=} [properties] Properties to set + * @returns {cs.PurchaseCommercialImage} PurchaseCommercialImage instance + */ + PurchaseCommercialImage.create = function create(properties) { + return new PurchaseCommercialImage(properties); + }; + + /** + * Encodes the specified PurchaseCommercialImage message. Does not implicitly {@link cs.PurchaseCommercialImage.verify|verify} messages. + * @function encode + * @memberof cs.PurchaseCommercialImage + * @static + * @param {cs.IPurchaseCommercialImage} message PurchaseCommercialImage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PurchaseCommercialImage.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.id != null && Object.hasOwnProperty.call(message, "id")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id); + if (message.imageType != null && Object.hasOwnProperty.call(message, "imageType")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.imageType); + if (message.unlockCounts != null && Object.hasOwnProperty.call(message, "unlockCounts")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.unlockCounts); + if (message.imagePrice != null && Object.hasOwnProperty.call(message, "imagePrice")) + writer.uint32(/* id 4, wireType 0 =*/32).int32(message.imagePrice); + if (message.path != null && Object.hasOwnProperty.call(message, "path")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.path); + return writer; + }; + + /** + * Encodes the specified PurchaseCommercialImage message, length delimited. Does not implicitly {@link cs.PurchaseCommercialImage.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.PurchaseCommercialImage + * @static + * @param {cs.IPurchaseCommercialImage} message PurchaseCommercialImage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PurchaseCommercialImage.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PurchaseCommercialImage message from the specified reader or buffer. + * @function decode + * @memberof cs.PurchaseCommercialImage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.PurchaseCommercialImage} PurchaseCommercialImage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PurchaseCommercialImage.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.PurchaseCommercialImage(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.id = reader.int32(); + break; + } + case 2: { + message.imageType = reader.int32(); + break; + } + case 3: { + message.unlockCounts = reader.int32(); + break; + } + case 4: { + message.imagePrice = reader.int32(); + break; + } + case 5: { + message.path = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PurchaseCommercialImage message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.PurchaseCommercialImage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.PurchaseCommercialImage} PurchaseCommercialImage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PurchaseCommercialImage.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PurchaseCommercialImage message. + * @function verify + * @memberof cs.PurchaseCommercialImage + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PurchaseCommercialImage.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.id != null && message.hasOwnProperty("id")) + if (!$util.isInteger(message.id)) + return "id: integer expected"; + if (message.imageType != null && message.hasOwnProperty("imageType")) + if (!$util.isInteger(message.imageType)) + return "imageType: integer expected"; + if (message.unlockCounts != null && message.hasOwnProperty("unlockCounts")) + if (!$util.isInteger(message.unlockCounts)) + return "unlockCounts: integer expected"; + if (message.imagePrice != null && message.hasOwnProperty("imagePrice")) + if (!$util.isInteger(message.imagePrice)) + return "imagePrice: integer expected"; + if (message.path != null && message.hasOwnProperty("path")) + if (!$util.isString(message.path)) + return "path: string expected"; + return null; + }; + + /** + * Creates a PurchaseCommercialImage message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.PurchaseCommercialImage + * @static + * @param {Object.} object Plain object + * @returns {cs.PurchaseCommercialImage} PurchaseCommercialImage + */ + PurchaseCommercialImage.fromObject = function fromObject(object) { + if (object instanceof $root.cs.PurchaseCommercialImage) + return object; + var message = new $root.cs.PurchaseCommercialImage(); + if (object.id != null) + message.id = object.id | 0; + if (object.imageType != null) + message.imageType = object.imageType | 0; + if (object.unlockCounts != null) + message.unlockCounts = object.unlockCounts | 0; + if (object.imagePrice != null) + message.imagePrice = object.imagePrice | 0; + if (object.path != null) + message.path = String(object.path); + return message; + }; + + /** + * Creates a plain object from a PurchaseCommercialImage message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.PurchaseCommercialImage + * @static + * @param {cs.PurchaseCommercialImage} message PurchaseCommercialImage + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PurchaseCommercialImage.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.id = 0; + object.imageType = 0; + object.unlockCounts = 0; + object.imagePrice = 0; + object.path = ""; + } + if (message.id != null && message.hasOwnProperty("id")) + object.id = message.id; + if (message.imageType != null && message.hasOwnProperty("imageType")) + object.imageType = message.imageType; + if (message.unlockCounts != null && message.hasOwnProperty("unlockCounts")) + object.unlockCounts = message.unlockCounts; + if (message.imagePrice != null && message.hasOwnProperty("imagePrice")) + object.imagePrice = message.imagePrice; + if (message.path != null && message.hasOwnProperty("path")) + object.path = message.path; + return object; + }; + + /** + * Converts this PurchaseCommercialImage to JSON. + * @function toJSON + * @memberof cs.PurchaseCommercialImage + * @instance + * @returns {Object.} JSON object + */ + PurchaseCommercialImage.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for PurchaseCommercialImage + * @function getTypeUrl + * @memberof cs.PurchaseCommercialImage + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + PurchaseCommercialImage.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.PurchaseCommercialImage"; + }; + + return PurchaseCommercialImage; + })(); + + cs.PurchaseCommercialVideo = (function() { + + /** + * Properties of a PurchaseCommercialVideo. + * @memberof cs + * @interface IPurchaseCommercialVideo + * @property {number|null} [id] PurchaseCommercialVideo id + * @property {string|null} [path] PurchaseCommercialVideo path + * @property {cs.VideoEmotion|null} [emotion] PurchaseCommercialVideo emotion + * @property {number|null} [videoPrice] PurchaseCommercialVideo videoPrice + */ + + /** + * Constructs a new PurchaseCommercialVideo. + * @memberof cs + * @classdesc Represents a PurchaseCommercialVideo. + * @implements IPurchaseCommercialVideo + * @constructor + * @param {cs.IPurchaseCommercialVideo=} [properties] Properties to set + */ + function PurchaseCommercialVideo(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PurchaseCommercialVideo id. + * @member {number} id + * @memberof cs.PurchaseCommercialVideo + * @instance + */ + PurchaseCommercialVideo.prototype.id = 0; + + /** + * PurchaseCommercialVideo path. + * @member {string} path + * @memberof cs.PurchaseCommercialVideo + * @instance + */ + PurchaseCommercialVideo.prototype.path = ""; + + /** + * PurchaseCommercialVideo emotion. + * @member {cs.VideoEmotion} emotion + * @memberof cs.PurchaseCommercialVideo + * @instance + */ + PurchaseCommercialVideo.prototype.emotion = 0; + + /** + * PurchaseCommercialVideo videoPrice. + * @member {number} videoPrice + * @memberof cs.PurchaseCommercialVideo + * @instance + */ + PurchaseCommercialVideo.prototype.videoPrice = 0; + + /** + * Creates a new PurchaseCommercialVideo instance using the specified properties. + * @function create + * @memberof cs.PurchaseCommercialVideo + * @static + * @param {cs.IPurchaseCommercialVideo=} [properties] Properties to set + * @returns {cs.PurchaseCommercialVideo} PurchaseCommercialVideo instance + */ + PurchaseCommercialVideo.create = function create(properties) { + return new PurchaseCommercialVideo(properties); + }; + + /** + * Encodes the specified PurchaseCommercialVideo message. Does not implicitly {@link cs.PurchaseCommercialVideo.verify|verify} messages. + * @function encode + * @memberof cs.PurchaseCommercialVideo + * @static + * @param {cs.IPurchaseCommercialVideo} message PurchaseCommercialVideo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PurchaseCommercialVideo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.id != null && Object.hasOwnProperty.call(message, "id")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id); + if (message.path != null && Object.hasOwnProperty.call(message, "path")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.path); + if (message.emotion != null && Object.hasOwnProperty.call(message, "emotion")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.emotion); + if (message.videoPrice != null && Object.hasOwnProperty.call(message, "videoPrice")) + writer.uint32(/* id 4, wireType 0 =*/32).int32(message.videoPrice); + return writer; + }; + + /** + * Encodes the specified PurchaseCommercialVideo message, length delimited. Does not implicitly {@link cs.PurchaseCommercialVideo.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.PurchaseCommercialVideo + * @static + * @param {cs.IPurchaseCommercialVideo} message PurchaseCommercialVideo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PurchaseCommercialVideo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PurchaseCommercialVideo message from the specified reader or buffer. + * @function decode + * @memberof cs.PurchaseCommercialVideo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.PurchaseCommercialVideo} PurchaseCommercialVideo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PurchaseCommercialVideo.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.PurchaseCommercialVideo(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.id = reader.int32(); + break; + } + case 2: { + message.path = reader.string(); + break; + } + case 3: { + message.emotion = reader.int32(); + break; + } + case 4: { + message.videoPrice = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PurchaseCommercialVideo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.PurchaseCommercialVideo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.PurchaseCommercialVideo} PurchaseCommercialVideo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PurchaseCommercialVideo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PurchaseCommercialVideo message. + * @function verify + * @memberof cs.PurchaseCommercialVideo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PurchaseCommercialVideo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.id != null && message.hasOwnProperty("id")) + if (!$util.isInteger(message.id)) + return "id: integer expected"; + if (message.path != null && message.hasOwnProperty("path")) + if (!$util.isString(message.path)) + return "path: string expected"; + if (message.emotion != null && message.hasOwnProperty("emotion")) + switch (message.emotion) { + default: + return "emotion: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + break; + } + if (message.videoPrice != null && message.hasOwnProperty("videoPrice")) + if (!$util.isInteger(message.videoPrice)) + return "videoPrice: integer expected"; + return null; + }; + + /** + * Creates a PurchaseCommercialVideo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.PurchaseCommercialVideo + * @static + * @param {Object.} object Plain object + * @returns {cs.PurchaseCommercialVideo} PurchaseCommercialVideo + */ + PurchaseCommercialVideo.fromObject = function fromObject(object) { + if (object instanceof $root.cs.PurchaseCommercialVideo) + return object; + var message = new $root.cs.PurchaseCommercialVideo(); + if (object.id != null) + message.id = object.id | 0; + if (object.path != null) + message.path = String(object.path); + switch (object.emotion) { + default: + if (typeof object.emotion === "number") { + message.emotion = object.emotion; + break; + } + break; + case "VideoEmotion_calm_down": + case 0: + message.emotion = 0; + break; + case "VideoEmotion_arousal": + case 1: + message.emotion = 1; + break; + case "VideoEmotion_desire": + case 2: + message.emotion = 2; + break; + case "VideoEmotion_passion": + case 3: + message.emotion = 3; + break; + case "VideoEmotion_orgasm": + case 4: + message.emotion = 4; + break; + } + if (object.videoPrice != null) + message.videoPrice = object.videoPrice | 0; + return message; + }; + + /** + * Creates a plain object from a PurchaseCommercialVideo message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.PurchaseCommercialVideo + * @static + * @param {cs.PurchaseCommercialVideo} message PurchaseCommercialVideo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PurchaseCommercialVideo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.id = 0; + object.path = ""; + object.emotion = options.enums === String ? "VideoEmotion_calm_down" : 0; + object.videoPrice = 0; + } + if (message.id != null && message.hasOwnProperty("id")) + object.id = message.id; + if (message.path != null && message.hasOwnProperty("path")) + object.path = message.path; + if (message.emotion != null && message.hasOwnProperty("emotion")) + object.emotion = options.enums === String ? $root.cs.VideoEmotion[message.emotion] === undefined ? message.emotion : $root.cs.VideoEmotion[message.emotion] : message.emotion; + if (message.videoPrice != null && message.hasOwnProperty("videoPrice")) + object.videoPrice = message.videoPrice; + return object; + }; + + /** + * Converts this PurchaseCommercialVideo to JSON. + * @function toJSON + * @memberof cs.PurchaseCommercialVideo + * @instance + * @returns {Object.} JSON object + */ + PurchaseCommercialVideo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for PurchaseCommercialVideo + * @function getTypeUrl + * @memberof cs.PurchaseCommercialVideo + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + PurchaseCommercialVideo.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.PurchaseCommercialVideo"; + }; + + return PurchaseCommercialVideo; + })(); + + cs.PurchaseConfig = (function() { + + /** + * Properties of a PurchaseConfig. + * @memberof cs + * @interface IPurchaseConfig + * @property {number|null} [id] PurchaseConfig id + * @property {string|null} [name] PurchaseConfig name + * @property {number|null} [count] PurchaseConfig count + * @property {number|null} [price] PurchaseConfig price + */ + + /** + * Constructs a new PurchaseConfig. + * @memberof cs + * @classdesc Represents a PurchaseConfig. + * @implements IPurchaseConfig + * @constructor + * @param {cs.IPurchaseConfig=} [properties] Properties to set + */ + function PurchaseConfig(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PurchaseConfig id. + * @member {number} id + * @memberof cs.PurchaseConfig + * @instance + */ + PurchaseConfig.prototype.id = 0; + + /** + * PurchaseConfig name. + * @member {string} name + * @memberof cs.PurchaseConfig + * @instance + */ + PurchaseConfig.prototype.name = ""; + + /** + * PurchaseConfig count. + * @member {number} count + * @memberof cs.PurchaseConfig + * @instance + */ + PurchaseConfig.prototype.count = 0; + + /** + * PurchaseConfig price. + * @member {number} price + * @memberof cs.PurchaseConfig + * @instance + */ + PurchaseConfig.prototype.price = 0; + + /** + * Creates a new PurchaseConfig instance using the specified properties. + * @function create + * @memberof cs.PurchaseConfig + * @static + * @param {cs.IPurchaseConfig=} [properties] Properties to set + * @returns {cs.PurchaseConfig} PurchaseConfig instance + */ + PurchaseConfig.create = function create(properties) { + return new PurchaseConfig(properties); + }; + + /** + * Encodes the specified PurchaseConfig message. Does not implicitly {@link cs.PurchaseConfig.verify|verify} messages. + * @function encode + * @memberof cs.PurchaseConfig + * @static + * @param {cs.IPurchaseConfig} message PurchaseConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PurchaseConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.id != null && Object.hasOwnProperty.call(message, "id")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.name); + if (message.count != null && Object.hasOwnProperty.call(message, "count")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.count); + if (message.price != null && Object.hasOwnProperty.call(message, "price")) + writer.uint32(/* id 4, wireType 0 =*/32).int32(message.price); + return writer; + }; + + /** + * Encodes the specified PurchaseConfig message, length delimited. Does not implicitly {@link cs.PurchaseConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.PurchaseConfig + * @static + * @param {cs.IPurchaseConfig} message PurchaseConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PurchaseConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PurchaseConfig message from the specified reader or buffer. + * @function decode + * @memberof cs.PurchaseConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.PurchaseConfig} PurchaseConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PurchaseConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.PurchaseConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.id = reader.int32(); + break; + } + case 2: { + message.name = reader.string(); + break; + } + case 3: { + message.count = reader.int32(); + break; + } + case 4: { + message.price = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PurchaseConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.PurchaseConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.PurchaseConfig} PurchaseConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PurchaseConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PurchaseConfig message. + * @function verify + * @memberof cs.PurchaseConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PurchaseConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.id != null && message.hasOwnProperty("id")) + if (!$util.isInteger(message.id)) + return "id: integer expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.count != null && message.hasOwnProperty("count")) + if (!$util.isInteger(message.count)) + return "count: integer expected"; + if (message.price != null && message.hasOwnProperty("price")) + if (!$util.isInteger(message.price)) + return "price: integer expected"; + return null; + }; + + /** + * Creates a PurchaseConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.PurchaseConfig + * @static + * @param {Object.} object Plain object + * @returns {cs.PurchaseConfig} PurchaseConfig + */ + PurchaseConfig.fromObject = function fromObject(object) { + if (object instanceof $root.cs.PurchaseConfig) + return object; + var message = new $root.cs.PurchaseConfig(); + if (object.id != null) + message.id = object.id | 0; + if (object.name != null) + message.name = String(object.name); + if (object.count != null) + message.count = object.count | 0; + if (object.price != null) + message.price = object.price | 0; + return message; + }; + + /** + * Creates a plain object from a PurchaseConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.PurchaseConfig + * @static + * @param {cs.PurchaseConfig} message PurchaseConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PurchaseConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.id = 0; + object.name = ""; + object.count = 0; + object.price = 0; + } + if (message.id != null && message.hasOwnProperty("id")) + object.id = message.id; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.count != null && message.hasOwnProperty("count")) + object.count = message.count; + if (message.price != null && message.hasOwnProperty("price")) + object.price = message.price; + return object; + }; + + /** + * Converts this PurchaseConfig to JSON. + * @function toJSON + * @memberof cs.PurchaseConfig + * @instance + * @returns {Object.} JSON object + */ + PurchaseConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for PurchaseConfig + * @function getTypeUrl + * @memberof cs.PurchaseConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + PurchaseConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.PurchaseConfig"; + }; + + return PurchaseConfig; + })(); + + cs.Themes = (function() { + + /** + * Properties of a Themes. + * @memberof cs + * @interface IThemes + * @property {number|null} [id] Themes id + * @property {string|null} [key] Themes key + * @property {string|null} [name] Themes name + * @property {cs.Category|null} [category] Themes category + * @property {boolean|null} [isRelease] Themes isRelease + * @property {string|null} [path] Themes path + */ + + /** + * Constructs a new Themes. + * @memberof cs + * @classdesc Represents a Themes. + * @implements IThemes + * @constructor + * @param {cs.IThemes=} [properties] Properties to set + */ + function Themes(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Themes id. + * @member {number} id + * @memberof cs.Themes + * @instance + */ + Themes.prototype.id = 0; + + /** + * Themes key. + * @member {string} key + * @memberof cs.Themes + * @instance + */ + Themes.prototype.key = ""; + + /** + * Themes name. + * @member {string} name + * @memberof cs.Themes + * @instance + */ + Themes.prototype.name = ""; + + /** + * Themes category. + * @member {cs.Category} category + * @memberof cs.Themes + * @instance + */ + Themes.prototype.category = 0; + + /** + * Themes isRelease. + * @member {boolean} isRelease + * @memberof cs.Themes + * @instance + */ + Themes.prototype.isRelease = false; + + /** + * Themes path. + * @member {string} path + * @memberof cs.Themes + * @instance + */ + Themes.prototype.path = ""; + + /** + * Creates a new Themes instance using the specified properties. + * @function create + * @memberof cs.Themes + * @static + * @param {cs.IThemes=} [properties] Properties to set + * @returns {cs.Themes} Themes instance + */ + Themes.create = function create(properties) { + return new Themes(properties); + }; + + /** + * Encodes the specified Themes message. Does not implicitly {@link cs.Themes.verify|verify} messages. + * @function encode + * @memberof cs.Themes + * @static + * @param {cs.IThemes} message Themes message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Themes.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.id != null && Object.hasOwnProperty.call(message, "id")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id); + if (message.key != null && Object.hasOwnProperty.call(message, "key")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.key); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.name); + if (message.category != null && Object.hasOwnProperty.call(message, "category")) + writer.uint32(/* id 4, wireType 0 =*/32).int32(message.category); + if (message.isRelease != null && Object.hasOwnProperty.call(message, "isRelease")) + writer.uint32(/* id 5, wireType 0 =*/40).bool(message.isRelease); + if (message.path != null && Object.hasOwnProperty.call(message, "path")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.path); + return writer; + }; + + /** + * Encodes the specified Themes message, length delimited. Does not implicitly {@link cs.Themes.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.Themes + * @static + * @param {cs.IThemes} message Themes message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Themes.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Themes message from the specified reader or buffer. + * @function decode + * @memberof cs.Themes + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.Themes} Themes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Themes.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.Themes(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.id = reader.int32(); + break; + } + case 2: { + message.key = reader.string(); + break; + } + case 3: { + message.name = reader.string(); + break; + } + case 4: { + message.category = reader.int32(); + break; + } + case 5: { + message.isRelease = reader.bool(); + break; + } + case 6: { + message.path = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Themes message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.Themes + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.Themes} Themes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Themes.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Themes message. + * @function verify + * @memberof cs.Themes + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Themes.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.id != null && message.hasOwnProperty("id")) + if (!$util.isInteger(message.id)) + return "id: integer expected"; + if (message.key != null && message.hasOwnProperty("key")) + if (!$util.isString(message.key)) + return "key: string expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.category != null && message.hasOwnProperty("category")) + switch (message.category) { + default: + return "category: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + break; + } + if (message.isRelease != null && message.hasOwnProperty("isRelease")) + if (typeof message.isRelease !== "boolean") + return "isRelease: boolean expected"; + if (message.path != null && message.hasOwnProperty("path")) + if (!$util.isString(message.path)) + return "path: string expected"; + return null; + }; + + /** + * Creates a Themes message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.Themes + * @static + * @param {Object.} object Plain object + * @returns {cs.Themes} Themes + */ + Themes.fromObject = function fromObject(object) { + if (object instanceof $root.cs.Themes) + return object; + var message = new $root.cs.Themes(); + if (object.id != null) + message.id = object.id | 0; + if (object.key != null) + message.key = String(object.key); + if (object.name != null) + message.name = String(object.name); + switch (object.category) { + default: + if (typeof object.category === "number") { + message.category = object.category; + break; + } + break; + case "Category_mature": + case 0: + message.category = 0; + break; + case "Category_eighteen": + case 1: + message.category = 1; + break; + case "Category_qinfan": + case 2: + message.category = 2; + break; + case "Category_luanlun": + case 3: + message.category = 3; + break; + case "Category_bdsm": + case 4: + message.category = 4; + break; + case "Category_loli": + case 5: + message.category = 5; + break; + case "Category_upcomming": + case 6: + message.category = 6; + break; + } + if (object.isRelease != null) + message.isRelease = Boolean(object.isRelease); + if (object.path != null) + message.path = String(object.path); + return message; + }; + + /** + * Creates a plain object from a Themes message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.Themes + * @static + * @param {cs.Themes} message Themes + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Themes.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.id = 0; + object.key = ""; + object.name = ""; + object.category = options.enums === String ? "Category_mature" : 0; + object.isRelease = false; + object.path = ""; + } + if (message.id != null && message.hasOwnProperty("id")) + object.id = message.id; + if (message.key != null && message.hasOwnProperty("key")) + object.key = message.key; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.category != null && message.hasOwnProperty("category")) + object.category = options.enums === String ? $root.cs.Category[message.category] === undefined ? message.category : $root.cs.Category[message.category] : message.category; + if (message.isRelease != null && message.hasOwnProperty("isRelease")) + object.isRelease = message.isRelease; + if (message.path != null && message.hasOwnProperty("path")) + object.path = message.path; + return object; + }; + + /** + * Converts this Themes to JSON. + * @function toJSON + * @memberof cs.Themes + * @instance + * @returns {Object.} JSON object + */ + Themes.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for Themes + * @function getTypeUrl + * @memberof cs.Themes + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Themes.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.Themes"; + }; + + return Themes; + })(); + + cs.vector2 = (function() { + + /** + * Properties of a vector2. + * @memberof cs + * @interface Ivector2 + * @property {number|null} [x] vector2 x + * @property {number|null} [y] vector2 y + */ + + /** + * Constructs a new vector2. + * @memberof cs + * @classdesc Represents a vector2. + * @implements Ivector2 + * @constructor + * @param {cs.Ivector2=} [properties] Properties to set + */ + function vector2(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * vector2 x. + * @member {number} x + * @memberof cs.vector2 + * @instance + */ + vector2.prototype.x = 0; + + /** + * vector2 y. + * @member {number} y + * @memberof cs.vector2 + * @instance + */ + vector2.prototype.y = 0; + + /** + * Creates a new vector2 instance using the specified properties. + * @function create + * @memberof cs.vector2 + * @static + * @param {cs.Ivector2=} [properties] Properties to set + * @returns {cs.vector2} vector2 instance + */ + vector2.create = function create(properties) { + return new vector2(properties); + }; + + /** + * Encodes the specified vector2 message. Does not implicitly {@link cs.vector2.verify|verify} messages. + * @function encode + * @memberof cs.vector2 + * @static + * @param {cs.Ivector2} message vector2 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + vector2.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.x != null && Object.hasOwnProperty.call(message, "x")) + writer.uint32(/* id 1, wireType 5 =*/13).float(message.x); + if (message.y != null && Object.hasOwnProperty.call(message, "y")) + writer.uint32(/* id 2, wireType 5 =*/21).float(message.y); + return writer; + }; + + /** + * Encodes the specified vector2 message, length delimited. Does not implicitly {@link cs.vector2.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.vector2 + * @static + * @param {cs.Ivector2} message vector2 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + vector2.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a vector2 message from the specified reader or buffer. + * @function decode + * @memberof cs.vector2 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.vector2} vector2 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + vector2.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.vector2(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.x = reader.float(); + break; + } + case 2: { + message.y = reader.float(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a vector2 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.vector2 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.vector2} vector2 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + vector2.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a vector2 message. + * @function verify + * @memberof cs.vector2 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + vector2.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.x != null && message.hasOwnProperty("x")) + if (typeof message.x !== "number") + return "x: number expected"; + if (message.y != null && message.hasOwnProperty("y")) + if (typeof message.y !== "number") + return "y: number expected"; + return null; + }; + + /** + * Creates a vector2 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.vector2 + * @static + * @param {Object.} object Plain object + * @returns {cs.vector2} vector2 + */ + vector2.fromObject = function fromObject(object) { + if (object instanceof $root.cs.vector2) + return object; + var message = new $root.cs.vector2(); + if (object.x != null) + message.x = Number(object.x); + if (object.y != null) + message.y = Number(object.y); + return message; + }; + + /** + * Creates a plain object from a vector2 message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.vector2 + * @static + * @param {cs.vector2} message vector2 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + vector2.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.x = 0; + object.y = 0; + } + if (message.x != null && message.hasOwnProperty("x")) + object.x = options.json && !isFinite(message.x) ? String(message.x) : message.x; + if (message.y != null && message.hasOwnProperty("y")) + object.y = options.json && !isFinite(message.y) ? String(message.y) : message.y; + return object; + }; + + /** + * Converts this vector2 to JSON. + * @function toJSON + * @memberof cs.vector2 + * @instance + * @returns {Object.} JSON object + */ + vector2.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for vector2 + * @function getTypeUrl + * @memberof cs.vector2 + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + vector2.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.vector2"; + }; + + return vector2; + })(); + + cs.vector3 = (function() { + + /** + * Properties of a vector3. + * @memberof cs + * @interface Ivector3 + * @property {number|null} [x] vector3 x + * @property {number|null} [y] vector3 y + * @property {number|null} [z] vector3 z + */ + + /** + * Constructs a new vector3. + * @memberof cs + * @classdesc Represents a vector3. + * @implements Ivector3 + * @constructor + * @param {cs.Ivector3=} [properties] Properties to set + */ + function vector3(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * vector3 x. + * @member {number} x + * @memberof cs.vector3 + * @instance + */ + vector3.prototype.x = 0; + + /** + * vector3 y. + * @member {number} y + * @memberof cs.vector3 + * @instance + */ + vector3.prototype.y = 0; + + /** + * vector3 z. + * @member {number} z + * @memberof cs.vector3 + * @instance + */ + vector3.prototype.z = 0; + + /** + * Creates a new vector3 instance using the specified properties. + * @function create + * @memberof cs.vector3 + * @static + * @param {cs.Ivector3=} [properties] Properties to set + * @returns {cs.vector3} vector3 instance + */ + vector3.create = function create(properties) { + return new vector3(properties); + }; + + /** + * Encodes the specified vector3 message. Does not implicitly {@link cs.vector3.verify|verify} messages. + * @function encode + * @memberof cs.vector3 + * @static + * @param {cs.Ivector3} message vector3 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + vector3.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.x != null && Object.hasOwnProperty.call(message, "x")) + writer.uint32(/* id 1, wireType 5 =*/13).float(message.x); + if (message.y != null && Object.hasOwnProperty.call(message, "y")) + writer.uint32(/* id 2, wireType 5 =*/21).float(message.y); + if (message.z != null && Object.hasOwnProperty.call(message, "z")) + writer.uint32(/* id 3, wireType 5 =*/29).float(message.z); + return writer; + }; + + /** + * Encodes the specified vector3 message, length delimited. Does not implicitly {@link cs.vector3.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.vector3 + * @static + * @param {cs.Ivector3} message vector3 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + vector3.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a vector3 message from the specified reader or buffer. + * @function decode + * @memberof cs.vector3 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.vector3} vector3 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + vector3.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.vector3(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.x = reader.float(); + break; + } + case 2: { + message.y = reader.float(); + break; + } + case 3: { + message.z = reader.float(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a vector3 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.vector3 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.vector3} vector3 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + vector3.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a vector3 message. + * @function verify + * @memberof cs.vector3 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + vector3.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.x != null && message.hasOwnProperty("x")) + if (typeof message.x !== "number") + return "x: number expected"; + if (message.y != null && message.hasOwnProperty("y")) + if (typeof message.y !== "number") + return "y: number expected"; + if (message.z != null && message.hasOwnProperty("z")) + if (typeof message.z !== "number") + return "z: number expected"; + return null; + }; + + /** + * Creates a vector3 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.vector3 + * @static + * @param {Object.} object Plain object + * @returns {cs.vector3} vector3 + */ + vector3.fromObject = function fromObject(object) { + if (object instanceof $root.cs.vector3) + return object; + var message = new $root.cs.vector3(); + if (object.x != null) + message.x = Number(object.x); + if (object.y != null) + message.y = Number(object.y); + if (object.z != null) + message.z = Number(object.z); + return message; + }; + + /** + * Creates a plain object from a vector3 message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.vector3 + * @static + * @param {cs.vector3} message vector3 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + vector3.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.x = 0; + object.y = 0; + object.z = 0; + } + if (message.x != null && message.hasOwnProperty("x")) + object.x = options.json && !isFinite(message.x) ? String(message.x) : message.x; + if (message.y != null && message.hasOwnProperty("y")) + object.y = options.json && !isFinite(message.y) ? String(message.y) : message.y; + if (message.z != null && message.hasOwnProperty("z")) + object.z = options.json && !isFinite(message.z) ? String(message.z) : message.z; + return object; + }; + + /** + * Converts this vector3 to JSON. + * @function toJSON + * @memberof cs.vector3 + * @instance + * @returns {Object.} JSON object + */ + vector3.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for vector3 + * @function getTypeUrl + * @memberof cs.vector3 + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + vector3.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.vector3"; + }; + + return vector3; + })(); + + cs.vector4 = (function() { + + /** + * Properties of a vector4. + * @memberof cs + * @interface Ivector4 + * @property {number|null} [x] vector4 x + * @property {number|null} [y] vector4 y + * @property {number|null} [z] vector4 z + * @property {number|null} [w] vector4 w + */ + + /** + * Constructs a new vector4. + * @memberof cs + * @classdesc Represents a vector4. + * @implements Ivector4 + * @constructor + * @param {cs.Ivector4=} [properties] Properties to set + */ + function vector4(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * vector4 x. + * @member {number} x + * @memberof cs.vector4 + * @instance + */ + vector4.prototype.x = 0; + + /** + * vector4 y. + * @member {number} y + * @memberof cs.vector4 + * @instance + */ + vector4.prototype.y = 0; + + /** + * vector4 z. + * @member {number} z + * @memberof cs.vector4 + * @instance + */ + vector4.prototype.z = 0; + + /** + * vector4 w. + * @member {number} w + * @memberof cs.vector4 + * @instance + */ + vector4.prototype.w = 0; + + /** + * Creates a new vector4 instance using the specified properties. + * @function create + * @memberof cs.vector4 + * @static + * @param {cs.Ivector4=} [properties] Properties to set + * @returns {cs.vector4} vector4 instance + */ + vector4.create = function create(properties) { + return new vector4(properties); + }; + + /** + * Encodes the specified vector4 message. Does not implicitly {@link cs.vector4.verify|verify} messages. + * @function encode + * @memberof cs.vector4 + * @static + * @param {cs.Ivector4} message vector4 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + vector4.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.x != null && Object.hasOwnProperty.call(message, "x")) + writer.uint32(/* id 1, wireType 5 =*/13).float(message.x); + if (message.y != null && Object.hasOwnProperty.call(message, "y")) + writer.uint32(/* id 2, wireType 5 =*/21).float(message.y); + if (message.z != null && Object.hasOwnProperty.call(message, "z")) + writer.uint32(/* id 3, wireType 5 =*/29).float(message.z); + if (message.w != null && Object.hasOwnProperty.call(message, "w")) + writer.uint32(/* id 4, wireType 5 =*/37).float(message.w); + return writer; + }; + + /** + * Encodes the specified vector4 message, length delimited. Does not implicitly {@link cs.vector4.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.vector4 + * @static + * @param {cs.Ivector4} message vector4 message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + vector4.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a vector4 message from the specified reader or buffer. + * @function decode + * @memberof cs.vector4 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.vector4} vector4 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + vector4.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.vector4(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.x = reader.float(); + break; + } + case 2: { + message.y = reader.float(); + break; + } + case 3: { + message.z = reader.float(); + break; + } + case 4: { + message.w = reader.float(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a vector4 message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.vector4 + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.vector4} vector4 + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + vector4.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a vector4 message. + * @function verify + * @memberof cs.vector4 + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + vector4.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.x != null && message.hasOwnProperty("x")) + if (typeof message.x !== "number") + return "x: number expected"; + if (message.y != null && message.hasOwnProperty("y")) + if (typeof message.y !== "number") + return "y: number expected"; + if (message.z != null && message.hasOwnProperty("z")) + if (typeof message.z !== "number") + return "z: number expected"; + if (message.w != null && message.hasOwnProperty("w")) + if (typeof message.w !== "number") + return "w: number expected"; + return null; + }; + + /** + * Creates a vector4 message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.vector4 + * @static + * @param {Object.} object Plain object + * @returns {cs.vector4} vector4 + */ + vector4.fromObject = function fromObject(object) { + if (object instanceof $root.cs.vector4) + return object; + var message = new $root.cs.vector4(); + if (object.x != null) + message.x = Number(object.x); + if (object.y != null) + message.y = Number(object.y); + if (object.z != null) + message.z = Number(object.z); + if (object.w != null) + message.w = Number(object.w); + return message; + }; + + /** + * Creates a plain object from a vector4 message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.vector4 + * @static + * @param {cs.vector4} message vector4 + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + vector4.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.x = 0; + object.y = 0; + object.z = 0; + object.w = 0; + } + if (message.x != null && message.hasOwnProperty("x")) + object.x = options.json && !isFinite(message.x) ? String(message.x) : message.x; + if (message.y != null && message.hasOwnProperty("y")) + object.y = options.json && !isFinite(message.y) ? String(message.y) : message.y; + if (message.z != null && message.hasOwnProperty("z")) + object.z = options.json && !isFinite(message.z) ? String(message.z) : message.z; + if (message.w != null && message.hasOwnProperty("w")) + object.w = options.json && !isFinite(message.w) ? String(message.w) : message.w; + return object; + }; + + /** + * Converts this vector4 to JSON. + * @function toJSON + * @memberof cs.vector4 + * @instance + * @returns {Object.} JSON object + */ + vector4.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for vector4 + * @function getTypeUrl + * @memberof cs.vector4 + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + vector4.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.vector4"; + }; + + return vector4; + })(); + + cs.TbLanguage = (function() { + + /** + * Properties of a TbLanguage. + * @memberof cs + * @interface ITbLanguage + * @property {Array.|null} [items] TbLanguage items + */ + + /** + * Constructs a new TbLanguage. + * @memberof cs + * @classdesc Represents a TbLanguage. + * @implements ITbLanguage + * @constructor + * @param {cs.ITbLanguage=} [properties] Properties to set + */ + function TbLanguage(properties) { + this.items = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * TbLanguage items. + * @member {Array.} items + * @memberof cs.TbLanguage + * @instance + */ + TbLanguage.prototype.items = $util.emptyArray; + + /** + * Creates a new TbLanguage instance using the specified properties. + * @function create + * @memberof cs.TbLanguage + * @static + * @param {cs.ITbLanguage=} [properties] Properties to set + * @returns {cs.TbLanguage} TbLanguage instance + */ + TbLanguage.create = function create(properties) { + return new TbLanguage(properties); + }; + + /** + * Encodes the specified TbLanguage message. Does not implicitly {@link cs.TbLanguage.verify|verify} messages. + * @function encode + * @memberof cs.TbLanguage + * @static + * @param {cs.ITbLanguage} message TbLanguage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TbLanguage.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.items != null && message.items.length) + for (var i = 0; i < message.items.length; ++i) + $root.cs.Language.encode(message.items[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified TbLanguage message, length delimited. Does not implicitly {@link cs.TbLanguage.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.TbLanguage + * @static + * @param {cs.ITbLanguage} message TbLanguage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TbLanguage.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a TbLanguage message from the specified reader or buffer. + * @function decode + * @memberof cs.TbLanguage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.TbLanguage} TbLanguage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TbLanguage.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.TbLanguage(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + if (!(message.items && message.items.length)) + message.items = []; + message.items.push($root.cs.Language.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a TbLanguage message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.TbLanguage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.TbLanguage} TbLanguage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TbLanguage.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a TbLanguage message. + * @function verify + * @memberof cs.TbLanguage + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + TbLanguage.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.items != null && message.hasOwnProperty("items")) { + if (!Array.isArray(message.items)) + return "items: array expected"; + for (var i = 0; i < message.items.length; ++i) { + var error = $root.cs.Language.verify(message.items[i]); + if (error) + return "items." + error; + } + } + return null; + }; + + /** + * Creates a TbLanguage message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.TbLanguage + * @static + * @param {Object.} object Plain object + * @returns {cs.TbLanguage} TbLanguage + */ + TbLanguage.fromObject = function fromObject(object) { + if (object instanceof $root.cs.TbLanguage) + return object; + var message = new $root.cs.TbLanguage(); + if (object.items) { + if (!Array.isArray(object.items)) + throw TypeError(".cs.TbLanguage.items: array expected"); + message.items = []; + for (var i = 0; i < object.items.length; ++i) { + if (typeof object.items[i] !== "object") + throw TypeError(".cs.TbLanguage.items: object expected"); + message.items[i] = $root.cs.Language.fromObject(object.items[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a TbLanguage message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.TbLanguage + * @static + * @param {cs.TbLanguage} message TbLanguage + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + TbLanguage.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.items = []; + if (message.items && message.items.length) { + object.items = []; + for (var j = 0; j < message.items.length; ++j) + object.items[j] = $root.cs.Language.toObject(message.items[j], options); + } + return object; + }; + + /** + * Converts this TbLanguage to JSON. + * @function toJSON + * @memberof cs.TbLanguage + * @instance + * @returns {Object.} JSON object + */ + TbLanguage.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for TbLanguage + * @function getTypeUrl + * @memberof cs.TbLanguage + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + TbLanguage.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.TbLanguage"; + }; + + return TbLanguage; + })(); + + cs.TbGirls = (function() { + + /** + * Properties of a TbGirls. + * @memberof cs + * @interface ITbGirls + * @property {Array.|null} [items] TbGirls items + */ + + /** + * Constructs a new TbGirls. + * @memberof cs + * @classdesc Represents a TbGirls. + * @implements ITbGirls + * @constructor + * @param {cs.ITbGirls=} [properties] Properties to set + */ + function TbGirls(properties) { + this.items = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * TbGirls items. + * @member {Array.} items + * @memberof cs.TbGirls + * @instance + */ + TbGirls.prototype.items = $util.emptyArray; + + /** + * Creates a new TbGirls instance using the specified properties. + * @function create + * @memberof cs.TbGirls + * @static + * @param {cs.ITbGirls=} [properties] Properties to set + * @returns {cs.TbGirls} TbGirls instance + */ + TbGirls.create = function create(properties) { + return new TbGirls(properties); + }; + + /** + * Encodes the specified TbGirls message. Does not implicitly {@link cs.TbGirls.verify|verify} messages. + * @function encode + * @memberof cs.TbGirls + * @static + * @param {cs.ITbGirls} message TbGirls message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TbGirls.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.items != null && message.items.length) + for (var i = 0; i < message.items.length; ++i) + $root.cs.Girls.encode(message.items[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified TbGirls message, length delimited. Does not implicitly {@link cs.TbGirls.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.TbGirls + * @static + * @param {cs.ITbGirls} message TbGirls message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TbGirls.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a TbGirls message from the specified reader or buffer. + * @function decode + * @memberof cs.TbGirls + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.TbGirls} TbGirls + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TbGirls.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.TbGirls(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + if (!(message.items && message.items.length)) + message.items = []; + message.items.push($root.cs.Girls.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a TbGirls message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.TbGirls + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.TbGirls} TbGirls + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TbGirls.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a TbGirls message. + * @function verify + * @memberof cs.TbGirls + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + TbGirls.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.items != null && message.hasOwnProperty("items")) { + if (!Array.isArray(message.items)) + return "items: array expected"; + for (var i = 0; i < message.items.length; ++i) { + var error = $root.cs.Girls.verify(message.items[i]); + if (error) + return "items." + error; + } + } + return null; + }; + + /** + * Creates a TbGirls message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.TbGirls + * @static + * @param {Object.} object Plain object + * @returns {cs.TbGirls} TbGirls + */ + TbGirls.fromObject = function fromObject(object) { + if (object instanceof $root.cs.TbGirls) + return object; + var message = new $root.cs.TbGirls(); + if (object.items) { + if (!Array.isArray(object.items)) + throw TypeError(".cs.TbGirls.items: array expected"); + message.items = []; + for (var i = 0; i < object.items.length; ++i) { + if (typeof object.items[i] !== "object") + throw TypeError(".cs.TbGirls.items: object expected"); + message.items[i] = $root.cs.Girls.fromObject(object.items[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a TbGirls message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.TbGirls + * @static + * @param {cs.TbGirls} message TbGirls + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + TbGirls.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.items = []; + if (message.items && message.items.length) { + object.items = []; + for (var j = 0; j < message.items.length; ++j) + object.items[j] = $root.cs.Girls.toObject(message.items[j], options); + } + return object; + }; + + /** + * Converts this TbGirls to JSON. + * @function toJSON + * @memberof cs.TbGirls + * @instance + * @returns {Object.} JSON object + */ + TbGirls.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for TbGirls + * @function getTypeUrl + * @memberof cs.TbGirls + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + TbGirls.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.TbGirls"; + }; + + return TbGirls; + })(); + + cs.TbGirlsDetail = (function() { + + /** + * Properties of a TbGirlsDetail. + * @memberof cs + * @interface ITbGirlsDetail + * @property {Array.|null} [items] TbGirlsDetail items + */ + + /** + * Constructs a new TbGirlsDetail. + * @memberof cs + * @classdesc Represents a TbGirlsDetail. + * @implements ITbGirlsDetail + * @constructor + * @param {cs.ITbGirlsDetail=} [properties] Properties to set + */ + function TbGirlsDetail(properties) { + this.items = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * TbGirlsDetail items. + * @member {Array.} items + * @memberof cs.TbGirlsDetail + * @instance + */ + TbGirlsDetail.prototype.items = $util.emptyArray; + + /** + * Creates a new TbGirlsDetail instance using the specified properties. + * @function create + * @memberof cs.TbGirlsDetail + * @static + * @param {cs.ITbGirlsDetail=} [properties] Properties to set + * @returns {cs.TbGirlsDetail} TbGirlsDetail instance + */ + TbGirlsDetail.create = function create(properties) { + return new TbGirlsDetail(properties); + }; + + /** + * Encodes the specified TbGirlsDetail message. Does not implicitly {@link cs.TbGirlsDetail.verify|verify} messages. + * @function encode + * @memberof cs.TbGirlsDetail + * @static + * @param {cs.ITbGirlsDetail} message TbGirlsDetail message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TbGirlsDetail.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.items != null && message.items.length) + for (var i = 0; i < message.items.length; ++i) + $root.cs.GirlsDetail.encode(message.items[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified TbGirlsDetail message, length delimited. Does not implicitly {@link cs.TbGirlsDetail.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.TbGirlsDetail + * @static + * @param {cs.ITbGirlsDetail} message TbGirlsDetail message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TbGirlsDetail.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a TbGirlsDetail message from the specified reader or buffer. + * @function decode + * @memberof cs.TbGirlsDetail + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.TbGirlsDetail} TbGirlsDetail + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TbGirlsDetail.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.TbGirlsDetail(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + if (!(message.items && message.items.length)) + message.items = []; + message.items.push($root.cs.GirlsDetail.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a TbGirlsDetail message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.TbGirlsDetail + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.TbGirlsDetail} TbGirlsDetail + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TbGirlsDetail.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a TbGirlsDetail message. + * @function verify + * @memberof cs.TbGirlsDetail + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + TbGirlsDetail.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.items != null && message.hasOwnProperty("items")) { + if (!Array.isArray(message.items)) + return "items: array expected"; + for (var i = 0; i < message.items.length; ++i) { + var error = $root.cs.GirlsDetail.verify(message.items[i]); + if (error) + return "items." + error; + } + } + return null; + }; + + /** + * Creates a TbGirlsDetail message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.TbGirlsDetail + * @static + * @param {Object.} object Plain object + * @returns {cs.TbGirlsDetail} TbGirlsDetail + */ + TbGirlsDetail.fromObject = function fromObject(object) { + if (object instanceof $root.cs.TbGirlsDetail) + return object; + var message = new $root.cs.TbGirlsDetail(); + if (object.items) { + if (!Array.isArray(object.items)) + throw TypeError(".cs.TbGirlsDetail.items: array expected"); + message.items = []; + for (var i = 0; i < object.items.length; ++i) { + if (typeof object.items[i] !== "object") + throw TypeError(".cs.TbGirlsDetail.items: object expected"); + message.items[i] = $root.cs.GirlsDetail.fromObject(object.items[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a TbGirlsDetail message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.TbGirlsDetail + * @static + * @param {cs.TbGirlsDetail} message TbGirlsDetail + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + TbGirlsDetail.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.items = []; + if (message.items && message.items.length) { + object.items = []; + for (var j = 0; j < message.items.length; ++j) + object.items[j] = $root.cs.GirlsDetail.toObject(message.items[j], options); + } + return object; + }; + + /** + * Converts this TbGirlsDetail to JSON. + * @function toJSON + * @memberof cs.TbGirlsDetail + * @instance + * @returns {Object.} JSON object + */ + TbGirlsDetail.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for TbGirlsDetail + * @function getTypeUrl + * @memberof cs.TbGirlsDetail + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + TbGirlsDetail.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.TbGirlsDetail"; + }; + + return TbGirlsDetail; + })(); + + cs.TbThemes = (function() { + + /** + * Properties of a TbThemes. + * @memberof cs + * @interface ITbThemes + * @property {Array.|null} [items] TbThemes items + */ + + /** + * Constructs a new TbThemes. + * @memberof cs + * @classdesc Represents a TbThemes. + * @implements ITbThemes + * @constructor + * @param {cs.ITbThemes=} [properties] Properties to set + */ + function TbThemes(properties) { + this.items = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * TbThemes items. + * @member {Array.} items + * @memberof cs.TbThemes + * @instance + */ + TbThemes.prototype.items = $util.emptyArray; + + /** + * Creates a new TbThemes instance using the specified properties. + * @function create + * @memberof cs.TbThemes + * @static + * @param {cs.ITbThemes=} [properties] Properties to set + * @returns {cs.TbThemes} TbThemes instance + */ + TbThemes.create = function create(properties) { + return new TbThemes(properties); + }; + + /** + * Encodes the specified TbThemes message. Does not implicitly {@link cs.TbThemes.verify|verify} messages. + * @function encode + * @memberof cs.TbThemes + * @static + * @param {cs.ITbThemes} message TbThemes message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TbThemes.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.items != null && message.items.length) + for (var i = 0; i < message.items.length; ++i) + $root.cs.Themes.encode(message.items[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified TbThemes message, length delimited. Does not implicitly {@link cs.TbThemes.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.TbThemes + * @static + * @param {cs.ITbThemes} message TbThemes message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TbThemes.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a TbThemes message from the specified reader or buffer. + * @function decode + * @memberof cs.TbThemes + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.TbThemes} TbThemes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TbThemes.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.TbThemes(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + if (!(message.items && message.items.length)) + message.items = []; + message.items.push($root.cs.Themes.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a TbThemes message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.TbThemes + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.TbThemes} TbThemes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TbThemes.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a TbThemes message. + * @function verify + * @memberof cs.TbThemes + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + TbThemes.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.items != null && message.hasOwnProperty("items")) { + if (!Array.isArray(message.items)) + return "items: array expected"; + for (var i = 0; i < message.items.length; ++i) { + var error = $root.cs.Themes.verify(message.items[i]); + if (error) + return "items." + error; + } + } + return null; + }; + + /** + * Creates a TbThemes message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.TbThemes + * @static + * @param {Object.} object Plain object + * @returns {cs.TbThemes} TbThemes + */ + TbThemes.fromObject = function fromObject(object) { + if (object instanceof $root.cs.TbThemes) + return object; + var message = new $root.cs.TbThemes(); + if (object.items) { + if (!Array.isArray(object.items)) + throw TypeError(".cs.TbThemes.items: array expected"); + message.items = []; + for (var i = 0; i < object.items.length; ++i) { + if (typeof object.items[i] !== "object") + throw TypeError(".cs.TbThemes.items: object expected"); + message.items[i] = $root.cs.Themes.fromObject(object.items[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a TbThemes message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.TbThemes + * @static + * @param {cs.TbThemes} message TbThemes + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + TbThemes.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.items = []; + if (message.items && message.items.length) { + object.items = []; + for (var j = 0; j < message.items.length; ++j) + object.items[j] = $root.cs.Themes.toObject(message.items[j], options); + } + return object; + }; + + /** + * Converts this TbThemes to JSON. + * @function toJSON + * @memberof cs.TbThemes + * @instance + * @returns {Object.} JSON object + */ + TbThemes.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for TbThemes + * @function getTypeUrl + * @memberof cs.TbThemes + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + TbThemes.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.TbThemes"; + }; + + return TbThemes; + })(); + + cs.TbAiCharacters = (function() { + + /** + * Properties of a TbAiCharacters. + * @memberof cs + * @interface ITbAiCharacters + * @property {Array.|null} [items] TbAiCharacters items + */ + + /** + * Constructs a new TbAiCharacters. + * @memberof cs + * @classdesc Represents a TbAiCharacters. + * @implements ITbAiCharacters + * @constructor + * @param {cs.ITbAiCharacters=} [properties] Properties to set + */ + function TbAiCharacters(properties) { + this.items = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * TbAiCharacters items. + * @member {Array.} items + * @memberof cs.TbAiCharacters + * @instance + */ + TbAiCharacters.prototype.items = $util.emptyArray; + + /** + * Creates a new TbAiCharacters instance using the specified properties. + * @function create + * @memberof cs.TbAiCharacters + * @static + * @param {cs.ITbAiCharacters=} [properties] Properties to set + * @returns {cs.TbAiCharacters} TbAiCharacters instance + */ + TbAiCharacters.create = function create(properties) { + return new TbAiCharacters(properties); + }; + + /** + * Encodes the specified TbAiCharacters message. Does not implicitly {@link cs.TbAiCharacters.verify|verify} messages. + * @function encode + * @memberof cs.TbAiCharacters + * @static + * @param {cs.ITbAiCharacters} message TbAiCharacters message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TbAiCharacters.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.items != null && message.items.length) + for (var i = 0; i < message.items.length; ++i) + $root.cs.AiCharacters.encode(message.items[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified TbAiCharacters message, length delimited. Does not implicitly {@link cs.TbAiCharacters.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.TbAiCharacters + * @static + * @param {cs.ITbAiCharacters} message TbAiCharacters message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TbAiCharacters.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a TbAiCharacters message from the specified reader or buffer. + * @function decode + * @memberof cs.TbAiCharacters + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.TbAiCharacters} TbAiCharacters + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TbAiCharacters.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.TbAiCharacters(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + if (!(message.items && message.items.length)) + message.items = []; + message.items.push($root.cs.AiCharacters.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a TbAiCharacters message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.TbAiCharacters + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.TbAiCharacters} TbAiCharacters + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TbAiCharacters.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a TbAiCharacters message. + * @function verify + * @memberof cs.TbAiCharacters + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + TbAiCharacters.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.items != null && message.hasOwnProperty("items")) { + if (!Array.isArray(message.items)) + return "items: array expected"; + for (var i = 0; i < message.items.length; ++i) { + var error = $root.cs.AiCharacters.verify(message.items[i]); + if (error) + return "items." + error; + } + } + return null; + }; + + /** + * Creates a TbAiCharacters message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.TbAiCharacters + * @static + * @param {Object.} object Plain object + * @returns {cs.TbAiCharacters} TbAiCharacters + */ + TbAiCharacters.fromObject = function fromObject(object) { + if (object instanceof $root.cs.TbAiCharacters) + return object; + var message = new $root.cs.TbAiCharacters(); + if (object.items) { + if (!Array.isArray(object.items)) + throw TypeError(".cs.TbAiCharacters.items: array expected"); + message.items = []; + for (var i = 0; i < object.items.length; ++i) { + if (typeof object.items[i] !== "object") + throw TypeError(".cs.TbAiCharacters.items: object expected"); + message.items[i] = $root.cs.AiCharacters.fromObject(object.items[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a TbAiCharacters message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.TbAiCharacters + * @static + * @param {cs.TbAiCharacters} message TbAiCharacters + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + TbAiCharacters.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.items = []; + if (message.items && message.items.length) { + object.items = []; + for (var j = 0; j < message.items.length; ++j) + object.items[j] = $root.cs.AiCharacters.toObject(message.items[j], options); + } + return object; + }; + + /** + * Converts this TbAiCharacters to JSON. + * @function toJSON + * @memberof cs.TbAiCharacters + * @instance + * @returns {Object.} JSON object + */ + TbAiCharacters.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for TbAiCharacters + * @function getTypeUrl + * @memberof cs.TbAiCharacters + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + TbAiCharacters.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.TbAiCharacters"; + }; + + return TbAiCharacters; + })(); + + cs.TbGlobalConfig = (function() { + + /** + * Properties of a TbGlobalConfig. + * @memberof cs + * @interface ITbGlobalConfig + * @property {Array.|null} [items] TbGlobalConfig items + */ + + /** + * Constructs a new TbGlobalConfig. + * @memberof cs + * @classdesc Represents a TbGlobalConfig. + * @implements ITbGlobalConfig + * @constructor + * @param {cs.ITbGlobalConfig=} [properties] Properties to set + */ + function TbGlobalConfig(properties) { + this.items = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * TbGlobalConfig items. + * @member {Array.} items + * @memberof cs.TbGlobalConfig + * @instance + */ + TbGlobalConfig.prototype.items = $util.emptyArray; + + /** + * Creates a new TbGlobalConfig instance using the specified properties. + * @function create + * @memberof cs.TbGlobalConfig + * @static + * @param {cs.ITbGlobalConfig=} [properties] Properties to set + * @returns {cs.TbGlobalConfig} TbGlobalConfig instance + */ + TbGlobalConfig.create = function create(properties) { + return new TbGlobalConfig(properties); + }; + + /** + * Encodes the specified TbGlobalConfig message. Does not implicitly {@link cs.TbGlobalConfig.verify|verify} messages. + * @function encode + * @memberof cs.TbGlobalConfig + * @static + * @param {cs.ITbGlobalConfig} message TbGlobalConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TbGlobalConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.items != null && message.items.length) + for (var i = 0; i < message.items.length; ++i) + $root.cs.GlobalConfig.encode(message.items[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified TbGlobalConfig message, length delimited. Does not implicitly {@link cs.TbGlobalConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.TbGlobalConfig + * @static + * @param {cs.ITbGlobalConfig} message TbGlobalConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TbGlobalConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a TbGlobalConfig message from the specified reader or buffer. + * @function decode + * @memberof cs.TbGlobalConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.TbGlobalConfig} TbGlobalConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TbGlobalConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.TbGlobalConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + if (!(message.items && message.items.length)) + message.items = []; + message.items.push($root.cs.GlobalConfig.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a TbGlobalConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.TbGlobalConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.TbGlobalConfig} TbGlobalConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TbGlobalConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a TbGlobalConfig message. + * @function verify + * @memberof cs.TbGlobalConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + TbGlobalConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.items != null && message.hasOwnProperty("items")) { + if (!Array.isArray(message.items)) + return "items: array expected"; + for (var i = 0; i < message.items.length; ++i) { + var error = $root.cs.GlobalConfig.verify(message.items[i]); + if (error) + return "items." + error; + } + } + return null; + }; + + /** + * Creates a TbGlobalConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.TbGlobalConfig + * @static + * @param {Object.} object Plain object + * @returns {cs.TbGlobalConfig} TbGlobalConfig + */ + TbGlobalConfig.fromObject = function fromObject(object) { + if (object instanceof $root.cs.TbGlobalConfig) + return object; + var message = new $root.cs.TbGlobalConfig(); + if (object.items) { + if (!Array.isArray(object.items)) + throw TypeError(".cs.TbGlobalConfig.items: array expected"); + message.items = []; + for (var i = 0; i < object.items.length; ++i) { + if (typeof object.items[i] !== "object") + throw TypeError(".cs.TbGlobalConfig.items: object expected"); + message.items[i] = $root.cs.GlobalConfig.fromObject(object.items[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a TbGlobalConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.TbGlobalConfig + * @static + * @param {cs.TbGlobalConfig} message TbGlobalConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + TbGlobalConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.items = []; + if (message.items && message.items.length) { + object.items = []; + for (var j = 0; j < message.items.length; ++j) + object.items[j] = $root.cs.GlobalConfig.toObject(message.items[j], options); + } + return object; + }; + + /** + * Converts this TbGlobalConfig to JSON. + * @function toJSON + * @memberof cs.TbGlobalConfig + * @instance + * @returns {Object.} JSON object + */ + TbGlobalConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for TbGlobalConfig + * @function getTypeUrl + * @memberof cs.TbGlobalConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + TbGlobalConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.TbGlobalConfig"; + }; + + return TbGlobalConfig; + })(); + + cs.TbPurchaseConfig = (function() { + + /** + * Properties of a TbPurchaseConfig. + * @memberof cs + * @interface ITbPurchaseConfig + * @property {Array.|null} [items] TbPurchaseConfig items + */ + + /** + * Constructs a new TbPurchaseConfig. + * @memberof cs + * @classdesc Represents a TbPurchaseConfig. + * @implements ITbPurchaseConfig + * @constructor + * @param {cs.ITbPurchaseConfig=} [properties] Properties to set + */ + function TbPurchaseConfig(properties) { + this.items = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * TbPurchaseConfig items. + * @member {Array.} items + * @memberof cs.TbPurchaseConfig + * @instance + */ + TbPurchaseConfig.prototype.items = $util.emptyArray; + + /** + * Creates a new TbPurchaseConfig instance using the specified properties. + * @function create + * @memberof cs.TbPurchaseConfig + * @static + * @param {cs.ITbPurchaseConfig=} [properties] Properties to set + * @returns {cs.TbPurchaseConfig} TbPurchaseConfig instance + */ + TbPurchaseConfig.create = function create(properties) { + return new TbPurchaseConfig(properties); + }; + + /** + * Encodes the specified TbPurchaseConfig message. Does not implicitly {@link cs.TbPurchaseConfig.verify|verify} messages. + * @function encode + * @memberof cs.TbPurchaseConfig + * @static + * @param {cs.ITbPurchaseConfig} message TbPurchaseConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TbPurchaseConfig.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.items != null && message.items.length) + for (var i = 0; i < message.items.length; ++i) + $root.cs.PurchaseConfig.encode(message.items[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified TbPurchaseConfig message, length delimited. Does not implicitly {@link cs.TbPurchaseConfig.verify|verify} messages. + * @function encodeDelimited + * @memberof cs.TbPurchaseConfig + * @static + * @param {cs.ITbPurchaseConfig} message TbPurchaseConfig message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TbPurchaseConfig.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a TbPurchaseConfig message from the specified reader or buffer. + * @function decode + * @memberof cs.TbPurchaseConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {cs.TbPurchaseConfig} TbPurchaseConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TbPurchaseConfig.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.cs.TbPurchaseConfig(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + if (!(message.items && message.items.length)) + message.items = []; + message.items.push($root.cs.PurchaseConfig.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a TbPurchaseConfig message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof cs.TbPurchaseConfig + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {cs.TbPurchaseConfig} TbPurchaseConfig + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TbPurchaseConfig.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a TbPurchaseConfig message. + * @function verify + * @memberof cs.TbPurchaseConfig + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + TbPurchaseConfig.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.items != null && message.hasOwnProperty("items")) { + if (!Array.isArray(message.items)) + return "items: array expected"; + for (var i = 0; i < message.items.length; ++i) { + var error = $root.cs.PurchaseConfig.verify(message.items[i]); + if (error) + return "items." + error; + } + } + return null; + }; + + /** + * Creates a TbPurchaseConfig message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof cs.TbPurchaseConfig + * @static + * @param {Object.} object Plain object + * @returns {cs.TbPurchaseConfig} TbPurchaseConfig + */ + TbPurchaseConfig.fromObject = function fromObject(object) { + if (object instanceof $root.cs.TbPurchaseConfig) + return object; + var message = new $root.cs.TbPurchaseConfig(); + if (object.items) { + if (!Array.isArray(object.items)) + throw TypeError(".cs.TbPurchaseConfig.items: array expected"); + message.items = []; + for (var i = 0; i < object.items.length; ++i) { + if (typeof object.items[i] !== "object") + throw TypeError(".cs.TbPurchaseConfig.items: object expected"); + message.items[i] = $root.cs.PurchaseConfig.fromObject(object.items[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a TbPurchaseConfig message. Also converts values to other types if specified. + * @function toObject + * @memberof cs.TbPurchaseConfig + * @static + * @param {cs.TbPurchaseConfig} message TbPurchaseConfig + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + TbPurchaseConfig.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.items = []; + if (message.items && message.items.length) { + object.items = []; + for (var j = 0; j < message.items.length; ++j) + object.items[j] = $root.cs.PurchaseConfig.toObject(message.items[j], options); + } + return object; + }; + + /** + * Converts this TbPurchaseConfig to JSON. + * @function toJSON + * @memberof cs.TbPurchaseConfig + * @instance + * @returns {Object.} JSON object + */ + TbPurchaseConfig.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for TbPurchaseConfig + * @function getTypeUrl + * @memberof cs.TbPurchaseConfig + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + TbPurchaseConfig.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/cs.TbPurchaseConfig"; + }; + + return TbPurchaseConfig; + })(); + cs.CSLoginReq = (function() { /** @@ -7058,6 +12790,8 @@ $root.cs = (function() { * @property {string|null} [token] CSLoginRes token * @property {string|null} [refreshToken] CSLoginRes refreshToken * @property {number|Long|null} [expire] CSLoginRes expire + * @property {string|null} [accId] CSLoginRes accId + * @property {string|null} [cdn] CSLoginRes cdn */ /** @@ -7107,6 +12841,22 @@ $root.cs = (function() { */ CSLoginRes.prototype.expire = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + /** + * CSLoginRes accId. + * @member {string} accId + * @memberof cs.CSLoginRes + * @instance + */ + CSLoginRes.prototype.accId = ""; + + /** + * CSLoginRes cdn. + * @member {string} cdn + * @memberof cs.CSLoginRes + * @instance + */ + CSLoginRes.prototype.cdn = ""; + /** * Creates a new CSLoginRes instance using the specified properties. * @function create @@ -7139,6 +12889,10 @@ $root.cs = (function() { writer.uint32(/* id 3, wireType 2 =*/26).string(message.refreshToken); if (message.expire != null && Object.hasOwnProperty.call(message, "expire")) writer.uint32(/* id 4, wireType 0 =*/32).int64(message.expire); + if (message.accId != null && Object.hasOwnProperty.call(message, "accId")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.accId); + if (message.cdn != null && Object.hasOwnProperty.call(message, "cdn")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.cdn); return writer; }; @@ -7191,6 +12945,14 @@ $root.cs = (function() { message.expire = reader.int64(); break; } + case 5: { + message.accId = reader.string(); + break; + } + case 6: { + message.cdn = reader.string(); + break; + } default: reader.skipType(tag & 7); break; @@ -7238,6 +13000,12 @@ $root.cs = (function() { if (message.expire != null && message.hasOwnProperty("expire")) if (!$util.isInteger(message.expire) && !(message.expire && $util.isInteger(message.expire.low) && $util.isInteger(message.expire.high))) return "expire: integer|Long expected"; + if (message.accId != null && message.hasOwnProperty("accId")) + if (!$util.isString(message.accId)) + return "accId: string expected"; + if (message.cdn != null && message.hasOwnProperty("cdn")) + if (!$util.isString(message.cdn)) + return "cdn: string expected"; return null; }; @@ -7268,6 +13036,10 @@ $root.cs = (function() { message.expire = object.expire; else if (typeof object.expire === "object") message.expire = new $util.LongBits(object.expire.low >>> 0, object.expire.high >>> 0).toNumber(); + if (object.accId != null) + message.accId = String(object.accId); + if (object.cdn != null) + message.cdn = String(object.cdn); return message; }; @@ -7293,6 +13065,8 @@ $root.cs = (function() { object.expire = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; } else object.expire = options.longs === String ? "0" : 0; + object.accId = ""; + object.cdn = ""; } if (message.name != null && message.hasOwnProperty("name")) object.name = message.name; @@ -7305,6 +13079,10 @@ $root.cs = (function() { object.expire = options.longs === String ? String(message.expire) : message.expire; else object.expire = options.longs === String ? $util.Long.prototype.toString.call(message.expire) : options.longs === Number ? new $util.LongBits(message.expire.low >>> 0, message.expire.high >>> 0).toNumber() : message.expire; + if (message.accId != null && message.hasOwnProperty("accId")) + object.accId = message.accId; + if (message.cdn != null && message.hasOwnProperty("cdn")) + object.cdn = message.cdn; return object; }; @@ -7520,7 +13298,7 @@ $root.cs = (function() { * Properties of a CSMyInfoRes. * @memberof cs * @interface ICSMyInfoRes - * @property {number|Long|null} [diamond] CSMyInfoRes diamond + * @property {number|Long|null} [balance] CSMyInfoRes balance * @property {number|Long|null} [vipExpire] CSMyInfoRes vipExpire */ @@ -7540,12 +13318,12 @@ $root.cs = (function() { } /** - * CSMyInfoRes diamond. - * @member {number|Long} diamond + * CSMyInfoRes balance. + * @member {number|Long} balance * @memberof cs.CSMyInfoRes * @instance */ - CSMyInfoRes.prototype.diamond = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + CSMyInfoRes.prototype.balance = $util.Long ? $util.Long.fromBits(0,0,false) : 0; /** * CSMyInfoRes vipExpire. @@ -7579,8 +13357,8 @@ $root.cs = (function() { CSMyInfoRes.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.diamond != null && Object.hasOwnProperty.call(message, "diamond")) - writer.uint32(/* id 1, wireType 0 =*/8).int64(message.diamond); + if (message.balance != null && Object.hasOwnProperty.call(message, "balance")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.balance); if (message.vipExpire != null && Object.hasOwnProperty.call(message, "vipExpire")) writer.uint32(/* id 2, wireType 0 =*/16).int64(message.vipExpire); return writer; @@ -7620,7 +13398,7 @@ $root.cs = (function() { break; switch (tag >>> 3) { case 1: { - message.diamond = reader.int64(); + message.balance = reader.int64(); break; } case 2: { @@ -7662,9 +13440,9 @@ $root.cs = (function() { CSMyInfoRes.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.diamond != null && message.hasOwnProperty("diamond")) - if (!$util.isInteger(message.diamond) && !(message.diamond && $util.isInteger(message.diamond.low) && $util.isInteger(message.diamond.high))) - return "diamond: integer|Long expected"; + if (message.balance != null && message.hasOwnProperty("balance")) + if (!$util.isInteger(message.balance) && !(message.balance && $util.isInteger(message.balance.low) && $util.isInteger(message.balance.high))) + return "balance: integer|Long expected"; if (message.vipExpire != null && message.hasOwnProperty("vipExpire")) if (!$util.isInteger(message.vipExpire) && !(message.vipExpire && $util.isInteger(message.vipExpire.low) && $util.isInteger(message.vipExpire.high))) return "vipExpire: integer|Long expected"; @@ -7683,15 +13461,15 @@ $root.cs = (function() { if (object instanceof $root.cs.CSMyInfoRes) return object; var message = new $root.cs.CSMyInfoRes(); - if (object.diamond != null) + if (object.balance != null) if ($util.Long) - (message.diamond = $util.Long.fromValue(object.diamond)).unsigned = false; - else if (typeof object.diamond === "string") - message.diamond = parseInt(object.diamond, 10); - else if (typeof object.diamond === "number") - message.diamond = object.diamond; - else if (typeof object.diamond === "object") - message.diamond = new $util.LongBits(object.diamond.low >>> 0, object.diamond.high >>> 0).toNumber(); + (message.balance = $util.Long.fromValue(object.balance)).unsigned = false; + else if (typeof object.balance === "string") + message.balance = parseInt(object.balance, 10); + else if (typeof object.balance === "number") + message.balance = object.balance; + else if (typeof object.balance === "object") + message.balance = new $util.LongBits(object.balance.low >>> 0, object.balance.high >>> 0).toNumber(); if (object.vipExpire != null) if ($util.Long) (message.vipExpire = $util.Long.fromValue(object.vipExpire)).unsigned = false; @@ -7720,20 +13498,20 @@ $root.cs = (function() { if (options.defaults) { if ($util.Long) { var long = new $util.Long(0, 0, false); - object.diamond = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + object.balance = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; } else - object.diamond = options.longs === String ? "0" : 0; + object.balance = options.longs === String ? "0" : 0; if ($util.Long) { var long = new $util.Long(0, 0, false); object.vipExpire = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; } else object.vipExpire = options.longs === String ? "0" : 0; } - if (message.diamond != null && message.hasOwnProperty("diamond")) - if (typeof message.diamond === "number") - object.diamond = options.longs === String ? String(message.diamond) : message.diamond; + if (message.balance != null && message.hasOwnProperty("balance")) + if (typeof message.balance === "number") + object.balance = options.longs === String ? String(message.balance) : message.balance; else - object.diamond = options.longs === String ? $util.Long.prototype.toString.call(message.diamond) : options.longs === Number ? new $util.LongBits(message.diamond.low >>> 0, message.diamond.high >>> 0).toNumber() : message.diamond; + object.balance = options.longs === String ? $util.Long.prototype.toString.call(message.balance) : options.longs === Number ? new $util.LongBits(message.balance.low >>> 0, message.balance.high >>> 0).toNumber() : message.balance; if (message.vipExpire != null && message.hasOwnProperty("vipExpire")) if (typeof message.vipExpire === "number") object.vipExpire = options.longs === String ? String(message.vipExpire) : message.vipExpire; diff --git a/assets/Scripts/schema/schema.ts b/assets/Scripts/schema/schema.ts index 46622f01..55a12bb9 100644 --- a/assets/Scripts/schema/schema.ts +++ b/assets/Scripts/schema/schema.ts @@ -234,7 +234,6 @@ export class GlobalConfig { this.GameName = _buf_.readString() this.EmotionRating = _buf_.readString() this.girlBasePrompt = _buf_.readString() - this.dailyRecommendGirl = _buf_.readInt() } /** @@ -282,10 +281,6 @@ export class GlobalConfig { * ai机器人基础规则 */ readonly girlBasePrompt: string - /** - * 每日推荐技师ID,参见:girls.id - */ - readonly dailyRecommendGirl: number resolve(tables:Tables) { @@ -300,7 +295,6 @@ export class GlobalConfig { - } } @@ -439,8 +433,8 @@ export class PurchaseConfig { constructor(_buf_: ByteBuf) { this.id = _buf_.readInt() this.name = _buf_.readString() - this.desc = _buf_.readString() this.count = _buf_.readInt() + this.price = _buf_.readInt() } /** @@ -454,11 +448,11 @@ export class PurchaseConfig { /** * 数量 */ - readonly desc: string + readonly count: number /** * 价格 */ - readonly count: number + readonly price: number resolve(tables:Tables) { @@ -812,10 +806,6 @@ export class TbGlobalConfig { * ai机器人基础规则 */ get girlBasePrompt(): string { return this._data.girlBasePrompt; } - /** - * 每日推荐技师ID,参见:girls.id - */ - get dailyRecommendGirl(): number { return this._data.dailyRecommendGirl; } resolve(tables:Tables) { this._data.resolve(tables) diff --git a/assets/bundles/Chat18x/GirlDetailPanel.prefab b/assets/bundles/Chat18x/GirlDetailPanel.prefab index aeb0ba83..42cf52b0 100644 --- a/assets/bundles/Chat18x/GirlDetailPanel.prefab +++ b/assets/bundles/Chat18x/GirlDetailPanel.prefab @@ -142,7 +142,7 @@ "__id__": 4 }, { - "__id__": 54 + "__id__": 308 } ], "_active": true, @@ -191,7 +191,7 @@ }, { "__type__": "cc.Node", - "_name": "ImageItem", + "_name": "ScrollView", "_objFlags": 0, "__editorExtras__": {}, "_parent": { @@ -200,92 +200,159 @@ "_children": [ { "__id__": 5 - }, - { - "__id__": 11 - }, - { - "__id__": 17 - }, - { - "__id__": 23 } ], "_active": true, "_components": [ { - "__id__": 43 + "__id__": 299 }, { - "__id__": 45 + "__id__": 301 }, { - "__id__": 47 + "__id__": 303 + }, + { + "__id__": 305 + } + ], + "_prefab": { + "__id__": 307 + }, + "_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.Node", + "_name": "view", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 4 + }, + "_children": [ + { + "__id__": 6 + } + ], + "_active": true, + "_components": [ + { + "__id__": 290 + }, + { + "__id__": 292 + }, + { + "__id__": 294 + }, + { + "__id__": 296 + } + ], + "_prefab": { + "__id__": 298 + }, + "_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.Node", + "_name": "content", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 5 + }, + "_children": [ + { + "__id__": 7 }, { "__id__": 49 }, { - "__id__": 51 - } - ], - "_prefab": { - "__id__": 53 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": -343.56100000000004, - "y": -1083.111, - "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": "Img", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 4 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 6 + "__id__": 175 }, { - "__id__": 8 + "__id__": 199 + }, + { + "__id__": 275 + } + ], + "_active": true, + "_components": [ + { + "__id__": 283 + }, + { + "__id__": 285 + }, + { + "__id__": 287 } ], "_prefab": { - "__id__": 10 + "__id__": 289 }, "_lpos": { "__type__": "cc.Vec3", - "x": 5.684341886080802e-14, - "y": 0, + "x": 0, + "y": 1170, "z": 0 }, "_lrot": { @@ -311,100 +378,143 @@ }, "_id": "" }, - { - "__type__": "cc.UITransform", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 5 - }, - "_enabled": true, - "__prefab": { - "__id__": 7 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 360, - "height": 540 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "34QgYhH2VForD334GE1if5" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 5 - }, - "_enabled": true, - "__prefab": { - "__id__": 9 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_spriteFrame": null, - "_type": 1, - "_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": "f6AZTSqV5HQo9IKkT5QadT" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "d6hCtvqAhBE5wrn/IdqY17", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, { "__type__": "cc.Node", - "_name": "question", + "_name": "Middle", "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 4 + "__id__": 6 + }, + "_children": [ + { + "__id__": 8 + }, + { + "__id__": 26 + }, + { + "__id__": 34 + } + ], + "_active": true, + "_components": [ + { + "__id__": 42 + }, + { + "__id__": 44 + }, + { + "__id__": 46 + } + ], + "_prefab": { + "__id__": 48 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": -551.4, + "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__": 7 + }, + "_children": [ + { + "__id__": 9 + } + ], + "_active": true, + "_components": [ + { + "__id__": 17 + }, + { + "__id__": 19 + }, + { + "__id__": 21 + }, + { + "__id__": 23 + } + ], + "_prefab": { + "__id__": 25 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": -408.6, + "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__": 8 }, "_children": [], "_active": true, "_components": [ + { + "__id__": 10 + }, { "__id__": 12 }, @@ -450,1270 +560,12 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { + "__id__": 9 + }, + "_enabled": true, + "__prefab": { "__id__": 11 }, - "_enabled": true, - "__prefab": { - "__id__": 13 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 87, - "height": 127 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "c3AUBBvJ5EILCYbD/7sNee" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 11 - }, - "_enabled": true, - "__prefab": { - "__id__": 15 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_spriteFrame": { - "__uuid__": "4aec67ca-d8be-465c-bc9e-54535aed70b8@f9941", - "__expectedType__": "cc.SpriteFrame" - }, - "_type": 0, - "_fillType": 0, - "_sizeMode": 1, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_useGrayscale": false, - "_atlas": null, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "6fOgEWfAdHcqTMLLVn9rkt" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "31ThkJwTdO1bKibNu3m8u0", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.Node", - "_name": "video", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 4 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 18 - }, - { - "__id__": 20 - } - ], - "_prefab": { - "__id__": 22 - }, - "_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__": 17 - }, - "_enabled": true, - "__prefab": { - "__id__": 19 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 83, - "height": 83 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "50lmzXYCJPXqHAwe+1lw3p" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 17 - }, - "_enabled": true, - "__prefab": { - "__id__": 21 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_spriteFrame": { - "__uuid__": "ae1676fd-9d9b-47ef-abc9-a56da69425e9@f9941", - "__expectedType__": "cc.SpriteFrame" - }, - "_type": 0, - "_fillType": 0, - "_sizeMode": 1, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_useGrayscale": false, - "_atlas": null, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "e3onmOsKFMZYyyGk6uSqTg" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "1ay/OK5mxMTqmY0ynxvGIj", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.Node", - "_name": "priceFrame", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 4 - }, - "_children": [ - { - "__id__": 24 - }, - { - "__id__": 30 - } - ], - "_active": true, - "_components": [ - { - "__id__": 36 - }, - { - "__id__": 38 - }, - { - "__id__": 40 - } - ], - "_prefab": { - "__id__": 42 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": -171.87499999999997, - "y": 180.3750000000001, - "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": "Num", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 23 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 25 - }, - { - "__id__": 27 - } - ], - "_prefab": { - "__id__": 29 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 162.106, - "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__": 24 - }, - "_enabled": true, - "__prefab": { - "__id__": 26 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 176.427344, - "height": 76.2 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "f1CHMnDh9DboJ8Ww88mAfs" - }, - { - "__type__": "cc.Label", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 24 - }, - "_enabled": true, - "__prefab": { - "__id__": 28 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 170, - "g": 194, - "b": 188, - "a": 255 - }, - "_string": "9999", - "_horizontalAlign": 1, - "_verticalAlign": 1, - "_actualFontSize": 59, - "_fontSize": 58, - "_fontFamily": "Arial", - "_lineHeight": 40, - "_overflow": 2, - "_enableWrapText": true, - "_font": null, - "_isSystemFontUsed": true, - "_spacingX": 0, - "_isItalic": false, - "_isBold": false, - "_isUnderline": false, - "_underlineHeight": 2, - "_cacheMode": 0, - "_enableOutline": false, - "_outlineColor": { - "__type__": "cc.Color", - "r": 0, - "g": 0, - "b": 0, - "a": 255 - }, - "_outlineWidth": 2, - "_enableShadow": false, - "_shadowColor": { - "__type__": "cc.Color", - "r": 0, - "g": 0, - "b": 0, - "a": 255 - }, - "_shadowOffset": { - "__type__": "cc.Vec2", - "x": 2, - "y": 2 - }, - "_shadowBlur": 2, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "1ddCMaXZBLYJUvY1jxqHnA" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "4aXu6EQ5lDiJC942wHOnGm", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.Node", - "_name": "priceIcon", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 23 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 31 - }, - { - "__id__": 33 - } - ], - "_prefab": { - "__id__": 35 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 39.07200000000003, - "y": 0, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 0.6, - "y": 0.6, - "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__": 30 - }, - "_enabled": true, - "__prefab": { - "__id__": 32 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 102, - "height": 89 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "6duiBAK7BAQJul3CG/v6Aq" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 30 - }, - "_enabled": true, - "__prefab": { - "__id__": 34 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_spriteFrame": { - "__uuid__": "e72d6e10-73bf-44e8-82d5-da3a20f908b2@f9941", - "__expectedType__": "cc.SpriteFrame" - }, - "_type": 0, - "_fillType": 0, - "_sizeMode": 1, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_useGrayscale": false, - "_atlas": null, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "ebRYye6LtHrZvpb34j083i" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "a3DZXJaCxBgbYLDAt6JSex", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.UITransform", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 23 - }, - "_enabled": true, - "__prefab": { - "__id__": 37 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 271.8, - "height": 80 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "5dYdvoxYhGhaf0QJ3RI0OH" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 23 - }, - "_enabled": true, - "__prefab": { - "__id__": 39 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_spriteFrame": { - "__uuid__": "989deb0d-8788-42de-81ee-5e1dfdbe6901@f9941", - "__expectedType__": "cc.SpriteFrame" - }, - "_type": 1, - "_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": "52pH35JWFJb54mvuo1YXX4" - }, - { - "__type__": "cc.Widget", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 23 - }, - "_enabled": true, - "__prefab": { - "__id__": 41 - }, - "_alignFlags": 9, - "_target": null, - "_left": -1.3749999999999716, - "_right": 0, - "_top": -1.3750000000001137, - "_bottom": 0, - "_horizontalCenter": 0, - "_verticalCenter": 0, - "_isAbsLeft": true, - "_isAbsRight": true, - "_isAbsTop": true, - "_isAbsBottom": true, - "_isAbsHorizontalCenter": true, - "_isAbsVerticalCenter": true, - "_originalWidth": 0, - "_originalHeight": 0, - "_alignMode": 2, - "_lockFlags": 0, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "90RFjDlb5PM4UmX/3RsIgE" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "15iEDWpjBAd5WV2skG3fxW", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.UITransform", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 4 - }, - "_enabled": true, - "__prefab": { - "__id__": 44 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 341, - "height": 438 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "24DhPD7rdPmZcznMD+QFfn" - }, - { - "__type__": "cc.Button", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 4 - }, - "_enabled": true, - "__prefab": { - "__id__": 46 - }, - "clickEvents": [], - "_interactable": true, - "_transition": 0, - "_normalColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_hoverColor": { - "__type__": "cc.Color", - "r": 211, - "g": 211, - "b": 211, - "a": 255 - }, - "_pressedColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_disabledColor": { - "__type__": "cc.Color", - "r": 124, - "g": 124, - "b": 124, - "a": 255 - }, - "_normalSprite": null, - "_hoverSprite": null, - "_pressedSprite": null, - "_disabledSprite": null, - "_duration": 0.1, - "_zoomScale": 1.2, - "_target": { - "__id__": 4 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "83/ZOBJ4JOs7lku7qWM7hw" - }, - { - "__type__": "4ce70ScWKpFGalZ/RcxTbmk", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 4 - }, - "_enabled": true, - "__prefab": { - "__id__": 48 - }, - "img": { - "__id__": 8 - }, - "question": { - "__id__": 11 - }, - "video": { - "__id__": 20 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "023qXmQxRHxYnagDtG5jnv" - }, - { - "__type__": "cc.Mask", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 4 - }, - "_enabled": true, - "__prefab": { - "__id__": 50 - }, - "_type": 0, - "_inverted": false, - "_segments": 64, - "_alphaThreshold": 0.1, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "dfobCWY7JH45hmZv7YSsN6" - }, - { - "__type__": "cc.Graphics", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 4 - }, - "_enabled": true, - "__prefab": { - "__id__": 52 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_lineWidth": 1, - "_strokeColor": { - "__type__": "cc.Color", - "r": 0, - "g": 0, - "b": 0, - "a": 255 - }, - "_lineJoin": 2, - "_lineCap": 0, - "_fillColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 0 - }, - "_miterLimit": 10, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "e9dlGg5DZIn7HgyGkmSUpV" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "c2n0xV60ZLR6LEhBTlkwjN", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.Node", - "_name": "ScrollView", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 3 - }, - "_children": [ - { - "__id__": 55 - } - ], - "_active": true, - "_components": [ - { - "__id__": 349 - }, - { - "__id__": 351 - }, - { - "__id__": 353 - }, - { - "__id__": 355 - } - ], - "_prefab": { - "__id__": 357 - }, - "_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.Node", - "_name": "view", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 54 - }, - "_children": [ - { - "__id__": 56 - } - ], - "_active": true, - "_components": [ - { - "__id__": 340 - }, - { - "__id__": 342 - }, - { - "__id__": 344 - }, - { - "__id__": 346 - } - ], - "_prefab": { - "__id__": 348 - }, - "_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.Node", - "_name": "content", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 55 - }, - "_children": [ - { - "__id__": 57 - }, - { - "__id__": 99 - }, - { - "__id__": 225 - }, - { - "__id__": 249 - }, - { - "__id__": 325 - } - ], - "_active": true, - "_components": [ - { - "__id__": 333 - }, - { - "__id__": 335 - }, - { - "__id__": 337 - } - ], - "_prefab": { - "__id__": 339 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 0, - "y": 1170, - "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": "Middle", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 56 - }, - "_children": [ - { - "__id__": 58 - }, - { - "__id__": 76 - }, - { - "__id__": 84 - } - ], - "_active": true, - "_components": [ - { - "__id__": 92 - }, - { - "__id__": 94 - }, - { - "__id__": 96 - } - ], - "_prefab": { - "__id__": 98 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 0, - "y": -551.4, - "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__": 57 - }, - "_children": [ - { - "__id__": 59 - } - ], - "_active": true, - "_components": [ - { - "__id__": 67 - }, - { - "__id__": 69 - }, - { - "__id__": 71 - }, - { - "__id__": 73 - } - ], - "_prefab": { - "__id__": 75 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 0, - "y": -408.6, - "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__": 58 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 60 - }, - { - "__id__": 62 - }, - { - "__id__": 64 - } - ], - "_prefab": { - "__id__": 66 - }, - "_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__": 59 - }, - "_enabled": true, - "__prefab": { - "__id__": 61 - }, "_contentSize": { "__type__": "cc.Size", "width": 1080, @@ -1736,11 +588,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 59 + "__id__": 9 }, "_enabled": true, "__prefab": { - "__id__": 63 + "__id__": 13 }, "_alignFlags": 45, "_target": null, @@ -1772,11 +624,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 59 + "__id__": 9 }, "_enabled": true, "__prefab": { - "__id__": 65 + "__id__": 15 }, "_resourceType": 1, "_remoteURL": "", @@ -1815,11 +667,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 58 + "__id__": 8 }, "_enabled": true, "__prefab": { - "__id__": 68 + "__id__": 18 }, "_contentSize": { "__type__": "cc.Size", @@ -1843,11 +695,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 58 + "__id__": 8 }, "_enabled": true, "__prefab": { - "__id__": 70 + "__id__": 20 }, "_type": 3, "_inverted": false, @@ -1865,11 +717,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 58 + "__id__": 8 }, "_enabled": true, "__prefab": { - "__id__": 72 + "__id__": 22 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -1910,11 +762,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 58 + "__id__": 8 }, "_enabled": true, "__prefab": { - "__id__": 74 + "__id__": 24 }, "_alignFlags": 41, "_target": null, @@ -1959,23 +811,23 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 57 + "__id__": 7 }, "_children": [], "_active": true, "_components": [ { - "__id__": 77 + "__id__": 27 }, { - "__id__": 79 + "__id__": 29 }, { - "__id__": 81 + "__id__": 31 } ], "_prefab": { - "__id__": 83 + "__id__": 33 }, "_lpos": { "__type__": "cc.Vec3", @@ -2012,11 +864,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 76 + "__id__": 26 }, "_enabled": true, "__prefab": { - "__id__": 78 + "__id__": 28 }, "_contentSize": { "__type__": "cc.Size", @@ -2040,11 +892,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 76 + "__id__": 26 }, "_enabled": true, "__prefab": { - "__id__": 80 + "__id__": 30 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -2085,11 +937,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 76 + "__id__": 26 }, "_enabled": true, "__prefab": { - "__id__": 82 + "__id__": 32 }, "_alignFlags": 40, "_target": null, @@ -2134,23 +986,23 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 57 + "__id__": 7 }, "_children": [], "_active": true, "_components": [ { - "__id__": 85 + "__id__": 35 }, { - "__id__": 87 + "__id__": 37 }, { - "__id__": 89 + "__id__": 39 } ], "_prefab": { - "__id__": 91 + "__id__": 41 }, "_lpos": { "__type__": "cc.Vec3", @@ -2187,11 +1039,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 84 + "__id__": 34 }, "_enabled": true, "__prefab": { - "__id__": 86 + "__id__": 36 }, "_contentSize": { "__type__": "cc.Size", @@ -2215,11 +1067,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 84 + "__id__": 34 }, "_enabled": true, "__prefab": { - "__id__": 88 + "__id__": 38 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -2260,11 +1112,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 84 + "__id__": 34 }, "_enabled": true, "__prefab": { - "__id__": 90 + "__id__": 40 }, "_alignFlags": 40, "_target": null, @@ -2299,6 +1151,8 @@ "__id__": 0 }, "fileId": "741FHtIidNAp5eBbfeZpUS", + "instance": null, + "targetOverrides": null, "nestedPrefabInstanceRoots": null }, { @@ -2307,11 +1161,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 57 + "__id__": 7 }, "_enabled": true, "__prefab": { - "__id__": 93 + "__id__": 43 }, "_contentSize": { "__type__": "cc.Size", @@ -2335,11 +1189,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 57 + "__id__": 7 }, "_enabled": false, "__prefab": { - "__id__": 95 + "__id__": 45 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -2380,11 +1234,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 57 + "__id__": 7 }, "_enabled": true, "__prefab": { - "__id__": 97 + "__id__": 47 }, "_alignFlags": 1, "_target": null, @@ -2429,45 +1283,45 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 56 + "__id__": 6 }, "_children": [ { - "__id__": 100 + "__id__": 50 }, { - "__id__": 108 + "__id__": 58 }, { - "__id__": 114 + "__id__": 64 }, { - "__id__": 152 + "__id__": 102 }, { - "__id__": 177 + "__id__": 127 }, { - "__id__": 185 + "__id__": 135 }, { - "__id__": 193 + "__id__": 143 } ], "_active": true, "_components": [ { - "__id__": 218 + "__id__": 168 }, { - "__id__": 220 + "__id__": 170 }, { - "__id__": 222 + "__id__": 172 } ], "_prefab": { - "__id__": 224 + "__id__": 174 }, "_lpos": { "__type__": "cc.Vec3", @@ -2504,23 +1358,23 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 99 + "__id__": 49 }, "_children": [], "_active": true, "_components": [ { - "__id__": 101 + "__id__": 51 }, { - "__id__": 103 + "__id__": 53 }, { - "__id__": 105 + "__id__": 55 } ], "_prefab": { - "__id__": 107 + "__id__": 57 }, "_lpos": { "__type__": "cc.Vec3", @@ -2557,11 +1411,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 100 + "__id__": 50 }, "_enabled": true, "__prefab": { - "__id__": 102 + "__id__": 52 }, "_contentSize": { "__type__": "cc.Size", @@ -2585,11 +1439,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 100 + "__id__": 50 }, "_enabled": true, "__prefab": { - "__id__": 104 + "__id__": 54 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -2630,11 +1484,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 100 + "__id__": 50 }, "_enabled": true, "__prefab": { - "__id__": 106 + "__id__": 56 }, "_alignFlags": 45, "_target": null, @@ -2679,20 +1533,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 99 + "__id__": 49 }, "_children": [], "_active": true, "_components": [ { - "__id__": 109 + "__id__": 59 }, { - "__id__": 111 + "__id__": 61 } ], "_prefab": { - "__id__": 113 + "__id__": 63 }, "_lpos": { "__type__": "cc.Vec3", @@ -2729,11 +1583,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 108 + "__id__": 58 }, "_enabled": true, "__prefab": { - "__id__": 110 + "__id__": 60 }, "_contentSize": { "__type__": "cc.Size", @@ -2757,11 +1611,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 108 + "__id__": 58 }, "_enabled": true, "__prefab": { - "__id__": 112 + "__id__": 62 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -2838,39 +1692,39 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 99 + "__id__": 49 }, "_children": [ { - "__id__": 115 + "__id__": 65 }, { - "__id__": 121 + "__id__": 71 }, { - "__id__": 127 + "__id__": 77 }, { - "__id__": 133 + "__id__": 83 }, { - "__id__": 139 + "__id__": 89 } ], "_active": true, "_components": [ { - "__id__": 145 + "__id__": 95 }, { - "__id__": 147 + "__id__": 97 }, { - "__id__": 149 + "__id__": 99 } ], "_prefab": { - "__id__": 151 + "__id__": 101 }, "_lpos": { "__type__": "cc.Vec3", @@ -2907,20 +1761,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 114 + "__id__": 64 }, "_children": [], "_active": true, "_components": [ { - "__id__": 116 + "__id__": 66 }, { - "__id__": 118 + "__id__": 68 } ], "_prefab": { - "__id__": 120 + "__id__": 70 }, "_lpos": { "__type__": "cc.Vec3", @@ -2957,11 +1811,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 115 + "__id__": 65 }, "_enabled": true, "__prefab": { - "__id__": 117 + "__id__": 67 }, "_contentSize": { "__type__": "cc.Size", @@ -2985,11 +1839,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 115 + "__id__": 65 }, "_enabled": true, "__prefab": { - "__id__": 119 + "__id__": 69 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -3043,20 +1897,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 114 + "__id__": 64 }, "_children": [], "_active": true, "_components": [ { - "__id__": 122 + "__id__": 72 }, { - "__id__": 124 + "__id__": 74 } ], "_prefab": { - "__id__": 126 + "__id__": 76 }, "_lpos": { "__type__": "cc.Vec3", @@ -3093,11 +1947,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 121 + "__id__": 71 }, "_enabled": true, "__prefab": { - "__id__": 123 + "__id__": 73 }, "_contentSize": { "__type__": "cc.Size", @@ -3121,11 +1975,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 121 + "__id__": 71 }, "_enabled": true, "__prefab": { - "__id__": 125 + "__id__": 75 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -3179,20 +2033,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 114 + "__id__": 64 }, "_children": [], "_active": true, "_components": [ { - "__id__": 128 + "__id__": 78 }, { - "__id__": 130 + "__id__": 80 } ], "_prefab": { - "__id__": 132 + "__id__": 82 }, "_lpos": { "__type__": "cc.Vec3", @@ -3229,11 +2083,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 127 + "__id__": 77 }, "_enabled": true, "__prefab": { - "__id__": 129 + "__id__": 79 }, "_contentSize": { "__type__": "cc.Size", @@ -3257,11 +2111,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 127 + "__id__": 77 }, "_enabled": true, "__prefab": { - "__id__": 131 + "__id__": 81 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -3315,20 +2169,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 114 + "__id__": 64 }, "_children": [], "_active": true, "_components": [ { - "__id__": 134 + "__id__": 84 }, { - "__id__": 136 + "__id__": 86 } ], "_prefab": { - "__id__": 138 + "__id__": 88 }, "_lpos": { "__type__": "cc.Vec3", @@ -3365,11 +2219,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 133 + "__id__": 83 }, "_enabled": true, "__prefab": { - "__id__": 135 + "__id__": 85 }, "_contentSize": { "__type__": "cc.Size", @@ -3393,11 +2247,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 133 + "__id__": 83 }, "_enabled": true, "__prefab": { - "__id__": 137 + "__id__": 87 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -3451,20 +2305,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 114 + "__id__": 64 }, "_children": [], "_active": true, "_components": [ { - "__id__": 140 + "__id__": 90 }, { - "__id__": 142 + "__id__": 92 } ], "_prefab": { - "__id__": 144 + "__id__": 94 }, "_lpos": { "__type__": "cc.Vec3", @@ -3501,11 +2355,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 139 + "__id__": 89 }, "_enabled": true, "__prefab": { - "__id__": 141 + "__id__": 91 }, "_contentSize": { "__type__": "cc.Size", @@ -3529,11 +2383,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 139 + "__id__": 89 }, "_enabled": true, "__prefab": { - "__id__": 143 + "__id__": 93 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -3587,11 +2441,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 114 + "__id__": 64 }, "_enabled": true, "__prefab": { - "__id__": 146 + "__id__": 96 }, "_contentSize": { "__type__": "cc.Size", @@ -3615,11 +2469,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 114 + "__id__": 64 }, "_enabled": true, "__prefab": { - "__id__": 148 + "__id__": 98 }, "_alignFlags": 17, "_target": null, @@ -3651,11 +2505,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 114 + "__id__": 64 }, "_enabled": true, "__prefab": { - "__id__": 150 + "__id__": 100 }, "_resizeMode": 1, "_layoutType": 1, @@ -3702,33 +2556,33 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 99 + "__id__": 49 }, "_children": [ { - "__id__": 153 + "__id__": 103 }, { - "__id__": 161 + "__id__": 111 } ], "_active": true, "_components": [ { - "__id__": 167 + "__id__": 117 }, { - "__id__": 169 + "__id__": 119 }, { - "__id__": 171 + "__id__": 121 }, { - "__id__": 174 + "__id__": 124 } ], "_prefab": { - "__id__": 176 + "__id__": 126 }, "_lpos": { "__type__": "cc.Vec3", @@ -3765,23 +2619,23 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 152 + "__id__": 102 }, "_children": [], "_active": true, "_components": [ { - "__id__": 154 + "__id__": 104 }, { - "__id__": 156 + "__id__": 106 }, { - "__id__": 158 + "__id__": 108 } ], "_prefab": { - "__id__": 160 + "__id__": 110 }, "_lpos": { "__type__": "cc.Vec3", @@ -3818,11 +2672,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 153 + "__id__": 103 }, "_enabled": true, "__prefab": { - "__id__": 155 + "__id__": 105 }, "_contentSize": { "__type__": "cc.Size", @@ -3846,11 +2700,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 153 + "__id__": 103 }, "_enabled": true, "__prefab": { - "__id__": 157 + "__id__": 107 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -3891,11 +2745,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 153 + "__id__": 103 }, "_enabled": true, "__prefab": { - "__id__": 159 + "__id__": 109 }, "_alignFlags": 8, "_target": null, @@ -3940,20 +2794,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 152 + "__id__": 102 }, "_children": [], "_active": true, "_components": [ { - "__id__": 162 + "__id__": 112 }, { - "__id__": 164 + "__id__": 114 } ], "_prefab": { - "__id__": 166 + "__id__": 116 }, "_lpos": { "__type__": "cc.Vec3", @@ -3990,11 +2844,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 161 + "__id__": 111 }, "_enabled": true, "__prefab": { - "__id__": 163 + "__id__": 113 }, "_contentSize": { "__type__": "cc.Size", @@ -4018,11 +2872,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 161 + "__id__": 111 }, "_enabled": true, "__prefab": { - "__id__": 165 + "__id__": 115 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -4102,11 +2956,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 152 + "__id__": 102 }, "_enabled": true, "__prefab": { - "__id__": 168 + "__id__": 118 }, "_contentSize": { "__type__": "cc.Size", @@ -4130,11 +2984,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 152 + "__id__": 102 }, "_enabled": true, "__prefab": { - "__id__": 170 + "__id__": 120 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -4175,15 +3029,15 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 152 + "__id__": 102 }, "_enabled": true, "__prefab": { - "__id__": 172 + "__id__": 122 }, "clickEvents": [ { - "__id__": 173 + "__id__": 123 } ], "_interactable": true, @@ -4223,7 +3077,7 @@ "_duration": 0.1, "_zoomScale": 1.2, "_target": { - "__id__": 152 + "__id__": 102 }, "_id": "" }, @@ -4247,11 +3101,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 152 + "__id__": 102 }, "_enabled": true, "__prefab": { - "__id__": 175 + "__id__": 125 }, "_alignFlags": 42, "_target": null, @@ -4296,23 +3150,23 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 99 + "__id__": 49 }, "_children": [], "_active": true, "_components": [ { - "__id__": 178 + "__id__": 128 }, { - "__id__": 180 + "__id__": 130 }, { - "__id__": 182 + "__id__": 132 } ], "_prefab": { - "__id__": 184 + "__id__": 134 }, "_lpos": { "__type__": "cc.Vec3", @@ -4349,11 +3203,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 177 + "__id__": 127 }, "_enabled": true, "__prefab": { - "__id__": 179 + "__id__": 129 }, "_contentSize": { "__type__": "cc.Size", @@ -4377,11 +3231,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 177 + "__id__": 127 }, "_enabled": true, "__prefab": { - "__id__": 181 + "__id__": 131 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -4445,11 +3299,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 177 + "__id__": 127 }, "_enabled": true, "__prefab": { - "__id__": 183 + "__id__": 133 }, "_alignFlags": 9, "_target": null, @@ -4494,23 +3348,23 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 99 + "__id__": 49 }, "_children": [], "_active": true, "_components": [ { - "__id__": 186 + "__id__": 136 }, { - "__id__": 188 + "__id__": 138 }, { - "__id__": 190 + "__id__": 140 } ], "_prefab": { - "__id__": 192 + "__id__": 142 }, "_lpos": { "__type__": "cc.Vec3", @@ -4547,11 +3401,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 185 + "__id__": 135 }, "_enabled": true, "__prefab": { - "__id__": 187 + "__id__": 137 }, "_contentSize": { "__type__": "cc.Size", @@ -4575,11 +3429,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 185 + "__id__": 135 }, "_enabled": true, "__prefab": { - "__id__": 189 + "__id__": 139 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -4643,11 +3497,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 185 + "__id__": 135 }, "_enabled": true, "__prefab": { - "__id__": 191 + "__id__": 141 }, "_alignFlags": 33, "_target": null, @@ -4692,33 +3546,33 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 99 + "__id__": 49 }, "_children": [ { - "__id__": 194 + "__id__": 144 }, { - "__id__": 202 + "__id__": 152 } ], "_active": false, "_components": [ { - "__id__": 208 + "__id__": 158 }, { - "__id__": 210 + "__id__": 160 }, { - "__id__": 212 + "__id__": 162 }, { - "__id__": 215 + "__id__": 165 } ], "_prefab": { - "__id__": 217 + "__id__": 167 }, "_lpos": { "__type__": "cc.Vec3", @@ -4755,23 +3609,23 @@ "_objFlags": 512, "__editorExtras__": {}, "_parent": { - "__id__": 193 + "__id__": 143 }, "_children": [], "_active": true, "_components": [ { - "__id__": 195 + "__id__": 145 }, { - "__id__": 197 + "__id__": 147 }, { - "__id__": 199 + "__id__": 149 } ], "_prefab": { - "__id__": 201 + "__id__": 151 }, "_lpos": { "__type__": "cc.Vec3", @@ -4808,11 +3662,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 194 + "__id__": 144 }, "_enabled": true, "__prefab": { - "__id__": 196 + "__id__": 146 }, "_contentSize": { "__type__": "cc.Size", @@ -4836,11 +3690,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 194 + "__id__": 144 }, "_enabled": true, "__prefab": { - "__id__": 198 + "__id__": 148 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -4904,11 +3758,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 194 + "__id__": 144 }, "_enabled": true, "__prefab": { - "__id__": 200 + "__id__": 150 }, "languageKey": "girldetailpanel.chatbtn", "defaultText": "", @@ -4938,20 +3792,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 193 + "__id__": 143 }, "_children": [], "_active": true, "_components": [ { - "__id__": 203 + "__id__": 153 }, { - "__id__": 205 + "__id__": 155 } ], "_prefab": { - "__id__": 207 + "__id__": 157 }, "_lpos": { "__type__": "cc.Vec3", @@ -4988,11 +3842,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 202 + "__id__": 152 }, "_enabled": true, "__prefab": { - "__id__": 204 + "__id__": 154 }, "_contentSize": { "__type__": "cc.Size", @@ -5016,11 +3870,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 202 + "__id__": 152 }, "_enabled": true, "__prefab": { - "__id__": 206 + "__id__": 156 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -5074,11 +3928,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 193 + "__id__": 143 }, "_enabled": true, "__prefab": { - "__id__": 209 + "__id__": 159 }, "_contentSize": { "__type__": "cc.Size", @@ -5102,11 +3956,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 193 + "__id__": 143 }, "_enabled": true, "__prefab": { - "__id__": 211 + "__id__": 161 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -5147,15 +4001,15 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 193 + "__id__": 143 }, "_enabled": true, "__prefab": { - "__id__": 213 + "__id__": 163 }, "clickEvents": [ { - "__id__": 214 + "__id__": 164 } ], "_interactable": true, @@ -5207,7 +4061,7 @@ "_duration": 0.1, "_zoomScale": 1.2, "_target": { - "__id__": 193 + "__id__": 143 }, "_id": "" }, @@ -5229,11 +4083,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 193 + "__id__": 143 }, "_enabled": true, "__prefab": { - "__id__": 216 + "__id__": 166 }, "_alignFlags": 16, "_target": null, @@ -5278,11 +4132,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 99 + "__id__": 49 }, "_enabled": true, "__prefab": { - "__id__": 219 + "__id__": 169 }, "_contentSize": { "__type__": "cc.Size", @@ -5306,11 +4160,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 99 + "__id__": 49 }, "_enabled": false, "__prefab": { - "__id__": 221 + "__id__": 171 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -5351,11 +4205,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 99 + "__id__": 49 }, "_enabled": true, "__prefab": { - "__id__": 223 + "__id__": 173 }, "_alignFlags": 41, "_target": null, @@ -5400,30 +4254,30 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 56 + "__id__": 6 }, "_children": [ { - "__id__": 226 + "__id__": 176 }, { - "__id__": 234 + "__id__": 184 } ], "_active": true, "_components": [ { - "__id__": 242 + "__id__": 192 }, { - "__id__": 244 + "__id__": 194 }, { - "__id__": 246 + "__id__": 196 } ], "_prefab": { - "__id__": 248 + "__id__": 198 }, "_lpos": { "__type__": "cc.Vec3", @@ -5460,23 +4314,23 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 225 + "__id__": 175 }, "_children": [], "_active": true, "_components": [ { - "__id__": 227 + "__id__": 177 }, { - "__id__": 229 + "__id__": 179 }, { - "__id__": 231 + "__id__": 181 } ], "_prefab": { - "__id__": 233 + "__id__": 183 }, "_lpos": { "__type__": "cc.Vec3", @@ -5513,11 +4367,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 226 + "__id__": 176 }, "_enabled": true, "__prefab": { - "__id__": 228 + "__id__": 178 }, "_contentSize": { "__type__": "cc.Size", @@ -5541,11 +4395,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 226 + "__id__": 176 }, "_enabled": true, "__prefab": { - "__id__": 230 + "__id__": 180 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -5586,11 +4440,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 226 + "__id__": 176 }, "_enabled": true, "__prefab": { - "__id__": 232 + "__id__": 182 }, "_alignFlags": 45, "_target": null, @@ -5635,23 +4489,23 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 225 + "__id__": 175 }, "_children": [], "_active": true, "_components": [ { - "__id__": 235 + "__id__": 185 }, { - "__id__": 237 + "__id__": 187 }, { - "__id__": 239 + "__id__": 189 } ], "_prefab": { - "__id__": 241 + "__id__": 191 }, "_lpos": { "__type__": "cc.Vec3", @@ -5688,11 +4542,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 234 + "__id__": 184 }, "_enabled": true, "__prefab": { - "__id__": 236 + "__id__": 186 }, "_contentSize": { "__type__": "cc.Size", @@ -5716,11 +4570,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 234 + "__id__": 184 }, "_enabled": true, "__prefab": { - "__id__": 238 + "__id__": 188 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -5787,11 +4641,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 234 + "__id__": 184 }, "_enabled": true, "__prefab": { - "__id__": 240 + "__id__": 190 }, "_alignFlags": 45, "_target": null, @@ -5836,11 +4690,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 225 + "__id__": 175 }, "_enabled": true, "__prefab": { - "__id__": 243 + "__id__": 193 }, "_contentSize": { "__type__": "cc.Size", @@ -5864,11 +4718,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 225 + "__id__": 175 }, "_enabled": false, "__prefab": { - "__id__": 245 + "__id__": 195 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -5909,11 +4763,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 225 + "__id__": 175 }, "_enabled": true, "__prefab": { - "__id__": 247 + "__id__": 197 }, "_alignFlags": 41, "_target": null, @@ -5958,30 +4812,30 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 56 + "__id__": 6 }, "_children": [ { - "__id__": 250 + "__id__": 200 }, { - "__id__": 284 + "__id__": 234 } ], "_active": true, "_components": [ { - "__id__": 318 + "__id__": 268 }, { - "__id__": 320 + "__id__": 270 }, { - "__id__": 322 + "__id__": 272 } ], "_prefab": { - "__id__": 324 + "__id__": 274 }, "_lpos": { "__type__": "cc.Vec3", @@ -6018,33 +4872,33 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 249 + "__id__": 199 }, "_children": [ { - "__id__": 251 + "__id__": 201 }, { - "__id__": 263 + "__id__": 213 } ], "_active": true, "_components": [ { - "__id__": 275 + "__id__": 225 }, { - "__id__": 277 + "__id__": 227 }, { - "__id__": 279 + "__id__": 229 }, { - "__id__": 281 + "__id__": 231 } ], "_prefab": { - "__id__": 283 + "__id__": 233 }, "_lpos": { "__type__": "cc.Vec3", @@ -6081,24 +4935,24 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 250 + "__id__": 200 }, "_children": [ { - "__id__": 252 + "__id__": 202 } ], "_active": true, "_components": [ { - "__id__": 258 + "__id__": 208 }, { - "__id__": 260 + "__id__": 210 } ], "_prefab": { - "__id__": 262 + "__id__": 212 }, "_lpos": { "__type__": "cc.Vec3", @@ -6135,20 +4989,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 251 + "__id__": 201 }, "_children": [], "_active": true, "_components": [ { - "__id__": 253 + "__id__": 203 }, { - "__id__": 255 + "__id__": 205 } ], "_prefab": { - "__id__": 257 + "__id__": 207 }, "_lpos": { "__type__": "cc.Vec3", @@ -6185,11 +5039,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 252 + "__id__": 202 }, "_enabled": true, "__prefab": { - "__id__": 254 + "__id__": 204 }, "_contentSize": { "__type__": "cc.Size", @@ -6213,11 +5067,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 252 + "__id__": 202 }, "_enabled": true, "__prefab": { - "__id__": 256 + "__id__": 206 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -6271,11 +5125,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 251 + "__id__": 201 }, "_enabled": true, "__prefab": { - "__id__": 259 + "__id__": 209 }, "_contentSize": { "__type__": "cc.Size", @@ -6299,11 +5153,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 251 + "__id__": 201 }, "_enabled": true, "__prefab": { - "__id__": 261 + "__id__": 211 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -6357,24 +5211,24 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 250 + "__id__": 200 }, "_children": [ { - "__id__": 264 + "__id__": 214 } ], "_active": true, "_components": [ { - "__id__": 270 + "__id__": 220 }, { - "__id__": 272 + "__id__": 222 } ], "_prefab": { - "__id__": 274 + "__id__": 224 }, "_lpos": { "__type__": "cc.Vec3", @@ -6411,20 +5265,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 263 + "__id__": 213 }, "_children": [], "_active": true, "_components": [ { - "__id__": 265 + "__id__": 215 }, { - "__id__": 267 + "__id__": 217 } ], "_prefab": { - "__id__": 269 + "__id__": 219 }, "_lpos": { "__type__": "cc.Vec3", @@ -6461,11 +5315,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 264 + "__id__": 214 }, "_enabled": true, "__prefab": { - "__id__": 266 + "__id__": 216 }, "_contentSize": { "__type__": "cc.Size", @@ -6489,11 +5343,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 264 + "__id__": 214 }, "_enabled": true, "__prefab": { - "__id__": 268 + "__id__": 218 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -6547,11 +5401,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 263 + "__id__": 213 }, "_enabled": true, "__prefab": { - "__id__": 271 + "__id__": 221 }, "_contentSize": { "__type__": "cc.Size", @@ -6575,11 +5429,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 263 + "__id__": 213 }, "_enabled": true, "__prefab": { - "__id__": 273 + "__id__": 223 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -6633,11 +5487,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 250 + "__id__": 200 }, "_enabled": true, "__prefab": { - "__id__": 276 + "__id__": 226 }, "_contentSize": { "__type__": "cc.Size", @@ -6661,11 +5515,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 250 + "__id__": 200 }, "_enabled": true, "__prefab": { - "__id__": 278 + "__id__": 228 }, "_alignFlags": 5, "_target": null, @@ -6697,17 +5551,17 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 250 + "__id__": 200 }, "_enabled": true, "__prefab": { - "__id__": 280 + "__id__": 230 }, "selectedSprite": { - "__id__": 272 + "__id__": 222 }, "unSelectedSprite": { - "__id__": 260 + "__id__": 210 }, "_id": "" }, @@ -6721,11 +5575,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 250 + "__id__": 200 }, "_enabled": true, "__prefab": { - "__id__": 282 + "__id__": 232 }, "clickEvents": [], "_interactable": true, @@ -6790,33 +5644,33 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 249 + "__id__": 199 }, "_children": [ { - "__id__": 285 + "__id__": 235 }, { - "__id__": 297 + "__id__": 247 } ], "_active": true, "_components": [ { - "__id__": 309 + "__id__": 259 }, { - "__id__": 311 + "__id__": 261 }, { - "__id__": 313 + "__id__": 263 }, { - "__id__": 315 + "__id__": 265 } ], "_prefab": { - "__id__": 317 + "__id__": 267 }, "_lpos": { "__type__": "cc.Vec3", @@ -6853,24 +5707,24 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 284 + "__id__": 234 }, "_children": [ { - "__id__": 286 + "__id__": 236 } ], "_active": true, "_components": [ { - "__id__": 292 + "__id__": 242 }, { - "__id__": 294 + "__id__": 244 } ], "_prefab": { - "__id__": 296 + "__id__": 246 }, "_lpos": { "__type__": "cc.Vec3", @@ -6907,20 +5761,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 285 + "__id__": 235 }, "_children": [], "_active": true, "_components": [ { - "__id__": 287 + "__id__": 237 }, { - "__id__": 289 + "__id__": 239 } ], "_prefab": { - "__id__": 291 + "__id__": 241 }, "_lpos": { "__type__": "cc.Vec3", @@ -6957,11 +5811,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 286 + "__id__": 236 }, "_enabled": true, "__prefab": { - "__id__": 288 + "__id__": 238 }, "_contentSize": { "__type__": "cc.Size", @@ -6985,11 +5839,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 286 + "__id__": 236 }, "_enabled": true, "__prefab": { - "__id__": 290 + "__id__": 240 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -7043,11 +5897,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 285 + "__id__": 235 }, "_enabled": true, "__prefab": { - "__id__": 293 + "__id__": 243 }, "_contentSize": { "__type__": "cc.Size", @@ -7071,11 +5925,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 285 + "__id__": 235 }, "_enabled": true, "__prefab": { - "__id__": 295 + "__id__": 245 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -7129,24 +5983,24 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 284 + "__id__": 234 }, "_children": [ { - "__id__": 298 + "__id__": 248 } ], "_active": false, "_components": [ { - "__id__": 304 + "__id__": 254 }, { - "__id__": 306 + "__id__": 256 } ], "_prefab": { - "__id__": 308 + "__id__": 258 }, "_lpos": { "__type__": "cc.Vec3", @@ -7183,20 +6037,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 297 + "__id__": 247 }, "_children": [], "_active": true, "_components": [ { - "__id__": 299 + "__id__": 249 }, { - "__id__": 301 + "__id__": 251 } ], "_prefab": { - "__id__": 303 + "__id__": 253 }, "_lpos": { "__type__": "cc.Vec3", @@ -7233,11 +6087,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 298 + "__id__": 248 }, "_enabled": true, "__prefab": { - "__id__": 300 + "__id__": 250 }, "_contentSize": { "__type__": "cc.Size", @@ -7261,11 +6115,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 298 + "__id__": 248 }, "_enabled": true, "__prefab": { - "__id__": 302 + "__id__": 252 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -7319,11 +6173,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 297 + "__id__": 247 }, "_enabled": true, "__prefab": { - "__id__": 305 + "__id__": 255 }, "_contentSize": { "__type__": "cc.Size", @@ -7347,11 +6201,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 297 + "__id__": 247 }, "_enabled": true, "__prefab": { - "__id__": 307 + "__id__": 257 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -7405,11 +6259,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 284 + "__id__": 234 }, "_enabled": true, "__prefab": { - "__id__": 310 + "__id__": 260 }, "_contentSize": { "__type__": "cc.Size", @@ -7433,11 +6287,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 284 + "__id__": 234 }, "_enabled": true, "__prefab": { - "__id__": 312 + "__id__": 262 }, "_alignFlags": 5, "_target": null, @@ -7469,17 +6323,17 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 284 + "__id__": 234 }, "_enabled": true, "__prefab": { - "__id__": 314 + "__id__": 264 }, "selectedSprite": { - "__id__": 306 + "__id__": 256 }, "unSelectedSprite": { - "__id__": 294 + "__id__": 244 }, "_id": "" }, @@ -7493,11 +6347,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 284 + "__id__": 234 }, "_enabled": true, "__prefab": { - "__id__": 316 + "__id__": 266 }, "clickEvents": [], "_interactable": true, @@ -7562,11 +6416,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 249 + "__id__": 199 }, "_enabled": true, "__prefab": { - "__id__": 319 + "__id__": 269 }, "_contentSize": { "__type__": "cc.Size", @@ -7590,11 +6444,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 249 + "__id__": 199 }, "_enabled": true, "__prefab": { - "__id__": 321 + "__id__": 271 }, "_alignFlags": 40, "_target": null, @@ -7626,11 +6480,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 249 + "__id__": 199 }, "_enabled": true, "__prefab": { - "__id__": 323 + "__id__": 273 }, "_id": "" }, @@ -7657,23 +6511,23 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 56 + "__id__": 6 }, "_children": [], "_active": true, "_components": [ { - "__id__": 326 + "__id__": 276 }, { - "__id__": 328 + "__id__": 278 }, { - "__id__": 330 + "__id__": 280 } ], "_prefab": { - "__id__": 332 + "__id__": 282 }, "_lpos": { "__type__": "cc.Vec3", @@ -7710,11 +6564,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 325 + "__id__": 275 }, "_enabled": true, "__prefab": { - "__id__": 327 + "__id__": 277 }, "_contentSize": { "__type__": "cc.Size", @@ -7738,11 +6592,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 325 + "__id__": 275 }, "_enabled": true, "__prefab": { - "__id__": 329 + "__id__": 279 }, "_resizeMode": 1, "_layoutType": 3, @@ -7776,11 +6630,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 325 + "__id__": 275 }, "_enabled": true, "__prefab": { - "__id__": 331 + "__id__": 281 }, "_alignFlags": 40, "_target": null, @@ -7825,11 +6679,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 56 + "__id__": 6 }, "_enabled": true, "__prefab": { - "__id__": 334 + "__id__": 284 }, "_contentSize": { "__type__": "cc.Size", @@ -7853,11 +6707,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 56 + "__id__": 6 }, "_enabled": true, "__prefab": { - "__id__": 336 + "__id__": 286 }, "_alignFlags": 41, "_target": null, @@ -7889,11 +6743,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 56 + "__id__": 6 }, "_enabled": true, "__prefab": { - "__id__": 338 + "__id__": 288 }, "_resizeMode": 1, "_layoutType": 2, @@ -7940,11 +6794,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 55 + "__id__": 5 }, "_enabled": true, "__prefab": { - "__id__": 341 + "__id__": 291 }, "_contentSize": { "__type__": "cc.Size", @@ -7968,11 +6822,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 55 + "__id__": 5 }, "_enabled": true, "__prefab": { - "__id__": 343 + "__id__": 293 }, "_type": 0, "_inverted": false, @@ -7990,11 +6844,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 55 + "__id__": 5 }, "_enabled": true, "__prefab": { - "__id__": 345 + "__id__": 295 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -8036,11 +6890,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 55 + "__id__": 5 }, "_enabled": true, "__prefab": { - "__id__": 347 + "__id__": 297 }, "_alignFlags": 45, "_target": null, @@ -8085,11 +6939,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 54 + "__id__": 4 }, "_enabled": true, "__prefab": { - "__id__": 350 + "__id__": 300 }, "_contentSize": { "__type__": "cc.Size", @@ -8113,11 +6967,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 54 + "__id__": 4 }, "_enabled": false, "__prefab": { - "__id__": 352 + "__id__": 302 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -8158,11 +7012,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 54 + "__id__": 4 }, "_enabled": true, "__prefab": { - "__id__": 354 + "__id__": 304 }, "bounceDuration": 0.23, "brake": 0.75, @@ -8173,7 +7027,7 @@ "cancelInnerEvents": true, "scrollEvents": [], "_content": { - "__id__": 56 + "__id__": 6 }, "_horizontalScrollBar": null, "_verticalScrollBar": null, @@ -8189,11 +7043,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 54 + "__id__": 4 }, "_enabled": true, "__prefab": { - "__id__": 356 + "__id__": 306 }, "_alignFlags": 45, "_target": null, @@ -8232,6 +7086,1160 @@ "targetOverrides": null, "nestedPrefabInstanceRoots": null }, + { + "__type__": "cc.Node", + "_name": "ImageItem", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 3 + }, + "_children": [ + { + "__id__": 309 + }, + { + "__id__": 315 + }, + { + "__id__": 321 + }, + { + "__id__": 327 + } + ], + "_active": true, + "_components": [ + { + "__id__": 347 + }, + { + "__id__": 349 + }, + { + "__id__": 351 + }, + { + "__id__": 353 + }, + { + "__id__": 355 + } + ], + "_prefab": { + "__id__": 357 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": -343.56100000000004, + "y": -1083.111, + "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": "Img", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 308 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 310 + }, + { + "__id__": 312 + } + ], + "_prefab": { + "__id__": 314 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 5.684341886080802e-14, + "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__": 309 + }, + "_enabled": true, + "__prefab": { + "__id__": 311 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 360, + "height": 540 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "34QgYhH2VForD334GE1if5" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 309 + }, + "_enabled": true, + "__prefab": { + "__id__": 313 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": null, + "_type": 1, + "_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": "f6AZTSqV5HQo9IKkT5QadT" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d6hCtvqAhBE5wrn/IdqY17", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, + { + "__type__": "cc.Node", + "_name": "question", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 308 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 316 + }, + { + "__id__": 318 + } + ], + "_prefab": { + "__id__": 320 + }, + "_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__": 315 + }, + "_enabled": true, + "__prefab": { + "__id__": 317 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 87, + "height": 127 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "c3AUBBvJ5EILCYbD/7sNee" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 315 + }, + "_enabled": true, + "__prefab": { + "__id__": 319 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "4aec67ca-d8be-465c-bc9e-54535aed70b8@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 0, + "_fillType": 0, + "_sizeMode": 1, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "6fOgEWfAdHcqTMLLVn9rkt" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "31ThkJwTdO1bKibNu3m8u0", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, + { + "__type__": "cc.Node", + "_name": "video", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 308 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 322 + }, + { + "__id__": 324 + } + ], + "_prefab": { + "__id__": 326 + }, + "_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__": 321 + }, + "_enabled": true, + "__prefab": { + "__id__": 323 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 83, + "height": 83 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "50lmzXYCJPXqHAwe+1lw3p" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 321 + }, + "_enabled": true, + "__prefab": { + "__id__": 325 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "ae1676fd-9d9b-47ef-abc9-a56da69425e9@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 0, + "_fillType": 0, + "_sizeMode": 1, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "e3onmOsKFMZYyyGk6uSqTg" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "1ay/OK5mxMTqmY0ynxvGIj", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, + { + "__type__": "cc.Node", + "_name": "priceFrame", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 308 + }, + "_children": [ + { + "__id__": 328 + }, + { + "__id__": 334 + } + ], + "_active": true, + "_components": [ + { + "__id__": 340 + }, + { + "__id__": 342 + }, + { + "__id__": 344 + } + ], + "_prefab": { + "__id__": 346 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": -171.87499999999997, + "y": 180.3750000000001, + "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": "Num", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 327 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 329 + }, + { + "__id__": 331 + } + ], + "_prefab": { + "__id__": 333 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 162.106, + "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__": 328 + }, + "_enabled": true, + "__prefab": { + "__id__": 330 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 176.427344, + "height": 76.2 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "f1CHMnDh9DboJ8Ww88mAfs" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 328 + }, + "_enabled": true, + "__prefab": { + "__id__": 332 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 170, + "g": 194, + "b": 188, + "a": 255 + }, + "_string": "9999", + "_horizontalAlign": 1, + "_verticalAlign": 1, + "_actualFontSize": 59, + "_fontSize": 58, + "_fontFamily": "Arial", + "_lineHeight": 40, + "_overflow": 2, + "_enableWrapText": true, + "_font": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_isItalic": false, + "_isBold": false, + "_isUnderline": false, + "_underlineHeight": 2, + "_cacheMode": 0, + "_enableOutline": false, + "_outlineColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_outlineWidth": 2, + "_enableShadow": false, + "_shadowColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_shadowOffset": { + "__type__": "cc.Vec2", + "x": 2, + "y": 2 + }, + "_shadowBlur": 2, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "1ddCMaXZBLYJUvY1jxqHnA" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "4aXu6EQ5lDiJC942wHOnGm", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, + { + "__type__": "cc.Node", + "_name": "priceIcon", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 327 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 335 + }, + { + "__id__": 337 + } + ], + "_prefab": { + "__id__": 339 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 39.07200000000003, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 0.6, + "y": 0.6, + "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__": 334 + }, + "_enabled": true, + "__prefab": { + "__id__": 336 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 102, + "height": 89 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "6duiBAK7BAQJul3CG/v6Aq" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 334 + }, + "_enabled": true, + "__prefab": { + "__id__": 338 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "e72d6e10-73bf-44e8-82d5-da3a20f908b2@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 0, + "_fillType": 0, + "_sizeMode": 1, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "ebRYye6LtHrZvpb34j083i" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "a3DZXJaCxBgbYLDAt6JSex", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 327 + }, + "_enabled": true, + "__prefab": { + "__id__": 341 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 271.8, + "height": 80 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "5dYdvoxYhGhaf0QJ3RI0OH" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 327 + }, + "_enabled": true, + "__prefab": { + "__id__": 343 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "989deb0d-8788-42de-81ee-5e1dfdbe6901@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 1, + "_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": "52pH35JWFJb54mvuo1YXX4" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 327 + }, + "_enabled": true, + "__prefab": { + "__id__": 345 + }, + "_alignFlags": 9, + "_target": null, + "_left": -1.3749999999999716, + "_right": 0, + "_top": -1.3750000000001137, + "_bottom": 0, + "_horizontalCenter": 0, + "_verticalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_alignMode": 2, + "_lockFlags": 0, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "90RFjDlb5PM4UmX/3RsIgE" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "15iEDWpjBAd5WV2skG3fxW", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 308 + }, + "_enabled": true, + "__prefab": { + "__id__": 348 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 341, + "height": 438 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "24DhPD7rdPmZcznMD+QFfn" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 308 + }, + "_enabled": true, + "__prefab": { + "__id__": 350 + }, + "clickEvents": [], + "_interactable": true, + "_transition": 0, + "_normalColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_hoverColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "_pressedColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_disabledColor": { + "__type__": "cc.Color", + "r": 124, + "g": 124, + "b": 124, + "a": 255 + }, + "_normalSprite": null, + "_hoverSprite": null, + "_pressedSprite": null, + "_disabledSprite": null, + "_duration": 0.1, + "_zoomScale": 1.2, + "_target": { + "__id__": 308 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "83/ZOBJ4JOs7lku7qWM7hw" + }, + { + "__type__": "4ce70ScWKpFGalZ/RcxTbmk", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 308 + }, + "_enabled": true, + "__prefab": { + "__id__": 352 + }, + "img": { + "__id__": 312 + }, + "question": { + "__id__": 315 + }, + "video": { + "__id__": 324 + }, + "priceFrame": { + "__id__": 327 + }, + "videoPrice": { + "__id__": 331 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "023qXmQxRHxYnagDtG5jnv" + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 308 + }, + "_enabled": true, + "__prefab": { + "__id__": 354 + }, + "_type": 0, + "_inverted": false, + "_segments": 64, + "_alphaThreshold": 0.1, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "dfobCWY7JH45hmZv7YSsN6" + }, + { + "__type__": "cc.Graphics", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 308 + }, + "_enabled": true, + "__prefab": { + "__id__": 356 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_lineWidth": 1, + "_strokeColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_lineJoin": 2, + "_lineCap": 0, + "_fillColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 0 + }, + "_miterLimit": 10, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "e9dlGg5DZIn7HgyGkmSUpV" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "c2n0xV60ZLR6LEhBTlkwjN", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, { "__type__": "cc.UITransform", "_name": "", @@ -8822,37 +8830,37 @@ }, "m_rootNode": null, "avatarVideo": { - "__id__": 64 + "__id__": 14 }, "girlName": { - "__id__": 111 + "__id__": 61 }, "imgToggle": { - "__id__": 279 + "__id__": 229 }, "videoToggle": { - "__id__": 313 + "__id__": 263 }, "starParent": { - "__id__": 114 + "__id__": 64 }, "tags": { - "__id__": 180 + "__id__": 130 }, "descAge": { - "__id__": 188 + "__id__": 138 }, "desc": { - "__id__": 237 + "__id__": 187 }, "chatBtn": { - "__id__": 152 + "__id__": 102 }, "imgItemInst": { - "__id__": 47 + "__id__": 351 }, "imgsLayout": { - "__id__": 325 + "__id__": 275 }, "_id": "" }, diff --git a/assets/bundles/DataTable/tbglobalconfig.bin b/assets/bundles/DataTable/tbglobalconfig.bin index e783de65..58057160 100644 Binary files a/assets/bundles/DataTable/tbglobalconfig.bin and b/assets/bundles/DataTable/tbglobalconfig.bin differ diff --git a/assets/bundles/DataTable/tbpurchaseconfig.bin b/assets/bundles/DataTable/tbpurchaseconfig.bin index 4347fcc3..f1d5c68e 100644 --- a/assets/bundles/DataTable/tbpurchaseconfig.bin +++ b/assets/bundles/DataTable/tbpurchaseconfig.bin @@ -1,2 +1,2 @@ - 充值挡位1999 充值挡位29999 充值挡位319999N 充值挡位429999u/ 充值挡位569999o 充值挡位699999 -7天会员168 30天会员7200ϋ增加聊天次数20 \ No newline at end of file + 充值挡位1 充值挡位2 充值挡位3NN 充值挡位4u/u/ 充值挡位5oo 充值挡位6 +7天会员 30天会员Їϋ增加聊天次数 \ No newline at end of file diff --git a/settings/v2/packages/cocos-service.json b/settings/v2/packages/cocos-service.json index f7dec085..c65b54dd 100644 --- a/settings/v2/packages/cocos-service.json +++ b/settings/v2/packages/cocos-service.json @@ -1,7 +1,7 @@ { "__version__": "3.0.7", "game": { - "name": "UNKNOW GAME", + "name": "未知游戏", "app_id": "UNKNOW", "c_id": "0" }, diff --git a/settings/v2/packages/information.json b/settings/v2/packages/information.json index 94848dec..b76ead73 100644 --- a/settings/v2/packages/information.json +++ b/settings/v2/packages/information.json @@ -4,19 +4,19 @@ "customSplash": { "id": "customSplash", "label": "customSplash", - "enable": false, + "enable": true, "customSplash": { - "complete": false, - "form": "https://creator-api.cocos.com/api/form/show?" + "complete": true, + "form": "https://creator-api.cocos.com/api/form/show?sid=800ccf353f6eb54dc483510ce462e944" } }, "removeSplash": { "id": "removeSplash", "label": "removeSplash", - "enable": false, + "enable": true, "removeSplash": { - "complete": false, - "form": "https://creator-api.cocos.com/api/form/show?" + "complete": true, + "form": "https://creator-api.cocos.com/api/form/show?sid=800ccf353f6eb54dc483510ce462e944" } } }