diff --git a/bin/json/game_battleready.json b/bin/json/game_battleready.json index ad4babbd0..442a33030 100644 --- a/bin/json/game_battleready.json +++ b/bin/json/game_battleready.json @@ -108,5 +108,15 @@ "LockSlots": [], "AssistTeam": 0, "CanFriendHelp": 0 + }, + { + "id": 111, + "PlayType": "pvp", + "HeroCount": 5, + "DefaultHero": 0, + "DisableHero": [], + "LockSlots": [], + "AssistTeam": 0, + "CanFriendHelp": 0 } ] \ No newline at end of file diff --git a/bin/json/game_drawcard.json b/bin/json/game_drawcard.json index c0a5bec5b..04c7ab53c 100644 --- a/bin/json/game_drawcard.json +++ b/bin/json/game_drawcard.json @@ -5,7 +5,7 @@ "card_pool_type": "base_pool1", "star": 3, "race": 1, - "id": "24002", + "id": "24004", "weight": 1000 }, { @@ -14,7 +14,7 @@ "card_pool_type": "base_pool1", "star": 4, "race": 1, - "id": "24002", + "id": "24004", "weight": 1000 }, { @@ -23,20 +23,155 @@ "card_pool_type": "base_pool1", "star": 5, "race": 1, - "id": "24002", + "id": "24004", "weight": 1000 }, { "key": 4, "recruitment_type": 1, "card_pool_type": "base_pool2", + "star": 3, + "race": 1, + "id": "25001", + "weight": 1000 + }, + { + "key": 5, + "recruitment_type": 1, + "card_pool_type": "base_pool2", + "star": 4, + "race": 1, + "id": "25001", + "weight": 1000 + }, + { + "key": 6, + "recruitment_type": 1, + "card_pool_type": "base_pool2", + "star": 5, + "race": 1, + "id": "25001", + "weight": 1000 + }, + { + "key": 7, + "recruitment_type": 1, + "card_pool_type": "base_pool3", + "star": 3, + "race": 1, + "id": "25004", + "weight": 1000 + }, + { + "key": 8, + "recruitment_type": 1, + "card_pool_type": "base_pool3", + "star": 4, + "race": 1, + "id": "25004", + "weight": 1000 + }, + { + "key": 9, + "recruitment_type": 1, + "card_pool_type": "base_pool3", + "star": 5, + "race": 1, + "id": "25004", + "weight": 1000 + }, + { + "key": 10, + "recruitment_type": 1, + "card_pool_type": "base_pool4", + "star": 3, + "race": 1, + "id": "24008", + "weight": 1000 + }, + { + "key": 11, + "recruitment_type": 1, + "card_pool_type": "base_pool4", + "star": 4, + "race": 1, + "id": "24008", + "weight": 1000 + }, + { + "key": 12, + "recruitment_type": 1, + "card_pool_type": "base_pool4", + "star": 5, + "race": 1, + "id": "24008", + "weight": 1000 + }, + { + "key": 13, + "recruitment_type": 1, + "card_pool_type": "base_pool5", + "star": 3, + "race": 1, + "id": "24003", + "weight": 1000 + }, + { + "key": 14, + "recruitment_type": 1, + "card_pool_type": "base_pool5", + "star": 4, + "race": 1, + "id": "24003", + "weight": 1000 + }, + { + "key": 15, + "recruitment_type": 1, + "card_pool_type": "base_pool5", + "star": 5, + "race": 1, + "id": "24003", + "weight": 1000 + }, + { + "key": 16, + "recruitment_type": 1, + "card_pool_type": "base_pool6", + "star": 3, + "race": 1, + "id": "44002", + "weight": 1000 + }, + { + "key": 17, + "recruitment_type": 1, + "card_pool_type": "base_pool6", + "star": 4, + "race": 1, + "id": "44002", + "weight": 1000 + }, + { + "key": 18, + "recruitment_type": 1, + "card_pool_type": "base_pool6", + "star": 5, + "race": 1, + "id": "44002", + "weight": 1000 + }, + { + "key": 19, + "recruitment_type": 1, + "card_pool_type": "base_pool2", "star": 4, "race": 3, "id": "34006", "weight": 1000 }, { - "key": 5, + "key": 20, "recruitment_type": 1, "card_pool_type": "base_pool2", "star": 5, @@ -44,145 +179,10 @@ "id": "45003", "weight": 1000 }, - { - "key": 6, - "recruitment_type": 1, - "card_pool_type": "base_pool2", - "star": 4, - "race": 4, - "id": "44005", - "weight": 1000 - }, - { - "key": 7, - "recruitment_type": 1, - "card_pool_type": "base_pool2", - "star": 4, - "race": 1, - "id": "14003", - "weight": 1000 - }, - { - "key": 8, - "recruitment_type": 1, - "card_pool_type": "base_pool2", - "star": 5, - "race": 1, - "id": "15005", - "weight": 1000 - }, - { - "key": 9, - "recruitment_type": 1, - "card_pool_type": "base_pool2", - "star": 4, - "race": 2, - "id": "24003", - "weight": 1000 - }, - { - "key": 10, - "recruitment_type": 1, - "card_pool_type": "base_pool2", - "star": 4, - "race": 2, - "id": "24008", - "weight": 1000 - }, - { - "key": 11, - "recruitment_type": 1, - "card_pool_type": "base_pool2", - "star": 5, - "race": 2, - "id": "25001", - "weight": 1000 - }, - { - "key": 12, - "recruitment_type": 1, - "card_pool_type": "base_pool2", - "star": 5, - "race": 2, - "id": "25004", - "weight": 1000 - }, - { - "key": 13, - "recruitment_type": 1, - "card_pool_type": "base_pool2", - "star": 5, - "race": 3, - "id": "35006", - "weight": 1000 - }, - { - "key": 14, - "recruitment_type": 1, - "card_pool_type": "base_pool2", - "star": 4, - "race": 4, - "id": "44002", - "weight": 1000 - }, - { - "key": 15, - "recruitment_type": 1, - "card_pool_type": "base_pool2", - "star": 3, - "race": 2, - "id": "24002", - "weight": 1000 - }, - { - "key": 16, - "recruitment_type": 1, - "card_pool_type": "base_pool2", - "star": 4, - "race": 2, - "id": "24004", - "weight": 1000 - }, - { - "key": 17, - "recruitment_type": 1, - "card_pool_type": "base_pool2", - "star": 5, - "race": 2, - "id": "35001", - "weight": 1000 - }, - { - "key": 18, - "recruitment_type": 1, - "card_pool_type": "base_pool6", - "star": 3, - "race": 1, - "id": "13003", - "weight": 1000 - }, - { - "key": 19, - "recruitment_type": 1, - "card_pool_type": "base_pool6", - "star": 4, - "race": 4, - "id": "44006", - "weight": 1000 - }, - { - "key": 20, - "recruitment_type": 1, - "card_pool_type": "base_pool6", - "star": 5, - "race": 2, - "id": "35001", - "weight": 1000 - }, { "key": 21, "recruitment_type": 1, - "card_pool_type": "base_pool6", + "card_pool_type": "base_pool2", "star": 4, "race": 4, "id": "44005", @@ -191,106 +191,106 @@ { "key": 22, "recruitment_type": 1, - "card_pool_type": "base_pool6", - "star": 5, - "race": 1, - "id": "15004", - "weight": 1000 - }, - { - "key": 23, - "recruitment_type": 1, - "card_pool_type": "base_pool6", - "star": 3, - "race": 2, - "id": "24002", - "weight": 1000 - }, - { - "key": 24, - "recruitment_type": 1, - "card_pool_type": "base_pool6", - "star": 4, - "race": 4, - "id": "45003", - "weight": 1000 - }, - { - "key": 25, - "recruitment_type": 1, - "card_pool_type": "base_pool6", + "card_pool_type": "base_pool2", "star": 4, "race": 1, "id": "14003", "weight": 1000 }, { - "key": 26, + "key": 23, "recruitment_type": 1, - "card_pool_type": "base_pool6", + "card_pool_type": "base_pool2", "star": 5, "race": 1, "id": "15005", "weight": 1000 }, { - "key": 27, + "key": 24, "recruitment_type": 1, - "card_pool_type": "base_pool6", + "card_pool_type": "base_pool2", "star": 4, "race": 2, "id": "24003", "weight": 1000 }, { - "key": 28, + "key": 25, "recruitment_type": 1, - "card_pool_type": "base_pool6", + "card_pool_type": "base_pool2", "star": 4, "race": 2, - "id": "24004", + "id": "24008", "weight": 1000 }, { - "key": 29, + "key": 26, "recruitment_type": 1, - "card_pool_type": "base_pool6", - "star": 5, - "race": 2, - "id": "25004", - "weight": 1000 - }, - { - "key": 30, - "recruitment_type": 1, - "card_pool_type": "base_pool6", - "star": 4, - "race": 3, - "id": "34006", - "weight": 1000 - }, - { - "key": 31, - "recruitment_type": 1, - "card_pool_type": "base_pool6", + "card_pool_type": "base_pool2", "star": 5, "race": 2, "id": "25001", "weight": 1000 }, + { + "key": 27, + "recruitment_type": 1, + "card_pool_type": "base_pool2", + "star": 5, + "race": 2, + "id": "25004", + "weight": 1000 + }, + { + "key": 28, + "recruitment_type": 1, + "card_pool_type": "base_pool2", + "star": 5, + "race": 3, + "id": "35006", + "weight": 1000 + }, + { + "key": 29, + "recruitment_type": 1, + "card_pool_type": "base_pool2", + "star": 4, + "race": 4, + "id": "44002", + "weight": 1000 + }, + { + "key": 30, + "recruitment_type": 1, + "card_pool_type": "base_pool2", + "star": 3, + "race": 2, + "id": "24002", + "weight": 1000 + }, + { + "key": 31, + "recruitment_type": 1, + "card_pool_type": "base_pool2", + "star": 4, + "race": 2, + "id": "24004", + "weight": 1000 + }, { "key": 32, "recruitment_type": 1, - "card_pool_type": "base_pool6", - "star": 4, - "race": 1, - "id": "14007", + "card_pool_type": "base_pool2", + "star": 5, + "race": 2, + "id": "35001", "weight": 1000 }, { "key": 33, "recruitment_type": 1, - "card_pool_type": "base_pool7", + "card_pool_type": "base_pool6", "star": 3, "race": 1, "id": "13003", @@ -299,7 +299,7 @@ { "key": 34, "recruitment_type": 1, - "card_pool_type": "base_pool7", + "card_pool_type": "base_pool6", "star": 4, "race": 4, "id": "44006", @@ -308,7 +308,7 @@ { "key": 35, "recruitment_type": 1, - "card_pool_type": "base_pool7", + "card_pool_type": "base_pool6", "star": 5, "race": 2, "id": "35001", @@ -317,7 +317,7 @@ { "key": 36, "recruitment_type": 1, - "card_pool_type": "base_pool7", + "card_pool_type": "base_pool6", "star": 4, "race": 4, "id": "44005", @@ -326,7 +326,7 @@ { "key": 37, "recruitment_type": 1, - "card_pool_type": "base_pool7", + "card_pool_type": "base_pool6", "star": 5, "race": 1, "id": "15004", @@ -335,7 +335,7 @@ { "key": 38, "recruitment_type": 1, - "card_pool_type": "base_pool7", + "card_pool_type": "base_pool6", "star": 3, "race": 2, "id": "24002", @@ -344,7 +344,7 @@ { "key": 39, "recruitment_type": 1, - "card_pool_type": "base_pool7", + "card_pool_type": "base_pool6", "star": 4, "race": 4, "id": "45003", @@ -353,7 +353,7 @@ { "key": 40, "recruitment_type": 1, - "card_pool_type": "base_pool7", + "card_pool_type": "base_pool6", "star": 4, "race": 1, "id": "14003", @@ -362,7 +362,7 @@ { "key": 41, "recruitment_type": 1, - "card_pool_type": "base_pool7", + "card_pool_type": "base_pool6", "star": 5, "race": 1, "id": "15005", @@ -371,7 +371,7 @@ { "key": 42, "recruitment_type": 1, - "card_pool_type": "base_pool7", + "card_pool_type": "base_pool6", "star": 4, "race": 2, "id": "24003", @@ -380,7 +380,7 @@ { "key": 43, "recruitment_type": 1, - "card_pool_type": "base_pool7", + "card_pool_type": "base_pool6", "star": 4, "race": 2, "id": "24004", @@ -389,7 +389,7 @@ { "key": 44, "recruitment_type": 1, - "card_pool_type": "base_pool7", + "card_pool_type": "base_pool6", "star": 5, "race": 2, "id": "25004", @@ -398,7 +398,7 @@ { "key": 45, "recruitment_type": 1, - "card_pool_type": "base_pool7", + "card_pool_type": "base_pool6", "star": 4, "race": 3, "id": "34006", @@ -407,7 +407,7 @@ { "key": 46, "recruitment_type": 1, - "card_pool_type": "base_pool7", + "card_pool_type": "base_pool6", "star": 5, "race": 2, "id": "25001", @@ -416,7 +416,7 @@ { "key": 47, "recruitment_type": 1, - "card_pool_type": "base_pool7", + "card_pool_type": "base_pool6", "star": 4, "race": 1, "id": "14007", @@ -424,6 +424,141 @@ }, { "key": 48, + "recruitment_type": 1, + "card_pool_type": "base_pool7", + "star": 3, + "race": 1, + "id": "13003", + "weight": 1000 + }, + { + "key": 49, + "recruitment_type": 1, + "card_pool_type": "base_pool7", + "star": 4, + "race": 4, + "id": "44006", + "weight": 1000 + }, + { + "key": 50, + "recruitment_type": 1, + "card_pool_type": "base_pool7", + "star": 5, + "race": 2, + "id": "35001", + "weight": 1000 + }, + { + "key": 51, + "recruitment_type": 1, + "card_pool_type": "base_pool7", + "star": 4, + "race": 4, + "id": "44005", + "weight": 1000 + }, + { + "key": 52, + "recruitment_type": 1, + "card_pool_type": "base_pool7", + "star": 5, + "race": 1, + "id": "15004", + "weight": 1000 + }, + { + "key": 53, + "recruitment_type": 1, + "card_pool_type": "base_pool7", + "star": 3, + "race": 2, + "id": "24002", + "weight": 1000 + }, + { + "key": 54, + "recruitment_type": 1, + "card_pool_type": "base_pool7", + "star": 4, + "race": 4, + "id": "45003", + "weight": 1000 + }, + { + "key": 55, + "recruitment_type": 1, + "card_pool_type": "base_pool7", + "star": 4, + "race": 1, + "id": "14003", + "weight": 1000 + }, + { + "key": 56, + "recruitment_type": 1, + "card_pool_type": "base_pool7", + "star": 5, + "race": 1, + "id": "15005", + "weight": 1000 + }, + { + "key": 57, + "recruitment_type": 1, + "card_pool_type": "base_pool7", + "star": 4, + "race": 2, + "id": "24003", + "weight": 1000 + }, + { + "key": 58, + "recruitment_type": 1, + "card_pool_type": "base_pool7", + "star": 4, + "race": 2, + "id": "24004", + "weight": 1000 + }, + { + "key": 59, + "recruitment_type": 1, + "card_pool_type": "base_pool7", + "star": 5, + "race": 2, + "id": "25004", + "weight": 1000 + }, + { + "key": 60, + "recruitment_type": 1, + "card_pool_type": "base_pool7", + "star": 4, + "race": 3, + "id": "34006", + "weight": 1000 + }, + { + "key": 61, + "recruitment_type": 1, + "card_pool_type": "base_pool7", + "star": 5, + "race": 2, + "id": "25001", + "weight": 1000 + }, + { + "key": 62, + "recruitment_type": 1, + "card_pool_type": "base_pool7", + "star": 4, + "race": 1, + "id": "14007", + "weight": 1000 + }, + { + "key": 63, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 3, @@ -432,7 +567,7 @@ "weight": 1000 }, { - "key": 49, + "key": 64, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 3, @@ -441,7 +576,7 @@ "weight": 1000 }, { - "key": 50, + "key": 65, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 3, @@ -450,7 +585,7 @@ "weight": 1000 }, { - "key": 51, + "key": 66, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 3, @@ -459,7 +594,7 @@ "weight": 1000 }, { - "key": 52, + "key": 67, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 3, @@ -468,7 +603,7 @@ "weight": 1000 }, { - "key": 53, + "key": 68, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 4, @@ -477,7 +612,7 @@ "weight": 1000 }, { - "key": 54, + "key": 69, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 4, @@ -486,7 +621,7 @@ "weight": 1000 }, { - "key": 55, + "key": 70, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 4, @@ -495,7 +630,7 @@ "weight": 1000 }, { - "key": 56, + "key": 71, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 4, @@ -504,7 +639,7 @@ "weight": 1000 }, { - "key": 57, + "key": 72, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 4, @@ -513,7 +648,7 @@ "weight": 1000 }, { - "key": 58, + "key": 73, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 4, @@ -522,7 +657,7 @@ "weight": 1000 }, { - "key": 59, + "key": 74, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 4, @@ -531,7 +666,7 @@ "weight": 1000 }, { - "key": 60, + "key": 75, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 5, @@ -540,7 +675,7 @@ "weight": 1000 }, { - "key": 61, + "key": 76, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 5, @@ -549,7 +684,7 @@ "weight": 1000 }, { - "key": 62, + "key": 77, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 5, @@ -558,7 +693,7 @@ "weight": 1000 }, { - "key": 63, + "key": 78, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 5, @@ -567,7 +702,7 @@ "weight": 1000 }, { - "key": 64, + "key": 79, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 3, @@ -576,7 +711,7 @@ "weight": 1000 }, { - "key": 65, + "key": 80, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 3, @@ -585,7 +720,7 @@ "weight": 1000 }, { - "key": 66, + "key": 81, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 3, @@ -594,7 +729,7 @@ "weight": 1000 }, { - "key": 67, + "key": 82, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 3, @@ -603,7 +738,7 @@ "weight": 1000 }, { - "key": 68, + "key": 83, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 4, @@ -612,7 +747,7 @@ "weight": 1000 }, { - "key": 69, + "key": 84, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 3, @@ -621,7 +756,7 @@ "weight": 1000 }, { - "key": 70, + "key": 85, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 4, @@ -630,7 +765,7 @@ "weight": 1000 }, { - "key": 71, + "key": 86, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 4, @@ -639,7 +774,7 @@ "weight": 1000 }, { - "key": 72, + "key": 87, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 4, @@ -648,7 +783,7 @@ "weight": 1000 }, { - "key": 73, + "key": 88, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 4, @@ -657,7 +792,7 @@ "weight": 1000 }, { - "key": 74, + "key": 89, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 4, @@ -666,7 +801,7 @@ "weight": 1000 }, { - "key": 75, + "key": 90, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 4, @@ -675,7 +810,7 @@ "weight": 1000 }, { - "key": 76, + "key": 91, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 4, @@ -684,7 +819,7 @@ "weight": 1000 }, { - "key": 77, + "key": 92, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 5, @@ -693,7 +828,7 @@ "weight": 1000 }, { - "key": 78, + "key": 93, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 5, @@ -702,7 +837,7 @@ "weight": 1000 }, { - "key": 79, + "key": 94, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 5, @@ -711,7 +846,7 @@ "weight": 1000 }, { - "key": 80, + "key": 95, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 5, @@ -720,7 +855,7 @@ "weight": 1000 }, { - "key": 81, + "key": 96, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 3, @@ -729,7 +864,7 @@ "weight": 1000 }, { - "key": 82, + "key": 97, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 3, @@ -738,7 +873,7 @@ "weight": 1000 }, { - "key": 83, + "key": 98, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 3, @@ -747,7 +882,7 @@ "weight": 1000 }, { - "key": 84, + "key": 99, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 3, @@ -756,7 +891,7 @@ "weight": 1000 }, { - "key": 85, + "key": 100, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 3, @@ -765,7 +900,7 @@ "weight": 1000 }, { - "key": 86, + "key": 101, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 3, @@ -774,7 +909,7 @@ "weight": 1000 }, { - "key": 87, + "key": 102, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 4, @@ -783,7 +918,7 @@ "weight": 1000 }, { - "key": 88, + "key": 103, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 4, @@ -792,7 +927,7 @@ "weight": 1000 }, { - "key": 89, + "key": 104, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 4, @@ -801,7 +936,7 @@ "weight": 1000 }, { - "key": 90, + "key": 105, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 4, @@ -810,7 +945,7 @@ "weight": 1000 }, { - "key": 91, + "key": 106, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 4, @@ -819,7 +954,7 @@ "weight": 1000 }, { - "key": 92, + "key": 107, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 4, @@ -828,7 +963,7 @@ "weight": 1000 }, { - "key": 93, + "key": 108, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 4, @@ -837,7 +972,7 @@ "weight": 1000 }, { - "key": 94, + "key": 109, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 4, @@ -846,7 +981,7 @@ "weight": 1000 }, { - "key": 95, + "key": 110, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 5, @@ -855,7 +990,7 @@ "weight": 1000 }, { - "key": 96, + "key": 111, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 5, @@ -864,7 +999,7 @@ "weight": 1000 }, { - "key": 97, + "key": 112, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 5, @@ -873,7 +1008,7 @@ "weight": 1000 }, { - "key": 98, + "key": 113, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 5, @@ -882,7 +1017,7 @@ "weight": 1000 }, { - "key": 99, + "key": 114, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 5, @@ -891,7 +1026,7 @@ "weight": 1000 }, { - "key": 100, + "key": 115, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 3, @@ -900,7 +1035,7 @@ "weight": 1000 }, { - "key": 101, + "key": 116, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 3, @@ -909,7 +1044,7 @@ "weight": 1000 }, { - "key": 102, + "key": 117, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 3, @@ -918,7 +1053,7 @@ "weight": 1000 }, { - "key": 103, + "key": 118, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 3, @@ -927,7 +1062,7 @@ "weight": 1000 }, { - "key": 104, + "key": 119, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 3, @@ -936,7 +1071,7 @@ "weight": 1000 }, { - "key": 105, + "key": 120, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 3, @@ -945,7 +1080,7 @@ "weight": 1000 }, { - "key": 106, + "key": 121, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 3, @@ -954,7 +1089,7 @@ "weight": 1000 }, { - "key": 107, + "key": 122, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 4, @@ -963,7 +1098,7 @@ "weight": 1000 }, { - "key": 108, + "key": 123, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 4, @@ -972,7 +1107,7 @@ "weight": 1000 }, { - "key": 109, + "key": 124, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 4, @@ -981,7 +1116,7 @@ "weight": 1000 }, { - "key": 110, + "key": 125, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 4, @@ -990,7 +1125,7 @@ "weight": 1000 }, { - "key": 111, + "key": 126, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 4, @@ -999,7 +1134,7 @@ "weight": 1000 }, { - "key": 112, + "key": 127, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 4, @@ -1008,7 +1143,7 @@ "weight": 1000 }, { - "key": 113, + "key": 128, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 4, @@ -1017,7 +1152,7 @@ "weight": 1000 }, { - "key": 114, + "key": 129, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 4, @@ -1026,7 +1161,7 @@ "weight": 1000 }, { - "key": 115, + "key": 130, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 4, diff --git a/bin/json/game_extservers.json b/bin/json/game_extservers.json index 0a8093432..9bdd18a84 100644 --- a/bin/json/game_extservers.json +++ b/bin/json/game_extservers.json @@ -48,5 +48,15 @@ "ips": "10.0.0.85:7891", "debug": true, "sid": "dfmxf" + }, + { + "index": 6, + "name": { + "key": "debug_server_04", + "text": "hjl" + }, + "ips": "10.0.0.208:7891", + "debug": true, + "sid": "dfjl" } ] \ No newline at end of file diff --git a/bin/json/game_global.json b/bin/json/game_global.json index 50af3dc5b..0e5c07f48 100644 --- a/bin/json/game_global.json +++ b/bin/json/game_global.json @@ -104,37 +104,37 @@ "camp3_pool1": "camp3_pool", "camp4_pool1": "camp4_pool", "base_pool1": { - "s": 0, - "e": 0, + "s": 1, + "e": 1, "p": "base_pool1" }, "base_pool2": { - "s": 1, - "e": 99999, + "s": 2, + "e": 2, "p": "base_pool2" }, "base_pool3": { - "s": 100000, - "e": 999999999, - "p": "base_pool6" + "s": 3, + "e": 3, + "p": "base_pool3" }, "base_pool4": { - "s": 99999999, - "e": 999999999, - "p": "base_pool7" + "s": 4, + "e": 4, + "p": "base_pool4" }, "base_pool5": { - "s": 99999999, - "e": 999999999, - "p": "base_pool7" + "s": 5, + "e": 5, + "p": "base_pool5" }, "base_pool6": { - "s": 99999999, - "e": 999999999, - "p": "base_pool7" + "s": 6, + "e": 6, + "p": "base_pool6" }, "base_pool7": { - "s": 99999999, + "s": 7, "e": 999999999, "p": "base_pool7" }, diff --git a/bin/json/game_model.json b/bin/json/game_model.json index bcfb1eb96..2f68152d9 100644 --- a/bin/json/game_model.json +++ b/bin/json/game_model.json @@ -2601,9 +2601,9 @@ }, { "id": "55006", - "preson": "11020", - "presonshow": "11020_exhibition", - "presonstory": "11020", + "preson": "11021", + "presonshow": "11021_exhibition", + "presonstory": "11021", "presondraw": "", "height": 1, "weight": 1, diff --git a/bin/json/game_msgdistrib.json b/bin/json/game_msgdistrib.json index 494ce155d..8f4a883ee 100644 --- a/bin/json/game_msgdistrib.json +++ b/bin/json/game_msgdistrib.json @@ -100,11 +100,5 @@ "open": true, "routrules": "~/worker", "describe": "附魔副本排行榜数据" - }, - { - "msgid": "pvp", - "open": true, - "routrules": "~/worker", - "describe": "同步竞技场" } ] \ No newline at end of file diff --git a/bin/json/game_newsmithy.json b/bin/json/game_newsmithy.json new file mode 100644 index 000000000..3f0e34c4b --- /dev/null +++ b/bin/json/game_newsmithy.json @@ -0,0 +1,918 @@ +[ + { + "id": 1, + "item_id": 0, + "type": 1, + "consume": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10201", + "n": 2 + }, + { + "a": "item", + "t": "10301", + "n": 3 + } + ], + "temperature": 50, + "quality": { + "a": "item", + "t": "20201", + "n": 2 + } + }, + { + "id": 2, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 3 + } + }, + { + "id": 3, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 4 + } + }, + { + "id": 4, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 5 + } + }, + { + "id": 5, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 6 + } + }, + { + "id": 6, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 7 + } + }, + { + "id": 7, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 8 + } + }, + { + "id": 8, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 9 + } + }, + { + "id": 9, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 10 + } + }, + { + "id": 10, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 11 + } + }, + { + "id": 11, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 12 + } + }, + { + "id": 12, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 13 + } + }, + { + "id": 13, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 14 + } + }, + { + "id": 14, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 15 + } + }, + { + "id": 15, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 16 + } + }, + { + "id": 16, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 17 + } + }, + { + "id": 17, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 18 + } + }, + { + "id": 18, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 19 + } + }, + { + "id": 19, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 20 + } + }, + { + "id": 20, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 21 + } + }, + { + "id": 21, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 22 + } + }, + { + "id": 22, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 23 + } + }, + { + "id": 23, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 24 + } + }, + { + "id": 24, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 25 + } + }, + { + "id": 25, + "item_id": 0, + "type": 1, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 26 + } + }, + { + "id": 26, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 27 + } + }, + { + "id": 27, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 28 + } + }, + { + "id": 28, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 29 + } + }, + { + "id": 29, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 30 + } + }, + { + "id": 30, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 31 + } + }, + { + "id": 31, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 32 + } + }, + { + "id": 32, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 33 + } + }, + { + "id": 33, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 34 + } + }, + { + "id": 34, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 35 + } + }, + { + "id": 35, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 36 + } + }, + { + "id": 36, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 37 + } + }, + { + "id": 37, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 38 + } + }, + { + "id": 38, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 39 + } + }, + { + "id": 39, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 40 + } + }, + { + "id": 40, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 41 + } + }, + { + "id": 41, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 42 + } + }, + { + "id": 42, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 43 + } + }, + { + "id": 43, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 44 + } + }, + { + "id": 44, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 45 + } + }, + { + "id": 45, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 46 + } + }, + { + "id": 46, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 47 + } + }, + { + "id": 47, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 48 + } + }, + { + "id": 48, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 49 + } + }, + { + "id": 49, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 50 + } + }, + { + "id": 50, + "item_id": 0, + "type": 2, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 51 + } + }, + { + "id": 51, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 52 + } + }, + { + "id": 52, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 53 + } + }, + { + "id": 53, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 54 + } + }, + { + "id": 54, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 55 + } + }, + { + "id": 55, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 56 + } + }, + { + "id": 56, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 57 + } + }, + { + "id": 57, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 58 + } + }, + { + "id": 58, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 59 + } + }, + { + "id": 59, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 60 + } + }, + { + "id": 60, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 61 + } + }, + { + "id": 61, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 62 + } + }, + { + "id": 62, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 63 + } + }, + { + "id": 63, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 64 + } + }, + { + "id": 64, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 65 + } + }, + { + "id": 65, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 66 + } + }, + { + "id": 66, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 67 + } + }, + { + "id": 67, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 68 + } + }, + { + "id": 68, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 69 + } + }, + { + "id": 69, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 70 + } + }, + { + "id": 70, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 71 + } + }, + { + "id": 71, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 72 + } + }, + { + "id": 72, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 73 + } + }, + { + "id": 73, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 74 + } + }, + { + "id": 74, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 75 + } + }, + { + "id": 75, + "item_id": 0, + "type": 3, + "consume": [], + "temperature": 0, + "quality": { + "a": "item", + "t": "20201", + "n": 76 + } + } +] \ No newline at end of file diff --git a/bin/json/game_opencond.json b/bin/json/game_opencond.json index ae1a108ca..ea76a9aff 100644 --- a/bin/json/game_opencond.json +++ b/bin/json/game_opencond.json @@ -9,10 +9,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -35,10 +31,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -61,10 +53,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -109,10 +97,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -135,10 +119,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -161,10 +141,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -187,10 +163,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -213,10 +185,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -239,10 +207,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -265,10 +229,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -291,10 +251,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -317,10 +273,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -343,10 +295,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -369,10 +317,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -395,10 +339,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -421,10 +361,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -447,10 +383,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -473,10 +405,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -499,10 +427,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -525,10 +449,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -551,10 +471,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -577,10 +493,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -603,10 +515,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -629,10 +537,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -655,10 +559,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -681,10 +581,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -707,10 +603,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -755,10 +647,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -781,10 +669,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -807,10 +691,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -833,10 +713,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -859,10 +735,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -885,10 +757,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -911,10 +779,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -937,10 +801,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -963,10 +823,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -989,10 +845,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -1015,10 +867,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -1041,10 +889,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -1067,10 +911,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -1093,10 +933,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -1119,10 +955,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -1145,10 +977,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -1171,10 +999,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -1197,10 +1021,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -1289,10 +1109,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -1315,10 +1131,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -1341,10 +1153,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -1367,10 +1175,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -1393,10 +1197,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -1419,10 +1219,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -1445,10 +1241,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -1471,10 +1263,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -1497,10 +1285,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -1523,10 +1307,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -1549,10 +1329,6 @@ { "key": 1, "param": 1 - }, - { - "key": 2, - "param": 1100101 } ], "optional": "", @@ -1573,8 +1349,8 @@ }, "main": [ { - "key": 3, - "param": 20010 + "key": 1, + "param": 1 } ], "optional": "", @@ -1595,8 +1371,8 @@ }, "main": [ { - "key": 3, - "param": 20010 + "key": 1, + "param": 1 } ], "optional": "", @@ -1617,8 +1393,8 @@ }, "main": [ { - "key": 3, - "param": 20010 + "key": 1, + "param": 1 } ], "optional": "", diff --git a/bin/json/game_pandsmasexp.json b/bin/json/game_pandsmasexp.json new file mode 100644 index 000000000..6be4649f3 --- /dev/null +++ b/bin/json/game_pandsmasexp.json @@ -0,0 +1,1006 @@ +[ + { + "id": 110, + "bossid": 1, + "name": { + "key": "viking_boss_1001", + "text": "火焰泰坦" + }, + "ReadyID": 104, + "difficulty": 1, + "BattleReadyID": 104, + "captionrecommend": [ + 25001, + 25004, + 34006, + 35001, + 35002 + ], + "firstprize": [ + { + "a": "attr", + "t": "diamond", + "n": 100 + } + ], + "dropshow": [ + { + "a": "equi", + "t": "10110", + "n": 1 + }, + { + "a": "equi", + "t": "10111", + "n": 1 + }, + { + "a": "equi", + "t": "10112", + "n": 1 + }, + { + "a": "equi", + "t": "10113", + "n": 1 + }, + { + "a": "equi", + "t": "11114", + "n": 1 + }, + { + "a": "equi", + "t": "11115", + "n": 1 + } + ], + "drop": 1001, + "scene": "", + "bossmodel": 11009, + "boss_skill": 51004, + "boss": [ + 301011 + ], + "ps_consume": [ + { + "a": "item", + "t": "100100", + "n": 6 + } + ], + "ps_mg": [ + { + "a": "item", + "t": "100100", + "n": 5 + } + ] + }, + { + "id": 120, + "bossid": 1, + "name": { + "key": "viking_boss_1001", + "text": "火焰泰坦" + }, + "ReadyID": 104, + "difficulty": 2, + "BattleReadyID": 104, + "captionrecommend": [ + 25001, + 25004, + 34006, + 35001, + 35002 + ], + "firstprize": [ + { + "a": "attr", + "t": "diamond", + "n": 100 + } + ], + "dropshow": [ + { + "a": "equi", + "t": "10120", + "n": 1 + }, + { + "a": "equi", + "t": "10121", + "n": 1 + }, + { + "a": "equi", + "t": "10122", + "n": 1 + }, + { + "a": "equi", + "t": "10113", + "n": 1 + }, + { + "a": "equi", + "t": "11114", + "n": 1 + }, + { + "a": "equi", + "t": "11115", + "n": 1 + } + ], + "drop": 1002, + "scene": "", + "bossmodel": 11009, + "boss_skill": 51004, + "boss": [ + 301014 + ], + "ps_consume": [ + { + "a": "item", + "t": "100100", + "n": 7 + } + ], + "ps_mg": [ + { + "a": "item", + "t": "100100", + "n": 6 + } + ] + }, + { + "id": 130, + "bossid": 1, + "name": { + "key": "viking_boss_1001", + "text": "火焰泰坦" + }, + "ReadyID": 104, + "difficulty": 3, + "BattleReadyID": 104, + "captionrecommend": [ + 25001, + 25004, + 34006, + 35001, + 35002 + ], + "firstprize": [ + { + "a": "attr", + "t": "diamond", + "n": 100 + } + ], + "dropshow": [ + { + "a": "equi", + "t": "10120", + "n": 1 + }, + { + "a": "equi", + "t": "10121", + "n": 1 + }, + { + "a": "equi", + "t": "10122", + "n": 1 + }, + { + "a": "equi", + "t": "10123", + "n": 1 + }, + { + "a": "equi", + "t": "11124", + "n": 1 + }, + { + "a": "equi", + "t": "11125", + "n": 1 + } + ], + "drop": 1003, + "scene": "", + "bossmodel": 11009, + "boss_skill": 51004, + "boss": [ + 301017 + ], + "ps_consume": [ + { + "a": "item", + "t": "100100", + "n": 8 + } + ], + "ps_mg": [ + { + "a": "item", + "t": "100100", + "n": 7 + } + ] + }, + { + "id": 140, + "bossid": 1, + "name": { + "key": "viking_boss_1001", + "text": "火焰泰坦" + }, + "ReadyID": 104, + "difficulty": 4, + "BattleReadyID": 104, + "captionrecommend": [ + 25001, + 25004, + 34006, + 35001, + 35002 + ], + "firstprize": [ + { + "a": "attr", + "t": "diamond", + "n": 100 + } + ], + "dropshow": [ + { + "a": "equi", + "t": "10130", + "n": 1 + }, + { + "a": "equi", + "t": "10131", + "n": 1 + }, + { + "a": "equi", + "t": "10132", + "n": 1 + }, + { + "a": "equi", + "t": "10123", + "n": 1 + }, + { + "a": "equi", + "t": "11124", + "n": 1 + }, + { + "a": "equi", + "t": "11125", + "n": 1 + } + ], + "drop": 1004, + "scene": "", + "bossmodel": 11009, + "boss_skill": 51004, + "boss": [ + 301020 + ], + "ps_consume": [ + { + "a": "item", + "t": "100100", + "n": 9 + } + ], + "ps_mg": [ + { + "a": "item", + "t": "100100", + "n": 8 + } + ] + }, + { + "id": 210, + "bossid": 2, + "name": { + "key": "viking_boss_1002", + "text": "冰之泰坦" + }, + "ReadyID": 104, + "difficulty": 1, + "BattleReadyID": 104, + "captionrecommend": [ + 25001, + 25004, + 34006, + 35001, + 35002 + ], + "firstprize": [ + { + "a": "attr", + "t": "diamond", + "n": 100 + } + ], + "dropshow": [ + { + "a": "equi", + "t": "10110", + "n": 1 + }, + { + "a": "equi", + "t": "10111", + "n": 1 + }, + { + "a": "equi", + "t": "10112", + "n": 1 + }, + { + "a": "equi", + "t": "10113", + "n": 1 + }, + { + "a": "equi", + "t": "11114", + "n": 1 + }, + { + "a": "equi", + "t": "11115", + "n": 1 + } + ], + "drop": 1011, + "scene": "", + "bossmodel": 11003, + "boss_skill": 51004, + "boss": [ + 302011 + ], + "ps_consume": [ + { + "a": "item", + "t": "100100", + "n": 6 + } + ], + "ps_mg": [ + { + "a": "item", + "t": "100100", + "n": 5 + } + ] + }, + { + "id": 220, + "bossid": 2, + "name": { + "key": "viking_boss_1002", + "text": "冰之泰坦" + }, + "ReadyID": 104, + "difficulty": 2, + "BattleReadyID": 104, + "captionrecommend": [ + 25001, + 25004, + 34006, + 35001, + 35002 + ], + "firstprize": [ + { + "a": "attr", + "t": "diamond", + "n": 100 + } + ], + "dropshow": [ + { + "a": "equi", + "t": "10120", + "n": 1 + }, + { + "a": "equi", + "t": "10121", + "n": 1 + }, + { + "a": "equi", + "t": "10122", + "n": 1 + }, + { + "a": "equi", + "t": "10113", + "n": 1 + }, + { + "a": "equi", + "t": "11114", + "n": 1 + }, + { + "a": "equi", + "t": "11115", + "n": 1 + } + ], + "drop": 1012, + "scene": "", + "bossmodel": 11003, + "boss_skill": 51004, + "boss": [ + 302014 + ], + "ps_consume": [ + { + "a": "item", + "t": "100100", + "n": 7 + } + ], + "ps_mg": [ + { + "a": "item", + "t": "100100", + "n": 6 + } + ] + }, + { + "id": 230, + "bossid": 2, + "name": { + "key": "viking_boss_1002", + "text": "冰之泰坦" + }, + "ReadyID": 104, + "difficulty": 3, + "BattleReadyID": 104, + "captionrecommend": [ + 25001, + 25004, + 34006, + 35001, + 35002 + ], + "firstprize": [ + { + "a": "attr", + "t": "diamond", + "n": 100 + } + ], + "dropshow": [ + { + "a": "equi", + "t": "10120", + "n": 1 + }, + { + "a": "equi", + "t": "10121", + "n": 1 + }, + { + "a": "equi", + "t": "10122", + "n": 1 + }, + { + "a": "equi", + "t": "10123", + "n": 1 + }, + { + "a": "equi", + "t": "11124", + "n": 1 + }, + { + "a": "equi", + "t": "11125", + "n": 1 + } + ], + "drop": 1013, + "scene": "", + "bossmodel": 11003, + "boss_skill": 51004, + "boss": [ + 302017 + ], + "ps_consume": [ + { + "a": "item", + "t": "100100", + "n": 8 + } + ], + "ps_mg": [ + { + "a": "item", + "t": "100100", + "n": 7 + } + ] + }, + { + "id": 240, + "bossid": 2, + "name": { + "key": "viking_boss_1002", + "text": "冰之泰坦" + }, + "ReadyID": 104, + "difficulty": 4, + "BattleReadyID": 104, + "captionrecommend": [ + 25001, + 25004, + 34006, + 35001, + 35002 + ], + "firstprize": [ + { + "a": "attr", + "t": "diamond", + "n": 100 + } + ], + "dropshow": [ + { + "a": "equi", + "t": "10130", + "n": 1 + }, + { + "a": "equi", + "t": "10131", + "n": 1 + }, + { + "a": "equi", + "t": "10132", + "n": 1 + }, + { + "a": "equi", + "t": "10123", + "n": 1 + }, + { + "a": "equi", + "t": "11124", + "n": 1 + }, + { + "a": "equi", + "t": "11125", + "n": 1 + } + ], + "drop": 1014, + "scene": "", + "bossmodel": 11003, + "boss_skill": 51004, + "boss": [ + 302020 + ], + "ps_consume": [ + { + "a": "item", + "t": "100100", + "n": 9 + } + ], + "ps_mg": [ + { + "a": "item", + "t": "100100", + "n": 8 + } + ] + }, + { + "id": 310, + "bossid": 3, + "name": { + "key": "viking_boss_1003", + "text": "森林泰坦" + }, + "ReadyID": 104, + "difficulty": 1, + "BattleReadyID": 104, + "captionrecommend": [ + 25001, + 25004, + 34006, + 35001, + 35002 + ], + "firstprize": [ + { + "a": "attr", + "t": "diamond", + "n": 100 + } + ], + "dropshow": [ + { + "a": "equi", + "t": "10110", + "n": 1 + }, + { + "a": "equi", + "t": "10111", + "n": 1 + }, + { + "a": "equi", + "t": "10112", + "n": 1 + }, + { + "a": "equi", + "t": "10113", + "n": 1 + }, + { + "a": "equi", + "t": "11114", + "n": 1 + }, + { + "a": "equi", + "t": "11115", + "n": 1 + } + ], + "drop": 1021, + "scene": "", + "bossmodel": 11018, + "boss_skill": 51004, + "boss": [ + 303011 + ], + "ps_consume": [ + { + "a": "item", + "t": "100100", + "n": 6 + } + ], + "ps_mg": [ + { + "a": "item", + "t": "100100", + "n": 5 + } + ] + }, + { + "id": 320, + "bossid": 3, + "name": { + "key": "viking_boss_1003", + "text": "森林泰坦" + }, + "ReadyID": 104, + "difficulty": 2, + "BattleReadyID": 104, + "captionrecommend": [ + 25001, + 25004, + 34006, + 35001, + 35002 + ], + "firstprize": [ + { + "a": "attr", + "t": "diamond", + "n": 100 + } + ], + "dropshow": [ + { + "a": "equi", + "t": "10120", + "n": 1 + }, + { + "a": "equi", + "t": "10121", + "n": 1 + }, + { + "a": "equi", + "t": "10122", + "n": 1 + }, + { + "a": "equi", + "t": "10113", + "n": 1 + }, + { + "a": "equi", + "t": "11114", + "n": 1 + }, + { + "a": "equi", + "t": "11115", + "n": 1 + } + ], + "drop": 1022, + "scene": "", + "bossmodel": 11018, + "boss_skill": 51004, + "boss": [ + 303014 + ], + "ps_consume": [ + { + "a": "item", + "t": "100100", + "n": 7 + } + ], + "ps_mg": [ + { + "a": "item", + "t": "100100", + "n": 6 + } + ] + }, + { + "id": 330, + "bossid": 3, + "name": { + "key": "viking_boss_1003", + "text": "森林泰坦" + }, + "ReadyID": 104, + "difficulty": 3, + "BattleReadyID": 104, + "captionrecommend": [ + 25001, + 25004, + 34006, + 35001, + 35002 + ], + "firstprize": [ + { + "a": "attr", + "t": "diamond", + "n": 100 + } + ], + "dropshow": [ + { + "a": "equi", + "t": "10120", + "n": 1 + }, + { + "a": "equi", + "t": "10121", + "n": 1 + }, + { + "a": "equi", + "t": "10122", + "n": 1 + }, + { + "a": "equi", + "t": "10123", + "n": 1 + }, + { + "a": "equi", + "t": "11124", + "n": 1 + }, + { + "a": "equi", + "t": "11125", + "n": 1 + } + ], + "drop": 1023, + "scene": "", + "bossmodel": 11018, + "boss_skill": 51004, + "boss": [ + 303017 + ], + "ps_consume": [ + { + "a": "item", + "t": "100100", + "n": 8 + } + ], + "ps_mg": [ + { + "a": "item", + "t": "100100", + "n": 7 + } + ] + }, + { + "id": 340, + "bossid": 3, + "name": { + "key": "viking_boss_1003", + "text": "森林泰坦" + }, + "ReadyID": 104, + "difficulty": 4, + "BattleReadyID": 104, + "captionrecommend": [ + 25001, + 25004, + 34006, + 35001, + 35002 + ], + "firstprize": [ + { + "a": "attr", + "t": "diamond", + "n": 100 + } + ], + "dropshow": [ + { + "a": "equi", + "t": "10130", + "n": 1 + }, + { + "a": "equi", + "t": "10131", + "n": 1 + }, + { + "a": "equi", + "t": "10132", + "n": 1 + }, + { + "a": "equi", + "t": "10123", + "n": 1 + }, + { + "a": "equi", + "t": "11124", + "n": 1 + }, + { + "a": "equi", + "t": "11125", + "n": 1 + } + ], + "drop": 1024, + "scene": "", + "bossmodel": 11018, + "boss_skill": 51004, + "boss": [ + 303020 + ], + "ps_consume": [ + { + "a": "item", + "t": "100100", + "n": 9 + } + ], + "ps_mg": [ + { + "a": "item", + "t": "100100", + "n": 8 + } + ] + }, + { + "id": 410, + "bossid": 11, + "name": { + "key": "viking_boss_1001", + "text": "武器BOSS" + }, + "ReadyID": 104, + "difficulty": 1, + "BattleReadyID": 104, + "captionrecommend": [ + 25001, + 25004, + 34006, + 35001, + 35002 + ], + "firstprize": [ + { + "a": "attr", + "t": "diamond", + "n": 100 + } + ], + "dropshow": [ + { + "a": "equi", + "t": "20010", + "n": 1 + }, + { + "a": "equi", + "t": "20011", + "n": 1 + }, + { + "a": "equi", + "t": "20012", + "n": 1 + }, + { + "a": "equi", + "t": "20013", + "n": 1 + } + ], + "drop": 1001, + "scene": "", + "bossmodel": 11009, + "boss_skill": 51004, + "boss": [ + 301011 + ], + "ps_consume": [ + { + "a": "item", + "t": "100100", + "n": 6 + } + ], + "ps_mg": [ + { + "a": "item", + "t": "100100", + "n": 5 + } + ] + } +] \ No newline at end of file diff --git a/bin/json/game_privilege.json b/bin/json/game_privilege.json index b26e55b3e..167133f88 100644 --- a/bin/json/game_privilege.json +++ b/bin/json/game_privilege.json @@ -4,7 +4,7 @@ "privilege_type": 1, "privilege_DescribeFront": { "key": "privilege_10101", - "text": "每日获得" + "text": "购买后获得" }, "privilege_DescribeAfter": { "key": "PrivilegeAfter_10101", @@ -43,7 +43,7 @@ "privilege_type": 1, "privilege_DescribeFront": { "key": "privilege_10201", - "text": "每日获得" + "text": "每日免费刷新商店" }, "privilege_DescribeAfter": { "key": "PrivilegeAfter_10201", @@ -56,11 +56,11 @@ "privilege_type": 2, "privilege_DescribeFront": { "key": "privilege_10202", - "text": "金币商店每日" + "text": "每日获得" }, "privilege_DescribeAfter": { "key": "PrivilegeAfter_10202", - "text": "免费刷新次数+1" + "text": "免费刷新次数+2" }, "privilege_parameter": 1 }, @@ -69,11 +69,11 @@ "privilege_type": 7, "privilege_DescribeFront": { "key": "privilege_10203", - "text": "巨怪商队" + "text": "每周获得" }, "privilege_DescribeAfter": { "key": "PrivilegeAfter_10203", - "text": "背包容量+1" + "text": "背包容量+2" }, "privilege_parameter": 1 }, diff --git a/bin/json/game_smithycustomer.json b/bin/json/game_smithycustomer.json new file mode 100644 index 000000000..a3068e3de --- /dev/null +++ b/bin/json/game_smithycustomer.json @@ -0,0 +1,46 @@ +[ + { + "customer_id": 1, + "customer_type": 1, + "customer_speak": { + "key": "我需要{0}件【{1}】,如果你暂时没有备货的话我可以在这等一段时间,但不会太久。", + "text": "" + }, + "goods": [], + "reword": [], + "weight": 4500 + }, + { + "customer_id": 2, + "customer_type": 2, + "customer_speak": { + "key": "我需要{0}件【{1}】,如果你暂时没有备货的话我可以在这等一段时间,但不会太久。", + "text": "" + }, + "goods": [], + "reword": [], + "weight": 4500 + }, + { + "customer_id": 3, + "customer_type": 3, + "customer_speak": { + "key": "", + "text": "" + }, + "goods": [], + "reword": [], + "weight": 500 + }, + { + "customer_id": 4, + "customer_type": 4, + "customer_speak": { + "key": "我有个宝贝,你要是喜欢的话便宜你点卖你。", + "text": "" + }, + "goods": [], + "reword": [], + "weight": 500 + } +] \ No newline at end of file diff --git a/bin/json/game_smithyproficiency.json b/bin/json/game_smithyproficiency.json new file mode 100644 index 000000000..8f26b84f8 --- /dev/null +++ b/bin/json/game_smithyproficiency.json @@ -0,0 +1,376 @@ +[ + { + "id": 1, + "proficiency": 20, + "reelId": 1, + "proficiency_lv": 1, + "title_text": { + "key": "1", + "text": "lv.{0}:熟练度{1}" + }, + "content_text": { + "key": "1", + "text": "炉温消耗-{0}%" + }, + "type": 1, + "value1": 100, + "value2": 0 + }, + { + "id": 2, + "proficiency": 40, + "reelId": 1, + "proficiency_lv": 2, + "title_text": { + "key": "1", + "text": "lv.{0}:熟练度{1}" + }, + "content_text": { + "key": "2", + "text": "材料消耗减少" + }, + "type": 2, + "value1": 10001, + "value2": -275 + }, + { + "id": 3, + "proficiency": 60, + "reelId": 1, + "proficiency_lv": 3, + "title_text": { + "key": "1", + "text": "lv.{0}:熟练度{1}" + }, + "content_text": { + "key": "3", + "text": "解锁图纸【紫金雷神锤】" + }, + "type": 3, + "value1": 2, + "value2": 0 + }, + { + "id": 4, + "proficiency": 80, + "reelId": 1, + "proficiency_lv": 4, + "title_text": { + "key": "1", + "text": "lv.{0}:熟练度{1}" + }, + "content_text": { + "key": "4", + "text": "解锁套装" + }, + "type": 4, + "value1": 5, + "value2": 0 + }, + { + "id": 5, + "proficiency": 100, + "reelId": 1, + "proficiency_lv": 5, + "title_text": { + "key": "1", + "text": "lv.{0}:熟练度{1}" + }, + "content_text": { + "key": "5", + "text": "{0}级装备售价提高{1}%" + }, + "type": 5, + "value1": 1, + "value2": 10 + }, + { + "id": 6, + "proficiency": 120, + "reelId": 0, + "proficiency_lv": 0, + "title_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "", + "text": "" + }, + "type": 1, + "value1": 0, + "value2": 0 + }, + { + "id": 7, + "proficiency": 140, + "reelId": 0, + "proficiency_lv": 0, + "title_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "", + "text": "" + }, + "type": 0, + "value1": 0, + "value2": 0 + }, + { + "id": 8, + "proficiency": 160, + "reelId": 0, + "proficiency_lv": 0, + "title_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "", + "text": "" + }, + "type": 0, + "value1": 0, + "value2": 0 + }, + { + "id": 9, + "proficiency": 180, + "reelId": 0, + "proficiency_lv": 0, + "title_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "", + "text": "" + }, + "type": 0, + "value1": 0, + "value2": 0 + }, + { + "id": 10, + "proficiency": 200, + "reelId": 0, + "proficiency_lv": 0, + "title_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "", + "text": "" + }, + "type": 0, + "value1": 0, + "value2": 0 + }, + { + "id": 11, + "proficiency": 220, + "reelId": 0, + "proficiency_lv": 0, + "title_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "", + "text": "" + }, + "type": 0, + "value1": 0, + "value2": 0 + }, + { + "id": 12, + "proficiency": 240, + "reelId": 0, + "proficiency_lv": 0, + "title_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "", + "text": "" + }, + "type": 0, + "value1": 0, + "value2": 0 + }, + { + "id": 13, + "proficiency": 260, + "reelId": 0, + "proficiency_lv": 0, + "title_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "", + "text": "" + }, + "type": 0, + "value1": 0, + "value2": 0 + }, + { + "id": 14, + "proficiency": 280, + "reelId": 0, + "proficiency_lv": 0, + "title_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "", + "text": "" + }, + "type": 0, + "value1": 0, + "value2": 0 + }, + { + "id": 15, + "proficiency": 300, + "reelId": 0, + "proficiency_lv": 0, + "title_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "", + "text": "" + }, + "type": 0, + "value1": 0, + "value2": 0 + }, + { + "id": 16, + "proficiency": 0, + "reelId": 0, + "proficiency_lv": 0, + "title_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "", + "text": "" + }, + "type": 0, + "value1": 0, + "value2": 0 + }, + { + "id": 17, + "proficiency": 0, + "reelId": 0, + "proficiency_lv": 0, + "title_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "", + "text": "" + }, + "type": 0, + "value1": 0, + "value2": 0 + }, + { + "id": 18, + "proficiency": 0, + "reelId": 0, + "proficiency_lv": 0, + "title_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "", + "text": "" + }, + "type": 0, + "value1": 0, + "value2": 0 + }, + { + "id": 19, + "proficiency": 0, + "reelId": 0, + "proficiency_lv": 0, + "title_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "", + "text": "" + }, + "type": 0, + "value1": 0, + "value2": 0 + }, + { + "id": 20, + "proficiency": 0, + "reelId": 0, + "proficiency_lv": 0, + "title_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "", + "text": "" + }, + "type": 0, + "value1": 0, + "value2": 0 + }, + { + "id": 21, + "proficiency": 0, + "reelId": 0, + "proficiency_lv": 0, + "title_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "", + "text": "" + }, + "type": 0, + "value1": 0, + "value2": 0 + }, + { + "id": 22, + "proficiency": 0, + "reelId": 0, + "proficiency_lv": 0, + "title_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "", + "text": "" + }, + "type": 0, + "value1": 0, + "value2": 0 + } +] \ No newline at end of file diff --git a/bin/json/game_smithystovev1.json b/bin/json/game_smithystovev1.json new file mode 100644 index 000000000..248b61975 --- /dev/null +++ b/bin/json/game_smithystovev1.json @@ -0,0 +1,262 @@ +[ + { + "star": 1, + "max_temperature": 2000, + "temperature_recovery": 60, + "up_material": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10001", + "n": 2 + }, + { + "a": "item", + "t": "10001", + "n": 3 + } + ], + "title_text": { + "key": "1", + "text": "冶炼炉lv.1" + } + }, + { + "star": 2, + "max_temperature": 2100, + "temperature_recovery": 63, + "up_material": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10001", + "n": 2 + }, + { + "a": "item", + "t": "10001", + "n": 3 + } + ], + "title_text": { + "key": "2", + "text": "冶炼炉lv.2" + } + }, + { + "star": 3, + "max_temperature": 2200, + "temperature_recovery": 66, + "up_material": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10001", + "n": 2 + }, + { + "a": "item", + "t": "10001", + "n": 3 + } + ], + "title_text": { + "key": "3", + "text": "冶炼炉lv.3" + } + }, + { + "star": 4, + "max_temperature": 2300, + "temperature_recovery": 69, + "up_material": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10001", + "n": 2 + }, + { + "a": "item", + "t": "10001", + "n": 3 + } + ], + "title_text": { + "key": "4", + "text": "冶炼炉lv.4" + } + }, + { + "star": 5, + "max_temperature": 2400, + "temperature_recovery": 72, + "up_material": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10001", + "n": 2 + }, + { + "a": "item", + "t": "10001", + "n": 3 + } + ], + "title_text": { + "key": "5", + "text": "冶炼炉lv.5" + } + }, + { + "star": 6, + "max_temperature": 2500, + "temperature_recovery": 75, + "up_material": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10001", + "n": 2 + }, + { + "a": "item", + "t": "10001", + "n": 3 + } + ], + "title_text": { + "key": "6", + "text": "冶炼炉lv.6" + } + }, + { + "star": 7, + "max_temperature": 2600, + "temperature_recovery": 78, + "up_material": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10001", + "n": 2 + }, + { + "a": "item", + "t": "10001", + "n": 3 + } + ], + "title_text": { + "key": "7", + "text": "冶炼炉lv.7" + } + }, + { + "star": 8, + "max_temperature": 2700, + "temperature_recovery": 81, + "up_material": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10001", + "n": 2 + }, + { + "a": "item", + "t": "10001", + "n": 3 + } + ], + "title_text": { + "key": "8", + "text": "冶炼炉lv.8" + } + }, + { + "star": 9, + "max_temperature": 2800, + "temperature_recovery": 84, + "up_material": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10001", + "n": 2 + }, + { + "a": "item", + "t": "10001", + "n": 3 + } + ], + "title_text": { + "key": "9", + "text": "冶炼炉lv.9" + } + }, + { + "star": 10, + "max_temperature": 3000, + "temperature_recovery": 90, + "up_material": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10001", + "n": 2 + }, + { + "a": "item", + "t": "10001", + "n": 3 + } + ], + "title_text": { + "key": "10", + "text": "冶炼炉lv.10" + } + } +] \ No newline at end of file diff --git a/bin/json/game_smithytool.json b/bin/json/game_smithytool.json new file mode 100644 index 000000000..4e2fd0e9d --- /dev/null +++ b/bin/json/game_smithytool.json @@ -0,0 +1,962 @@ +[ + { + "id": 1, + "skill_type": 1, + "skill_lv": 1, + "preconditions": 0, + "up_material": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10001", + "n": 2 + }, + { + "a": "item", + "t": "10001", + "n": 3 + } + ], + "name_text": { + "key": "1", + "text": "测量尺lv.{0}" + }, + "content_text": { + "key": "1", + "text": "史诗品质概率提升{0}%" + }, + "value": 5 + }, + { + "id": 2, + "skill_type": 1, + "skill_lv": 2, + "preconditions": 0, + "up_material": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10001", + "n": 2 + }, + { + "a": "item", + "t": "10001", + "n": 3 + } + ], + "name_text": { + "key": "2", + "text": "测量尺lv.{0}" + }, + "content_text": { + "key": "2", + "text": "史诗品质概率提升{0}%" + }, + "value": 10 + }, + { + "id": 3, + "skill_type": 1, + "skill_lv": 3, + "preconditions": 0, + "up_material": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10001", + "n": 2 + }, + { + "a": "item", + "t": "10001", + "n": 3 + } + ], + "name_text": { + "key": "3", + "text": "测量尺lv.{0}" + }, + "content_text": { + "key": "3", + "text": "史诗品质概率提升{0}%" + }, + "value": 15 + }, + { + "id": 4, + "skill_type": 1, + "skill_lv": 4, + "preconditions": 0, + "up_material": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10001", + "n": 2 + }, + { + "a": "item", + "t": "10001", + "n": 3 + } + ], + "name_text": { + "key": "4", + "text": "测量尺lv.{0}" + }, + "content_text": { + "key": "4", + "text": "史诗品质概率提升{0}%" + }, + "value": 20 + }, + { + "id": 5, + "skill_type": 1, + "skill_lv": 5, + "preconditions": 0, + "up_material": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10001", + "n": 2 + }, + { + "a": "item", + "t": "10001", + "n": 3 + } + ], + "name_text": { + "key": "5", + "text": "测量尺lv.{0}" + }, + "content_text": { + "key": "5", + "text": "史诗品质概率提升{0}%" + }, + "value": 25 + }, + { + "id": 6, + "skill_type": 1, + "skill_lv": 6, + "preconditions": 0, + "up_material": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10001", + "n": 2 + }, + { + "a": "item", + "t": "10001", + "n": 3 + } + ], + "name_text": { + "key": "6", + "text": "测量尺lv.{0}" + }, + "content_text": { + "key": "6", + "text": "史诗品质概率提升{0}%" + }, + "value": 30 + }, + { + "id": 7, + "skill_type": 1, + "skill_lv": 7, + "preconditions": 0, + "up_material": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10001", + "n": 2 + }, + { + "a": "item", + "t": "10001", + "n": 3 + } + ], + "name_text": { + "key": "7", + "text": "测量尺lv.{0}" + }, + "content_text": { + "key": "7", + "text": "史诗品质概率提升{0}%" + }, + "value": 35 + }, + { + "id": 8, + "skill_type": 1, + "skill_lv": 8, + "preconditions": 0, + "up_material": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10001", + "n": 2 + }, + { + "a": "item", + "t": "10001", + "n": 3 + } + ], + "name_text": { + "key": "8", + "text": "测量尺lv.{0}" + }, + "content_text": { + "key": "8", + "text": "史诗品质概率提升{0}%" + }, + "value": 40 + }, + { + "id": 9, + "skill_type": 1, + "skill_lv": 9, + "preconditions": 0, + "up_material": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10001", + "n": 2 + }, + { + "a": "item", + "t": "10001", + "n": 3 + } + ], + "name_text": { + "key": "9", + "text": "测量尺lv.{0}" + }, + "content_text": { + "key": "9", + "text": "史诗品质概率提升{0}%" + }, + "value": 45 + }, + { + "id": 10, + "skill_type": 1, + "skill_lv": 10, + "preconditions": 0, + "up_material": [ + { + "a": "item", + "t": "10001", + "n": 1 + }, + { + "a": "item", + "t": "10001", + "n": 2 + }, + { + "a": "item", + "t": "10001", + "n": 3 + } + ], + "name_text": { + "key": "10", + "text": "测量尺lv.{0}" + }, + "content_text": { + "key": "10", + "text": "史诗品质概率提升{0}%" + }, + "value": 50 + }, + { + "id": 11, + "skill_type": 2, + "skill_lv": 1, + "preconditions": 5, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "11", + "text": "所有装备售价提升{0}%" + }, + "value": 0 + }, + { + "id": 12, + "skill_type": 2, + "skill_lv": 2, + "preconditions": 15, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "12", + "text": "所有装备售价提升{0}%" + }, + "value": 0 + }, + { + "id": 13, + "skill_type": 2, + "skill_lv": 3, + "preconditions": 15, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "13", + "text": "所有装备售价提升{0}%" + }, + "value": 0 + }, + { + "id": 14, + "skill_type": 2, + "skill_lv": 4, + "preconditions": 15, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "14", + "text": "所有装备售价提升{0}%" + }, + "value": 0 + }, + { + "id": 15, + "skill_type": 2, + "skill_lv": 5, + "preconditions": 15, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "15", + "text": "所有装备售价提升{0}%" + }, + "value": 0 + }, + { + "id": 16, + "skill_type": 2, + "skill_lv": 6, + "preconditions": 15, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "16", + "text": "所有装备售价提升{0}%" + }, + "value": 0 + }, + { + "id": 17, + "skill_type": 2, + "skill_lv": 7, + "preconditions": 15, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "17", + "text": "所有装备售价提升{0}%" + }, + "value": 0 + }, + { + "id": 18, + "skill_type": 2, + "skill_lv": 8, + "preconditions": 15, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "18", + "text": "所有装备售价提升{0}%" + }, + "value": 0 + }, + { + "id": 19, + "skill_type": 2, + "skill_lv": 9, + "preconditions": 15, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "19", + "text": "所有装备售价提升{0}%" + }, + "value": 0 + }, + { + "id": 20, + "skill_type": 2, + "skill_lv": 10, + "preconditions": 15, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "20", + "text": "所有装备售价提升{0}%" + }, + "value": 0 + }, + { + "id": 21, + "skill_type": 3, + "skill_lv": 1, + "preconditions": 25, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "21", + "text": "所有图纸炉温消耗减少{0}%" + }, + "value": 0 + }, + { + "id": 22, + "skill_type": 3, + "skill_lv": 2, + "preconditions": 25, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "22", + "text": "所有图纸炉温消耗减少{0}%" + }, + "value": 0 + }, + { + "id": 23, + "skill_type": 3, + "skill_lv": 3, + "preconditions": 25, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "23", + "text": "所有图纸炉温消耗减少{0}%" + }, + "value": 0 + }, + { + "id": 24, + "skill_type": 3, + "skill_lv": 4, + "preconditions": 25, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "24", + "text": "所有图纸炉温消耗减少{0}%" + }, + "value": 0 + }, + { + "id": 25, + "skill_type": 3, + "skill_lv": 5, + "preconditions": 25, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "25", + "text": "所有图纸炉温消耗减少{0}%" + }, + "value": 0 + }, + { + "id": 26, + "skill_type": 3, + "skill_lv": 6, + "preconditions": 25, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "26", + "text": "所有图纸炉温消耗减少{0}%" + }, + "value": 0 + }, + { + "id": 27, + "skill_type": 3, + "skill_lv": 7, + "preconditions": 25, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "27", + "text": "所有图纸炉温消耗减少{0}%" + }, + "value": 0 + }, + { + "id": 28, + "skill_type": 3, + "skill_lv": 8, + "preconditions": 25, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "28", + "text": "所有图纸炉温消耗减少{0}%" + }, + "value": 0 + }, + { + "id": 29, + "skill_type": 3, + "skill_lv": 9, + "preconditions": 25, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "29", + "text": "所有图纸炉温消耗减少{0}%" + }, + "value": 0 + }, + { + "id": 30, + "skill_type": 3, + "skill_lv": 10, + "preconditions": 25, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "30", + "text": "所有图纸炉温消耗减少{0}%" + }, + "value": 0 + }, + { + "id": 31, + "skill_type": 4, + "skill_lv": 1, + "preconditions": 35, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "31", + "text": "每日顾客数量提升至{0}人" + }, + "value": 0 + }, + { + "id": 32, + "skill_type": 4, + "skill_lv": 2, + "preconditions": 35, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "32", + "text": "每日顾客数量提升至{0}人" + }, + "value": 0 + }, + { + "id": 33, + "skill_type": 4, + "skill_lv": 3, + "preconditions": 35, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "33", + "text": "每日顾客数量提升至{0}人" + }, + "value": 0 + }, + { + "id": 34, + "skill_type": 4, + "skill_lv": 4, + "preconditions": 35, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "34", + "text": "每日顾客数量提升至{0}人" + }, + "value": 0 + }, + { + "id": 35, + "skill_type": 4, + "skill_lv": 5, + "preconditions": 35, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "35", + "text": "每日顾客数量提升至{0}人" + }, + "value": 0 + }, + { + "id": 36, + "skill_type": 4, + "skill_lv": 6, + "preconditions": 35, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "36", + "text": "每日顾客数量提升至{0}人" + }, + "value": 0 + }, + { + "id": 37, + "skill_type": 4, + "skill_lv": 7, + "preconditions": 35, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "37", + "text": "每日顾客数量提升至{0}人" + }, + "value": 0 + }, + { + "id": 38, + "skill_type": 4, + "skill_lv": 8, + "preconditions": 35, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "38", + "text": "每日顾客数量提升至{0}人" + }, + "value": 0 + }, + { + "id": 39, + "skill_type": 4, + "skill_lv": 9, + "preconditions": 35, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "39", + "text": "每日顾客数量提升至{0}人" + }, + "value": 0 + }, + { + "id": 40, + "skill_type": 4, + "skill_lv": 10, + "preconditions": 35, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "40", + "text": "每日顾客数量提升至{0}人" + }, + "value": 0 + }, + { + "id": 41, + "skill_type": 5, + "skill_lv": 1, + "preconditions": 45, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "41", + "text": "顾客购买装备数量上限提高至{0}件" + }, + "value": 0 + }, + { + "id": 42, + "skill_type": 5, + "skill_lv": 2, + "preconditions": 45, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "42", + "text": "顾客购买装备数量上限提高至{0}件" + }, + "value": 0 + }, + { + "id": 43, + "skill_type": 5, + "skill_lv": 3, + "preconditions": 45, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "43", + "text": "顾客购买装备数量上限提高至{0}件" + }, + "value": 0 + }, + { + "id": 44, + "skill_type": 5, + "skill_lv": 4, + "preconditions": 45, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "44", + "text": "顾客购买装备数量上限提高至{0}件" + }, + "value": 0 + }, + { + "id": 45, + "skill_type": 5, + "skill_lv": 5, + "preconditions": 45, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "45", + "text": "顾客购买装备数量上限提高至{0}件" + }, + "value": 0 + }, + { + "id": 46, + "skill_type": 5, + "skill_lv": 6, + "preconditions": 45, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "46", + "text": "顾客购买装备数量上限提高至{0}件" + }, + "value": 0 + }, + { + "id": 47, + "skill_type": 5, + "skill_lv": 7, + "preconditions": 45, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "47", + "text": "顾客购买装备数量上限提高至{0}件" + }, + "value": 0 + }, + { + "id": 48, + "skill_type": 5, + "skill_lv": 8, + "preconditions": 45, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "48", + "text": "顾客购买装备数量上限提高至{0}件" + }, + "value": 0 + }, + { + "id": 49, + "skill_type": 5, + "skill_lv": 9, + "preconditions": 45, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "49", + "text": "顾客购买装备数量上限提高至{0}件" + }, + "value": 0 + }, + { + "id": 50, + "skill_type": 5, + "skill_lv": 10, + "preconditions": 45, + "up_material": [], + "name_text": { + "key": "", + "text": "" + }, + "content_text": { + "key": "50", + "text": "顾客购买装备数量上限提高至{0}件" + }, + "value": 0 + } +] \ No newline at end of file diff --git a/bin/json/game_teaching.json b/bin/json/game_teaching.json index 028808a46..41f3296d7 100644 --- a/bin/json/game_teaching.json +++ b/bin/json/game_teaching.json @@ -22,7 +22,7 @@ "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "tips": { - "key": "mainline_desc_10001", + "key": "mainline_desc_X", "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "task": [ @@ -67,7 +67,7 @@ "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "tips": { - "key": "mainline_desc_10001", + "key": "mainline_desc_X", "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "task": [ @@ -112,7 +112,7 @@ "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "tips": { - "key": "mainline_desc_10001", + "key": "mainline_desc_X", "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "task": [ @@ -157,7 +157,7 @@ "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "tips": { - "key": "mainline_desc_10001", + "key": "mainline_desc_X", "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "task": [ @@ -202,7 +202,7 @@ "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "tips": { - "key": "mainline_desc_10001", + "key": "mainline_desc_X", "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "task": [ @@ -247,7 +247,7 @@ "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "tips": { - "key": "mainline_desc_10001", + "key": "mainline_desc_X", "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "task": [ @@ -292,7 +292,7 @@ "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "tips": { - "key": "mainline_desc_10001", + "key": "mainline_desc_X", "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "task": [ @@ -337,7 +337,7 @@ "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "tips": { - "key": "mainline_desc_10001", + "key": "mainline_desc_X", "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "task": [ @@ -382,7 +382,7 @@ "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "tips": { - "key": "mainline_desc_10001", + "key": "mainline_desc_X", "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "task": [ @@ -427,7 +427,7 @@ "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "tips": { - "key": "mainline_desc_10001", + "key": "mainline_desc_X", "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "task": [ @@ -472,7 +472,7 @@ "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "tips": { - "key": "mainline_desc_10001", + "key": "mainline_desc_X", "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "task": [ @@ -517,7 +517,7 @@ "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "tips": { - "key": "mainline_desc_10001", + "key": "mainline_desc_X", "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "task": [ @@ -562,7 +562,7 @@ "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "tips": { - "key": "mainline_desc_10001", + "key": "mainline_desc_X", "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "task": [ @@ -607,7 +607,7 @@ "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "tips": { - "key": "mainline_desc_10001", + "key": "mainline_desc_X", "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "task": [ @@ -652,7 +652,7 @@ "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "tips": { - "key": "mainline_desc_10001", + "key": "mainline_desc_X", "text": "在实战中学习能够影响攻击力和防御力的技能作用" }, "task": [ diff --git a/bin/json/game_trollgoods.json b/bin/json/game_trollgoods.json index 52114be33..6f54c5137 100644 --- a/bin/json/game_trollgoods.json +++ b/bin/json/game_trollgoods.json @@ -1,110 +1,218 @@ [ { "id": 1, - "goodsname": "物品1", + "goodsname": { + "key": "itemname_40002", + "text": "物品1" + }, "goodsfor": 1, - "goodsinfor": "物品1货品信息", + "goodsinfor": { + "key": "itemname_40002", + "text": "物品1货品信息" + }, "goodsicon": "clmsg_ll_01", "goodsprice": 2000, "star_money": 12000, - "uptext": "听说最近黑色峡谷的蘑菇供应不求,如果碰上,你或许可以囤积一些", - "suptext": "我有一个好消息告诉你,咱们即将赚大发了,在下一个地区!", + "uptext": { + "key": "hearsay1", + "text": "听说最近黑色峡谷的蘑菇供应不求,如果碰上,你或许可以囤积一些" + }, + "suptext": { + "key": "suphearsay", + "text": "我有一个好消息告诉你,咱们即将赚大发了,在下一个地区!" + }, "max": 40 }, { "id": 2, - "goodsname": "物品2", + "goodsname": { + "key": "itemname_40002", + "text": "物品2" + }, "goodsfor": 1, - "goodsinfor": "物品2货品信息", + "goodsinfor": { + "key": "itemname_40002", + "text": "物品2货品信息" + }, "goodsicon": "clmsg_ll_02", "goodsprice": 2000, "star_money": 13000, - "uptext": "嘿,你有听说过老人与海的故事吗,没听过也不打紧,一些贵族正在收购一批海鱼,价格都已经被炒上天了,留意这个发财的机会,兄弟。", - "suptext": "我有一个好消息告诉你,咱们即将赚大发了,在下一个地区!", + "uptext": { + "key": "hearsay2", + "text": "嘿,你有听说过老人与海的故事吗,没听过也不打紧,一些贵族正在收购一批海鱼,价格都已经被炒上天了,留意这个发财的机会,兄弟。" + }, + "suptext": { + "key": "suphearsay", + "text": "我有一个好消息告诉你,咱们即将赚大发了,在下一个地区!" + }, "max": 40 }, { "id": 3, - "goodsname": "物品3", + "goodsname": { + "key": "itemname_40002", + "text": "物品3" + }, "goodsfor": 1, - "goodsinfor": "物品3货品信息", + "goodsinfor": { + "key": "itemname_40002", + "text": "物品3货品信息" + }, "goodsicon": "clmsg_ll_03", "goodsprice": 2000, "star_money": 14000, - "uptext": "没人会拒绝寻香草的诱惑,尤其是商人,你说对吧。我有一个老主顾,他的孩子满月,现在正需要很多这个玩意,记得留心一下哦~", - "suptext": "我有一个好消息告诉你,咱们即将赚大发了,在下一个地区!", + "uptext": { + "key": "hearsay3", + "text": "没人会拒绝寻香草的诱惑,尤其是商人,你说对吧。我有一个老主顾,他的孩子满月,现在正需要很多这个玩意,记得留心一下哦~" + }, + "suptext": { + "key": "suphearsay", + "text": "我有一个好消息告诉你,咱们即将赚大发了,在下一个地区!" + }, "max": 40 }, { "id": 4, - "goodsname": "物品4", + "goodsname": { + "key": "itemname_40002", + "text": "物品4" + }, "goodsfor": 2, - "goodsinfor": "物品4货品信息", + "goodsinfor": { + "key": "itemname_40002", + "text": "物品4货品信息" + }, "goodsicon": "clmsg_ll_04", "goodsprice": 2000, "star_money": 11000, - "uptext": "好吧,你消息你运气来了,神龙大年久失修,正需要一批上好的木材,而你的下一个目的地......啧啧啧,有时候我真羡慕你的运气。", - "suptext": "我有一个好消息告诉你,咱们即将赚大发了,在下一个地区!", + "uptext": { + "key": "hearsay4", + "text": "好吧,你消息你运气来了,神龙大年久失修,正需要一批上好的木材,而你的下一个目的地......啧啧啧,有时候我真羡慕你的运气。" + }, + "suptext": { + "key": "suphearsay", + "text": "我有一个好消息告诉你,咱们即将赚大发了,在下一个地区!" + }, "max": 40 }, { "id": 5, - "goodsname": "物品5", + "goodsname": { + "key": "itemname_40002", + "text": "物品5" + }, "goodsfor": 2, - "goodsinfor": "物品5货品信息", + "goodsinfor": { + "key": "itemname_40002", + "text": "物品5货品信息" + }, "goodsicon": "clmsg_ll_05", "goodsprice": 2000, "star_money": 1000, - "uptext": "这次是我的私人消息,听说阿宝的某一个师兄越狱了,正在到处进行破坏,各地的村民都在收购铁器以备不时之需。我知道这很缺德,但咱们可是商人,赚谁的钱不是赚?", - "suptext": "我有一个好消息告诉你,咱们即将赚大发了,在下一个地区!", + "uptext": { + "key": "hearsay5", + "text": "这次是我的私人消息,听说阿宝的某一个师兄越狱了,正在到处进行破坏,各地的村民都在收购铁器以备不时之需。我知道这很缺德,但咱们可是商人,赚谁的钱不是赚?" + }, + "suptext": { + "key": "suphearsay", + "text": "我有一个好消息告诉你,咱们即将赚大发了,在下一个地区!" + }, "max": 30 }, { "id": 6, - "goodsname": "物品6", + "goodsname": { + "key": "itemname_40002", + "text": "物品6" + }, "goodsfor": 2, - "goodsinfor": "物品6货品信息", + "goodsinfor": { + "key": "itemname_40002", + "text": "物品6货品信息" + }, "goodsicon": "wp_icon_0003", "goodsprice": 2000, "star_money": 2000, - "uptext": "一根上号的雪茄,一杯威士忌,还有一把趁手的兵器,这或许就是男人最大的浪漫了。那帮维京人马上就要开始捕羊大赛了,你猜猜他们现在最需要什么?那可是场庆典,你懂得~", - "suptext": "我有一个好消息告诉你,咱们即将赚大发了,在下一个地区!", + "uptext": { + "key": "hearsay6", + "text": "一根上号的雪茄,一杯威士忌,还有一把趁手的兵器,这或许就是男人最大的浪漫了。那帮维京人马上就要开始捕羊大赛了,你猜猜他们现在最需要什么?那可是场庆典,你懂得~" + }, + "suptext": { + "key": "suphearsay", + "text": "我有一个好消息告诉你,咱们即将赚大发了,在下一个地区!" + }, "max": 30 }, { "id": 7, - "goodsname": "物品7", + "goodsname": { + "key": "itemname_40002", + "text": "物品7" + }, "goodsfor": 3, - "goodsinfor": "物品7货品信息", + "goodsinfor": { + "key": "itemname_40002", + "text": "物品7货品信息" + }, "goodsicon": "wp_icon_10002", "goodsprice": 2000, "star_money": 1000, - "uptext": "听说了吗,维京人的山谷总是会传来恐怖的怒吼,那嗓门,一听就知道肯定是一个大家伙,现在我认识的很多部落的族长都在收购武器,你知道该怎么做,不是吗?", - "suptext": "我有一个好消息告诉你,咱们即将赚大发了,在下一个地区!", + "uptext": { + "key": "hearsay7", + "text": "听说了吗,维京人的山谷总是会传来恐怖的怒吼,那嗓门,一听就知道肯定是一个大家伙,现在我认识的很多部落的族长都在收购武器,你知道该怎么做,不是吗?" + }, + "suptext": { + "key": "suphearsay", + "text": "我有一个好消息告诉你,咱们即将赚大发了,在下一个地区!" + }, "max": 30 }, { "id": 8, - "goodsname": "物品8", + "goodsname": { + "key": "itemname_40002", + "text": "物品8" + }, "goodsfor": 3, - "goodsinfor": "物品8货品信息", + "goodsinfor": { + "key": "itemname_40002", + "text": "物品8货品信息" + }, "goodsicon": "wp_icon_10012", "goodsprice": 2000, "star_money": 3000, - "uptext": "怪物史莱克你听说过吗,最近有消息他要带着他的公主一起来中轴城,并决定举办一场庆典,虽然我不知道他哪儿来的钱办庆典,但对于我们这种优良的商人来说,庆典就意味着可以赚大把的钱,你知道该准备什么了吗?", - "suptext": "我有一个好消息告诉你,咱们即将赚大发了,在下一个地区!", + "uptext": { + "key": "hearsay8", + "text": "怪物史莱克你听说过吗,最近有消息他要带着他的公主一起来中轴城,并决定举办一场庆典,虽然我不知道他哪儿来的钱办庆典,但对于我们这种优良的商人来说,庆典就意味着可以赚大把的钱,你知道该准备什么了吗?" + }, + "suptext": { + "key": "suphearsay", + "text": "我有一个好消息告诉你,咱们即将赚大发了,在下一个地区!" + }, "max": 30 }, { "id": 9, - "goodsname": "物品9", + "goodsname": { + "key": "itemname_40002", + "text": "物品9" + }, "goodsfor": 3, - "goodsinfor": "物品9货品信息", + "goodsinfor": { + "key": "itemname_40002", + "text": "物品9货品信息" + }, "goodsicon": "wp_icon_10014", "goodsprice": 2000, "star_money": 4000, - "uptext": "我很喜欢完游戏,因为我总能在里面不劳而获的得到诸多宝藏,你听说了吗,最近一个神秘的洞穴出现在丛林区,而当地的那些原始人,可是从中捞了不少宝贝,我们说不定可以从那些原始人手里捞上一笔,然后去中轴城高价卖出。", - "suptext": "我有一个好消息告诉你,咱们即将赚大发了,在下一个地区!", + "uptext": { + "key": "hearsay9", + "text": "我很喜欢完游戏,因为我总能在里面不劳而获的得到诸多宝藏,你听说了吗,最近一个神秘的洞穴出现在丛林区,而当地的那些原始人,可是从中捞了不少宝贝,我们说不定可以从那些原始人手里捞上一笔,然后去中轴城高价卖出。" + }, + "suptext": { + "key": "suphearsay", + "text": "我有一个好消息告诉你,咱们即将赚大发了,在下一个地区!" + }, "max": 30 } ] \ No newline at end of file diff --git a/bin/json/game_worldtask.json b/bin/json/game_worldtask.json index 6b0951aa3..f41e766d2 100644 --- a/bin/json/game_worldtask.json +++ b/bin/json/game_worldtask.json @@ -7,6 +7,18 @@ "group": 101, "des": 3, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "旧时光" + }, + "task_name": { + "key": "story_80", + "text": "阿宝学功夫" + }, + "task_display": { + "key": "story_80", + "text": "新剧情" + }, "npc": [ "scenes_boundary_01", "旧时光1-指挥部杰克", @@ -29,6 +41,18 @@ "group": 101, "des": 3, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "旧时光" + }, + "task_name": { + "key": "story_80", + "text": "阿宝学功夫" + }, + "task_display": { + "key": "story_80", + "text": "新剧情" + }, "npc": [ "display_platform_04_02", "旧时光1-住所主角", @@ -51,6 +75,18 @@ "group": 101, "des": 3, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "旧时光" + }, + "task_name": { + "key": "story_80", + "text": "阿宝学功夫" + }, + "task_display": { + "key": "story_80", + "text": "新剧情" + }, "npc": [ "display_platform_04_02", "旧时光1-住所平先生", @@ -73,6 +109,18 @@ "group": 101, "des": 3, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "旧时光" + }, + "task_name": { + "key": "story_80", + "text": "阿宝学功夫" + }, + "task_display": { + "key": "story_80", + "text": "新剧情" + }, "npc": [ "display_platform_04_02", "旧时光1-住所平先生", @@ -95,6 +143,18 @@ "group": 101, "des": 3, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "旧时光" + }, + "task_name": { + "key": "story_80", + "text": "阿宝学功夫" + }, + "task_display": { + "key": "story_80", + "text": "新剧情" + }, "npc": [ "scenes_boundary_01_recordtask", "旧时光1-指挥部阿宝", @@ -117,6 +177,18 @@ "group": 101, "des": 3, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "旧时光" + }, + "task_name": { + "key": "story_80", + "text": "阿宝学功夫" + }, + "task_display": { + "key": "story_80", + "text": "新剧情" + }, "npc": [ "scenes_boundary_01_recordtask", "旧时光1-指挥部杰克", @@ -139,6 +211,18 @@ "group": 101, "des": 3, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "旧时光" + }, + "task_name": { + "key": "story_80", + "text": "阿宝学功夫" + }, + "task_display": { + "key": "story_80", + "text": "新剧情" + }, "npc": [ "dreamwork_jungle_playershow_01", "旧时光1-森林小道阿宝", @@ -161,6 +245,18 @@ "group": 101, "des": 3, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "旧时光" + }, + "task_name": { + "key": "story_80", + "text": "阿宝学功夫" + }, + "task_display": { + "key": "story_80", + "text": "新剧情" + }, "npc": [ "dreamwork_jungle_playershow_01", "旧时光1-森林小道 阿宝", @@ -183,6 +279,18 @@ "group": 101, "des": 3, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "旧时光" + }, + "task_name": { + "key": "story_80", + "text": "阿宝学功夫" + }, + "task_display": { + "key": "story_80", + "text": "新剧情" + }, "npc": [ "scenesfight_03_02", "旧时光1-竹林豺狼小怪", @@ -205,6 +313,18 @@ "group": 101, "des": 3, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "旧时光" + }, + "task_name": { + "key": "story_80", + "text": "阿宝学功夫" + }, + "task_display": { + "key": "story_80", + "text": "新剧情" + }, "npc": [ "scenesfight_03_02", "旧时光1-竹林阿宝", @@ -227,6 +347,18 @@ "group": 101, "des": 3, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "旧时光" + }, + "task_name": { + "key": "story_80", + "text": "阿宝学功夫" + }, + "task_display": { + "key": "story_80", + "text": "新剧情" + }, "npc": [ "scenes_boundary_01_recordtask", "旧时光1-指挥部杰克", @@ -249,6 +381,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_boundary_01_recordtask", "0新手引导-杰克-中轴城常驻待机", @@ -271,6 +415,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_boundary_01_recordtask", "0新手引导-杰克-中轴城常驻待机", @@ -293,6 +449,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_boundary_01_recordtask", "1.新手引导-花朵-中轴城", @@ -315,6 +483,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_boundary_01_recordtask", "1.新手引导-花朵-中轴城", @@ -337,6 +517,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_boundary_01_recordtask", "0新手引导-杰克-中轴城常驻待机", @@ -359,6 +551,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_boundary_01_recordtask", "3新手引导-波比-正常待机-中轴城", @@ -381,6 +585,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_boundary_01_recordtask", "2新手引导-邦尼兔-正常待机-中轴城", @@ -409,6 +625,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_boundary_01_recordtask", "新手引导-波比-右屏圣树1", @@ -431,6 +659,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_kongfupanda_01", "新手引导-波比-右屏圣树2", @@ -453,6 +693,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_kongfupanda_01", "新手引导-豺狼人-右屏圣树", @@ -481,6 +733,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_kongfupanda_01", "新手引导-豺狼人-右屏圣树", @@ -503,6 +767,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_kongfupanda_01", "新手引导-圣树下的黑洞", @@ -525,6 +801,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_kongfupanda_01", "新手引导-波比-犀牛守卫", @@ -547,6 +835,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_kongfupanda_01", "新手引导-波比-右屏圣树3", @@ -569,6 +869,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_kongfupanda_01", "新手引导-波比-右屏圣树3", @@ -591,6 +903,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_boundary_01_recordtask", "0新手引导-杰克-中轴城常驻待机", @@ -613,6 +937,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_boundary_01_recordtask", "0新手引导-杰克-中轴城常驻待机", @@ -635,6 +971,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_boundary_01_recordtask", "0新手引导-杰克-中轴城常驻待机", @@ -657,6 +1005,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_boundary_01_recordtask", "0新手引导-杰克-中轴城常驻待机", @@ -685,6 +1045,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_smithy_01", "暴夫纳特铁匠铺", @@ -707,6 +1079,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_smithy_01", "暴夫纳特铁匠铺", @@ -729,6 +1113,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_boundary_01_recordtask", "0新手引导-杰克-中轴城常驻待机", @@ -751,6 +1147,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_boundary_01_recordtask", "0新手引导-杰克-中轴城常驻待机", @@ -773,6 +1181,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_boundary_01_recordtask", "0新手引导-杰克-中轴城常驻待机", @@ -795,6 +1215,18 @@ "group": 2, "des": 2, "icon": "", + "task_Tname": { + "key": "story_80", + "text": "新手引导" + }, + "task_name": { + "key": "story_80", + "text": "新手引导" + }, + "task_display": { + "key": "story_80", + "text": "新手引导" + }, "npc": [ "scenes_boundary_01_recordtask", "0新手引导-杰克-中轴城常驻待机", diff --git a/cmd/upgrade/main.go b/cmd/upgrade/main.go index 4d8eb2ee5..fc94fb16e 100644 --- a/cmd/upgrade/main.go +++ b/cmd/upgrade/main.go @@ -126,6 +126,26 @@ func main() { }) }) + // 同步配置 + // 接受客户端上传的文件覆盖服务器上文件 + r.POST("/sync", func(c *gin.Context) { + f, err := c.FormFile("file") + if err != nil { + log.Print(err) + return + } + if f.Filename!="config.json"{ + log.Print("上传的配置文件不是config.json") + return + } + dst := path.Join(*wwwDir, f.Filename) + err = c.SaveUploadedFile(f, dst) + if err != nil { + log.Print(err) + return + } + }) + err := r.Run("0.0.0.0:" + *port) if err != nil { log.Fatal(err) diff --git a/cmd/v2/FyneApp.toml b/cmd/v2/FyneApp.toml index 3b502ba60..0e8f9b054 100644 --- a/cmd/v2/FyneApp.toml +++ b/cmd/v2/FyneApp.toml @@ -4,5 +4,5 @@ Website = "http://legu.cc" Icon = "app.png" Name = "RobotGUI" ID = "cc.legu.app" - Version = "1.2.9" - Build = 39 + Version = "1.2.10" + Build = 40 diff --git a/cmd/v2/configure/structs/Game.TaskCond.go b/cmd/v2/configure/structs/Game.TaskCond.go deleted file mode 100644 index 0185feed8..000000000 --- a/cmd/v2/configure/structs/Game.TaskCond.go +++ /dev/null @@ -1,42 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -package cfg - -type GameTaskCond struct { - _dataMap map[int32]*GameTaskCondData - _dataList []*GameTaskCondData -} - -func NewGameTaskCond(_buf []map[string]interface{}) (*GameTaskCond, error) { - _dataList := make([]*GameTaskCondData, 0, len(_buf)) - dataMap := make(map[int32]*GameTaskCondData) - for _, _ele_ := range _buf { - if _v, err2 := DeserializeGameTaskCondData(_ele_); err2 != nil { - return nil, err2 - } else { - _dataList = append(_dataList, _v) - dataMap[_v.Id] = _v - } - } - return &GameTaskCond{_dataList:_dataList, _dataMap:dataMap}, nil -} - -func (table *GameTaskCond) GetDataMap() map[int32]*GameTaskCondData { - return table._dataMap -} - -func (table *GameTaskCond) GetDataList() []*GameTaskCondData { - return table._dataList -} - -func (table *GameTaskCond) Get(key int32) *GameTaskCondData { - return table._dataMap[key] -} - - diff --git a/cmd/v2/configure/structs/Game.TaskCondData.go b/cmd/v2/configure/structs/Game.TaskCondData.go deleted file mode 100644 index fcea43388..000000000 --- a/cmd/v2/configure/structs/Game.TaskCondData.go +++ /dev/null @@ -1,47 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -package cfg - -import "errors" - -type GameTaskCondData struct { - Id int32 - Type int32 - Data1 int32 - Data2 int32 - Data3 int32 - Data4 int32 - Data5 int32 -} - -const TypeId_GameTaskCondData = -1719868659 - -func (*GameTaskCondData) GetTypeId() int32 { - return -1719868659 -} - -func (_v *GameTaskCondData)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["data1"].(float64); !_ok_ { err = errors.New("data1 error"); return }; _v.Data1 = int32(_tempNum_) } - { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["data2"].(float64); !_ok_ { err = errors.New("data2 error"); return }; _v.Data2 = int32(_tempNum_) } - { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["data3"].(float64); !_ok_ { err = errors.New("data3 error"); return }; _v.Data3 = int32(_tempNum_) } - { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["data4"].(float64); !_ok_ { err = errors.New("data4 error"); return }; _v.Data4 = int32(_tempNum_) } - { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["data5"].(float64); !_ok_ { err = errors.New("data5 error"); return }; _v.Data5 = int32(_tempNum_) } - return -} - -func DeserializeGameTaskCondData(_buf map[string]interface{}) (*GameTaskCondData, error) { - v := &GameTaskCondData{} - if err := v.Deserialize(_buf); err == nil { - return v, nil - } else { - return nil, err - } -} diff --git a/cmd/v2/configure/structs/Game.TestFlow.go b/cmd/v2/configure/structs/Game.TestFlow.go deleted file mode 100644 index b8946f191..000000000 --- a/cmd/v2/configure/structs/Game.TestFlow.go +++ /dev/null @@ -1,42 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -package cfg - -type GameTestFlow struct { - _dataMap map[int32]*GameTestFlowData - _dataList []*GameTestFlowData -} - -func NewGameTestFlow(_buf []map[string]interface{}) (*GameTestFlow, error) { - _dataList := make([]*GameTestFlowData, 0, len(_buf)) - dataMap := make(map[int32]*GameTestFlowData) - for _, _ele_ := range _buf { - if _v, err2 := DeserializeGameTestFlowData(_ele_); err2 != nil { - return nil, err2 - } else { - _dataList = append(_dataList, _v) - dataMap[_v.Id] = _v - } - } - return &GameTestFlow{_dataList:_dataList, _dataMap:dataMap}, nil -} - -func (table *GameTestFlow) GetDataMap() map[int32]*GameTestFlowData { - return table._dataMap -} - -func (table *GameTestFlow) GetDataList() []*GameTestFlowData { - return table._dataList -} - -func (table *GameTestFlow) Get(key int32) *GameTestFlowData { - return table._dataMap[key] -} - - diff --git a/cmd/v2/configure/structs/Game.TestFlowData.go b/cmd/v2/configure/structs/Game.TestFlowData.go deleted file mode 100644 index c41d92c1a..000000000 --- a/cmd/v2/configure/structs/Game.TestFlowData.go +++ /dev/null @@ -1,41 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -package cfg - -import "errors" - -type GameTestFlowData struct { - Id int32 - Msg string - Route string - Params string -} - -const TypeId_GameTestFlowData = -1087831770 - -func (*GameTestFlowData) GetTypeId() int32 { - return -1087831770 -} - -func (_v *GameTestFlowData)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; if _v.Msg, _ok_ = _buf["msg"].(string); !_ok_ { err = errors.New("msg error"); return } } - { var _ok_ bool; if _v.Route, _ok_ = _buf["route"].(string); !_ok_ { err = errors.New("route error"); return } } - { var _ok_ bool; if _v.Params, _ok_ = _buf["params"].(string); !_ok_ { err = errors.New("params error"); return } } - return -} - -func DeserializeGameTestFlowData(_buf map[string]interface{}) (*GameTestFlowData, error) { - v := &GameTestFlowData{} - if err := v.Deserialize(_buf); err == nil { - return v, nil - } else { - return nil, err - } -} diff --git a/cmd/v2/configure/structs/Tables.go b/cmd/v2/configure/structs/Tables.go deleted file mode 100644 index e8caa1ad1..000000000 --- a/cmd/v2/configure/structs/Tables.go +++ /dev/null @@ -1,38 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -package cfg - -type JsonLoader func(string) ([]map[string]interface{}, error) - -type Tables struct { - TestFlow *GameTestFlow - TaskCond *GameTaskCond -} - -func NewTables(loader JsonLoader) (*Tables, error) { - var err error - var buf []map[string]interface{} - - tables := &Tables{} - - if buf, err = loader("game_testflow"); err != nil { - return nil, err - } - if tables.TestFlow, err = NewGameTestFlow(buf); err != nil { - return nil, err - } - - if buf, err = loader("game_taskcond"); err != nil { - return nil, err - } - if tables.TaskCond, err = NewGameTaskCond(buf); err != nil { - return nil, err - } - return tables, nil -} diff --git a/cmd/v2/json/game_taskcond.json b/cmd/v2/json/game_taskcond.json deleted file mode 100644 index c9ee50e6c..000000000 --- a/cmd/v2/json/game_taskcond.json +++ /dev/null @@ -1,3134 +0,0 @@ -[ - { - "id": 101, - "type": 1, - "data1": 25001, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 102, - "type": 2, - "data1": 3, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 103, - "type": 3, - "data1": 2, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 104, - "type": 4, - "data1": 14007, - "data2": 10, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 105, - "type": 5, - "data1": 25001, - "data2": 2, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 106, - "type": 6, - "data1": 25004, - "data2": 5, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 107, - "type": 7, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 108, - "type": 8, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 109, - "type": 9, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 110, - "type": 10, - "data1": 2, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 111, - "type": 11, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 112, - "type": 12, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 113, - "type": 13, - "data1": 2, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 114, - "type": 14, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 115, - "type": 15, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 116, - "type": 16, - "data1": 5, - "data2": 3, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 117, - "type": 17, - "data1": 1, - "data2": 3, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 118, - "type": 18, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 119, - "type": 19, - "data1": 2, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 120, - "type": 20, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 121, - "type": 21, - "data1": 2, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 122, - "type": 22, - "data1": 25001, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 123, - "type": 23, - "data1": 3, - "data2": 5, - "data3": 20, - "data4": 0, - "data5": 0 - }, - { - "id": 124, - "type": 24, - "data1": 4, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 125, - "type": 25, - "data1": 3, - "data2": 25001, - "data3": 6, - "data4": 0, - "data5": 0 - }, - { - "id": 126, - "type": 26, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 127, - "type": 27, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 128, - "type": 28, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 129, - "type": 29, - "data1": 2, - "data2": 22, - "data3": 25004, - "data4": 0, - "data5": 0 - }, - { - "id": 130, - "type": 30, - "data1": 5, - "data2": 3, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 131, - "type": 31, - "data1": 4, - "data2": 3, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 132, - "type": 32, - "data1": 3, - "data2": 3, - "data3": 20, - "data4": 0, - "data5": 0 - }, - { - "id": 133, - "type": 33, - "data1": 3, - "data2": 3, - "data3": 23, - "data4": 0, - "data5": 0 - }, - { - "id": 134, - "type": 34, - "data1": 5, - "data2": 2, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 135, - "type": 35, - "data1": 2, - "data2": 25001, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 136, - "type": 36, - "data1": 1, - "data2": 3, - "data3": 3, - "data4": 1, - "data5": 2 - }, - { - "id": 137, - "type": 37, - "data1": 1, - "data2": 3, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 138, - "type": 38, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 139, - "type": 39, - "data1": 2, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 140, - "type": 40, - "data1": 2, - "data2": 2, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 141, - "type": 41, - "data1": 2, - "data2": 2, - "data3": 1, - "data4": 0, - "data5": 0 - }, - { - "id": 142, - "type": 42, - "data1": 2, - "data2": 2, - "data3": 2, - "data4": 0, - "data5": 0 - }, - { - "id": 143, - "type": 43, - "data1": 2, - "data2": 2, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 144, - "type": 44, - "data1": 3, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 145, - "type": 45, - "data1": 2, - "data2": 1, - "data3": 1, - "data4": 2, - "data5": 0 - }, - { - "id": 146, - "type": 46, - "data1": 1, - "data2": 4, - "data3": 1, - "data4": 0, - "data5": 0 - }, - { - "id": 147, - "type": 47, - "data1": 2, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 148, - "type": 48, - "data1": 1, - "data2": 1, - "data3": 2, - "data4": 0, - "data5": 0 - }, - { - "id": 149, - "type": 49, - "data1": 1, - "data2": 1, - "data3": 2, - "data4": 0, - "data5": 0 - }, - { - "id": 150, - "type": 50, - "data1": 1, - "data2": 1, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 151, - "type": 51, - "data1": 1, - "data2": 1, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 152, - "type": 52, - "data1": 1, - "data2": 14007, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 153, - "type": 53, - "data1": 2, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 154, - "type": 54, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 155, - "type": 55, - "data1": 2, - "data2": 3, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 156, - "type": 56, - "data1": 1, - "data2": 1, - "data3": 2, - "data4": 0, - "data5": 0 - }, - { - "id": 157, - "type": 57, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 158, - "type": 58, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 159, - "type": 59, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 160, - "type": 60, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 161, - "type": 61, - "data1": 109, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 162, - "type": 62, - "data1": 2, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 163, - "type": 63, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 164, - "type": 64, - "data1": 2, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 165, - "type": 65, - "data1": 2, - "data2": 10001, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 166, - "type": 66, - "data1": 2, - "data2": 1, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 167, - "type": 67, - "data1": 1000, - "data2": 1, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 168, - "type": 68, - "data1": 1000, - "data2": 1, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 169, - "type": 69, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 170, - "type": 1, - "data1": 44006, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 171, - "type": 70, - "data1": 1, - "data2": 101, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 172, - "type": 18, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 173, - "type": 71, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 174, - "type": 70, - "data1": 1, - "data2": 101, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 175, - "type": 70, - "data1": 1, - "data2": 102, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 176, - "type": 70, - "data1": 1, - "data2": 103, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 177, - "type": 70, - "data1": 1, - "data2": 104, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 178, - "type": 70, - "data1": 1, - "data2": 105, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 179, - "type": 70, - "data1": 1, - "data2": 106, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 180, - "type": 70, - "data1": 1, - "data2": 107, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 181, - "type": 70, - "data1": 1, - "data2": 108, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 182, - "type": 70, - "data1": 1, - "data2": 109, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 183, - "type": 140, - "data1": 1, - "data2": 10001, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 184, - "type": 140, - "data1": 1, - "data2": 10002, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 185, - "type": 140, - "data1": 1, - "data2": 10003, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 186, - "type": 140, - "data1": 1, - "data2": 10004, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 187, - "type": 109, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 188, - "type": 104, - "data1": 100, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 189, - "type": 70, - "data1": 1, - "data2": 110, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 190, - "type": 70, - "data1": 1, - "data2": 111, - "data3": 1, - "data4": 1, - "data5": 1 - }, - { - "id": 191, - "type": 70, - "data1": 1, - "data2": 112, - "data3": 2, - "data4": 2, - "data5": 2 - }, - { - "id": 192, - "type": 70, - "data1": 1, - "data2": 113, - "data3": 3, - "data4": 3, - "data5": 3 - }, - { - "id": 193, - "type": 70, - "data1": 1, - "data2": 114, - "data3": 4, - "data4": 4, - "data5": 4 - }, - { - "id": 194, - "type": 138, - "data1": 30, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 195, - "type": 140, - "data1": 1, - "data2": 10005, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 196, - "type": 140, - "data1": 1, - "data2": 10006, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 197, - "type": 140, - "data1": 1, - "data2": 10007, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 198, - "type": 140, - "data1": 1, - "data2": 10008, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 199, - "type": 140, - "data1": 1, - "data2": 10009, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 200, - "type": 140, - "data1": 1, - "data2": 10010, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10001, - "type": 24, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10002, - "type": 24, - "data1": 5, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10003, - "type": 24, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10004, - "type": 24, - "data1": 20, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10005, - "type": 24, - "data1": 50, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10006, - "type": 24, - "data1": 100, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10007, - "type": 24, - "data1": 200, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10008, - "type": 24, - "data1": 300, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10009, - "type": 24, - "data1": 500, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10010, - "type": 24, - "data1": 1000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10101, - "type": 7, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10201, - "type": 18, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10202, - "type": 18, - "data1": 5, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10203, - "type": 18, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10204, - "type": 18, - "data1": 20, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10205, - "type": 18, - "data1": 50, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10206, - "type": 18, - "data1": 100, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10207, - "type": 18, - "data1": 200, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10208, - "type": 18, - "data1": 300, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10209, - "type": 18, - "data1": 500, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10210, - "type": 18, - "data1": 1000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10301, - "type": 18, - "data1": 1, - "data2": 5, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10302, - "type": 50, - "data1": 5, - "data2": 5, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10303, - "type": 50, - "data1": 10, - "data2": 5, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10304, - "type": 50, - "data1": 20, - "data2": 5, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10305, - "type": 50, - "data1": 50, - "data2": 5, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10306, - "type": 50, - "data1": 100, - "data2": 5, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10307, - "type": 50, - "data1": 200, - "data2": 5, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10308, - "type": 50, - "data1": 300, - "data2": 5, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10309, - "type": 50, - "data1": 500, - "data2": 5, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10310, - "type": 50, - "data1": 1000, - "data2": 5, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10401, - "type": 50, - "data1": 1, - "data2": 6, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10402, - "type": 50, - "data1": 5, - "data2": 6, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10403, - "type": 50, - "data1": 10, - "data2": 6, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10404, - "type": 50, - "data1": 20, - "data2": 6, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10405, - "type": 50, - "data1": 50, - "data2": 6, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10406, - "type": 50, - "data1": 100, - "data2": 6, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10407, - "type": 50, - "data1": 200, - "data2": 6, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10408, - "type": 50, - "data1": 300, - "data2": 6, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10409, - "type": 50, - "data1": 500, - "data2": 6, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10410, - "type": 50, - "data1": 1000, - "data2": 6, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10501, - "type": 58, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10502, - "type": 58, - "data1": 5, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10503, - "type": 58, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10504, - "type": 58, - "data1": 20, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10505, - "type": 58, - "data1": 30, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10506, - "type": 58, - "data1": 50, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10507, - "type": 58, - "data1": 70, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10508, - "type": 58, - "data1": 100, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10601, - "type": 62, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10602, - "type": 62, - "data1": 5, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10603, - "type": 62, - "data1": 99, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10701, - "type": 64, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10702, - "type": 64, - "data1": 5, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10703, - "type": 64, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10704, - "type": 64, - "data1": 20, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10705, - "type": 64, - "data1": 50, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10706, - "type": 64, - "data1": 100, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10707, - "type": 64, - "data1": 200, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10708, - "type": 64, - "data1": 300, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10709, - "type": 64, - "data1": 500, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10710, - "type": 64, - "data1": 1000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10801, - "type": 8, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10802, - "type": 8, - "data1": 5, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10803, - "type": 8, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10804, - "type": 8, - "data1": 20, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10805, - "type": 8, - "data1": 50, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10806, - "type": 8, - "data1": 100, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10807, - "type": 8, - "data1": 200, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10808, - "type": 8, - "data1": 300, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10809, - "type": 8, - "data1": 500, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 10810, - "type": 18, - "data1": 1000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 2008001, - "type": 8, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 2012001, - "type": 12, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 2018001, - "type": 18, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 2024001, - "type": 24, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 2047001, - "type": 47, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 2062001, - "type": 62, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 2064001, - "type": 64, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 2130001, - "type": 130, - "data1": 3, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 3008001, - "type": 8, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 3012001, - "type": 12, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 3018001, - "type": 18, - "data1": 5, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 3024001, - "type": 24, - "data1": 5, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 3047001, - "type": 47, - "data1": 7, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 3061001, - "type": 62, - "data1": 7, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 3064001, - "type": 64, - "data1": 7, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 3088001, - "type": 88, - "data1": 3, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 3105001, - "type": 105, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 3104001, - "type": 104, - "data1": 1000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 3130001, - "type": 130, - "data1": 30, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4008001, - "type": 8, - "data1": 3, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4008002, - "type": 8, - "data1": 7, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4008003, - "type": 8, - "data1": 30, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4008004, - "type": 8, - "data1": 90, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4008005, - "type": 8, - "data1": 180, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4008006, - "type": 8, - "data1": 365, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4008007, - "type": 9, - "data1": 3, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4008008, - "type": 9, - "data1": 7, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4008009, - "type": 9, - "data1": 14, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4008010, - "type": 9, - "data1": 30, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4010001, - "type": 10, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4010002, - "type": 10, - "data1": 5, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4010003, - "type": 10, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4010004, - "type": 10, - "data1": 20, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4010005, - "type": 10, - "data1": 30, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4010006, - "type": 10, - "data1": 50, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4011001, - "type": 11, - "data1": 5, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4011002, - "type": 11, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4011003, - "type": 11, - "data1": 30, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4011004, - "type": 11, - "data1": 50, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4011005, - "type": 11, - "data1": 100, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4011006, - "type": 11, - "data1": 300, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4011007, - "type": 11, - "data1": 500, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4011008, - "type": 11, - "data1": 1000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4011009, - "type": 11, - "data1": 3000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4011010, - "type": 11, - "data1": 5000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4011011, - "type": 11, - "data1": 10000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4012001, - "type": 12, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4012002, - "type": 12, - "data1": 5, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4012003, - "type": 12, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4012004, - "type": 12, - "data1": 30, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4012005, - "type": 12, - "data1": 50, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4012006, - "type": 12, - "data1": 100, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4012007, - "type": 12, - "data1": 300, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4012008, - "type": 12, - "data1": 500, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4012009, - "type": 12, - "data1": 1000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4016001, - "type": 16, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4016002, - "type": 16, - "data1": 2, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4016003, - "type": 16, - "data1": 3, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4016004, - "type": 16, - "data1": 5, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4016005, - "type": 16, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4016006, - "type": 16, - "data1": 15, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4016007, - "type": 16, - "data1": 20, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4016008, - "type": 16, - "data1": 30, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4016009, - "type": 16, - "data1": 50, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4018001, - "type": 18, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4018002, - "type": 18, - "data1": 20, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4018003, - "type": 18, - "data1": 30, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4018004, - "type": 18, - "data1": 50, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4018005, - "type": 18, - "data1": 100, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4018006, - "type": 18, - "data1": 200, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4018007, - "type": 18, - "data1": 300, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4018008, - "type": 18, - "data1": 500, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4018009, - "type": 18, - "data1": 1000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4018010, - "type": 18, - "data1": 2000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4018011, - "type": 18, - "data1": 5000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4018012, - "type": 18, - "data1": 10000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4020001, - "type": 20, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4020002, - "type": 20, - "data1": 20, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4020003, - "type": 20, - "data1": 30, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4020004, - "type": 20, - "data1": 40, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4020005, - "type": 20, - "data1": 50, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4020006, - "type": 20, - "data1": 60, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4043001, - "type": 43, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4043002, - "type": 43, - "data1": 2, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4043003, - "type": 43, - "data1": 4, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4043004, - "type": 43, - "data1": 6, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4043005, - "type": 43, - "data1": 12, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4043006, - "type": 43, - "data1": 18, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4043007, - "type": 43, - "data1": 24, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4043008, - "type": 43, - "data1": 30, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4043009, - "type": 43, - "data1": 60, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4043010, - "type": 43, - "data1": 120, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4047001, - "type": 47, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4047002, - "type": 47, - "data1": 20, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4047003, - "type": 47, - "data1": 30, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4047004, - "type": 47, - "data1": 50, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4047005, - "type": 47, - "data1": 100, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4047006, - "type": 47, - "data1": 200, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4047007, - "type": 47, - "data1": 300, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4047008, - "type": 47, - "data1": 500, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4047009, - "type": 47, - "data1": 1000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4047010, - "type": 47, - "data1": 2000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4047011, - "type": 47, - "data1": 3000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4047012, - "type": 47, - "data1": 5000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4047013, - "type": 47, - "data1": 10000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4064001, - "type": 64, - "data1": 5, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4064002, - "type": 64, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4064003, - "type": 64, - "data1": 20, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4064004, - "type": 64, - "data1": 50, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4064005, - "type": 64, - "data1": 100, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4064006, - "type": 64, - "data1": 200, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4064007, - "type": 64, - "data1": 500, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4068001, - "type": 68, - "data1": 50000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4068002, - "type": 68, - "data1": 500000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4068003, - "type": 68, - "data1": 5000000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4068004, - "type": 68, - "data1": 50000000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4084001, - "type": 84, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4084002, - "type": 84, - "data1": 20, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4084003, - "type": 84, - "data1": 50, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4084004, - "type": 84, - "data1": 100, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4085001, - "type": 85, - "data1": 5, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4085002, - "type": 85, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4085003, - "type": 85, - "data1": 20, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4085004, - "type": 85, - "data1": 30, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4085005, - "type": 85, - "data1": 50, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4096001, - "type": 96, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4096002, - "type": 96, - "data1": 20, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4096003, - "type": 96, - "data1": 50, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4096004, - "type": 96, - "data1": 100, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4096005, - "type": 96, - "data1": 200, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4096006, - "type": 96, - "data1": 300, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4096007, - "type": 96, - "data1": 500, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4096008, - "type": 96, - "data1": 1000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4096009, - "type": 96, - "data1": 2000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4096010, - "type": 96, - "data1": 3000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4096011, - "type": 96, - "data1": 5000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4096012, - "type": 96, - "data1": 10000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4104001, - "type": 104, - "data1": 500, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4104002, - "type": 104, - "data1": 1000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4104003, - "type": 104, - "data1": 3000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4104004, - "type": 104, - "data1": 5000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4104005, - "type": 104, - "data1": 10000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4104006, - "type": 104, - "data1": 20000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4104007, - "type": 104, - "data1": 30000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4104008, - "type": 104, - "data1": 50000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4104009, - "type": 104, - "data1": 100000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4104010, - "type": 104, - "data1": 200000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4104011, - "type": 104, - "data1": 500000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4128001, - "type": 128, - "data1": 1100, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4128002, - "type": 128, - "data1": 1200, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4128003, - "type": 128, - "data1": 1300, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4128004, - "type": 128, - "data1": 1400, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4128005, - "type": 128, - "data1": 1500, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4128006, - "type": 128, - "data1": 1600, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4128007, - "type": 128, - "data1": 1700, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4128008, - "type": 128, - "data1": 1800, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4128009, - "type": 128, - "data1": 1900, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4128010, - "type": 128, - "data1": 2000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4131001, - "type": 131, - "data1": 5, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4131002, - "type": 131, - "data1": 10, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4131003, - "type": 131, - "data1": 20, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4131004, - "type": 131, - "data1": 30, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4131005, - "type": 131, - "data1": 50, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4131006, - "type": 131, - "data1": 100, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4131007, - "type": 131, - "data1": 200, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4131008, - "type": 131, - "data1": 300, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4131009, - "type": 131, - "data1": 500, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 4131010, - "type": 131, - "data1": 1000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 5011001, - "type": 11, - "data1": 3, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 5012001, - "type": 12, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 5018001, - "type": 18, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 5024001, - "type": 24, - "data1": 1, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 5047001, - "type": 47, - "data1": 6, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 5063001, - "type": 63, - "data1": 100, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 5068001, - "type": 68, - "data1": 200000, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - }, - { - "id": 5104001, - "type": 104, - "data1": 100, - "data2": 0, - "data3": 0, - "data4": 0, - "data5": 0 - } -] \ No newline at end of file diff --git a/cmd/v2/json/game_testflow.json b/cmd/v2/json/game_testflow.json deleted file mode 100644 index 86a855f24..000000000 --- a/cmd/v2/json/game_testflow.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - { - "id": 1, - "msg": "功能列表", - "route": "sys.funclist", - "params": "{}" - } - -] \ No newline at end of file diff --git a/cmd/v2/lib/common/lang.go b/cmd/v2/lib/common/lang.go index 7751e24e1..e4b00af73 100644 --- a/cmd/v2/lib/common/lang.go +++ b/cmd/v2/lib/common/lang.go @@ -98,6 +98,7 @@ const ( TOOLBAR_AUTO = "自动化" TOOLBAR_PING = "端口扫描" TOOLBAR_MGODB = "MongoDB" + TOOLBAR_VALID = "配置校验" TOOLBAR_PERF_TIP = "开始" TOOLBAR_PERF_CONF = "配置" diff --git a/cmd/v2/lib/storage/config.go b/cmd/v2/lib/storage/config.go index b36b86507..e52e626ee 100644 --- a/cmd/v2/lib/storage/config.go +++ b/cmd/v2/lib/storage/config.go @@ -2,7 +2,7 @@ package storage import "go_dreamfactory/pb" -//默认配置 +// 默认配置 func NewDefaultConfig() *Config { return &Config{ Pressure: PressureConfig{ @@ -40,6 +40,7 @@ type Config struct { Servers []*ServerConfig `json:"servers,omitempty"` //区服配置 MgoDB *MgoDB `json:"mgoDB,omitempty"` //MongoDB配置 ServiceDBInfo *pb.ServiceDBInfo `json:"serviceDBInfo,omitempty"` // + JsonDir string `json:"jsonDir,omitempty"` //json配置目录 } type MgoDB struct { @@ -51,14 +52,14 @@ type MgoDB struct { Database string `json:"database,omitempty"` } -//压测配置 +// 压测配置 type PressureConfig struct { TimeoutMs int32 `json:"timeout,omitempty"` //超时时间 毫秒 Concurrency int32 `json:"concurrency,omitempty"` //并发量 DurationS int32 `json:"duration,omitempty"` //持续时间 秒 } -//luban +// luban type LubanConfig struct { ServerAddr string ProjectDir string diff --git a/cmd/v2/main.go b/cmd/v2/main.go index 7bf4c815c..34c049270 100644 --- a/cmd/v2/main.go +++ b/cmd/v2/main.go @@ -33,7 +33,6 @@ var ( logger *logrus.Logger ) -// func init() { _ = os.Setenv("FYNE_SCALE", "0.9") var err error @@ -162,7 +161,6 @@ func setupLogger() (err error) { // check version func checkVersion(app fyne.App, parent fyne.Window) { - logrus.Debug("check version") b, err := connService.HttpConnect("http://10.0.0.9:8080/" + "version") if err != nil { dialog.ShowError(errors.New("版本检查:"+err.Error()), parent) diff --git a/cmd/v2/theme/icon.go b/cmd/v2/theme/icon.go index b21c57a52..e2c88e3dc 100644 --- a/cmd/v2/theme/icon.go +++ b/cmd/v2/theme/icon.go @@ -18,3 +18,16 @@ var ResourceAppPng = &fyne.StaticResource{ StaticContent: []byte( "\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\x00\x000\b\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\tpHYs\x00\x00\x0e\xc4\x00\x00\x0e\xc4\x01\x95+\x0e\x1b\x00\x00\x15\xdfIDATh\x81\x95\x9ay\x94\\\xd5}\xe7?\xf7\xbe\xf7j\xaf\xea\xaa\xea}W\xabi\xedha\x11H,\x02,6\xb3\x18\x821\xb6\x99\xc4\xf1d\x1b\xcf؞\xe1@2!\xfe#\xe4\xccI\xe2$\xf6x2\xc1NNb\a\x88\xf1\xb1s\x8c\xc1\x18\x10\x10@\b$\x83vh-\xb4ZK\uf6fa\xaa\xbb\xba\xf6\xe5\xbdw\xef\xfcQխ\x960\xc7\xe3{\xce\xeb~[\xbd\xf7[\xbe\xbf\xfd\x89\x89\xa9\t-\x84\x00@\b\xc1\xa5\xfbˏ/\xbd\a\xe0ĉ#\xfc\xc3\xdf\xff\x1f\x1e\xf8\xec\x83\xdcq\xe7}\f\x0f\x9f\xe6\xe5\x97^\xe0\xf3_\xf8m\x1a\x1b\xdb)\x95\xf2|\xe7\u007f\xff5Cg\x87\xf8淾CCC\xf3\xd2o\xd1\xfcʥѠA\xeb\v7,\xee_zN.\x12$\xa5d\xf9\xfe\xf2\xe3K\xef\xd1\xda]:w\xe8\xe0~\x86\x87\xc6\xf8\xee\x93\xdfe.9\xcb\xd3O\xfd\v/\xbe\xf02\xdf{\xf2\xff\x92HL\xf1\xcdo\xfe\x05/\xbd\xf8\x1a'O\x9e\xe6\xc8\xc1\xfd\x80\xa6R\xca\xe38\x15\x84\x14 \xf8ض\xf4NY\xdb\xc4'o楒\x96R.qx\xe95\x80w\xf6\xbc\xc6\x0f\x9f~\x8a{\xef\u007f\x80\xfb\xee\xff\x9f\xe1\xfb\xdf\u007f\x8amۯ\xe6ϟ\xf8\x16Bꋤ\xba\\\v\x82\xda{\x05\b-~\xe5}\xe6\xa5\x1c}\x12\xe1\xd5}͞=\xbb)\x15*\xfc\xf0\x99\u007fô\f\xf6\xbe\xbb\xafv\xaf\xc1йq@W\x85 \x05\x862Q\xa2R\x13-<\xff\xb3\x17\x97T\xbfj\xf5\xba%i\xff\xaa%\x84\x00\xadы\xb0Y\xd4\xcc%\x8c\xc8_G\xfc\xc5\x102\xe8\xeb[\x8d\xd2\xe0\xf5zy\xfa\xa9\xa7\x99K$\x91\xc8e*7\x10\x02\x84\xd0\xf8\xbc\x16\xc1\x80\x1fC\n\xa4\x10\xa0%h\x81a\x1a45֓\x98\x9d@\xf0q\xa8\nQ\x93}\xf5AUZ\x84@\xb2\fV\x8b\xdb\xf9\xc4y\xfdIZ\xa8JN#e\xf5\x01\x99\xf4<\xdfx\xfc\x8f9?\x9d\xa0X*\xe386\xcaU\b\xa1\x10Z`(\x9b\x80ph\xf2j\xa2>\x89ǐ\x94\x1cE\"g3ST䵁\xab\f\x14\xa0\xd0\xc4\xeb\xeb\xf8\xe9\xcf~N(\x1c\x05@i\x8dr\x8ad\xd3\vH!\xf0\xfa\xfcX^\x1fBzaѰ\x17\x01V\xd3\xc2'B\b\x04\xe3\xe3C\xfc\xe0_\xff\x11W\xd9xL/\xa3C#\xe4\ve2\xd9\x1cO\xf1\xfa\xb4\xcd@NRT&\x9b6m\xc4\xe7\v,\xc1%\x95\x1cg\xcfKO\xd3\xd1ԄUZ\xc0u\\l\xc7eA\x1b(O\x18]\xd2\xec\xb8\xeb\xb3\x04c\xad,\"\xefcF\xbc\xfc\xf8С\xf7H\x15\xe6\xf0\xfb=\x14\xd3y\x9c\x8a\x8b\xb2]\x84v\x90(\x9a\xad\x02\x0f]\x1e\xe1\xa6M\xed\xf8#\xaa\xe6E\\\x04n\x15\xabH\x84Ob\xba&\x9dm\xf5\xc4\xdd\"M\xbe\nό9\xfc\xde_~\x8b\xab\xaeށ\x94&\x88\xaad\x8f\xbe\xbf\x8b{\xbf\xf8%\xfc\xb9\x14T\x16@W5\xe5\x16\xf3\x9c<\xb0\x97\u007f{\xf65~\xf9\u008f\xf9\xccW\x1f\xe5ڛ~\v->\x89\x01Yݿ\xf3\xd3\xf71t\xee\x1cÓC8\x05\a\xad$\xb6c\xe3W%\xee\xe9\xf3\xf0Ў\x15\x84B\x06\xbaj\xb3hYu\x19\u0095\xe4s\x0eS\x89\x1c3s.\v)\x17\xdbQ\x18\xf92\x01C\x1035\xab.[\x854\xcc%cT\xca\xc6gJ|\x1e\x1f\xa8\x12\xc8*j\x84\x02\xc34\xf1\x9ap[\x9b\x85t\x8b\xbc\xf6\xb7O\x90N$\xb9\xeds\u007ft\x81\x01`\xc9\xe7\x02\xe4ri\x16\xe6\xe7ظi3\xa7N\x0f\xa0]\x81\xa1\x1cZ\xad<_{`%\x1b\xda\x05¬\x80p\x10\xc2\x02m13U\xe2\xf8\xd9\x14\x89\x92\x17\u007f\xbc\x95\xf6\x8eut\xf66\xb2*\xe2\xc5u+d\x92)F\x86ƈ\xb7\v\xea\xe2-\x17<\x90\x86l:I\xac\xa1\x010\x91\u0083\xc6\x01\\А??\xc1\xe0\x87\x83켩\x1d1\x9e\xa5%\xb0\xc0\x8f\x9f\xfe\x1e\xa1\xa6\xa6e\f,\xb9)x\xe9\xe5\xe7\xf8\xc5/\x9eG\x18\xe0\xf1x\b\x05\x82dg\xe6\xe8\f\x14\xf9\xe3\xdf\xd9I4?\x88\x14\n\xf0P*W8zr\x81\x89\xacA˚M\\\xf3Е4\xb56#L\x0f\v\xe9,c\xa3c$\x92YLU\xa1\xbb\xb5\x99\x80\a|\xa2\x1bix\x96\xfbL\xe6\x12\x93\xd4\xc5\x1a\x90\x02\xf0\x86\x10\x85<\xaek3}\xec\b\xa7O\x9d\xa53\\\xc4\x1b\t\xc2\xea\x18=\xae\xe6\x9a\xec\x1co>\xfb\x83*\x03\x17\f\x17\xb4P\xbc\xfe\xea.<\x01\x83P,\f\xb6f\xe6\xec$\xeb\x1a\x14\x8f~\xed\xf3\x04\xcc\"\xceٓ\x94\xf3\x92}\xfdsd\xac&\xae\xfe\xd4]\xecX\xbb\xba\xeaBѠ\r\xc6\x06?\xe2\xf0\xb1\x13DB!,Ӣ$M\\m\xe0\x0f\x87I\x8d\xcd \x97\x11\xbf\xe8\xd5\x05\x1a-\x04\"\x14\aSr`\xd7s\x1cڳ\x97\x0eY\xe4\xba\xebZ\x10F\x05\x84\xc2\xd7\x1bgc\xbaHR\xfa0\xfe\xf4\xf1?}\xe2\xe2pm\xb0\xfd\xba\xedLOLr\xb2\xff\x14\xa1\xb0\x87n\xab\xc8\xe3\x8f\x9a\x9bڸ|\xcb\r\b\xc3ba!\x81\xcf\x17\xc0\xe7\xf5\xf0\xfcw\xbeƙ\xd3#|\xe5\xaf\xfe\x95\xfa\xb8\x9fw~\xf2\xcf\xf4t4\x12\xb1\x1c\xc6\xce\rq|\xe4<7>\xf89V\xb4t\x81]\xc0-\x15INM0x\xee$7\xde|7\xd20\xaa\xd8\x06\xb4r\x198\xf4\x1e~Kq\xec\xf8\x19F\xcb\x06_~\xec\xdb\xf8\x02\x91\x8f\xe5CU\xa3\\L\xa3\x05\xda-\xf1\xcaS\u007f\xc9j\u007f\x91εk\t4ub\xbe\xbb\xfbg\x14\x8bE\xae\xbf\xfe6\x12\xb3\x93\xecz\xe1_\xb8\xed3_&\x16o\xaaEH\xc1u\x9f{\x8cЁ\xddd\xf2Y\xea\xeb#\xdc|\xdb-\x942\xb3\x8c\x9d8A\xaehs痿J\xba\x92\xc0\x11\x9a\xf1\xa3\xefQ\\\x98cxd\x14o\xac\x19a\xd6\xf2\x19-(\x962\x1cy\xfbm\xa2\xe1\x10\xd1\xfa8\xf1x\x88`\xd7v\xfc\x81\xba\xc5|\xef\xa2D\xcduʜ\xfe\xf0=\xa6\xce\x1eö\xf3h\xb7\xc2ș3\x04\x9a|\xb4\xf69\b)1\xeb\xe3\xcdlڲ\x03\x84\"\x1a\xab\xa7\xa9\xa5\x997^~\x8a;?\xf3\x87\x18\x96\a!\xa1m\xc5jںW\xf2\xfa/\x9e\xa1g\xc5\xc3\b\u007f=d\x12\xf4]\xb9\x9d>\x01\xd2\xe7\xa3R\t\xf1\x1f\xbb\x9eG\xce\xceP\xaa@\xdf\xc6m\xac\u07fc\x05)\x05\xae\xe32\xf0a?\xd3\xe3gغ\xedF\xc2\xe1\b\xc5\xd4$Z\x800\x8c%\xe2\x17ᬵfl\xf8\x04\a_y\x86\xab֬b\xe7\xb6MH\x8f\t\xdaA\u07fc\x9d\xa9\xb1q\x1c\xa7\xea\xfa\xcd\xcd[\xaeG\xab\fP\x02$\xd1P\x80m۶\xf1\xd6\xeb\xcfp\xfb\xdd\u007f\xb0\x18&9zx\x0f#C\xa7Иh\u007f\f\u007f\xac\rT\x19\xd0H\x95\xa7\xb3>J\xe3λ1\x9c\x12\x96i\x01\n\xe5\nΞ8\xce\xc8\xe9\x01zV\xaf\xe1Sw=\x880%\xc5l\x06\xad\x15łMc\xb4\xf1c\xa89;p\x88\xb3o\xff\x88\xfbn݁/܈\x10\x02%\x14\x02\x03ay\xe9X\xd9G69\x85t,L\xa5\xe60JyD!\r\x86\x84P\x9c\xfa\xd6.\xe4\xc1\xbd\x14\x8a\v\x04\x021N\u007ft\x80\xec\a\xaf\xd3\x134\xd0\xcaE\b\x03\u00adP\xc9\"\x9c\"Z9\b\xd7\xc6'5\xda\xe3!\x97^\xe0\xdc\xc9~\xd2\xc9\x05\xba{Wp\xcb=\xf7!\r/h\x89BQ\xa9\x941\\M2\x9dcc\xe7\n\x8a\xe5\x02\xd9R\x06\x9f/\xc8B&ə\xbd\xcfq\xeb\xf5W\xe1\xf3\xd7!$\x80\xaa\xc6\x17\x04\x1a\x01RQ\xb25Nb\x02S\x16\xe7\x11\xd9y\xd0\x1a\xe9\x02\v\x15\xa8o\xc5q\xc1k\xf9\x10B0>|\x82\xde\xf6\x16\xceͤ\xb0]\x1bӬ>\xd2\x11\x1e\xf2\x95\"\xe9\xe4\x02\xf33Ӕ\xd3\tL\xb7B$\x14\xa4o\xcdF\x02\x81\b\xc9T\n\x1c\x816\x04#\x13\x93\xf4t\xb6\x13\xf2\x19\xa4REr\xb6A0R\xc7\xd7\xff\xe6\x11\x92=&\x81\xba\x10\xfe\xc11\xfe\xee\xfa\x1b1\xa4D(\xc5bR$j\x9eM\xd4\xea\x8aP]\x84\x89ӧ0\x9d\xc93$&\x86\xd0\xfe\x10-\xedmx\xfca\xce\x1d\xd9CO\xdf\x15\x18V\x00\x00\xcb\xf0\xa3d\x89\xa1\xe1Q6-\xcc\xe3\x8f\a\xe8\u007f\xe3Gx\xa5\x0f\xad!\x18\f\xd1\xd7\xda@xm\x0f\xd20\x11\x15\x17!\xaaUT<\x1c\xa0\x94\x9eG\x06Ctv\xb5\xa0Q\xe0\x94\x99\x9d\x99#\x95H\xf0\xea\x93\u007f\xc2\x1df\x99g\xc6\x1d귮ek\xa6L\xd0\xeb\a\x04\x8eS\xc2\xc4Ǣ\x91\b\tZU\xeb\x1c\xa5\x1c\\\xd7Ÿ\xa5n\xf6\x893#\xe7\xd9\u007f\xe08٩Q\x06O\f0]0\xb9\xfe\xce\xff\xb4\x14\xdc\x1a[:y\xe3\xad\xd7(j\x81\x16\x06+W]N[S\x1d---4u\xb4c\xfa\x03\x04\x82aL\x8f\xc9\xd8\xe8\x04u\xa1 HM)\x97f\xff\xfb\xefq\xe0\x83\x0fi_\xd9C8\x14©\x94\x99\x1a\x19b\xcf{G\xe9i\x89\x13\x16\x0e^C\x92(\x96\xc8w5\xb0:\x95e}C\a\xc2\x10\xe0T(\xe4\xb2xCu5\v_Ԁfbd\x8c\x88\xcfļf\x93\x97d\"ORǰ\xbd\x1el_\x9c\x9d\xf7\u007f\x99\xa5\x8a\x01\bD\xe2\xfc\xf6\u007f\xff\x1b\x94S\xe6\xfb\xff\xf0\xe7\xdcp\xd3\x1d\xf8\u00ad\x90\x99\x02\xd7&\x14\n\xd6\x12BM{{\v\x99\xf1\x11f\xceO395C\xd0g\xf0\xc0\xe7\xee\xc7\xf0E\xaa>\xbdRfl|\x92\x81\xe1\x19:\xaf\xbb\x82\xed\xb7\xec\xc0\x92&\xb9\xf7\xdf\xe6ٙ$\v\x15\xa7jgH4\x9a\xe4\xf80\x81X3\x86e-3s\xc1\xf4\xd0(W_\xbd\x1eSH\xcd̂\xe2\xc1\xc7\xfe\x0e\x8f7\x84/\x10FJ\xab\x8a\xbb\xc5Do1Z\x9b^\xee\xba\xffw\xf9\xe9\x0f\xff\x89/\xfc\xe7\xafcFL\x12\xa3\xe7h\x8ezp*Er\x85\x12\xb1H\x88\xba\x95}\xe8\xfa\x16\x9az2D⍔]\x85\xaaؘ\x96\xc9\xc4\xd9A\x8e\xf6\x9f\xe3\xeb_\xfb\x03\xba{V\x02\x1a\xb7\x90gMo/\xf6\xc4G̖+(\xed \xa9\x12\x1c\x89Ƙ\x19\x1f\xa3c\xe5\xaaZ\xbfH\xb0\x90\x98\xc5PE\xa4i!K\xb92\xe9J\x94H\xac\x15\u007f0V\xab\x90t\x15u˺\x18B\x83\xabl\xe2\xed+\xd8t\xd5V\xbe\xf7\xedo0\xbfP$\xb6b\x15*چ\x11n \x14\x89\xa2\x84\x00$\xc1P\x98hs\x1b\xa6\xc7\xc2\xe7\xf7\xe2\xf5x9\xb2\xff]v\xef=\xcc\xef\u007f\xf5\xf7\xe9\xee\xed\x05\xbb\x84\x93\x9a&1r\x84\x85\xe48ҔL\t(\xabR\r\xf5\x9a`(Dz>Q\xa3BR)\x95x\xe7\xcd7ٸi\x03Ұ0\x0f\r\xe4\xc9\xf5\xee@\b\x03\x8dC\xe2\xfc\x18\x13C\xa7(\xe52\ba\x12\x8b7ѵz\x03/\x1e\u007f\x9b\xdd\xf3Gh\x9b1\xb9\xb7w\x15\xb7nYˮg\xbf\x83\x15oe\xed\x96-\xb44\xb6\xd1\xd4\xd4\xce\xd8\xf0(]\xad\x8d,\xcc\xce\x12\x0eyp\xed\fg\xfb\xfby\xeb\xed\x03X\x06|\xe5\xbf\xfd!\x96LJ[ʡr\xf38\xae\x83v\x04\x93\xe9<\xc1\x15Q\x92\xb6\xc3|&G\xc8\x1fE\b0\xa4\xc4)W\xd0(R\x89\x19^\xfb\xd9/\xb8n\xdbF,\xcbBx\xbc\x98\xa2g+\xd7\xdd\xf3EΞ>ʇ\aw\xd3\xd1\xd5Ǫ\xcb:\xa93\x9aP\x99$\xc9\xe4\b\x87w\xed嗳C\xb4\xdf\u007f\x15b\xdf<\xb1\xfafZ\x83\x06\x95b\x81\xfe\x13\xa7\xf8\x8f\xe3\x1f\xe0\x0fX\xf8\xfd~<\xfe0\x8eR\xe4\xf3y\xb4S\xc4c\x97\x88\x05|DM\x87\a\xbe\xf4;X\x1e?\xaa\x9cC\xe5S\x80FUʸ\xaebob\x8e\xf8\x8dk(\x84\xfd\xec\xf9h\x82\x87\x1b[1\xa5\x89\xeb\xba$\xd3\x19\xdeܵ\x8b\xb1\xc1\xd3\xec\xb8n3\xcd\xcd\xcd`H\x84LJ\xb9u\xe3:~\xf0\x8f\u007f͆\x9bo灇\x1f\xc14LP\xf3\x18\xc54Z:\xac\x88F\xe8\xe9\xebesq3\u007fvl\x0fy\xe1дj+u\xba\xc0\x15\xad\xbd\\\xb1SU\x13-lT\xb9\x88\x93O\x93\x9e\x9d`\xec\xdc9&&&)\x164=\x1d\r\x04\"\xf5Dc\xf5h\xb7\x82\x9bOWݩR\x14\xb2)^\x9c\x1c\xe7D\xa3\x97\r^\x0f\x91\xe6z\xde\xde?\xc8}\xc5\x1c\x91`\x1d\xc5b\x81\x93\x1f\x1cgMO+;\xb7\xae\xa3\xb9\xbb\x1d)\x05\x86/\x88Fc|\xe5\xe1;\x9e\x88]v\r7\xec\xb8\x1f!A\xb89\x84*#\nI\xd0v\xb5烉\xdf\xf412:\x8e\xb3\xbe\x9e\x91\xa3Cl]s\r\xc2\xc9W\xaf\xd7\x1aZ\xd2\xf2b\x06#\x84\x1a;h[\xb9\x8a\xbe\xcbV\xd2\xd5\xd2\xc0\x99s\xe3\xac\\w9\xe1h\fU\x98G\xd96(\x97\x91\xf9\xf3\xfc\xfd\x81\xa3\xfc\xb4\x94\xa4\xdci\x82\x84X(J\xd6\xd0X\x13\t.k\x8e3tn\n\x9ftY\xd9\xdeD[\xdf*\fi\x80!\xb1B\x8d \x05\xa6U\x17\xe3ʍ\xb7\xa0U\x01\xa1\xf2\b'\x83\xccσS\xa9\xf6&\xb5\x89\xaa\xe5[\xb7^\xb6\x81\xef\x16\xcf\xf0V\xf18ۆNqM\xcfjt%\x85\xc0\xaeZ\xf9\xa2\xe1\v\x10^?fC\x17\xd1H\x13\xb7v\xf4b\x98\x16\xda.\xe1\x94\v\f\xe7R\xfct\xff\x87\xbc\x92\x9a\xa4\xd8\x17\xc1\b\x84\xd0B365\x82\xc7㥥\xaf\x8b\x9f\xf7\xef冮6\x06O\x0f\xd3\x1c4hh\xef\xc40L\xb4И\xc1\x18\x98\xd5^\x8c\xc8\x0f>\xaf]\u007f\f\u007f \x02v\ti\xdb\b\xe1\xd6\xe2\x80 =9B]G7\xa0p\xb5ˣ\xfb_\xc6ؾ\x92\x81W\x8f\xf3?\xaf\xfd]nX}%\xb2\x92\x06U@\xe0.\xe5\xef\x8b]=\rh\xa1I\xcdO\xb3\xaf\xff=^\x1a8N\xbf\xcac\xac\x8aaDo\x10\xb2\xfc\x18\xcbʿ\x8avQ\x8e\x83\xd4b\x89\xf8E\xa9^\x10\xf1\x85\xffBH\x84\xd7\x02\x8f\x89^V\x91\x19%p\as\\q\xf3\xb5\x04\xa2A<>/\xfa\xa6\r\x16\xdc\f\xa9d\x1aW+J\xb9B\x15ZEȦSl\xdep%^\xd3Kq.\xcd\xfa𦚮5&\xb5\xf9\x93F\"\xa4\xc2\fE\xa9\v\x84\x11\xe52\xba\\\xc1U\xe5\xaa\aQ\n\xff\xaa\x10\xe5\x8ab\xe1|\x8a\xdd{N\x11\xac\x8f\xe0\vz(*\x9b\x804\tX~\xf2\xe5ڋ\x17Gtbٰn\x99v\xfc\x1dq\xe8\xd4\b\xc7E\xe5+\xb8\x8es\xb1v\x16Q\xa65J+P\xa0]\x8d9\x98\xe6S\xbf\xb5c)p\x9aj~\x0e#Z\x0f\x86q\xe1\xe7\xd2@\xf8C\x88@\xb5\xac\xc0\xd1h\xc7ƴ\xf3\xac\xdf\xec%\x9c\x18\xe7\xcd\xe9I\xf2\xb3\x19&f\x93\xd8\xdaE\x06\xbd\x18\x96\x85\xa5]\n\x85\x02\x15\xe5`D,\xbc\xcda.e\xe1\x02\xbc\x04H\x03i\b\xf4\x85a&Z\xab\xaa=\xd5l$\x18\x8a\xe05-R\x1f\x8d\xf3\xbfn\xf9#|\xa6\xaf\x16\xf15\xe6\xeb\xef\xbc\xc7\rWm P׀\fx\x91\xa6\a\xa4\x01R]\xe8ט L\v\xe1\xaf'\xe0\v\xd1j\b\xe4\xec\x04\xbd\xd7\xf4\x12ʴ2\x97\xcb3\x9dI\x92\xceT\xa5o\xd6\x051\xfdV\xade\xaf\x97\xbb\xfaKd\\\x9b\xfbI\x03!\xd4\x05#W\x8b\x00\xa9\xfe\x89\xc7\x1aPe\x87J\xff,]\xb7w]\xf4\x1cs˃\x8f\xb0\xe7\xad\xe7\xf0\x14\x06\xd8\xd8\xd3M\xac1\x8eiXT˒\xaa\xe4l@\xfb\x02(\xad\t\xd6Ő\xe1(\xe9\xf9\x1cJ\t\n\xe5\n\x15\x1cʆƌ\xfa>N\xa9\xfe5\xc6|\xc98\x17@9.\x8bnJ\bA8\x18\xa6X*\x11omD\xd6J\xcd%\x06\x1a[V\xf0\xe9/>F>;G\xff\xd1=\xa4\x0e\x1fG\x962\xf8,A\xd8\xefG\x02\xe9\\\x81\xb3\xe3\xd3tuwq\xf7}wa\xfa\xfc\xa4R\x19\x12\vY\xca\xca!\xeb\x94.\xb8\xd0%\xd1\xfd\xff/\xad\xd5\x05\x8dh\rJ]D\xa4%M2\xe9$]\x91Ѕ\xb3\x8b6P\x1d\"\v\x02\x91z\xb6\xdf\xfcY\xb8\xf9\x01\x94m\x93˦ȧ\xe7\xc9\x16\xd2D\x84\xc9\xc6\xfa&\x86\a\x8e0\xd0\u007f\x82\x96\xb5=\x94\x94\xcb\xd8\xe44\xc1\xa6\x18%\xc7^F\xcdoF<\xd5xy\xf1\x92\x12\xdc\xdae\xa5Ѯ\x8b\xe5\xb5H\xe6Ӹ\xda\xc1\x10\x17\xec\xd5\xe4cK -\x0fu\xf5-\xd4շ\\8+\x04\x9eX\x8c\xff\xfa\xe8\xc3\xdcr\xae\x8f\xa2\xd4\xcc\xcd\xce\x13l\xaav\x1b\xc4oJ\xf8\xf27^\xf2E\x804\r\xb0Y\x1a}e\x8ay\xdaZZ\x98\x1c=\xcd\xf0\xcc0\x97\xb5\xf5^\xe0\xf57yQ23\x8f\xeanaO*\x83\x8c\xfb\xc9gKKS\xfa_\a\xf5O$\x1e@\\\xfc\xbd\x84a\x18\xb5Μ\x06\xadI\xa6Σ54o\xe8\xe6\xd9}\xcf_\xfc\xa9\x01|\xf2\xa7,\x17\x0e\xaa\xd4U\xec\n\xc7&\x879*g\xd1\x1e\x03\xdb.\xe3\x15&~\xc3\xf3\x1b#g\xd1\x0fi\x00\xaf\x896\xaaƹ\xf8^\xcb\xe3A\xbb\n\xedj\xd2\xe9\x05R\xd9\x05\x8c\x80\x8f\x01o\x82w\x8e\xbd\xbb\xf4\x94\xff\a\xf7\x1e\t\x1d\xa3\xb5\x99:\x00\x00\x00\x00IEND\xaeB`\x82"), } +// auto-generated +// Code generated by '$ fyne bundle'. DO NOT EDIT. + +var ResourceMongodbJpg = &fyne.StaticResource{ + StaticName: "mongodb.jpg", + StaticContent: []byte( + "\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x00`\x00`\x00\x00\xff\xdb\x00C\x00\x03\x02\x02\x03\x02\x02\x03\x03\x03\x03\x04\x03\x03\x04\x05\b\x05\x05\x04\x04\x05\n\a\a\x06\b\f\n\f\f\v\n\v\v\r\x0e\x12\x10\r\x0e\x11\x0e\v\v\x10\x16\x10\x11\x13\x14\x15\x15\x15\f\x0f\x17\x18\x16\x14\x18\x12\x14\x15\x14\xff\xdb\x00C\x01\x03\x04\x04\x05\x04\x05\t\x05\x05\t\x14\r\v\r\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\xff\xc0\x00\x11\b\x00q\x00p\x03\x01\"\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00\x1f\x00\x00\x01\x05\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\a\b\t\n\v\xff\xc4\x00\xb5\x10\x00\x02\x01\x03\x03\x02\x04\x03\x05\x05\x04\x04\x00\x00\x01}\x01\x02\x03\x00\x04\x11\x05\x12!1A\x06\x13Qa\a\"q\x142\x81\x91\xa1\b#B\xb1\xc1\x15R\xd1\xf0$3br\x82\t\n\x16\x17\x18\x19\x1a%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz\x83\x84\x85\x86\x87\x88\x89\x8a\x92\x93\x94\x95\x96\x97\x98\x99\x9a\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xff\xc4\x00\x1f\x01\x00\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\a\b\t\n\v\xff\xc4\x00\xb5\x11\x00\x02\x01\x02\x04\x04\x03\x04\a\x05\x04\x04\x00\x01\x02w\x00\x01\x02\x03\x11\x04\x05!1\x06\x12AQ\aaq\x13\"2\x81\b\x14B\x91\xa1\xb1\xc1\t#3R\xf0\x15br\xd1\n\x16$4\xe1%\xf1\x17\x18\x19\x1a&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x92\x93\x94\x95\x96\x97\x98\x99\x9a\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xff\xda\x00\f\x03\x01\x00\x02\x11\x03\x11\x00?\x00\xfd\x05\xa2\x9c\xadڱ|U\xe2\xad;\xc1\xf6Kqz\xd2K,\x99\x10\xdaC\x8d\xf2\xe0s\xc9\xe0\x0fs\xf8\x02k:\x95#J<\xf2vDJ\xa2\xa6\xb9\xa4써\xfef\n\x14\x96=0\t\xcf\xe5TuO\x10\xe9z\x1e\x7f\xb45\x1b[f\x1f\xc1$\xc0\xb8\xff\x00\x80\x8c\x9fҼS\xc4_\x135\xbf\x111\x89.\x0e\x9fjx\xfb=\x91+\x90z\x02\xdf}\xff\x00\x1fӥy߉\xbci\xa0x-wk\xda柣\xbbr\"\xba\xb8\xfd\xf4\x9fH\xd7/\xff\x00\x8e\xfe5\xf3\x15\xb3\xd5w\f49\x8f\x1a\xa6e\xcd.\\\r\x99\xa3\xfe\x16\xb8\xd5\x02\x93\xf8,g\xf9\xd7#\xc6fU\xb5\x86\x82K2\xad\xf0\xc2\xc7\xdb\xef\xf1\xc1\xf7|\x9a\n\xe3\xfd\xab\xa6'\xff\x00A\xa1~8>\xef\x9bA\\\x7f\xb3t\xc3\xff\x00e\xaf\x83\x9b\xf6\xd4\xd4w|\xbe\x0eӀ\xff\x00\xa6\x97\xb31\xfc\xc0\x14\xdf\xf8mMG\x1c\xf8?M\xeb\xfc\x17\xb3\x03\xfc\x8d%W4\xef\xf9\x0f\xea\xf9\xa7\xf5c\xef\xb8\xfe8[3\x01.\x87*\x8f\xf6n\x81?\x91JԴ\xf8\xc1\xa0L\xc0M\x05\xed\xa1\xff\x00j!\"\xfdr\xa7?\xa5~\x7fZ\xfe\xdaP\xb4\x8a.\xbc\x1a\xc5;\x9bmP\x8fѣ\xae\xa7H\xfd\xae\xbc\x15|ؽ\xb2\xd64\xa3\xfd\xe3\x02N\x83\xeaQ\xb3\xff\x00\x8e\xd3\xfa\xe6iOV\xaf\xf7\x12\xe3\x9aSג\xff\x00q\xf7ޛ\xe3\r\x0fY`\xb6z\xa5\xbbK\xd3\xcbi69\xf6\n\xc0V\xb6\xd6^\xbf^k\xe3O\v\xfcM\xf0\x8f\x8d\xa4\x03G\xf1\x1e\x9f}9\x1c[\xf9\xa6)\xb3\xe9\xe5\xb8RO\xb0\xfc\xeb\xd24\x1f\x1dk\xde\x19\"8n\xe6hT\xe0\xdb]\r\xc8}\xb0NS\xfe\x03]Ts\xc7\x17\xcb^\x16\x1cs)\xc1\xf2ׅ\x8f\xa0\xa8\xaeo\xc1\xbf\x10,\xfc^|\xa4Sm|\xab\xb9\xedX\xe5H\xf5V\xea{\xf5\xe6\xbaV99\xe4\xfb\x93\x9a\xfaj5\xe9\u05cf5-\x8ff\x9dHՏ4D\\\xee\n\x17$\xf0\x0f\xa7 \x7fZ\xf0O\x88\x9a\xc1\xd7|i|\xc8\xc4\xc7o'\xd9 _E\\\xe4}\vu\xfc+\xdf\x16C\n\xc9'\xf0č!\xfc\x015\xf2\xcd֤,\xe1\xbd\xd4\xe5m\x8b\f2\xde9\xf4UF\x7f\xe8+\xe73\xe9\xda\x14\xe8\xf7<\x8c\xd2w\xe4\xa7mϕ~;\xfeў\"_\x14j\xde\x19\xf0\xd5\xd8\xd14\x9b\x19^\xd2[\xdbV+ur\xe9\xf2əO\xdd]\xd9P\x17\x1fw\xad|\xf7$\xefu+\xcb#\xb4\xb29\xcbH\xe4\xeec\xeas\xce~\xa4\xd1%Է\xd25\xcc\xc7t\xd3\x13#\xb7\xab7,\x7f2i\xb5xz\x10\xa3M[s\xea0\xb8zT)\xc5S\x8e\xe1J\xa7\x18\xea?\x91\xf6\xa4\xad_\t\xf8^\xff\x00ƾ%\xb1\xd0\xf4ы\xab\xa6ǚWr\u0083\x96\x91\xbd\x94\x7f\x0f\xf1\x12\xa2\xb7n1W\x91\xd7)F\x11r\x97C_\xe1w\xc3=_ⷉWL\xd3\"6\xf6p:\x1dGQ`Dv\xd1\xee\xc9\x00\xff\x00\x14\x85Aڿ\x8fj\x9f\xe2\xe7\x81\xdb\xc0>7\xd4-\"\x86H\xf4\xa9'\x91\xacdl\x01\xe5\x06#a?\xdeP0}z\xf7\xaf\xb5>\x1e\xf8SK\xf0/\x87\xac\xb4}&-\x96\xb0\xf2do\xf5\x939\xfb\xd29\xee\xe4\xf5\xfc\xbbW\x9c\xfcB\xf0Տ\x8b\xe5\xd5,5\x04\x1eS\\HRle\xa1}\xc7\x0e>\x95\xe4}y\xb9\xddl|k\xce\xe5\xf5\x8b\xcb\xe1\xd8\xf8\xfb\xbf]\xc7\xd79\xcd\x15\xa9\xe2_\x0f^x[Z\xb9\xd3o\x90\xacз\x0eF\x04\x8b\xd9DZ\xff\x00\x1a˯^/\x99\\\xfb\x1as\xf6\x91S\x88\x8d\xb4\x90\x0fQ\xc8\xf5\xfc+\xd5~\x19~\xd1\xde%\xf0\x1dս\xbe\xa1x\xfaׇ\xd5\xd5e\xb7\xbeb\xcf\x04}\x19\xa2~\xa9\xb4d\xe0\xf1\xcfּ\xae\x9aѬ\xb9F\xe00\xdaO\xa0=O\xf2\xa8\xa9J\x15c\xc9.\xa65\xe8C\x13\a\x19\x9f\xa7\xfa\x0e\xad\xfd\x8b\xabX\xeapɔ\x86E\x90\xb0\xe3)\x8c\x1c\x8e\x83*H\xe3\xfb\xd5\xf4\xce\xe0\xdf0;\x83\f\xee\xecs\xcek\xe2\x7f\x82\xba\xd3\xf8\x8b\xe1G\x84\xef\xa4q$\x8f\xa6\xc5\x1c\xac\x7f\xe7\xa2\x0f-\xbfU5\xf6\x0f\x83\xee\x8d焴i\xdb\x1b\x9a\xd20q\xec6\xff\x00J\xe2\xc9%\xc9V\xa5\x05\xb2>?.\xfd\xd5I\xd0[\"ַ'\x93\xa0\xea\x8f\xe9g9\xff\x00\xc8d\x7fZ\xf9\x1b\xe2%\xd3\xd8\xfc5\xf1l\xe9\xf7\xa3Ѯ\xb1\xff\x00~\x98\x7fZ\xfa\xe7\\\x8f\xcd\xd0uU\xf5\xb3\x9f\xff\x00E\x9a\xf9#\xe2\x15\xab_|5\xf1\\\t\xf7\xe4\xd1\xee\xc0\xfc!c\xfd*s\xbf\xe3\xd1\f\xc3\xf8\xf4\xbdO\xce\xc5\x1bx\xf4\xe3\xf4\xa5\xa3v\xe0\x0f\xa8\xcd\x15\xe9t>\xe7\xec\xa16\xeea\xf5\xfc\xbdO\xf5\xfc+\xe9\x1fٗ\xc2k\xa6\xf8vo\x11N\xb9\xbcԛ˃?\xc3l\x8cG\xfe>\xdb\xdc\xff\x00\xba+\xe6\xd6Vq\xb2>%\x93\xe4\x8fݏ\x18\xfcȯ\xb8|;\xa6Š\xe9v\x1ad?\xea\xac\xe0\x8e\xddG\xa6\xc5\v\xfc\xc5yy\x8dnH(\x1f/\x9fbeN\x94i\xc7\xed\x1dń\x9f(\xe3\x199\xe7\xaf\xe3\xfezb\xbc\xef^\x93\xfe'\x9a\x87͏߿\xf35\xdb\xd8I\xc8\xfa\xd7\x03\xaf6\xedn\xff\x00\xfe\xbb\xbf\xf35\xe1\xd3\xd8\xf8Y|6\x97S̾5xM5\xcf\x0e\x9dV!\xfe\x9b\xa6\x8d\xcc\xc3\xef<\x04\xfc\xc3\xfe\x02v\xb5x\x01\xc9\xe4\x8c\x13\xc9\a\xb1\xef_^\xb4p̭\x14\xe9\xba)\x01I?\xdc#k~\x8cG\xe3_'\xeb\x9ac\xe8\xba\xcd\xf6\x9f'\u07b5\x99\xa1\xfa\x80x?\x95{\xd8\x1a\x97\x8f!\xf6\xdc?\x8as\xa7*\x13\xdd\x14\xa9:6O\xf9\xff\x009\xa5\xa4c\xb5I\x1dq\x9f˚\xf5\x0f\xaeg\xdb߲\xf5\xd3M\xf0OAW\xff\x00\x96R\xddD>\x82\xe1\xff\x00ƾ\xd1\xf8g'\x9b\xe0m)\xbf\xd9q\xf9H\xc3\xfaW\xc5\xff\x00\xb2\xed\xbb[\xfc\x11\xd0\vu\x95\xee\xa6\xff\x00\xbe\xae_\xfc+\xed/\x86+\xb7\xc0\xbaW\xba\xb9\xfc\xe4j\xf22\xaf\xf7ڇ\xc3a\xff\x00\xdfj\x1d7\x97\xe7)\x8c\xff\x00\xcb@P~ \x8a\xf9f\xebK[\xeb{\x9d5\xd7>|rٟ}\xcaS\x1f\x915\xf5Ld~9\xe7\xe9\x90?\xad|\xf1\xe3\xcd8\xe8\xfe0\xd5!\x1c\x0f?\xed\x11\xff\x00\xba\xe4?\xf3a]9\xe4m\nU<Ǚ\xab8U\xec~W\xc9\x03ڱ\x86A\xb5\xe2\xfd\xdb\x0fu\xe3\xfaSk\xbc\xf8\xe9\xe1\x96\xf0\xa7ŏ\x12Zl\xd9\f\xd7&\xf2\x1ft\x98\t\x01\xfc\xd8\xd7\a]Te\xcf\x04ϰ\xa3>z*}ѱ\xe0\xcbU\xbe\xf1\xa7\x87\xe0\x7f\xba\xfa\x84\x19\xfc$S\xfd+\xec\xab9>o\xa9\xcf\xe7\xcd|i\xe0\xeb\xc5\xd3\xfca\xa0ܷHo\xe0o\xcd\xc0\xfe\xb5\xf6\x15\xb4\xdb[#\xa08\x1f\x9dx\x99\x97\xc5\x13ḕ\xfe\xfe\x9f\xa3:kY+\x87\xd7%\xff\x00\x89\xcd\xf7\xfdvo\xe7]m\xa9\xdc3\xeb\\v\xb9\xff\x00!\x8b\xdf\xfa\xea\xdfμ\xba{\x1f7̝\xaeU\xdf\xdcW\xcf_\x18\xadR\xdb\xc7ڃ'\xfc\xb6\x8e\x19O\xd7\xcbQ\xfd+\xe8\x06ld\x0e\xa6\xbe\x7f\xf8\xc3p\x93x\xf2\xf9S\xfeYE\fg\xeb\xe5\xa9\xfe\xb5\xea\xe0~3\xe8x~\xff\x00Z\x7f3\x8a_\xba)\x1d\x965i\x1b\xa2\r\xc7\xe8:\xff\x00JU\xfb\xa2\xae\xe8z\f\xde*\xf1\x06\x95\xa2B\xbb\xa4\xd4\ue8b3\x1e\xdb\xd8+\x1f\xfb\xe4\x93\xf8W\xb9'ʛ?B\x9c\xb9!)vG\xdd\xff\x00\x06\xb4\x96\xf0\xef\xc2?\tZI\xfe\xba=6\x19\x1f\xfe\xba827\xea\xe6\xbe\xc4\xf0e\xaf\xd8|#\xa2\xc0z\xad\xa4d\xfe*\x0f\xf5\xaf\x9dt\xbd4\\\xdeX\xe9\xb6\xeb\xf2H\xf1[\"z!\xc0\x1f\xa5}@8U\x00\xf0\x00\x03ڼ\xfc\x8d{J\x95j\xf9\xfeg\xc2\xe5\u07fc\xabR\xb7v9s\x8e\x0e\a\xa7\xe9^U\xf1\xafFo;OգR~Si9\xec\xcc\t(߫\x0f½N\xb3\xfcA\xa2G\xe2M\x1e\xebM\x93\x01n\x13\x87\xc7(\xe3\x95o\xc0\xf3\xf8c\xbd}\x06;\x0f\xf5\xaa\x12\xa6z\xb8\xaa>ڌ\xa0~p~\xd8^\t\xfbf\x97\xa4\xf8\xba\xda\"M\x9f\xfa\r\xe8^\x9eS\x12п\xe0Y\x81\xff\x00|W\xcb;J\xe0\x11\x83\xfe\x7f\xcf\xd3\x15\xfa]\xe2o\rA}g\xaah\x1aվ\xfb{\x84k[\x98X\xf2A\x1d\x8f\xa8\xc0a\xee\x01\xed_\x9f\x1f\x12<\x03\x7f\xf0\xd7\xc5ך%\xf8/\xe5\x9d\xf6\xf7\x1d\xa7\x84\xe7d\x83\xdc\xe0\x86\xff\x00h5|\xbe]Z\xd1\xf6\x13\xde!\x92\u2e69}^{\xa3\x95\x97;xm\x9c\xe4?\xf7H\xc9\xcf\xe9\x9f¾\xbf\xf0O\x88\x13\xc4\xde\x1a\xd3uD9i\xe2\x1e`\xfe\xec\x83\xe5q\xff\x00}\x06\xaf\x90\xebӾ\bx\xe94\x1dY\xf4k\xe7X\xeco\x9c\x18d~\x169\xf8\x1f1\xf4`\x00\xfc+\xa3\x1dEՇ4C<\xc0\xbcU\x0ez_\x14O\xa7-&\xdcG\xd7\xfaW!\xac6\xedZ\xf3\xfe\xba\xb7\xf3\xae\x9e\xceB\x1b\x04`\x8221\xef\\u\xf1ݨ\xdc\xff\x00\xd7F\x1f\xaf\xff\x00Z\xbev\x95\xd5\xee~y\x17\xee\xa61\x9a4m\xd2\x1d\xa8\x83{\xb3tU\x1c\x93\xfag\xf0\xaf\x98\xb8ȯs\xfd\x91\xfc\x0e\xfa\u05ceo|K*\xed\xb2\xd1#1B\xcd\xd1\xee\xa4S\xd3\xddS?\xf7\xddx\u038d\xa2\xea\x1e%֬4}&\xdb\xedz\xa5\xf4\xa2\x1bx{3\x9erDz(\x05\x98\xf6\n}k\xf4\x0f᷁l\xfe\x1a\xf8/N\xf0\xf5\x80i~Ι\x96b\xb8{\xab\x86 \xb4\x8c=Y\x8fN\xc0\x85\xa8\xcc+*t\xf9#\xbb;3|Z\xa3ER\x8e\xec\xf5\xaf\x84:+\xea~,k\xcf/\xf7:|[\xf3\xff\x00MOʣ\xf0\xc3\x1f½\xb7\x81\x90\xbd:\x0f\xf0\xfc:~\x15\xcfx\x17\xc3?\xf0\x8bxv\x1bINnf&\xe2\xe7=C\x9c|\xbf\x80\n\xbf\x85t#\xdf9\xef\x9a\xf7r\xbc;\xc3a\xd2}N<\x05\a\x87\xa0\x93\xea\x14\xe5`\xb9'\xa60~\x9d\xe9\xb4W\xad\xae\xe8\xf4\x95\xfa\x1c\aş\x05\xbe\xad\x0f\xf6͔{\xae\xe1LO\x1areAр\xf5^\xfeد\x97>2|)\xb2\xf8\xb5\xe1\x9f#tpk\x16jϧ^\x1f\xe1c\x8dѱ\xeb\xb1\xf1\xcfu\xfb\xdd\x01\x15\xf7,m\x86\x1c\x8c\xf5 \xfe\x9f\x9dy\aĿ\x87\x87K\x92mcK\x85\x8d\x8b\x92\xd3\xdb\x05,a'\xa9\x03\xba\xf3ϧZ\xf9\f\xcf\x03R\x13\xfa\xde\x1f\xe6x8\xba\x13\xa3?oC\xa1\xf9!\xabi\x17\xbe\x1f\xd5.\xf4\xddJ\xdaK;\xfbY\fS[\xc80Q\x87o\xa61\x828 \x8285M\xcf˵\x81\xda}8\xfd}\xab\uebcc\x9f\x05\xf4ߋV+p\x8e\xbaw\x88\xed\xe3\xd9o\xa8\xe4\x10\xea3\xfb\xb9{\x15\xcep\xdfys\xf2\xf7\a\xe2\xcf\x14xWV\xf0f\xb5q\xa4\xebVoc}\t\xe66\x19V\a\xa3#te?\xde\x1dy\xcf9\xab\xc2c!\x8a\x85\xba\xa3\xe8\xb08\xfax\xc8%\xd5n{G\xc1\xaf\x8b˨}\x8b@\xd7%+~ΰZ^?\x02b\xc4*\xa3\x9e\xce{\x1e\xfc\n\xeb~=j\xe9\xf0\xbf[!\x92;\x8b\xbdJ/\xb6Y[\xe4\x10\x14\x927\xc8\a\xdc\x01\x95\xc0^\xacA\xed\x93_(\xcdr\xf6\x00^E\xfe\xb2ݖd\xc6xt`\xcb\xfa\xa8\xafw\xfd\xb5<\xcf\xf8^\x8e]\x1a0\xda.\x98\xea\xad\xe8\xd6Ῑ4\xbe\xa9O\x9a\xf29e\x93\xe1eUϣ\xd4\xf1MCP\xb8կ\xa6\xbc\xbb\x95\xa7\xb8\x99\xb7\xbc\x8f\xc1'\xe9\xdb\xe9\xd0v\xe3\x15\x02\xabI$q\xa4o,\xb28H\xe3\x8dw<\x8cxTU\xfe&c\xd1z\x9eGLԺ~\x9fw\xacj\x16\xb6\x16\x16\xd3\xdf^\xdc\x1d\x90\xda\xdb.\xe9$oa\xfdz\x0f\xe2#\x8c\xfd\x7f\xf0\x17\xf6{\x8b\xe1\xe9\x87\xc4\x1e!\x10\xdfx\xa5\x97\xf7q)\xdd\x06\x9f\x9e\bC\xd4\xc8\x7f\x8aOm\xa3#\x04\xe9\x88\xc5C\r\x1f{~\x87v+\x19O\x05O]\xd6ů\xd9\xdf\xe0\x87\xfc+\x8d?\xfbc[\x8d$\xf1E\xfcA^<\xee\x16P\x9eL(ݘ\xf0]\xbap\x14p\xa2\xbe\xa9\xf8M೨\\.\xbd\x7f\x17\xfa,9\xfb\x12\x11\x8f1\xff\x00\x8a_\xa0?w\xdf'\xb5b\xfc?\xf8\x7f'\x8b\xae\xbe\xd7r\xa6-\x16\x16\xc3\xc8\xd9SpG\xfc\xb3_oS\xdb\xee\u05fa\xc3\x14pB\x91D\xa1\"\x8dv\xaa\xaa\xe0\x00;\x0f\xa7Lv\xe9ڹr\xfc\x1c\xf1u\x16&\xbe\xc8\xf9\\5*\x98\xaa\x8f\x11[f<\xb6\xe3\x9fΒ\x8a+\xed\x1bwi\xf4>\x87E\xa2\n(\xa2\x90\x05;p\xdaA\a\x1d\xf03\x90{Sh\xa4\xf6\xd5\\7V<\xbfǟ\n\xfef\xd44(\x81\fKKc\x19\xcf\xd4\xc7\xeb\xfe\xef\xf8׆x\xf7\xe1և\xf1\x13K\xfe\xca\xd7\xec\x96u\x8c\x9f*d_.\xe2\xdd\xfdQ\xbf\x80\xfa\x83\xc1\xf4=\xbe\xc4\xc6s\xff\x00\xd6\xc8\xfaW3\xe2\xbf\x00i\xde,\xdd,\x8b\xf6[\xe00.b\x1bO\xfc\b\x7f\x10\xaf\x97\xc6\xe5<\xf2\xf6\xb8gg\xd8\xf0\xeb\xe0e\xcd\xedp\xefS\xf2\xab\xe2W\xec\xd3\xe2_\x02\x99.\xac!\x7f\x12苸\xfd\xa2\xd2/\xdfļ\xe7͈d\xb0\xc62W#\xe9\xcdgx\x17\xe0\xff\x00\x8e~0\xdd[^J\xd76\xdaZ\xa2E\xfd\xb1\xac\x97e\U00097011#\x1d\xee\a8\x00\x85\x1e\xa3\x91_\xa1^#\xf0\x1e\xb3\xe1V-=\xb9\x9e\xd5O\xfc}[\x8d\xc9\xf8\x8f\xe0\xaa:\x1f\x85\xf5_\x14\xdc\xecӭ\x9ah\xba5\xc3eaOr\xc7\xef\xfd\x00'\xe9ּ\x8f\xadb\xe3\xfb\x97N\xf2\xee%\x9ab\xd4}\x93\x85\xe5\xdc\xf3/\x86\x7f\a|7\xf0\x9e\xceA\xa6\xdb\xf9ڔɶ\xe7V\xba!\xaee\xf6\xdc\x00\b\x9e\xca\x00\xfa\x9c\x93\xee\xbe\a\xf8[q\xae\xf9w\xba\xba\x1b=0୫\x00\x92O\xfe\xf7\xf7S\xd3ֻ?\b\xfc)Ӽ74W\x97\xac\xba\xa6\xa6\xa4\x15\x92E\xfd\xdcD\x7fq\x0e\x7f2I\xfd\x05v\xe5\x8b\x12q\x8ez\x7f\x9e\x95\xe9\xe12\x89\xd4~\xdb\x16\xf5\xecU\f\x15J\x92\xf6ؗ\xafb;xb\xb6\x85!\x81\x16(\"\x1b#\x8d\x06\x15@\xec\ajsPԕ\xf5\x8a1I(\xec\x8fj\xc9+ \xa2\x8a)\x8c(\xa2\x8aQ\xdc\x16\xe1E\x14U\xb2\x98S\x96\x8a+8\x91\xd0T\xfb\xb7_\xf5\xcb\xfa\x9am\xb7\xfcyA\xfe\xef\xf5\xa2\x8a\xe4\xff\x00\x97\xa7<~1)\xd1\x7f\xae_\xa7\xf5\x14Q]\xbfe\x9dr\xd8t?\xeb\aң\xff\x00\x97\x89\xbf\xdc\xfe\xa6\x8a)\xd3\xd9\x19}\x946O\xf50\xfd\x0f\xf25f㬔QO\xec\xc8p\xd9\x1f\xffُ\xcfB\xdd\x03V\xbc\x90ܻ4\xb1z$U\x9eɤ\aP.y\xd0NM\xcby?ۯY\x92\xc5Z\xa4R\xbbT\xb1A\fr;<\xf5=\xac\r'2\xa7\x1cPD\b\x8a(\xa3\ax\x89\x8df~z@RR\x8a\xed<\xa5\x19\xb7M\x84E\x954XDD\x04E\x94\x18DD\x04D@DD\x04D@DD\x04D@DD\x04DA\x95\x9dDn'\xc8\x12\xb0\xb0\x83%aea\x01\x11\x10\x11\x11\x01\x11\x10\x11\x11\x01\x11\x10\x11\x11\x01\x11\x10}47\xaahoTD\r\r\xea\x9a\x1b\xd5\x11\x03Cz\xa6\x86\xf5D@\xd0ީ\xa1\xbdQ\x1047\xaahoTD\r\r\xea\x9a\x1b\xd5\x11\x03Cz\xa6\x86\xf5D@\xd0ީ\xa1\xbdQ\x1047\xaahoTD\r\r\xea\x9a\x1b\xd5\x11\x03Cz\xa6\x86\xf5D@\xd0ީ\xa1\xbdQ\x1047\xaahoTD\r\r\xea\x9a\x1b\xd5\x11\x03Cz\xa6\x86\xf5D@\xd0ީ\xa1\xbdQ\x10\x7f\xff\xd9"), +} +var ResourceExcelJpg = &fyne.StaticResource{ + StaticName: "excel.jpg", + StaticContent: []byte( + "\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff\xdb\x00C\x00\v\t\t\a\t\t\a\t\t\t\t\v\t\t\t\t\t\t\v\t\v\v\f\v\v\v\f\r\x10\f\x11\x0e\r\x0e\f\x12\x19\x12%\x1a\x1d%\x1d\x19\x1f\x1c))\x16%756\x1a*2>-)0\x19;!\x13\xff\xdb\x00C\x01\a\b\b\v\t\v\x15\v\v\x15,\x1d\x19\x1d,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\xff\xc0\x00\x11\b\x00\xb4\x00\xa2\x03\x01\"\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00\x1b\x00\x01\x00\x02\x03\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\a\x01\x04\x05\x03\x02\xff\xc4\x00N\x10\x00\x01\x03\x02\x02\x02\v\n\v\x06\x04\a\x00\x00\x00\x00\x01\x00\x02\x03\x04\x05\x06\x11\x121\a\x13\x14!QUqr\x92\xb2\xd2\x16\x17\"23Aas\x81\x94\x15BSTt\x91\x93\xa1\xb1\xd1\xd3$6\x82\xa2\xb3\xf0#%Rc45Db\x83\xa3\xc1\xff\xc4\x00\x1a\x01\x01\x00\x03\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x03\x04\x01\x05\x06\xff\xc4\x000\x11\x00\x02\x01\x03\x01\x06\x05\x02\x06\x03\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x11\x12\x13\x14!1QR2Aa\x81\xf0\x05S\x15Bb\x91\xb1\xc1\"q\xe1\xff\xda\x00\f\x03\x01\x00\x02\x11\x03\x11\x00?\x00\xb6\xd1\x11\x00DD\x01\x11\x10\x04D@\x113_\x12K\x14-/\x96FF\xc1\xad\xd29\xach\xf6\xb8\xe4\x80\xfbEǨ\xc4\xf8b\x94\x91%ҕ\xc4y\xa9˪\x0f'\xf8\x01\xcb\xeaӈ-\x97\xa9+c\xa2\xdb\xce\xe4\x10\xbaG\xcb\x1e\xd6\xd7m\xa5\xe0h\x02t\xbe)\xcf0\x172\x8a\xf6\xb0Μ\xf1:Ȉ\xbaX\x11\x11\x00DD\x01\x11\x10\x04D@\x11Fj1\xbe\x19\x80\x90ɪj\b$\x11O\x03\xc0\xccox\xd3h\x0f\xbdr*6Co\x84)-\x8e?\xe9}M@\x1f[\"i\xeb(\xb9$g\x95\xcd(\xf3\x91=EUTc\x8cM7\x92}-0\xff\x00b\x00\xe7}s\x97\xfe\v\x91Qz\xbfUi\n\x8b\x9dk\xda\xedm\x13=\x8c\xe8FC~\xe5\x17Q\x19\xa5\xf5\nk\x92l\xb9*+()FuUT\xd0\x0f\xf7\xe6\x8e>\xb9\v\x91Q\x8b\xf0\xb5>\x97\xed\xc2g\x0f\x8bK\x14\xb2\xe7\xc8\xe0\xdd\x0f\xe6U\x16\xb3\x99\xd7\xc2u\xfdh\xa3\xb4fy}Bo\u008b\x1a\xa3d+{s\x14\xb6\xea\xa9}5\x12E\x00\xcf\xf84\xca\xe3\xd4c\xeb\xec\x9aB\nz*pu\x1d\t&x\xf6\xb9\xc1\xbfʢ(\xa3\xad\x99\xe5yZ^g^\xa3\x12\xe2j\xac\xf6ۥKA\xdeʜ\xb6\x9ce\xff\x00\x804\xfd\xeb\x95$\x92J\xed9d|\x8f:\xdd+\x9c\xf7\x1fk\xc9+\xe5\x14rٞS\x94\xbcO!N\xf6:\xf2\u0603\xd5ۺӨ\"\x90a\x9b\xfc\x16\x17\xdc_-4\xb3\x9a\xb6\xd35\xbb[\xd8\xcd\r\xa4\xc8Nz\\:_r\x94^\x19u\xb4\x94*\xa9K\x91n\"\x83\xf7â\xe2ʯ\xb6\x89;\xe1\xd1qeW\xdbD\xae\xd5\x13\xd9\xde\xe8\xf7\x13\x84P~\xf8t\\YU\xf6\xd1~I\xdf\x0e\x8b\x8b*\xbe\xda$\xd5\x11\xbd\xd1\xee'\b\xa0\xfd\xf0踲\xab\xed\xa2N\xf8t\\YU\xf6\xd1&\xa8\x8d\xee\x8fq8E\a\xef\x87Eŕ_m\x12\xf7\xa6\xc7\xf6ydk*ij\xa9\x98\xe2\x06\xdaK%c=/\f:Yr\x02\x9a\x91\xd5uE\xfebb\x8b\xe5\x8fl\x8cd\x91\xb9\xafc\xdaױ\xcc \xb5\xcdp\xcc\x16\x91\xbd\x91E#IC\xbb\xc6\x7f=߉_+.\xf1\x9f\xcewX\xac,\xa7\xca\x04D@\x11\x11\x00DD\x01\x11\x10\x05%\xc2v\x1b}\xf6K\xa3k_R\xd1J\xcaGE\xb9\xe4\x11\xe6e2\x87if\xd3\xfe\x91\x92\x8d)\x16\x18\xbf\xd3X_r|\xf4\xf3ͺ\xdbJ\xd6\xed&1\xa3\xb4\x99\t\xcfL\x8dz_r\xecq\x9e%\xd44m\x16\xbeD\xb7\xb8\f9\xf2\xb7/yo\xe9\xa7p\x18s\xe5n^\xf2\xdf\xd3Z\xfd\xf0\xad\x9c]]҃\xb4\x9d\xf0\xad\x9c]]҃\xb4\xad\xcc\x0fW6\x9e\x87\xbfp\x18s\xe5n^\xf2\xdf\xd3Y\xee\x03\x0e|\xad\xcb\xde[\xfak\xb9f\xba\xc5y\xa1\x8e\xba(\xa4\x89\x8f\x96x\x83%-.\x06'\x96\x13\xe0\x1c\xb7\xf2Q\xb3\xb2\x15\xb0\x13\xfe_]\xbcH\xf1\xe0\xed.\xff\x00\x8a'(\xdbE&\xd2\xe2lw\x01\x87>V\xe5\xef-\xfd4\xee\x03\x0e|\xad\xcb\xde[\xfak_\xbe\x15\xb3\x8b\xab\xbaPv\x93\xbe\x15\xb3\x8b\xab\xbaT\xfd\xa5\xcc\xc0\xaf6\x9e\x86\xc7p\x18s\xe5n^\xf2\xdf\xd3Q\\Wb\xb7X\xdfle\x1b\xaa\x1c*YR\xe97D\x82C\x9cf04rh\xe1*˵\xd7\xc7t\xa0\xa2\xaf\x8e7\xc6ʨ\xf6ƲB\xd2\xf6\x8c\xcbr%\xbb\xdee\t\xd9\x13\xcbX\xbdUoZ$\x92X\xca9sJ\x92\xa2\xe5\x04C\x99s\xba\xc4\xc6E\x1dd\xed\x8e6\xb68\xda\u05f8\x06\xb5\xa3 \x00\xf4\"\xd3:\xcf**\xb2\xcf1T\x97S\xd1\xde3\xf9\xce\xeb\x15\x85\x97x\xcf\xe7;\xacV\x17\nB\"\xf9\x12Fu=\xa4\xf0\x02\t\xfb\x90\x1fH\x99\x10\x01-p\xccf4\x9a\xe6\xe65f4\x82 \b\xb7h\xad7\x8b\x8bd}\x05\f\xf5\x11\xc6\xfd\xad\xef\x8fk\fk\xf2\x0e\xd1ґ\xc0g\x91\aڷ%\xc2\xf8\x96\b&\xa9\xa8\xa1l\x10A\x1b\xe5\x95\xf3TҀ\xd64fw\x9a\xf2s\xe0\xdeL2j\x9c\xda\xcaL\xe3\"\"\x10\b\x8aK\x85,v\xdbܗF\xd7:v\xb6\x99\x94\xa6-\xa6Q\x16fS(v{\xc7=C\xfb(\x96x\x13\xa7MԖ\x98\x91\xa4Vwp\x98_\xe5k\xbd\xecvS\xb8L/\xf2\xb5\xde\xf6;*z\x19\xafq\xab\xe8{\xe0_\xdd\xea_\xa5W\xff\x00]\xea\xab:\xdd\xce?\x8a\xbb-V\xda+M\x1b(\xa8\xdd#\xa0d\x93<\x19d\xdb\x1f\xa5#\xcbݛ\x80\xe1+\x80p.\x17$\x9d\xb6\xbb|\x93\xff\x00\x16;*R\x8bi\x1a\xab[Np\x84W\x91X\xac\xfej\xcd\xee\x13\v\xfc\xadw\xbd\x8e\xcaw\t\x85\xfeV\xbf\xde\xc7eGC2n5}\x0e\x96\x12\xfdܱ}\x10uܣ;\"yk\x1f\xaa\xad\xebD\xa7\x16\xea*[u\x15%\x15)y\x82\x9e=\xae##\xf4\xdc[\x99;\xee\xf3\xa8>ȞZ\xc5\xea\xabz\xd1+%\xe17\xdc\xc7M\xb6\x1f\xa1\x03:\xcf*,\x1dg\x95\x15'\x8cz;\xc6\x7f9\xddb\xb0\xb2\xef\x19\xfc\xe7u\x8a\xc2\xe1\x00@ \x83\xa8\xe6\n\xb70\x9d\xc6+\x9d\xa6\x9d\xe4F*\xa9N\xe5\xab\xd1kZK\xd8\x06\x8c\x99\x01\xf1\x86G\xeb\xe0U\x1a\x91a\v\xaf\xc1\x97x\xa3\x91\xd9R\xdc\x03i&\xcc\xf8-\x90\x9f\xf0d>Ӣyޅ8<3]\xa5]\x9dN<\x99,\xc7V\xdd\xd5l\x8e\xb9\x8d\xce[t\x9aO\xcbY\xa7\x97&\xbfӼtO\xb0\xaa\xc4\xe9jkK\x9eHk\x1aѾ\xe78赣\xd2NA_\x13C\x15D3\xc13t\xa2\x9e'\xc3+xX\xf6\x96\xb8*\xd3\rX%\ue5a6\x1a\x90LV\x19\f\xaf$oI1$S\x9fh\xcd\xfe\xc1¥8嚮\xedܪE\xaf2wa\xb5\xb6\xd1j\xa1\xa1\xde2\xb1\x9beK\x87Ǩ\x93Ñ\xd9\xf2\xef\x0f@\n/\x8f.\xfa,\x82\xcd\v\xf7ߡS[\xa2~ 9\xc5\x19\xe5>\x11\xe4\x1c*g]Y\x05\xbe\x92\xaa\xb2\xa0\xe5\r4N\x95\xf9kvZ\x9a\xdfI9\x01ʩJʺ\x8a\xfa\xba\xaaʃ\x9c\xd52\xbaW\xf0\f\xf55\xb9\xf9\x80\xc8\x0f@]\x9b\xc2\xc2-\xbc\xa8\xa9ST\xe3\xe7\xfc\x1a舩g\x87v\xe4\xea\xbdA\x11\x14L\xc1v,w\xfa\xab\v\xab]OO\x04Ƭ@\xd7\xed\xe5\xe3DD^F\x8e\x81\xf3\xe9\x1c\xd7\x1d\x11<\x12\x84\xdc\x1e\xa8\xf3&}\xf0n\xdf0\xa1\xe9O\xf9\xa7|\x1b\xb7\xcc(zS\xfej\x18\x8aZ\xd9~\xf5[\xb8\xb90\xe5\xd6{Ͳ:\xe9\xe2\x8a)\x1d=LZ\x10\x97\x16\xe5\x14\x85\x80\xf8[\xfc\xaa\x1cvA\xbbfF\xe0\xa1\xde$x\xd3\xf0\xf2\xa9\x0e\x04\xfd߃\xe9u\xff\x00\xd6*\xac:\xdd\xce?\x8a\x9c\xa4\xd2L\xd9^\xbdHӃO\x8b&]\xf0n\xdf0\xa1\xe9O\xf9\xa7|\x1b\xb7\xcc(zs\xfej\x18\xb3\xf9\xa8kf=\xee\xb7qu\xd9+\xe5\xb9ڭ\xd5\xf2\xb1\x91\xc9U\x0e\xd8\xf6G\x99cN\x91\x19\r-\xff\x002\x86\xec\x89\xe5\xac^\xaa\xb7\xad\x12\x93a/\xdd\xcb\x17\xd1\a]\xca3\xb2'\x96\xb1z\xaa\u07b4J\xd9xON\xe1\xb7m\x97\xd1\x7fD\b\xeb<\xa8\x87Y\xe5EI\xe3\x1e\x8e\xf1\x9f\xcewX\xac,\xbb\xc6\x7f9\xddb\xb0\xb8@.\xce\x1a\xb4|3u\x82\a\xb7:Jm\x1a\xaa\xee\x03\x1b]\xe0Dy\xe7{\x90\x15\xc5$4\x17\x1d\xe0\x01%[\x98J\xcem\x16\xa8\xf6\xe6h\xd6֑UW\x9e\xb6\x122dG\x987\x8f\xa4\x9e\x15(,\xb3U\xad\x1d\xadN<\x91ݚXi\xe1\x9ay\x9c\x19\x14\x11>Y\\u5\x8cis\x8a\x84\xe1\x1cA%m\xd6\xf5OPt~\x11\x95\xf7\nV\x9f\x8a\xe65\xb1\xba/cC2敱\x8e\ue6de\x86\x1bdN\xcaZ\xe3\xa76Z\xdbM\x11\a#\xcevC\x90\x15^RUOCUI[\a\x96\xa5\x99\x930j\xd2\xd1\xd6\xc3\xe8p\xcc\x1eUd\xa5\x86n\xb9\xb9\xd1V)r\\˖\xf1m\x8a\xedn\xab\xa1~A\xd27J\x17\x91\xe4\xe7g\x84\xc7\xea\xe1\xd7\xe8'\x85R\xd2\xc5,\x12\xcb\f\xcc,\x96\x19\x1f\x14\xacv\xb6\xbd\x84\xb5\xc0\xabΖ\xa6\n\xcajj\xa8\x1d\xa5\rLQ\xcd\x11\xe1c\xda\x1c3\xff\x00꯱ݧh\xa9\x86\xed\vr\x8a\xac\x88j\xb2\x1bͨh\xf0^y\xc0e\xca\xdf\xfb\x92k+\"\xfa\x96\xa8\xed\x17\x97\xf0B\x91\x11Rx\xe1Ip\xa4xe\xef\xba\x1b\xee\xe1\xd1\r\xa5ܛ\xb4\x81\xbf\x9c\xbbf\x86\x7fÚ\x8d\"\xeax'Nz$\xa5\x8c\x96nӱw\x05\x8b\xa4\xcf\xcd6\x9d\x8b\xb8,]&~j\xb2E-~\x86\xbd\xf3\xf4\"촋(\xa3kl\xfb\x9bq\t%\r܄m[f\x97\x87\x96^|\xf5\xae\x01\x87b\xfc\xcebŞg?\t\x9a\xfe\xb5\xed\x80\xff\x00\xe4\x11\xfd6\xbb\xfa\x8a\xad:\xdd\xce?\x8a\x93\x96\x12\xe0j\xadq\xa6\x10\x96\x95ij6\x9d\x8b\xb8,]&~i\xb4\xec_\xc1b\xe93\xf3U\x92\xcf棯\xd0˾~\x84^6\xe1m\x14T\x82۴\xee\x11\x1f\xec۟-\xabC3\xe2z5\xa8>ȞZ\xc7\xea\xabz\xd1)6\x12\xfdܱ}\x10uܣ;\"yk\x17\xaa\xad\xebD\xac\x97\x84\xddr\xf5[g\xfd\x103\xac\xf2\xa2\xc1\xd6yQRxǣ\xbcg\xf3\x9d\xd6+\v.\xf1\x9f\xcewX\xac.\x10>\x98\xf7\xc6\xf8\xe4a\xc9\xf1\xbd\xb20\xe4\x0e\x8b\xd8C\x9ar;\xdb\xc5vً\xb1c5\\\x9e}d\x14\xaf\xfcc\\$D\xda%\x19\xca\x1e\x17\x83j\xbe\xe1]s\xa8uUl\xbbl匏KE\xad\x01\xac\xd4\x1a\u058c\x87\x9f\xeb\xf4\xadTD8\xdbo,\x93Yq}m\x9e\x89\x94;\x96:\x98c\x92G\xc4_+\xe3s\x1a\xf3\xa4X2i\x19g\x99\x1c\xabz\xbf\x1bR\xdc誨j\xec\xef\x11\xd4FX]\x1dXqcDŽ״:!\xbe\b\x04o\xf9\x94-\x14\xb52\xf5sUGNx\r\xf4DQ3\x85ײX+oϭe5E<;\x91\xb09\xe6v\xc8\xed-\xb8\xbc\r\x1d\x0e\r\x13\x9f*\xe4-\xba;\x95\xce߷n\x1a\xb9\xa9\xf6\xed\r\xb7i i\xe8g\xa3\x9e`\xea\xcc\xfdh\xb1\xe6N\x9b\x8a\x92\xd7ȓw\xbe\xbdq\x85\xbf\xec\xea\x13\xbd\xf5\xeb\x8c-\xff\x00gP\xb8\x9d\xd2b~6\xac\xe93\xb2\x9d\xd2b~6\xac\xe93\xb2\xa7\x98\x9au\xdbv\xbf\x9e囆\xedU\x16[c(\xaa%\x8aY\x05ED\xdap\x87\x86e+\xf4\x80\xf0\xf7\xd44\xec}z$\x9f\x84-\xfb\xe4\x9f'Q¥x>\xae\xb2\xba\xc9OQW<\x93\xce\xea\x8aƺI\b.-d\xcekF\xf0\xf3*\xe8\xe2LO\x9b\xbfͫ5\x9f\x8c\xce\x1ej\x93\xc6\x16Mu\xe5ES\x86\xa4\xf1\xe4v\xbb\xdf^\xb8\xc2\xdf\xf6u\t\xde\xfa\xf5\xc6\x16\xfd\x7f'P\xb8\x9d\xd2b~6\xac\xe93\xb2\xb3\xdd&'\xe3jΓ;*9\x89\x93]\xb7k\xf9\xeeZ\x96J\x19m\x96\xabu\x04\xb22I)aڞ\xf8Ã\x1ct\x89͡\xdb\xfeu\x0e\xd9\x13\xcbX\xbdUoZ%+\xc3U\x155v+=EL\xaf\x96yi\x83\xa4\x92M\xf7=\xdaN\x19\x92\x14SdO-b\xf5U\xbdh\x95\x92\xf0\x9e\x85\xce7n\x1c\xb8\x10#\xac\xf2\xa2\x1dg\x95\x15'\x8cz;\xc6\x7f9\xddb\xb0\xbe\x9d\xe3?\x9c\xee\xb1_+\x84\x02\" \b\x88\x80\"\"\x00\x88\x88\x02\xfak%\x90\x91\x1cR\xc8[\x91v\xd5\x1c\x92e\x9e\xac\xf4\x01_*u\xb1ז\xc4\x1e\xae\xdd֝v+/\x05\xb4i\xedf\xa1Ԅ\xed\x15\x7f5\xab\xf7i\xfb\t\xb9\xea\xfekW\xee\xd3\xf6\x15\xf1\x9f\xf7\x9a\xc6\x7f\xdej͙\xe8\xfe\x1c\xbb\x88\xde\bd\x8c\xb0R\xb6F=\x8e\xddU\xc7FF9\x8e\xc8\xce\xe2\x0eO\x00\xaa\xb4\xd3\xd5\xe6\xef\xd9j\xf5\x9f\xfai\xf8y\x8a\xf6\xcd?\xbdjN\x19I\x1a*Z*\x91\x8csȢ6\x8a\xbf\x9a\xd5\xfb\xb4\xfd\x85\x9d\xa2\xaf\xe6\xb5z\xfem?a^\xf9\xff\x00y\xa6\x7f\xdej;3?\xe1˸\xe2aF\xbd\x98z\xc6\u05f5\xcdsi@s^\xd75\xc0\xe9\xbbXp\xcdF6D\xf2\xd6/U[։XY\xaa\xf7d?-c\xf5U\xbdh\x94\xa4\xb1\x12\xfb\xa8\xe9\xb7q\xe9\x82\x04u\x9eTY:\xcf**px\xa7^\xab\x0f\xe2JgHe\xb5Vh\xe98\xe9B\xc1Pܳל\x05\xc7\xee\\\xa7\xe7\x1b\x8b%\x0e\x8d\xe31\xa3+]\x1b\xbe\xa7\x80U\xf8\xbc傞v\x96O\x14R\xb0\xfcYX\u05f7\xeap!Y\xb3=I}=?\f\x8a\x1d\x15\xc3Q\x850\xadI%\xf6\xbav8\xfcjm:s\xff\x00\xa0\xb4.=F\xc7\xd6w\xe6ik+\xa9Ϙ9\xd1N\xc1\xec{C\xbf\x99E\xd3fyXU\\\xb0\xca\xd9\x14ʣc\xeb\xc334\xb5\xf4S\x81\xa8L\xc9i\xdc}\xad\xd3\v\x91Q\x851]0%\xd6\xc9%h\xf8ԲE0<\x8d\x0e\x0f\xfeU\x17\x16\x8c\xf2\xb7\xab\x1eqg\x11\x17\xa4\xf4\xf5T\xa7F\xaa\x9e\xa2\x9c\xf0T\xc3,_\xd4h\v\xcc\x10w\xc1\x04z\b+\x85\rc\x98DD\x01m\xd1W\xddhLۂ\xa2\xaa\x13(fݹ\x83\x89pnz:z \xea\xcc\xe5ʵ\x14\xefc\xaf-\x88=]\xbb\xf1\x9dv+,\xba\x84\x1c\xea(\xa7\x827\xf0\xfe+\xe3\v\xa7FN\xc2|?\x8b8\xc2\xe9ѓ\xb0\xaeTV\xe8}OSs\x9f\xdc\x7f=\xcag\xe1\xfcY\xc6\x17N\x8c\x9d\x85\x9f\x87\xf1g\x18]:2v\x15ʉ\xa1\xf5\x1b\x9c\xfe\xe3\xf9\xeeS_\x0f\xe2\xbe0\xbatd\xec'\xc3\xf8\xaf\x8c.\x9d\x19;\n\xe5D\xd0\xfa\x8d\xce\x7fq\xfc\xf7)\xaf\x87\xf1_\x18]:2v\x17\x93\x9d\x89/\x93A\v\x9bp\xae\x9d\x9aM\x84H\xc7\xe8\xc6\x1eFe\xcfsCZ7\x86d\x9f2\xba\x914?6sqo\x84\xa6\xda \xb0\xec}I\xb4\xc1\xba+\xa4\xdb\xf6\xa8\xf6\xfd\xa9\x80Ƕ\xe8\x8d-\x02w\xf2\xcf<\xb7\x91N\x91OJ4\ued3a\x04D]4\x84D@\x11\x11\x01\x82\xd0\xe0C\x80 \xeb\x04f\x0f\xb0\xaeeN\x1fÕ\x99\x9a\x8b]\x13\x9cu\xbd\xb0\xb69:q\xe4\xef\xbdu\x11\b\xb8\xa9sDN\xa3\x01a\xc9s0:\xb6\x98\x9d[L\xe6F\x8f\xe1\xa8\x0f\xfcW\"\xa3cʡ\xbfIu\x89\xfc\r\xaa\xa7s\x0f\xb5\xf18\x8f\xe4V\x1a(\xb8\xa6g\x95\xa5\x19~R\xa5\xa8\xc1x\xaa\f\xcbi`\xa8h\xf3\xd2\xd40\x9e\x8c\xda\x05Hp%\rʆ{譣\xa9\xa6/\x8e\x803tF\xe6\a\xe8\xba|\xf4\x1d✳\x19\xe4|\xear\x8b\x8a\t<\x90\xa7g\nsS\x8b\xe4\x11\x11L\xda\x11\x11\x00DD\x01\x11\x10\x04D@\x11\x11\x00DD\x01\x11\x10\x04D@\x11\x11\x00DD\x01\x11\x10\x04D@\x11\x11\x00DD\x01\x11\x10\x1f\xff\xd9"), +} diff --git a/cmd/v2/theme/icon/excel.jpg b/cmd/v2/theme/icon/excel.jpg new file mode 100644 index 000000000..f5f167d3f Binary files /dev/null and b/cmd/v2/theme/icon/excel.jpg differ diff --git a/cmd/v2/theme/icon/mongodb.jpg b/cmd/v2/theme/icon/mongodb.jpg new file mode 100644 index 000000000..b6f97a47c Binary files /dev/null and b/cmd/v2/theme/icon/mongodb.jpg differ diff --git a/cmd/v2/ui/app_container.go b/cmd/v2/ui/app_container.go index c3657aa95..0da9770c3 100644 --- a/cmd/v2/ui/app_container.go +++ b/cmd/v2/ui/app_container.go @@ -60,6 +60,23 @@ func (at *appContainer) openApp(app appInterface) error { return nil } +func (at *appContainer) openWelcome() (string, error) { + var firstTab *container.TabItem + app := &appWelcome{} + if err := at.initApp(app); err != nil { + return app.GetAppName(), err + } + tab := app.GetTabItem() + at.Append(tab) + if firstTab == nil { + firstTab = tab + } + if firstTab != nil { + at.Select(firstTab) + } + return "", nil +} + // open default app func (at *appContainer) openDefaultApp(appName string) (string, error) { var firstTab *container.TabItem diff --git a/cmd/v2/ui/app_interface.go b/cmd/v2/ui/app_interface.go index e0e3769a1..e5b612bf8 100644 --- a/cmd/v2/ui/app_interface.go +++ b/cmd/v2/ui/app_interface.go @@ -27,21 +27,14 @@ var ( } toolRegister = []appInterface{ - &appWelcome{}, + // &appWelcome{}, &appGen{}, &appPbGen{}, &appLock{}, &appTerm{}, &appPing{}, &appMgo{}, - } - - perfRegister = []appInterface{ - &perfWelcome{}, - &perfConf{}, - &perfPb{}, - &perfResult{}, - &perfChoose{}, + &appConfigValid{}, } ) diff --git a/cmd/v2/ui/app_test.go b/cmd/v2/ui/app_test.go deleted file mode 100644 index 447c3bff0..000000000 --- a/cmd/v2/ui/app_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package ui - -import ( - "fmt" - cfg "go_dreamfactory/cmd/v2/configure/structs" - "go_dreamfactory/cmd/v2/lib/common" - "testing" -) - -func TestGjson(t *testing.T) { - if tables, err := cfg.NewTables(common.Loader); err != nil { - println(err.Error()) - } else { - for _, v := range tables.TestFlow.GetDataList() { - fmt.Println(v.Msg) - } - } -} diff --git a/cmd/v2/ui/perf_choose.go b/cmd/v2/ui/perf_choose.go deleted file mode 100644 index 2d4825ee9..000000000 --- a/cmd/v2/ui/perf_choose.go +++ /dev/null @@ -1,224 +0,0 @@ -package ui - -import ( - "go_dreamfactory/cmd/v2/lib" - "go_dreamfactory/cmd/v2/lib/common" - "go_dreamfactory/cmd/v2/lib/storage" - "go_dreamfactory/cmd/v2/service" - "go_dreamfactory/cmd/v2/service/observer" - "go_dreamfactory/comm" - "go_dreamfactory/pb" - "time" - - "fyne.io/fyne/v2" - "fyne.io/fyne/v2/container" - "fyne.io/fyne/v2/layout" - "fyne.io/fyne/v2/theme" - "fyne.io/fyne/v2/widget" - "github.com/Pallinder/go-randomdata" - "github.com/sirupsen/logrus" - "google.golang.org/protobuf/proto" -) - -type perfChoose struct { - appAdapter - - obs observer.Observer - conf *storage.Config - binduids []string //账号 - handler lib.Handler -} - -func (app *perfChoose) LazyInit(ptService service.PttService, obs observer.Observer) error { - app.obs = obs - app.conf = perfWin.UIImpl.config - - app.tabItem = container.NewTabItemWithIcon(common.TOOLBAR_PERF_CHOOSE, theme.ContentCopyIcon(), nil) - content := container.NewMax() - content.Objects = []fyne.CanvasObject{} - - loginTestBtn := widget.NewButton("登陆(注册)", nil) - loginTestBtn.OnTapped = func() { - closeApp3(perfWin.tabs, common.TOOLBAR_PERF_CHOOSE) - openApp3(perfWin.tabs, common.TOOLBAR_PERF_RES) - var err error - - app.handler, err = service.NewWsCli(app.conf.WsAddr, 2*time.Second) - if err != nil { - panic(err) - } - - userCount := app.conf.UserCount - for i := int32(0); i < userCount; i++ { - account := randomdata.SillyName() - app.binduids = append(app.binduids, account) - // 登录 - rqLogin := ReqParams{ - Sid: app.conf.SId, - Account: account, - PbReq: &pb.UserLoginReq{Sid: app.conf.SId, Account: account}, - MainType: "user", - SubType: "login", - } - b, err := app.buildReq(rqLogin) - if err != nil { - logrus.Error(err) - return - } - app.handler.SetReq(b, false) - - } - - param := lib.ParamMgr{ - Caller: app.handler, - Timeout: time.Duration(app.conf.Pressure.TimeoutMs) * time.Millisecond, - Lps: uint32(app.conf.Pressure.Concurrency), - Duration: time.Duration(app.conf.Pressure.DurationS) * time.Second, - ResultCh: make(chan *lib.CallResult, 50), - } - a, err := lib.NewAssistant(obs, param) - if err != nil { - logrus.Error(err) - } - - a.Start() - - a.ShowResult() - } - - createTestBtn := widget.NewButton("创角", func() { - closeApp3(perfWin.tabs, common.TOOLBAR_PERF_CHOOSE) - openApp3(perfWin.tabs, common.TOOLBAR_PERF_RES) - - for _, account := range app.binduids { - rq := ReqParams{ - Sid: app.conf.SId, - Account: account, - PbReq: &pb.UserCreateReq{NickName: account}, - MainType: "user", - SubType: "create", - } - b, err := app.buildReq(rq) - if err != nil { - logrus.Error(err) - return - } - app.handler.SetReq(b, false) - } - - param := lib.ParamMgr{ - Caller: app.handler, - Timeout: time.Duration(app.conf.Pressure.TimeoutMs) * time.Millisecond, - Lps: uint32(app.conf.Pressure.Concurrency), - Duration: time.Duration(app.conf.Pressure.DurationS) * time.Second, - ResultCh: make(chan *lib.CallResult, 50), - } - a, err := lib.NewAssistant(obs, param) - if err != nil { - logrus.Error(err) - } - - a.Start() - - a.ShowResult() - }) - - //场景 - scenBtn := widget.NewButton("其它场景", nil) - scenBtn.OnTapped = func() { - // defer openApp3(perfWin.tabs, common.TOOLBAR_PERF_PB) - // closeApp3(perfWin.tabs, common.TOOLBAR_PERF_CHOOSE) - closeApp3(perfWin.tabs, common.TOOLBAR_PERF_CHOOSE) - openApp3(perfWin.tabs, common.TOOLBAR_PERF_RES) - - // if tables, err := cfg.NewTables(common.Loader); err != nil { - // println(err.Error()) - // } else { - // for _, v := range tables.TestFlow.GetDataList() { - // p, ok := pbMap[v.Route] - // if !ok { - // logrus.WithField("route", v.Route).Debug("未注册") - // continue - // } - // routeStr := strings.SplitN(v.Route, ".", 2) - // for _, account := range app.binduids { - // rq := ReqParams{ - // Sid: app.conf.SId, - // Account: account, - // PbReq: p, - // MainType: routeStr[0], - // SubType: routeStr[1], - // } - // b, err := app.buildReq(rq) - // if err != nil { - // logrus.Error(err) - // return - // } - // app.handler.SetReq(b, true) - // } - - // param := lib.ParamMgr{ - // Caller: app.handler, - // Timeout: time.Duration(app.conf.Pressure.TimeoutMs) * time.Millisecond, - // Lps: uint32(app.conf.Pressure.Concurrency), - // Duration: time.Duration(app.conf.Pressure.DurationS) * time.Second, - // ResultCh: make(chan *lib.CallResult, 50), - // } - // a, err := lib.NewAssistant(obs, param) - // if err != nil { - // logrus.Error(err) - // } - - // a.Start() - - // a.ShowResult() - // } - // } - } - - //上一步 - preBtn := widget.NewButtonWithIcon("上一步", theme.NavigateBackIcon(), nil) - preBtn.OnTapped = func() { - defer openApp3(perfWin.tabs, common.TOOLBAR_PERF_CONF) - closeApp3(perfWin.tabs, common.TOOLBAR_PERF_CHOOSE) - } - btns := container.NewVBox(loginTestBtn, createTestBtn, scenBtn) - c := container.NewBorder(nil, container.NewHBox(layout.NewSpacer(), preBtn), nil, nil, btns) - content.Objects = append(content.Objects, c) - app.tabItem.Content = content - return nil -} - -func (a *perfChoose) GetAppName() string { - return common.TOOLBAR_PERF_CHOOSE -} - -func (a *perfChoose) OnClose() bool { - return false -} - -func (a *perfChoose) OnDestroy() bool { - return true -} - -type ReqParams struct { - Sid string - Account string - PbReq proto.Message - MainType string - SubType string -} - -func (a *perfChoose) buildReq(rp ReqParams) ([]byte, error) { - head := &pb.UserMessage{MainType: rp.MainType, SubType: rp.SubType} - head.Sec = common.BuildSecStr(rp.Sid, rp.Account) - if comm.ProtoMarshal(rp.PbReq, head) { - data, err := proto.Marshal(head) - if err != nil { - return nil, err - } - - return data, nil - } - return nil, nil -} diff --git a/cmd/v2/ui/perf_conf.go b/cmd/v2/ui/perf_conf.go deleted file mode 100644 index e4153f22e..000000000 --- a/cmd/v2/ui/perf_conf.go +++ /dev/null @@ -1,154 +0,0 @@ -package ui - -import ( - "go_dreamfactory/cmd/v2/lib/common" - "go_dreamfactory/cmd/v2/lib/storage" - "go_dreamfactory/cmd/v2/service" - "go_dreamfactory/cmd/v2/service/observer" - - "fyne.io/fyne/v2" - "fyne.io/fyne/v2/container" - "fyne.io/fyne/v2/layout" - "fyne.io/fyne/v2/theme" - "fyne.io/fyne/v2/widget" - "github.com/sirupsen/logrus" - "github.com/spf13/cast" -) - -type perfConf struct { - appAdapter - - obs observer.Observer - conf *storage.Config -} - -func (app *perfConf) LazyInit(ptService service.PttService, obs observer.Observer) error { - app.obs = obs - app.conf = perfWin.UIImpl.config - - app.tabItem = container.NewTabItemWithIcon(common.TOOLBAR_PERF_CONF, theme.ContentCopyIcon(), nil) - content := container.NewMax() - content.Objects = []fyne.CanvasObject{} - - // 压测form - wsAddrEntry := widget.NewEntry() - wsAddrEntry.PlaceHolder = "服务地址" - wsAddrEntry.Text = app.conf.WsAddr - - timeoutEntry := widget.NewEntry() - timeoutEntry.PlaceHolder = "毫秒数" - timeoutEntry.Text = cast.ToString(app.conf.Pressure.TimeoutMs) - - lpsEntry := widget.NewEntry() - lpsEntry.PlaceHolder = "并发数量" - lpsEntry.Text = cast.ToString(app.conf.Pressure.Concurrency) - - durationEntry := widget.NewEntry() - durationEntry.PlaceHolder = "秒数" - durationEntry.Text = cast.ToString(app.conf.Pressure.DurationS) - - userCountEntry := widget.NewEntry() - userCountEntry.PlaceHolder = "自动创建的用户数" - userCountEntry.Text = cast.ToString(app.conf.UserCount) - - sidEntry := widget.NewEntry() - sidEntry.PlaceHolder = "区服ID" - sidEntry.Text = app.conf.SId - - intervalEntry := widget.NewEntry() - intervalEntry.PlaceHolder = "间隔时间(s)" - intervalEntry.Text = cast.ToString(app.conf.IntervalS) - - form := widget.NewForm( - widget.NewFormItem("服务地址", wsAddrEntry), - widget.NewFormItem("区服", sidEntry), - widget.NewFormItem("用户数", userCountEntry), - widget.NewFormItem("超时(ms)", timeoutEntry), - widget.NewFormItem("并发量", lpsEntry), - widget.NewFormItem("持续时间(s)", durationEntry), - widget.NewFormItem("间隔时间(s)", intervalEntry), - ) - // btn - nextBtn := widget.NewButtonWithIcon("下一步", theme.NavigateNextIcon(), nil) - nextBtn.OnTapped = func() { - //校验表单数据 - if wsAddrEntry.Text == "" { - common.ShowTip("服务地址必填") - return - } - - if sidEntry.Text == "" { - common.ShowTip("区服ID必填") - return - } - - if timeoutEntry.Text == "" { - common.ShowTip("超时时间必填") - return - } - if lpsEntry.Text == "" { - common.ShowTip("并发数必填") - return - } - - if durationEntry.Text == "" { - common.ShowTip("持续时间") - return - } - - if userCountEntry.Text == "" { - common.ShowTip("用户数至少是1") - return - } - - pressure := app.conf.Pressure - pressure.TimeoutMs = cast.ToInt32(timeoutEntry.Text) - pressure.Concurrency = cast.ToInt32(lpsEntry.Text) - pressure.DurationS = cast.ToInt32(durationEntry.Text) - app.conf.Pressure = pressure - app.conf.UserCount = cast.ToInt32(userCountEntry.Text) - app.conf.WsAddr = wsAddrEntry.Text - app.conf.SId = sidEntry.Text - if err := perfWin.UIImpl.storage.StoreConfig(app.conf); err != nil { - logrus.Error(err) - } - - //next - defer closeApp3(perfWin.tabs, common.TOOLBAR_PERF_CONF) - openApp3(perfWin.tabs, common.TOOLBAR_PERF_CHOOSE) - } - - resetBtn := widget.NewButtonWithIcon("重置", theme.ContentRedoIcon(), nil) - resetBtn.OnTapped = func() { - timeoutEntry.Text = "" - lpsEntry.Text = "" - durationEntry.Text = "" - userCountEntry.Text = "" - wsAddrEntry.Text = "" - sidEntry.Text = "" - form.Refresh() - } - - preBtn := widget.NewButtonWithIcon("上一步", theme.NavigateBackIcon(), nil) - preBtn.OnTapped = func() { - defer closeApp3(perfWin.tabs, common.TOOLBAR_PERF_CONF) - openApp3(perfWin.tabs, common.TOOLBAR_PERF_TIP) - } - - c := container.NewBorder(nil, container.NewHBox(layout.NewSpacer(), preBtn, resetBtn, nextBtn), nil, nil, form) - content.Objects = append(content.Objects, c) - app.tabItem.Content = content - return nil -} - -func (a *perfConf) GetAppName() string { - return common.TOOLBAR_PERF_CONF -} - -func (a *perfConf) OnClose() bool { - return false -} - -func (a *perfConf) OnDestroy() bool { - return true -} diff --git a/cmd/v2/ui/perf_create.go b/cmd/v2/ui/perf_create.go deleted file mode 100644 index bc2450c52..000000000 --- a/cmd/v2/ui/perf_create.go +++ /dev/null @@ -1,38 +0,0 @@ -package ui - -import ( - "go_dreamfactory/cmd/v2/lib/common" - "go_dreamfactory/cmd/v2/lib/storage" - "go_dreamfactory/cmd/v2/service" - "go_dreamfactory/cmd/v2/service/observer" - - "fyne.io/fyne/v2" - "fyne.io/fyne/v2/container" - "fyne.io/fyne/v2/theme" -) - -type perfCreate struct { - appAdapter - - obs observer.Observer - conf *storage.Config -} - -func (app *perfCreate) LazyInit(ptService service.PttService, obs observer.Observer) error { - app.obs = obs - app.conf = perfWin.UIImpl.config - - app.tabItem = container.NewTabItemWithIcon(common.TOOLBAR_PERF_CONF, theme.ContentCopyIcon(), nil) - content := container.NewMax() - content.Objects = []fyne.CanvasObject{} - - return nil -} - -func (a *perfCreate) GetAppName() string { - return common.TOOLBAR_PERF_CREATE -} - -func (a *perfCreate) OnClose() bool { - return false -} diff --git a/cmd/v2/ui/perf_login.go b/cmd/v2/ui/perf_login.go deleted file mode 100644 index 0a6715907..000000000 --- a/cmd/v2/ui/perf_login.go +++ /dev/null @@ -1,49 +0,0 @@ -package ui - -import ( - "go_dreamfactory/cmd/v2/lib/common" - "go_dreamfactory/cmd/v2/lib/storage" - "go_dreamfactory/cmd/v2/service" - "go_dreamfactory/cmd/v2/service/observer" - - "fyne.io/fyne/v2" - "fyne.io/fyne/v2/container" - "fyne.io/fyne/v2/theme" - "fyne.io/fyne/v2/widget" -) - -type perfLogin struct { - appAdapter - - obs observer.Observer - conf *storage.Config -} - -func (app *perfLogin) LazyInit(ptService service.PttService, obs observer.Observer) error { - app.obs = obs - app.conf = perfWin.UIImpl.config - - app.tabItem = container.NewTabItemWithIcon(common.TOOLBAR_PERF_CONF, theme.ContentCopyIcon(), nil) - content := container.NewMax() - content.Objects = []fyne.CanvasObject{} - - loginTestBtn := widget.NewButton("登陆/注册", func() { - - }) - - createTestBtn := widget.NewButton("创角", func() {}) - - btns := container.NewHBox(loginTestBtn, createTestBtn) - c := container.NewBorder(btns, nil, nil, nil) - content.Objects = append(content.Objects, c) - app.tabItem.Content = content - return nil -} - -func (a *perfLogin) GetAppName() string { - return common.TOOLBAR_PERF_LOGIN -} - -func (a *perfLogin) OnClose() bool { - return false -} diff --git a/cmd/v2/ui/perf_pb.go b/cmd/v2/ui/perf_pb.go deleted file mode 100644 index 49ea09ff2..000000000 --- a/cmd/v2/ui/perf_pb.go +++ /dev/null @@ -1,215 +0,0 @@ -package ui - -import ( - "go_dreamfactory/cmd/v2/lib" - "go_dreamfactory/cmd/v2/lib/common" - "go_dreamfactory/cmd/v2/lib/storage" - "go_dreamfactory/cmd/v2/service" - "go_dreamfactory/cmd/v2/service/observer" - "go_dreamfactory/comm" - "go_dreamfactory/pb" - cfg "go_dreamfactory/sys/configure/structs" - "strings" - "time" - - "fyne.io/fyne/v2" - "fyne.io/fyne/v2/container" - "fyne.io/fyne/v2/layout" - "fyne.io/fyne/v2/theme" - "fyne.io/fyne/v2/widget" - "github.com/Pallinder/go-randomdata" - "github.com/sirupsen/logrus" - "google.golang.org/protobuf/proto" -) - -type perfPb struct { - appAdapter - - obs observer.Observer - - itemList common.ItemList - - pbList func() //协议列表 - conf *storage.Config -} - -func (app *perfPb) LazyInit(ptService service.PttService, obs observer.Observer) error { - app.obs = obs - app.conf = perfWin.UIImpl.config - - app.tabItem = container.NewTabItemWithIcon(common.TOOLBAR_PERF_PB, theme.ContentCopyIcon(), nil) - content := container.NewMax() - content.Objects = []fyne.CanvasObject{} - - app.itemList = *common.NewItemList() - app.itemList.ItemList = app.itemList.CreateList() - - app.pbList = func() { - // if tables, err := cfg.NewTables(common.Loader); err != nil { - // println(err.Error()) - // } else { - // for _, v := range tables.TestFlow.GetDataList() { - // item := common.Item{ - // Id: cast.ToString(v.Id), - // Text: fmt.Sprintf("%-6d %-20s %-20s %s", v.Id, v.Msg, v.Route, v.Params), - // Data: v, - // } - // app.itemList.AddItem(item) - // } - // } - } - defer app.pbList() - - // 刷新按钮 - refeshBtn := widget.NewButtonWithIcon("", theme.ViewRefreshIcon(), func() { - app.itemList.Reset() - app.pbList() - }) - - // next按钮 - nextBtn := widget.NewButtonWithIcon("下一步", theme.NavigateNextIcon(), nil) - nextBtn.OnTapped = func() { - defer closeApp3(perfWin.tabs, common.TOOLBAR_PERF_PB) - openApp3(perfWin.tabs, common.TOOLBAR_PERF_RES) - // 根据填写的用户数创建用户 - userCount := perfWin.config.UserCount - - // 遍历时,通过sleep 控制增加的用户数 - for i := int32(0); i < userCount; i++ { - handler, err := service.NewWsCli(perfWin.config.WsAddr, time.Duration(perfWin.config.Pressure.TimeoutMs)*time.Millisecond) - if err != nil { - continue - } - var login *UserLogin - login, err = app.loginReq(perfWin.config.SId) - handler.SetReq(login.req, false) - assist := app.createAssistantWithoutConf(handler) - assist.Start() - assist.ShowResult() - - // 遍历测试的协议 - for _, item := range app.itemList.CachedList.Items { - if data, ok := item.Data.(*cfg.GameTestFlowData); ok { - logrus.Debugf("%v %v", data.Route, data.Params) - var ( - reqData []byte - err error - ) - - if login == nil { - continue - } - if v, ok := pbMap[data.Route]; ok { - routeStr := strings.SplitN(data.Route, ".", 2) - head := &pb.UserMessage{MainType: routeStr[0], SubType: routeStr[1]} - head.Sec = common.BuildSecStr(login.sid, login.account) - if err := common.Json2Pb(data.Params, v); err != nil { - logrus.Error(err) - continue - } - if comm.ProtoMarshal(v, head) { - reqData, err = proto.Marshal(head) - if err != nil { - logrus.Error(err) - continue - } - } - } - - handler.SetReq(reqData, false) - assist := app.createAssistant(handler) - assist.Start() - assist.ShowResult() - - } - } - - // time.Sleep(time.Second) - } - - obs.Notify(observer.EVENT_FINISH, true) - } - - preBtn := widget.NewButtonWithIcon("上一步", theme.NavigateBackIcon(), nil) - preBtn.OnTapped = func() { - defer closeApp3(perfWin.tabs, common.TOOLBAR_PERF_PB) - openApp3(perfWin.tabs, common.TOOLBAR_PERF_CONF) - } - - //layout - c := container.NewBorder(container.NewHBox(refeshBtn), container.NewHBox(layout.NewSpacer(), preBtn, nextBtn), nil, nil, app.itemList.ItemList) - content.Objects = append(content.Objects, c) - app.tabItem.Content = content - return nil -} - -func (a *perfPb) GetAppName() string { - return common.TOOLBAR_PERF_PB -} - -func (a *perfPb) OnClose() bool { - return false -} - -func (a *perfPb) createAssistantWithoutConf(handler lib.Handler) lib.Aiassistant { - - param := lib.ParamMgr{ - Caller: handler, - Timeout: time.Duration(a.conf.Pressure.TimeoutMs) * time.Millisecond, - Lps: 1, - Duration: 1, - ResultCh: make(chan *lib.CallResult, 50), - } - assist, err := lib.NewAssistant(a.obs, param) - if err != nil { - logrus.Errorf("AI助手初始化错误: %v", err) - return nil - } - return assist -} - -// -func (a *perfPb) createAssistant(handler lib.Handler) lib.Aiassistant { - - param := lib.ParamMgr{ - Caller: handler, - Timeout: time.Duration(a.conf.Pressure.TimeoutMs) * time.Millisecond, - Lps: uint32(a.conf.Pressure.Concurrency), - Duration: time.Duration(a.conf.Pressure.DurationS) * time.Second, - ResultCh: make(chan *lib.CallResult, 50), - } - assist, err := lib.NewAssistant(a.obs, param) - if err != nil { - logrus.Errorf("AI助手初始化错误: %v", err) - return nil - } - return assist -} - -type UserLogin struct { - req []byte - sid string - account string -} - -func (a *perfPb) loginReq(sid string) (*UserLogin, error) { - login := &UserLogin{sid: sid} - head := &pb.UserMessage{MainType: "user", SubType: "login"} - account := randomdata.SillyName() - login.account = account - head.Sec = common.BuildSecStr(login.sid, login.account) - if comm.ProtoMarshal(&pb.UserLoginReq{ - Sid: login.sid, - Account: login.account, - }, head) { - logrus.WithField("账号", login.account).Info("登录") - data, err := proto.Marshal(head) - if err != nil { - return nil, err - } - login.req = data - - return login, nil - } - return nil, nil -} diff --git a/cmd/v2/ui/perf_result.go b/cmd/v2/ui/perf_result.go deleted file mode 100644 index 470d33020..000000000 --- a/cmd/v2/ui/perf_result.go +++ /dev/null @@ -1,121 +0,0 @@ -package ui - -import ( - "fmt" - "go_dreamfactory/cmd/v2/lib" - "go_dreamfactory/cmd/v2/lib/common" - "go_dreamfactory/cmd/v2/lib/storage" - "go_dreamfactory/cmd/v2/service" - "go_dreamfactory/cmd/v2/service/observer" - - "fyne.io/fyne/v2" - "fyne.io/fyne/v2/container" - "fyne.io/fyne/v2/layout" - "fyne.io/fyne/v2/theme" - "fyne.io/fyne/v2/widget" -) - -type perfResult struct { - appAdapter - - obs observer.Observer - conf *storage.Config - - itemList common.ItemList - - resultList func() //结果列表 - resetBtn *widget.Button - returnBtn *widget.Button - report *widget.Card - layout *fyne.Container -} - -func (app *perfResult) LazyInit(ptService service.PttService, obs observer.Observer) error { - app.obs = obs - app.conf = perfWin.UIImpl.config - - app.tabItem = container.NewTabItemWithIcon(common.TOOLBAR_PERF_RES, theme.ContentCopyIcon(), nil) - content := container.NewMax() - content.Objects = []fyne.CanvasObject{} - - app.itemList = *common.NewItemList() - app.itemList.ItemList = app.itemList.CreateList() - - //重新开始 - app.resetBtn = widget.NewButtonWithIcon("再来一次", theme.ContentRedoIcon(), nil) - app.resetBtn.Hide() - app.resetBtn.OnTapped = func() { - defer openApp3(perfWin.tabs, common.TOOLBAR_PERF_TIP) - app.itemList.Reset() - closeApp3(perfWin.tabs, common.TOOLBAR_PERF_RES) - } - - // 返回 - app.returnBtn = widget.NewButtonWithIcon("", theme.NavigateBackIcon(), nil) - app.returnBtn.Disable() - app.returnBtn.OnTapped = func() { - defer openApp3(perfWin.tabs, common.TOOLBAR_PERF_CHOOSE) - app.itemList.Reset() - closeApp3(perfWin.tabs, common.TOOLBAR_PERF_RES) - } - app.returnBtn.Text = "等待中..." - - //统计Panel - app.report = widget.NewCard("测试报告", "登录/创角", container.NewVBox( - // widget.NewLabel("结果:"), - )) - app.report.Hide() - - //layout - app.layout = container.NewBorder(app.report, container.NewHBox(layout.NewSpacer(), app.resetBtn, app.returnBtn), nil, nil, app.itemList.ItemList) - content.Objects = append(content.Objects, app.layout) - app.tabItem.Content = content - app.listen() - return nil -} - -func (app *perfResult) listen() { - app.obs.AddListener(observer.EVENT_RESULT, observer.Listener{ - OnNotify: func(data interface{}, args ...interface{}) { - res, ok := data.(*lib.Statistics) - if !ok { - return - } - - item := common.Item{ - Text: fmt.Sprintf("协议名称:%s, 调用次数:%d, 总耗时:%vms, 平均耗时:%vms, 最大耗时:%vms, 最小耗时:%vms", - res.Route, res.CallCount, res.ElapseTotal, res.AvgElapse, res.MaxElapse, res.MinElapse), - Data: res, - } - app.itemList.AddItem(item) - app.returnBtn.Text = "返回" - app.returnBtn.Enable() - app.returnBtn.Refresh() - app.layout.Refresh() - }, - }) - - app.obs.AddListener(observer.EVENT_FINISH, observer.Listener{ - OnNotify: func(data interface{}, args ...interface{}) { - finish, ok := data.(bool) - if !ok { - return - } - - if finish { - app.resetBtn.Show() - app.resetBtn.Refresh() - app.report.Show() - app.report.Refresh() - } - }, - }) -} - -func (app *perfResult) GetAppName() string { - return common.TOOLBAR_PERF_RES -} - -func (a *perfResult) OnClose() bool { - return false -} diff --git a/cmd/v2/ui/perf_welcome.go b/cmd/v2/ui/perf_welcome.go deleted file mode 100644 index ce6741293..000000000 --- a/cmd/v2/ui/perf_welcome.go +++ /dev/null @@ -1,64 +0,0 @@ -package ui - -import ( - "go_dreamfactory/cmd/v2/lib/common" - "go_dreamfactory/cmd/v2/service" - "go_dreamfactory/cmd/v2/service/observer" - - "fyne.io/fyne/v2" - "fyne.io/fyne/v2/container" - "fyne.io/fyne/v2/theme" - "fyne.io/fyne/v2/widget" -) - -type perfWelcome struct { - appAdapter - - obs observer.Observer -} - -func (app *perfWelcome) LazyInit(service service.PttService, obs observer.Observer) error { - app.obs = obs - - app.tabItem = container.NewTabItemWithIcon(common.TOOLBAR_PERF_TIP, theme.ContentCopyIcon(), nil) - content := container.NewMax() - content.Objects = []fyne.CanvasObject{} - - wel := widget.NewRichTextFromMarkdown("# 自动化性能测试工具使用说明" + - ` - * 基于Luban工具生成协议文件(json格式) - `) - for i := range wel.Segments { - if seg, ok := wel.Segments[i].(*widget.TextSegment); ok { - seg.Style.Alignment = fyne.TextAlignLeading - } - } - - goBtn := widget.NewButton("开始测试 >>", nil) - goBtn.OnTapped = func() { - defer closeApp3(perfWin.tabs, common.TOOLBAR_PERF_TIP) - openApp3(perfWin.tabs, common.TOOLBAR_PERF_CONF) - } - app.tabItem.Content = container.NewCenter( - container.NewVBox( - wel, - goBtn, - )) - return nil -} - -func (a *perfWelcome) OpenDefault() string { - return common.TOOLBAR_PERF_TIP -} - -func (a *perfWelcome) GetAppName() string { - return common.TOOLBAR_PERF_TIP -} - -func (a *perfWelcome) OnClose() bool { - return false -} - -func (a *perfWelcome) OnDestroy() bool { - return true -} diff --git a/cmd/v2/ui/perfwindow.go b/cmd/v2/ui/perfwindow.go deleted file mode 100644 index 22c5b344e..000000000 --- a/cmd/v2/ui/perfwindow.go +++ /dev/null @@ -1,107 +0,0 @@ -package ui - -import ( - "fmt" - "go_dreamfactory/cmd/v2/lib/common" - "go_dreamfactory/pb" - "reflect" - "strings" - - "fyne.io/fyne/v2" - "fyne.io/fyne/v2/container" - "fyne.io/fyne/v2/widget" - "github.com/sirupsen/logrus" - "google.golang.org/protobuf/proto" -) - -var perfWin *PerfWindowImpl - -var pbMap map[string]proto.Message //pb - -type PerfWindow interface { - WindowInterface -} - -type PerfWindowImpl struct { - UIImpl - parent fyne.Window - w fyne.Window - statusbar *statusBar //状态栏 - tabs *appContainer //tabs - toolbar *toolBar //工具条 -} - -func NewPerfWindow(ui *UIImpl, parent fyne.Window) PerfWindow { - - pw := &PerfWindowImpl{ - UIImpl: *ui, - parent: parent, - } - - perfWin = pw - - pbMap = make(map[string]proto.Message) - - pw.initPb() - return pw -} - -func (ui *PerfWindowImpl) CreateWindow(_ string, width, height float32, _ bool) { - title := fmt.Sprintf(common.APP_WIN_TITLE, "自动化性能测试工具", ui.app.Metadata().Version, ui.app.Metadata().Build, common.APP_NAME) - w := ui.app.NewWindow(title) - ui.AddWindow("main", w) - ui.w = w - - w.Resize(fyne.NewSize(width, height)) - w.CenterOnScreen() - w.SetCloseIntercept(func() { - ui.parent.Show() - }) - - ui.statusbar = newStatusBar() - toolbar := widget.NewToolbar( - // widget.NewToolbarAction(theme.MediaVideoIcon(), func() { - // openApp(ui.tabs, common.TOOLBAR_PERF_TIP) - // }), - // widget.NewToolbarAction(theme.MediaVideoIcon(), func() { - // openApp(ui.tabs, common.TOOLBAR_PERF_CONF) - // }), - ) - ui.toolbar = newToolBar(toolbar) - - ui.tabs = newAppContainer(perfRegister, ui.pttService, ui.obs) - content := container.NewBorder(ui.toolbar.toolbar, ui.statusbar.widget, nil, nil, ui.tabs) - ui.w.SetContent(content) - - defer func() { - appName, err := ui.tabs.openDefaultApp(common.TOOLBAR_PERF_TIP) - if err != nil { - logrus.WithField("appName", appName).Error(err) - } - }() - - w.SetCloseIntercept(func() { - ui.parent.Show() - w.Close() - }) - w.Show() -} - -func (ui *PerfWindowImpl) registerPb(route string, pb proto.Message) { - typeOf := reflect.TypeOf(pb) - pbName := typeOf.Elem().Name() - if strings.HasSuffix(pbName, "Req") { - s := strings.SplitN(route, ".", 2) - low := strings.ToLower(pbName) - if strings.Contains(low, s[0]) && - strings.Contains(low, s[1]) { - pbMap[route] = pb - } - } -} - -func (ui *PerfWindowImpl) initPb() { - ui.registerPb("user.login", &pb.UserLoginReq{}) - ui.registerPb("user.create", &pb.UserCreateReq{}) - ui.registerPb("sys.funclist", &pb.SysFuncListReq{}) -} diff --git a/cmd/v2/ui/tool_bar.go b/cmd/v2/ui/tool_bar.go index 1387cfd0f..db3e802aa 100644 --- a/cmd/v2/ui/tool_bar.go +++ b/cmd/v2/ui/tool_bar.go @@ -42,17 +42,6 @@ func openApp2(ac *appContainer, name string) { } } -func openApp3(ac *appContainer, name string) { - for _, app := range perfRegister { - if app.GetAppName() == name { - err := ac.openApp(app) - if err != nil { - logrus.Error(fmt.Errorf("%s %v", app.GetAppName(), err)) - } - } - } -} - func closeApp3(ac *appContainer, name string) { for _, appItem := range ac.Items { if appItem.Text == name { diff --git a/cmd/v2/ui/tool_luban.go b/cmd/v2/ui/tool_luban.go index a4a9ce817..bddf0f1b4 100644 --- a/cmd/v2/ui/tool_luban.go +++ b/cmd/v2/ui/tool_luban.go @@ -431,3 +431,6 @@ func openFile(entry *widget.Entry, w fyne.Window) { func (a *appGen) GetAppName() string { return common.TOOLBAR_GEN } +func(a *appGen) Icon() fyne.Resource{ + return theme.ContentCopyIcon() +} \ No newline at end of file diff --git a/cmd/v2/ui/tool_menu.go b/cmd/v2/ui/tool_menu.go new file mode 100644 index 000000000..5ca299fff --- /dev/null +++ b/cmd/v2/ui/tool_menu.go @@ -0,0 +1,53 @@ +package ui + +import ( + "fyne.io/fyne/v2" + "fyne.io/fyne/v2/theme" + "github.com/sirupsen/logrus" +) + +type toolMenu struct { + *fyne.MainMenu + sysMenu *fyne.Menu + appMenus []*fyne.MenuItem + + //退出 + quite *fyne.MenuItem + + // 工具 + toolMenu *fyne.Menu + //同步配置 + syncConfMenu *fyne.MenuItem +} + +func newToolMenu() *toolMenu { + var mm toolMenu + // system + mm.appMenus = make([]*fyne.MenuItem, len(toolRegister)) + for i, app := range toolRegister { + mm.appMenus[i] = fyne.NewMenuItem(app.GetAppName(), func() { + err := toolWin.at.openApp(app) + if err != nil { + logrus.Errorf("打开 %s, err:%v", app.GetAppName(), err) + } + }) + mm.appMenus[i].Icon = app.Icon() + } + mm.quite = fyne.NewMenuItem("退出", toolWin.quiteHandle) + mm.quite.Icon = theme.LogoutIcon() + mm.quite.IsQuit = true + mm.sysMenu = fyne.NewMenu("应用", mm.appMenus...) + mm.sysMenu.Items = append(mm.sysMenu.Items, fyne.NewMenuItemSeparator(), mm.quite) + + //tool + mm.syncConfMenu = fyne.NewMenuItem("同步云配置", toolWin.syncConfig) + mm.toolMenu = fyne.NewMenu("工具", + mm.syncConfMenu, + ) + + mm.MainMenu = fyne.NewMainMenu( + mm.sysMenu, + mm.toolMenu, + ) + return &mm +} diff --git a/cmd/v2/ui/tool_mgo.go b/cmd/v2/ui/tool_mgo.go index 4a30fc8c5..3453195a2 100644 --- a/cmd/v2/ui/tool_mgo.go +++ b/cmd/v2/ui/tool_mgo.go @@ -11,6 +11,8 @@ import ( "go_dreamfactory/pb" "strings" + mytheme "go_dreamfactory/cmd/v2/theme" + "fyne.io/fyne/v2" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/dialog" @@ -244,3 +246,6 @@ func (this *appMgo) showConWin() { func (a *appMgo) GetAppName() string { return common.TOOLBAR_MGODB } +func (a *appMgo) Icon() fyne.Resource { + return mytheme.ResourceMongodbJpg +} diff --git a/cmd/v2/ui/tool_newlock.go b/cmd/v2/ui/tool_newlock.go index 9a505d981..cf4b47563 100644 --- a/cmd/v2/ui/tool_newlock.go +++ b/cmd/v2/ui/tool_newlock.go @@ -68,3 +68,6 @@ func (this *appLock) LazyInit(ptService service.PttService, obs observer.Observe func (a *appLock) GetAppName() string { return common.TOOLBAR_SEC } +func (a *appLock) Icon() fyne.Resource { + return theme.DownloadIcon() +} diff --git a/cmd/v2/ui/tool_pb.go b/cmd/v2/ui/tool_pb.go index 822362bdc..2362c1442 100644 --- a/cmd/v2/ui/tool_pb.go +++ b/cmd/v2/ui/tool_pb.go @@ -191,6 +191,9 @@ func (this *appPbGen) LazyInit(ptService service.PttService, obs observer.Observ func (a *appPbGen) GetAppName() string { return common.TOOLBAR_PB } +func (a *appPbGen) Icon() fyne.Resource { + return theme.ContentAddIcon() +} type folderList struct { selItemIds []string //选择的ID diff --git a/cmd/v2/ui/tool_ping.go b/cmd/v2/ui/tool_ping.go index 8d0ee168a..9e4cccd40 100644 --- a/cmd/v2/ui/tool_ping.go +++ b/cmd/v2/ui/tool_ping.go @@ -130,3 +130,7 @@ func (this *appPing) ping(targetHost string, ports []string) { func (a *appPing) GetAppName() string { return common.TOOLBAR_PING } + +func (a *appPing) Icon() fyne.Resource { + return theme.ComputerIcon() +} diff --git a/cmd/v2/ui/tool_term.go b/cmd/v2/ui/tool_term.go index 87a04e90c..d2969acce 100644 --- a/cmd/v2/ui/tool_term.go +++ b/cmd/v2/ui/tool_term.go @@ -549,6 +549,9 @@ func (app *appTerm) LazyInit(ptService service.PttService, obs observer.Observer func (a *appTerm) GetAppName() string { return common.TOOLBAR_TERM } +func (a *appTerm) Icon() fyne.Resource { + return theme.MailSendIcon() +} func OpenExplor(dir string) { if dir == "" { diff --git a/cmd/v2/ui/tool_valid.go b/cmd/v2/ui/tool_valid.go new file mode 100644 index 000000000..35062e743 --- /dev/null +++ b/cmd/v2/ui/tool_valid.go @@ -0,0 +1,122 @@ +package ui + +import ( + "go_dreamfactory/cmd/v2/lib/common" + os_storage "go_dreamfactory/cmd/v2/lib/storage" + "go_dreamfactory/cmd/v2/service" + "go_dreamfactory/cmd/v2/service/observer" + mytheme "go_dreamfactory/cmd/v2/theme" + "io/ioutil" + + "fyne.io/fyne/v2" + "fyne.io/fyne/v2/container" + "fyne.io/fyne/v2/dialog" + fyne_storage "fyne.io/fyne/v2/storage" + "fyne.io/fyne/v2/theme" + "fyne.io/fyne/v2/widget" + "github.com/sirupsen/logrus" +) + +type jsonFileList struct { + selItemId string //选择的文件ID + cacheList common.List + itemList *widget.List + fileTotal int //文件数 +} + +func newJsonFileList() *jsonFileList { + return &jsonFileList{ + cacheList: common.NewList(""), + } +} + +type appConfigValid struct { + appAdapter + jsonFileList +} + +func (a *appConfigValid) LazyInit(pt service.PttService, obs observer.Observer) error { + a.tabItem = container.NewTabItemWithIcon(common.TOOLBAR_VALID, mytheme.ResourceExcelJpg, nil) + a.jsonFileList = *newJsonFileList() + + //load conf + storage, _ := os_storage.NewOSStorage() + conf, err := storage.LoadConfig() + if err != nil { + logrus.Error(err) + return err + } + + if conf.JsonDir!=""{ + + } + content := container.NewMax() + content.Objects = []fyne.CanvasObject{} + + // 打开目录 + openFolder := func(entry *widget.Entry) { + dConf := dialog.NewFolderOpen(func(lu fyne.ListableURI, err error) { + if lu == nil { + return + } + entry.Text = lu.Path() + entry.Refresh() + }, toolWin.w) + luri, _ := fyne_storage.ListerForURI(fyne_storage.NewFileURI(".")) + dConf.SetLocation(luri) + dConf.SetConfirmText("打开") + dConf.SetDismissText("取消") + dConf.Resize(fyne.NewSize(750, 500)) + dConf.Show() + } + //配置json路径 + jsonDir := widget.NewEntry() + jsonDir.PlaceHolder = "json目录" + form := widget.NewForm( + widget.NewFormItem("json目录", container.NewBorder(nil, nil, nil, widget.NewButtonWithIcon("", theme.FolderIcon(), func() { + openFolder(jsonDir) + a.jsonFileList.initItem(jsonDir.Text) + }), jsonDir)), + ) + + jsonDir.SetText(conf.JsonDir) + + c := container.NewBorder(form, nil, nil, nil) + + content.Objects = append(content.Objects, c) + a.tabItem.Content = content + return nil +} + +func (a *appConfigValid) GetAppName() string { + return common.TOOLBAR_VALID +} + +func (a *appConfigValid) Icon() fyne.Resource { + return mytheme.ResourceExcelJpg +} + +func (f *jsonFileList) initItem(dir string) { + files, err := ioutil.ReadDir(dir) + if err != nil { + logrus.Error(err) + return + } + + for _, file := range files { + if file.IsDir() { + if file.Name() == ".vscode" { + continue + } + fm := common.Item{ + Text: file.Name(), + Checked: false, + } + f.cacheList.Items = append(f.cacheList.Items, fm) + // f.selItemIds = append(f.selItemIds, fm.Id) + f.fileTotal++ + // logrus.Debugf("%v", fm.Id) + } + } + +} diff --git a/cmd/v2/ui/toolwindow.go b/cmd/v2/ui/toolwindow.go index 48bb2d3f7..146635d60 100644 --- a/cmd/v2/ui/toolwindow.go +++ b/cmd/v2/ui/toolwindow.go @@ -1,11 +1,20 @@ package ui import ( + "encoding/json" + "errors" "fmt" "go_dreamfactory/cmd/v2/lib/common" + "go_dreamfactory/cmd/v2/lib/storage" + "io/ioutil" + "net/http" + "time" + + mytheme "go_dreamfactory/cmd/v2/theme" "fyne.io/fyne/v2" "fyne.io/fyne/v2/container" + "fyne.io/fyne/v2/dialog" "fyne.io/fyne/v2/theme" "fyne.io/fyne/v2/widget" "github.com/sirupsen/logrus" @@ -24,6 +33,7 @@ type ToolWindowImpl struct { tb *toolBar //工具条 sb *statusBar //状态栏 at *appContainer //tabs + mm *toolMenu //菜单 } func NewToolWindow(ui *UIImpl, parent fyne.Window) ToolWindow { @@ -56,10 +66,15 @@ func NewToolWindow(ui *UIImpl, parent fyne.Window) ToolWindow { widget.NewToolbarAction(theme.ComputerIcon(), func() { openApp2(mw.at, common.TOOLBAR_PING) }), - widget.NewToolbarAction(theme.SettingsIcon(), func() { + + widget.NewToolbarAction(mytheme.ResourceMongodbJpg, func() { openApp2(mw.at, common.TOOLBAR_MGODB) }), + widget.NewToolbarAction(mytheme.ResourceExcelJpg, func() { + openApp2(mw.at, common.TOOLBAR_VALID) + }), + widget.NewToolbarSpacer(), widget.NewToolbarAction(theme.HelpIcon(), func() { showAbout() @@ -78,11 +93,13 @@ func (ui *ToolWindowImpl) CreateWindow(title string, width, height float32, _ bo ui.AddWindow("tool", w) ui.w = w + ui.mm = newToolMenu() + ui.w.SetMainMenu(ui.mm.MainMenu) // content content := container.NewBorder(ui.tb.toolbar, ui.sb.widget, nil, nil, ui.at) ui.w.SetContent(content) - appName, err := ui.at.openDefaultApp(common.TOOLBAR_WEL) + appName, err := ui.at.openWelcome() if err != nil { logrus.WithField("appName", appName).Error(err) } @@ -105,3 +122,50 @@ func (ui *ToolWindowImpl) CreateWindow(title string, width, height float32, _ bo }) w.Show() } +func (ui *ToolWindowImpl) quiteHandle() { + dialog.ShowConfirm("提示", "确定退出吗", func(b bool) { + if !b { + return + } + ui.app.Quit() + }, ui.w) +} + +func (ui *ToolWindowImpl) syncConfig() { + cli := http.Client{Timeout: time.Second * 10} + r, err := cli.Get("http://10.0.0.9:8080/prd/config.json") + if err != nil { + logrus.Error(err) + dialog.ShowError(err, ui.w) + return + } + + defer r.Body.Close() + + b, err2 := ioutil.ReadAll(r.Body) + if err2 != nil { + logrus.Error(err) + dialog.ShowError(err2, ui.w) + return + } + if len(b) == 0 { + dialog.ShowError(errors.New("云配置可能不存在"), ui.w) + return + } + config := &storage.Config{} + if err := json.Unmarshal(b, config); err != nil { + dialog.ShowError(fmt.Errorf("云配置解析错误: %s", err), ui.w) + return + } + + s, err := storage.NewOSStorage() + s.StoreConfig(config) + + dialog.ShowConfirm("提示", "云配置同步成功,需要重新打开窗口", func(b bool) { + if !b { + return + } + ui.parent.Show() + ui.w.Close() + }, ui.w) +} diff --git a/comm/const.go b/comm/const.go index 7428fa987..3c1c9711c 100644 --- a/comm/const.go +++ b/comm/const.go @@ -140,7 +140,7 @@ const ( TableSeasonRecord = "seasonRecord" // 赛季塔记录 /// 美食馆 - TableSmithy = "smithy" + TableSmithy = "smithy" TableSmithyTrade = "trade" /// 赛季塔数据表 TableSeasonPagoda = "seasonpagoda" @@ -222,6 +222,9 @@ const ( // pvp TablePvp = "pvp" + + // 铁匠铺铸造台 + TableStove = "stove" ) // RPC服务接口定义处 @@ -723,3 +726,10 @@ const ( UseType1 int32 = 1 //英雄碎片 UseType8 int32 = 8 //觉醒材料合成 ) + +const ( + SmithyReelType1 = 1 //炉温消耗减少 + SmithyReelType2 = 2 // 材料消耗减少 + SmithyReelType3 = 3 // 解锁图纸【紫金雷神锤】 + SmithyReelType4 = 4 +) diff --git a/modules/smithy/api_forgeequip.go b/modules/smithy/api_forgeequip.go index 2776c12f4..c3b1bb27a 100644 --- a/modules/smithy/api_forgeequip.go +++ b/modules/smithy/api_forgeequip.go @@ -3,13 +3,15 @@ package smithy import ( "go_dreamfactory/comm" "go_dreamfactory/pb" + "go_dreamfactory/sys/configure" + cfg "go_dreamfactory/sys/configure/structs" "google.golang.org/protobuf/proto" ) //参数校验 func (this *apiComp) ForgeEquipCheck(session comm.IUserSession, req *pb.SmithyForgeEquipReq) (code pb.ErrorCode) { - if req.EquipType == 0 { + if req.ReelId == 0 { code = pb.ErrorCode_ReqParameterError return } @@ -18,18 +20,81 @@ func (this *apiComp) ForgeEquipCheck(session comm.IUserSession, req *pb.SmithyFo // 打造装备 func (this *apiComp) ForgeEquip(session comm.IUserSession, req *pb.SmithyForgeEquipReq) (code pb.ErrorCode, data proto.Message) { - var () + var ( + stove *pb.DBStove + err error + update map[string]interface{} + costRes []*cfg.Gameatn + ) + update = make(map[string]interface{}) code = this.ForgeEquipCheck(session, req) if code != pb.ErrorCode_Success { return // 参数校验失败直接返回 } - stove, err := this.module.modelSmithy.getSmithyStoveList(session.GetUserId()) + stove, err = this.module.modelStove.getSmithyStoveList(session.GetUserId()) if err != nil { code = pb.ErrorCode_DBError return } + reelcfg := this.module.configure.GetSmithyReelConfigData(req.ReelId) + if reelcfg == nil { + code = pb.ErrorCode_ReqParameterError // 没有找到该类型的图纸信息 + return + } + // 校验图纸是否激活 + if _, ok := stove.Data[req.ReelId]; !ok { // 是不是首次打造 + if !this.module.configure.CheckSmithyFirstReelConfigData(reelcfg.Type, req.ReelId) { // 没有激活图纸 + code = pb.ErrorCode_SmithyNoReel + return + } + stove.Data[req.ReelId] = &pb.Mastery{ + Lv: 1, + Value: 0, + } + //update["data"] = stove.Data + } + stove.Data[req.ReelId].Value += 1 + // 是否是精益打造 + if req.Quality > 0 { + costRes = append(costRes, reelcfg.Quality) + } + costRes = append(costRes, reelcfg.Consume...) + subAtn := this.module.modelStove.CheckForgeConsume(req.ReelId, stove.Data[req.ReelId].Lv) + costRes = append(costRes, subAtn...) + if code = this.module.CheckRes(session, costRes); code != pb.ErrorCode_Success { + return + } + // 熟练度减少的温度 + t := this.module.modelStove.CheckTemperature(req.ReelId, stove.Data[req.ReelId].Lv) + // 检查炉温 是否够 + if stove.Temperature < reelcfg.Temperature-t { + code = pb.ErrorCode_SmithyNoTemperature // 炉温不够 直接返回 + return + } + // 检查是否提升了熟练度等级 + nextProficiency := this.module.configure.GetSmithyProficileData(req.ReelId, stove.Data[req.ReelId].Lv+1) + if nextProficiency != nil && nextProficiency.Proficiency >= stove.Data[req.ReelId].Value { // 提升熟练度 + stove.Data[req.ReelId].Lv += 1 + stove.Data[req.ReelId].Value = 0 + // 校验是否解锁了新的图纸 + if nextProficiency.Type == comm.SmithyReelType3 { + stove.Data[nextProficiency.Value1] = &pb.Mastery{ + Lv: 1, + Value: 0, + } + } + } + if code = this.module.ConsumeRes(session, costRes, true); code != pb.ErrorCode_Success { + return + } + stove.Temperature -= (reelcfg.Temperature - t) // 消耗温度 + stove.RecoveTime = configure.Now().Unix() + update["data"] = stove.Data + update["recoveTime"] = stove.RecoveTime + update["temperature"] = stove.Temperature + this.module.modelStove.updateSmithyStove(session.GetUserId(), update) session.SendMsg(string(this.module.GetType()), "forgeequip", &pb.SmithyForgeEquipResp{Data: stove}) return } diff --git a/modules/smithy/api_getCustomer.go b/modules/smithy/api_getCustomer.go new file mode 100644 index 000000000..58acfb0f3 --- /dev/null +++ b/modules/smithy/api_getCustomer.go @@ -0,0 +1,48 @@ +package smithy + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" + "go_dreamfactory/utils" + + "go.mongodb.org/mongo-driver/mongo" + "google.golang.org/protobuf/proto" +) + +func (this *apiComp) CustomerCheck(session comm.IUserSession, req *pb.SmithyCustomerReq) (code pb.ErrorCode) { + return +} + +func (this *apiComp) Customer(session comm.IUserSession, req *pb.SmithyCustomerReq) (code pb.ErrorCode, data proto.Message) { + cus, err := this.module.modelTrade.getDBCustomer(session.GetUserId()) + if err != nil { + if err == mongo.ErrNoDocuments { + c, err := this.module.modelTrade.addCustomer(session.GetUserId(), 3) + if err != nil { + code = pb.ErrorCode_DBError + return + } + cus = c + } else { + code = pb.ErrorCode_DBError + return + } + } + + if utils.IsFirstTody(cus.LastRefreshTime) { + this.module.modelTrade.DelByUId(session.GetUserId()) + c, err := this.module.modelTrade.addCustomer(session.GetUserId(), 3) + if err != nil { + code = pb.ErrorCode_DBError + return + } + cus = c + } + + rsp := &pb.SmithyCustomerResp{ + CustomerIds: cus.CustomerIds, + } + + session.SendMsg(string(this.module.GetType()), "customer", rsp) + return +} diff --git a/modules/smithy/api_getstoveinfo.go b/modules/smithy/api_getstoveinfo.go index ee80cc7da..2d8ab6c1c 100644 --- a/modules/smithy/api_getstoveinfo.go +++ b/modules/smithy/api_getstoveinfo.go @@ -20,11 +20,12 @@ func (this *apiComp) GetStoveInfo(session comm.IUserSession, req *pb.SmithyGetSt if code != pb.ErrorCode_Success { return // 参数校验失败直接返回 } - _smithy, err := this.module.modelSmithy.getSmithyStoveList(session.GetUserId()) + _smithy, err := this.module.modelStove.getSmithyStoveList(session.GetUserId()) if err != nil { code = pb.ErrorCode_DBError return } + this.module.modelStove.calculationRecoveryT(session.GetUserId(), _smithy) session.SendMsg(string(this.module.GetType()), "getstoveinfo", &pb.SmithyGetStoveInfoResp{Data: _smithy}) return } diff --git a/modules/smithy/api_orderequip.go b/modules/smithy/api_orderequip.go index 2077d094d..55c08b842 100644 --- a/modules/smithy/api_orderequip.go +++ b/modules/smithy/api_orderequip.go @@ -24,7 +24,7 @@ func (this *apiComp) OrderEquip(session comm.IUserSession, req *pb.SmithyOrderEq if code != pb.ErrorCode_Success { return // 参数校验失败直接返回 } - stove, err := this.module.modelSmithy.getSmithyStoveList(session.GetUserId()) + stove, err := this.module.modelStove.getSmithyStoveList(session.GetUserId()) if err != nil { code = pb.ErrorCode_DBError return diff --git a/modules/smithy/api_rise.go b/modules/smithy/api_rise.go index 49a203fbe..f25f4bc66 100644 --- a/modules/smithy/api_rise.go +++ b/modules/smithy/api_rise.go @@ -23,7 +23,7 @@ func (this *apiComp) Rise(session comm.IUserSession, req *pb.SmithyRiseReq) (cod if code != pb.ErrorCode_Success { return // 参数校验失败直接返回 } - stove, err := this.module.modelSmithy.getSmithyStoveList(session.GetUserId()) + stove, err := this.module.modelStove.getSmithyStoveList(session.GetUserId()) if err != nil { code = pb.ErrorCode_DBError return diff --git a/modules/smithy/api_stoveup.go b/modules/smithy/api_stoveup.go index 126464119..8ccf8114c 100644 --- a/modules/smithy/api_stoveup.go +++ b/modules/smithy/api_stoveup.go @@ -8,23 +8,40 @@ import ( ) //参数校验 -func (this *apiComp) StrveUpCheck(session comm.IUserSession, req *pb.SmithyStoveUpReq) (code pb.ErrorCode) { +func (this *apiComp) StoveUpCheck(session comm.IUserSession, req *pb.SmithyStoveUpReq) (code pb.ErrorCode) { return } // 炉子升级 -func (this *apiComp) StrveUp(session comm.IUserSession, req *pb.SmithyStoveUpReq) (code pb.ErrorCode, data proto.Message) { - code = this.StrveUpCheck(session, req) +func (this *apiComp) StoveUp(session comm.IUserSession, req *pb.SmithyStoveUpReq) (code pb.ErrorCode, data proto.Message) { + code = this.StoveUpCheck(session, req) if code != pb.ErrorCode_Success { return // 参数校验失败直接返回 } - stove, err := this.module.modelSmithy.getSmithyStoveList(session.GetUserId()) + stove, err := this.module.modelStove.getSmithyStoveList(session.GetUserId()) if err != nil { code = pb.ErrorCode_DBError return } - + conf := this.module.configure.GetSmithyStoveConf(stove.Lv) + if conf == nil { + code = pb.ErrorCode_ConfigNoFound + return + } + nexConf := this.module.configure.GetSmithyStoveConf(stove.Lv + 1) + if nexConf == nil { + code = pb.ErrorCode_SmithyStoveMaxLv + return + } + if code = this.module.ConsumeRes(session, conf.UpMaterial, true); code != pb.ErrorCode_Success { + return + } + stove.Lv += 1 + update := make(map[string]interface{}) + update["temperature"] = stove.Temperature + update["recoveTime"] = stove.RecoveTime + this.module.modelStove.updateSmithyStove(session.GetUserId(), update) session.SendMsg(string(this.module.GetType()), "stoveup", &pb.SmithyStoveUpResp{Data: stove}) return } diff --git a/modules/smithy/api_toolsup.go b/modules/smithy/api_toolsup.go index 685abf26c..1e709fed7 100644 --- a/modules/smithy/api_toolsup.go +++ b/modules/smithy/api_toolsup.go @@ -19,11 +19,30 @@ func (this *apiComp) ToolsUp(session comm.IUserSession, req *pb.SmithyToolsUpReq if code != pb.ErrorCode_Success { return // 参数校验失败直接返回 } - stove, err := this.module.modelSmithy.getSmithyStoveList(session.GetUserId()) + stove, err := this.module.modelStove.getSmithyStoveList(session.GetUserId()) if err != nil { code = pb.ErrorCode_DBError return } + conf := this.module.configure.GetSmithyToolsData(req.Id) + if conf == nil { + code = pb.ErrorCode_ReqParameterError + return + } + // 校验前置条件 + if conf.Preconditions == 0 { + stove.Skill[conf.SkillType] = conf.SkillLv + } else { + //TODU + } + + if this.module.ConsumeRes(session, conf.UpMaterial, true); code != pb.ErrorCode_Success { + return + } + + update := make(map[string]interface{}) + update["skill"] = stove.Skill + this.module.modelStove.updateSmithyStove(session.GetUserId(), update) session.SendMsg(string(this.module.GetType()), "toolsup", &pb.SmithyToolsUpResp{Data: stove}) return diff --git a/modules/smithy/api_trade.go b/modules/smithy/api_trade.go index 61a53e49e..2bf2f76fe 100644 --- a/modules/smithy/api_trade.go +++ b/modules/smithy/api_trade.go @@ -3,10 +3,43 @@ package smithy import ( "go_dreamfactory/comm" "go_dreamfactory/pb" + + "github.com/golang/protobuf/proto" ) // 贸易 -func (this *apiComp) TradeCheck(session comm.IUserSession, req *pb.SmithySellItemReq) (code pb.ErrorCode) { +func (this *apiComp) SellCheck(session comm.IUserSession, req *pb.SmithySellReq) (code pb.ErrorCode) { + if req.CustomerId == 0 || len(req.Ids) == 0 { + code = pb.ErrorCode_ReqParameterError + } + return +} + +func (this *apiComp) SellItem(session comm.IUserSession, req *pb.SmithySellReq) (code pb.ErrorCode, data proto.Message) { + if code = this.SellCheck(session, req); code != pb.ErrorCode_Success { + return + } + + //校验customer类型,因为有的类型是不能进入交易逻辑的 + //TODO + + _ = this.module.modelTrade.updateCustomer(session.GetUserId(), req.CustomerId) + + conf := this.module.configure.GetSmithyCustomerConf(req.CustomerId) + if conf == nil { + code = pb.ErrorCode_ConfigNoFound + return + } + + // 发奖励 + this.module.DispenseRes(session, conf.Reword, true) + + rsp := &pb.SmithySellResp{ + CustomerId: req.CustomerId, + Ids: req.Ids, + } + + session.SendMsg(string(this.module.GetType()), "sell", rsp) return } diff --git a/modules/smithy/comp_configure.go b/modules/smithy/comp_configure.go index 3487bcfb7..4d0dbf8e4 100644 --- a/modules/smithy/comp_configure.go +++ b/modules/smithy/comp_configure.go @@ -10,23 +10,32 @@ import ( ) const ( - game_smithy = "game_smithy.json" - game_smithystove = "game_smithystove.json" + game_smithy = "game_smithy.json" + game_smithystoveold = "game_smithystove.json" + + game_smithyreel = "game_newsmithy.json" // 新版铁匠铺卷轴 + game_smproficiency = "game_smithyproficiency.json" // 铁匠铺熟练度 + game_smithystove = "game_smithystovev1.json" // 铁匠铺台子 打造配置 + game_smithytools = "game_smithytool.json" // 铁匠铺工具台 + game_smithycustomer = "game_smithycustomer.json" ) -///配置管理基础组件 +// /配置管理基础组件 type configureComp struct { modules.MCompConfigure module *Smithy hlock sync.RWMutex _smithyMap map[int64]*cfg.GameSmithyData + + _mapProficile map[int64]*cfg.GameSmithyProficiencyData // 熟练度 key 卷轴ID+ 等级 + _mapskill map[int64]*cfg.GameSmithyToolData // 熟练度 key 技能类型+ 技能等级等级 } -//组件初始化接口 +// 组件初始化接口 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._smithyMap = make(map[int64]*cfg.GameSmithyData, 0) this.module = module.(*Smithy) + this._smithyMap = make(map[int64]*cfg.GameSmithyData, 0) configure.RegisterConfigure(game_smithy, cfg.NewGameSmithy, func() { if v, err := this.GetConfigure(game_smithy); err == nil { if configure, ok := v.(*cfg.GameSmithy); ok { @@ -41,7 +50,17 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp log.Errorf("get game_pagoda conf err:%v", err) return }) - err = this.LoadConfigure(game_smithystove, cfg.NewGameSmithyStove) + + this._mapProficile = make(map[int64]*cfg.GameSmithyProficiencyData, 0) + configure.RegisterConfigure(game_smproficiency, cfg.NewGameSmithyProficiency, this.LoadProficileData) + this._mapskill = make(map[int64]*cfg.GameSmithyToolData, 0) + configure.RegisterConfigure(game_smithytools, cfg.NewGameSmithyTool, this.LoadSmithySkillData) + err = this.LoadConfigure(game_smithyreel, cfg.NewGameSmithyStove) + err = this.LoadConfigure(game_smithystove, cfg.NewGameSmithyStoveV1) + err = this.LoadConfigure(game_smithytools, cfg.NewGameSmithyTool) + err = this.LoadConfigure(game_smithystoveold, cfg.NewGameSmithyStove) + err = this.LoadConfigure(game_smithycustomer, cfg.NewGameSmithyCustomer) + return } @@ -66,7 +85,7 @@ func (this *configureComp) GetSmithyTypeConfigData() (mapType map[int32]struct{} // 获取炉子配置数据 func (this *configureComp) GetSmithyStoveConfigData(level int32) (data *cfg.GameSmithyStoveData) { - if v, err := this.GetConfigure(game_smithystove); err == nil { + if v, err := this.GetConfigure(game_smithystoveold); err == nil { if configure, ok := v.(*cfg.GameSmithyStove); ok { data = configure.Get(int32(level)) return @@ -75,7 +94,7 @@ func (this *configureComp) GetSmithyStoveConfigData(level int32) (data *cfg.Game return } -//加载多个配置文件 +// 加载多个配置文件 func (this *configureComp) LoadMultiConfigure(confs map[string]interface{}) (err error) { for k, v := range confs { err = configure.RegisterConfigure(k, v, nil) @@ -87,7 +106,132 @@ func (this *configureComp) LoadMultiConfigure(confs map[string]interface{}) (err return } -//读取配置数据 +// 读取配置数据 func (this *configureComp) GetConfigure(name string) (v interface{}, err error) { return configure.GetConfigure(name) } + +// 获取图纸信息 +func (this *configureComp) GetSmithyReelConfigData(id int32) (data *cfg.GameNewSmithyData) { + if v, err := this.GetConfigure(game_smithyreel); err == nil { + if configure, ok := v.(*cfg.GameNewSmithy); ok { + data = configure.Get(int32(id)) + return + } + } + return +} + +func (this *configureComp) CheckSmithyFirstReelConfigData(etype int32, id int32) bool { + if v, err := this.GetConfigure(game_smithyreel); err == nil { + if configure, ok := v.(*cfg.GameNewSmithy); ok { + for _, v := range configure.GetDataList() { + if v.Type == etype { + if v.Id == id { + return true + } else { + return false + } + } + } + return true + } + } + return false +} + +// 获取铁匠铺熟练度数据 +func (this *configureComp) GetSmithProficiencyConf(id int32) (data *cfg.GameSmithyProficiencyData) { + if v, err := this.GetConfigure(game_smproficiency); err == nil { + if configure, ok := v.(*cfg.GameSmithyProficiency); ok { + data = configure.Get(int32(id)) + return + } + } + return +} + +// 获取铁匠铺的工具台技能 +func (this *configureComp) GetSmithySkill(skillType int32, skillLv int32) *cfg.GameSmithyToolData { + return this._mapskill[int64(skillType<<16)+int64(skillLv)] +} + +func (this *configureComp) LoadSmithySkillData() { + if v, err := this.GetConfigure(game_smithytools); err == nil { + if configure, ok := v.(*cfg.GameSmithyTool); ok { + this.hlock.Lock() + defer this.hlock.Unlock() + for _, value := range configure.GetDataList() { + this._mapskill[int64(value.SkillType<<16)+int64(value.SkillLv)] = value + } + return + } + } else { + log.Errorf("get LoadSmithySkillData conf err:%v", err) + + } +} + +func (this *configureComp) LoadProficileData() { + + if v, err := this.GetConfigure(game_smproficiency); err == nil { + if configure, ok := v.(*cfg.GameSmithyProficiency); ok { + this.hlock.Lock() + defer this.hlock.Unlock() + for _, value := range configure.GetDataList() { + this._mapProficile[int64(value.ReelId<<16)+int64(value.ProficiencyLv)] = value + } + return + } + } else { + log.Errorf("get game_pagoda conf err:%v", err) + + } + return +} + +func (this *configureComp) GetSmithyProficileData(reelid int32, proficile int32) *cfg.GameSmithyProficiencyData { + return this._mapProficile[int64(reelid<<16)+int64(proficile)] +} + +// 获取铁匠铺顾客配置 +func (this *configureComp) GetSmithyCustomerConfList() (data []*cfg.GameSmithyCustomerData) { + if v, err := this.GetConfigure(game_smithycustomer); err != nil { + if conf, ok := v.(*cfg.GameSmithyCustomer); ok { + data = conf.GetDataList() + return + } + } + return +} + +func (this *configureComp) GetSmithyCustomerConf(id int32) *cfg.GameSmithyCustomerData { + if v, err := this.GetConfigure(game_smithycustomer); err == nil { + if configure, ok := v.(*cfg.GameSmithyCustomer); ok { + return configure.GetDataMap()[id] + } + } + return nil +} + +// 获取铁匠铺工作台信息 +func (this *configureComp) GetSmithyToolsData(id int32) (data *cfg.GameSmithyToolData) { + if v, err := this.GetConfigure(game_smithytools); err == nil { + if configure, ok := v.(*cfg.GameSmithyTool); ok { + data = configure.Get(int32(id)) + return + + } + } + return nil +} + +func (this *configureComp) GetSmithyStoveConf(level int32) (data *cfg.GameSmithyStoveV1Data) { + if v, err := this.GetConfigure(game_smithystove); err == nil { + if configure, ok := v.(*cfg.GameSmithyStoveV1); ok { + data = configure.Get(int32(level)) + return + } + } + return +} diff --git a/modules/smithy/model_smithy.go b/modules/smithy/model_smithy.go index bee6178c8..728863f21 100644 --- a/modules/smithy/model_smithy.go +++ b/modules/smithy/model_smithy.go @@ -186,33 +186,3 @@ func (this *modelSmithy) CalculationStoveSkillLv(uid string, Smithy *pb.DBSmithy mapData["orderCostTime"] = Smithy.OrderCostTime this.module.ModifySmithyData(uid, mapData) } - -// 获取铁匠铺信息 -func (this *modelSmithy) getSmithyStoveList(uid string) (result *pb.DBStove, err error) { - result = &pb.DBStove{} - if err = this.Get(uid, result); err != nil { - if redis.RedisNil != err { // 没有数据直接创建新的数据 - result.Id = primitive.NewObjectID().Hex() - result.Uid = uid - result.Data = make(map[int32]int32, 0) - result.Skill = make(map[int32]int32, 0) - result.Lv = 1 - result.Temperature = 20000 // 配置 - result.RecoveTime = 0 - - if err = this.Add(uid, result); err != nil { - this.module.Errorf("err:%v", err) - err = nil - return - } - } - return - } - err = nil - return result, err -} - -func (this *modelSmithy) updateSmithyStove(uid string, update map[string]interface{}) (err error) { - err = this.Change(uid, update) - return err -} diff --git a/modules/smithy/model_stove.go b/modules/smithy/model_stove.go new file mode 100644 index 000000000..4fd071481 --- /dev/null +++ b/modules/smithy/model_stove.go @@ -0,0 +1,117 @@ +package smithy + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/lego/core" + "go_dreamfactory/lego/sys/redis" + "go_dreamfactory/modules" + "go_dreamfactory/pb" + "go_dreamfactory/sys/configure" + cfg "go_dreamfactory/sys/configure/structs" + "strconv" + + "go.mongodb.org/mongo-driver/bson/primitive" + "go.mongodb.org/mongo-driver/mongo" + "go.mongodb.org/mongo-driver/x/bsonx" +) + +type modelStove struct { + modules.MCompModel + module *Smithy +} + +func (this *modelStove) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { + this.TableName = string(comm.TableStove) + err = this.MCompModel.Init(service, module, comp, options) + this.module = module.(*Smithy) + // uid 创建索引 + this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{ + Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}}, + }) + return +} + +// 获取铁匠铺信息 +func (this *modelStove) getSmithyStoveList(uid string) (result *pb.DBStove, err error) { + result = &pb.DBStove{} + if err = this.Get(uid, result); err != nil { + if redis.RedisNil != err { // 没有数据直接创建新的数据 + result.Id = primitive.NewObjectID().Hex() + result.Uid = uid + result.Data = make(map[int32]*pb.Mastery, 0) + result.Skill = make(map[int32]int32, 0) + result.Forge = make(map[int32]int32, 0) + result.Lv = 1 + result.Temperature = 20000 // 配置 + result.RecoveTime = 0 + + if err = this.Add(uid, result); err != nil { + this.module.Errorf("err:%v", err) + err = nil + return + } + } + return + } + err = nil + return result, err +} + +func (this *modelStove) updateSmithyStove(uid string, update map[string]interface{}) (err error) { + err = this.Change(uid, update) + return err +} + +// 图纸属性 炉温消耗减少 +func (this *modelStove) CheckTemperature(reelId int32, lv int32) (t int32) { + var index int32 + for index = 1; index <= lv; index++ { + if cfg := this.module.configure.GetSmithyProficileData(reelId, index); cfg != nil { + if cfg.Type == comm.SmithyReelType1 { + t += cfg.Value1 + } + } + } + return +} + +// 检查消耗减少 +func (this *modelStove) CheckForgeConsume(reelId int32, lv int32) (atn []*cfg.Gameatn) { + var index int32 + for index = 1; index <= lv; index++ { + if cfgData := this.module.configure.GetSmithyProficileData(reelId, index); cfgData != nil { + if cfgData.Type == comm.SmithyReelType2 { + atn = append(atn, &cfg.Gameatn{ + A: "item", + T: strconv.Itoa(int(cfgData.Value1)), + N: cfgData.Value2, + }) + } + } + } + return +} + +// 计算恢复进度 +func (this *modelStove) calculationRecoveryT(uid string, stove *pb.DBStove) { + + conf := this.module.configure.GetSmithyStoveConf(stove.Lv) + if conf == nil { + return + } + if stove.Temperature < conf.MaxTemperature { + update := make(map[string]interface{}) + // 小于最高温度就开始恢复 + addT := (configure.Now().Unix() - stove.RecoveTime) / int64(conf.TemperatureRecovery) + stove.Temperature += int32(addT) + if stove.Temperature > conf.MaxTemperature { + stove.Temperature = conf.MaxTemperature + stove.RecoveTime = 0 + } else { + stove.RecoveTime += addT * int64(conf.TemperatureRecovery) + } + update["temperature"] = stove.Temperature + update["recoveTime"] = stove.RecoveTime + this.module.modelStove.updateSmithyStove(uid, update) + } +} diff --git a/modules/smithy/model_trade.go b/modules/smithy/model_trade.go index 2254a8b27..793f675b5 100644 --- a/modules/smithy/model_trade.go +++ b/modules/smithy/model_trade.go @@ -4,7 +4,12 @@ import ( "go_dreamfactory/comm" "go_dreamfactory/lego/core" "go_dreamfactory/modules" + "go_dreamfactory/pb" + "go_dreamfactory/sys/configure" + cfg "go_dreamfactory/sys/configure/structs" + "math/rand" + "go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/x/bsonx" ) @@ -24,4 +29,107 @@ func (this *modelTrade) Init(service core.IService, module core.IModule, comp co }) return } -// \ No newline at end of file + +// 权重项目 +type WeightedRandom struct { + items []*cfg.GameSmithyCustomerData + totalWeight int +} + +func newWeightedRandom(items []*cfg.GameSmithyCustomerData) *WeightedRandom { + wr := &WeightedRandom{items: items} + for _, item := range wr.items { + wr.totalWeight += int(item.Weight) + } + return wr +} + +func (wr *WeightedRandom) pick() *cfg.GameSmithyCustomerData { + randomNumber := rand.Intn(wr.totalWeight) + for _, item := range wr.items { + if randomNumber < int(item.Weight) { + return item + } + randomNumber -= int(item.Weight) + } + return nil +} + +// 随机顾客 +func (s *modelTrade) getCustomerRandom() (customerId int32) { + items := s.module.configure.GetSmithyCustomerConfList() + wr := newWeightedRandom(items) + if c := wr.pick(); c != nil { + customerId = c.CustomerId + } + return +} + +func (s *modelTrade) getDBCustomer(uid string) (*pb.DBCustomer, error) { + customer := &pb.DBCustomer{} + if err := s.Get(uid, customer); err != nil { + s.module.Errorln(err) + return nil, err + } + return customer, nil +} + +// 初始顾客 +func (s *modelTrade) addCustomer(uid string, num int32) (*pb.DBCustomer, error) { + customer := &pb.DBCustomer{ + Id: primitive.NewObjectID().Hex(), + Uid: uid, + Total: num, + LastRefreshTime: configure.Now().Unix(), + } + for i := 0; i < int(num); i++ { + customer.CustomerIds = append(customer.CustomerIds, s.getCustomerRandom()) + } + if err := s.Add(uid, customer); err != nil { + s.module.Errorln(err) + return nil, err + } + return customer, nil +} + +// 移除顾客 +func (s *modelTrade) removeCustomer(cus *pb.DBCustomer, customerId int32) *pb.DBCustomer { + for i, v := range cus.CustomerIds { + if v == customerId { + cus.CustomerIds = append(cus.CustomerIds[:i], cus.CustomerIds[i+1:]...) + i-- + } + } + return cus +} + +// 随机新顾客 +func (s *modelTrade) updateCustomer(uid string, customerId int32) error { + cus, err := s.getDBCustomer(uid) + if err == nil { + cus = s.removeCustomer(cus, customerId) + cus.Total++ + //上限 + limit := 20 + left := limit - int(cus.Total) + if left <= 0 { + return comm.NewCustomError(pb.ErrorCode_SmithyCustomerLimit) + } + + cus.CustomerIds = append(cus.CustomerIds, s.getCustomerRandom()) + cus.LastRefreshTime = configure.Now().Unix() + update := map[string]interface{}{ + "customerIds": cus.CustomerIds, + "total": cus.Total, + "lastRefreshTime": cus.LastRefreshTime, + } + if err := s.Change(uid, update); err != nil { + return err + } + } + return nil +} + +//顾客类型策略 + +//交易 diff --git a/modules/smithy/module.go b/modules/smithy/module.go index 319c74782..a1b888948 100644 --- a/modules/smithy/module.go +++ b/modules/smithy/module.go @@ -18,6 +18,7 @@ type Smithy struct { modelTrade *modelTrade api *apiComp configure *configureComp + modelStove *modelStove } func NewModule() core.IModule { @@ -40,6 +41,7 @@ func (this *Smithy) OnInstallComp() { this.modelSmithy = this.RegisterComp(new(modelSmithy)).(*modelSmithy) this.configure = this.RegisterComp(new(configureComp)).(*configureComp) this.modelTrade = this.RegisterComp(new(modelTrade)).(*modelTrade) + this.modelStove = this.RegisterComp(new(modelStove)).(*modelStove) } // 接口信息 diff --git a/pb/errorcode.pb.go b/pb/errorcode.pb.go index 85d31b146..6f7c40d1d 100644 --- a/pb/errorcode.pb.go +++ b/pb/errorcode.pb.go @@ -315,6 +315,11 @@ const ( // AutoBattle ErrorCode_AutoBattleNoData ErrorCode = 4001 //没有正在自动战斗的数据 ErrorCode_AutoBattleStatesErr ErrorCode = 4002 // 自动战斗状态错误 + // smithy + ErrorCode_SmithyNoReel ErrorCode = 4101 // 没有激活图纸信息 + ErrorCode_SmithyNoTemperature ErrorCode = 4102 // 炉温不够不能打造 + ErrorCode_SmithyStoveMaxLv ErrorCode = 4103 // 炉子达到最大等级 + ErrorCode_SmithyCustomerLimit ErrorCode = 4104 //顾客上限 ) // Enum value maps for ErrorCode. @@ -581,6 +586,10 @@ var ( 3901: "AcademyTaskNoCompleteTask", 4001: "AutoBattleNoData", 4002: "AutoBattleStatesErr", + 4101: "SmithyNoReel", + 4102: "SmithyNoTemperature", + 4103: "SmithyStoveMaxLv", + 4104: "SmithyCustomerLimit", } ErrorCode_value = map[string]int32{ "Success": 0, @@ -844,6 +853,10 @@ var ( "AcademyTaskNoCompleteTask": 3901, "AutoBattleNoData": 4001, "AutoBattleStatesErr": 4002, + "SmithyNoReel": 4101, + "SmithyNoTemperature": 4102, + "SmithyStoveMaxLv": 4103, + "SmithyCustomerLimit": 4104, } ) @@ -878,7 +891,7 @@ var File_errorcode_proto protoreflect.FileDescriptor var file_errorcode_proto_rawDesc = []byte{ 0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2a, 0x92, 0x2f, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x6f, 0x2a, 0xf0, 0x2f, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x10, 0x0a, 0x12, 0x1b, 0x0a, 0x17, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, @@ -1255,8 +1268,14 @@ var file_errorcode_proto_rawDesc = []byte{ 0x73, 0x6b, 0x10, 0xbd, 0x1e, 0x12, 0x15, 0x0a, 0x10, 0x41, 0x75, 0x74, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xa1, 0x1f, 0x12, 0x18, 0x0a, 0x13, 0x41, 0x75, 0x74, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, - 0x45, 0x72, 0x72, 0x10, 0xa2, 0x1f, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x45, 0x72, 0x72, 0x10, 0xa2, 0x1f, 0x12, 0x11, 0x0a, 0x0c, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, + 0x4e, 0x6f, 0x52, 0x65, 0x65, 0x6c, 0x10, 0x85, 0x20, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6d, 0x69, + 0x74, 0x68, 0x79, 0x4e, 0x6f, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x10, 0x86, 0x20, 0x12, 0x15, 0x0a, 0x10, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x53, 0x74, 0x6f, + 0x76, 0x65, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0x87, 0x20, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6d, + 0x69, 0x74, 0x68, 0x79, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x10, 0x88, 0x20, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/smithy_db.pb.go b/pb/smithy_db.pb.go index 7ae947142..1d360c4b2 100644 --- a/pb/smithy_db.pb.go +++ b/pb/smithy_db.pb.go @@ -20,26 +20,81 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type Mastery struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Lv int32 `protobuf:"varint,1,opt,name=lv,proto3" json:"lv"` + Value int32 `protobuf:"varint,2,opt,name=value,proto3" json:"value"` +} + +func (x *Mastery) Reset() { + *x = Mastery{} + if protoimpl.UnsafeEnabled { + mi := &file_smithy_smithy_db_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Mastery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Mastery) ProtoMessage() {} + +func (x *Mastery) ProtoReflect() protoreflect.Message { + mi := &file_smithy_smithy_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 Mastery.ProtoReflect.Descriptor instead. +func (*Mastery) Descriptor() ([]byte, []int) { + return file_smithy_smithy_db_proto_rawDescGZIP(), []int{0} +} + +func (x *Mastery) GetLv() int32 { + if x != nil { + return x.Lv + } + return 0 +} + +func (x *Mastery) GetValue() int32 { + if x != nil { + return x.Value + } + return 0 +} + // 炉子信息 type DBStove 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 - Lv int32 `protobuf:"varint,3,opt,name=lv,proto3" json:"lv"` // 炉子等级 - Data map[int32]int32 `protobuf:"bytes,4,rep,name=data,proto3" json:"data" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key 套装类型 value 熟练度 - Skill map[int32]int32 `protobuf:"bytes,5,rep,name=skill,proto3" json:"skill" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 台子技能 - Forge map[int32]int32 `protobuf:"bytes,6,rep,name=forge,proto3" json:"forge" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key 套装类型 value 打造次数 - Temperature int32 `protobuf:"varint,7,opt,name=temperature,proto3" json:"temperature"` // 炉子温度 - RecoveTime int64 `protobuf:"varint,8,opt,name=recoveTime,proto3" json:"recoveTime"` // 恢复满时间 + 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 + Lv int32 `protobuf:"varint,3,opt,name=lv,proto3" json:"lv"` // 炉子等级 + Data map[int32]*Mastery `protobuf:"bytes,4,rep,name=data,proto3" json:"data" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // key 图纸ID value 熟练度 + Skill map[int32]int32 `protobuf:"bytes,5,rep,name=skill,proto3" json:"skill" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 台子技能 + Forge map[int32]int32 `protobuf:"bytes,6,rep,name=forge,proto3" json:"forge" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key 套装类型 value 打造次数 + Temperature int32 `protobuf:"varint,7,opt,name=temperature,proto3" json:"temperature"` // 炉子温度 + RecoveTime int64 `protobuf:"varint,8,opt,name=recoveTime,proto3" json:"recoveTime"` // 恢复满时间 } func (x *DBStove) Reset() { *x = DBStove{} if protoimpl.UnsafeEnabled { - mi := &file_smithy_smithy_db_proto_msgTypes[0] + mi := &file_smithy_smithy_db_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -52,7 +107,7 @@ func (x *DBStove) String() string { func (*DBStove) ProtoMessage() {} func (x *DBStove) ProtoReflect() protoreflect.Message { - mi := &file_smithy_smithy_db_proto_msgTypes[0] + mi := &file_smithy_smithy_db_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65,7 +120,7 @@ func (x *DBStove) ProtoReflect() protoreflect.Message { // Deprecated: Use DBStove.ProtoReflect.Descriptor instead. func (*DBStove) Descriptor() ([]byte, []int) { - return file_smithy_smithy_db_proto_rawDescGZIP(), []int{0} + return file_smithy_smithy_db_proto_rawDescGZIP(), []int{1} } func (x *DBStove) GetId() string { @@ -89,7 +144,7 @@ func (x *DBStove) GetLv() int32 { return 0 } -func (x *DBStove) GetData() map[int32]int32 { +func (x *DBStove) GetData() map[int32]*Mastery { if x != nil { return x.Data } @@ -124,68 +179,20 @@ func (x *DBStove) GetRecoveTime() int64 { return 0 } -// 商人信息 -type DBBusiness struct { +type DBCustomer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Shop map[int32]int32 `protobuf:"bytes,1,rep,name=shop,proto3" json:"shop" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + 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"` // + CustomerIds []int32 `protobuf:"varint,3,rep,packed,name=customerIds,proto3" json:"customerIds" bson:"customerIds"` // 顾客Ids + Total int32 `protobuf:"varint,4,opt,name=total,proto3" json:"total" bson:"total"` //顾客累计数 + LastRefreshTime int64 `protobuf:"varint,5,opt,name=lastRefreshTime,proto3" json:"lastRefreshTime" bson:"lastRefreshTime"` // 上次更新时间 } -func (x *DBBusiness) Reset() { - *x = DBBusiness{} - if protoimpl.UnsafeEnabled { - mi := &file_smithy_smithy_db_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DBBusiness) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DBBusiness) ProtoMessage() {} - -func (x *DBBusiness) ProtoReflect() protoreflect.Message { - mi := &file_smithy_smithy_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 DBBusiness.ProtoReflect.Descriptor instead. -func (*DBBusiness) Descriptor() ([]byte, []int) { - return file_smithy_smithy_db_proto_rawDescGZIP(), []int{1} -} - -func (x *DBBusiness) GetShop() map[int32]int32 { - if x != nil { - return x.Shop - } - return nil -} - -type DBBusinessData 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 - Data []*DBBusiness `protobuf:"bytes,3,rep,name=data,proto3" json:"data"` - Count int32 `protobuf:"varint,4,opt,name=count,proto3" json:"count"` // 刷新次数 - RefreshTime int64 `protobuf:"varint,5,opt,name=refreshTime,proto3" json:"refreshTime" bson:"refreshTime"` //刷新开始时间 -} - -func (x *DBBusinessData) Reset() { - *x = DBBusinessData{} +func (x *DBCustomer) Reset() { + *x = DBCustomer{} if protoimpl.UnsafeEnabled { mi := &file_smithy_smithy_db_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -193,13 +200,13 @@ func (x *DBBusinessData) Reset() { } } -func (x *DBBusinessData) String() string { +func (x *DBCustomer) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DBBusinessData) ProtoMessage() {} +func (*DBCustomer) ProtoMessage() {} -func (x *DBBusinessData) ProtoReflect() protoreflect.Message { +func (x *DBCustomer) ProtoReflect() protoreflect.Message { mi := &file_smithy_smithy_db_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -211,42 +218,42 @@ func (x *DBBusinessData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DBBusinessData.ProtoReflect.Descriptor instead. -func (*DBBusinessData) Descriptor() ([]byte, []int) { +// Deprecated: Use DBCustomer.ProtoReflect.Descriptor instead. +func (*DBCustomer) Descriptor() ([]byte, []int) { return file_smithy_smithy_db_proto_rawDescGZIP(), []int{2} } -func (x *DBBusinessData) GetId() string { +func (x *DBCustomer) GetId() string { if x != nil { return x.Id } return "" } -func (x *DBBusinessData) GetUid() string { +func (x *DBCustomer) GetUid() string { if x != nil { return x.Uid } return "" } -func (x *DBBusinessData) GetData() []*DBBusiness { +func (x *DBCustomer) GetCustomerIds() []int32 { if x != nil { - return x.Data + return x.CustomerIds } return nil } -func (x *DBBusinessData) GetCount() int32 { +func (x *DBCustomer) GetTotal() int32 { if x != nil { - return x.Count + return x.Total } return 0 } -func (x *DBBusinessData) GetRefreshTime() int64 { +func (x *DBCustomer) GetLastRefreshTime() int64 { if x != nil { - return x.RefreshTime + return x.LastRefreshTime } return 0 } @@ -653,111 +660,108 @@ var File_smithy_smithy_db_proto protoreflect.FileDescriptor var file_smithy_smithy_db_proto_rawDesc = []byte{ 0x0a, 0x16, 0x73, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x2f, 0x73, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa8, 0x03, 0x0a, 0x07, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, - 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, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x6c, 0x76, 0x12, 0x26, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x05, 0x73, 0x6b, - 0x69, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x44, 0x42, 0x53, 0x74, - 0x6f, 0x76, 0x65, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, - 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x29, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x67, 0x65, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x2e, 0x46, - 0x6f, 0x72, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x67, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x1a, 0x37, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 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, 0x1a, 0x38, 0x0a, 0x0a, 0x53, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2f, 0x0a, 0x07, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x79, 0x12, + 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb2, 0x03, 0x0a, 0x07, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, + 0x65, 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, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x6c, 0x76, 0x12, 0x26, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x05, 0x73, + 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x44, 0x42, 0x53, + 0x74, 0x6f, 0x76, 0x65, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x29, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x67, 0x65, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x2e, + 0x46, 0x6f, 0x72, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x67, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x1a, 0x41, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 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, + 0x1a, 0x38, 0x0a, 0x0a, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 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, 0x90, 0x01, 0x0a, 0x0a, 0x44, + 0x42, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 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, 0x20, 0x0a, 0x0b, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6c, 0x61, + 0x73, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xba, 0x01, + 0x0a, 0x08, 0x44, 0x42, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 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, 0x06, + 0x74, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, + 0x42, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x2e, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x06, 0x74, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x6c, 0x69, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6c, 0x69, + 0x64, 0x65, 0x72, 0x1a, 0x45, 0x0a, 0x0b, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x55, 0x0a, 0x09, 0x46, 0x6f, + 0x72, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x6f, 0x72, 0x67, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x6f, 0x72, + 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x22, 0x4f, 0x0a, 0x05, 0x43, 0x6c, 0x61, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, + 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x65, + 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x54, 0x69, + 0x6d, 0x65, 0x22, 0x5a, 0x0a, 0x0a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x6e, 0x67, + 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x64, 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x65, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, 0x65, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x82, + 0x04, 0x0a, 0x08, 0x44, 0x42, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 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, 0x1c, 0x0a, + 0x05, 0x63, 0x6c, 0x61, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x43, + 0x6c, 0x61, 0x6e, 0x67, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x6e, 0x67, 0x12, 0x23, 0x0a, 0x06, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x6e, 0x67, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, + 0x12, 0x21, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x2e, 0x53, 0x6b, + 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x12, + 0x18, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x76, 0x65, 0x4c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x73, 0x74, 0x6f, 0x76, 0x65, 0x4c, 0x76, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x63, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x64, 0x65, 0x73, 0x6b, 0x46, 0x6c, 0x6f, + 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x44, 0x42, 0x53, 0x6d, 0x69, + 0x74, 0x68, 0x79, 0x2e, 0x44, 0x65, 0x73, 0x6b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x09, 0x64, 0x65, 0x73, 0x6b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x74, 0x6f, 0x76, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x73, 0x74, 0x6f, 0x76, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 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, 0x1a, 0x38, 0x0a, 0x0a, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 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, - 0x70, 0x0a, 0x0a, 0x44, 0x42, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, - 0x04, 0x73, 0x68, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, - 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x2e, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x70, 0x1a, 0x37, 0x0a, 0x09, 0x53, 0x68, 0x6f, 0x70, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 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, 0x8b, 0x01, 0x0a, 0x0e, 0x44, 0x42, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, - 0x44, 0x61, 0x74, 0x61, 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, 0x1f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x44, 0x42, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, - 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, - 0x0b, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x22, - 0xba, 0x01, 0x0a, 0x08, 0x44, 0x42, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 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, 0x06, 0x74, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x44, 0x42, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x2e, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x74, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, - 0x6c, 0x69, 0x64, 0x65, 0x72, 0x1a, 0x45, 0x0a, 0x0b, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x55, 0x0a, 0x09, - 0x46, 0x6f, 0x72, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x6f, 0x72, - 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, - 0x6f, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, - 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, - 0x69, 0x74, 0x79, 0x22, 0x4f, 0x0a, 0x05, 0x43, 0x6c, 0x61, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, - 0x64, 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x64, 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, - 0x54, 0x69, 0x6d, 0x65, 0x22, 0x5a, 0x0a, 0x0a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, - 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x65, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, 0x65, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x22, 0x82, 0x04, 0x0a, 0x08, 0x44, 0x42, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 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, - 0x1c, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, - 0x2e, 0x43, 0x6c, 0x61, 0x6e, 0x67, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x6e, 0x67, 0x12, 0x23, 0x0a, - 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x6e, 0x67, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x73, 0x12, 0x21, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0b, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x05, - 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x2e, - 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6c, - 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x76, 0x65, 0x4c, 0x76, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x76, 0x65, 0x4c, 0x76, 0x12, 0x24, 0x0a, 0x0d, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x64, 0x65, 0x73, 0x6b, 0x46, - 0x6c, 0x6f, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x44, 0x42, 0x53, - 0x6d, 0x69, 0x74, 0x68, 0x79, 0x2e, 0x44, 0x65, 0x73, 0x6b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x64, 0x65, 0x73, 0x6b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x12, - 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x6f, 0x76, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x6f, 0x76, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x12, - 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x38, 0x0a, - 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 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, 0x1a, 0x3c, 0x0a, 0x0e, 0x44, 0x65, 0x73, 0x6b, 0x46, - 0x6c, 0x6f, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 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, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3c, 0x0a, 0x0e, 0x44, 0x65, 0x73, 0x6b, 0x46, 0x6c, 0x6f, + 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 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 ( @@ -772,43 +776,41 @@ func file_smithy_smithy_db_proto_rawDescGZIP() []byte { return file_smithy_smithy_db_proto_rawDescData } -var file_smithy_smithy_db_proto_msgTypes = make([]protoimpl.MessageInfo, 15) +var file_smithy_smithy_db_proto_msgTypes = make([]protoimpl.MessageInfo, 14) var file_smithy_smithy_db_proto_goTypes = []interface{}{ - (*DBStove)(nil), // 0: DBStove - (*DBBusiness)(nil), // 1: DBBusiness - (*DBBusinessData)(nil), // 2: DBBusinessData - (*DBTujian)(nil), // 3: DBTujian - (*ForgeData)(nil), // 4: ForgeData - (*Clang)(nil), // 5: Clang - (*OrderClang)(nil), // 6: OrderClang - (*DBSmithy)(nil), // 7: DBSmithy - nil, // 8: DBStove.DataEntry - nil, // 9: DBStove.SkillEntry - nil, // 10: DBStove.ForgeEntry - nil, // 11: DBBusiness.ShopEntry - nil, // 12: DBTujian.TujianEntry - nil, // 13: DBSmithy.SkillEntry - nil, // 14: DBSmithy.DeskFloorEntry - (*UserAssets)(nil), // 15: UserAssets + (*Mastery)(nil), // 0: Mastery + (*DBStove)(nil), // 1: DBStove + (*DBCustomer)(nil), // 2: DBCustomer + (*DBTujian)(nil), // 3: DBTujian + (*ForgeData)(nil), // 4: ForgeData + (*Clang)(nil), // 5: Clang + (*OrderClang)(nil), // 6: OrderClang + (*DBSmithy)(nil), // 7: DBSmithy + nil, // 8: DBStove.DataEntry + nil, // 9: DBStove.SkillEntry + nil, // 10: DBStove.ForgeEntry + nil, // 11: DBTujian.TujianEntry + nil, // 12: DBSmithy.SkillEntry + nil, // 13: DBSmithy.DeskFloorEntry + (*UserAssets)(nil), // 14: UserAssets } var file_smithy_smithy_db_proto_depIdxs = []int32{ 8, // 0: DBStove.data:type_name -> DBStove.DataEntry 9, // 1: DBStove.skill:type_name -> DBStove.SkillEntry 10, // 2: DBStove.forge:type_name -> DBStove.ForgeEntry - 11, // 3: DBBusiness.shop:type_name -> DBBusiness.ShopEntry - 1, // 4: DBBusinessData.data:type_name -> DBBusiness - 12, // 5: DBTujian.tujian:type_name -> DBTujian.TujianEntry - 5, // 6: DBSmithy.clang:type_name -> Clang - 6, // 7: DBSmithy.orders:type_name -> OrderClang - 15, // 8: DBSmithy.items:type_name -> UserAssets - 13, // 9: DBSmithy.skill:type_name -> DBSmithy.SkillEntry - 14, // 10: DBSmithy.deskFloor:type_name -> DBSmithy.DeskFloorEntry - 4, // 11: DBTujian.TujianEntry.value:type_name -> ForgeData - 12, // [12:12] is the sub-list for method output_type - 12, // [12:12] is the sub-list for method input_type - 12, // [12:12] is the sub-list for extension type_name - 12, // [12:12] is the sub-list for extension extendee - 0, // [0:12] is the sub-list for field type_name + 11, // 3: DBTujian.tujian:type_name -> DBTujian.TujianEntry + 5, // 4: DBSmithy.clang:type_name -> Clang + 6, // 5: DBSmithy.orders:type_name -> OrderClang + 14, // 6: DBSmithy.items:type_name -> UserAssets + 12, // 7: DBSmithy.skill:type_name -> DBSmithy.SkillEntry + 13, // 8: DBSmithy.deskFloor:type_name -> DBSmithy.DeskFloorEntry + 0, // 9: DBStove.DataEntry.value:type_name -> Mastery + 4, // 10: DBTujian.TujianEntry.value:type_name -> ForgeData + 11, // [11:11] is the sub-list for method output_type + 11, // [11:11] is the sub-list for method input_type + 11, // [11:11] is the sub-list for extension type_name + 11, // [11:11] is the sub-list for extension extendee + 0, // [0:11] is the sub-list for field type_name } func init() { file_smithy_smithy_db_proto_init() } @@ -819,7 +821,7 @@ func file_smithy_smithy_db_proto_init() { file_comm_proto_init() if !protoimpl.UnsafeEnabled { file_smithy_smithy_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DBStove); i { + switch v := v.(*Mastery); i { case 0: return &v.state case 1: @@ -831,7 +833,7 @@ func file_smithy_smithy_db_proto_init() { } } file_smithy_smithy_db_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DBBusiness); i { + switch v := v.(*DBStove); i { case 0: return &v.state case 1: @@ -843,7 +845,7 @@ func file_smithy_smithy_db_proto_init() { } } file_smithy_smithy_db_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DBBusinessData); i { + switch v := v.(*DBCustomer); i { case 0: return &v.state case 1: @@ -921,7 +923,7 @@ func file_smithy_smithy_db_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_smithy_smithy_db_proto_rawDesc, NumEnums: 0, - NumMessages: 15, + NumMessages: 14, NumExtensions: 0, NumServices: 0, }, diff --git a/pb/smithy_msg.pb.go b/pb/smithy_msg.pb.go index 0fbe0ff3e..b91728ce2 100644 --- a/pb/smithy_msg.pb.go +++ b/pb/smithy_msg.pb.go @@ -112,9 +112,9 @@ type SmithyForgeEquipReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - EquipType int32 `protobuf:"varint,1,opt,name=equipType,proto3" json:"equipType"` // 装备类型 - Lava int32 `protobuf:"varint,2,opt,name=lava,proto3" json:"lava"` // 添加熔岩 - Quality int32 `protobuf:"varint,3,opt,name=quality,proto3" json:"quality"` // 精益制造 + ReelId int32 `protobuf:"varint,1,opt,name=reelId,proto3" json:"reelId"` // 卷轴ID + Lava int32 `protobuf:"varint,2,opt,name=lava,proto3" json:"lava"` // 添加熔岩 + Quality int32 `protobuf:"varint,3,opt,name=quality,proto3" json:"quality"` // 精益制造 } func (x *SmithyForgeEquipReq) Reset() { @@ -149,9 +149,9 @@ func (*SmithyForgeEquipReq) Descriptor() ([]byte, []int) { return file_smithy_smithy_msg_proto_rawDescGZIP(), []int{2} } -func (x *SmithyForgeEquipReq) GetEquipType() int32 { +func (x *SmithyForgeEquipReq) GetReelId() int32 { if x != nil { - return x.EquipType + return x.ReelId } return 0 } @@ -637,14 +637,14 @@ func (x *SmithyToolsUpResp) GetData() *DBStove { } // 刷新商人 -type SmithyRefreshShopReq struct { +type SmithyCustomerReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *SmithyRefreshShopReq) Reset() { - *x = SmithyRefreshShopReq{} +func (x *SmithyCustomerReq) Reset() { + *x = SmithyCustomerReq{} if protoimpl.UnsafeEnabled { mi := &file_smithy_smithy_msg_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -652,13 +652,13 @@ func (x *SmithyRefreshShopReq) Reset() { } } -func (x *SmithyRefreshShopReq) String() string { +func (x *SmithyCustomerReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SmithyRefreshShopReq) ProtoMessage() {} +func (*SmithyCustomerReq) ProtoMessage() {} -func (x *SmithyRefreshShopReq) ProtoReflect() protoreflect.Message { +func (x *SmithyCustomerReq) ProtoReflect() protoreflect.Message { mi := &file_smithy_smithy_msg_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -670,21 +670,21 @@ func (x *SmithyRefreshShopReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SmithyRefreshShopReq.ProtoReflect.Descriptor instead. -func (*SmithyRefreshShopReq) Descriptor() ([]byte, []int) { +// Deprecated: Use SmithyCustomerReq.ProtoReflect.Descriptor instead. +func (*SmithyCustomerReq) Descriptor() ([]byte, []int) { return file_smithy_smithy_msg_proto_rawDescGZIP(), []int{12} } -type SmithyRefreshShopResp struct { +type SmithyCustomerResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data *DBBusiness `protobuf:"bytes,1,opt,name=data,proto3" json:"data"` + CustomerIds []int32 `protobuf:"varint,1,rep,packed,name=customerIds,proto3" json:"customerIds"` //顾客 } -func (x *SmithyRefreshShopResp) Reset() { - *x = SmithyRefreshShopResp{} +func (x *SmithyCustomerResp) Reset() { + *x = SmithyCustomerResp{} if protoimpl.UnsafeEnabled { mi := &file_smithy_smithy_msg_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -692,13 +692,13 @@ func (x *SmithyRefreshShopResp) Reset() { } } -func (x *SmithyRefreshShopResp) String() string { +func (x *SmithyCustomerResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SmithyRefreshShopResp) ProtoMessage() {} +func (*SmithyCustomerResp) ProtoMessage() {} -func (x *SmithyRefreshShopResp) ProtoReflect() protoreflect.Message { +func (x *SmithyCustomerResp) ProtoReflect() protoreflect.Message { mi := &file_smithy_smithy_msg_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -710,30 +710,30 @@ func (x *SmithyRefreshShopResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SmithyRefreshShopResp.ProtoReflect.Descriptor instead. -func (*SmithyRefreshShopResp) Descriptor() ([]byte, []int) { +// Deprecated: Use SmithyCustomerResp.ProtoReflect.Descriptor instead. +func (*SmithyCustomerResp) Descriptor() ([]byte, []int) { return file_smithy_smithy_msg_proto_rawDescGZIP(), []int{13} } -func (x *SmithyRefreshShopResp) GetData() *DBBusiness { +func (x *SmithyCustomerResp) GetCustomerIds() []int32 { if x != nil { - return x.Data + return x.CustomerIds } return nil } // 出售装备 -type SmithySellItemReq struct { +type SmithySellReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` // 装备ID - Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count"` // 数量 + Ids []int32 `protobuf:"varint,1,rep,packed,name=ids,proto3" json:"ids"` // 装备ID + CustomerId int32 `protobuf:"varint,2,opt,name=customerId,proto3" json:"customerId"` //顾客ID } -func (x *SmithySellItemReq) Reset() { - *x = SmithySellItemReq{} +func (x *SmithySellReq) Reset() { + *x = SmithySellReq{} if protoimpl.UnsafeEnabled { mi := &file_smithy_smithy_msg_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -741,13 +741,13 @@ func (x *SmithySellItemReq) Reset() { } } -func (x *SmithySellItemReq) String() string { +func (x *SmithySellReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SmithySellItemReq) ProtoMessage() {} +func (*SmithySellReq) ProtoMessage() {} -func (x *SmithySellItemReq) ProtoReflect() protoreflect.Message { +func (x *SmithySellReq) ProtoReflect() protoreflect.Message { mi := &file_smithy_smithy_msg_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -759,35 +759,36 @@ func (x *SmithySellItemReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SmithySellItemReq.ProtoReflect.Descriptor instead. -func (*SmithySellItemReq) Descriptor() ([]byte, []int) { +// Deprecated: Use SmithySellReq.ProtoReflect.Descriptor instead. +func (*SmithySellReq) Descriptor() ([]byte, []int) { return file_smithy_smithy_msg_proto_rawDescGZIP(), []int{14} } -func (x *SmithySellItemReq) GetId() int32 { +func (x *SmithySellReq) GetIds() []int32 { if x != nil { - return x.Id + return x.Ids + } + return nil +} + +func (x *SmithySellReq) GetCustomerId() int32 { + if x != nil { + return x.CustomerId } return 0 } -func (x *SmithySellItemReq) GetCount() int32 { - if x != nil { - return x.Count - } - return 0 -} - -type SmithySellItemResp struct { +type SmithySellResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data *DBBusiness `protobuf:"bytes,1,opt,name=data,proto3" json:"data"` + CustomerId int32 `protobuf:"varint,1,opt,name=customerId,proto3" json:"customerId"` //顾客ID + Ids []int32 `protobuf:"varint,2,rep,packed,name=ids,proto3" json:"ids"` //出售的装备 } -func (x *SmithySellItemResp) Reset() { - *x = SmithySellItemResp{} +func (x *SmithySellResp) Reset() { + *x = SmithySellResp{} if protoimpl.UnsafeEnabled { mi := &file_smithy_smithy_msg_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -795,13 +796,13 @@ func (x *SmithySellItemResp) Reset() { } } -func (x *SmithySellItemResp) String() string { +func (x *SmithySellResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SmithySellItemResp) ProtoMessage() {} +func (*SmithySellResp) ProtoMessage() {} -func (x *SmithySellItemResp) ProtoReflect() protoreflect.Message { +func (x *SmithySellResp) ProtoReflect() protoreflect.Message { mi := &file_smithy_smithy_msg_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -813,14 +814,21 @@ func (x *SmithySellItemResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SmithySellItemResp.ProtoReflect.Descriptor instead. -func (*SmithySellItemResp) Descriptor() ([]byte, []int) { +// Deprecated: Use SmithySellResp.ProtoReflect.Descriptor instead. +func (*SmithySellResp) Descriptor() ([]byte, []int) { return file_smithy_smithy_msg_proto_rawDescGZIP(), []int{15} } -func (x *SmithySellItemResp) GetData() *DBBusiness { +func (x *SmithySellResp) GetCustomerId() int32 { if x != nil { - return x.Data + return x.CustomerId + } + return 0 +} + +func (x *SmithySellResp) GetIds() []int32 { + if x != nil { + return x.Ids } return nil } @@ -1380,95 +1388,96 @@ var file_smithy_smithy_msg_proto_rawDesc = []byte{ 0x0a, 0x16, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x61, 0x0a, 0x13, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, - 0x46, 0x6f, 0x72, 0x67, 0x65, 0x45, 0x71, 0x75, 0x69, 0x70, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, - 0x09, 0x65, 0x71, 0x75, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x09, 0x65, 0x71, 0x75, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, - 0x61, 0x76, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x61, 0x76, 0x61, 0x12, - 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x22, 0x4a, 0x0a, 0x14, 0x53, 0x6d, 0x69, - 0x74, 0x68, 0x79, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x45, 0x71, 0x75, 0x69, 0x70, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x71, 0x75, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x65, 0x71, 0x75, 0x69, 0x70, 0x12, 0x1c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x79, 0x0a, 0x13, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x45, 0x71, 0x75, 0x69, 0x70, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, - 0x73, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, - 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x61, 0x76, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x6c, 0x61, 0x76, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, - 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, - 0x22, 0x4a, 0x0a, 0x14, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x45, - 0x71, 0x75, 0x69, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x71, 0x75, 0x69, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x65, 0x71, 0x75, 0x69, 0x70, 0x12, 0x1c, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x44, - 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x12, 0x0a, 0x10, - 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x55, 0x70, 0x52, 0x65, 0x71, - 0x22, 0x31, 0x0a, 0x11, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x55, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5b, 0x0a, 0x13, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, + 0x46, 0x6f, 0x72, 0x67, 0x65, 0x45, 0x71, 0x75, 0x69, 0x70, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, + 0x65, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x61, 0x76, 0x61, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x61, 0x76, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, + 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, + 0x69, 0x74, 0x79, 0x22, 0x4a, 0x0a, 0x14, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x46, 0x6f, 0x72, + 0x67, 0x65, 0x45, 0x71, 0x75, 0x69, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x71, 0x75, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x65, 0x71, 0x75, 0x69, + 0x70, 0x12, 0x1c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x08, 0x2e, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x79, 0x0a, 0x13, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x45, 0x71, + 0x75, 0x69, 0x70, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x69, 0x74, 0x65, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, + 0x6c, 0x61, 0x76, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x61, 0x76, 0x61, + 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x22, 0x4a, 0x0a, 0x14, 0x53, 0x6d, + 0x69, 0x74, 0x68, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x45, 0x71, 0x75, 0x69, 0x70, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x71, 0x75, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x65, 0x71, 0x75, 0x69, 0x70, 0x12, 0x1c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x12, 0x0a, 0x10, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, + 0x53, 0x74, 0x6f, 0x76, 0x65, 0x55, 0x70, 0x52, 0x65, 0x71, 0x22, 0x31, 0x0a, 0x11, 0x53, 0x6d, + 0x69, 0x74, 0x68, 0x79, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x55, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x1c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, + 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x3d, 0x0a, + 0x0d, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x52, 0x69, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, + 0x0a, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x2e, 0x0a, 0x0e, + 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x52, 0x69, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x44, + 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x22, 0x0a, 0x10, + 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x55, 0x70, 0x52, 0x65, 0x71, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, + 0x22, 0x31, 0x0a, 0x11, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x55, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0x3d, 0x0a, 0x0d, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x52, 0x69, 0x73, - 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x2e, 0x0a, 0x0e, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x52, 0x69, 0x73, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x22, 0x0a, 0x10, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x54, 0x6f, 0x6f, 0x6c, - 0x73, 0x55, 0x70, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x22, 0x31, 0x0a, 0x11, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, - 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x55, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x44, 0x42, 0x53, 0x74, - 0x6f, 0x76, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x6d, 0x69, - 0x74, 0x68, 0x79, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x65, - 0x71, 0x22, 0x38, 0x0a, 0x15, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x52, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x44, 0x42, 0x42, 0x75, 0x73, - 0x69, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x39, 0x0a, 0x11, 0x53, - 0x6d, 0x69, 0x74, 0x68, 0x79, 0x53, 0x65, 0x6c, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x35, 0x0a, 0x12, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, - 0x53, 0x65, 0x6c, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x44, 0x42, 0x42, - 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x39, 0x0a, - 0x14, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x21, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x6e, - 0x67, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x36, 0x0a, 0x15, 0x53, 0x6d, 0x69, 0x74, - 0x68, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x1d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x09, 0x2e, 0x44, 0x42, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x22, 0x14, 0x0a, 0x12, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x22, 0x34, 0x0a, 0x13, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x44, 0x42, - 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x32, 0x0a, 0x14, - 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, - 0x76, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x36, 0x0a, 0x15, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x6b, - 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x44, 0x42, 0x53, 0x6d, 0x69, 0x74, - 0x68, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x17, 0x0a, 0x15, 0x53, 0x6d, 0x69, 0x74, - 0x68, 0x79, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x52, 0x65, - 0x71, 0x22, 0x37, 0x0a, 0x16, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x53, 0x74, 0x6f, 0x76, 0x65, - 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x71, 0x22, 0x36, 0x0a, 0x12, 0x53, 0x6d, 0x69, 0x74, + 0x68, 0x79, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, + 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x73, + 0x22, 0x41, 0x0a, 0x0d, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x53, 0x65, 0x6c, 0x6c, 0x52, 0x65, + 0x71, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x03, + 0x69, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, + 0x72, 0x49, 0x64, 0x22, 0x42, 0x0a, 0x0e, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x53, 0x65, 0x6c, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x39, 0x0a, 0x14, 0x53, 0x6d, 0x69, 0x74, 0x68, + 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, + 0x21, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x6e, 0x67, 0x52, 0x05, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x22, 0x36, 0x0a, 0x15, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x44, 0x42, 0x53, 0x6d, - 0x69, 0x74, 0x68, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2e, 0x0a, 0x14, 0x53, 0x6d, - 0x69, 0x74, 0x68, 0x79, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x22, 0x34, 0x0a, 0x15, 0x53, 0x6d, - 0x69, 0x74, 0x68, 0x79, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, - 0x22, 0x12, 0x0a, 0x10, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x22, 0x32, 0x0a, 0x11, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x47, 0x65, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x44, 0x42, 0x53, 0x6d, 0x69, 0x74, - 0x68, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x74, 0x68, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x14, 0x0a, 0x12, 0x53, 0x6d, + 0x69, 0x74, 0x68, 0x79, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, + 0x22, 0x34, 0x0a, 0x13, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x44, 0x42, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x32, 0x0a, 0x14, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, + 0x44, 0x65, 0x73, 0x6b, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x52, 0x65, 0x71, 0x12, 0x1a, + 0x0a, 0x08, 0x64, 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x64, 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x22, 0x36, 0x0a, 0x15, 0x53, 0x6d, + 0x69, 0x74, 0x68, 0x79, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x09, 0x2e, 0x44, 0x42, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x17, 0x0a, 0x15, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x53, 0x74, 0x6f, 0x76, + 0x65, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x52, 0x65, 0x71, 0x22, 0x37, 0x0a, 0x16, 0x53, + 0x6d, 0x69, 0x74, 0x68, 0x79, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, + 0x76, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x44, 0x42, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x2e, 0x0a, 0x14, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x47, 0x65, + 0x74, 0x52, 0x61, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, + 0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x65, + 0x6f, 0x70, 0x6c, 0x65, 0x22, 0x34, 0x0a, 0x15, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x47, 0x65, + 0x74, 0x52, 0x61, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, + 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x12, 0x0a, 0x10, 0x53, 0x6d, + 0x69, 0x74, 0x68, 0x79, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x32, + 0x0a, 0x11, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x09, 0x2e, 0x44, 0x42, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -1497,10 +1506,10 @@ var file_smithy_smithy_msg_proto_goTypes = []interface{}{ (*SmithyRiseResp)(nil), // 9: SmithyRiseResp (*SmithyToolsUpReq)(nil), // 10: SmithyToolsUpReq (*SmithyToolsUpResp)(nil), // 11: SmithyToolsUpResp - (*SmithyRefreshShopReq)(nil), // 12: SmithyRefreshShopReq - (*SmithyRefreshShopResp)(nil), // 13: SmithyRefreshShopResp - (*SmithySellItemReq)(nil), // 14: SmithySellItemReq - (*SmithySellItemResp)(nil), // 15: SmithySellItemResp + (*SmithyCustomerReq)(nil), // 12: SmithyCustomerReq + (*SmithyCustomerResp)(nil), // 13: SmithyCustomerResp + (*SmithySellReq)(nil), // 14: SmithySellReq + (*SmithySellResp)(nil), // 15: SmithySellResp (*SmithyCreateOrderReq)(nil), // 16: SmithyCreateOrderReq (*SmithyCreateOrderResp)(nil), // 17: SmithyCreateOrderResp (*SmithyGetRewardReq)(nil), // 18: SmithyGetRewardReq @@ -1514,10 +1523,9 @@ var file_smithy_smithy_msg_proto_goTypes = []interface{}{ (*SmithyGetListReq)(nil), // 26: SmithyGetListReq (*SmithyGetListResp)(nil), // 27: SmithyGetListResp (*DBStove)(nil), // 28: DBStove - (*DBBusiness)(nil), // 29: DBBusiness - (*OrderClang)(nil), // 30: OrderClang - (*DBSmithy)(nil), // 31: DBSmithy - (*DBUser)(nil), // 32: DBUser + (*OrderClang)(nil), // 29: OrderClang + (*DBSmithy)(nil), // 30: DBSmithy + (*DBUser)(nil), // 31: DBUser } var file_smithy_smithy_msg_proto_depIdxs = []int32{ 28, // 0: SmithyGetStoveInfoResp.data:type_name -> DBStove @@ -1526,20 +1534,18 @@ var file_smithy_smithy_msg_proto_depIdxs = []int32{ 28, // 3: SmithyStoveUpResp.data:type_name -> DBStove 28, // 4: SmithyRiseResp.data:type_name -> DBStove 28, // 5: SmithyToolsUpResp.data:type_name -> DBStove - 29, // 6: SmithyRefreshShopResp.data:type_name -> DBBusiness - 29, // 7: SmithySellItemResp.data:type_name -> DBBusiness - 30, // 8: SmithyCreateOrderReq.order:type_name -> OrderClang - 31, // 9: SmithyCreateOrderResp.data:type_name -> DBSmithy - 31, // 10: SmithyGetRewardResp.data:type_name -> DBSmithy - 31, // 11: SmithyDeskSkillLvResp.data:type_name -> DBSmithy - 31, // 12: SmithyStoveSkillLvResp.data:type_name -> DBSmithy - 32, // 13: SmithyGetRandUserResp.user:type_name -> DBUser - 31, // 14: SmithyGetListResp.data:type_name -> DBSmithy - 15, // [15:15] is the sub-list for method output_type - 15, // [15:15] is the sub-list for method input_type - 15, // [15:15] is the sub-list for extension type_name - 15, // [15:15] is the sub-list for extension extendee - 0, // [0:15] is the sub-list for field type_name + 29, // 6: SmithyCreateOrderReq.order:type_name -> OrderClang + 30, // 7: SmithyCreateOrderResp.data:type_name -> DBSmithy + 30, // 8: SmithyGetRewardResp.data:type_name -> DBSmithy + 30, // 9: SmithyDeskSkillLvResp.data:type_name -> DBSmithy + 30, // 10: SmithyStoveSkillLvResp.data:type_name -> DBSmithy + 31, // 11: SmithyGetRandUserResp.user:type_name -> DBUser + 30, // 12: SmithyGetListResp.data:type_name -> DBSmithy + 13, // [13:13] is the sub-list for method output_type + 13, // [13:13] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name } func init() { file_smithy_smithy_msg_proto_init() } @@ -1695,7 +1701,7 @@ func file_smithy_smithy_msg_proto_init() { } } file_smithy_smithy_msg_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SmithyRefreshShopReq); i { + switch v := v.(*SmithyCustomerReq); i { case 0: return &v.state case 1: @@ -1707,7 +1713,7 @@ func file_smithy_smithy_msg_proto_init() { } } file_smithy_smithy_msg_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SmithyRefreshShopResp); i { + switch v := v.(*SmithyCustomerResp); i { case 0: return &v.state case 1: @@ -1719,7 +1725,7 @@ func file_smithy_smithy_msg_proto_init() { } } file_smithy_smithy_msg_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SmithySellItemReq); i { + switch v := v.(*SmithySellReq); i { case 0: return &v.state case 1: @@ -1731,7 +1737,7 @@ func file_smithy_smithy_msg_proto_init() { } } file_smithy_smithy_msg_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SmithySellItemResp); i { + switch v := v.(*SmithySellResp); i { case 0: return &v.state case 1: diff --git a/sys/configure/structs/Game.NewSmithy.go b/sys/configure/structs/Game.NewSmithy.go new file mode 100644 index 000000000..02cb87f30 --- /dev/null +++ b/sys/configure/structs/Game.NewSmithy.go @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +type GameNewSmithy struct { + _dataMap map[int32]*GameNewSmithyData + _dataList []*GameNewSmithyData +} + +func NewGameNewSmithy(_buf []map[string]interface{}) (*GameNewSmithy, error) { + _dataList := make([]*GameNewSmithyData, 0, len(_buf)) + dataMap := make(map[int32]*GameNewSmithyData) + for _, _ele_ := range _buf { + if _v, err2 := DeserializeGameNewSmithyData(_ele_); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) + dataMap[_v.Id] = _v + } + } + return &GameNewSmithy{_dataList:_dataList, _dataMap:dataMap}, nil +} + +func (table *GameNewSmithy) GetDataMap() map[int32]*GameNewSmithyData { + return table._dataMap +} + +func (table *GameNewSmithy) GetDataList() []*GameNewSmithyData { + return table._dataList +} + +func (table *GameNewSmithy) Get(key int32) *GameNewSmithyData { + return table._dataMap[key] +} + + diff --git a/sys/configure/structs/Game.NewSmithyData.go b/sys/configure/structs/Game.NewSmithyData.go new file mode 100644 index 000000000..ff8c757ab --- /dev/null +++ b/sys/configure/structs/Game.NewSmithyData.go @@ -0,0 +1,58 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +import "errors" + +type GameNewSmithyData struct { + Id int32 + ItemId int32 + Type int32 + Consume []*Gameatn + Temperature int32 + Quality *Gameatn +} + +const TypeId_GameNewSmithyData = -1249020316 + +func (*GameNewSmithyData) GetTypeId() int32 { + return -1249020316 +} + +func (_v *GameNewSmithyData)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["item_id"].(float64); !_ok_ { err = errors.New("item_id error"); return }; _v.ItemId = 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 _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["consume"].([]interface{}); !_ok_ { err = errors.New("consume error"); return } + + _v.Consume = make([]*Gameatn, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ *Gameatn + { var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } } + _v.Consume = append(_v.Consume, _list_v_) + } + } + + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["temperature"].(float64); !_ok_ { err = errors.New("temperature error"); return }; _v.Temperature = int32(_tempNum_) } + { var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["quality"].(map[string]interface{}); !_ok_ { err = errors.New("quality error"); return }; if _v.Quality, err = DeserializeGameatn(_x_); err != nil { return } } + return +} + +func DeserializeGameNewSmithyData(_buf map[string]interface{}) (*GameNewSmithyData, error) { + v := &GameNewSmithyData{} + if err := v.Deserialize(_buf); err == nil { + return v, nil + } else { + return nil, err + } +} diff --git a/sys/configure/structs/Game.SmithyCustomer.go b/sys/configure/structs/Game.SmithyCustomer.go new file mode 100644 index 000000000..64362a62a --- /dev/null +++ b/sys/configure/structs/Game.SmithyCustomer.go @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +type GameSmithyCustomer struct { + _dataMap map[int32]*GameSmithyCustomerData + _dataList []*GameSmithyCustomerData +} + +func NewGameSmithyCustomer(_buf []map[string]interface{}) (*GameSmithyCustomer, error) { + _dataList := make([]*GameSmithyCustomerData, 0, len(_buf)) + dataMap := make(map[int32]*GameSmithyCustomerData) + for _, _ele_ := range _buf { + if _v, err2 := DeserializeGameSmithyCustomerData(_ele_); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) + dataMap[_v.CustomerId] = _v + } + } + return &GameSmithyCustomer{_dataList:_dataList, _dataMap:dataMap}, nil +} + +func (table *GameSmithyCustomer) GetDataMap() map[int32]*GameSmithyCustomerData { + return table._dataMap +} + +func (table *GameSmithyCustomer) GetDataList() []*GameSmithyCustomerData { + return table._dataList +} + +func (table *GameSmithyCustomer) Get(key int32) *GameSmithyCustomerData { + return table._dataMap[key] +} + + diff --git a/sys/configure/structs/Game.SmithyCustomerData.go b/sys/configure/structs/Game.SmithyCustomerData.go new file mode 100644 index 000000000..837eda3fb --- /dev/null +++ b/sys/configure/structs/Game.SmithyCustomerData.go @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +import "errors" + +type GameSmithyCustomerData struct { + CustomerId int32 + CustomerType int32 + CustomerSpeak string + Goods []*Gameatn + Reword []*Gameatn + Weight int32 +} + +const TypeId_GameSmithyCustomerData = 1314583578 + +func (*GameSmithyCustomerData) GetTypeId() int32 { + return 1314583578 +} + +func (_v *GameSmithyCustomerData)Deserialize(_buf map[string]interface{}) (err error) { + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["customer_id"].(float64); !_ok_ { err = errors.New("customer_id error"); return }; _v.CustomerId = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["customer_type"].(float64); !_ok_ { err = errors.New("customer_type error"); return }; _v.CustomerType = int32(_tempNum_) } + {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["customer_speak"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.CustomerSpeak error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.CustomerSpeak, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["goods"].([]interface{}); !_ok_ { err = errors.New("goods error"); return } + + _v.Goods = make([]*Gameatn, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ *Gameatn + { var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } } + _v.Goods = append(_v.Goods, _list_v_) + } + } + + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["reword"].([]interface{}); !_ok_ { err = errors.New("reword error"); return } + + _v.Reword = make([]*Gameatn, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ *Gameatn + { var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } } + _v.Reword = append(_v.Reword, _list_v_) + } + } + + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["weight"].(float64); !_ok_ { err = errors.New("weight error"); return }; _v.Weight = int32(_tempNum_) } + return +} + +func DeserializeGameSmithyCustomerData(_buf map[string]interface{}) (*GameSmithyCustomerData, error) { + v := &GameSmithyCustomerData{} + if err := v.Deserialize(_buf); err == nil { + return v, nil + } else { + return nil, err + } +} diff --git a/sys/configure/structs/Game.SmithyProficiency.go b/sys/configure/structs/Game.SmithyProficiency.go new file mode 100644 index 000000000..028d83ad8 --- /dev/null +++ b/sys/configure/structs/Game.SmithyProficiency.go @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +type GameSmithyProficiency struct { + _dataMap map[int32]*GameSmithyProficiencyData + _dataList []*GameSmithyProficiencyData +} + +func NewGameSmithyProficiency(_buf []map[string]interface{}) (*GameSmithyProficiency, error) { + _dataList := make([]*GameSmithyProficiencyData, 0, len(_buf)) + dataMap := make(map[int32]*GameSmithyProficiencyData) + for _, _ele_ := range _buf { + if _v, err2 := DeserializeGameSmithyProficiencyData(_ele_); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) + dataMap[_v.Id] = _v + } + } + return &GameSmithyProficiency{_dataList:_dataList, _dataMap:dataMap}, nil +} + +func (table *GameSmithyProficiency) GetDataMap() map[int32]*GameSmithyProficiencyData { + return table._dataMap +} + +func (table *GameSmithyProficiency) GetDataList() []*GameSmithyProficiencyData { + return table._dataList +} + +func (table *GameSmithyProficiency) Get(key int32) *GameSmithyProficiencyData { + return table._dataMap[key] +} + + diff --git a/sys/configure/structs/Game.SmithyProficiencyData.go b/sys/configure/structs/Game.SmithyProficiencyData.go new file mode 100644 index 000000000..996f2ef40 --- /dev/null +++ b/sys/configure/structs/Game.SmithyProficiencyData.go @@ -0,0 +1,51 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +import "errors" + +type GameSmithyProficiencyData struct { + Id int32 + Proficiency int32 + ReelId int32 + ProficiencyLv int32 + TitleText string + ContentText string + Type int32 + Value1 int32 + Value2 int32 +} + +const TypeId_GameSmithyProficiencyData = -1024047859 + +func (*GameSmithyProficiencyData) GetTypeId() int32 { + return -1024047859 +} + +func (_v *GameSmithyProficiencyData)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["proficiency"].(float64); !_ok_ { err = errors.New("proficiency error"); return }; _v.Proficiency = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["reelId"].(float64); !_ok_ { err = errors.New("reelId error"); return }; _v.ReelId = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["proficiency_lv"].(float64); !_ok_ { err = errors.New("proficiency_lv error"); return }; _v.ProficiencyLv = int32(_tempNum_) } + {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["title_text"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.TitleText error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.TitleText, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } + {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["content_text"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.ContentText error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.ContentText, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } + { 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["value1"].(float64); !_ok_ { err = errors.New("value1 error"); return }; _v.Value1 = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["value2"].(float64); !_ok_ { err = errors.New("value2 error"); return }; _v.Value2 = int32(_tempNum_) } + return +} + +func DeserializeGameSmithyProficiencyData(_buf map[string]interface{}) (*GameSmithyProficiencyData, error) { + v := &GameSmithyProficiencyData{} + if err := v.Deserialize(_buf); err == nil { + return v, nil + } else { + return nil, err + } +} diff --git a/sys/configure/structs/Game.SmithyStoveV1.go b/sys/configure/structs/Game.SmithyStoveV1.go new file mode 100644 index 000000000..3f017af1c --- /dev/null +++ b/sys/configure/structs/Game.SmithyStoveV1.go @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +type GameSmithyStoveV1 struct { + _dataMap map[int32]*GameSmithyStoveV1Data + _dataList []*GameSmithyStoveV1Data +} + +func NewGameSmithyStoveV1(_buf []map[string]interface{}) (*GameSmithyStoveV1, error) { + _dataList := make([]*GameSmithyStoveV1Data, 0, len(_buf)) + dataMap := make(map[int32]*GameSmithyStoveV1Data) + for _, _ele_ := range _buf { + if _v, err2 := DeserializeGameSmithyStoveV1Data(_ele_); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) + dataMap[_v.Star] = _v + } + } + return &GameSmithyStoveV1{_dataList:_dataList, _dataMap:dataMap}, nil +} + +func (table *GameSmithyStoveV1) GetDataMap() map[int32]*GameSmithyStoveV1Data { + return table._dataMap +} + +func (table *GameSmithyStoveV1) GetDataList() []*GameSmithyStoveV1Data { + return table._dataList +} + +func (table *GameSmithyStoveV1) Get(key int32) *GameSmithyStoveV1Data { + return table._dataMap[key] +} + + diff --git a/sys/configure/structs/Game.SmithyStoveV1Data.go b/sys/configure/structs/Game.SmithyStoveV1Data.go new file mode 100644 index 000000000..9c6272f48 --- /dev/null +++ b/sys/configure/structs/Game.SmithyStoveV1Data.go @@ -0,0 +1,56 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +import "errors" + +type GameSmithyStoveV1Data struct { + Star int32 + MaxTemperature int32 + TemperatureRecovery int32 + UpMaterial []*Gameatn + TitleText string +} + +const TypeId_GameSmithyStoveV1Data = -1332837680 + +func (*GameSmithyStoveV1Data) GetTypeId() int32 { + return -1332837680 +} + +func (_v *GameSmithyStoveV1Data)Deserialize(_buf map[string]interface{}) (err error) { + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["star"].(float64); !_ok_ { err = errors.New("star error"); return }; _v.Star = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["max_temperature"].(float64); !_ok_ { err = errors.New("max_temperature error"); return }; _v.MaxTemperature = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["temperature_recovery"].(float64); !_ok_ { err = errors.New("temperature_recovery error"); return }; _v.TemperatureRecovery = int32(_tempNum_) } + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["up_material"].([]interface{}); !_ok_ { err = errors.New("up_material error"); return } + + _v.UpMaterial = make([]*Gameatn, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ *Gameatn + { var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } } + _v.UpMaterial = append(_v.UpMaterial, _list_v_) + } + } + + {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["title_text"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.TitleText error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.TitleText, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } + return +} + +func DeserializeGameSmithyStoveV1Data(_buf map[string]interface{}) (*GameSmithyStoveV1Data, error) { + v := &GameSmithyStoveV1Data{} + if err := v.Deserialize(_buf); err == nil { + return v, nil + } else { + return nil, err + } +} diff --git a/sys/configure/structs/Game.SmithyTool.go b/sys/configure/structs/Game.SmithyTool.go new file mode 100644 index 000000000..8aa538c9d --- /dev/null +++ b/sys/configure/structs/Game.SmithyTool.go @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +type GameSmithyTool struct { + _dataMap map[int32]*GameSmithyToolData + _dataList []*GameSmithyToolData +} + +func NewGameSmithyTool(_buf []map[string]interface{}) (*GameSmithyTool, error) { + _dataList := make([]*GameSmithyToolData, 0, len(_buf)) + dataMap := make(map[int32]*GameSmithyToolData) + for _, _ele_ := range _buf { + if _v, err2 := DeserializeGameSmithyToolData(_ele_); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) + dataMap[_v.Id] = _v + } + } + return &GameSmithyTool{_dataList:_dataList, _dataMap:dataMap}, nil +} + +func (table *GameSmithyTool) GetDataMap() map[int32]*GameSmithyToolData { + return table._dataMap +} + +func (table *GameSmithyTool) GetDataList() []*GameSmithyToolData { + return table._dataList +} + +func (table *GameSmithyTool) Get(key int32) *GameSmithyToolData { + return table._dataMap[key] +} + + diff --git a/sys/configure/structs/Game.SmithyToolData.go b/sys/configure/structs/Game.SmithyToolData.go new file mode 100644 index 000000000..0449033f9 --- /dev/null +++ b/sys/configure/structs/Game.SmithyToolData.go @@ -0,0 +1,62 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +import "errors" + +type GameSmithyToolData struct { + Id int32 + SkillType int32 + SkillLv int32 + Preconditions int32 + UpMaterial []*Gameatn + NameText string + ContentText string + Value int32 +} + +const TypeId_GameSmithyToolData = -2056914476 + +func (*GameSmithyToolData) GetTypeId() int32 { + return -2056914476 +} + +func (_v *GameSmithyToolData)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["skill_type"].(float64); !_ok_ { err = errors.New("skill_type error"); return }; _v.SkillType = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skill_lv"].(float64); !_ok_ { err = errors.New("skill_lv error"); return }; _v.SkillLv = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["preconditions"].(float64); !_ok_ { err = errors.New("preconditions error"); return }; _v.Preconditions = int32(_tempNum_) } + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["up_material"].([]interface{}); !_ok_ { err = errors.New("up_material error"); return } + + _v.UpMaterial = make([]*Gameatn, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ *Gameatn + { var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } } + _v.UpMaterial = append(_v.UpMaterial, _list_v_) + } + } + + {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["name_text"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.NameText error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.NameText, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } + {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["content_text"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.ContentText error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.ContentText, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["value"].(float64); !_ok_ { err = errors.New("value error"); return }; _v.Value = int32(_tempNum_) } + return +} + +func DeserializeGameSmithyToolData(_buf map[string]interface{}) (*GameSmithyToolData, error) { + v := &GameSmithyToolData{} + if err := v.Deserialize(_buf); err == nil { + return v, nil + } else { + return nil, err + } +} diff --git a/sys/configure/structs/Game.TrollGoodsData.go b/sys/configure/structs/Game.TrollGoodsData.go index 856d2d27a..ae3323e3e 100644 --- a/sys/configure/structs/Game.TrollGoodsData.go +++ b/sys/configure/structs/Game.TrollGoodsData.go @@ -31,14 +31,14 @@ func (*GameTrollGoodsData) GetTypeId() int32 { func (_v *GameTrollGoodsData)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; if _v.Goodsname, _ok_ = _buf["goodsname"].(string); !_ok_ { err = errors.New("goodsname error"); return } } + {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["goodsname"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Goodsname error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Goodsname, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["goodsfor"].(float64); !_ok_ { err = errors.New("goodsfor error"); return }; _v.Goodsfor = int32(_tempNum_) } - { var _ok_ bool; if _v.Goodsinfor, _ok_ = _buf["goodsinfor"].(string); !_ok_ { err = errors.New("goodsinfor error"); return } } + {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["goodsinfor"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Goodsinfor error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Goodsinfor, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } { var _ok_ bool; if _v.Goodsicon, _ok_ = _buf["goodsicon"].(string); !_ok_ { err = errors.New("goodsicon error"); return } } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["goodsprice"].(float64); !_ok_ { err = errors.New("goodsprice error"); return }; _v.Goodsprice = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["star_money"].(float64); !_ok_ { err = errors.New("star_money error"); return }; _v.StarMoney = int32(_tempNum_) } - { var _ok_ bool; if _v.Uptext, _ok_ = _buf["uptext"].(string); !_ok_ { err = errors.New("uptext error"); return } } - { var _ok_ bool; if _v.Suptext, _ok_ = _buf["suptext"].(string); !_ok_ { err = errors.New("suptext error"); return } } + {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["uptext"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Uptext error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Uptext, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } + {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["suptext"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Suptext error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Suptext, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["max"].(float64); !_ok_ { err = errors.New("max error"); return }; _v.Max = int32(_tempNum_) } return } diff --git a/sys/configure/structs/Game.WorldTaskData.go b/sys/configure/structs/Game.WorldTaskData.go index 5a75bbb7b..82ee4ef1a 100644 --- a/sys/configure/structs/Game.WorldTaskData.go +++ b/sys/configure/structs/Game.WorldTaskData.go @@ -18,6 +18,9 @@ type GameWorldTaskData struct { Group int32 Des int32 Icon string + TaskTname string + TaskName string + TaskDisplay string Npc []string GetafterEvent []int32 Completetask int32 @@ -40,6 +43,9 @@ func (_v *GameWorldTaskData)Deserialize(_buf map[string]interface{}) (err error) { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["group"].(float64); !_ok_ { err = errors.New("group error"); return }; _v.Group = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["des"].(float64); !_ok_ { err = errors.New("des error"); return }; _v.Des = int32(_tempNum_) } { var _ok_ bool; if _v.Icon, _ok_ = _buf["icon"].(string); !_ok_ { err = errors.New("icon error"); return } } + {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["task_Tname"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.TaskTname error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.TaskTname, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } + {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["task_name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.TaskName error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.TaskName, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } + {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["task_display"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.TaskDisplay error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.TaskDisplay, _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.pandsmasexp.go b/sys/configure/structs/Game.pandsmasexp.go new file mode 100644 index 000000000..669833432 --- /dev/null +++ b/sys/configure/structs/Game.pandsmasexp.go @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +type Gamepandsmasexp struct { + _dataMap map[int32]*GamepandsmasexpData + _dataList []*GamepandsmasexpData +} + +func NewGamepandsmasexp(_buf []map[string]interface{}) (*Gamepandsmasexp, error) { + _dataList := make([]*GamepandsmasexpData, 0, len(_buf)) + dataMap := make(map[int32]*GamepandsmasexpData) + for _, _ele_ := range _buf { + if _v, err2 := DeserializeGamepandsmasexpData(_ele_); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) + dataMap[_v.Id] = _v + } + } + return &Gamepandsmasexp{_dataList:_dataList, _dataMap:dataMap}, nil +} + +func (table *Gamepandsmasexp) GetDataMap() map[int32]*GamepandsmasexpData { + return table._dataMap +} + +func (table *Gamepandsmasexp) GetDataList() []*GamepandsmasexpData { + return table._dataList +} + +func (table *Gamepandsmasexp) Get(key int32) *GamepandsmasexpData { + return table._dataMap[key] +} + + diff --git a/sys/configure/structs/Game.pandsmasexpData.go b/sys/configure/structs/Game.pandsmasexpData.go new file mode 100644 index 000000000..5ad352ff6 --- /dev/null +++ b/sys/configure/structs/Game.pandsmasexpData.go @@ -0,0 +1,143 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +import "errors" + +type GamepandsmasexpData struct { + Id int32 + Bossid int32 + Name string + ReadyID int32 + Difficulty int32 + BattleReadyID int32 + Captionrecommend []int32 + Firstprize []*Gameatn + Dropshow []*Gameatn + Drop int32 + Scene string + Bossmodel int32 + BossSkill int32 + Boss []int32 + PsConsume []*Gameatn + PsMg []*Gameatn +} + +const TypeId_GamepandsmasexpData = 192857656 + +func (*GamepandsmasexpData) GetTypeId() int32 { + return 192857656 +} + +func (_v *GamepandsmasexpData)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["bossid"].(float64); !_ok_ { err = errors.New("bossid error"); return }; _v.Bossid = int32(_tempNum_) } + {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Name error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Name, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["ReadyID"].(float64); !_ok_ { err = errors.New("ReadyID error"); return }; _v.ReadyID = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["difficulty"].(float64); !_ok_ { err = errors.New("difficulty error"); return }; _v.Difficulty = 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 _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["captionrecommend"].([]interface{}); !_ok_ { err = errors.New("captionrecommend error"); return } + + _v.Captionrecommend = make([]int32, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ int32 + { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) } + _v.Captionrecommend = append(_v.Captionrecommend, _list_v_) + } + } + + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["firstprize"].([]interface{}); !_ok_ { err = errors.New("firstprize error"); return } + + _v.Firstprize = make([]*Gameatn, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ *Gameatn + { var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } } + _v.Firstprize = append(_v.Firstprize, _list_v_) + } + } + + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["dropshow"].([]interface{}); !_ok_ { err = errors.New("dropshow error"); return } + + _v.Dropshow = make([]*Gameatn, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ *Gameatn + { var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } } + _v.Dropshow = append(_v.Dropshow, _list_v_) + } + } + + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["drop"].(float64); !_ok_ { err = errors.New("drop error"); return }; _v.Drop = int32(_tempNum_) } + { var _ok_ bool; if _v.Scene, _ok_ = _buf["scene"].(string); !_ok_ { err = errors.New("scene error"); return } } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["bossmodel"].(float64); !_ok_ { err = errors.New("bossmodel error"); return }; _v.Bossmodel = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["boss_skill"].(float64); !_ok_ { err = errors.New("boss_skill error"); return }; _v.BossSkill = int32(_tempNum_) } + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["boss"].([]interface{}); !_ok_ { err = errors.New("boss error"); return } + + _v.Boss = make([]int32, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ int32 + { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) } + _v.Boss = append(_v.Boss, _list_v_) + } + } + + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["ps_consume"].([]interface{}); !_ok_ { err = errors.New("ps_consume error"); return } + + _v.PsConsume = make([]*Gameatn, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ *Gameatn + { var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } } + _v.PsConsume = append(_v.PsConsume, _list_v_) + } + } + + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["ps_mg"].([]interface{}); !_ok_ { err = errors.New("ps_mg error"); return } + + _v.PsMg = make([]*Gameatn, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ *Gameatn + { var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } } + _v.PsMg = append(_v.PsMg, _list_v_) + } + } + + return +} + +func DeserializeGamepandsmasexpData(_buf map[string]interface{}) (*GamepandsmasexpData, error) { + v := &GamepandsmasexpData{} + if err := v.Deserialize(_buf); err == nil { + return v, nil + } else { + return nil, err + } +} diff --git a/sys/configure/structs/Tables.go b/sys/configure/structs/Tables.go index 08f904c55..d2557223b 100644 --- a/sys/configure/structs/Tables.go +++ b/sys/configure/structs/Tables.go @@ -159,6 +159,12 @@ type Tables struct { MainStartype *GameMainStartype Battletasktesting *GameBattletasktesting BattleReady *GameBattleReady + NewSmithy *GameNewSmithy + SmithyProficiency *GameSmithyProficiency + SmithyStoveV1 *GameSmithyStoveV1 + SmithyTool *GameSmithyTool + pandsmasexp *Gamepandsmasexp + SmithyCustomer *GameSmithyCustomer } func NewTables(loader JsonLoader) (*Tables, error) { @@ -1054,5 +1060,41 @@ func NewTables(loader JsonLoader) (*Tables, error) { if tables.BattleReady, err = NewGameBattleReady(buf) ; err != nil { return nil, err } + if buf, err = loader("game_newsmithy") ; err != nil { + return nil, err + } + if tables.NewSmithy, err = NewGameNewSmithy(buf) ; err != nil { + return nil, err + } + if buf, err = loader("game_smithyproficiency") ; err != nil { + return nil, err + } + if tables.SmithyProficiency, err = NewGameSmithyProficiency(buf) ; err != nil { + return nil, err + } + if buf, err = loader("game_smithystovev1") ; err != nil { + return nil, err + } + if tables.SmithyStoveV1, err = NewGameSmithyStoveV1(buf) ; err != nil { + return nil, err + } + if buf, err = loader("game_smithytool") ; err != nil { + return nil, err + } + if tables.SmithyTool, err = NewGameSmithyTool(buf) ; err != nil { + return nil, err + } + if buf, err = loader("game_pandsmasexp") ; err != nil { + return nil, err + } + if tables.pandsmasexp, err = NewGamepandsmasexp(buf) ; err != nil { + return nil, err + } + if buf, err = loader("game_smithycustomer") ; err != nil { + return nil, err + } + if tables.SmithyCustomer, err = NewGameSmithyCustomer(buf) ; err != nil { + return nil, err + } return tables, nil }