商业化-前端部分
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -71,6 +71,78 @@
|
|||||||
"language_fr": "Choisir la langue",
|
"language_fr": "Choisir la langue",
|
||||||
"language_de": "Sprache wählen"
|
"language_de": "Sprache wählen"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"key": "purchasepanel.title",
|
||||||
|
"language_en": "Shop",
|
||||||
|
"language_cn": "商店",
|
||||||
|
"language_hi": "दुकान",
|
||||||
|
"language_fr": "Boutique",
|
||||||
|
"language_de": "Geschäft"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "purchasepanel.vip_left",
|
||||||
|
"language_en": "left${leftTime}",
|
||||||
|
"language_cn": "剩余${leftTime}",
|
||||||
|
"language_hi": "बचे हुए${leftTime}",
|
||||||
|
"language_fr": "reste${leftTime}",
|
||||||
|
"language_de": "verbleibend${leftTime}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "purchasepanel.vip_name",
|
||||||
|
"language_en": "VIP Card",
|
||||||
|
"language_cn": "特权卡",
|
||||||
|
"language_hi": "वीआईपी कार्ड",
|
||||||
|
"language_fr": "Carte VIP",
|
||||||
|
"language_de": "VIP-Karte"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "purchasepanel.vip_desc",
|
||||||
|
"language_en": "Purchase VIP card to chat with any girl unlimitedly within 7 days",
|
||||||
|
"language_cn": "购买特权卡后在7天内可与任意对象进行聊天,且聊天次数不限",
|
||||||
|
"language_hi": "वीआईपी कार्ड खरीदने के बाद, आप 7 दिनों के भीतर किसी भी लड़की के साथ बिना सीमा के चैट कर सकते हैं",
|
||||||
|
"language_fr": "Achetez la carte VIP pour discuter avec n'importe quelle fille sans limite pendant 7 jours",
|
||||||
|
"language_de": "VIP-Karte kaufen, um innerhalb von 7 Tagen ohne Einschränkungen mit jedem Mädchen zu chatten"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "purchasepanel.get_diamond_text",
|
||||||
|
"language_en": "Get Diamonds:",
|
||||||
|
"language_cn": "获取钻石:",
|
||||||
|
"language_hi": "हीरे प्राप्त करें:",
|
||||||
|
"language_fr": "Obtenir des diamants:",
|
||||||
|
"language_de": "Diamanten erhalten:"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "purchasepanel.buy_diamond_btn",
|
||||||
|
"language_en": "Buy Diamonds",
|
||||||
|
"language_cn": "购买钻石",
|
||||||
|
"language_hi": "हीरे खरीदें",
|
||||||
|
"language_fr": "Acheter des diamants",
|
||||||
|
"language_de": "Diamanten kaufen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "purchasepanel.day",
|
||||||
|
"language_en": "day",
|
||||||
|
"language_cn": "天",
|
||||||
|
"language_hi": "दिन",
|
||||||
|
"language_fr": "jours",
|
||||||
|
"language_de": "Tage"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "purchasepanel.hour",
|
||||||
|
"language_en": "hours",
|
||||||
|
"language_cn": "小时",
|
||||||
|
"language_hi": "घंटे",
|
||||||
|
"language_fr": "heures",
|
||||||
|
"language_de": "Stunden"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "purchasepanel.minute",
|
||||||
|
"language_en": "min",
|
||||||
|
"language_cn": "分",
|
||||||
|
"language_hi": "मिनट",
|
||||||
|
"language_fr": "minutes",
|
||||||
|
"language_de": "Minuten"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"key": "category_1001",
|
"key": "category_1001",
|
||||||
"language_en": "Mature Lady",
|
"language_en": "Mature Lady",
|
||||||
|
|||||||
@@ -1,30 +1,34 @@
|
|||||||
|
|
||||||
//消息枚举
|
//消息枚举
|
||||||
export enum InnerMsgCode {
|
export enum InnerMsgCode {
|
||||||
GM_UI_Close, //关闭GM界面
|
GM_UI_Close, //关闭GM界面
|
||||||
SceneLayerBgUp, //刷新场景背景图
|
SceneLayerBgUp, //刷新场景背景图
|
||||||
UI_Talk_Back, //从聊天界面返回
|
UI_Talk_Back, //从聊天界面返回
|
||||||
UI_BD_Sidebar, //抖音侧边栏状态刷新
|
UI_BD_Sidebar, //抖音侧边栏状态刷新
|
||||||
UI_Socket_Timeout, //socket超时
|
UI_Socket_Timeout, //socket超时
|
||||||
UI_TalkStageUp, //更改聊天阶段
|
UI_TalkStageUp, //更改聊天阶段
|
||||||
UI_ResartGame, //重新开始游戏
|
UI_ResartGame, //重新开始游戏
|
||||||
UI_ShowPrompt, //显示飘字提示
|
UI_ShowPrompt, //显示飘字提示
|
||||||
UI_Tj_huiyi_Pic, //显示回忆大图
|
UI_Tj_huiyi_Pic, //显示回忆大图
|
||||||
UI_Tj_huiyi_Lv, //前往回忆对应关卡
|
UI_Tj_huiyi_Lv, //前往回忆对应关卡
|
||||||
|
|
||||||
Data_UserInfo_Up, //用户信息更新
|
Data_UserInfo_Up, //用户信息更新
|
||||||
Data_NpcTalkBack, //NPC对话返回
|
Data_NpcTalkBack, //NPC对话返回
|
||||||
Data_LevelStarUp, //刷新关卡星级
|
Data_LevelStarUp, //刷新关卡星级
|
||||||
Data_ChehuiUp, //撤回消息
|
Data_ChehuiUp, //撤回消息
|
||||||
Data_BDSidebarReward, //抖音侧边栏奖励领取消息
|
Data_BDSidebarReward, //抖音侧边栏奖励领取消息
|
||||||
Data_Redpoint, //红点刷新消息
|
Data_Redpoint, //红点刷新消息
|
||||||
Data_ZhencangUp, //私家珍藏更新消息
|
Data_ZhencangUp, //私家珍藏更新消息
|
||||||
|
|
||||||
BgVideo_Ready, //背景视频准备完成
|
BgVideo_Ready, //背景视频准备完成
|
||||||
BgVideo_End, //背景视频播放完毕
|
BgVideo_End, //背景视频播放完毕
|
||||||
|
|
||||||
|
Chat_DialogRefresh,
|
||||||
|
SimplePlayVide,
|
||||||
|
LanguageChange,
|
||||||
|
}
|
||||||
|
|
||||||
Chat_DialogRefresh,
|
export enum InnerEventCode {
|
||||||
SimplePlayVide,
|
DiamondCountChanged = 15618,
|
||||||
LanguageChange,
|
IsVipChanged,
|
||||||
}
|
VipEndDayChange,
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1,106 @@
|
|||||||
|
import LanguageUtils from "../../Main/Common/LanguageUtils";
|
||||||
|
import Utils from "../../Main/Common/Utils";
|
||||||
|
import { InnerEventCode } from "../../Main/Config/InnerMsgCode";
|
||||||
|
|
||||||
|
export class CommercialData {
|
||||||
|
private static _instance: CommercialData;
|
||||||
|
public static get Instance(): CommercialData {
|
||||||
|
if (!CommercialData._instance) {
|
||||||
|
CommercialData._instance = new CommercialData();
|
||||||
|
}
|
||||||
|
return CommercialData._instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
private _diamondCount: number = 0;
|
||||||
|
private _isVip: boolean = false;
|
||||||
|
private _vipEndTime: number = 0;
|
||||||
|
|
||||||
|
public get diamondCount(): number {
|
||||||
|
return this._diamondCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public set diamondCount(value: number) {
|
||||||
|
if (this._diamondCount !== value) {
|
||||||
|
this._diamondCount = Math.max(0, value);
|
||||||
|
Utils.sendInnerMsg(InnerEventCode.DiamondCountChanged, {
|
||||||
|
count: this._diamondCount,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public get isVip(): boolean {
|
||||||
|
return this._isVip;
|
||||||
|
}
|
||||||
|
|
||||||
|
public set isVip(value: boolean) {
|
||||||
|
if (this._isVip !== value) {
|
||||||
|
this._isVip = value;
|
||||||
|
Utils.sendInnerMsg(InnerEventCode.IsVipChanged, { isVip: this._isVip });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public get vipEndTime(): number {
|
||||||
|
return this._vipEndTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public set vipEndTime(value: number) {
|
||||||
|
if (this._vipEndTime !== value) {
|
||||||
|
this._vipEndTime = Math.max(0, value);
|
||||||
|
Utils.sendInnerMsg(InnerEventCode.VipEndDayChange, {
|
||||||
|
vipEndTime: this._vipEndTime,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private constructor() {
|
||||||
|
this.loadData();
|
||||||
|
}
|
||||||
|
|
||||||
|
public addDiamonds(amount: number): void {
|
||||||
|
if (amount > 0) {
|
||||||
|
this.diamondCount += amount;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public spendDiamonds(amount: number): boolean {
|
||||||
|
if (amount > 0 && this._diamondCount >= amount) {
|
||||||
|
this.diamondCount -= amount;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public setVipTime(timeInSeconds: number): void {
|
||||||
|
this._vipEndTime = timeInSeconds;
|
||||||
|
if (timeInSeconds > 0) {
|
||||||
|
this.isVip = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public getVipLeftTime(): string {
|
||||||
|
const dateNow = new Date();
|
||||||
|
const timeDiff = Math.abs(this._vipEndTime - dateNow.getTime());
|
||||||
|
const hours = Math.floor(timeDiff / (1000 * 60 * 60));
|
||||||
|
|
||||||
|
if (hours >= 24) {
|
||||||
|
return (
|
||||||
|
(hours % 24).toString() + LanguageUtils.getText("purchasepanel.day")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
const minutes = Math.floor((timeDiff / (1000 * 60)) % 60);
|
||||||
|
//const seconds = Math.floor((timeDiff / 1000) % 60);
|
||||||
|
return `${hours}${LanguageUtils.getText(
|
||||||
|
"purchasepanel.hour"
|
||||||
|
)}:${minutes}${LanguageUtils.getText("purchasepanel.minute")}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
private loadData(): void {
|
||||||
|
//假数据
|
||||||
|
this._diamondCount = 18556;
|
||||||
|
this._isVip = true;
|
||||||
|
|
||||||
|
//const dateNow = new Date();
|
||||||
|
const dateEndTime = new Date("2025-08-30T12:00:00Z");
|
||||||
|
|
||||||
|
this._vipEndTime = dateEndTime.getTime();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"ver": "4.0.24",
|
||||||
|
"importer": "typescript",
|
||||||
|
"imported": true,
|
||||||
|
"uuid": "b63bfbf7-eac0-4713-84ca-dbb1d0ea1c5c",
|
||||||
|
"files": [],
|
||||||
|
"subMetas": {},
|
||||||
|
"userData": {}
|
||||||
|
}
|
||||||
@@ -0,0 +1,129 @@
|
|||||||
|
import { _decorator, Component, Label, Node } from "cc";
|
||||||
|
import li_BaseView from "../../../Main/Common/li_BaseView";
|
||||||
|
import Utils from "../../../Main/Common/Utils";
|
||||||
|
import { CommercialData } from "../../data/CommercialData";
|
||||||
|
import ConfigManager from "../../manager/ConfigManager";
|
||||||
|
import { GButton } from "../../../Main/Common/GButton";
|
||||||
|
import { PurchasePanelItem } from "../../uiitems/PurchasePanelItem";
|
||||||
|
import { ViewManager } from "../../../Main/Manager/ViewManager";
|
||||||
|
import LanguageUtils from "../../../Main/Common/LanguageUtils";
|
||||||
|
import { InnerEventCode } from "../../../Main/Config/InnerMsgCode";
|
||||||
|
const { ccclass, property } = _decorator;
|
||||||
|
|
||||||
|
@ccclass("PurchasePanel")
|
||||||
|
export class PurchasePanel extends li_BaseView {
|
||||||
|
private _nodeTab: any = {};
|
||||||
|
|
||||||
|
private diamondCount: Label;
|
||||||
|
private vipLeftTime: Label;
|
||||||
|
private vipPriceTag: Label;
|
||||||
|
|
||||||
|
private tryBuyId: number;
|
||||||
|
|
||||||
|
@property([PurchasePanelItem])
|
||||||
|
public items: PurchasePanelItem[] = [];
|
||||||
|
|
||||||
|
onLoadCT(): void {
|
||||||
|
Utils.parseNode(this.node, this._nodeTab);
|
||||||
|
|
||||||
|
this.diamondCount = this._nodeTab.diamondNumber.getComponent(Label);
|
||||||
|
this.vipLeftTime = this._nodeTab.vipText.getComponent(Label);
|
||||||
|
this.vipPriceTag = this._nodeTab.vipPrice.getComponent(Label);
|
||||||
|
this.bandBtn();
|
||||||
|
|
||||||
|
//订阅商业化数据事件
|
||||||
|
Utils.addInnerEL(
|
||||||
|
InnerEventCode.DiamondCountChanged,
|
||||||
|
this,
|
||||||
|
this.onDiamondCountChanged
|
||||||
|
);
|
||||||
|
Utils.addInnerEL(
|
||||||
|
InnerEventCode.VipEndDayChange,
|
||||||
|
this,
|
||||||
|
this.onVipEndDayChange
|
||||||
|
);
|
||||||
|
|
||||||
|
//获取商业化数据
|
||||||
|
this.getPlayerMerData();
|
||||||
|
|
||||||
|
const cfg = ConfigManager.tables.TbPurchaseConfig;
|
||||||
|
for (let index = 0; index < this.items.length; index++) {
|
||||||
|
const element = this.items[index];
|
||||||
|
element.init(this, cfg.get(1001 + index));
|
||||||
|
}
|
||||||
|
this.updateView();
|
||||||
|
}
|
||||||
|
bandBtn() {
|
||||||
|
GButton.BandClick(
|
||||||
|
this._nodeTab.BuyVipBtn,
|
||||||
|
() => {
|
||||||
|
//TODO:购买vip
|
||||||
|
console.log("购买Vip");
|
||||||
|
},
|
||||||
|
this
|
||||||
|
);
|
||||||
|
GButton.BandClick(
|
||||||
|
this._nodeTab.BuyDiamondBtn,
|
||||||
|
() => {
|
||||||
|
//TODO:购买钻石
|
||||||
|
console.log("购买钻石,商品id:" + this.tryBuyId);
|
||||||
|
},
|
||||||
|
this
|
||||||
|
);
|
||||||
|
GButton.BandClick(
|
||||||
|
this._nodeTab.QUIT,
|
||||||
|
() => {
|
||||||
|
//TODO:购买钻石
|
||||||
|
ViewManager.I.closeView(this.node);
|
||||||
|
},
|
||||||
|
this
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
updateView() {
|
||||||
|
this.getPlayerMerData();
|
||||||
|
|
||||||
|
const vipPrice = ConfigManager.tables.TbPurchaseConfig.get(2001).count;
|
||||||
|
this.vipPriceTag.string = `$ ${vipPrice}`;
|
||||||
|
|
||||||
|
this.items.forEach((item) => item.show());
|
||||||
|
}
|
||||||
|
|
||||||
|
setDiamondTag(id: number) {
|
||||||
|
this.tryBuyId = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
getPlayerMerData() {
|
||||||
|
//todo: 获取服务器玩家商业化数据
|
||||||
|
this.diamondCount.string = CommercialData.Instance.diamondCount.toString();
|
||||||
|
const leftTime = CommercialData.Instance.getVipLeftTime();
|
||||||
|
this.vipLeftTime.string = LanguageUtils.getText(
|
||||||
|
"purchasepanel.vip_left"
|
||||||
|
).replace("${leftTime}", leftTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
onDiamondCountChanged(data: any) {
|
||||||
|
this.diamondCount.string = data.count.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
onVipEndDayChange(data: any) {
|
||||||
|
const leftTime = CommercialData.Instance.getVipLeftTime();
|
||||||
|
this.vipLeftTime.string = LanguageUtils.getText(
|
||||||
|
"purchasepanel.vip_left"
|
||||||
|
).replace("${leftTime}", leftTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
onDestroy() {
|
||||||
|
Utils.removeInnerEL(
|
||||||
|
InnerEventCode.DiamondCountChanged,
|
||||||
|
this,
|
||||||
|
this.onDiamondCountChanged
|
||||||
|
);
|
||||||
|
Utils.removeInnerEL(
|
||||||
|
InnerEventCode.VipEndDayChange,
|
||||||
|
this,
|
||||||
|
this.onVipEndDayChange
|
||||||
|
);
|
||||||
|
super.onDestroy();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"ver": "4.0.24",
|
||||||
|
"importer": "typescript",
|
||||||
|
"imported": true,
|
||||||
|
"uuid": "c657f7a9-a2dc-42a6-80df-1d7dd729f268",
|
||||||
|
"files": [],
|
||||||
|
"subMetas": {},
|
||||||
|
"userData": {}
|
||||||
|
}
|
||||||
@@ -97,11 +97,17 @@ export class ThemePanel extends li_BaseView {
|
|||||||
|
|
||||||
GButton.BandClick(this._nodeTab.ChatWithRecBtn, this.chatWithRec, this);
|
GButton.BandClick(this._nodeTab.ChatWithRecBtn, this.chatWithRec, this);
|
||||||
|
|
||||||
|
GButton.BandClick(this._nodeTab.ShopPanelEntry, this.enterShop, this);
|
||||||
|
|
||||||
Utils.addInnerEL(InnerMsgCode.LanguageChange, this, () => {
|
Utils.addInnerEL(InnerMsgCode.LanguageChange, this, () => {
|
||||||
this.recName.string = LanguageUtils.getText(this.rectNameKey);
|
this.recName.string = LanguageUtils.getText(this.rectNameKey);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enterShop() {
|
||||||
|
ViewManager.I.openBundlesView("PurchasePanel");
|
||||||
|
}
|
||||||
|
|
||||||
chatWithRec() {
|
chatWithRec() {
|
||||||
NavigationManager.Instance.navigateToChat(this.recId);
|
NavigationManager.Instance.navigateToChat(this.recId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
import { _decorator, Component, Label, Node } from "cc";
|
||||||
|
import { PurchasePanel } from "../ui/panels/PurchasePanel";
|
||||||
|
import { PurchaseConfig } from "../../schema/schema";
|
||||||
|
const { ccclass, property } = _decorator;
|
||||||
|
|
||||||
|
@ccclass("PurchasePanelItem")
|
||||||
|
export class PurchasePanelItem extends Component {
|
||||||
|
@property(Label)
|
||||||
|
count: Label;
|
||||||
|
@property(Label)
|
||||||
|
price: Label;
|
||||||
|
|
||||||
|
baseView: PurchasePanel;
|
||||||
|
data: PurchaseConfig;
|
||||||
|
public init(base: PurchasePanel, data: PurchaseConfig) {
|
||||||
|
this.baseView = base;
|
||||||
|
this.data = data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public show() {
|
||||||
|
this.count.string = this.data.desc.toString();
|
||||||
|
this.price.string = this.data.count.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
onClickThis() {
|
||||||
|
this.baseView.setDiamondTag(this.data.id);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"ver": "4.0.24",
|
||||||
|
"importer": "typescript",
|
||||||
|
"imported": true,
|
||||||
|
"uuid": "0c5a1f4a-a909-49dd-802c-06e27182eb79",
|
||||||
|
"files": [],
|
||||||
|
"subMetas": {},
|
||||||
|
"userData": {}
|
||||||
|
}
|
||||||
+17801
-15460
File diff suppressed because it is too large
Load Diff
+4631
-7165
File diff suppressed because it is too large
Load Diff
@@ -148,7 +148,10 @@
|
|||||||
"__id__": 34
|
"__id__": 34
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 52
|
"__id__": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 74
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_active": true,
|
"_active": true,
|
||||||
@@ -912,13 +915,10 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 47
|
"__id__": 47
|
||||||
},
|
|
||||||
{
|
|
||||||
"__id__": 49
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 51
|
"__id__": 49
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -1220,64 +1220,6 @@
|
|||||||
"__type__": "cc.CompPrefabInfo",
|
"__type__": "cc.CompPrefabInfo",
|
||||||
"fileId": "7aLgSeobBB96Nlervm4IKB"
|
"fileId": "7aLgSeobBB96Nlervm4IKB"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"__type__": "cc.Button",
|
|
||||||
"_name": "",
|
|
||||||
"_objFlags": 0,
|
|
||||||
"__editorExtras__": {},
|
|
||||||
"node": {
|
|
||||||
"__id__": 34
|
|
||||||
},
|
|
||||||
"_enabled": true,
|
|
||||||
"__prefab": {
|
|
||||||
"__id__": 48
|
|
||||||
},
|
|
||||||
"clickEvents": [],
|
|
||||||
"_interactable": true,
|
|
||||||
"_transition": 1,
|
|
||||||
"_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__": 34
|
|
||||||
},
|
|
||||||
"_id": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"__type__": "cc.CompPrefabInfo",
|
|
||||||
"fileId": "619TuwPfNO/bklqk6WLFGc"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"__type__": "cc.Widget",
|
"__type__": "cc.Widget",
|
||||||
"_name": "",
|
"_name": "",
|
||||||
@@ -1288,7 +1230,7 @@
|
|||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 50
|
"__id__": 48
|
||||||
},
|
},
|
||||||
"_alignFlags": 36,
|
"_alignFlags": 36,
|
||||||
"_target": null,
|
"_target": null,
|
||||||
@@ -1337,29 +1279,26 @@
|
|||||||
},
|
},
|
||||||
"_children": [
|
"_children": [
|
||||||
{
|
{
|
||||||
"__id__": 53
|
"__id__": 51
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 61
|
"__id__": 59
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
|
{
|
||||||
|
"__id__": 67
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"__id__": 69
|
"__id__": 69
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 71
|
"__id__": 71
|
||||||
},
|
|
||||||
{
|
|
||||||
"__id__": 73
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"__id__": 75
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 77
|
"__id__": 73
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -1396,23 +1335,23 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"_parent": {
|
"_parent": {
|
||||||
"__id__": 52
|
"__id__": 50
|
||||||
},
|
},
|
||||||
"_children": [],
|
"_children": [],
|
||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
|
{
|
||||||
|
"__id__": 52
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"__id__": 54
|
"__id__": 54
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 56
|
"__id__": 56
|
||||||
},
|
|
||||||
{
|
|
||||||
"__id__": 58
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 60
|
"__id__": 58
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -1449,11 +1388,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 53
|
"__id__": 51
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 55
|
"__id__": 53
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
@@ -1477,11 +1416,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 53
|
"__id__": 51
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 57
|
"__id__": 55
|
||||||
},
|
},
|
||||||
"_customMaterial": null,
|
"_customMaterial": null,
|
||||||
"_srcBlendFactor": 2,
|
"_srcBlendFactor": 2,
|
||||||
@@ -1545,11 +1484,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 53
|
"__id__": 51
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 59
|
"__id__": 57
|
||||||
},
|
},
|
||||||
"_alignFlags": 34,
|
"_alignFlags": 34,
|
||||||
"_target": null,
|
"_target": null,
|
||||||
@@ -1594,23 +1533,23 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"_parent": {
|
"_parent": {
|
||||||
"__id__": 52
|
"__id__": 50
|
||||||
},
|
},
|
||||||
"_children": [],
|
"_children": [],
|
||||||
"_active": false,
|
"_active": false,
|
||||||
"_components": [
|
"_components": [
|
||||||
|
{
|
||||||
|
"__id__": 60
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"__id__": 62
|
"__id__": 62
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 64
|
"__id__": 64
|
||||||
},
|
|
||||||
{
|
|
||||||
"__id__": 66
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 68
|
"__id__": 66
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -1647,11 +1586,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 61
|
"__id__": 59
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 63
|
"__id__": 61
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
@@ -1675,11 +1614,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 61
|
"__id__": 59
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 65
|
"__id__": 63
|
||||||
},
|
},
|
||||||
"_customMaterial": null,
|
"_customMaterial": null,
|
||||||
"_srcBlendFactor": 2,
|
"_srcBlendFactor": 2,
|
||||||
@@ -1743,11 +1682,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 61
|
"__id__": 59
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 67
|
"__id__": 65
|
||||||
},
|
},
|
||||||
"_alignFlags": 34,
|
"_alignFlags": 34,
|
||||||
"_target": null,
|
"_target": null,
|
||||||
@@ -1792,11 +1731,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 52
|
"__id__": 50
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 70
|
"__id__": 68
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
@@ -1820,11 +1759,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 52
|
"__id__": 50
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 72
|
"__id__": 70
|
||||||
},
|
},
|
||||||
"_customMaterial": null,
|
"_customMaterial": null,
|
||||||
"_srcBlendFactor": 2,
|
"_srcBlendFactor": 2,
|
||||||
@@ -1859,75 +1798,17 @@
|
|||||||
"__type__": "cc.CompPrefabInfo",
|
"__type__": "cc.CompPrefabInfo",
|
||||||
"fileId": "d4MqRKZDdAO4WY6+Sxj+kt"
|
"fileId": "d4MqRKZDdAO4WY6+Sxj+kt"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"__type__": "cc.Button",
|
|
||||||
"_name": "",
|
|
||||||
"_objFlags": 0,
|
|
||||||
"__editorExtras__": {},
|
|
||||||
"node": {
|
|
||||||
"__id__": 52
|
|
||||||
},
|
|
||||||
"_enabled": true,
|
|
||||||
"__prefab": {
|
|
||||||
"__id__": 74
|
|
||||||
},
|
|
||||||
"clickEvents": [],
|
|
||||||
"_interactable": true,
|
|
||||||
"_transition": 1,
|
|
||||||
"_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__": 52
|
|
||||||
},
|
|
||||||
"_id": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"__type__": "cc.CompPrefabInfo",
|
|
||||||
"fileId": "5fdbzBCl5Mb7C4+dO/3Gon"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"__type__": "cc.Widget",
|
"__type__": "cc.Widget",
|
||||||
"_name": "",
|
"_name": "",
|
||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 52
|
"__id__": 50
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 76
|
"__id__": 72
|
||||||
},
|
},
|
||||||
"_alignFlags": 36,
|
"_alignFlags": 36,
|
||||||
"_target": null,
|
"_target": null,
|
||||||
@@ -1966,6 +1847,94 @@
|
|||||||
"targetOverrides": null,
|
"targetOverrides": null,
|
||||||
"nestedPrefabInstanceRoots": null
|
"nestedPrefabInstanceRoots": null
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.Node",
|
||||||
|
"_name": "ShopPanelEntry",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"__editorExtras__": {},
|
||||||
|
"_parent": {
|
||||||
|
"__id__": 3
|
||||||
|
},
|
||||||
|
"_children": [],
|
||||||
|
"_active": true,
|
||||||
|
"_components": [
|
||||||
|
{
|
||||||
|
"__id__": 75
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"_prefab": {
|
||||||
|
"__id__": 77
|
||||||
|
},
|
||||||
|
"_lpos": {
|
||||||
|
"__type__": "cc.Vec3",
|
||||||
|
"x": 328.5,
|
||||||
|
"y": -199.837,
|
||||||
|
"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__": 74
|
||||||
|
},
|
||||||
|
"_enabled": true,
|
||||||
|
"__prefab": {
|
||||||
|
"__id__": 76
|
||||||
|
},
|
||||||
|
"_contentSize": {
|
||||||
|
"__type__": "cc.Size",
|
||||||
|
"width": 231.6,
|
||||||
|
"height": 173.9
|
||||||
|
},
|
||||||
|
"_anchorPoint": {
|
||||||
|
"__type__": "cc.Vec2",
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"_id": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.CompPrefabInfo",
|
||||||
|
"fileId": "59KyF4h5xO2J5FwEAGulRT"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.PrefabInfo",
|
||||||
|
"root": {
|
||||||
|
"__id__": 1
|
||||||
|
},
|
||||||
|
"asset": {
|
||||||
|
"__id__": 0
|
||||||
|
},
|
||||||
|
"fileId": "6brjVZTrlJO7ODE5OMYlQz",
|
||||||
|
"instance": null,
|
||||||
|
"targetOverrides": null,
|
||||||
|
"nestedPrefabInstanceRoots": null
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.UITransform",
|
"__type__": "cc.UITransform",
|
||||||
"_name": "",
|
"_name": "",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
themepanel.titleGirls Online在线选妃+ऑनलाइन लड़कियाँFilles en ligneMädchen Onlinethemepanel.recomandtextDaily Recomand每日推荐%दैनिक सिफारिशRecommandation quotidienneTägliche Empfehlunggirllistpanel.title Girl List技师列表,लड़कियों की सूचीListe des filles␍Mädchenlistegirldetailpanel.chatbtn
|
themepanel.titleGirls Online在线选妃+ऑनलाइन लड़कियाà¤�Filles en ligneMädchen Onlinethemepanel.recomandtextDaily Recomandæ¯�日推è��%दैनिक सिफारिशRecommandation quotidienneTägliche Empfehlunggirllistpanel.title Girl List技师列表,लड़कियों की सूचीListe des filles␍Mädchenlistegirldetailpanel.chatbtn
|
||||||
Send Msgs!å�‘é€�消æ�¯à¤¸à¤‚देश à¤à¥‡à¤œà¥‡à¤‚Envoyer un messageNachricht sendengirldetailpanel.nameName:å��å—:
|
Send Msgs!å�‘é€�消æ�¯à¤¸à¤‚देश à¤à¥‡à¤œà¥‡à¤‚Envoyer un messageNachricht sendengirldetailpanel.nameName:å��å—:
|
||||||
नाम:Nom:Name:girldetailpanel.ageAge:年龄:␍उम्र:Âge:Alter:girldetailpanel.descDescription:␍自我介绍:विवरण:Description:␍Beschreibung:chatpanel.inputplaceholder Messages!请输入:संदेश लिखेंÉcrivez ici...Nachricht eingebensettingpanel.titleSelect Language选择语言भाषा चुनेंChoisir la langueSprache wählen␍category_1001Mature Lady熟女%परिपक्व महिलाFemme mature
|
नाम:Nom:Name:girldetailpanel.ageAge:年龄:␍उमà¥�र:Âge:Alter:girldetailpanel.descDescription:␍自我介ç»�:विवरण:Description:␍Beschreibung:chatpanel.inputplaceholder Messages!请输入:संदेश लिखेंÉcrivez ici...Nachricht eingebensettingpanel.titleSelect Language选择è¯è¨€à¤à¤¾à¤·à¤¾ चà¥�नेंChoisir la langueSprache wählenpurchasepanel.titleShop商店दà¥�कानBoutique Geschäftpurchasepanel.vip_leftleft${leftTime}剩余${leftTime}बचे हà¥�à¤�${leftTime}reste${leftTime}verbleibend${leftTime}purchasepanel.vip_nameVIP Card 特æ�ƒå�¡"वीआईपी कारà¥�ड Carte VIP VIP-Kartepurchasepanel.vip_descAPurchase VIP card to chat with any girl unlimitedly within 7 daysRè´ä¹°ç‰¹æ�ƒå�¡å�Žåœ¨7天内å�¯ä¸Žä»»æ„�对象进行è�Šå¤©ï¼Œä¸”è�Šå¤©æ¬¡æ•°ä¸�é™�€òवीआईपी कारà¥�ड खरीदने के बाद, आप 7 दिनों के à¤à¥€à¤¤à¤° किसी à¤à¥€ लड़की के साथ बिना सीमा के चैट कर सकते हैंZAchetez la carte VIP pour discuter avec n'importe quelle fille sans limite pendant 7 jours^VIP-Karte kaufen, um innerhalb von 7 Tagen ohne Einschränkungen mit jedem Mädchen zu chattenpurchasepanel.get_diamond_text␍Get Diamonds:␍获å�–钻石:0हीरे पà¥�रापà¥�त करें:Obtenir des diamants:Diamanten erhalten:purchasepanel.buy_diamond_btnBuy Diamondsè´ä¹°é’»çŸ³à¤¹à¥€à¤°à¥‡ खरीदेंAcheter des diamantsDiamanten kaufenpurchasepanel.dayday天 दिनjoursTagepurchasepanel.hourhourså°�时घंटेheuresStundenpurchasepanel.minutemin分मिनटminutesMinuten␍category_1001Mature Lady熟女%परिपकà¥�व महिलाFemme mature
|
||||||
Reife Dame␍category_1002Eighteen18å²�अठारह वरà¥�षDix-huit ansAchtzehn␍category_1003 Hot Mommy辣妈सेकà¥�सी माà¤�
|
Reife Dame␍category_1002Eighteen18å²�अठारह वरà¥�षDix-huit ansAchtzehn␍category_1003 Hot Mommy辣妈सेकà¥�सी माà¤�
|
||||||
Maman sexyHeiße Mama␍category_1004Bindingæ�†ç»‘बंधनBondageFesseln␍category_1005Public Fight公众野战+सारà¥�वजनिक संà¤à¥‹à¤—Sexe publicÖffentlicher Sex␍category_1006Cartoonå�¡é€šà¤•ारà¥�टून␍Dessin animéZeichentrick␍category_1007 Up Coming Up Comingकारà¥�टून␍Dessin animéZeichentrickgirl_10001_nameAnaya Kapoor 阿纳雅आनà¥�या कपूरAnaya KapoorAnaya Kapoorgirl_10002_nameMeher Joshi梅尔मेहर जोशीMeher JoshiMeher Joshigirl_10003_name
|
Maman sexyHeiße Mama␍category_1004Bindingæ�†ç»‘बंधनBondageFesseln␍category_1005Public Fight公众野战+सारà¥�वजनिक संà¤à¥‹à¤—Sexe publicÖffentlicher Sex␍category_1006Cartoonå�¡é€šà¤•ारà¥�टून␍Dessin animéZeichentrick␍category_1007 Up Coming Up Comingकारà¥�टून␍Dessin animéZeichentrickgirl_10001_nameAnaya Kapoor 阿纳雅आनà¥�या कपूरAnaya KapoorAnaya Kapoorgirl_10002_nameMeher Joshi梅尔मेहर जोशीMeher JoshiMeher Joshigirl_10003_name
|
||||||
Sana Reddy�娜साना रेड�डी
|
Sana Reddy�娜साना रेड�डी
|
||||||
|
|||||||
Reference in New Issue
Block a user