循环塔循环时间支持配置

This commit is contained in:
meixiongfeng 2024-01-30 17:36:55 +08:00
parent 1042cdfb15
commit 704ac9b16d
17 changed files with 1244 additions and 1116 deletions

View File

@ -2498,14 +2498,14 @@
"ChoseCamp": [],
"DisableCamp": [],
"DefaultHero": 720021,
"ChoseHero": [
"24004"
],
"ChoseHero": [],
"DisableHero": [],
"LockSlots": [
5
],
"HeroCheck": [],
"HeroCheck": [
"24004"
],
"RedAssistTeam": 720019,
"BlueAssistTeam": 720020,
"CanFriendHelp": false,

View File

@ -7,14 +7,11 @@
"key": "circularcamptower_loop_openDesc_1",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 1,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 1,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_1",
"text": "循环之塔"
@ -51,14 +48,11 @@
"key": "circularcamptower_loop_openDesc_2",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 2,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 2,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_2",
"text": "循环之塔"
@ -95,14 +89,11 @@
"key": "circularcamptower_loop_openDesc_3",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 3,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 3,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_3",
"text": "循环之塔"
@ -139,14 +130,11 @@
"key": "circularcamptower_loop_openDesc_4",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 4,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 4,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_4",
"text": "循环之塔"
@ -183,14 +171,11 @@
"key": "circularcamptower_loop_openDesc_5",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 5,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 5,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_5",
"text": "循环之塔"
@ -227,14 +212,11 @@
"key": "circularcamptower_loop_openDesc_6",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 6,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 6,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_6",
"text": "循环之塔"
@ -271,14 +253,11 @@
"key": "circularcamptower_loop_openDesc_7",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 7,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 7,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_7",
"text": "循环之塔"
@ -315,14 +294,11 @@
"key": "circularcamptower_loop_openDesc_8",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 8,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 8,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_8",
"text": "循环之塔"
@ -359,14 +335,11 @@
"key": "circularcamptower_loop_openDesc_9",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 9,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 9,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_9",
"text": "循环之塔"
@ -403,14 +376,11 @@
"key": "circularcamptower_loop_openDesc_10",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 10,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 10,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_10",
"text": "循环之塔"
@ -447,14 +417,11 @@
"key": "circularcamptower_loop_openDesc_11",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 11,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 11,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_11",
"text": "循环之塔"
@ -491,14 +458,11 @@
"key": "circularcamptower_loop_openDesc_12",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 12,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 12,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_12",
"text": "循环之塔"
@ -535,14 +499,11 @@
"key": "circularcamptower_loop_openDesc_13",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 13,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 13,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_13",
"text": "循环之塔"
@ -579,14 +540,11 @@
"key": "circularcamptower_loop_openDesc_14",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 14,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 14,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_14",
"text": "循环之塔"
@ -623,14 +581,11 @@
"key": "circularcamptower_loop_openDesc_15",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 15,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 15,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_15",
"text": "循环之塔"
@ -667,14 +622,11 @@
"key": "circularcamptower_loop_openDesc_16",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 16,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 16,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_16",
"text": "循环之塔"
@ -711,14 +663,11 @@
"key": "circularcamptower_loop_openDesc_17",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 17,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 17,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_17",
"text": "循环之塔"
@ -755,14 +704,11 @@
"key": "circularcamptower_loop_openDesc_18",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 18,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 18,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_18",
"text": "循环之塔"
@ -799,14 +745,11 @@
"key": "circularcamptower_loop_openDesc_19",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 19,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 19,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_19",
"text": "循环之塔"
@ -843,14 +786,11 @@
"key": "circularcamptower_loop_openDesc_20",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 20,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 20,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_20",
"text": "循环之塔"
@ -887,14 +827,11 @@
"key": "circularcamptower_loop_openDesc_21",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 21,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 21,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_21",
"text": "循环之塔"
@ -931,14 +868,11 @@
"key": "circularcamptower_loop_openDesc_22",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 22,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 22,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_22",
"text": "循环之塔"
@ -975,14 +909,11 @@
"key": "circularcamptower_loop_openDesc_23",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 23,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 23,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_23",
"text": "循环之塔"
@ -1019,14 +950,11 @@
"key": "circularcamptower_loop_openDesc_24",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 24,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 24,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_24",
"text": "循环之塔"
@ -1063,14 +991,11 @@
"key": "circularcamptower_loop_openDesc_25",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 25,
"fightevents": [
107
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 25,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_25",
"text": "循环之塔"
@ -1107,14 +1032,11 @@
"key": "circularcamptower_loop_openDesc_26",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 1,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 1,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_26",
"text": "循环之塔"
@ -1151,14 +1073,11 @@
"key": "circularcamptower_loop_openDesc_27",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 2,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 2,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_27",
"text": "循环之塔"
@ -1195,14 +1114,11 @@
"key": "circularcamptower_loop_openDesc_28",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 3,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 3,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_28",
"text": "循环之塔"
@ -1239,14 +1155,11 @@
"key": "circularcamptower_loop_openDesc_29",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 4,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 4,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_29",
"text": "循环之塔"
@ -1283,14 +1196,11 @@
"key": "circularcamptower_loop_openDesc_30",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 5,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 5,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_30",
"text": "循环之塔"
@ -1327,14 +1237,11 @@
"key": "circularcamptower_loop_openDesc_31",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 6,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 6,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_31",
"text": "循环之塔"
@ -1371,14 +1278,11 @@
"key": "circularcamptower_loop_openDesc_32",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 7,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 7,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_32",
"text": "循环之塔"
@ -1415,14 +1319,11 @@
"key": "circularcamptower_loop_openDesc_33",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 8,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 8,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_33",
"text": "循环之塔"
@ -1459,14 +1360,11 @@
"key": "circularcamptower_loop_openDesc_34",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 9,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 9,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_34",
"text": "循环之塔"
@ -1503,14 +1401,11 @@
"key": "circularcamptower_loop_openDesc_35",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 10,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 10,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_35",
"text": "循环之塔"
@ -1547,14 +1442,11 @@
"key": "circularcamptower_loop_openDesc_36",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 11,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 11,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_36",
"text": "循环之塔"
@ -1591,14 +1483,11 @@
"key": "circularcamptower_loop_openDesc_37",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 12,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 12,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_37",
"text": "循环之塔"
@ -1635,14 +1524,11 @@
"key": "circularcamptower_loop_openDesc_38",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 13,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 13,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_38",
"text": "循环之塔"
@ -1679,14 +1565,11 @@
"key": "circularcamptower_loop_openDesc_39",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 14,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 14,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_39",
"text": "循环之塔"
@ -1723,14 +1606,11 @@
"key": "circularcamptower_loop_openDesc_40",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 15,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 15,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_40",
"text": "循环之塔"
@ -1767,14 +1647,11 @@
"key": "circularcamptower_loop_openDesc_41",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 16,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 16,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_41",
"text": "循环之塔"
@ -1811,14 +1688,11 @@
"key": "circularcamptower_loop_openDesc_42",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 17,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 17,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_42",
"text": "循环之塔"
@ -1855,14 +1729,11 @@
"key": "circularcamptower_loop_openDesc_43",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 18,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 18,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_43",
"text": "循环之塔"
@ -1899,14 +1770,11 @@
"key": "circularcamptower_loop_openDesc_44",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 19,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 19,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_44",
"text": "循环之塔"
@ -1943,14 +1811,11 @@
"key": "circularcamptower_loop_openDesc_45",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 20,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 20,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_45",
"text": "循环之塔"
@ -1987,14 +1852,11 @@
"key": "circularcamptower_loop_openDesc_46",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 21,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 21,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_46",
"text": "循环之塔"
@ -2031,14 +1893,11 @@
"key": "circularcamptower_loop_openDesc_47",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 22,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 22,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_47",
"text": "循环之塔"
@ -2075,14 +1934,11 @@
"key": "circularcamptower_loop_openDesc_48",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 23,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 23,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_48",
"text": "循环之塔"
@ -2119,14 +1975,11 @@
"key": "circularcamptower_loop_openDesc_49",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 24,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 24,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_49",
"text": "循环之塔"
@ -2163,14 +2016,11 @@
"key": "circularcamptower_loop_openDesc_50",
"text": ""
},
"openingtime": [],
"time": 30,
"unlock": "circularcamptower",
"floors": 25,
"fightevents": [
108
],
"tabIcon": "",
"unlock": "circularcamptower",
"floors": 25,
"tabTitle": {
"key": "circularcamptower_loop_tabTitle_50",
"text": "循环之塔"

View File

@ -0,0 +1,18 @@
[
{
"id": 1,
"time": 1,
"skilldec": {
"key": "circularcamptower_season_skilldec_1",
"text": "使用<img src='ui://icon/jn_icon_005' width='20' height='20'/>给敌方增加【眩晕】状态。"
}
},
{
"id": 2,
"time": 1,
"skilldec": {
"key": "circularcamptower_season_skilldec_2",
"text": "使用<img src='ui://icon/jn_icon_056' width='20' height='20'/>给敌方增加【无法获得增益】状态。"
}
}
]

View File

@ -11863,7 +11863,7 @@
"heroimg": "zxgq_qp_icon_gth",
"bubbletext": {
"key": "main_stage_bubbletext_95",
"text": "哼……传承者……"
"text": "欢迎,我的朋友!"
},
"animation": [],
"prewarbubbletext": {
@ -40121,8 +40121,8 @@
"herocolor": 1,
"heroimg": "zxgq_qp_icon_gth",
"bubbletext": {
"key": "",
"text": ""
"key": "main_stage_bubbletext_300",
"text": "希卡普真是越来越不务正业。"
},
"animation": [],
"prewarbubbletext": {
@ -40202,7 +40202,7 @@
"herocolor": 1,
"heroimg": "zxgq_qp_icon_gth",
"bubbletext": {
"key": "main_stage_bubbletext_261",
"key": "main_stage_bubbletext_301",
"text": "呃呃呃,好冷啊……!!"
},
"animation": [],
@ -40283,7 +40283,7 @@
"herocolor": 1,
"heroimg": "zxgq_qp_icon_gth",
"bubbletext": {
"key": "main_stage_bubbletext_262",
"key": "main_stage_bubbletext_302",
"text": "吼吼吼——"
},
"animation": [],
@ -40364,7 +40364,7 @@
"herocolor": 1,
"heroimg": "zxgq_qp_icon_gth",
"bubbletext": {
"key": "main_stage_bubbletext_263",
"key": "main_stage_bubbletext_303",
"text": "哦,我的奥丁神啊!!"
},
"animation": [],
@ -40445,7 +40445,7 @@
"herocolor": 1,
"heroimg": "zxgq_qp_icon_gth",
"bubbletext": {
"key": "main_stage_bubbletext_264",
"key": "main_stage_bubbletext_304",
"text": "小嗝嗝,快来帮忙。"
},
"animation": [],
@ -40562,7 +40562,7 @@
"herocolor": 1,
"heroimg": "zxgq_qp_icon_gth",
"bubbletext": {
"key": "main_stage_bubbletext_265",
"key": "main_stage_bubbletext_305",
"text": "好端端的,龙群怎么会感染瘟疫?"
},
"animation": [],
@ -40578,8 +40578,8 @@
"frontstoryid": 401090,
"afterstoryid": 401100,
"maingroupName": {
"key": "",
"text": ""
"key": "mainchapter_main_stage_maingroupName_300",
"text": "阻止埃雷特!"
},
"maingroupIcon": "",
"mainlineName": {
@ -40695,8 +40695,8 @@
"frontstoryid": 0,
"afterstoryid": 0,
"maingroupName": {
"key": "",
"text": ""
"key": "mainchapter_main_stage_maingroupName_301",
"text": "阻止闹事者!"
},
"maingroupIcon": "",
"mainlineName": {
@ -40796,7 +40796,7 @@
"herocolor": 1,
"heroimg": "zxgq_qp_icon_gth",
"bubbletext": {
"key": "main_stage_bubbletext_266",
"key": "main_stage_bubbletext_307",
"text": "事关博克岛生存,必须谨慎处理。"
},
"animation": [],
@ -40812,8 +40812,8 @@
"frontstoryid": 401110,
"afterstoryid": 0,
"maingroupName": {
"key": "",
"text": ""
"key": "mainchapter_main_stage_maingroupName_302",
"text": "击败埃雷特!"
},
"maingroupIcon": "",
"mainlineName": {
@ -40929,8 +40929,8 @@
"frontstoryid": 0,
"afterstoryid": 0,
"maingroupName": {
"key": "",
"text": ""
"key": "mainchapter_main_stage_maingroupName_303",
"text": "击败闹事村民"
},
"maingroupIcon": "",
"mainlineName": {
@ -41033,7 +41033,7 @@
"herocolor": 1,
"heroimg": "zxgq_qp_icon_gth",
"bubbletext": {
"key": "main_stage_bubbletext_268",
"key": "main_stage_bubbletext_309",
"text": "别打了,大家都冷静一下!"
},
"animation": [],
@ -41120,7 +41120,7 @@
"herocolor": 1,
"heroimg": "zxgq_qp_icon_gth",
"bubbletext": {
"key": "main_stage_bubbletext_269",
"key": "main_stage_bubbletext_310",
"text": "这不是你的错,小嗝嗝。"
},
"animation": [],
@ -41240,7 +41240,7 @@
"herocolor": 1,
"heroimg": "zxgq_qp_icon_gth",
"bubbletext": {
"key": "main_stage_bubbletext_270",
"key": "main_stage_bubbletext_311",
"text": "终于又回到了这里。"
},
"animation": [],
@ -41324,7 +41324,7 @@
"herocolor": 1,
"heroimg": "zxgq_qp_icon_gth",
"bubbletext": {
"key": "main_stage_bubbletext_271",
"key": "main_stage_bubbletext_312",
"text": "希卡普,我的儿子!!"
},
"animation": [],
@ -41492,7 +41492,7 @@
"herocolor": 1,
"heroimg": "zxgq_qp_icon_gth",
"bubbletext": {
"key": "main_stage_bubbletext_273",
"key": "main_stage_bubbletext_314",
"text": "以爱回应忠诚,以荣誉回应英勇。"
},
"animation": [],
@ -41579,7 +41579,7 @@
"herocolor": 1,
"heroimg": "zxgq_qp_icon_gth",
"bubbletext": {
"key": "main_stage_bubbletext_274",
"key": "main_stage_bubbletext_315",
"text": "是奥拉夫暴风雪!!"
},
"animation": [],
@ -41867,7 +41867,7 @@
"herocolor": 1,
"heroimg": "zxgq_qp_icon_gth",
"bubbletext": {
"key": "main_stage_bubbletext_277",
"key": "main_stage_bubbletext_318",
"text": "怎么办怎么办,暴风雪来了!"
},
"animation": [],

View File

@ -1898,7 +1898,9 @@
"heroid": 53001,
"star": 3,
"equip": [],
"newskill": [],
"newskill": [
100000004
],
"lv": 30,
"hppro": 100,
"atkpro": 2.5,

File diff suppressed because it is too large Load Diff

View File

@ -15072,7 +15072,7 @@
"OverlayTimes": 1,
"SameID": false,
"golbalbufficon": "",
"buffIcon": "",
"buffIcon": "ty_icon_buff_hgbl",
"buffeffect": "effect_53001_evil_heiyan",
"buffpos": "根节点",
"AddTrigger": 0,

View File

@ -21,10 +21,9 @@ func (this *apiComp) ChallengeCycleCheck(session comm.IUserSession, req *pb.Pago
// /六合塔开始挑战
func (this *apiComp) ChallengeCycle(session comm.IUserSession, req *pb.PagodaChallengeCycleReq) (errdata *pb.ErrorData) {
var (
pagoda *pb.DBPagodaCycle
err error
timeCheckOk bool
pType pb.PlayType
pagoda *pb.DBPagodaCycle
err error
pType pb.PlayType
)
if errdata = this.ChallengeCycleCheck(session, req); errdata != nil {
return // 参数校验失败直接返回
@ -53,24 +52,6 @@ func (this *apiComp) ChallengeCycle(session comm.IUserSession, req *pb.PagodaCha
curWeekDay = 7
}
if len(conf.Openingtime) == 0 {
timeCheckOk = true
} else {
for _, v := range conf.Openingtime {
if v == curWeekDay {
timeCheckOk = true
break
}
}
}
if !timeCheckOk {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_PagodaTimeError,
Title: pb.ErrorCode_PagodaTimeError.ToString(),
}
return
}
if _, ok := pagoda.Data[conf.Floors]; !ok {
if pagoda.Maxfloor+1 != conf.Floors {
errdata = &pb.ErrorData{ // 挑战关卡数据不匹配

View File

@ -31,7 +31,14 @@ func (this *apiComp) GetCycle(session comm.IUserSession, req *pb.PagodaGetCycleR
}
return
}
// 是否切换赛季
if list.Etime < configure.Now().Unix() {
data := this.module.modelCyclePagoda.getCycelData()
list.Etime = data.Etime
update["rtime"] = list.Etime
list.Itype = data.Itype
update["itype"] = list.Itype
}
if !utils.IsToday(list.Rtime) {
update = make(map[string]interface{}, 0)
list.Rtime = configure.Now().Unix()
@ -46,7 +53,6 @@ func (this *apiComp) GetCycle(session comm.IUserSession, req *pb.PagodaGetCycleR
}
}
}
session.SendMsg(string(this.module.GetType()), "getcycle", &pb.PagodaGetCycleResp{
Data: list,
})

View File

@ -19,6 +19,7 @@ const (
game_circulate = "game_circulate.json"
game_sixdirections = "game_sixdirections.json"
game_sixdirectionsreward = "game_sixdirectionsreward.json"
game_circulateseason = "game_circulateseason.json"
)
///配置管理基础组件
@ -43,7 +44,7 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
game_pagoda: cfg.NewGamePagoda,
game_circulate: cfg.NewGameCirculate,
game_sixdirections: cfg.NewGameSixDirections,
//game_sixdirectionsreward: cfg.NewGameSixDirectionsReward,
game_circulateseason: cfg.NewGameCirculateSeason,
})
configure.RegisterConfigure(game_pagoda, cfg.NewGamePagoda, this.LoadPagoda)
@ -260,3 +261,19 @@ func (this *configureComp) GetSixDirectionsConf(boxid int32) (conf []*cfg.GameSi
this.hlock.RUnlock()
return
}
// 获取赛季的数量
func (this *configureComp) GetCirculateSeasonLenght() (conf []*cfg.GameCirculateSeasonData, err error) {
var (
v interface{}
)
if v, err = this.GetConfigure(game_circulateseason); err == nil {
if configure, ok := v.(*cfg.GameCirculateSeason); ok {
if conf = configure.GetDataList(); len(conf) > 0 {
return
}
}
}
err = comm.NewNotFoundConfErr(moduleName, game_circulateseason, "")
return
}

View File

@ -5,12 +5,16 @@ import (
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/event"
"go_dreamfactory/lego/sys/mgo"
"go_dreamfactory/lego/sys/redis/pipe"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
cfg "go_dreamfactory/sys/configure/structs"
"go_dreamfactory/sys/db"
"go_dreamfactory/utils"
"sync"
"github.com/go-redis/redis/v8"
"go.mongodb.org/mongo-driver/bson/primitive"
@ -21,6 +25,9 @@ import (
type ModelCycle struct {
modules.MCompModel
module *Pagoda
conflock sync.RWMutex
cycelData *pb.DBCycelData
}
func (this *ModelCycle) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
@ -34,23 +41,113 @@ func (this *ModelCycle) Init(service core.IService, module core.IModule, comp co
return
}
func (this *ModelCycle) Start() (err error) {
err = this.MCompModel.Start()
event.RegisterGO(core.Event_ServiceStartEnd, func() {
err = this.loadCyclePagoda()
})
return
}
// 刷新全局配置
func (this *ModelCycle) loadCyclePagoda() (err error) {
var (
cycelData *pb.DBCycelData = &pb.DBCycelData{}
)
if err = this.module.ModuleTools.GetGlobalData("CirculatePagoda", cycelData); err != nil && err != mgo.MongodbNil {
this.module.Errorln(err)
return
}
if err == mgo.MongodbNil {
_, err = this.refreshCycelData()
return
}
this.conflock.Lock()
this.cycelData = cycelData
this.conflock.Unlock()
return
}
// 获取循环塔信息
func (this *ModelCycle) getCycelData() (data *pb.DBCycelData) {
var (
cycelData *pb.DBCycelData
err error
)
this.conflock.RLock()
cycelData = this.cycelData
this.conflock.RUnlock()
if cycelData == nil || cycelData.Etime < configure.Now().Unix() {
if cycelData, err = this.refreshCycelData(); err != nil {
return
}
this.conflock.Lock()
this.cycelData = cycelData
this.conflock.Unlock()
}
data = cycelData
return
}
// 刷新全局配置
func (this *ModelCycle) refreshCycelData() (data *pb.DBCycelData, err error) {
var (
conf []*cfg.GameCirculateSeasonData
day int32
index int32
curType int32 // 当前的赛季
etime int64 // 结束时间
openTime int64 // 开服时间
)
if conf, err = this.module.configure.GetCirculateSeasonLenght(); err != nil {
return
}
for _, v := range conf {
day += v.Time
}
openTime = utils.GetCurZeroTime(this.module.service.GetOpentime().Unix()) // 格式化一下时间
curday := (configure.Now().Unix() - openTime) % int64(day)
curday += 1
for _, v := range conf {
index += v.Time
if int32(curday) <= index {
curType = v.Id
etime = configure.Now().Unix() + int64(index-int32(curday))*24*3600
break
}
}
etime = utils.GetZeroTime(etime) // 格式化一下时间
data = &pb.DBCycelData{
Itype: curType,
Etime: etime,
}
this.conflock.Lock()
this.cycelData = data
this.conflock.Unlock()
this.module.ModuleTools.UpdateGlobalData("CirculatePagoda", map[string]interface{}{
"itype": data.Itype,
"etime": data.Etime,
})
return
}
// 获取爬塔信息
func (this *ModelCycle) getPagodaCycleList(uid string) (result *pb.DBPagodaCycle, err error) {
result = &pb.DBPagodaCycle{}
if err = this.Get(uid, result); err != nil && err == mgo.MongodbNil { // 初始一条数据
data := this.getCycelData()
result.Id = primitive.NewObjectID().Hex()
result.Uid = uid
result.Itype = 1
result.Itype = data.Itype
result.Data = make(map[int32]*pb.CycleData, 0)
result.Rtime = configure.Now().Unix()
if conf, e := this.module.configure.GetPagodaCirculateConf(1, 1); e == nil {
result.Etime = configure.Now().Unix() + int64(conf.Time)*24*3600
} else {
err = fmt.Errorf("conf not found: %v", e.Error())
return
}
result.Etime = data.Etime
err = this.Add(uid, result)
return
}

View File

@ -871,6 +871,69 @@ func (x *DBCycleRank) GetCosttime() int32 {
return 0
}
type DBCycelData struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID
Itype int32 `protobuf:"varint,2,opt,name=itype,proto3" json:"itype"` // Boss 类型
Etime int64 `protobuf:"varint,3,opt,name=etime,proto3" json:"etime"` // 结束时间
}
func (x *DBCycelData) Reset() {
*x = DBCycelData{}
if protoimpl.UnsafeEnabled {
mi := &file_pagoda_pagoda_db_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DBCycelData) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DBCycelData) ProtoMessage() {}
func (x *DBCycelData) ProtoReflect() protoreflect.Message {
mi := &file_pagoda_pagoda_db_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DBCycelData.ProtoReflect.Descriptor instead.
func (*DBCycelData) Descriptor() ([]byte, []int) {
return file_pagoda_pagoda_db_proto_rawDescGZIP(), []int{10}
}
func (x *DBCycelData) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *DBCycelData) GetItype() int32 {
if x != nil {
return x.Itype
}
return 0
}
func (x *DBCycelData) GetEtime() int64 {
if x != nil {
return x.Etime
}
return 0
}
var File_pagoda_pagoda_db_proto protoreflect.FileDescriptor
var file_pagoda_pagoda_db_proto_rawDesc = []byte{
@ -1015,8 +1078,13 @@ var file_pagoda_pagoda_db_proto_rawDesc = []byte{
0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x18, 0x03,
0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x63,
0x6f, 0x73, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63,
0x6f, 0x73, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62,
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x6f, 0x73, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x49, 0x0a, 0x0b, 0x44, 0x42, 0x43, 0x79, 0x63,
0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x79, 0x70, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05,
0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x74, 0x69,
0x6d, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x33,
}
var (
@ -1031,7 +1099,7 @@ func file_pagoda_pagoda_db_proto_rawDescGZIP() []byte {
return file_pagoda_pagoda_db_proto_rawDescData
}
var file_pagoda_pagoda_db_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
var file_pagoda_pagoda_db_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
var file_pagoda_pagoda_db_proto_goTypes = []interface{}{
(*DBPagoda)(nil), // 0: DBPagoda
(*DBPagodaRecord)(nil), // 1: DBPagodaRecord
@ -1043,35 +1111,36 @@ var file_pagoda_pagoda_db_proto_goTypes = []interface{}{
(*DBCyclePagodaRecord)(nil), // 7: DBCyclePagodaRecord
(*CycleData)(nil), // 8: CycleData
(*DBCycleRank)(nil), // 9: DBCycleRank
nil, // 10: DBPagoda.RewardEntry
nil, // 11: DBPagoda.DataEntry
nil, // 12: DBRacePagodaRecord.DataEntry
nil, // 13: DBPagodaRace.DataEntry
nil, // 14: DBPagodaRace.RewardEntry
nil, // 15: DBPagodaCycle.DataEntry
nil, // 16: DBCyclePagodaRecord.DataEntry
(*LineUp)(nil), // 17: LineUp
(*BaseUserInfo)(nil), // 18: BaseUserInfo
(*LineData)(nil), // 19: LineData
(*DBCycelData)(nil), // 10: DBCycelData
nil, // 11: DBPagoda.RewardEntry
nil, // 12: DBPagoda.DataEntry
nil, // 13: DBRacePagodaRecord.DataEntry
nil, // 14: DBPagodaRace.DataEntry
nil, // 15: DBPagodaRace.RewardEntry
nil, // 16: DBPagodaCycle.DataEntry
nil, // 17: DBCyclePagodaRecord.DataEntry
(*LineUp)(nil), // 18: LineUp
(*BaseUserInfo)(nil), // 19: BaseUserInfo
(*LineData)(nil), // 20: LineData
}
var file_pagoda_pagoda_db_proto_depIdxs = []int32{
10, // 0: DBPagoda.reward:type_name -> DBPagoda.RewardEntry
11, // 1: DBPagoda.data:type_name -> DBPagoda.DataEntry
17, // 2: DBPagodaRecord.line:type_name -> LineUp
18, // 3: DBRacePagodaRecord.uinfo:type_name -> BaseUserInfo
12, // 4: DBRacePagodaRecord.data:type_name -> DBRacePagodaRecord.DataEntry
18, // 5: DBRaceRank.uinfo:type_name -> BaseUserInfo
19, // 6: DBRaceRank.line:type_name -> LineData
19, // 7: RaceData.line:type_name -> LineData
13, // 8: DBPagodaRace.data:type_name -> DBPagodaRace.DataEntry
14, // 9: DBPagodaRace.reward:type_name -> DBPagodaRace.RewardEntry
18, // 10: DBPagodaRace.uinfo:type_name -> BaseUserInfo
15, // 11: DBPagodaCycle.data:type_name -> DBPagodaCycle.DataEntry
18, // 12: DBCyclePagodaRecord.uinfo:type_name -> BaseUserInfo
16, // 13: DBCyclePagodaRecord.data:type_name -> DBCyclePagodaRecord.DataEntry
19, // 14: CycleData.line:type_name -> LineData
18, // 15: DBCycleRank.uinfo:type_name -> BaseUserInfo
19, // 16: DBCycleRank.line:type_name -> LineData
11, // 0: DBPagoda.reward:type_name -> DBPagoda.RewardEntry
12, // 1: DBPagoda.data:type_name -> DBPagoda.DataEntry
18, // 2: DBPagodaRecord.line:type_name -> LineUp
19, // 3: DBRacePagodaRecord.uinfo:type_name -> BaseUserInfo
13, // 4: DBRacePagodaRecord.data:type_name -> DBRacePagodaRecord.DataEntry
19, // 5: DBRaceRank.uinfo:type_name -> BaseUserInfo
20, // 6: DBRaceRank.line:type_name -> LineData
20, // 7: RaceData.line:type_name -> LineData
14, // 8: DBPagodaRace.data:type_name -> DBPagodaRace.DataEntry
15, // 9: DBPagodaRace.reward:type_name -> DBPagodaRace.RewardEntry
19, // 10: DBPagodaRace.uinfo:type_name -> BaseUserInfo
16, // 11: DBPagodaCycle.data:type_name -> DBPagodaCycle.DataEntry
19, // 12: DBCyclePagodaRecord.uinfo:type_name -> BaseUserInfo
17, // 13: DBCyclePagodaRecord.data:type_name -> DBCyclePagodaRecord.DataEntry
20, // 14: CycleData.line:type_name -> LineData
19, // 15: DBCycleRank.uinfo:type_name -> BaseUserInfo
20, // 16: DBCycleRank.line:type_name -> LineData
4, // 17: DBRacePagodaRecord.DataEntry.value:type_name -> RaceData
4, // 18: DBPagodaRace.DataEntry.value:type_name -> RaceData
8, // 19: DBPagodaCycle.DataEntry.value:type_name -> CycleData
@ -1211,6 +1280,18 @@ func file_pagoda_pagoda_db_proto_init() {
return nil
}
}
file_pagoda_pagoda_db_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DBCycelData); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
@ -1218,7 +1299,7 @@ func file_pagoda_pagoda_db_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_pagoda_pagoda_db_proto_rawDesc,
NumEnums: 0,
NumMessages: 17,
NumMessages: 18,
NumExtensions: 0,
NumServices: 0,
},

View File

@ -15,12 +15,9 @@ type GameCirculateData struct {
Itype int32
BattlereadyID int32
OpenDesc string
Openingtime []int32
Time int32
Fightevents []int32
Unlock string
Floors int32
Fightevents []int32
TabIcon string
TabTitle string
Monsterlineup []int32
KeyReward []*Gameatn
@ -41,23 +38,6 @@ func (_v *GameCirculateData)Deserialize(_buf map[string]interface{}) (err error)
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["itype"].(float64); !_ok_ { err = errors.New("itype error"); return }; _v.Itype = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["battlereadyID"].(float64); !_ok_ { err = errors.New("battlereadyID error"); return }; _v.BattlereadyID = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["openDesc"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.OpenDesc error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.OpenDesc, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["openingtime"].([]interface{}); !_ok_ { err = errors.New("openingtime error"); return }
_v.Openingtime = make([]int32, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ int32
{ var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
_v.Openingtime = append(_v.Openingtime, _list_v_)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["time"].(float64); !_ok_ { err = errors.New("time error"); return }; _v.Time = int32(_tempNum_) }
{ var _ok_ bool; if _v.Unlock, _ok_ = _buf["unlock"].(string); !_ok_ { err = errors.New("unlock error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["floors"].(float64); !_ok_ { err = errors.New("floors error"); return }; _v.Floors = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
@ -72,7 +52,8 @@ func (_v *GameCirculateData)Deserialize(_buf map[string]interface{}) (err error)
}
}
{ var _ok_ bool; if _v.TabIcon, _ok_ = _buf["tabIcon"].(string); !_ok_ { err = errors.New("tabIcon error"); return } }
{ var _ok_ bool; if _v.Unlock, _ok_ = _buf["unlock"].(string); !_ok_ { err = errors.New("unlock error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["floors"].(float64); !_ok_ { err = errors.New("floors error"); return }; _v.Floors = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["tabTitle"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.TabTitle error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.TabTitle, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{
var _arr_ []interface{}

View File

@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
type GameCirculateSeason struct {
_dataMap map[int32]*GameCirculateSeasonData
_dataList []*GameCirculateSeasonData
}
func NewGameCirculateSeason(_buf []map[string]interface{}) (*GameCirculateSeason, error) {
_dataList := make([]*GameCirculateSeasonData, 0, len(_buf))
dataMap := make(map[int32]*GameCirculateSeasonData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameCirculateSeasonData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameCirculateSeason{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameCirculateSeason) GetDataMap() map[int32]*GameCirculateSeasonData {
return table._dataMap
}
func (table *GameCirculateSeason) GetDataList() []*GameCirculateSeasonData {
return table._dataList
}
func (table *GameCirculateSeason) Get(key int32) *GameCirculateSeasonData {
return table._dataMap[key]
}

View File

@ -0,0 +1,39 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type GameCirculateSeasonData struct {
Id int32
Time int32
Skilldec string
}
const TypeId_GameCirculateSeasonData = 91263541
func (*GameCirculateSeasonData) GetTypeId() int32 {
return 91263541
}
func (_v *GameCirculateSeasonData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["time"].(float64); !_ok_ { err = errors.New("time error"); return }; _v.Time = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["skilldec"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Skilldec error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Skilldec, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
return
}
func DeserializeGameCirculateSeasonData(_buf map[string]interface{}) (*GameCirculateSeasonData, error) {
v := &GameCirculateSeasonData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -203,6 +203,7 @@ type Tables struct {
CardPool *GameCardPool
Robot *GameRobot
Passon *GamePasson
CirculateSeason *GameCirculateSeason
Circulate *GameCirculate
SixDirections *GameSixDirections
SixDirectionsReward *GameSixDirectionsReward
@ -1517,6 +1518,12 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.Passon, err = NewGamePasson(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_circulateseason") ; err != nil {
return nil, err
}
if tables.CirculateSeason, err = NewGameCirculateSeason(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_circulate") ; err != nil {
return nil, err
}

View File

@ -75,6 +75,13 @@ func GetZeroTime(curTime int64) int64 {
return startTime.Unix() + 86400 //3600*24
}
func GetCurZeroTime(curTime int64) int64 {
currentTime := time.Unix(curTime, 0)
startTime := time.Date(currentTime.Year(), currentTime.Month(), currentTime.Day(), 0, 0, 0, 0, currentTime.Location())
return startTime.Unix()
}
func IsYestoday(timestamp int64) bool {
tt := time.Unix(timestamp, 0)
yesTime := configure.Now().AddDate(0, 0, -1)