Compare commits

..

42 Commits

Author SHA1 Message Date
TJH
f113618abe 帮助赔率界面使用节点池,减少消耗
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m16s
2026-07-06 17:14:18 +08:00
TJH
a3872e1a18 退出游戏后打开from代表的网页
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m2s
2026-07-06 14:50:18 +08:00
TJH
d2d2540de0 UI修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2026-07-01 15:32:40 +08:00
TJH
97b836b9df bug
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2026-06-29 17:16:49 +08:00
TJH
1f7dfcfffa 1
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m12s
2026-06-29 15:09:46 +08:00
TJH
d099caf374 缅甸泰语在某些系统下错位问题的修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m2s
2026-06-29 15:08:53 +08:00
TJH
deaaf21e3c 开始滚动前获取余额时,如果网络错误,添加错误后的处理
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m3s
2026-06-25 16:40:41 +08:00
TJH
10562f980c 购买按钮隐藏的逻辑修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2026-06-11 11:15:35 +08:00
TJH
ef4560fe8c 余额不足提示逻辑调整
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m16s
2026-06-11 10:18:49 +08:00
TJH
c62d2a1522 点击余额不足提示确认按钮时刷新玩家余额的显示
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2026-06-10 14:40:27 +08:00
TJH
09f7990e6d 余额刷新添加点击限制
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m16s
2026-06-10 09:55:32 +08:00
TJH
897f305ae3 余额不足时在客户端拦截,不经过spin接口
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m4s
2026-06-08 15:23:28 +08:00
TJH
d6d9db5f65 历史记录详情调整
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2026-05-28 15:17:38 +08:00
TJH
51d05d5209 帮助赔率历史记录的屏幕适配
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m3s
2026-05-28 15:08:14 +08:00
TJH
d5719f29f5 1
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m11s
2026-05-12 10:13:59 +08:00
TJH
05c98897e8 bug
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m4s
2026-05-12 10:09:47 +08:00
TJH
548307cc79 进度条初始显示为0%
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m16s
2026-02-26 10:17:36 +08:00
TJH
58dc911529 bug
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m15s
2026-02-25 16:03:15 +08:00
TJH
d9d6a9bbe4 点击停止逻辑
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m23s
2026-02-25 15:48:52 +08:00
TJH
90d873c4cd test
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m25s
2026-02-25 14:13:09 +08:00
TJH
c035ac8c54 点击停止逻辑修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m27s
2026-02-25 13:32:32 +08:00
TJH
08bcd8faf1 点击停止的节奏修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m16s
2026-02-24 17:40:55 +08:00
TJH
7915edd14c Type为1的背景框没有正确显示的bug
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m23s
2026-02-24 16:15:40 +08:00
TJH
2a3afc71a4 ui
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m23s
2026-02-24 14:45:02 +08:00
TJH
e963a68bb2 ui调整
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m9s
2026-02-24 10:49:49 +08:00
TJH
d25e165b55 1 2026-02-08 09:47:51 +08:00
TJH
d7d34fba67 历史记录bug修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m15s
2026-02-03 16:42:32 +08:00
TJH
bdc590f3a3 龙虎榜UI修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m4s
2026-01-31 15:37:51 +08:00
TJH
c3ee424988 1 2026-01-22 16:07:11 +08:00
TJH
82dbef86ef 1
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2026-01-22 16:04:47 +08:00
TJH
089e040af3 ui
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m15s
2026-01-22 16:03:01 +08:00
TJH
8935ded46a ui调整
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m9s
2026-01-22 11:06:19 +08:00
TJH
f0b70996a5 ui调整 2026-01-21 17:49:47 +08:00
TJH
f3539d2e65 loading界面修改 2026-01-20 11:27:35 +08:00
TJH
a96ea74205 bigwin点击停止时没播放结算音效的bug
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m5s
2026-01-08 10:18:09 +08:00
TJH
f46b37ec39 消除时掉线可以重试或退出
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2026-01-07 17:10:18 +08:00
TJH
33d60c77be 龙虎榜跑马灯修改,rb7logo不消失的bug
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2026-01-07 16:17:02 +08:00
TJH
38ea96f3c2 龙虎榜修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2026-01-05 15:16:43 +08:00
TJH
3bd903bf66 1
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2026-01-04 16:46:15 +08:00
TJH
f95d0be231 历史记录修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m16s
2026-01-04 16:41:18 +08:00
TJH
666120de80 1
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2026-01-04 16:25:52 +08:00
TJH
2be3daa548 1
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s
2026-01-04 16:23:22 +08:00
101 changed files with 14627 additions and 12371 deletions

View File

@ -19,7 +19,9 @@ jobs:
echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- name: npm i
run: |
echo 'npm i'
npm i
echo "✅ npm i done"
- name: build
run: |
echo 'build'

View File

@ -598,7 +598,7 @@
"__id__": 30
}
],
"_active": true,
"_active": false,
"_components": [
{
"__id__": 36
@ -1253,7 +1253,7 @@
},
"_contentSize": {
"__type__": "cc.Size",
"width": 873.017578125,
"width": 893.55908203125,
"height": 50.4
},
"_anchorPoint": {
@ -1289,7 +1289,7 @@
"b": 187,
"a": 255
},
"_string": "活动介绍活动期间参与指定游戏并将赢分排在前XX名即可获得丰厚大",
"_string": "누적 베팅 횟수 XX회 및 누적 베팅 금액 XX를 달성하면 이벤트에 참여할 수 있습니다",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 27,
@ -1302,7 +1302,7 @@
"_isSystemFontUsed": true,
"_spacingX": 0,
"_isItalic": false,
"_isBold": true,
"_isBold": false,
"_isUnderline": false,
"_underlineHeight": 2,
"_cacheMode": 0,
@ -4293,7 +4293,7 @@
"__prefab": {
"__id__": 174
},
"_key": "",
"_key": "Player ID",
"_id": ""
},
{
@ -4597,7 +4597,7 @@
"b": 7,
"a": 255
},
"_string": "Winnings",
"_string": "bet",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 30,
@ -4655,7 +4655,7 @@
"__prefab": {
"__id__": 190
},
"_key": "Winnings",
"_key": "AID_MAIN_SHOW_BET",
"_id": ""
},
{
@ -10748,7 +10748,7 @@
"__prefab": {
"__id__": 451
},
"_key": "",
"_key": "Player ID",
"_id": ""
},
{
@ -11052,7 +11052,7 @@
"b": 7,
"a": 255
},
"_string": "Winnings",
"_string": "bet",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 30,
@ -11110,7 +11110,7 @@
"__prefab": {
"__id__": 467
},
"_key": "Winnings",
"_key": "AID_MAIN_SHOW_BET",
"_id": ""
},
{
@ -15686,7 +15686,7 @@
"__id__": 940
}
],
"_active": false,
"_active": true,
"_components": [
{
"__id__": 1004
@ -17605,7 +17605,7 @@
},
"_contentSize": {
"__type__": "cc.Size",
"width": 108,
"width": 274.232421875,
"height": 36.76
},
"_anchorPoint": {
@ -17641,7 +17641,7 @@
"b": 255,
"a": 255
},
"_string": "领奖记录",
"_string": "Reward claim records",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 26,
@ -26074,7 +26074,7 @@
"_contentSize": {
"__type__": "cc.Size",
"width": 1080,
"height": 1920
"height": 1920.0000000000002
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@ -26151,7 +26151,7 @@
"_contentSize": {
"__type__": "cc.Size",
"width": 1080,
"height": 1920
"height": 1920.0000000000002
},
"_anchorPoint": {
"__type__": "cc.Vec2",

View File

@ -373,7 +373,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -369,
"x": -320,
"y": 3,
"z": 0
},
@ -532,7 +532,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -190,
"x": -140,
"y": 3,
"z": 0
},
@ -701,7 +701,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 15,
"x": 50,
"y": 3,
"z": 0
},
@ -1359,7 +1359,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 205,
"x": 220,
"y": 3,
"z": 0
},
@ -1522,7 +1522,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 366,
"x": 378,
"y": 0,
"z": 0
},

View File

@ -234,7 +234,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -369,
"x": -320,
"y": 0,
"z": 0
},
@ -393,7 +393,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -190,
"x": -140,
"y": 0,
"z": 0
},
@ -562,7 +562,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 15,
"x": 50,
"y": 0,
"z": 0
},
@ -1220,7 +1220,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 205,
"x": 220,
"y": 0,
"z": 0
},

View File

@ -117,7 +117,7 @@ export class RankHistoryList extends Component {
this.refreshSelfRankingInfo(null);
if (!this.isTypeAvailable(type)) {
console.log(`${type} 历史榜单活动未开启`);
this.rankHistoryLoadingNode.active = false;
this.rankHistoryLoadingNode.active = false;
this.showActivityNotOpenTip();
return;
}
@ -181,7 +181,7 @@ export class RankHistoryList extends Component {
}
this.selfInfo.getChildByName('Uid').getComponent(Label).string = truncateString(selfInfo.Uid);
this.selfInfo.getChildByName('Shop').getComponent(Label).string = SlotRankingDataManager.instance.getRankListServerId() || '-';
this.selfInfo.getChildByName('Win').getComponent(Label).string = selfInfo.Win.toString();
this.selfInfo.getChildByName('Win').getComponent(Label).string = selfInfo.Bet.toString();
}
getHistoryDate(type: string, index: number): string {
@ -225,7 +225,7 @@ export class RankHistoryList extends Component {
node.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = (idx + 1).toString();
node.getChildByName('Uid').getComponent(Label).string = truncateString(itemData.Uid);
node.getChildByName('Shop').getComponent(Label).string = SlotRankingDataManager.instance.getRankListServerId() || '-';
node.getChildByName('Win').getComponent(Label).string = itemData.Win.toString();
node.getChildByName('Win').getComponent(Label).string = itemData.Bet.toString();
}
this.rankingHistoryListVScroll.refreshList(rankInfos.List);

View File

@ -1,4 +1,4 @@
import { _decorator, Button, Color, Component, Label, Node, Sprite, Tween, tween, UITransform, v3 } from 'cc';
import { _decorator, Button, Color, Component, Label, Node, Sprite, Tween, tween, UITransform, v3, Vec2 } from 'cc';
import { VirtualScrollView } from './VScrollView';
import { Palette } from './Palette';
import { SlotRankingDataManager } from './SlotRankingDataManager';
@ -116,7 +116,7 @@ export class RankList extends Component {
}
async switchRankTab(type: string) {
if (this.currentRankType === type) {
if (this.currentRankType === type) {
return;
}
@ -131,7 +131,7 @@ export class RankList extends Component {
this.msg_1.active = false;
}
this.marqueeTexts = [];
this.currentMarqueeIndex = 0;
this.currentMarqueeIndex = 0;
this.showActivityNotOpenTip();
if (this.countdownTimer) {
clearInterval(this.countdownTimer);
@ -249,11 +249,24 @@ export class RankList extends Component {
// 再次强制更新以确保宽度准确
labelComp.updateRenderData(true);
let labelLength = labelComp.node.getComponent(UITransform).width;
let maskLength = this.msg_1.parent.getComponent(UITransform).width
// 设置初始位置
this.msg_1.setPosition(-450, this.msg_1.position.y, this.msg_1.position.z);
let endX = -labelLength;
let duration = Math.max(3, (-450 + labelLength) / 80);
let endX = 0
let duration = 0
if (labelLength <= maskLength) {
labelComp.node.getComponent(UITransform).setAnchorPoint(new Vec2(0.5, 0.5))
this.msg_1.setPosition(0, this.msg_1.position.y, this.msg_1.position.z);
endX = - maskLength / 2 - labelLength / 2 - 30
duration = Math.max(3, labelLength / 80);
} else {
labelComp.node.getComponent(UITransform).setAnchorPoint(new Vec2(0, 0.5))
this.msg_1.setPosition(- maskLength / 2, this.msg_1.position.y, this.msg_1.position.z);
endX = - maskLength / 2 - labelLength - 30
duration = Math.max(3, (- maskLength / 2 + labelLength) / 80);
}
// 启动跑马灯动画
Tween.stopAllByTarget(this.msg_1);
@ -287,7 +300,7 @@ export class RankList extends Component {
node.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = itemData.Rank.toString();
node.getChildByName('Uid').getComponent(Label).string = truncateString(itemData.Uid);
node.getChildByName('Shop').getComponent(Label).string = SlotRankingDataManager.instance.getRankListServerId() || '-';
node.getChildByName('Win').getComponent(Label).string = itemData.Win.toString();
node.getChildByName('Win').getComponent(Label).string = itemData.Bet.toString();
}
this.rankingListVScroll.refreshList(rankInfos.List);
@ -318,7 +331,7 @@ export class RankList extends Component {
}
this.selfInfo.getChildByName('Uid').getComponent(Label).string = truncateString(selfInfo.Uid);
this.selfInfo.getChildByName('Shop').getComponent(Label).string = SlotRankingDataManager.instance.getRankListServerId() || '-';
this.selfInfo.getChildByName('Win').getComponent(Label).string = selfInfo.Win.toString();
this.selfInfo.getChildByName('Win').getComponent(Label).string = selfInfo.Bet.toString();
}
// ==================== 按钮状态管理 ====================

View File

@ -129,13 +129,8 @@ export class SlotRanking extends Component {
// 检查是否可以点击排行榜按钮
canClickRankingBtn(): boolean {
console.log('slotScene', this.slotScene)
if (!this.slotScene) return true;
console.log('isAutoSpin', this.slotScene.gameState.isAutoSpin)
console.log('isInFreeSpin', this.slotScene.gameState.isInFreeSpin)
console.log('isFeatureBuySpin', this.slotScene.gameState.isFeatureBuySpin)
console.log('isEliminating', this.slotScene.gameState.isEliminating)
// 如果正在滚动,不可点击
if (this.slotScene.slotGame && this.slotScene.slotGame.isScroll()) {
return false;
@ -225,7 +220,6 @@ export class SlotRanking extends Component {
this.isClick = false;
return;
}
console.log('isClick', this.isClick)
if (this.isClick) {
// 检查是否可以点击
if (!this.canClickRankingBtn()) {

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -2,10 +2,10 @@
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "69fbd01d-29d4-4356-b163-4a703a7d45e4",
"uuid": "922161d3-e56f-47de-b9ee-b1ffdb27939b",
"files": [
".json",
"FranklinGothicDemiCond.ttf"
"Avenir Next World Demi.ttf"
],
"subMetas": {},
"userData": {}

Binary file not shown.

View File

@ -0,0 +1,12 @@
{
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "53564fbb-0c8f-48f6-9f1a-a9bdc54fd297",
"files": [
".json",
"Avenir Next World Medium.ttf"
],
"subMetas": {},
"userData": {}
}

Binary file not shown.

View File

@ -0,0 +1,9 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "734202fa-7b80-48b5-9ed4-07c715826c06",
"files": [],
"subMetas": {},
"userData": {}
}

Binary file not shown.

View File

@ -2,10 +2,10 @@
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "2e641180-f09b-4b02-b393-585d06441b69",
"uuid": "d9c1c5ff-ffc2-4cd4-a343-39bd8388746d",
"files": [
".json",
"FranklinGothicMedium.ttf"
"AvenirNextWorldDemi.ttf"
],
"subMetas": {},
"userData": {}

Binary file not shown.

View File

@ -0,0 +1,12 @@
{
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "5e31c32e-aa54-4a32-b793-32a4dc06a811",
"files": [
".json",
"AvenirNextWorldMedium.ttf"
],
"subMetas": {},
"userData": {}
}

Binary file not shown.

View File

@ -0,0 +1,12 @@
{
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "704ad71c-5bed-458d-b306-9fc5328576b1",
"files": [
".json",
"Pyidaungsu_Bold.ttf"
],
"subMetas": {},
"userData": {}
}

Binary file not shown.

View File

@ -0,0 +1,12 @@
{
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "dfdc09d9-7107-4534-905c-904db5297c61",
"files": [
".json",
"Pyidaungsu_Regular.ttf"
],
"subMetas": {},
"userData": {}
}

Binary file not shown.

View File

@ -2,10 +2,10 @@
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "dc119423-a444-4856-a346-92cc7e6d420a",
"uuid": "c34c14ee-808f-4e93-80a2-ea58fb11b3d2",
"files": [
".json",
"Pyidaungsu.ttf"
"Roboto_Bold.ttf"
],
"subMetas": {},
"userData": {}

Binary file not shown.

View File

@ -0,0 +1,12 @@
{
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "4b259f80-bc47-4cdc-a6d9-c69a67186770",
"files": [
".json",
"Roboto_Regular.ttf"
],
"subMetas": {},
"userData": {}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

View File

@ -2,22 +2,22 @@
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "e5cebe29-f875-42da-9411-55fab49de5f9",
"uuid": "2e3ffd2c-0630-40ef-8fb8-cd8409f4f2e1",
"files": [
".json",
".png"
".jpg",
".json"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "e5cebe29-f875-42da-9411-55fab49de5f9@6c48a",
"displayName": "Icon_Assets",
"uuid": "2e3ffd2c-0630-40ef-8fb8-cd8409f4f2e1@6c48a",
"displayName": "en_menu",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "e5cebe29-f875-42da-9411-55fab49de5f9",
"imageUuidOrDatabaseUri": "2e3ffd2c-0630-40ef-8fb8-cd8409f4f2e1",
"isUuid": true,
"visible": false,
"minfilter": "linear",
@ -34,8 +34,8 @@
},
"f9941": {
"importer": "sprite-frame",
"uuid": "e5cebe29-f875-42da-9411-55fab49de5f9@f9941",
"displayName": "Icon_Assets",
"uuid": "2e3ffd2c-0630-40ef-8fb8-cd8409f4f2e1@f9941",
"displayName": "en_menu",
"id": "f9941",
"name": "spriteFrame",
"userData": {
@ -46,10 +46,10 @@
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 24,
"height": 29,
"rawWidth": 24,
"rawHeight": 29,
"width": 1080,
"height": 1920,
"rawWidth": 1080,
"rawHeight": 1920,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
@ -61,17 +61,17 @@
"meshType": 0,
"vertices": {
"rawPosition": [
-12,
-14.5,
-540,
-960,
0,
12,
-14.5,
540,
-960,
0,
-12,
14.5,
-540,
960,
0,
12,
14.5,
540,
960,
0
],
"indexes": [
@ -84,12 +84,12 @@
],
"uv": [
0,
29,
24,
29,
1920,
1080,
1920,
0,
0,
24,
1080,
0
],
"nuv": [
@ -103,18 +103,18 @@
1
],
"minPos": [
-12,
-14.5,
-540,
-960,
0
],
"maxPos": [
12,
14.5,
540,
960,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "e5cebe29-f875-42da-9411-55fab49de5f9@6c48a",
"imageUuidOrDatabaseUri": "2e3ffd2c-0630-40ef-8fb8-cd8409f4f2e1@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
@ -127,8 +127,8 @@
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"hasAlpha": false,
"fixAlphaTransparencyArtifacts": false,
"redirect": "e5cebe29-f875-42da-9411-55fab49de5f9@6c48a"
"redirect": "2e3ffd2c-0630-40ef-8fb8-cd8409f4f2e1@6c48a"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

View File

@ -2,22 +2,22 @@
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "ed1140c0-f2bf-4d11-a53e-9b29e86ad207",
"uuid": "2144f07c-fd81-4212-8637-b66803fb325a",
"files": [
".json",
".png"
".jpg",
".json"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "ed1140c0-f2bf-4d11-a53e-9b29e86ad207@6c48a",
"displayName": "Icon_Close_B",
"uuid": "2144f07c-fd81-4212-8637-b66803fb325a@6c48a",
"displayName": "menu_th",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "ed1140c0-f2bf-4d11-a53e-9b29e86ad207",
"imageUuidOrDatabaseUri": "2144f07c-fd81-4212-8637-b66803fb325a",
"isUuid": true,
"visible": false,
"minfilter": "linear",
@ -34,8 +34,8 @@
},
"f9941": {
"importer": "sprite-frame",
"uuid": "ed1140c0-f2bf-4d11-a53e-9b29e86ad207@f9941",
"displayName": "Icon_Close_B",
"uuid": "2144f07c-fd81-4212-8637-b66803fb325a@f9941",
"displayName": "menu_th",
"id": "f9941",
"name": "spriteFrame",
"userData": {
@ -46,10 +46,10 @@
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 78,
"height": 78,
"rawWidth": 78,
"rawHeight": 78,
"width": 1080,
"height": 1920,
"rawWidth": 1080,
"rawHeight": 1920,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
@ -61,17 +61,17 @@
"meshType": 0,
"vertices": {
"rawPosition": [
-39,
-39,
-540,
-960,
0,
39,
-39,
540,
-960,
0,
-39,
39,
-540,
960,
0,
39,
39,
540,
960,
0
],
"indexes": [
@ -84,12 +84,12 @@
],
"uv": [
0,
78,
78,
78,
1920,
1080,
1920,
0,
0,
78,
1080,
0
],
"nuv": [
@ -103,18 +103,18 @@
1
],
"minPos": [
-39,
-39,
-540,
-960,
0
],
"maxPos": [
39,
39,
540,
960,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "ed1140c0-f2bf-4d11-a53e-9b29e86ad207@6c48a",
"imageUuidOrDatabaseUri": "2144f07c-fd81-4212-8637-b66803fb325a@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
@ -127,8 +127,8 @@
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"hasAlpha": false,
"fixAlphaTransparencyArtifacts": false,
"redirect": "ed1140c0-f2bf-4d11-a53e-9b29e86ad207@6c48a"
"redirect": "2144f07c-fd81-4212-8637-b66803fb325a@6c48a"
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "6affb4b8-f7ac-4e05-bf75-735027b2eb98",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "6affb4b8-f7ac-4e05-bf75-735027b2eb98@6c48a",
"displayName": "Icon_GameRule",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "6affb4b8-f7ac-4e05-bf75-735027b2eb98",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "6affb4b8-f7ac-4e05-bf75-735027b2eb98@f9941",
"displayName": "Icon_GameRule",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 87,
"height": 70,
"rawWidth": 87,
"rawHeight": 70,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-43.5,
-35,
0,
43.5,
-35,
0,
-43.5,
35,
0,
43.5,
35,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
70,
87,
70,
0,
0,
87,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-43.5,
-35,
0
],
"maxPos": [
43.5,
35,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "6affb4b8-f7ac-4e05-bf75-735027b2eb98@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "6affb4b8-f7ac-4e05-bf75-735027b2eb98@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "8aaeafda-3c56-4c17-99af-f2373749c581",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "8aaeafda-3c56-4c17-99af-f2373749c581@6c48a",
"displayName": "Icon_History",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "8aaeafda-3c56-4c17-99af-f2373749c581",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "8aaeafda-3c56-4c17-99af-f2373749c581@f9941",
"displayName": "Icon_History",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 88,
"height": 88,
"rawWidth": 88,
"rawHeight": 88,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-44,
-44,
0,
44,
-44,
0,
-44,
44,
0,
44,
44,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
88,
88,
88,
0,
0,
88,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-44,
-44,
0
],
"maxPos": [
44,
44,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "8aaeafda-3c56-4c17-99af-f2373749c581@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "8aaeafda-3c56-4c17-99af-f2373749c581@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "352b0e0e-a5bc-4ca6-9a99-7bb71369b9f1",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "352b0e0e-a5bc-4ca6-9a99-7bb71369b9f1@6c48a",
"displayName": "Icon_Paytable",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "352b0e0e-a5bc-4ca6-9a99-7bb71369b9f1",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "352b0e0e-a5bc-4ca6-9a99-7bb71369b9f1@f9941",
"displayName": "Icon_Paytable",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 85,
"height": 85,
"rawWidth": 85,
"rawHeight": 85,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-42.5,
-42.5,
0,
42.5,
-42.5,
0,
-42.5,
42.5,
0,
42.5,
42.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
85,
85,
85,
0,
0,
85,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-42.5,
-42.5,
0
],
"maxPos": [
42.5,
42.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "352b0e0e-a5bc-4ca6-9a99-7bb71369b9f1@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "352b0e0e-a5bc-4ca6-9a99-7bb71369b9f1@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "a05921ee-d9d3-475f-a665-dc4aadcbc0aa",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "a05921ee-d9d3-475f-a665-dc4aadcbc0aa@6c48a",
"displayName": "Icon_Sound",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "a05921ee-d9d3-475f-a665-dc4aadcbc0aa",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "a05921ee-d9d3-475f-a665-dc4aadcbc0aa@f9941",
"displayName": "Icon_Sound",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 84,
"height": 80,
"rawWidth": 84,
"rawHeight": 80,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-42,
-40,
0,
42,
-40,
0,
-42,
40,
0,
42,
40,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
80,
84,
80,
0,
0,
84,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-42,
-40,
0
],
"maxPos": [
42,
40,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "a05921ee-d9d3-475f-a665-dc4aadcbc0aa@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "a05921ee-d9d3-475f-a665-dc4aadcbc0aa@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "d2d634ff-7c81-4fce-a797-1a6f3961463e",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "d2d634ff-7c81-4fce-a797-1a6f3961463e@6c48a",
"displayName": "Icon_SoundOFF",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "d2d634ff-7c81-4fce-a797-1a6f3961463e",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "d2d634ff-7c81-4fce-a797-1a6f3961463e@f9941",
"displayName": "Icon_SoundOFF",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 84,
"height": 80,
"rawWidth": 84,
"rawHeight": 80,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-42,
-40,
0,
42,
-40,
0,
-42,
40,
0,
42,
40,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
80,
84,
80,
0,
0,
84,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-42,
-40,
0
],
"maxPos": [
42,
40,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "d2d634ff-7c81-4fce-a797-1a6f3961463e@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "d2d634ff-7c81-4fce-a797-1a6f3961463e@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 787 B

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "de9577d4-f908-485a-b81d-c9d87d447d40",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "de9577d4-f908-485a-b81d-c9d87d447d40@6c48a",
"displayName": "Icon_Wallet",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "de9577d4-f908-485a-b81d-c9d87d447d40",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "de9577d4-f908-485a-b81d-c9d87d447d40@f9941",
"displayName": "Icon_Wallet",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 27,
"height": 27,
"rawWidth": 27,
"rawHeight": 27,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-13.5,
-13.5,
0,
13.5,
-13.5,
0,
-13.5,
13.5,
0,
13.5,
13.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
27,
27,
27,
0,
0,
27,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-13.5,
-13.5,
0
],
"maxPos": [
13.5,
13.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "de9577d4-f908-485a-b81d-c9d87d447d40@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "de9577d4-f908-485a-b81d-c9d87d447d40@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "2e5fb33e-e3d1-4853-8ab7-448e0170717c",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "2e5fb33e-e3d1-4853-8ab7-448e0170717c@6c48a",
"displayName": "Icon_Win",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "2e5fb33e-e3d1-4853-8ab7-448e0170717c",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "2e5fb33e-e3d1-4853-8ab7-448e0170717c@f9941",
"displayName": "Icon_Win",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 30,
"height": 30,
"rawWidth": 30,
"rawHeight": 30,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-15,
-15,
0,
15,
-15,
0,
-15,
15,
0,
15,
15,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
30,
30,
30,
0,
0,
30,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-15,
-15,
0
],
"maxPos": [
15,
15,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "2e5fb33e-e3d1-4853-8ab7-448e0170717c@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "2e5fb33e-e3d1-4853-8ab7-448e0170717c@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "a2a2f74e-ef42-435c-90fe-aaf69a54c137",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "a2a2f74e-ef42-435c-90fe-aaf69a54c137@6c48a",
"displayName": "button_AutoSpin_Circle",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "a2a2f74e-ef42-435c-90fe-aaf69a54c137",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "a2a2f74e-ef42-435c-90fe-aaf69a54c137@f9941",
"displayName": "button_AutoSpin_Circle",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 117,
"height": 117,
"rawWidth": 117,
"rawHeight": 117,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-58.5,
-58.5,
0,
58.5,
-58.5,
0,
-58.5,
58.5,
0,
58.5,
58.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
117,
117,
117,
0,
0,
117,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-58.5,
-58.5,
0
],
"maxPos": [
58.5,
58.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "a2a2f74e-ef42-435c-90fe-aaf69a54c137@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "a2a2f74e-ef42-435c-90fe-aaf69a54c137@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "e110e1d5-07f2-4b3c-8c6c-1f9a290193fb",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "e110e1d5-07f2-4b3c-8c6c-1f9a290193fb@6c48a",
"displayName": "button_AutoSpin_Gear",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "e110e1d5-07f2-4b3c-8c6c-1f9a290193fb",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "e110e1d5-07f2-4b3c-8c6c-1f9a290193fb@f9941",
"displayName": "button_AutoSpin_Gear",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 98,
"height": 98,
"rawWidth": 98,
"rawHeight": 98,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-49,
-49,
0,
49,
-49,
0,
-49,
49,
0,
49,
49,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
98,
98,
98,
0,
0,
98,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-49,
-49,
0
],
"maxPos": [
49,
49,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "e110e1d5-07f2-4b3c-8c6c-1f9a290193fb@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "e110e1d5-07f2-4b3c-8c6c-1f9a290193fb@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 524 B

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "9b8bb23a-67ae-41b6-b9a9-066a3f0fb4f8",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "9b8bb23a-67ae-41b6-b9a9-066a3f0fb4f8@6c48a",
"displayName": "button_AutoSpin_Play",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "9b8bb23a-67ae-41b6-b9a9-066a3f0fb4f8",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "9b8bb23a-67ae-41b6-b9a9-066a3f0fb4f8@f9941",
"displayName": "button_AutoSpin_Play",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 33,
"height": 37,
"rawWidth": 33,
"rawHeight": 37,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-16.5,
-18.5,
0,
16.5,
-18.5,
0,
-16.5,
18.5,
0,
16.5,
18.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
37,
33,
37,
0,
0,
33,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-16.5,
-18.5,
0
],
"maxPos": [
16.5,
18.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "9b8bb23a-67ae-41b6-b9a9-066a3f0fb4f8@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "9b8bb23a-67ae-41b6-b9a9-066a3f0fb4f8@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 372 B

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "4129de75-e083-4516-a931-a88a64cdd5ab",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "4129de75-e083-4516-a931-a88a64cdd5ab@6c48a",
"displayName": "button_IconMenu",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "4129de75-e083-4516-a931-a88a64cdd5ab",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "4129de75-e083-4516-a931-a88a64cdd5ab@f9941",
"displayName": "button_IconMenu",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 56,
"height": 49,
"rawWidth": 56,
"rawHeight": 49,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-28,
-24.5,
0,
28,
-24.5,
0,
-28,
24.5,
0,
28,
24.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
49,
56,
49,
0,
0,
56,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-28,
-24.5,
0
],
"maxPos": [
28,
24.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "4129de75-e083-4516-a931-a88a64cdd5ab@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "4129de75-e083-4516-a931-a88a64cdd5ab@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "923a32e3-39cd-41f0-b43e-b1ad4186a187",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "923a32e3-39cd-41f0-b43e-b1ad4186a187@6c48a",
"displayName": "button_fast",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "923a32e3-39cd-41f0-b43e-b1ad4186a187",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "923a32e3-39cd-41f0-b43e-b1ad4186a187@f9941",
"displayName": "button_fast",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 98,
"height": 100,
"rawWidth": 98,
"rawHeight": 100,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-49,
-50,
0,
49,
-50,
0,
-49,
50,
0,
49,
50,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
100,
98,
100,
0,
0,
98,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-49,
-50,
0
],
"maxPos": [
49,
50,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "923a32e3-39cd-41f0-b43e-b1ad4186a187@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "923a32e3-39cd-41f0-b43e-b1ad4186a187@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "6b078b73-c3e7-47e7-b56d-c71410c46f79",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "6b078b73-c3e7-47e7-b56d-c71410c46f79@6c48a",
"displayName": "button_jia",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "6b078b73-c3e7-47e7-b56d-c71410c46f79",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "6b078b73-c3e7-47e7-b56d-c71410c46f79@f9941",
"displayName": "button_jia",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 92,
"height": 92,
"rawWidth": 92,
"rawHeight": 92,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-46,
-46,
0,
46,
-46,
0,
-46,
46,
0,
46,
46,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
92,
92,
92,
0,
0,
92,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-46,
-46,
0
],
"maxPos": [
46,
46,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "6b078b73-c3e7-47e7-b56d-c71410c46f79@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "6b078b73-c3e7-47e7-b56d-c71410c46f79@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "d190ca25-ff49-43b3-bf2c-67dfacec94c2",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "d190ca25-ff49-43b3-bf2c-67dfacec94c2@6c48a",
"displayName": "button_jian",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "d190ca25-ff49-43b3-bf2c-67dfacec94c2",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "d190ca25-ff49-43b3-bf2c-67dfacec94c2@f9941",
"displayName": "button_jian",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 92,
"height": 92,
"rawWidth": 92,
"rawHeight": 92,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-46,
-46,
0,
46,
-46,
0,
-46,
46,
0,
46,
46,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
92,
92,
92,
0,
0,
92,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-46,
-46,
0
],
"maxPos": [
46,
46,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "d190ca25-ff49-43b3-bf2c-67dfacec94c2@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "d190ca25-ff49-43b3-bf2c-67dfacec94c2@6c48a"
}
}

View File

@ -0,0 +1,63 @@
import { _decorator, Component, Node } from 'cc';
import NoSleep from 'nosleep.js';
const { ccclass,property } = _decorator;
@ccclass('AntiSleepManager')
export class AntiSleepManager extends Component {
private noSleep: NoSleep | null = null;
private wakeLock: any = null;
_enabled: boolean = false;
onLoad() {
this.noSleep = new NoSleep();
}
clickStart(){
if(this._enabled) return
this.enableWakeLock();
}
async enableWakeLock() {
this._enabled = true
try {
if ('wakeLock' in navigator) {
this.wakeLock = await (navigator as any).wakeLock.request('screen');
// console.log('✅ 屏幕常亮已启用 (Wake Lock API)');
// 处理页面切换时丢失锁
document.addEventListener('visibilitychange', async () => {
if (document.visibilityState === 'visible') {
this.wakeLock = await (navigator as any).wakeLock.request('screen');
}
});
} else {
this.noSleep?.enable();
// console.log('✅ 屏幕常亮已启用 (NoSleep.js)');
}
} catch (err) {
this._enabled = false
// console.error('❌ 启用屏幕常亮失败:', err);
}
}
disableWakeLock() {
if (this.wakeLock) {
this.wakeLock.release();
this.wakeLock = null;
// console.log('🔒 Wake Lock 已关闭');
}
if (this.noSleep) {
this.noSleep.disable();
// console.log('🔒 NoSleep 已关闭');
}
}
onDestroy() {
// this.disableWakeLock();
}
}

View File

@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "c3c4a468-972c-4ee3-8841-9b917cf5c8b1",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -22,13 +22,16 @@ import {
sp,
AsyncDelegate,
instantiate,
SpriteFrame,
} from "cc";
import { SLOT_BAR_EVENT } from "./game/Define";
import { AutoSpinPanel } from "./game/AutoSpinPanel";
import { NodePoolManager } from "../../Loading/scripts/manager/NodePoolManager";
import { webView } from "./game/WebView";
import {
callGameBalanceApi,
cash2gold,
getGameId,
getHistoryUrl,
getOddsUrl,
getSupportUrl,
@ -51,8 +54,6 @@ export class SlotBar extends Component {
@property({ type: Prefab })
private autoSpinPanel: Prefab = null;
@property(Node)
private tipSmall: Node = null;
@property(SlotGame)
private slotGame: SlotGame = null;
@ -65,9 +66,17 @@ export class SlotBar extends Component {
@property(Prefab)
pfb_rules: Prefab = null;
@property(Node)
private tipSmall_turbo: Node = null;
@property(Node)
private tipSmall_bet: Node = null;
@property(Node)
private manualStopNode: Node = null;
@property([SpriteFrame])
turboFrames: SpriteFrame[] = [];
private MaskNode: Node = null;
private balanceLabel: Label = null;
private betLabel: Label = null;
@ -111,7 +120,7 @@ export class SlotBar extends Component {
private btnPositions: Map<string, Vec3> = new Map();
private isAnimating: boolean = false;
private readonly DURATION = 0.1;
private readonly OFFSET_Y = -200;
private readonly OFFSET_Y = -300;
private hasClickSpin: boolean = false;
private hasClickManualStop: boolean = false;
@ -164,10 +173,6 @@ export class SlotBar extends Component {
});
}
protected onDestroy(): void {
this.node.targetOff(this);
}
// spinBtn有两个动画idle状态循环旋转一圈spin状态速度加快
setGameInfo(gameInfo: any) {
@ -266,19 +271,14 @@ export class SlotBar extends Component {
});
}
allowClickManualStop(bl: boolean) {
this.hasClickSpin = bl;
this.manualStopNode.active = bl
}
notAllowClickManualStop(bl: boolean) {
this.hasClickManualStop = bl;
}
onBtnSpin() {
// 第一次点击 旋转
if (!this.hasClickSpin && !this.hasClickManualStop) {
AudioManager.instance.playSFX("Spin_Button_Click");
this.hasClickSpin = true;
this.manualStopNode.active = true
this.node.emit(SLOT_BAR_EVENT.ON_SPIN_CLICK);
this.spinAni.startSpin();
@ -297,8 +297,8 @@ export class SlotBar extends Component {
// 第一次点击 旋转
if (!this.hasClickSpin && !this.hasClickManualStop) {
// AudioManager.instance.playSFX('Spin_Button_Click');
this.hasClickSpin = true;
this.manualStopNode.active = true
this.setBtnEnable(this.subBtn, false);
this.setBtnEnable(this.addBtn, false);
@ -315,7 +315,8 @@ export class SlotBar extends Component {
onBtnTestSpin(event, args) {
// 第一次点击 旋转
if (!this.hasClickSpin && !this.hasClickManualStop) {
// this.hasClickSpin = true;
this.hasClickSpin = true;
this.manualStopNode.active = true
this.node.emit(SLOT_BAR_EVENT.ON_TEST_SPIN_CLICK, args);
this.setBtnEnable(this.subBtn, false);
@ -336,50 +337,51 @@ export class SlotBar extends Component {
}
manualStop() {
this.notAllowClickManualStop(true)
this.hasClickManualStop = true;
this.spinAni.stopSpin();
this.setBtnEnable(this.spinBtn, false);
}
async showPopup(
name: string,
pre: Prefab,
callBack: (prefab: Node) => void
) {
let prefab = await NodePoolManager.instance.getNodeFromPoolStatic(name, pre);
if (!prefab) {
console.error(`UIManager 加载${name} prefab失败: ${path}`);
return;
}
this.MaskNode.addChild(prefab);
showFromBottom(prefab)
let main = prefab.getChildByName('main');
if (!main) {
// console.error(`UIManager ${name}prefab 没有main节点命名不规范: ${path}`);
return;
}
if (callBack) callBack(prefab);
}
// 打开规则界面
openRules() {
if (!this.tweenIsEnd) return;
// AudioManager.instance.playSFX('Common_Button_Click');
// let param = "rule";
// let view = NodePoolManager.instance.getNodeFromPoolStatic(param, this.webViewPre);
// this.MaskNode.addChild(view);
// view.getComponent(webView).open(param, this.curBet);
let rules = instantiate(this.pfb_rules);
this.MaskNode.addChild(rules);
showFromBottom(rules);
this.showPopup('rules', this.pfb_rules)
}
// 打开赔率界面
openPaytable() {
if (!this.tweenIsEnd) return;
// let url = getOddsUrl();
// window.open(url, '_blank');
// return;
// AudioManager.instance.playSFX('Common_Button_Click');
// let param = "paytable";
// let view = NodePoolManager.instance.getNodeFromPoolStatic(param, this.webViewPre);
// this.MaskNode.addChild(view);
// view.getComponent(webView).open(param, this.curBet);
let paytable = instantiate(this.pfb_paytable);
this.MaskNode.addChild(paytable);
showFromBottom(paytable);
this.showPopup('paytable', this.pfb_paytable)
}
openHistory() {
if (!this.tweenIsEnd) return;
let history = instantiate(this.pfb_history);
this.MaskNode.addChild(history);
showFromBottom(history);
this.showPopup('history', this.pfb_history)
}
isON = true;
@ -398,13 +400,12 @@ export class SlotBar extends Component {
onBtnAddChips() {
AudioManager.instance.playSFX("Common_Button_Click");
this.betIndex += 1;
this.setBtnEnable(this.addBtn, this.betIndex != this.betGrade.length);
this.setBtnEnable(this.addBtn, this.betIndex != this.betGrade.length - 1);
this.setBtnEnable(this.subBtn, this.betIndex > 0);
if (this.betIndex == this.betGrade.length) {
if (this.betIndex == this.betGrade.length - 1) {
let tip = I18nManager.instance.t("AID_TIP_MAX_BET");
this.showTipSmall(tip); // 显示提示
this.betIndex = this.betGrade.length - 1; // 确保 betIndex 不超出范围
return;
}
this.setBet(this.betGrade[this.betIndex]);
}
@ -413,58 +414,111 @@ export class SlotBar extends Component {
AudioManager.instance.playSFX("Common_Button_Click");
this.betIndex -= 1;
this.setBtnEnable(this.subBtn, this.betIndex > 0);
this.setBtnEnable(this.addBtn, this.betIndex != this.betGrade.length);
if (this.betIndex < 0) {
this.setBtnEnable(this.addBtn, this.betIndex != this.betGrade.length - 1);
if (this.betIndex == 0) {
let tip = I18nManager.instance.t("AID_TIP_MIN_BET");
this.showTipSmall(tip); // 显示提示
this.betIndex = 0; // 确保 betIndex 不低于0
return;
}
this.setBet(this.betGrade[this.betIndex]);
}
private isGetBalance: boolean = false;
async onClickBalance(): Promise<number | null> {
if (this.isGetBalance) return
this.isGetBalance = true;
try {
let balacneData = await this.refreshBalanceFromServer();
this.setBalance(balacneData)
return balacneData;
} catch (err) {
console.log('获取余额失败')
return null;
} finally {
this.scheduleOnce(() => {
this.isGetBalance = false;
}, 0.5)
}
}
async onConfirmErr2(): Promise<number | null> {
try {
let balacneData = await this.refreshBalanceFromServer();
this.setBalance(balacneData)
return balacneData;
} catch (err) {
console.log('获取余额失败')
return null;
} finally {
this.isGetBalance = false;
}
}
private currentTipTween: Tween<Node> = null;
private hideTimer: number = null;
showTipSmall(str: string) {
showTipSmall(str: string, openTurbo?: boolean) {
// 清理之前的计时器和动画
this.clearTipTimers();
// 设置提示内容
let tipNode = null
if (openTurbo != null) {
tipNode = this.tipSmall_turbo
this.tipSmall_bet.active = false
this.tipSmall.getChildByName("Label").getComponent(Label).string = str;
let label = this.tipSmall.getChildByName("Label").getComponent(Label);
label.updateRenderData(true);
let tipWidth = this.tipSmall
.getChildByName("Label")
.getComponent(UITransform).width;
let frame = this.tipSmall.getChildByName("Frame_Assets");
frame.getComponent(UITransform).setContentSize(tipWidth + 100, 105);
// 调整框架大小
tipNode.getChildByPath("layout/Turboon").active = openTurbo
tipNode.getChildByPath("layout/Turbooff").active = !openTurbo
// 设置提示内容
tipNode.active = true;
tipNode.getChildByPath("layout/Label").getComponent(Label).string = str;
let label = tipNode.getChildByPath("layout/Label").getComponent(Label);
label.updateRenderData(true);
tipNode.getChildByPath("layout").getComponent(Layout).updateLayout(true)
let tipWidth = tipNode.getChildByPath("layout").getComponent(UITransform).width;
let frame = tipNode.getChildByName('Frame_Assets');
// 调整框架大小
frame.getComponent(UITransform).setContentSize(tipWidth + 140, 125);
} else {
tipNode = this.tipSmall_bet
this.tipSmall_turbo.active = false
// 设置提示内容
tipNode.active = true;
tipNode.getChildByPath("Label").getComponent(Label).string = str;
let label = tipNode.getChildByPath("Label").getComponent(Label);
label.updateRenderData(true);
let tipWidth = tipNode.getChildByPath("Label").getComponent(UITransform).width;
let frame = tipNode.getChildByName('Frame_Assets');
// 调整框架大小
frame.getComponent(UITransform).setContentSize(tipWidth + 140, 105);
}
tipNode.scale = new Vec3(0, 0, 0);
setTimeout(() => {
this.tipSmall.active = true;
// 显示动画
this.tipSmall.scale = new Vec3(0, 0, 0);
this.currentTipTween = tween(this.tipSmall)
this.currentTipTween = tween(tipNode)
.to(0.1, { scale: new Vec3(1, 1, 1) })
.call(() => {
// 5. 设置隐藏计时器
this.hideTimer = setTimeout(() => {
this.hideTipSmall();
this.hideTipSmall(tipNode);
}, 1000); // 1秒后隐藏
})
.start();
}, 0.1);
}
private hideTipSmall() {
if (!this.tipSmall.active) return;
private hideTipSmall(tipNode) {
if (!tipNode.active) return;
this.clearTipTimers(); // 清理可能存在的计时器
this.currentTipTween = tween(this.tipSmall)
this.currentTipTween = tween(tipNode)
.to(0.1, { scale: new Vec3(0, 0, 0) })
.call(() => {
this.tipSmall.active = false;
tipNode.active = false;
this.currentTipTween = null;
})
.start();
@ -605,7 +659,7 @@ export class SlotBar extends Component {
this.setBtnVisible(this.spinBtn, true);
this.setBtnVisible(this.stopAutoBtn, false);
this.setBtnEnable(this.spinBtn, false);
this.slotGame.showFeatureBuy(false)
this.slotGame.showFeatureBuy(this.getBet() * this.gameInfo.BuyMul > this.gameInfo.MaxBuyBet)
}
@ -620,9 +674,9 @@ export class SlotBar extends Component {
}
resetAllState() {
this.allowClickManualStop(false)
this.notAllowClickManualStop(false)
this.hasClickSpin = false;
this.manualStopNode.active = false
this.hasClickManualStop = false;
this.isAuto = false;
this.setBtnVisible(this.spinBtn, true);
@ -752,6 +806,7 @@ export class SlotBar extends Component {
protected onDestroy(): void {
this.autoBtn.off(Node.EventType.TOUCH_START, this.autoAin, this);
this.autoBtn.off(Node.EventType.MOUSE_ENTER, this.autoAin, this);
this.node.targetOff(this);
this.turboBtn.off(Node.EventType.TOUCH_START, this.fastAni, this);
this.turboBtn.off(Node.EventType.MOUSE_ENTER, this.fastAni, this);
@ -780,4 +835,28 @@ export class SlotBar extends Component {
this.setBet(this.betGrade[this.betIndex], true);
}
}
// private _refreshingBalance: boolean = false;
async refreshBalanceFromServer(): Promise<number | null> {
// if (this._refreshingBalance) return this.getBalance();
// this._refreshingBalance = true;
try {
const res = await callGameBalanceApi({});
const balance = Number(res.Balance);
if (!Number.isFinite(balance)) {
console.warn("[SlotBar] invalid balance response:", res);
return this.getBalance();
}
this.setBalance(balance);
return balance;
} catch (err) {
console.error("[SlotBar] refresh balance failed:", err);
return this.getBalance();
} finally {
// this.scheduleOnce(() => {
// this._refreshingBalance = false;
// }, 1)
}
}
}

View File

@ -205,7 +205,7 @@ export class SlotGame extends Component {
this.rollerManager.node.off(ROLLER_COMBINE_EVENT.ALL_ROLLER_ICONS_CREATED, this.onAllRollerIconsCreated, this);
this.rollerManager.node.off(ROLLER_COMBINE_EVENT.ALL_ROLLER_ICONS_FALLEN, this.onAllRollerIconsFallen, this);
IconEventBus.on('ICON_CLICKED', this.onIconClicked, this);
IconEventBus.off('ICON_CLICKED', this.onIconClicked, this);
}
private currentBgState: boolean = true; // 记录当前背景状态,默认为普通模式(false)
@ -875,8 +875,8 @@ export class SlotGame extends Component {
}
showFeatureBuy(isShow: boolean) {
this.featureBuyNode.active = !isShow;
showFeatureBuy(isHide: boolean) {
this.featureBuyNode.active = !isHide;
}
setFeatureBuyInteractable(isInteractable: boolean) {

View File

@ -1,4 +1,4 @@
import { _decorator, Component, Prefab } from "cc";
import { _decorator, Component, Node, Prefab } from "cc";
import {
FREE_SPIN_ROLLER_RULE,
GameInfo,
@ -12,7 +12,7 @@ import { SlotBar } from "./SlotBar";
import { SlotGame } from "./SlotGame";
import { BigWinUI } from "./game/BigWinUI";
import { GameDataManager } from "../../Loading/scripts/manager/GameDataManager";
import { callGameApi, getFromUrl } from "../../Loading/scripts/comm";
import { callGameApi, callGameBalanceApi, getFromUrl, getGameId } from "../../Loading/scripts/comm";
import { TipPanel } from "./game/TipPanel";
import { I18nManager } from "../../Loading/scripts/manager/I18nManager";
import { TotalWin } from "./game/TotalWin";
@ -82,12 +82,17 @@ export class SlotScene extends Component {
@property(SlotRanking)
slotRanking: SlotRanking = null;
@property(Node)
gray: Node = null
// 游戏数据
private gameInfo: GameInfo = null;
private spinInfo: any = null;
private lastSpinInfo: any = null;
private spinData: any = null;
private isReceiveMsg: boolean = false;
private isErr2: boolean = false;
private objectId: string[] = [];
@ -125,6 +130,7 @@ export class SlotScene extends Component {
// this.FreeSpinEnter.show(8)
// this.FreeSpinAdd.show(5)
// this.BigWinUI.show(800000, WIN_TYPE.SUPER_MEGA_WIN, 10000)
}
private async init() {
@ -283,19 +289,30 @@ export class SlotScene extends Component {
isFreeSpin: boolean = false,
isFeatureBuy: boolean = false
) {
this.gameState.isOnReconnect = false;
this.isReceiveMsg = false;
this.isErr = false;
this.slotGame.spin(this.gameState.isInFreeSpin);
this.gameState.isOneRoundEnd = false;
this.slotGame.changeBg(this.gameState.isInFreeSpin);
this.slotGame.hideIconMsg();
if (!isFreeSpin) {
this.slotBar.setWin(0);
}
let curBalanceData = await this.slotBar.refreshBalanceFromServer()
if (!curBalanceData) {
curBalanceData = this.slotBar.getBalance()
}
if (curBalanceData < (isFeatureBuy ? this.slotBar.getBet() * this.gameInfo.BuyMul : this.slotBar.getBet()) && !isFreeSpin && !GameDataManager.instance.frb.Ongoing) {
//余额不足不经过服务器,在客户端拦截
this.showErrorTip(2, () => { this.slotBar.onConfirmErr2() });
this.handleErrSpin(true);
this.isErr2 = true;
return
}
try {
this.gameState.isOnReconnect = false;
this.isReceiveMsg = false;
this.isErr = false
this.slotGame.spin(this.gameState.isInFreeSpin);
this.gameState.isOneRoundEnd = false;
this.slotGame.changeBg(this.gameState.isInFreeSpin);
this.slotGame.hideIconMsg();
if (!isFreeSpin) {
this.slotBar.setWin(0);
}
// 如果有frb就不会扣除金额
let frb = GameDataManager.instance.frb;
if (frb && frb.Ongoing != null) {
@ -303,9 +320,14 @@ export class SlotScene extends Component {
} else {
if (!isFreeSpin) {
if (!isFeatureBuy) {
this.slotBar.setBalance(this.slotBar.getBalance() - this.slotBar.getBet());
this.slotBar.setBalance(
this.slotBar.getBalance() - this.slotBar.getBet()
);
} else {
this.slotBar.setBalance(this.slotBar.getBalance() - (this.slotBar.getBet() * this.gameInfo.BuyMul));
this.slotBar.setBalance(
this.slotBar.getBalance() -
this.slotBar.getBet() * this.gameInfo.BuyMul
);
}
}
}
@ -323,8 +345,7 @@ export class SlotScene extends Component {
}
if (!this.gameState.isDebug) {
this.spinInfo = await callGameApi("spin", msg);
this.slotBar.allowClickManualStop(true)
this.slotBar.notAllowClickManualStop(false)
if (this.spinInfo.Frb.Ongoing) {
if (!isFreeSpin) {
let count = this.spinInfo.Frb.Ongoing.Frn;
@ -360,7 +381,7 @@ export class SlotScene extends Component {
this.isReceiveMsg = true;
await this.handleSpinResult();
} catch (error) {
this.isErr = true
this.isErr = true;
let errCode = parseInt(error.message.split("#")[0]);
if (isNaN(errCode)) {
this.showErrorTip(4);
@ -386,18 +407,19 @@ export class SlotScene extends Component {
if (!this.isReceiveMsg) return;
// 免费游戏不能手动停止
// if (this.gameState.isInFreeSpin) {
// return;
// }
if (this.gameState.isInFreeSpin) {
return;
}
// 滚轮没有开始旋转的时候不能停止
if (!this.slotGame.isScroll()) return;
this.slotBar.manualStop();
this.slotGame.manualStop();
}
private handleErrSpin() {
private handleErrSpin(isErr2 = false) {
this.spinInfo = this.lastSpinInfo;
this.spinData = this.spinInfo.Data;
this.slotGame.setRollerIconRule(
@ -406,8 +428,9 @@ export class SlotScene extends Component {
this.gameState.isAutoSpin = false;
this.spinData.AllScore = 0;
this.slotGame.stopScroll(this.spinData, false, null);
this.slotGame.manualStop();
this.slotBar.setBalance(this.spinInfo.Balance);
// this.slotGame.manualStop();
this.slotBar.setBalance(isErr2 ? this.slotBar.getBalance() : this.spinInfo.Balance);
this.slotBar.closeAutoSpin();
}
private async handleSpinResult() {
@ -421,7 +444,7 @@ export class SlotScene extends Component {
? I18nManager.instance.t("AID_TIP_TURBO_ENABLED")
: I18nManager.instance.t("AID_TIP_TURBO_DISABLED");
this.slotBar.showTipSmall(tip);
this.slotBar.showTipSmall(tip, this.gameState.isFastSpin);
if (!this.slotGame.isScroll()) {
this.slotGame.setFastSpin(isFastSpin);
}
@ -724,7 +747,14 @@ export class SlotScene extends Component {
}
private async normalStop(isReconnect: boolean = false) {
this.slotBar.setBalance(this.spinData.Balance);
if (this.isErr2) {
this.isErr2 = false;
this.slotBar.setBalance(this.slotBar.getBalance());
} else {
this.slotBar.setBalance(this.spinData.Balance);
}
let winType = this.slotGame.checkWinType(this.spinData.AllScore);
await this.handleWinResult(winType, isReconnect, false, () => {
@ -942,7 +972,7 @@ export class SlotScene extends Component {
this.TipPanel.showTip(
title,
tip,
null,
callback,
null,
I18nManager.instance.t("AID_ERROR_OK_BUTTON"),
null,
@ -984,6 +1014,14 @@ export class SlotScene extends Component {
);
}
break;
case 5:
msg1 = I18nManager.instance.t('AID_ERROR_CONTENT_4');
msg2 = I18nManager.instance.t('AID_ERROR_CODE_4');
tip = `${msg1}\n${msg2}`;
if (!this.TipPanel.getHasTip()) {
this.TipPanel.showTip(title, tip, () => { window.close() }, () => { callback?.(); }, I18nManager.instance.t('AID_ERROR_QUIT_BUTTON'), I18nManager.instance.t('AID_ERROR_RETRY_BUTTON'), true);
}
break;
}
}
@ -994,9 +1032,10 @@ export class SlotScene extends Component {
null,
() => {
let fromUrl = getFromUrl();
if (fromUrl.length == 0) {
if (!fromUrl || fromUrl == "") {
window.close();
} else {
this.gray.active = true
window.location.replace(fromUrl);
}
},

View File

@ -389,6 +389,11 @@ export class BigWinUI extends Component {
this.unscheduleAllCallbacks();
this.currentScore = this.winScore;
this.updateScoreLabel();
this.bigWinAudio.stop();
this.bigWinAudio.clip = this.bigWinAudioClips[3];
if (!AudioManager.instance.getMuted()) {
this.bigWinAudio.play();
}
this.endAni();
return;
}

View File

@ -1,4 +1,4 @@
import { _decorator, Button, Color, Component, EventHandler, EventMouse, instantiate, isValid, JsonAsset, Label, math, Node, Prefab, ScrollView, sp, tween, UITransform, Vec3 } from 'cc';
import { _decorator, Button, Color, Component, EventHandler, EventMouse, instantiate, isValid, JsonAsset, Label, math, Node, Prefab, ScrollView, sp, tween, UIOpacity, UITransform, Vec3 } from 'cc';
import { getCsymbol, getHistory, getHistoryDetails, getLanguage } from '../../../Loading/scripts/comm';
import { fixNum, getTimezoneOffsetString, getTranslate, hideAllChildren, hideToBottom, isBrahmic, showAllChildren, updateLang } from './Tools';
const { ccclass, property } = _decorator;
@ -44,6 +44,7 @@ export class History extends Component {
holdOn = false
finish = false
clickLock = false
sel_idx: HISTORY_TYPE = HISTORY_TYPE.TODAY
@ -397,10 +398,14 @@ export class History extends Component {
async clickItem(event: Event, roundId: string) {
if (this.clickLock) {
return
}
this.clickLock = true
// console.log("clickItem, roundId = ", roundId)
const history_detail = instantiate(this.history_detail)
history_detail.getComponent(UIOpacity).opacity = 0
this.node_detail.addChild(history_detail)
let data = await getHistoryDetails({
GameId: "rp_11001",
@ -411,12 +416,16 @@ export class History extends Component {
const self = this
history_detail.position = new Vec3(1080, 0)
history_detail.getComponent(UIOpacity).opacity = 255
tween(history_detail).to(0.2, { position: new Vec3(0, 0) })
.call(() => {
self.scheduleOnce(() => { comp.entryFinish() })
})
.start()
this.scheduleOnce(() => {
this.clickLock = false
}, 1)
}

View File

@ -197,7 +197,7 @@ export class HistoryDetail extends Component {
node.active = true
let startVec = new Vec3(0, 3000)
let endVec = new Vec3(0, 800)
let endVec = new Vec3(0, this.list_detail.node.getPosition().y)
node.position = startVec
tween(node).to(0.2, { position: endVec }).call(() => {
@ -432,7 +432,7 @@ export class HistoryDetail extends Component {
}
// scatter 数量统计 node_scatter
if (pan.Symbol.ScNum >= 4 && pan.Free.GamesTimes >= 10) {
if (pan.Symbol.ScNum >= 4 && (pan.Free && pan.Free.GamesTimes >= 10)) {
const node_scatter = content.getChildByName("node_scatter")
const txt_scatter_num = node_scatter.getChildByName("txt_scatter_num").getComponent(Label)
txt_scatter_num.string = "x " + pan.Symbol.ScNum
@ -559,6 +559,7 @@ export class HistoryDetail extends Component {
if (idx == this.data.panDetails.length - 1) {
// console.log("已全部生成完")
this.hideLoading()
this.item_detail.removeFromParent()
this.scrollControl.jumpToPage(0)
}
@ -591,6 +592,7 @@ export class HistoryDetail extends Component {
this.showLoading()
await this.loadDetailList()
this.scrollControl.setTouchEnable(true)
}
removeReturnBtn() {
@ -646,15 +648,16 @@ export class HistoryDetail extends Component {
showLoading() {
this.loading.active = true
let sk = this.loading.getComponent(sp.Skeleton)
sk.paused = false
sk.loop = true
// sk.paused = false
// sk.loop = true
sk.setAnimation(0, 'loadingLoop')
}
hideLoading() {
let sk = this.loading.getComponent(sp.Skeleton)
sk.paused = true
sk.loop = false
// sk.paused = true
// sk.loop = false
sk.clearAnimations()
this.loading.active = false
}

View File

@ -1,6 +1,7 @@
import { _decorator, Component, EventMouse, JsonAsset, Layout, math, Node, ScrollView, UITransform } from 'cc';
import { _decorator, Component, EventMouse, JsonAsset, Layout, math, Node, ScrollView, UITransform, Widget } from 'cc';
import { hideToBottom, isBrahmic, updateLang, wrapTextBySpace } from './Tools';
import { getLanguage } from 'db://assets/Loading/scripts/comm';
import { NodePoolManager } from 'db://assets/Loading/scripts/manager/NodePoolManager';
const { ccclass, property } = _decorator;
@ccclass('Paytable')
@ -18,6 +19,7 @@ export class Paytable extends Component {
this.dict = this.langJson.json[getLanguage()] ?? this.langJson.json["en"];
this.scrollView = this.node.getChildByName("ScrollView").getComponent(ScrollView)
this.scrollView.node.getChildByName('view').getComponent(Widget).updateAlignment()
this.scrollView.node.on('scrolling', this.onScrolling, this);
this.node.on(Node.EventType.MOUSE_WHEEL, this.onMouseWheel, this);
@ -43,7 +45,7 @@ export class Paytable extends Component {
}
clickClosePaytable() {
const destroyFunc = () => { this.node.destroy() }
const destroyFunc = () => { NodePoolManager.instance.putNodeToPool('paytable', this.node) }
hideToBottom(this.node, destroyFunc)
}

View File

@ -267,12 +267,18 @@ export class Roller extends BaseRoller {
* @param data
*/
async manualStopScroll(data: number[]) {
this.resetInfo();
if (this._info.isManualStop ||
this._info.state === ROLLER_STATE.STOP) {
return;
}
this._info.resetLxInfo();
this._stopData = data;
this._info.isManualStop = true;
Tween.stopAllByTarget(this._info.speedNode);
// 回收所有动态图标
// 直接回收所有动态图标
while (this._info.icons.length > 0) {
let icon = this._info.icons.pop();
this.iconFactory.recycleIcon(icon);
@ -287,8 +293,14 @@ export class Roller extends BaseRoller {
this.iconFactory.recycleIcon(icon);
}
}
this._allIcons.clear();
this._posToIconKey.clear();
this.createInitIcons(data);
// 为所有创建的图标播放动画
for (let icon of this._allIcons.values()) {
icon.getComponent(Icon).playSpawnAni();
}
this.changeState(ROLLER_STATE.STOP);
}

View File

@ -1,6 +1,7 @@
import { _decorator, Component, EventMouse, JsonAsset, Label, Layout, math, Node, ScrollView, UITransform } from 'cc';
import { _decorator, Component, EventMouse, JsonAsset, Label, Layout, math, Node, ScrollView, UITransform, Widget } from 'cc';
import { getAllRichTexts, hideToBottom, isBrahmic, updateLang, wrapTextBySpace } from './Tools';
import { getCsymbol, getLanguage } from 'db://assets/Loading/scripts/comm';
import { NodePoolManager } from 'db://assets/Loading/scripts/manager/NodePoolManager';
const { ccclass, property } = _decorator;
@ccclass('Rules')
@ -16,7 +17,7 @@ export class Rules extends Component {
protected onLoad(): void {
this.dict = this.langJson.json[getLanguage()] ?? this.langJson.json["en"];
this.scrollView = this.node.getChildByName("ScrollView").getComponent(ScrollView)
this.scrollView.node.getChildByName('view').getComponent(Widget).updateAlignment()
this.scrollView.node.on('scrolling', this.onScrolling, this);
this.node.on(Node.EventType.MOUSE_WHEEL, this.onMouseWheel, this);
}
@ -49,9 +50,9 @@ export class Rules extends Component {
Label_1_3.string = str
}
clickCloseRules() {
const destroyFunc = () => { this.node.destroy() }
const destroyFunc = () => { NodePoolManager.instance.putNodeToPool('rules', this.node) }
hideToBottom(this.node, destroyFunc)
}

View File

@ -46,12 +46,12 @@ export class ScrollControl extends Component {
onLoad() {
this.node_history_detail = this.node.parent
this.node.on(Node.EventType.TOUCH_START, this._onTouchStart, this);
this.node.on(Node.EventType.TOUCH_MOVE, this._onTouchMove, this);
this.node.on(Node.EventType.TOUCH_END, this._onTouchEnd, this);
this.node.on(Node.EventType.TOUCH_CANCEL, this._onTouchEnd, this);
// this.node.on(Node.EventType.TOUCH_START, this._onTouchStart, this);
// this.node.on(Node.EventType.TOUCH_MOVE, this._onTouchMove, this);
// this.node.on(Node.EventType.TOUCH_END, this._onTouchEnd, this);
// this.node.on(Node.EventType.TOUCH_CANCEL, this._onTouchEnd, this);
this.node.on(Node.EventType.MOUSE_WHEEL, this.onMouseWheel, this);
// this.node.on(Node.EventType.MOUSE_WHEEL, this.onMouseWheel, this);
}
onDisable() {
@ -322,6 +322,22 @@ export class ScrollControl extends Component {
this.vert_scrollView.scrollToOffset(vec2, 0.1, true);
}
setTouchEnable(enbaled) {
if (enbaled) {
this.node.on(Node.EventType.TOUCH_START, this._onTouchStart, this);
this.node.on(Node.EventType.TOUCH_MOVE, this._onTouchMove, this);
this.node.on(Node.EventType.TOUCH_END, this._onTouchEnd, this);
this.node.on(Node.EventType.TOUCH_CANCEL, this._onTouchEnd, this);
this.node.on(Node.EventType.MOUSE_WHEEL, this.onMouseWheel, this);
} else {
this.node.off(Node.EventType.TOUCH_START, this._onTouchStart, this);
this.node.off(Node.EventType.TOUCH_MOVE, this._onTouchMove, this);
this.node.off(Node.EventType.TOUCH_END, this._onTouchEnd, this);
this.node.off(Node.EventType.TOUCH_CANCEL, this._onTouchEnd, this);
this.node.off(Node.EventType.MOUSE_WHEEL, this.onMouseWheel, this);
}
}
// 判断触摸点是否在节点矩形内
isTouchOnNode(node: Node, touchPos: Readonly<Vec2>): boolean {
const uiTransform = node.getComponent(UITransform);

View File

@ -379,7 +379,7 @@ export function showFromBottom(node: Node) {
height = 1920;
}
node.position = new Vec3(0, -height / 2)
node.position = new Vec3(0, -height)
tween(node).to(0.15, { position: new Vec3() }).start()
}

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,9 @@
import { _decorator, Node, Component, screen, view, ResolutionPolicy, Sprite, sys, UITransform, Label, find } from 'cc';
import { LocalizedLabel } from './i18n/LocalizedLabel';
import { getLanguage } from './comm';
import { installLabelAlignmentCenterFix } from 'common_tools';
installLabelAlignmentCenterFix();
const { ccclass, property } = _decorator;
export let SWITCH_PROTRAIT_MODE = {
@ -76,7 +78,9 @@ export class LayoutAdapter extends Component {
const texH = this.sprite.spriteFrame.height;
const scale = Math.max(size.width / texW, size.height / texH);
this.BG_01.setScale(scale, scale); // 铺满并保持比例
this.changeLoge(size.height)
if (this.Logo.isValid) {
this.changeLoge(size.height)
}
if (this.isMobile()) {

View File

@ -7,8 +7,7 @@ import { PREVIEW } from "cc/env"
const gameId = "rp_11001";
// let apiaddr = "https://rpgames-api.rpfafafahkdev.com";
let apiaddr = "";
let token = "eyJQIjoxMDA5NDksIkUiOjE3Njc1NTQzMzksIlMiOjEwMDUsIkQiOiJycF8xMTAwMSJ9.rtpHKrj2YX2lBZw6mfz9uJYBjC-KOL58hJcy2Qy-km4";
let token = "eyJQIjoxMDA5NDksIkUiOjE3ODMzNzIyNzQsIlMiOjEwMDMsIkQiOiJycF8xMTAwMSJ9.HRjXjxkWf6cNrzx-oWsubYxygyF0EofkiLBsUTz9vgk";
let language = "en"
let currency = "THB"
@ -54,7 +53,7 @@ export function getGameId() {
}
export function initReqAddr() {
let partHost = ".rpfafafahkdev.com";
let partHost = ".rpenenenhkdev.com";
if (!PREVIEW) {
const qs = new URLSearchParams(location.search)
@ -101,6 +100,29 @@ AbortSignal.timeout ??= function timeout(ms) {
return ctrl.signal
}
export async function callGameBalanceApi(argsObj: any) {
const url = apiaddr + path.join("/gameapi/getPlayerBalance")
const payload = JSON.stringify(argsObj)
const res = await fetch(url, {
signal: AbortSignal.timeout(10000),
headers: {
"Content-Type": "application/json",
"X-Rp-Token": token,
},
method: "POST",
body: payload,
mode: 'cors',
})
if (res.status != 200) {
const errstr = await res.text()
throw new Error(errstr || res.statusText)
}
const obj = await res.json()
return obj
}
export async function callGameApi(action: string, argsObj: any) {
const url = apiaddr + path.join("/gameapi/", gameId, action)
const payload = JSON.stringify(argsObj)

View File

@ -0,0 +1,98 @@
import { _decorator, CCBoolean, Component, Label, TTFFont } from 'cc';
import { getLanguage } from '../comm';
const { ccclass, property } = _decorator;
@ccclass('LocalizedLabel2')
export class LocalizedLabel2 extends Component {
private label: Label | null = null;
// 加入是否是加粗的属性
@property({
type: CCBoolean,
tooltip: '是否是加粗的'
})
public isBold: boolean = false;
// ========== 除了中日韩其他所有语言字体 ==========
@property({
type: TTFFont,
tooltip: '其他语言字体'
})
public fontOther: TTFFont | null = null;
@property({
type: TTFFont,
tooltip: '加粗字体'
})
public fontOtherBold: TTFFont | null = null;
// ========== 泰语字体 (th),越南语字体 (vi) ==========
@property({
type: TTFFont,
tooltip: '泰语越南字体'
})
public fontThVi: TTFFont | null = null;
@property({
type: TTFFont,
tooltip: '泰语越南加粗字体'
})
public fontThViBold: TTFFont | null = null;
// ========== 缅甸语字体 (my) ==========
@property({
type: TTFFont,
tooltip: '缅甸语字体'
})
public fontMy: TTFFont | null = null;
@property({
type: TTFFont,
tooltip: '缅甸语加粗字体'
})
public fontMyBold: TTFFont | null = null;
start() {
this.label = this.getComponent(Label);
this.updateLabel();
}
public updateLabel() {
if (!this.label) return;
this.applyFont();
}
private applyFont() {
const currentLang = getLanguage();
let targetFont: TTFFont | null = null;
switch (currentLang) {
case 'zh':
case 'ja':
case 'ko':
targetFont = null;
break;
case 'th':
targetFont = this.isBold ? this.fontThViBold : this.fontThVi;
break;
case 'vi':
targetFont = this.isBold ? this.fontThViBold : this.fontThVi;
break;
case 'my':
targetFont = this.isBold ? this.fontMyBold : this.fontMy;
break;
default:
targetFont = this.isBold ? this.fontOtherBold : this.fontOther;
break;
}
if (targetFont) {
this.label.useSystemFont = false;
this.label.font = targetFont;
} else {
this.label.useSystemFont = true;
}
this.label.isBold = this.isBold;
this.label.updateRenderData();
}
}

View File

@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "32bcc178-5730-42de-b46b-c4923eeccafa",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -77,7 +77,7 @@ export class Loading extends Component {
this.node.getChildByPath("Mask/LoadingUINode/logo_en").active = true;
}
initErrorManager();
// initErrorManager();
await I18nManager.instance.ensureI18nSprite(language, "2");
this.node
.getChildByPath('Mask/LoadingUINode/msg')
@ -177,6 +177,7 @@ export class Loading extends Component {
} else {
// 显示重试按钮
this.tipLabel.string = I18nManager.instance.t("AID_LOADING");
this.tipLabel.node.active = false;
this.startBtn.node.active = true;
this.progressBar.node.active = false;
this.progressLabel.node.active = false;
@ -206,7 +207,8 @@ export class Loading extends Component {
}
}
);
await GameDataManager.instance.preloadFrameTypeCache();
await GameDataManager.instance.preloadSymbolCache();
// 资源加载完成进度条到90%
this.updateProgress(this.PROGRESS_RESOURCE);
@ -244,8 +246,8 @@ export class Loading extends Component {
.getComponent(UITransform)
.setContentSize(currentProgress * 509, 100);
this.lightSpineNode.setPosition(
currentProgress * 509 - 278,
-612,
currentProgress * 509 - 268,
-523,
0
);
},

View File

@ -0,0 +1,449 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>frames</key>
<dict>
<key>BarB_Fill_01.png</key>
<dict>
<key>frame</key>
<string>{{580,326},{601,21}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{601,21}}</string>
<key>sourceSize</key>
<string>{601,21}</string>
</dict>
<key>BarB_Frame_01.png</key>
<dict>
<key>frame</key>
<string>{{1262,215},{616,36}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{616,36}}</string>
<key>sourceSize</key>
<string>{616,36}</string>
</dict>
<key>BarB_Handle_01.png</key>
<dict>
<key>frame</key>
<string>{{841,548},{85,85}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{85,85}}</string>
<key>sourceSize</key>
<string>{85,85}</string>
</dict>
<key>Btn_Cancel_01.png</key>
<dict>
<key>frame</key>
<string>{{0,548},{287,87}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{287,87}}</string>
<key>sourceSize</key>
<string>{287,87}</string>
</dict>
<key>Btn_Close_01.png</key>
<dict>
<key>frame</key>
<string>{{1279,326},{52,52}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{52,52}}</string>
<key>sourceSize</key>
<string>{52,52}</string>
</dict>
<key>Btn_Close_02.png</key>
<dict>
<key>frame</key>
<string>{{1183,326},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_Confirm_01.png</key>
<dict>
<key>frame</key>
<string>{{575,0},{287,87}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{287,87}}</string>
<key>sourceSize</key>
<string>{287,87}</string>
</dict>
<key>Btn_History_01.png</key>
<dict>
<key>frame</key>
<string>{{289,548},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_Large_01.png</key>
<dict>
<key>frame</key>
<string>{{0,215},{715,101}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{715,101}}</string>
<key>sourceSize</key>
<string>{715,101}</string>
</dict>
<key>Btn_Paytable_01.png</key>
<dict>
<key>frame</key>
<string>{{362,326},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_Quit_01.png</key>
<dict>
<key>frame</key>
<string>{{717,215},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_Rule_01.png</key>
<dict>
<key>frame</key>
<string>{{266,326},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_SoundOFF_01.png</key>
<dict>
<key>frame</key>
<string>{{1333,326},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_SoundON_01.png</key>
<dict>
<key>frame</key>
<string>{{484,326},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_Spin_01.png</key>
<dict>
<key>frame</key>
<string>{{908,0},{214,213}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{214,213}}</string>
<key>sourceSize</key>
<string>{214,213}</string>
</dict>
<key>Divider_01.png</key>
<dict>
<key>frame</key>
<string>{{1129,548},{281,4}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{281,4}}</string>
<key>sourceSize</key>
<string>{281,4}</string>
</dict>
<key>Divider_02.png</key>
<dict>
<key>frame</key>
<string>{{0,661},{717,5}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{717,5}}</string>
<key>sourceSize</key>
<string>{717,5}</string>
</dict>
<key>Frame_Assets_01.png</key>
<dict>
<key>frame</key>
<string>{{871,215},{356,109}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{356,109}}</string>
<key>sourceSize</key>
<string>{356,109}</string>
</dict>
<key>Frame_Auto_01.png</key>
<dict>
<key>frame</key>
<string>{{1218,0},{180,181}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{180,181}}</string>
<key>sourceSize</key>
<string>{180,181}</string>
</dict>
<key>Frame_Number_01.png</key>
<dict>
<key>frame</key>
<string>{{928,548},{199,111}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{199,111}}</string>
<key>sourceSize</key>
<string>{199,111}</string>
</dict>
<key>Frame_Tip_01.png</key>
<dict>
<key>frame</key>
<string>{{0,326},{220,220}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{220,220}}</string>
<key>sourceSize</key>
<string>{220,220}</string>
</dict>
<key>Frame_Title_01.png</key>
<dict>
<key>frame</key>
<string>{{1429,326},{360,108}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{360,108}}</string>
<key>sourceSize</key>
<string>{360,108}</string>
</dict>
<key>Frame_Title_02.png</key>
<dict>
<key>frame</key>
<string>{{479,548},{360,108}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{360,108}}</string>
<key>sourceSize</key>
<string>{360,108}</string>
</dict>
<key>Icon_Balance_01.png</key>
<dict>
<key>frame</key>
<string>{{0,0},{27,27}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{27,27}}</string>
<key>sourceSize</key>
<string>{27,27}</string>
</dict>
<key>Icon_Bet_01.png</key>
<dict>
<key>frame</key>
<string>{{458,326},{24,28}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{24,28}}</string>
<key>sourceSize</key>
<string>{24,28}</string>
</dict>
<key>Icon_Menu_01.png</key>
<dict>
<key>frame</key>
<string>{{813,215},{56,49}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{56,49}}</string>
<key>sourceSize</key>
<string>{56,49}</string>
</dict>
<key>Icon_Minus_01.png</key>
<dict>
<key>frame</key>
<string>{{1124,0},{92,92}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{92,92}}</string>
<key>sourceSize</key>
<string>{92,92}</string>
</dict>
<key>Icon_Plus_01.png</key>
<dict>
<key>frame</key>
<string>{{385,548},{92,92}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{92,92}}</string>
<key>sourceSize</key>
<string>{92,92}</string>
</dict>
<key>Icon_Win_01.png</key>
<dict>
<key>frame</key>
<string>{{1229,215},{31,31}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{31,31}}</string>
<key>sourceSize</key>
<string>{31,31}</string>
</dict>
<key>Square_01.png</key>
<dict>
<key>frame</key>
<string>{{563,0},{10,10}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{10,10}}</string>
<key>sourceSize</key>
<string>{10,10}</string>
</dict>
<key>toast .png</key>
<dict>
<key>frame</key>
<string>{{29,0},{532,132}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{532,132}}</string>
<key>sourceSize</key>
<string>{532,132}</string>
</dict>
<key>toast _Turbooff.png</key>
<dict>
<key>frame</key>
<string>{{222,326},{42,42}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{42,42}}</string>
<key>sourceSize</key>
<string>{42,42}</string>
</dict>
<key>toast _Turboon.png</key>
<dict>
<key>frame</key>
<string>{{864,0},{42,42}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{42,42}}</string>
<key>sourceSize</key>
<string>{42,42}</string>
</dict>
</dict>
<key>metadata</key>
<dict>
<key>format</key>
<integer>2</integer>
<key>realTextureFileName</key>
<string>CommonUI_02.png</string>
<key>size</key>
<string>{1880,666}</string>
<key>textureFileName</key>
<string>CommonUI_02.png</string>
</dict>
</dict>
</plist>

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

View File

@ -2,7 +2,7 @@
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "f168b707-d32b-4a65-9f4f-038a0cf70f22",
"uuid": "5693bcd9-d959-49f3-883b-7b7870e5f6d4",
"files": [
".json",
".png"
@ -10,14 +10,14 @@
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "f168b707-d32b-4a65-9f4f-038a0cf70f22@6c48a",
"displayName": "Icon_Exit",
"uuid": "5693bcd9-d959-49f3-883b-7b7870e5f6d4@6c48a",
"displayName": "CommonUI_02",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "f168b707-d32b-4a65-9f4f-038a0cf70f22",
"imageUuidOrDatabaseUri": "5693bcd9-d959-49f3-883b-7b7870e5f6d4",
"isUuid": true,
"visible": false,
"minfilter": "linear",
@ -34,22 +34,22 @@
},
"f9941": {
"importer": "sprite-frame",
"uuid": "f168b707-d32b-4a65-9f4f-038a0cf70f22@f9941",
"displayName": "Icon_Exit",
"uuid": "5693bcd9-d959-49f3-883b-7b7870e5f6d4@f9941",
"displayName": "CommonUI_02",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetX": -1,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 79,
"height": 79,
"rawWidth": 79,
"rawHeight": 79,
"width": 1878,
"height": 666,
"rawWidth": 1880,
"rawHeight": 666,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
@ -61,17 +61,17 @@
"meshType": 0,
"vertices": {
"rawPosition": [
-39.5,
-39.5,
-939,
-333,
0,
39.5,
-39.5,
939,
-333,
0,
-39.5,
39.5,
-939,
333,
0,
39.5,
39.5,
939,
333,
0
],
"indexes": [
@ -84,37 +84,37 @@
],
"uv": [
0,
79,
79,
79,
666,
1878,
666,
0,
0,
79,
1878,
0
],
"nuv": [
0,
0,
1,
0.9989361702127659,
0,
0,
1,
1,
0.9989361702127659,
1
],
"minPos": [
-39.5,
-39.5,
-939,
-333,
0
],
"maxPos": [
39.5,
39.5,
939,
333,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "f168b707-d32b-4a65-9f4f-038a0cf70f22@6c48a",
"imageUuidOrDatabaseUri": "5693bcd9-d959-49f3-883b-7b7870e5f6d4@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
@ -129,6 +129,6 @@
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "f168b707-d32b-4a65-9f4f-038a0cf70f22@6c48a"
"redirect": "5693bcd9-d959-49f3-883b-7b7870e5f6d4@6c48a"
}
}

View File

@ -1,436 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>frames</key>
<dict>
<key>Divider_02.png</key>
<dict>
<key>frame</key>
<string>{{1,1},{717,5}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{717,5}}</string>
<key>sourceSize</key>
<string>{717,5}</string>
</dict>
<key>Btn_Large_01.png</key>
<dict>
<key>frame</key>
<string>{{1,8},{715,101}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{715,101}}</string>
<key>sourceSize</key>
<string>{715,101}</string>
</dict>
<key>BarB_Frame_01.png</key>
<dict>
<key>frame</key>
<string>{{1,111},{616,36}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{616,36}}</string>
<key>sourceSize</key>
<string>{616,36}</string>
</dict>
<key>BarB_Fill_01.png</key>
<dict>
<key>frame</key>
<string>{{1,149},{601,21}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{601,21}}</string>
<key>sourceSize</key>
<string>{601,21}</string>
</dict>
<key>Frame_Title_01.png</key>
<dict>
<key>frame</key>
<string>{{1,172},{360,108}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{360,108}}</string>
<key>sourceSize</key>
<string>{360,108}</string>
</dict>
<key>Frame_Title_02.png</key>
<dict>
<key>frame</key>
<string>{{1,282},{360,108}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{360,108}}</string>
<key>sourceSize</key>
<string>{360,108}</string>
</dict>
<key>Frame_Assets_01.png</key>
<dict>
<key>frame</key>
<string>{{1,392},{356,109}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{356,109}}</string>
<key>sourceSize</key>
<string>{356,109}</string>
</dict>
<key>Btn_Cancel_01.png</key>
<dict>
<key>frame</key>
<string>{{359,392},{287,87}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{287,87}}</string>
<key>sourceSize</key>
<string>{287,87}</string>
</dict>
<key>Btn_Confirm_01.png</key>
<dict>
<key>frame</key>
<string>{{363,172},{287,87}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{287,87}}</string>
<key>sourceSize</key>
<string>{287,87}</string>
</dict>
<key>Divider_01.png</key>
<dict>
<key>frame</key>
<string>{{359,481},{281,4}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{281,4}}</string>
<key>sourceSize</key>
<string>{281,4}</string>
</dict>
<key>Frame_Tip_01.png</key>
<dict>
<key>frame</key>
<string>{{1,503},{220,220}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{220,220}}</string>
<key>sourceSize</key>
<string>{220,220}</string>
</dict>
<key>Btn_Spin_01.png</key>
<dict>
<key>frame</key>
<string>{{223,503},{214,213}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{214,213}}</string>
<key>sourceSize</key>
<string>{214,213}</string>
</dict>
<key>Frame_Number_01.png</key>
<dict>
<key>frame</key>
<string>{{363,261},{199,111}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{199,111}}</string>
<key>sourceSize</key>
<string>{199,111}</string>
</dict>
<key>Frame_Auto_01.png</key>
<dict>
<key>frame</key>
<string>{{439,487},{180,181}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{180,181}}</string>
<key>sourceSize</key>
<string>{180,181}</string>
</dict>
<key>Btn_Close_02.png</key>
<dict>
<key>frame</key>
<string>{{621,487},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_History_01.png</key>
<dict>
<key>frame</key>
<string>{{621,583},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_Paytable_01.png</key>
<dict>
<key>frame</key>
<string>{{564,261},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_Quit_01.png</key>
<dict>
<key>frame</key>
<string>{{720,1},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_Rule_01.png</key>
<dict>
<key>frame</key>
<string>{{718,97},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_SoundOFF_01.png</key>
<dict>
<key>frame</key>
<string>{{717,193},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_SoundON_01.png</key>
<dict>
<key>frame</key>
<string>{{717,289},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Icon_Minus_01.png</key>
<dict>
<key>frame</key>
<string>{{717,385},{92,92}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{92,92}}</string>
<key>sourceSize</key>
<string>{92,92}</string>
</dict>
<key>Icon_Plus_01.png</key>
<dict>
<key>frame</key>
<string>{{717,479},{92,92}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{92,92}}</string>
<key>sourceSize</key>
<string>{92,92}</string>
</dict>
<key>BarB_Handle_01.png</key>
<dict>
<key>frame</key>
<string>{{717,573},{85,85}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{85,85}}</string>
<key>sourceSize</key>
<string>{85,85}</string>
</dict>
<key>Icon_Menu_01.png</key>
<dict>
<key>frame</key>
<string>{{439,670},{56,49}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{56,49}}</string>
<key>sourceSize</key>
<string>{56,49}</string>
</dict>
<key>Btn_Close_01.png</key>
<dict>
<key>frame</key>
<string>{{497,670},{52,52}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{52,52}}</string>
<key>sourceSize</key>
<string>{52,52}</string>
</dict>
<key>Icon_Win_01.png</key>
<dict>
<key>frame</key>
<string>{{564,357},{31,31}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{31,31}}</string>
<key>sourceSize</key>
<string>{31,31}</string>
</dict>
<key>Icon_Bet_01.png</key>
<dict>
<key>frame</key>
<string>{{597,357},{24,28}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{24,28}}</string>
<key>sourceSize</key>
<string>{24,28}</string>
</dict>
<key>Icon_Balance_01.png</key>
<dict>
<key>frame</key>
<string>{{623,357},{27,27}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{27,27}}</string>
<key>sourceSize</key>
<string>{27,27}</string>
</dict>
<key>Square_01.png</key>
<dict>
<key>frame</key>
<string>{{804,573},{10,10}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{10,10}}</string>
<key>sourceSize</key>
<string>{10,10}</string>
</dict>
<key>turbo_on.png</key>
<dict>
<key>frame</key>
<string>{{667,116},{34,44}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceSize</key>
<string>{90,90}</string>
</dict>
<key>turbo_off.png</key>
<dict>
<key>frame</key>
<string>{{664,172},{40,44}}</string>
<key>offset</key>
<string>{-1,0}</string>
<key>rotated</key>
<false/>
<key>sourceSize</key>
<string>{90,90}</string>
</dict>
</dict>
<key>metadata</key>
<dict>
<key>format</key>
<integer>2</integer>
<key>pixelFormat</key>
<string>RGBA8888</string>
<key>premultiplyAlpha</key>
<false/>
<key>realTextureFileName</key>
<string>CommonUI_01.png</string>
<key>size</key>
<string>{815,724}</string>
<key>textureFileName</key>
<string>CommonUI_01</string>
</dict>
</dict>
</plist>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

View File

@ -1,42 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "4c93b7ad-a031-4eee-ad7d-c96dffe8d990",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "4c93b7ad-a031-4eee-ad7d-c96dffe8d990@6c48a",
"displayName": "CommonUI_01",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "repeat",
"wrapModeT": "repeat",
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0,
"isUuid": true,
"imageUuidOrDatabaseUri": "4c93b7ad-a031-4eee-ad7d-c96dffe8d990",
"visible": false
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"hasAlpha": true,
"type": "texture",
"fixAlphaTransparencyArtifacts": false,
"redirect": "4c93b7ad-a031-4eee-ad7d-c96dffe8d990@6c48a"
}
}

View File

@ -55,7 +55,7 @@
"Weekly Ranking": "Ugentlig rangliste",
"Monthly Ranking": "Månedlig rangliste",
"Event Description": "Eventbeskrivelse",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Deltag i udvalgte spil i eventperioden, og bliv rangeret efter “gevinstpoint”. De XX bedst placerede spillere modtager attraktive præmier!",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "I kampagneperioden — deltag i de udvalgte spil, og hvis dine indsatser ligger i top XX, kan du få store præmier!",
"Accumulate XX bets or a total wager of XX to participate in the event": "Opnå i alt XX indsatser og en samlet indsats på XX for at deltage i eventet",
"Historical leaderboard records": "Historik for ranglister",
"Claim with one click": "Hent alle præmier",
@ -125,7 +125,7 @@
"Weekly Ranking": "Wochenrangliste",
"Monthly Ranking": "Monatsrangliste",
"Event Description": "Eventbeschreibung",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Nehmen Sie während des Eventzeitraums an den angegebenen Spielen teil und werden Sie nach „Gewinnpunkten“ gerankt. Die Top XX Spieler erhalten attraktive Preise!",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Während der Aktionszeit nimm an den ausgewählten Spielen teil und sichere dir großartige Preise, wenn deine Einsätze unter den Top-XX liegen!",
"Accumulate XX bets or a total wager of XX to participate in the event": "Erreichen Sie insgesamt XX Einsätze und einen kumulierten Einsatz von XX, um am Event teilzunehmen",
"Historical leaderboard records": "Ranglistenverlauf",
"Claim with one click": "Alle Belohnungen abholen",
@ -195,7 +195,7 @@
"Weekly Ranking": "Weekly Ranking",
"Monthly Ranking": "Monthly Ranking",
"Event Description": "Event Description",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "During the event, participate in the designated games and rank within the top XX by bets to win generous rewards!",
"Accumulate XX bets or a total wager of XX to participate in the event": "Accumulate XX bets or a total wager of XX to participate in the event",
"Historical leaderboard records": "Historical leaderboard records",
"Claim with one click": "Claim with one click",
@ -265,7 +265,7 @@
"Weekly Ranking": "Ranking Semanal",
"Monthly Ranking": "Ranking Mensual",
"Event Description": "Descripción del Evento",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Durante el período del evento, participa en los juegos designados y clasifícate según los “puntos de ganancia”. ¡Los XX mejores jugadores obtendrán grandes premios!",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Durante el período del evento, participa en los juegos designados y, si tus apuestas se ubican entre los primeros XX, ¡podrás ganar grandes premios!",
"Accumulate XX bets or a total wager of XX to participate in the event": "Acumula XX apuestas y alcanza un total de apuestas de XX para poder participar en el evento",
"Historical leaderboard records": "Historial de Rankings",
"Claim with one click": "Reclamar Todo",
@ -335,7 +335,7 @@
"Weekly Ranking": "Viikoittainen lista",
"Monthly Ranking": "Kuukausittainen lista",
"Event Description": "Tapahtuman kuvaus",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Osallistu tapahtuman aikana määrättyihin peleihin ja sijoitu “voittopisteiden” perusteella. Parhaat XX pelaajaa saavat houkuttelevia palkintoja!",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Kampanjan aikana osallistu valittuihin peleihin, ja jos panoksesi sijoittuvat kärjen XX joukkoon, voit voittaa upeita palkintoja!",
"Accumulate XX bets or a total wager of XX to participate in the event": "Saavuta yhteensä XX panostusta ja XX kokonaispanos osallistuaksesi tapahtumaan",
"Historical leaderboard records": "Tulostaulukon historia",
"Claim with one click": "Lunasta kaikki",
@ -405,7 +405,7 @@
"Weekly Ranking": "Classement hebdomadaire",
"Monthly Ranking": "Classement mensuel",
"Event Description": "Description de lévénement",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Pendant la période de lévénement, participez aux jeux désignés et soyez classé selon les « points de gain ». Les XX meilleurs joueurs recevront des récompenses attractives !",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Pendant la période de lévénement, participez aux jeux désignés et, si vos mises se classent parmi les XX premiers, vous pourrez remporter de superbes récompenses !",
"Accumulate XX bets or a total wager of XX to participate in the event": "Cumulez XX mises et atteignez un montant total de mises de XX pour pouvoir participer à lévénement",
"Historical leaderboard records": "Historique des classements",
"Claim with one click": "Tout réclamer",
@ -475,7 +475,7 @@
"Weekly Ranking": "Peringkat Mingguan",
"Monthly Ranking": "Peringkat Bulanan",
"Event Description": "Deskripsi Acara",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Selama periode acara, mainkan game yang ditentukan dan menangkan poin untuk masuk ke peringkat XX teratas dan dapatkan hadiah menarik!",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Selama periode acara, ikut serta dalam permainan yang ditentukan dan raih peringkat teratas XX berdasarkan taruhan untuk mendapatkan hadiah besar!",
"Accumulate XX bets or a total wager of XX to participate in the event": "Akumulasi taruhan mencapai XX kali dan total taruhan mencapai XX untuk berpartisipasi dalam acara",
"Historical leaderboard records": "Riwayat Papan Peringkat",
"Claim with one click": "Klaim Sekaligus",
@ -545,7 +545,7 @@
"Weekly Ranking": "Classifica Settimanale",
"Monthly Ranking": "Classifica Mensile",
"Event Description": "Descrizione dellEvento",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Durante il periodo dellevento, partecipa ai giochi selezionati e vieni classificato in base ai “punti vincita”. I primi XX giocatori riceveranno premi interessanti!",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Durante il periodo dellevento, partecipa ai giochi designati e, se le tue puntate rientrano tra le prime XX, potrai ottenere ricche ricompense!",
"Accumulate XX bets or a total wager of XX to participate in the event": "Accumula XX puntate e raggiungi un totale di puntate pari a XX per partecipare allevento",
"Historical leaderboard records": "Cronologia delle Classifiche",
"Claim with one click": "Riscatta Tutto",
@ -615,7 +615,7 @@
"Weekly Ranking": "ウィークリーランキング",
"Monthly Ranking": "マンスリーランキング",
"Event Description": "イベント概要",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "イベント期間中に指定されたゲームに参加し、「獲得ポイント」に基づいてランキングが決定されます。上位 XX 名のプレイヤーには豪華報酬が贈られます!",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "イベント期間中、指定されたゲームに参加し、ベットがトップXXに入れば、豪華な報酬を獲得できます!",
"Accumulate XX bets or a total wager of XX to participate in the event": "累計ベット回数が XX 回、かつ累計ベット額が XX に達すると、イベントに参加できます",
"Historical leaderboard records": "ランキング履歴",
"Claim with one click": "一括受け取り",
@ -685,7 +685,7 @@
"Weekly Ranking": "주간 랭킹",
"Monthly Ranking": "월간 랭킹",
"Event Description": "이벤트 안내",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "이벤트 기간 동안 지정된 게임에 참여하고 “획득 포인트” 기준으로 랭킹이 결정됩니다. 상위 XX명의 플레이어에게 푸짐한 보상이 지급됩니다!",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "이벤트 기간 동안 지정된 게임에 참여하고 베팅 순위가 상위 XX위 안에 들면 풍성한 보상을 받을 수 있습니다!",
"Accumulate XX bets or a total wager of XX to participate in the event": "누적 베팅 횟수 XX회 및 누적 베팅 금액 XX를 달성하면 이벤트에 참여할 수 있습니다",
"Historical leaderboard records": "랭킹 기록",
"Claim with one click": "일괄 수령",
@ -755,7 +755,7 @@
"Weekly Ranking": "အပတ်စဉ် အဆင့်သတ်မှတ်ဇယား",
"Monthly Ranking": "လစဉ် အဆင့်သတ်မှတ်ဇယား",
"Event Description": "ပွဲလှုပ်ရှားမှု အကြောင်းအရာ",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "ပွဲလှုပ်ရှားမှုကာလအတွင်း သတ်မှတ်ထားသော ဂိမ်းများတွင် ပါဝင်ကစားပြီး “အနိုင်ရမှတ်များ” အပေါ် မူတည်၍ အဆင့်သတ်မှတ်မည်ဖြစ်ပါသည်။ ထိပ်ဆုံး XX ဦးသည် ဆုလာဘ်အထူးများကို ရရှိမည်ဖြစ်ပါသည်။",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "အစီအစဉ်ကာလအတွင်း သတ်မှတ်ထားသောဂိမ်းများတွင် ပါဝင်ကာ ပေါက်ကြေးတင်ထားမှုများသည် ထိပ်တန်း XX အဆင့်အတွင်းဝင်လျှင် စျေးကြီးမော်လပြည့် ရခိုင်ထောက်ပံ့မျိုးစုံကို ရယူနိုင်ပါသည်!",
"Accumulate XX bets or a total wager of XX to participate in the event": "စုစုပေါင်း လောင်းကစားအကြိမ် XX ကြိမ်နှင့် စုစုပေါင်း လောင်းကစားပမာဏ XX ကို ပြည့်မီပါက ပွဲလှုပ်ရှားမှုတွင် ပါဝင်နိုင်ပါသည်",
"Historical leaderboard records": "အဆင့်သတ်မှတ်ဇယား မှတ်တမ်း",
"Claim with one click": "တစ်ကြိမ်တည်း ဆုလက်ခံမည်",
@ -825,7 +825,7 @@
"Weekly Ranking": "Wekelijkse ranglijst",
"Monthly Ranking": "Maandelijkse ranglijst",
"Event Description": "Beschrijving van het evenement",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Neem tijdens de evenementperiode deel aan de geselecteerde spellen en word gerangschikt op basis van “winstpunten”. De beste XX spelers ontvangen aantrekkelijke beloningen!",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Tijdens de actieperiode kun je deelnemen aan de aangewezen spellen en, als je inzetten bij de top XX horen, geweldige prijzen winnen!",
"Accumulate XX bets or a total wager of XX to participate in the event": "Bereik in totaal XX inzetten en een cumulatief inzetbedrag van XX om aan het evenement deel te nemen",
"Historical leaderboard records": "Geschiedenis van ranglijsten",
"Claim with one click": "Alles claimen",
@ -895,7 +895,7 @@
"Weekly Ranking": "Classificação Semanal",
"Monthly Ranking": "Classificação Mensal",
"Event Description": "Descrição do Evento",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Durante o período do evento, participe dos jogos selecionados e seja classificado com base nos “pontos de ganho”. Os XX melhores jogadores receberão prêmios atrativos!",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Durante o período do evento, participe nos jogos designados e, se as suas apostas ficarem entre os primeiros XX, você poderá ganhar grandes recompensas!",
"Accumulate XX bets or a total wager of XX to participate in the event": "Acumule XX apostas e alcance um total de apostas de XX para participar do evento",
"Historical leaderboard records": "Histórico de Classificações",
"Claim with one click": "Resgatar Tudo",
@ -965,7 +965,7 @@
"Weekly Ranking": "Clasament săptămânal",
"Monthly Ranking": "Clasament lunar",
"Event Description": "Descrierea evenimentului",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Pe durata evenimentului, participă la jocurile selectate și fii clasat în funcție de „punctele de câștig”. Primii XX de jucători vor primi recompense atractive!",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "În perioada evenimentului, participă la jocurile desemnate și, dacă pariurile tale se află în top XX, poți obține recompense generoase!",
"Accumulate XX bets or a total wager of XX to participate in the event": "Acumulează XX pariuri și atinge un total al pariurilor de XX pentru a putea participa la eveniment",
"Historical leaderboard records": "Istoric clasamente",
"Claim with one click": "Revendică tot",
@ -1035,7 +1035,7 @@
"Weekly Ranking": "Еженедельный рейтинг",
"Monthly Ranking": "Ежемесячный рейтинг",
"Event Description": "Описание события",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "В период проведения события участвуйте в выбранных играх и занимайте места в рейтинге на основе «очков выигрыша». Топ XX игроков получат щедрые награды!",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "В период проведения акции участвуйте в выбранных играх и, если ваши ставки войдут в топ XX, вы сможете получить щедрые призы!",
"Accumulate XX bets or a total wager of XX to participate in the event": "Совершите XX ставок и наберите общий объём ставок XX, чтобы принять участие в событии",
"Historical leaderboard records": "История рейтингов",
"Claim with one click": "Забрать всё",
@ -1047,8 +1047,7 @@
"Reward claim records": "История получений",
"Event": "Событие",
"Claim": "Забрать",
"Event Time": "Время события"
"Event Time": "Время события"
},
"sv": {
"AID_AUTO_BUTTON": "Starta autospinn",
@ -1106,7 +1105,7 @@
"Weekly Ranking": "Veckovis topplista",
"Monthly Ranking": "Månatlig topplista",
"Event Description": "Evenemangsbeskrivning",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Delta i de utvalda spelen under evenemangsperioden och rangordnas baserat på ”vinstpoäng”. De XX bästa spelarna får attraktiva belöningar!",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Under kampanjperioden — delta i de utvalda spelen, och om dina insatser hamnar bland topp XX kan du vinna fina priser!",
"Accumulate XX bets or a total wager of XX to participate in the event": "Uppnå totalt XX insatser och ett sammanlagt insatsbelopp på XX för att delta i evenemanget",
"Historical leaderboard records": "Topplistehistorik",
"Claim with one click": "Hämta alla",
@ -1176,7 +1175,7 @@
"Weekly Ranking": "อันดับรายสัปดาห์",
"Monthly Ranking": "อันดับรายเดือน",
"Event Description": "รายละเอียดกิจกรรม",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "ร่วมเล่นเกมที่กำหนดในช่วงเวลากิจกรรม และจัดอันดับตาม “คะแนนชนะ” ผู้เล่นที่ติดอันดับ XX แรก รับรางวัลสุดพิเศษทันที!",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "ในช่วงกิจกรรม เพียงเข้าร่วมเล่นเกมที่กำหนด และมียอดเดิมพันติดอันดับ XX อันดับแรก ก็รับรางวัลใหญ่ได้เลย!",
"Accumulate XX bets or a total wager of XX to participate in the event": "สะสมยอดเดิมพันครบ XX ครั้ง และมียอดเดิมพันสะสมครบ XX จึงจะมีสิทธิ์เข้าร่วมกิจกรรม",
"Historical leaderboard records": "ประวัติตารางจัดอันดับ",
"Claim with one click": "รับรางวัลทั้งหมดในครั้งเดียว",
@ -1246,7 +1245,7 @@
"Weekly Ranking": "Haftalık Sıralama",
"Monthly Ranking": "Aylık Sıralama",
"Event Description": "Etkinlik Açıklaması",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Etkinlik süresi boyunca belirlenen oyunlara katılın ve “kazanç puanları”na göre sıralamaya girin. İlk XX oyuncu cazip ödüller kazanacaktır!",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Etkinlik süresi boyunca belirlenen oyunlara katıl ve bahislerin ilk XX sırada yer alırsa büyük ödüller kazan!",
"Accumulate XX bets or a total wager of XX to participate in the event": "Etkinliğe katılmak için toplam XX bahis yapın ve toplam bahis tutarınız XXe ulaşsın",
"Historical leaderboard records": "Sıralama Geçmişi",
"Claim with one click": "Hepsini Al",
@ -1316,7 +1315,7 @@
"Weekly Ranking": "Bảng tuần",
"Monthly Ranking": "Bảng tháng",
"Event Description": "Giới thiệu sự kiện",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Trong thời gian diễn ra sự kiện, tham gia các trò chơi được chỉ định và xếp hạng theo “điểm thắng”. Người chơi nằm trong Top XX sẽ nhận được phần thưởng hấp dẫn!",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "Trong thời gian diễn ra sự kiện, hãy tham gia các trò chơi được chỉ định và xếp hạng trong top XX về tổng cược để nhận những phần thưởng hấp dẫn!",
"Accumulate XX bets or a total wager of XX to participate in the event": "Tích lũy XX lượt cược và tổng số tiền cược đạt XX để đủ điều kiện tham gia sự kiện",
"Historical leaderboard records": "Lịch sử bảng xếp hạng",
"Claim with one click": "Nhận thưởng một lần",
@ -1386,7 +1385,7 @@
"Weekly Ranking": "週榜",
"Monthly Ranking": "月榜",
"Event Description": "活動說明",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "活動期間內參與指定遊戲,依「贏分」排名前 XX 名,即可獲得豐富大獎!",
"During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!": "活動期間內參與指定遊戲,依「投注」排名前 XX 名,即可獲得豐富大獎!",
"Accumulate XX bets or a total wager of XX to participate in the event": "累積投注達 XX 次,且累積投注金額達 XX即可參與活動",
"Historical leaderboard records": "歷史排行榜紀錄",
"Claim with one click": "一鍵領取",
@ -1400,4 +1399,4 @@
"Claim": "領取",
"Event Time": "活動時間"
}
}
}

View File

@ -16,7 +16,7 @@
"physics-2d": "inherit-project-setting"
},
"macroConfig": {
"cleanupImageCache": "off"
"cleanupImageCache": "inherit-project-setting"
}
},
"nativeCodeBundleMode": "both",
@ -35,7 +35,7 @@
"handleTemplateMd5Link": true
},
"mainBundleIsRemote": false,
"mainBundleCompressionType": "merge_dep",
"mainBundleCompressionType": "merge_all_json",
"useSplashScreen": false,
"bundleCommonChunk": false,
"packAutoAtlas": true,

6
package-lock.json generated
View File

@ -9,9 +9,15 @@
"version": "1.0.0",
"license": "ISC",
"dependencies": {
"common_tools": "git+ssh://git@gitea.rpfafafahkdev.com:taotao/common_tools.git",
"nosleep.js": "^0.12.0"
}
},
"node_modules/common_tools": {
"version": "1.0.0",
"resolved": "git+ssh://git@gitea.rpfafafahkdev.com:taotao/common_tools.git#c49bf2990a6f348489505ac4998683c814b58dde",
"license": "MIT"
},
"node_modules/nosleep.js": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/nosleep.js/-/nosleep.js-0.12.0.tgz",

Some files were not shown because too many files have changed in this diff Show More