diff --git a/bin/json/game_caravanreward.json b/bin/json/game_caravanreward.json index dc87432e0..5df853507 100644 --- a/bin/json/game_caravanreward.json +++ b/bin/json/game_caravanreward.json @@ -1,8 +1,7 @@ [ { - "key": 1, - "moneystart": -1, - "moneyend": 10000, + "id": 1, + "key": 1000, "reward": [ { "a": "attr", @@ -12,9 +11,8 @@ ] }, { - "key": 2, - "moneystart": 10000, - "moneyend": 20000, + "id": 2, + "key": 2000, "reward": [ { "a": "attr", @@ -24,9 +22,8 @@ ] }, { - "key": 3, - "moneystart": 20000, - "moneyend": 30000, + "id": 3, + "key": 3000, "reward": [ { "a": "attr", @@ -36,9 +33,8 @@ ] }, { - "key": 4, - "moneystart": 30000, - "moneyend": 50000, + "id": 4, + "key": 4000, "reward": [ { "a": "attr", @@ -48,9 +44,8 @@ ] }, { - "key": 5, - "moneystart": 50000, - "moneyend": -1, + "id": 5, + "key": 5000, "reward": [ { "a": "attr", @@ -58,5 +53,16 @@ "n": 9999 } ] + }, + { + "id": 6, + "key": 0, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 10 + } + ] } ] \ No newline at end of file diff --git a/bin/json/game_circulate.json b/bin/json/game_circulate.json index 92548819b..22b82d5b3 100644 --- a/bin/json/game_circulate.json +++ b/bin/json/game_circulate.json @@ -4,6 +4,10 @@ "name": 2, "restriction": 1, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_51", + "text": "真诚阵营之塔" + }, "openingtime": [ 1, 5, @@ -50,6 +54,10 @@ "name": 2, "restriction": 1, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_52", + "text": "真诚阵营之塔" + }, "openingtime": [ 1, 5, @@ -101,6 +109,10 @@ "name": 2, "restriction": 1, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_53", + "text": "真诚阵营之塔" + }, "openingtime": [ 1, 5, @@ -147,6 +159,10 @@ "name": 2, "restriction": 1, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_54", + "text": "真诚阵营之塔" + }, "openingtime": [ 1, 5, @@ -198,6 +214,10 @@ "name": 2, "restriction": 1, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_55", + "text": "真诚阵营之塔" + }, "openingtime": [ 1, 5, @@ -244,6 +264,10 @@ "name": 2, "restriction": 1, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_56", + "text": "真诚阵营之塔" + }, "openingtime": [ 1, 5, @@ -295,6 +319,10 @@ "name": 2, "restriction": 1, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_57", + "text": "真诚阵营之塔" + }, "openingtime": [ 1, 5, @@ -341,6 +369,10 @@ "name": 2, "restriction": 1, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_58", + "text": "真诚阵营之塔" + }, "openingtime": [ 1, 5, @@ -392,6 +424,10 @@ "name": 2, "restriction": 1, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_59", + "text": "真诚阵营之塔" + }, "openingtime": [ 1, 5, @@ -438,6 +474,10 @@ "name": 2, "restriction": 1, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_60", + "text": "真诚阵营之塔" + }, "openingtime": [ 1, 5, @@ -489,6 +529,10 @@ "name": 2, "restriction": 1, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_61", + "text": "真诚阵营之塔" + }, "openingtime": [ 1, 5, @@ -535,6 +579,10 @@ "name": 2, "restriction": 1, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_62", + "text": "真诚阵营之塔" + }, "openingtime": [ 1, 5, @@ -586,6 +634,10 @@ "name": 2, "restriction": 1, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_63", + "text": "真诚阵营之塔" + }, "openingtime": [ 1, 5, @@ -632,6 +684,10 @@ "name": 2, "restriction": 1, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_64", + "text": "真诚阵营之塔" + }, "openingtime": [ 1, 5, @@ -683,6 +739,10 @@ "name": 2, "restriction": 1, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_65", + "text": "真诚阵营之塔" + }, "openingtime": [ 1, 5, @@ -729,6 +789,10 @@ "name": 2, "restriction": 1, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_66", + "text": "真诚阵营之塔" + }, "openingtime": [ 1, 5, @@ -780,6 +844,10 @@ "name": 2, "restriction": 1, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_67", + "text": "真诚阵营之塔" + }, "openingtime": [ 1, 5, @@ -826,6 +894,10 @@ "name": 2, "restriction": 1, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_68", + "text": "真诚阵营之塔" + }, "openingtime": [ 1, 5, @@ -877,6 +949,10 @@ "name": 2, "restriction": 1, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_69", + "text": "真诚阵营之塔" + }, "openingtime": [ 1, 5, @@ -923,6 +999,10 @@ "name": 2, "restriction": 1, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_70", + "text": "真诚阵营之塔" + }, "openingtime": [ 1, 5, @@ -974,6 +1054,10 @@ "name": 2, "restriction": 2, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_71", + "text": "共情阵营之塔" + }, "openingtime": [ 2, 5, @@ -1020,6 +1104,10 @@ "name": 2, "restriction": 2, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_72", + "text": "共情阵营之塔" + }, "openingtime": [ 2, 5, @@ -1071,6 +1159,10 @@ "name": 2, "restriction": 2, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_73", + "text": "共情阵营之塔" + }, "openingtime": [ 2, 5, @@ -1117,6 +1209,10 @@ "name": 2, "restriction": 2, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_74", + "text": "共情阵营之塔" + }, "openingtime": [ 2, 5, @@ -1168,6 +1264,10 @@ "name": 2, "restriction": 2, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_75", + "text": "共情阵营之塔" + }, "openingtime": [ 2, 5, @@ -1214,6 +1314,10 @@ "name": 2, "restriction": 2, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_76", + "text": "共情阵营之塔" + }, "openingtime": [ 2, 5, @@ -1265,6 +1369,10 @@ "name": 2, "restriction": 2, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_77", + "text": "共情阵营之塔" + }, "openingtime": [ 2, 5, @@ -1311,6 +1419,10 @@ "name": 2, "restriction": 2, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_78", + "text": "共情阵营之塔" + }, "openingtime": [ 2, 5, @@ -1362,6 +1474,10 @@ "name": 2, "restriction": 2, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_79", + "text": "共情阵营之塔" + }, "openingtime": [ 2, 5, @@ -1408,6 +1524,10 @@ "name": 2, "restriction": 2, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_80", + "text": "共情阵营之塔" + }, "openingtime": [ 2, 5, @@ -1459,6 +1579,10 @@ "name": 2, "restriction": 2, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_81", + "text": "共情阵营之塔" + }, "openingtime": [ 2, 5, @@ -1505,6 +1629,10 @@ "name": 2, "restriction": 2, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_82", + "text": "共情阵营之塔" + }, "openingtime": [ 2, 5, @@ -1556,6 +1684,10 @@ "name": 2, "restriction": 2, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_83", + "text": "共情阵营之塔" + }, "openingtime": [ 2, 5, @@ -1602,6 +1734,10 @@ "name": 2, "restriction": 2, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_84", + "text": "共情阵营之塔" + }, "openingtime": [ 2, 5, @@ -1653,6 +1789,10 @@ "name": 2, "restriction": 2, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_85", + "text": "共情阵营之塔" + }, "openingtime": [ 2, 5, @@ -1699,6 +1839,10 @@ "name": 2, "restriction": 2, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_86", + "text": "共情阵营之塔" + }, "openingtime": [ 2, 5, @@ -1750,6 +1894,10 @@ "name": 2, "restriction": 2, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_87", + "text": "共情阵营之塔" + }, "openingtime": [ 2, 5, @@ -1796,6 +1944,10 @@ "name": 2, "restriction": 2, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_88", + "text": "共情阵营之塔" + }, "openingtime": [ 2, 5, @@ -1847,6 +1999,10 @@ "name": 2, "restriction": 2, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_89", + "text": "共情阵营之塔" + }, "openingtime": [ 2, 5, @@ -1893,6 +2049,10 @@ "name": 2, "restriction": 2, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_90", + "text": "共情阵营之塔" + }, "openingtime": [ 2, 5, @@ -1944,6 +2104,10 @@ "name": 2, "restriction": 3, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_91", + "text": "直觉阵营之塔" + }, "openingtime": [ 3, 6, @@ -1990,6 +2154,10 @@ "name": 2, "restriction": 3, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_92", + "text": "直觉阵营之塔" + }, "openingtime": [ 3, 6, @@ -2041,6 +2209,10 @@ "name": 2, "restriction": 3, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_93", + "text": "直觉阵营之塔" + }, "openingtime": [ 3, 6, @@ -2087,6 +2259,10 @@ "name": 2, "restriction": 3, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_94", + "text": "直觉阵营之塔" + }, "openingtime": [ 3, 6, @@ -2138,6 +2314,10 @@ "name": 2, "restriction": 3, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_95", + "text": "直觉阵营之塔" + }, "openingtime": [ 3, 6, @@ -2184,6 +2364,10 @@ "name": 2, "restriction": 3, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_96", + "text": "直觉阵营之塔" + }, "openingtime": [ 3, 6, @@ -2235,6 +2419,10 @@ "name": 2, "restriction": 3, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_97", + "text": "直觉阵营之塔" + }, "openingtime": [ 3, 6, @@ -2281,6 +2469,10 @@ "name": 2, "restriction": 3, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_98", + "text": "直觉阵营之塔" + }, "openingtime": [ 3, 6, @@ -2332,6 +2524,10 @@ "name": 2, "restriction": 3, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_99", + "text": "直觉阵营之塔" + }, "openingtime": [ 3, 6, @@ -2378,6 +2574,10 @@ "name": 2, "restriction": 3, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_100", + "text": "直觉阵营之塔" + }, "openingtime": [ 3, 6, @@ -2429,6 +2629,10 @@ "name": 2, "restriction": 3, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_101", + "text": "直觉阵营之塔" + }, "openingtime": [ 3, 6, @@ -2475,6 +2679,10 @@ "name": 2, "restriction": 3, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_102", + "text": "直觉阵营之塔" + }, "openingtime": [ 3, 6, @@ -2526,6 +2734,10 @@ "name": 2, "restriction": 3, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_103", + "text": "直觉阵营之塔" + }, "openingtime": [ 3, 6, @@ -2572,6 +2784,10 @@ "name": 2, "restriction": 3, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_104", + "text": "直觉阵营之塔" + }, "openingtime": [ 3, 6, @@ -2623,6 +2839,10 @@ "name": 2, "restriction": 3, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_105", + "text": "直觉阵营之塔" + }, "openingtime": [ 3, 6, @@ -2669,6 +2889,10 @@ "name": 2, "restriction": 3, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_106", + "text": "直觉阵营之塔" + }, "openingtime": [ 3, 6, @@ -2720,6 +2944,10 @@ "name": 2, "restriction": 3, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_107", + "text": "直觉阵营之塔" + }, "openingtime": [ 3, 6, @@ -2766,6 +2994,10 @@ "name": 2, "restriction": 3, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_108", + "text": "直觉阵营之塔" + }, "openingtime": [ 3, 6, @@ -2817,6 +3049,10 @@ "name": 2, "restriction": 3, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_109", + "text": "直觉阵营之塔" + }, "openingtime": [ 3, 6, @@ -2863,6 +3099,10 @@ "name": 2, "restriction": 3, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_110", + "text": "直觉阵营之塔" + }, "openingtime": [ 3, 6, @@ -2914,6 +3154,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_1", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -2956,6 +3200,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_2", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3003,6 +3251,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_3", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3045,6 +3297,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_4", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3092,6 +3348,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_5", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3134,6 +3394,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_6", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3181,6 +3445,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_7", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3223,6 +3491,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_8", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3270,6 +3542,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_9", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3312,6 +3588,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_10", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3359,6 +3639,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_11", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3401,6 +3685,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_12", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3448,6 +3736,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_13", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3490,6 +3782,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_14", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3537,6 +3833,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_15", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3579,6 +3879,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_16", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3626,6 +3930,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_17", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3668,6 +3976,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_18", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3715,6 +4027,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_19", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3757,6 +4073,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_20", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3804,6 +4124,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_21", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3846,6 +4170,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_22", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3893,6 +4221,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_23", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3935,6 +4267,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_24", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -3982,6 +4318,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_25", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4024,6 +4364,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_26", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4071,6 +4415,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_27", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4113,6 +4461,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_28", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4160,6 +4512,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_29", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4202,6 +4558,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_30", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4249,6 +4609,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_31", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4291,6 +4655,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_32", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4338,6 +4706,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_33", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4380,6 +4752,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_34", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4427,6 +4803,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_35", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4469,6 +4849,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_36", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4516,6 +4900,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_37", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4558,6 +4946,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_38", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4605,6 +4997,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_39", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4647,6 +5043,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_40", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4694,6 +5094,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_41", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4736,6 +5140,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_42", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4783,6 +5191,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_43", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4825,6 +5237,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_44", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4872,6 +5288,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_45", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4914,6 +5334,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_46", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -4961,6 +5385,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_47", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5003,6 +5431,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_48", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5050,6 +5482,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_49", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5092,6 +5528,10 @@ "name": 1, "restriction": 10, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_50", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5139,6 +5579,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_1", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5181,6 +5625,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_2", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5228,6 +5676,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_3", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5270,6 +5722,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_4", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5317,6 +5773,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_5", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5359,6 +5819,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_6", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5406,6 +5870,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_7", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5448,6 +5916,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_8", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5495,6 +5967,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_9", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5537,6 +6013,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_10", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5584,6 +6064,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_11", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5626,6 +6110,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_12", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5673,6 +6161,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_13", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5715,6 +6207,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_14", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5762,6 +6258,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_15", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5804,6 +6304,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_16", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5851,6 +6355,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_17", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5893,6 +6401,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_18", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5940,6 +6452,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_19", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -5982,6 +6498,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_20", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6029,6 +6549,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_21", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6071,6 +6595,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_22", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6118,6 +6646,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_23", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6160,6 +6692,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_24", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6207,6 +6743,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_25", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6249,6 +6789,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_26", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6296,6 +6840,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_27", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6338,6 +6886,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_28", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6385,6 +6937,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_29", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6427,6 +6983,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_30", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6474,6 +7034,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_31", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6516,6 +7080,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_32", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6563,6 +7131,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_33", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6605,6 +7177,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_34", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6652,6 +7228,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_35", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6694,6 +7274,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_36", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6741,6 +7325,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_37", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6783,6 +7371,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_38", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6830,6 +7422,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_39", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6872,6 +7468,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_40", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6919,6 +7519,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_41", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -6961,6 +7565,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_42", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -7008,6 +7616,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_43", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -7050,6 +7662,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_44", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -7097,6 +7713,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_45", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -7139,6 +7759,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_46", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -7186,6 +7810,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_47", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -7228,6 +7856,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_48", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -7275,6 +7907,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_49", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, @@ -7317,6 +7953,10 @@ "name": 1, "restriction": 11, "battlereadyID": 129, + "openDesc": { + "key": "circularcamptower_Sheet1_tabTitle_50", + "text": "循环之塔" + }, "openingtime": [], "time": 30, "unlock": 1, diff --git a/bin/json/game_passcheck.json b/bin/json/game_passcheck.json index 2f1a828bd..4a7f9f6ac 100644 --- a/bin/json/game_passcheck.json +++ b/bin/json/game_passcheck.json @@ -4,8 +4,8 @@ "passcheck_type": 1, "parameter": 5, "unlock_text": { - "key": "passcheck_passcheck_unlock_text_1", - "text": "等级{0}" + "key": "passcheck_passcheck_unlock_text_10001", + "text": "{0}层" }, "free_reward": { "a": "attr", @@ -24,8 +24,8 @@ "passcheck_type": 1, "parameter": 10, "unlock_text": { - "key": "passcheck_passcheck_unlock_text_2", - "text": "等级{0}" + "key": "passcheck_passcheck_unlock_text_10002", + "text": "{0}层" }, "free_reward": { "a": "attr", @@ -44,8 +44,8 @@ "passcheck_type": 1, "parameter": 15, "unlock_text": { - "key": "passcheck_passcheck_unlock_text_3", - "text": "等级{0}" + "key": "passcheck_passcheck_unlock_text_10003", + "text": "{0}层" }, "free_reward": { "a": "attr", @@ -64,8 +64,8 @@ "passcheck_type": 1, "parameter": 20, "unlock_text": { - "key": "passcheck_passcheck_unlock_text_4", - "text": "等级{0}" + "key": "passcheck_passcheck_unlock_text_10004", + "text": "{0}层" }, "free_reward": { "a": "attr", @@ -84,8 +84,8 @@ "passcheck_type": 1, "parameter": 25, "unlock_text": { - "key": "passcheck_passcheck_unlock_text_5", - "text": "等级{0}" + "key": "passcheck_passcheck_unlock_text_10005", + "text": "{0}层" }, "free_reward": { "a": "attr", @@ -104,8 +104,8 @@ "passcheck_type": 1, "parameter": 30, "unlock_text": { - "key": "passcheck_passcheck_unlock_text_6", - "text": "等级{0}" + "key": "passcheck_passcheck_unlock_text_10006", + "text": "{0}层" }, "free_reward": { "a": "attr", @@ -124,8 +124,8 @@ "passcheck_type": 1, "parameter": 35, "unlock_text": { - "key": "passcheck_passcheck_unlock_text_7", - "text": "等级{0}" + "key": "passcheck_passcheck_unlock_text_10007", + "text": "{0}层" }, "free_reward": { "a": "attr", @@ -144,8 +144,8 @@ "passcheck_type": 1, "parameter": 40, "unlock_text": { - "key": "passcheck_passcheck_unlock_text_8", - "text": "等级{0}" + "key": "passcheck_passcheck_unlock_text_10008", + "text": "{0}层" }, "free_reward": { "a": "attr", @@ -164,8 +164,8 @@ "passcheck_type": 1, "parameter": 45, "unlock_text": { - "key": "passcheck_passcheck_unlock_text_9", - "text": "等级{0}" + "key": "passcheck_passcheck_unlock_text_10009", + "text": "{0}层" }, "free_reward": { "a": "attr", @@ -184,8 +184,8 @@ "passcheck_type": 1, "parameter": 50, "unlock_text": { - "key": "passcheck_passcheck_unlock_text_10", - "text": "等级{0}" + "key": "passcheck_passcheck_unlock_text_10010", + "text": "{0}层" }, "free_reward": { "a": "attr", @@ -198,5 +198,305 @@ "n": 300 }, "pay_id": "passcheck_1" + }, + { + "id": 20001, + "passcheck_type": 2, + "parameter": 1, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_20001", + "text": "登录{0}天" + }, + "free_reward": { + "a": "item", + "t": "10000001", + "n": 1 + }, + "pay_reward": { + "a": "item", + "t": "10000001", + "n": 5 + }, + "pay_id": "passcheck_2" + }, + { + "id": 20002, + "passcheck_type": 2, + "parameter": 2, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_20002", + "text": "登录{0}天" + }, + "free_reward": { + "a": "item", + "t": "10000001", + "n": 1 + }, + "pay_reward": { + "a": "item", + "t": "10000001", + "n": 5 + }, + "pay_id": "passcheck_2" + }, + { + "id": 20003, + "passcheck_type": 2, + "parameter": 3, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_20003", + "text": "登录{0}天" + }, + "free_reward": { + "a": "item", + "t": "10000001", + "n": 1 + }, + "pay_reward": { + "a": "item", + "t": "10000001", + "n": 5 + }, + "pay_id": "passcheck_2" + }, + { + "id": 20004, + "passcheck_type": 2, + "parameter": 4, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_20004", + "text": "登录{0}天" + }, + "free_reward": { + "a": "item", + "t": "10000001", + "n": 1 + }, + "pay_reward": { + "a": "item", + "t": "10000001", + "n": 5 + }, + "pay_id": "passcheck_2" + }, + { + "id": 20005, + "passcheck_type": 2, + "parameter": 5, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_20005", + "text": "登录{0}天" + }, + "free_reward": { + "a": "item", + "t": "10000001", + "n": 1 + }, + "pay_reward": { + "a": "item", + "t": "10000001", + "n": 5 + }, + "pay_id": "passcheck_2" + }, + { + "id": 20006, + "passcheck_type": 2, + "parameter": 6, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_20006", + "text": "登录{0}天" + }, + "free_reward": { + "a": "item", + "t": "10000001", + "n": 1 + }, + "pay_reward": { + "a": "item", + "t": "10000001", + "n": 5 + }, + "pay_id": "passcheck_2" + }, + { + "id": 20007, + "passcheck_type": 2, + "parameter": 7, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_20007", + "text": "登录{0}天" + }, + "free_reward": { + "a": "item", + "t": "10000001", + "n": 1 + }, + "pay_reward": { + "a": "item", + "t": "10000001", + "n": 5 + }, + "pay_id": "passcheck_2" + }, + { + "id": 20008, + "passcheck_type": 2, + "parameter": 8, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_20008", + "text": "登录{0}天" + }, + "free_reward": { + "a": "item", + "t": "10000001", + "n": 1 + }, + "pay_reward": { + "a": "item", + "t": "10000001", + "n": 5 + }, + "pay_id": "passcheck_2" + }, + { + "id": 20009, + "passcheck_type": 2, + "parameter": 9, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_20009", + "text": "登录{0}天" + }, + "free_reward": { + "a": "item", + "t": "10000001", + "n": 1 + }, + "pay_reward": { + "a": "item", + "t": "10000001", + "n": 5 + }, + "pay_id": "passcheck_2" + }, + { + "id": 20010, + "passcheck_type": 2, + "parameter": 10, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_20010", + "text": "登录{0}天" + }, + "free_reward": { + "a": "item", + "t": "10000001", + "n": 1 + }, + "pay_reward": { + "a": "item", + "t": "10000001", + "n": 5 + }, + "pay_id": "passcheck_2" + }, + { + "id": 20011, + "passcheck_type": 2, + "parameter": 11, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_20011", + "text": "登录{0}天" + }, + "free_reward": { + "a": "item", + "t": "10000001", + "n": 1 + }, + "pay_reward": { + "a": "item", + "t": "10000001", + "n": 5 + }, + "pay_id": "passcheck_2" + }, + { + "id": 20012, + "passcheck_type": 2, + "parameter": 12, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_20012", + "text": "登录{0}天" + }, + "free_reward": { + "a": "item", + "t": "10000001", + "n": 1 + }, + "pay_reward": { + "a": "item", + "t": "10000001", + "n": 5 + }, + "pay_id": "passcheck_2" + }, + { + "id": 20013, + "passcheck_type": 2, + "parameter": 13, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_20013", + "text": "登录{0}天" + }, + "free_reward": { + "a": "item", + "t": "10000001", + "n": 1 + }, + "pay_reward": { + "a": "item", + "t": "10000001", + "n": 5 + }, + "pay_id": "passcheck_2" + }, + { + "id": 20014, + "passcheck_type": 2, + "parameter": 14, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_20014", + "text": "登录{0}天" + }, + "free_reward": { + "a": "item", + "t": "10000001", + "n": 1 + }, + "pay_reward": { + "a": "item", + "t": "10000001", + "n": 5 + }, + "pay_id": "passcheck_2" + }, + { + "id": 20015, + "passcheck_type": 2, + "parameter": 15, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_20015", + "text": "登录{0}天" + }, + "free_reward": { + "a": "item", + "t": "10000001", + "n": 10 + }, + "pay_reward": { + "a": "item", + "t": "10000001", + "n": 10 + }, + "pay_id": "passcheck_2" } ] \ No newline at end of file diff --git a/bin/json/game_paypackage.json b/bin/json/game_paypackage.json index a18174716..a3005cb15 100644 --- a/bin/json/game_paypackage.json +++ b/bin/json/game_paypackage.json @@ -1,6 +1,8 @@ [ { "id": 1, + "type": 1, + "repeat_num": 0, "refreshtime": 1, "pagename": { "key": "paypackage_paypackage_pagename_1", @@ -39,6 +41,8 @@ }, { "id": 2, + "type": 1, + "repeat_num": 0, "refreshtime": 1, "pagename": { "key": "paypackage_paypackage_pagename_2", @@ -71,6 +75,8 @@ }, { "id": 3, + "type": 1, + "repeat_num": 0, "refreshtime": 1, "pagename": { "key": "paypackage_paypackage_pagename_3", @@ -103,6 +109,8 @@ }, { "id": 4, + "type": 1, + "repeat_num": 0, "refreshtime": 1, "pagename": { "key": "paypackage_paypackage_pagename_4", @@ -135,6 +143,8 @@ }, { "id": 5, + "type": 1, + "repeat_num": 0, "refreshtime": 1, "pagename": { "key": "paypackage_paypackage_pagename_5", @@ -167,6 +177,8 @@ }, { "id": 6, + "type": 1, + "repeat_num": 0, "refreshtime": 7, "pagename": { "key": "paypackage_paypackage_pagename_6", @@ -194,6 +206,8 @@ }, { "id": 7, + "type": 1, + "repeat_num": 0, "refreshtime": 7, "pagename": { "key": "paypackage_paypackage_pagename_7", @@ -226,6 +240,8 @@ }, { "id": 8, + "type": 1, + "repeat_num": 0, "refreshtime": 7, "pagename": { "key": "paypackage_paypackage_pagename_8", @@ -253,6 +269,8 @@ }, { "id": 9, + "type": 1, + "repeat_num": 0, "refreshtime": 7, "pagename": { "key": "paypackage_paypackage_pagename_9", @@ -285,6 +303,8 @@ }, { "id": 10, + "type": 1, + "repeat_num": 0, "refreshtime": 7, "pagename": { "key": "paypackage_paypackage_pagename_10", @@ -312,6 +332,8 @@ }, { "id": 11, + "type": 1, + "repeat_num": 0, "refreshtime": 7, "pagename": { "key": "paypackage_paypackage_pagename_11", @@ -339,6 +361,8 @@ }, { "id": 12, + "type": 1, + "repeat_num": 0, "refreshtime": 7, "pagename": { "key": "paypackage_paypackage_pagename_12", @@ -371,6 +395,8 @@ }, { "id": 13, + "type": 1, + "repeat_num": 0, "refreshtime": 30, "pagename": { "key": "paypackage_paypackage_pagename_13", @@ -398,6 +424,8 @@ }, { "id": 14, + "type": 1, + "repeat_num": 0, "refreshtime": 30, "pagename": { "key": "paypackage_paypackage_pagename_14", @@ -425,6 +453,8 @@ }, { "id": 15, + "type": 1, + "repeat_num": 0, "refreshtime": 30, "pagename": { "key": "paypackage_paypackage_pagename_15", @@ -452,6 +482,8 @@ }, { "id": 16, + "type": 1, + "repeat_num": 0, "refreshtime": 30, "pagename": { "key": "paypackage_paypackage_pagename_16", @@ -476,5 +508,89 @@ "n": 20 } ] + }, + { + "id": 20001, + "type": 2, + "repeat_num": 5, + "refreshtime": 1, + "pagename": { + "key": "", + "text": "" + }, + "packagetype": "", + "buy_num": 1, + "packagename": { + "key": "paypackage_paypackage_packagename_20001", + "text": "每日好礼" + }, + "costitem": [ + { + "a": "attr", + "t": "diamond", + "n": 88 + } + ], + "item": [ + { + "a": "item", + "t": "10000001", + "n": 1 + } + ] + }, + { + "id": 20002, + "type": 2, + "repeat_num": 2, + "refreshtime": 30, + "pagename": { + "key": "", + "text": "" + }, + "packagetype": "", + "buy_num": 2, + "packagename": { + "key": "paypackage_paypackage_packagename_20002", + "text": "兑换礼包" + }, + "costitem": [ + { + "a": "attr", + "t": "diamond", + "n": 1888 + } + ], + "item": [ + { + "a": "item", + "t": "10000001", + "n": 10 + } + ] + }, + { + "id": 20003, + "type": 2, + "repeat_num": 3, + "refreshtime": 30, + "pagename": { + "key": "", + "text": "" + }, + "packagetype": "drawcard_pack1", + "buy_num": 3, + "packagename": { + "key": "paypackage_paypackage_packagename_20003", + "text": "招募礼包1" + }, + "costitem": [], + "item": [ + { + "a": "item", + "t": "10000001", + "n": 10 + } + ] } ] \ No newline at end of file diff --git a/comm/const.go b/comm/const.go index a3ba0aa1d..2eb274ec5 100644 --- a/comm/const.go +++ b/comm/const.go @@ -280,6 +280,9 @@ const ( TablePasson = "passon" // 阵营塔 循环塔 TableRacePagoda = "racepagoda" + + //战令 + TableWarorder = "warorder" ) // RPC服务接口定义处 diff --git a/comm/imodule.go b/comm/imodule.go index cf43f7b96..7841a2350 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -544,4 +544,8 @@ type ( AcceptCaravanTask(session IUserSession, groupId int32) (tid, groud int32, errdata *pb.ErrorData) ClearCaravanTask(session IUserSession, task int32) } + //战令 + IWarorder interface { + Delivery(session IUserSession, pid string) (errdata *pb.ErrorData, items []*pb.UserAssets) + } ) diff --git a/modules/pay/module.go b/modules/pay/module.go index c0898831a..afd580e67 100644 --- a/modules/pay/module.go +++ b/modules/pay/module.go @@ -32,7 +32,7 @@ type Pay struct { modelPayUser *modelPayUserComp modelDaily *modelDailyComp privilege comm.IPayDelivery //月卡 - warorder comm.IWarorder //月卡 + warorder comm.IWarorder //战令 configure *configureComp } @@ -54,6 +54,10 @@ func (this *Pay) Start() (err error) { return } this.privilege = module.(comm.IPayDelivery) + if module, err = this.service.GetModule(comm.ModuleWarorder); err != nil { + return + } + this.warorder = module.(comm.IWarorder) this.service.RegisterFunctionName(string(comm.Rpc_ModulePayDelivery), this.Rpc_ModulePayDelivery) return } @@ -138,7 +142,7 @@ func (this *Pay) Rpc_ModulePayDelivery(ctx context.Context, args *pb.PayDelivery } break case 4: - if errdata, items = this.privilege.Delivery(session, args.Productid); errdata != nil { + if errdata, items = this.warorder.Delivery(session, args.Productid); errdata != nil { reply.Code = errdata.Code return } @@ -229,6 +233,11 @@ func (this *Pay) ModulePayDelivery(session comm.IUserSession, Productid string, return } break + case 4: + if errdata, items = this.warorder.Delivery(session, Productid); errdata != nil { + return + } + break } for _, v := range res { items = append(items, &pb.UserAssets{A: v.A, T: v.T, N: v.N}) diff --git a/modules/warorder/api_info.go b/modules/warorder/api_info.go new file mode 100644 index 000000000..9f366f890 --- /dev/null +++ b/modules/warorder/api_info.go @@ -0,0 +1,45 @@ +package warorder + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" +) + +// 参数校验 +func (this *apiComp) InfoCheck(session comm.IUserSession, req *pb.WarorderInfoReq) (errdata *pb.ErrorData) { + + return +} + +// /获取系统公告 +func (this *apiComp) Info(session comm.IUserSession, req *pb.WarorderInfoReq) (errdata *pb.ErrorData) { + var ( + warorders *pb.DBWarorders + info *pb.Warorder + err error + ok bool + ) + if errdata = this.InfoCheck(session, req); errdata != nil { + return + } + if warorders, err = this.module.modelWarorder.getUserWarorders(session.GetUserId()); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), + } + return + } + + if info, ok = warorders.Items[req.Rtype]; !ok { + info = &pb.Warorder{ + Vip: false, + Free: make([]int32, 0), + Pay: make([]int32, 0), + Progress: 0, + } + warorders.Items[req.Rtype] = info + } + session.SendMsg(string(this.module.GetType()), "info", &pb.WarorderInfoResp{Info: info}) + return +} diff --git a/modules/warorder/api_receive.go b/modules/warorder/api_receive.go new file mode 100644 index 000000000..fb2f74f93 --- /dev/null +++ b/modules/warorder/api_receive.go @@ -0,0 +1,45 @@ +package warorder + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" +) + +// 参数校验 +func (this *apiComp) ReceiveCheck(session comm.IUserSession, req *pb.WarorderReceiveReq) (errdata *pb.ErrorData) { + + return +} + +// /获取系统公告 +func (this *apiComp) Receive(session comm.IUserSession, req *pb.WarorderReceiveReq) (errdata *pb.ErrorData) { + var ( + warorders *pb.DBWarorders + info *pb.Warorder + err error + ok bool + ) + if errdata = this.ReceiveCheck(session, req); errdata != nil { + return + } + if warorders, err = this.module.modelWarorder.getUserWarorders(session.GetUserId()); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), + } + return + } + + if info, ok = warorders.Items[req.Rtype]; !ok { + info = &pb.Warorder{ + Vip: false, + Free: make([]int32, 0), + Pay: make([]int32, 0), + Progress: 0, + } + warorders.Items[req.Rtype] = info + } + session.SendMsg(string(this.module.GetType()), "receive", &pb.WarorderReceiveResp{Info: info}) + return +} diff --git a/modules/warorder/configure.go b/modules/warorder/configure.go index de03bddde..659c2a78e 100644 --- a/modules/warorder/configure.go +++ b/modules/warorder/configure.go @@ -1,22 +1,65 @@ package warorder import ( + "fmt" "go_dreamfactory/lego/core" "go_dreamfactory/modules" + "go_dreamfactory/sys/configure" + cfg "go_dreamfactory/sys/configure/structs" "sync" ) -const () +const ( + game_passcheck = "game_passcheck.json" +) type configureComp struct { modules.MCompConfigure module *Warorder lock sync.RWMutex + order map[int32][]*cfg.GamePassCheckData //战令 } func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { err = this.MCompConfigure.Init(service, module, comp, options) this.module = module.(*Warorder) - + configure.RegisterConfigure(game_passcheck, cfg.NewGamePassCheck, this.updateconfigure) return } + +// 读取任务配置表 +func (this *configureComp) getPassCheckCfg() (data *cfg.GamePassCheck, err error) { + var ( + v interface{} + ok bool + ) + if v, err = this.GetConfigure(game_passcheck); err != nil { + return + } else { + if data, ok = v.(*cfg.GamePassCheck); !ok { + err = fmt.Errorf("%T is *cfg.GameWorldTask", v) + return + } + } + return +} + +// 更新任务配置表 +func (this *configureComp) updateconfigure() { + gwt, err := this.getPassCheckCfg() + if err != nil { + this.module.Error("世界任务配置表异常!") + return + } + orderConf := make(map[int32][]*cfg.GamePassCheckData) + for _, v := range gwt.GetDataList() { + if _, ok := orderConf[v.PasscheckType]; !ok { + orderConf[v.PasscheckType] = make([]*cfg.GamePassCheckData, 0) + } + orderConf[v.PasscheckType] = append(orderConf[v.PasscheckType], v) + } + + this.lock.Lock() + this.order = orderConf + this.lock.Unlock() +} diff --git a/modules/warorder/modelWarorder.go b/modules/warorder/modelWarorder.go index 10bd3c745..994d1194c 100644 --- a/modules/warorder/modelWarorder.go +++ b/modules/warorder/modelWarorder.go @@ -20,7 +20,7 @@ type modelWarorder struct { func (this *modelWarorder) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { err = this.MCompModel.Init(service, module, comp, options) - this.TableName = comm.TableWtask + this.TableName = comm.TableWarorder this.module = module.(*Warorder) this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{ Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}}, @@ -29,35 +29,27 @@ func (this *modelWarorder) Init(service core.IService, module core.IModule, comp } // 获取用户全部的埋点数据 -func (this *modelWarorder) getUserWTasks(uid string) (results *pb.DBWTask, err error) { - results = &pb.DBWTask{} +func (this *modelWarorder) getUserWarorders(uid string) (results *pb.DBWarorders, err error) { + results = &pb.DBWarorders{} if err = this.Get(uid, results); err != nil && err != mgo.MongodbNil { this.module.Errorln(err) return } if err == mgo.MongodbNil { err = nil - results = &pb.DBWTask{ - Id: primitive.NewObjectID().Hex(), - Uid: uid, - Currchapter: 0, - Activations: make([]int32, 0), - Accepts: make([]int32, 0), - Completes: make([]int32, 0), - Groups: make(map[int32]int32), + results = &pb.DBWarorders{ + Id: primitive.NewObjectID().Hex(), + Uid: uid, + Items: make(map[int32]*pb.Warorder), } err = this.Add(uid, results) } return } -func (this *modelWarorder) updateUserWTasks(uid string, data *pb.DBWTask) (err error) { +func (this *modelWarorder) updateUserWarorders(uid string, data *pb.DBWarorders) (err error) { if err = this.Change(uid, map[string]interface{}{ - "currchapter": data.Currchapter, - "activations": data.Activations, - "accepts": data.Accepts, - "completes": data.Completes, - "groups": data.Groups, + "items": data.Items, }); err != nil { this.module.Error("更新用户任务数据 错误!", log.Field{Key: "err", Value: err.Error()}) return diff --git a/modules/warorder/module.go b/modules/warorder/module.go index f6c2ac65e..a94a264e6 100644 --- a/modules/warorder/module.go +++ b/modules/warorder/module.go @@ -4,6 +4,7 @@ import ( "go_dreamfactory/comm" "go_dreamfactory/lego/core" "go_dreamfactory/modules" + "go_dreamfactory/pb" ) const modulename = "战令" @@ -42,3 +43,9 @@ func (this *Warorder) OnInstallComp() { this.modelWarorder = this.RegisterComp(new(modelWarorder)).(*modelWarorder) this.configure = this.RegisterComp(new(configureComp)).(*configureComp) } + +// 发货 +func (this *Warorder) Delivery(session comm.IUserSession, pid string) (errdata *pb.ErrorData, items []*pb.UserAssets) { + + return +} diff --git a/pb/caravan_msg.pb.go b/pb/caravan_msg.pb.go index 616ff217e..938f5299f 100644 --- a/pb/caravan_msg.pb.go +++ b/pb/caravan_msg.pb.go @@ -720,95 +720,93 @@ var file_caravan_caravan_msg_proto_rawDesc = []byte{ 0x0a, 0x19, 0x63, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x63, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x5f, 0x64, 0x62, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, - 0x2f, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, - 0x13, 0x0a, 0x11, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x22, 0x56, 0x0a, 0x12, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x47, - 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x43, 0x61, 0x72, - 0x61, 0x76, 0x61, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x61, - 0x73, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x22, 0xb0, 0x01, 0x0a, - 0x13, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, - 0x6c, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x35, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, - 0x6e, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x2e, 0x49, 0x74, - 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x69, 0x73, 0x42, 0x75, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, - 0x69, 0x73, 0x42, 0x75, 0x79, 0x1a, 0x38, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0x36, 0x0a, 0x14, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, - 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, - 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x40, 0x0a, 0x12, 0x43, 0x61, 0x72, 0x61, 0x76, - 0x61, 0x6e, 0x47, 0x6f, 0x74, 0x6f, 0x43, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, - 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x69, 0x74, - 0x79, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x4f, 0x0a, 0x13, 0x43, 0x61, 0x72, - 0x61, 0x76, 0x61, 0x6e, 0x47, 0x6f, 0x74, 0x6f, 0x43, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x13, 0x0a, 0x11, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x47, 0x65, 0x74, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x56, 0x0a, 0x12, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, + 0x6e, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x43, + 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, + 0x74, 0x61, 0x73, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x22, 0xb0, + 0x01, 0x0a, 0x13, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, + 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x35, 0x0a, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x43, 0x61, 0x72, 0x61, + 0x76, 0x61, 0x6e, 0x42, 0x75, 0x79, 0x4f, 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x2e, + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x42, 0x75, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x05, 0x69, 0x73, 0x42, 0x75, 0x79, 0x1a, 0x38, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0x36, 0x0a, 0x14, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x42, 0x75, 0x79, 0x4f, + 0x72, 0x53, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x43, 0x61, 0x72, 0x61, + 0x76, 0x61, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x40, 0x0a, 0x12, 0x43, 0x61, 0x72, + 0x61, 0x76, 0x61, 0x6e, 0x47, 0x6f, 0x74, 0x6f, 0x43, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x12, + 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, + 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x4f, 0x0a, 0x13, 0x43, + 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x47, 0x6f, 0x74, 0x6f, 0x43, 0x69, 0x74, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x77, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x6e, 0x65, 0x77, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x44, 0x0a, 0x12, + 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x63, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x69, 0x74, 0x79, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x69, 0x74, 0x79, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x22, 0x51, 0x0a, 0x13, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x43, 0x61, 0x72, 0x61, + 0x76, 0x61, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x62, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x7a, 0x0a, 0x17, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, + 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x77, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x6e, 0x65, 0x77, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x44, 0x0a, 0x12, 0x43, 0x61, - 0x72, 0x61, 0x76, 0x61, 0x6e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, - 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x63, - 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x69, 0x74, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x69, 0x74, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x22, 0x51, 0x0a, 0x13, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, - 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x53, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x62, 0x53, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x22, 0x7a, 0x0a, 0x17, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x54, 0x61, - 0x73, 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1e, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, - 0x42, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, - 0x0a, 0x08, 0x62, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x62, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x06, 0x72, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, - 0x14, 0x0a, 0x12, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x69, 0x0a, 0x13, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, - 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x04, - 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x43, 0x61, 0x72, - 0x61, 0x76, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, - 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x52, 0x61, - 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, - 0x22, 0x17, 0x0a, 0x15, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x52, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x43, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x22, 0xad, 0x03, 0x0a, 0x16, 0x43, 0x61, - 0x72, 0x61, 0x76, 0x61, 0x6e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x69, 0x74, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x05, 0x67, 0x6f, 0x6f, 0x64, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x52, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x43, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x47, 0x6f, 0x6f, - 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x67, 0x6f, 0x6f, 0x64, 0x73, 0x12, 0x35, - 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x43, - 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x69, 0x74, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x43, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x41, 0x0a, 0x08, 0x4f, 0x6c, 0x64, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, - 0x6e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x2e, 0x4f, 0x6c, 0x64, 0x70, 0x72, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, - 0x4f, 0x6c, 0x64, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, - 0x74, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x73, - 0x65, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0x40, 0x0a, 0x0a, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x09, 0x43, 0x69, 0x74, 0x79, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x43, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, - 0x4f, 0x6c, 0x64, 0x70, 0x72, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, - 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x62, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x06, + 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x22, 0x14, 0x0a, 0x12, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x69, 0x0a, 0x13, 0x43, 0x61, 0x72, 0x61, 0x76, + 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, + 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x43, + 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, + 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, + 0x66, 0x6f, 0x22, 0x17, 0x0a, 0x15, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x52, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x43, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x22, 0xad, 0x03, 0x0a, 0x16, + 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x69, + 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x05, 0x67, 0x6f, 0x6f, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x52, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x47, + 0x6f, 0x6f, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x67, 0x6f, 0x6f, 0x64, 0x73, + 0x12, 0x35, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x43, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, + 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x43, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x41, 0x0a, 0x08, 0x4f, 0x6c, 0x64, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x43, 0x61, 0x72, 0x61, + 0x76, 0x61, 0x6e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x69, 0x74, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x2e, 0x4f, 0x6c, 0x64, 0x70, 0x72, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x08, 0x4f, 0x6c, 0x64, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, + 0x73, 0x65, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, + 0x65, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0x40, 0x0a, 0x0a, 0x47, 0x6f, 0x6f, 0x64, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x09, 0x43, 0x69, + 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x43, 0x69, 0x74, 0x79, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, + 0x0a, 0x0d, 0x4f, 0x6c, 0x64, 0x70, 0x72, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, + 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -876,7 +874,6 @@ func file_caravan_caravan_msg_proto_init() { return } file_caravan_caravan_db_proto_init() - file_worldtask_worldtask_db_proto_init() file_comm_proto_init() if !protoimpl.UnsafeEnabled { file_caravan_caravan_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { diff --git a/pb/warorder_db.pb.go b/pb/warorder_db.pb.go new file mode 100644 index 000000000..e9fbc732a --- /dev/null +++ b/pb/warorder_db.pb.go @@ -0,0 +1,261 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v3.20.0 +// source: warorder/warorder_db.proto + +package pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +//战令数据 +type DBWarorders struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //唯一ID + Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //玩家ID + Items map[int32]*Warorder `protobuf:"bytes,3,rep,name=items,proto3" json:"items" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` //战令数据 +} + +func (x *DBWarorders) Reset() { + *x = DBWarorders{} + if protoimpl.UnsafeEnabled { + mi := &file_warorder_warorder_db_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DBWarorders) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DBWarorders) ProtoMessage() {} + +func (x *DBWarorders) ProtoReflect() protoreflect.Message { + mi := &file_warorder_warorder_db_proto_msgTypes[0] + 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 DBWarorders.ProtoReflect.Descriptor instead. +func (*DBWarorders) Descriptor() ([]byte, []int) { + return file_warorder_warorder_db_proto_rawDescGZIP(), []int{0} +} + +func (x *DBWarorders) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *DBWarorders) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *DBWarorders) GetItems() map[int32]*Warorder { + if x != nil { + return x.Items + } + return nil +} + +//战令代码 +type Warorder struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Vip bool `protobuf:"varint,1,opt,name=vip,proto3" json:"vip"` + Free []int32 `protobuf:"varint,2,rep,packed,name=free,proto3" json:"free"` + Pay []int32 `protobuf:"varint,3,rep,packed,name=pay,proto3" json:"pay"` + Progress int32 `protobuf:"varint,4,opt,name=progress,proto3" json:"progress"` +} + +func (x *Warorder) Reset() { + *x = Warorder{} + if protoimpl.UnsafeEnabled { + mi := &file_warorder_warorder_db_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Warorder) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Warorder) ProtoMessage() {} + +func (x *Warorder) ProtoReflect() protoreflect.Message { + mi := &file_warorder_warorder_db_proto_msgTypes[1] + 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 Warorder.ProtoReflect.Descriptor instead. +func (*Warorder) Descriptor() ([]byte, []int) { + return file_warorder_warorder_db_proto_rawDescGZIP(), []int{1} +} + +func (x *Warorder) GetVip() bool { + if x != nil { + return x.Vip + } + return false +} + +func (x *Warorder) GetFree() []int32 { + if x != nil { + return x.Free + } + return nil +} + +func (x *Warorder) GetPay() []int32 { + if x != nil { + return x.Pay + } + return nil +} + +func (x *Warorder) GetProgress() int32 { + if x != nil { + return x.Progress + } + return 0 +} + +var File_warorder_warorder_db_proto protoreflect.FileDescriptor + +var file_warorder_warorder_db_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x77, 0x61, 0x72, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2f, 0x77, 0x61, 0x72, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa3, 0x01, 0x0a, + 0x0b, 0x44, 0x42, 0x57, 0x61, 0x72, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, + 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2d, + 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x44, 0x42, 0x57, 0x61, 0x72, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x2e, 0x49, 0x74, 0x65, 0x6d, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x43, 0x0a, + 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1f, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x57, + 0x61, 0x72, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x5e, 0x0a, 0x08, 0x57, 0x61, 0x72, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x76, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x76, 0x69, 0x70, + 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x65, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, + 0x66, 0x72, 0x65, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x61, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x03, 0x70, 0x61, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_warorder_warorder_db_proto_rawDescOnce sync.Once + file_warorder_warorder_db_proto_rawDescData = file_warorder_warorder_db_proto_rawDesc +) + +func file_warorder_warorder_db_proto_rawDescGZIP() []byte { + file_warorder_warorder_db_proto_rawDescOnce.Do(func() { + file_warorder_warorder_db_proto_rawDescData = protoimpl.X.CompressGZIP(file_warorder_warorder_db_proto_rawDescData) + }) + return file_warorder_warorder_db_proto_rawDescData +} + +var file_warorder_warorder_db_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_warorder_warorder_db_proto_goTypes = []interface{}{ + (*DBWarorders)(nil), // 0: DBWarorders + (*Warorder)(nil), // 1: Warorder + nil, // 2: DBWarorders.ItemsEntry +} +var file_warorder_warorder_db_proto_depIdxs = []int32{ + 2, // 0: DBWarorders.items:type_name -> DBWarorders.ItemsEntry + 1, // 1: DBWarorders.ItemsEntry.value:type_name -> Warorder + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_warorder_warorder_db_proto_init() } +func file_warorder_warorder_db_proto_init() { + if File_warorder_warorder_db_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_warorder_warorder_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DBWarorders); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_warorder_warorder_db_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Warorder); 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{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_warorder_warorder_db_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_warorder_warorder_db_proto_goTypes, + DependencyIndexes: file_warorder_warorder_db_proto_depIdxs, + MessageInfos: file_warorder_warorder_db_proto_msgTypes, + }.Build() + File_warorder_warorder_db_proto = out.File + file_warorder_warorder_db_proto_rawDesc = nil + file_warorder_warorder_db_proto_goTypes = nil + file_warorder_warorder_db_proto_depIdxs = nil +} diff --git a/pb/warorder_msg.pb.go b/pb/warorder_msg.pb.go new file mode 100644 index 000000000..11b446ef2 --- /dev/null +++ b/pb/warorder_msg.pb.go @@ -0,0 +1,362 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v3.20.0 +// source: warorder/warorder_msg.proto + +package pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// 战令信息 +type WarorderInfoReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Rtype int32 `protobuf:"varint,1,opt,name=rtype,proto3" json:"rtype"` +} + +func (x *WarorderInfoReq) Reset() { + *x = WarorderInfoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_warorder_warorder_msg_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WarorderInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WarorderInfoReq) ProtoMessage() {} + +func (x *WarorderInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_warorder_warorder_msg_proto_msgTypes[0] + 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 WarorderInfoReq.ProtoReflect.Descriptor instead. +func (*WarorderInfoReq) Descriptor() ([]byte, []int) { + return file_warorder_warorder_msg_proto_rawDescGZIP(), []int{0} +} + +func (x *WarorderInfoReq) GetRtype() int32 { + if x != nil { + return x.Rtype + } + return 0 +} + +type WarorderInfoResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Info *Warorder `protobuf:"bytes,1,opt,name=info,proto3" json:"info"` +} + +func (x *WarorderInfoResp) Reset() { + *x = WarorderInfoResp{} + if protoimpl.UnsafeEnabled { + mi := &file_warorder_warorder_msg_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WarorderInfoResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WarorderInfoResp) ProtoMessage() {} + +func (x *WarorderInfoResp) ProtoReflect() protoreflect.Message { + mi := &file_warorder_warorder_msg_proto_msgTypes[1] + 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 WarorderInfoResp.ProtoReflect.Descriptor instead. +func (*WarorderInfoResp) Descriptor() ([]byte, []int) { + return file_warorder_warorder_msg_proto_rawDescGZIP(), []int{1} +} + +func (x *WarorderInfoResp) GetInfo() *Warorder { + if x != nil { + return x.Info + } + return nil +} + +// 战令奖励领取 +type WarorderReceiveReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Rtype int32 `protobuf:"varint,1,opt,name=rtype,proto3" json:"rtype"` +} + +func (x *WarorderReceiveReq) Reset() { + *x = WarorderReceiveReq{} + if protoimpl.UnsafeEnabled { + mi := &file_warorder_warorder_msg_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WarorderReceiveReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WarorderReceiveReq) ProtoMessage() {} + +func (x *WarorderReceiveReq) ProtoReflect() protoreflect.Message { + mi := &file_warorder_warorder_msg_proto_msgTypes[2] + 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 WarorderReceiveReq.ProtoReflect.Descriptor instead. +func (*WarorderReceiveReq) Descriptor() ([]byte, []int) { + return file_warorder_warorder_msg_proto_rawDescGZIP(), []int{2} +} + +func (x *WarorderReceiveReq) GetRtype() int32 { + if x != nil { + return x.Rtype + } + return 0 +} + +type WarorderReceiveResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Rtype int32 `protobuf:"varint,1,opt,name=rtype,proto3" json:"rtype"` + Info *Warorder `protobuf:"bytes,2,opt,name=info,proto3" json:"info"` + Award []*UserAssets `protobuf:"bytes,3,rep,name=award,proto3" json:"award"` //奖励 +} + +func (x *WarorderReceiveResp) Reset() { + *x = WarorderReceiveResp{} + if protoimpl.UnsafeEnabled { + mi := &file_warorder_warorder_msg_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WarorderReceiveResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WarorderReceiveResp) ProtoMessage() {} + +func (x *WarorderReceiveResp) ProtoReflect() protoreflect.Message { + mi := &file_warorder_warorder_msg_proto_msgTypes[3] + 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 WarorderReceiveResp.ProtoReflect.Descriptor instead. +func (*WarorderReceiveResp) Descriptor() ([]byte, []int) { + return file_warorder_warorder_msg_proto_rawDescGZIP(), []int{3} +} + +func (x *WarorderReceiveResp) GetRtype() int32 { + if x != nil { + return x.Rtype + } + return 0 +} + +func (x *WarorderReceiveResp) GetInfo() *Warorder { + if x != nil { + return x.Info + } + return nil +} + +func (x *WarorderReceiveResp) GetAward() []*UserAssets { + if x != nil { + return x.Award + } + return nil +} + +var File_warorder_warorder_msg_proto protoreflect.FileDescriptor + +var file_warorder_warorder_msg_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x77, 0x61, 0x72, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2f, 0x77, 0x61, 0x72, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x77, + 0x61, 0x72, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2f, 0x77, 0x61, 0x72, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x27, 0x0a, 0x0f, 0x57, 0x61, 0x72, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, 0x22, 0x31, + 0x0a, 0x10, 0x57, 0x61, 0x72, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x09, 0x2e, 0x57, 0x61, 0x72, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x04, 0x69, 0x6e, 0x66, + 0x6f, 0x22, 0x2a, 0x0a, 0x12, 0x57, 0x61, 0x72, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, 0x22, 0x6d, 0x0a, + 0x13, 0x57, 0x61, 0x72, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x04, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x57, 0x61, 0x72, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x05, 0x61, 0x77, 0x61, + 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x42, 0x06, 0x5a, 0x04, + 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_warorder_warorder_msg_proto_rawDescOnce sync.Once + file_warorder_warorder_msg_proto_rawDescData = file_warorder_warorder_msg_proto_rawDesc +) + +func file_warorder_warorder_msg_proto_rawDescGZIP() []byte { + file_warorder_warorder_msg_proto_rawDescOnce.Do(func() { + file_warorder_warorder_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_warorder_warorder_msg_proto_rawDescData) + }) + return file_warorder_warorder_msg_proto_rawDescData +} + +var file_warorder_warorder_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_warorder_warorder_msg_proto_goTypes = []interface{}{ + (*WarorderInfoReq)(nil), // 0: WarorderInfoReq + (*WarorderInfoResp)(nil), // 1: WarorderInfoResp + (*WarorderReceiveReq)(nil), // 2: WarorderReceiveReq + (*WarorderReceiveResp)(nil), // 3: WarorderReceiveResp + (*Warorder)(nil), // 4: Warorder + (*UserAssets)(nil), // 5: UserAssets +} +var file_warorder_warorder_msg_proto_depIdxs = []int32{ + 4, // 0: WarorderInfoResp.info:type_name -> Warorder + 4, // 1: WarorderReceiveResp.info:type_name -> Warorder + 5, // 2: WarorderReceiveResp.award:type_name -> UserAssets + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_warorder_warorder_msg_proto_init() } +func file_warorder_warorder_msg_proto_init() { + if File_warorder_warorder_msg_proto != nil { + return + } + file_warorder_warorder_db_proto_init() + file_comm_proto_init() + if !protoimpl.UnsafeEnabled { + file_warorder_warorder_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WarorderInfoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_warorder_warorder_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WarorderInfoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_warorder_warorder_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WarorderReceiveReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_warorder_warorder_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WarorderReceiveResp); 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{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_warorder_warorder_msg_proto_rawDesc, + NumEnums: 0, + NumMessages: 4, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_warorder_warorder_msg_proto_goTypes, + DependencyIndexes: file_warorder_warorder_msg_proto_depIdxs, + MessageInfos: file_warorder_warorder_msg_proto_msgTypes, + }.Build() + File_warorder_warorder_msg_proto = out.File + file_warorder_warorder_msg_proto_rawDesc = nil + file_warorder_warorder_msg_proto_goTypes = nil + file_warorder_warorder_msg_proto_depIdxs = nil +} diff --git a/sys/configure/structs/Game.CaravanReward.go b/sys/configure/structs/Game.CaravanReward.go index 8e236949e..8f29842e0 100644 --- a/sys/configure/structs/Game.CaravanReward.go +++ b/sys/configure/structs/Game.CaravanReward.go @@ -21,7 +21,7 @@ func NewGameCaravanReward(_buf []map[string]interface{}) (*GameCaravanReward, er return nil, err2 } else { _dataList = append(_dataList, _v) - dataMap[_v.Key] = _v + dataMap[_v.Id] = _v } } return &GameCaravanReward{_dataList:_dataList, _dataMap:dataMap}, nil diff --git a/sys/configure/structs/Game.CaravanRewardData.go b/sys/configure/structs/Game.CaravanRewardData.go index 823614bda..c40e70d99 100644 --- a/sys/configure/structs/Game.CaravanRewardData.go +++ b/sys/configure/structs/Game.CaravanRewardData.go @@ -11,9 +11,8 @@ package cfg import "errors" type GameCaravanRewardData struct { + Id int32 Key int32 - Moneystart int32 - Moneyend int32 Reward []*Gameatn } @@ -24,9 +23,8 @@ func (*GameCaravanRewardData) GetTypeId() int32 { } func (_v *GameCaravanRewardData)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["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) } - { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["moneystart"].(float64); !_ok_ { err = errors.New("moneystart error"); return }; _v.Moneystart = int32(_tempNum_) } - { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["moneyend"].(float64); !_ok_ { err = errors.New("moneyend error"); return }; _v.Moneyend = int32(_tempNum_) } { var _arr_ []interface{} var _ok_ bool diff --git a/sys/configure/structs/Game.CirculateData.go b/sys/configure/structs/Game.CirculateData.go index 7c1be9ba5..b390aab9b 100644 --- a/sys/configure/structs/Game.CirculateData.go +++ b/sys/configure/structs/Game.CirculateData.go @@ -15,6 +15,7 @@ type GameCirculateData struct { Name int32 Restriction int32 BattlereadyID int32 + OpenDesc string Openingtime []int32 Time int32 Unlock int32 @@ -41,6 +42,7 @@ func (_v *GameCirculateData)Deserialize(_buf map[string]interface{}) (err error) { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["name"].(float64); !_ok_ { err = errors.New("name error"); return }; _v.Name = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["restriction"].(float64); !_ok_ { err = errors.New("restriction error"); return }; _v.Restriction = 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 diff --git a/sys/configure/structs/Game.PayPackageData.go b/sys/configure/structs/Game.PayPackageData.go index b88858b57..7e015c2d4 100644 --- a/sys/configure/structs/Game.PayPackageData.go +++ b/sys/configure/structs/Game.PayPackageData.go @@ -12,6 +12,8 @@ import "errors" type GamePayPackageData struct { Id int32 + Type int32 + RepeatNum int32 Refreshtime int32 Pagename string Packagetype string @@ -29,6 +31,8 @@ func (*GamePayPackageData) GetTypeId() int32 { func (_v *GamePayPackageData)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["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["repeat_num"].(float64); !_ok_ { err = errors.New("repeat_num error"); return }; _v.RepeatNum = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["refreshtime"].(float64); !_ok_ { err = errors.New("refreshtime error"); return }; _v.Refreshtime = int32(_tempNum_) } {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["pagename"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Pagename error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Pagename, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } { var _ok_ bool; if _v.Packagetype, _ok_ = _buf["packagetype"].(string); !_ok_ { err = errors.New("packagetype error"); return } }