diff --git a/assets/serverdata/accessoryTab.json b/assets/serverdata/accessoryTab.json deleted file mode 100644 index 6c790c1..0000000 --- a/assets/serverdata/accessoryTab.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "result": { - "tab_list": [ - { - "tab_name": "μ’s", - "asset_list": [ - { - "unit_type_id": 1, - "asset_path": "assets/image/accessory/list/list_1.png" - }, - { - "unit_type_id": 2, - "asset_path": "assets/image/accessory/list/list_2.png" - }, - { - "unit_type_id": 3, - "asset_path": "assets/image/accessory/list/list_3.png" - }, - { - "unit_type_id": 4, - "asset_path": "assets/image/accessory/list/list_4.png" - }, - { - "unit_type_id": 5, - "asset_path": "assets/image/accessory/list/list_5.png" - }, - { - "unit_type_id": 6, - "asset_path": "assets/image/accessory/list/list_6.png" - }, - { - "unit_type_id": 7, - "asset_path": "assets/image/accessory/list/list_7.png" - }, - { - "unit_type_id": 8, - "asset_path": "assets/image/accessory/list/list_8.png" - }, - { - "unit_type_id": 9, - "asset_path": "assets/image/accessory/list/list_9.png" - } - ] - }, - { - "tab_name": "Aqours", - "asset_list": [ - { - "unit_type_id": 101, - "asset_path": "assets/image/accessory/list/list_10.png" - }, - { - "unit_type_id": 102, - "asset_path": "assets/image/accessory/list/list_11.png" - }, - { - "unit_type_id": 103, - "asset_path": "assets/image/accessory/list/list_12.png" - }, - { - "unit_type_id": 104, - "asset_path": "assets/image/accessory/list/list_13.png" - }, - { - "unit_type_id": 105, - "asset_path": "assets/image/accessory/list/list_14.png" - }, - { - "unit_type_id": 106, - "asset_path": "assets/image/accessory/list/list_15.png" - }, - { - "unit_type_id": 107, - "asset_path": "assets/image/accessory/list/list_16.png" - }, - { - "unit_type_id": 108, - "asset_path": "assets/image/accessory/list/list_17.png" - }, - { - "unit_type_id": 109, - "asset_path": "assets/image/accessory/list/list_18.png" - } - ] - }, - { - "tab_name": "虹咲", - "asset_list": [ - { - "unit_type_id": 201, - "asset_path": "assets/image/accessory/list/list_24.png" - }, - { - "unit_type_id": 202, - "asset_path": "assets/image/accessory/list/list_25.png" - }, - { - "unit_type_id": 203, - "asset_path": "assets/image/accessory/list/list_26.png" - }, - { - "unit_type_id": 204, - "asset_path": "assets/image/accessory/list/list_27.png" - }, - { - "unit_type_id": 205, - "asset_path": "assets/image/accessory/list/list_28.png" - }, - { - "unit_type_id": 206, - "asset_path": "assets/image/accessory/list/list_29.png" - }, - { - "unit_type_id": 207, - "asset_path": "assets/image/accessory/list/list_30.png" - }, - { - "unit_type_id": 208, - "asset_path": "assets/image/accessory/list/list_31.png" - }, - { - "unit_type_id": 209, - "asset_path": "assets/image/accessory/list/list_32.png" - }, - { - "unit_type_id": 212, - "asset_path": "assets/image/accessory/list/list_33.png" - }, - { - "unit_type_id": 213, - "asset_path": "assets/image/accessory/list/list_34.png" - }, - { - "unit_type_id": 214, - "asset_path": "assets/image/accessory/list/list_35.png" - } - ] - }, - { - "tab_name": "Liella!", - "asset_list": [ - { - "unit_type_id": 301, - "asset_path": "assets/image/accessory/list/list_19.png" - }, - { - "unit_type_id": 302, - "asset_path": "assets/image/accessory/list/list_20.png" - }, - { - "unit_type_id": 303, - "asset_path": "assets/image/accessory/list/list_21.png" - }, - { - "unit_type_id": 304, - "asset_path": "assets/image/accessory/list/list_22.png" - }, - { - "unit_type_id": 305, - "asset_path": "assets/image/accessory/list/list_23.png" - }, - { - "unit_type_id": 306, - "asset_path": "assets/image/accessory/list/list_36.png" - }, - { - "unit_type_id": 307, - "asset_path": "assets/image/accessory/list/list_37.png" - }, - { - "unit_type_id": 308, - "asset_path": "assets/image/accessory/list/list_38.png" - }, - { - "unit_type_id": 309, - "asset_path": "assets/image/accessory/list/list_39.png" - } - ] - } - ] - }, - "status": 200, - "commandNum": false, - "timeStamp": 1679237529 -} diff --git a/assets/serverdata/accessory_tab_list.json b/assets/serverdata/accessory_tab_list.json new file mode 100644 index 0000000..9d7e314 --- /dev/null +++ b/assets/serverdata/accessory_tab_list.json @@ -0,0 +1,178 @@ +[ + { + "tab_name": "μ’s", + "asset_list": [ + { + "unit_type_id": 1, + "asset_path": "assets/image/accessory/list/list_1.png" + }, + { + "unit_type_id": 2, + "asset_path": "assets/image/accessory/list/list_2.png" + }, + { + "unit_type_id": 3, + "asset_path": "assets/image/accessory/list/list_3.png" + }, + { + "unit_type_id": 4, + "asset_path": "assets/image/accessory/list/list_4.png" + }, + { + "unit_type_id": 5, + "asset_path": "assets/image/accessory/list/list_5.png" + }, + { + "unit_type_id": 6, + "asset_path": "assets/image/accessory/list/list_6.png" + }, + { + "unit_type_id": 7, + "asset_path": "assets/image/accessory/list/list_7.png" + }, + { + "unit_type_id": 8, + "asset_path": "assets/image/accessory/list/list_8.png" + }, + { + "unit_type_id": 9, + "asset_path": "assets/image/accessory/list/list_9.png" + } + ] + }, + { + "tab_name": "Aqours", + "asset_list": [ + { + "unit_type_id": 101, + "asset_path": "assets/image/accessory/list/list_10.png" + }, + { + "unit_type_id": 102, + "asset_path": "assets/image/accessory/list/list_11.png" + }, + { + "unit_type_id": 103, + "asset_path": "assets/image/accessory/list/list_12.png" + }, + { + "unit_type_id": 104, + "asset_path": "assets/image/accessory/list/list_13.png" + }, + { + "unit_type_id": 105, + "asset_path": "assets/image/accessory/list/list_14.png" + }, + { + "unit_type_id": 106, + "asset_path": "assets/image/accessory/list/list_15.png" + }, + { + "unit_type_id": 107, + "asset_path": "assets/image/accessory/list/list_16.png" + }, + { + "unit_type_id": 108, + "asset_path": "assets/image/accessory/list/list_17.png" + }, + { + "unit_type_id": 109, + "asset_path": "assets/image/accessory/list/list_18.png" + } + ] + }, + { + "tab_name": "虹咲", + "asset_list": [ + { + "unit_type_id": 201, + "asset_path": "assets/image/accessory/list/list_24.png" + }, + { + "unit_type_id": 202, + "asset_path": "assets/image/accessory/list/list_25.png" + }, + { + "unit_type_id": 203, + "asset_path": "assets/image/accessory/list/list_26.png" + }, + { + "unit_type_id": 204, + "asset_path": "assets/image/accessory/list/list_27.png" + }, + { + "unit_type_id": 205, + "asset_path": "assets/image/accessory/list/list_28.png" + }, + { + "unit_type_id": 206, + "asset_path": "assets/image/accessory/list/list_29.png" + }, + { + "unit_type_id": 207, + "asset_path": "assets/image/accessory/list/list_30.png" + }, + { + "unit_type_id": 208, + "asset_path": "assets/image/accessory/list/list_31.png" + }, + { + "unit_type_id": 209, + "asset_path": "assets/image/accessory/list/list_32.png" + }, + { + "unit_type_id": 212, + "asset_path": "assets/image/accessory/list/list_33.png" + }, + { + "unit_type_id": 213, + "asset_path": "assets/image/accessory/list/list_34.png" + }, + { + "unit_type_id": 214, + "asset_path": "assets/image/accessory/list/list_35.png" + } + ] + }, + { + "tab_name": "Liella!", + "asset_list": [ + { + "unit_type_id": 301, + "asset_path": "assets/image/accessory/list/list_19.png" + }, + { + "unit_type_id": 302, + "asset_path": "assets/image/accessory/list/list_20.png" + }, + { + "unit_type_id": 303, + "asset_path": "assets/image/accessory/list/list_21.png" + }, + { + "unit_type_id": 304, + "asset_path": "assets/image/accessory/list/list_22.png" + }, + { + "unit_type_id": 305, + "asset_path": "assets/image/accessory/list/list_23.png" + }, + { + "unit_type_id": 306, + "asset_path": "assets/image/accessory/list/list_36.png" + }, + { + "unit_type_id": 307, + "asset_path": "assets/image/accessory/list/list_37.png" + }, + { + "unit_type_id": 308, + "asset_path": "assets/image/accessory/list/list_38.png" + }, + { + "unit_type_id": 309, + "asset_path": "assets/image/accessory/list/list_39.png" + } + ] + } +] diff --git a/assets/serverdata/love.json b/assets/serverdata/card_ranking_data.json similarity index 100% rename from assets/serverdata/love.json rename to assets/serverdata/card_ranking_data.json diff --git a/assets/serverdata/item.json b/assets/serverdata/item.json deleted file mode 100644 index f50ad56..0000000 --- a/assets/serverdata/item.json +++ /dev/null @@ -1,2185 +0,0 @@ -{ - "result": { - "general_item_list": [ - { - "item_id": 1, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 5, - "amount": 3, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 8, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 9, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 10, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 11, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 12, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 13, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 14, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 15, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 19, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 20, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 23, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 24, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 25, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 28, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 30, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 31, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 51, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 53, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 56, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 59, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 67, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 69, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 72, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 74, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 92, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 93, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 126, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 129, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 146, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 147, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 168, - "amount": 815, - "use_button_flag": false, - "general_item_type": 3 - }, - { - "item_id": 188, - "amount": 40, - "use_button_flag": false, - "general_item_type": 7 - }, - { - "item_id": 189, - "amount": 54, - "use_button_flag": false, - "general_item_type": 7 - }, - { - "item_id": 190, - "amount": 96, - "use_button_flag": false, - "general_item_type": 7 - }, - { - "item_id": 191, - "amount": 246, - "use_button_flag": false, - "general_item_type": 7 - }, - { - "item_id": 192, - "amount": 0, - "use_button_flag": true, - "general_item_type": 7 - }, - { - "item_id": 193, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 214, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 256, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 353, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 395, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 412, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 422, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 423, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 424, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 1000, - "amount": 66, - "use_button_flag": false, - "general_item_type": 3 - }, - { - "item_id": 1200, - "amount": 702, - "use_button_flag": true, - "general_item_type": 2 - }, - { - "item_id": 10001, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 10003, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 10004, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 10005, - "amount": 0, - "use_button_flag": false, - "general_item_type": 3 - }, - { - "item_id": 10006, - "amount": 0, - "use_button_flag": false, - "general_item_type": 3 - }, - { - "item_id": 10007, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 10008, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 10010, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 10012, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 10015, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 10017, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 10019, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 10020, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 10022, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 10023, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 10024, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 10026, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 10031, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 10032, - "amount": 0, - "use_button_flag": true, - "general_item_type": 1 - }, - { - "item_id": 10047, - "amount": 0, - "use_button_flag": false, - "general_item_type": 3 - }, - { - "item_id": 10048, - "amount": 0, - "use_button_flag": false, - "general_item_type": 3 - }, - { - "item_id": 10053, - "amount": 1, - "use_button_flag": false, - "general_item_type": 3 - }, - { - "item_id": 10066, - "amount": 4, - "use_button_flag": false, - "general_item_type": 3 - }, - { - "item_id": 10067, - "amount": 0, - "use_button_flag": false, - "general_item_type": 3 - }, - { - "item_id": 10074, - "amount": 0, - "use_button_flag": false, - "general_item_type": 3 - }, - { - "item_id": 10090, - "amount": 0, - "use_button_flag": false, - "general_item_type": 3 - }, - { - "item_id": 10093, - "amount": 0, - "use_button_flag": false, - "general_item_type": 3 - }, - { - "item_id": 14001, - "amount": 0, - "use_button_flag": true, - "general_item_type": 4 - } - ], - "buff_item_list": [ - { - "item_id": 61, - "amount": 129, - "buff_type": 1 - }, - { - "item_id": 62, - "amount": 284, - "buff_type": 2 - }, - { - "item_id": 63, - "amount": 322, - "buff_type": 3 - }, - { - "item_id": 277, - "amount": 0, - "buff_type": 1 - } - ], - "reinforce_item_list": [ - { - "item_id": 94, - "reinforce_type": 1, - "addition_value": 12000, - "amount": 0, - "event_id": 154 - }, - { - "item_id": 95, - "reinforce_type": 2, - "addition_value": 100, - "amount": 0, - "event_id": 154 - }, - { - "item_id": 173, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 174, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 179, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 180, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 181, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 182, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 186, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 187, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 194, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 195, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 196, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 197, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 216, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 217, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 247, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 248, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 250, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 265, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 267, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 268, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 269, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 280, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 281, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 282, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 283, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 284, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 285, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 313, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 314, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 315, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 316, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 317, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 344, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 345, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 346, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 347, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - }, - { - "item_id": 348, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "event_id": 0 - } - ], - "reinforce_info": { - "154": { - "event_id": 154, - "item_list": [ - { - "unit_reinforce_item_id": 94, - "reinforce_type": 1, - "addition_value": 12000, - "amount": 0, - "target_unit_ids": [ - 2172, - 2173, - 2174, - 2175, - 2176, - 2177, - 2178, - 2179, - 2180 - ] - }, - { - "unit_reinforce_item_id": 95, - "reinforce_type": 2, - "addition_value": 100, - "amount": 0, - "target_unit_ids": [ - 2172, - 2173, - 2174, - 2175, - 2176, - 2177, - 2178, - 2179, - 2180 - ] - } - ] - }, - "0": { - "event_id": 0, - "item_list": [ - { - "unit_reinforce_item_id": 173, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2456 - ] - }, - { - "unit_reinforce_item_id": 174, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2470 - ] - }, - { - "unit_reinforce_item_id": 179, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2484 - ] - }, - { - "unit_reinforce_item_id": 180, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2499 - ] - }, - { - "unit_reinforce_item_id": 181, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2505 - ] - }, - { - "unit_reinforce_item_id": 182, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2516 - ] - }, - { - "unit_reinforce_item_id": 186, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2530 - ] - }, - { - "unit_reinforce_item_id": 187, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2537 - ] - }, - { - "unit_reinforce_item_id": 194, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2552 - ] - }, - { - "unit_reinforce_item_id": 195, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2561 - ] - }, - { - "unit_reinforce_item_id": 196, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2572 - ] - }, - { - "unit_reinforce_item_id": 197, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2581 - ] - }, - { - "unit_reinforce_item_id": 216, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2610 - ] - }, - { - "unit_reinforce_item_id": 217, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2622 - ] - }, - { - "unit_reinforce_item_id": 247, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2633 - ] - }, - { - "unit_reinforce_item_id": 248, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2650 - ] - }, - { - "unit_reinforce_item_id": 250, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2668 - ] - }, - { - "unit_reinforce_item_id": 265, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2746 - ] - }, - { - "unit_reinforce_item_id": 267, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2813 - ] - }, - { - "unit_reinforce_item_id": 268, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2825 - ] - }, - { - "unit_reinforce_item_id": 269, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2838 - ] - }, - { - "unit_reinforce_item_id": 280, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2852 - ] - }, - { - "unit_reinforce_item_id": 281, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2865 - ] - }, - { - "unit_reinforce_item_id": 282, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2883 - ] - }, - { - "unit_reinforce_item_id": 283, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2939 - ] - }, - { - "unit_reinforce_item_id": 284, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2955 - ] - }, - { - "unit_reinforce_item_id": 285, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 2989 - ] - }, - { - "unit_reinforce_item_id": 313, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 3002 - ] - }, - { - "unit_reinforce_item_id": 314, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 3046 - ] - }, - { - "unit_reinforce_item_id": 315, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 3087 - ] - }, - { - "unit_reinforce_item_id": 316, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 3142 - ] - }, - { - "unit_reinforce_item_id": 317, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 3156 - ] - }, - { - "unit_reinforce_item_id": 344, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 3266 - ] - }, - { - "unit_reinforce_item_id": 345, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 3277 - ] - }, - { - "unit_reinforce_item_id": 346, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 3297 - ] - }, - { - "unit_reinforce_item_id": 347, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 3328 - ] - }, - { - "unit_reinforce_item_id": 348, - "reinforce_type": 5, - "addition_value": 1, - "amount": 0, - "target_unit_ids": [ - 3363 - ] - } - ], - "available_unit_list": [ - { - "unit_owning_user_id": 3135793218, - "unit_id": 2456, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2021-02-09 20:09:09", - "mark_id": 1, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3142917380, - "unit_id": 2470, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 12000, - "unit_skill_level": 6, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2021-02-27 23:51:25", - "mark_id": 1, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3145347826, - "unit_id": 2484, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2021-03-12 18:48:12", - "mark_id": 2, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3147394399, - "unit_id": 2499, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2021-03-26 20:52:54", - "mark_id": 1, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3150354041, - "unit_id": 2505, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2021-04-13 13:07:07", - "mark_id": 2, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3152307068, - "unit_id": 2516, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2021-04-27 20:42:38", - "mark_id": 2, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3155141216, - "unit_id": 2530, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2021-05-14 19:13:22", - "mark_id": 3, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3156621280, - "unit_id": 2537, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2021-05-28 22:53:14", - "mark_id": 3, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3159314608, - "unit_id": 2552, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2021-06-11 15:33:40", - "mark_id": 2, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3164197643, - "unit_id": 2561, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2021-06-26 00:33:00", - "mark_id": 2, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3168388895, - "unit_id": 2572, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2021-07-13 19:54:22", - "mark_id": 2, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3171462564, - "unit_id": 2581, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2021-08-01 07:40:06", - "mark_id": 1, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3174391075, - "unit_id": 2610, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2021-08-22 13:34:46", - "mark_id": 2, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3174915849, - "unit_id": 2622, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2021-08-27 20:01:42", - "mark_id": 1, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3176674517, - "unit_id": 2633, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2021-09-14 00:31:30", - "mark_id": 1, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3177923988, - "unit_id": 2650, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2021-09-28 21:32:33", - "mark_id": 3, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3180721019, - "unit_id": 2668, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2021-11-02 00:14:16", - "mark_id": 2, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3182775295, - "unit_id": 2746, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2021-11-26 22:29:07", - "mark_id": 2, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3187229005, - "unit_id": 2813, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2021-12-30 23:26:45", - "mark_id": 1, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3188405255, - "unit_id": 2825, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2022-01-13 12:56:05", - "mark_id": 1, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3189456906, - "unit_id": 2838, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2022-01-27 21:49:03", - "mark_id": 2, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3192435467, - "unit_id": 2852, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2022-02-11 23:18:26", - "mark_id": 3, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3194140021, - "unit_id": 2865, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2022-02-25 22:24:52", - "mark_id": 3, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3195140763, - "unit_id": 2883, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2022-03-12 13:15:56", - "mark_id": 2, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3196579726, - "unit_id": 2939, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2022-03-28 20:57:11", - "mark_id": 3, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3198224010, - "unit_id": 2955, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2022-04-14 23:22:00", - "mark_id": 1, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3199936088, - "unit_id": 2989, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2022-04-30 16:06:20", - "mark_id": 1, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3201932828, - "unit_id": 3002, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2022-05-16 20:21:48", - "mark_id": 1, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3203073345, - "unit_id": 3046, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2022-06-03 20:33:36", - "mark_id": 2, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3204973339, - "unit_id": 3087, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2022-06-16 19:52:32", - "mark_id": 3, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3207301290, - "unit_id": 3142, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2022-07-01 19:52:45", - "mark_id": 2, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3209028419, - "unit_id": 3156, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2022-07-15 19:43:27", - "mark_id": 3, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3213094348, - "unit_id": 3266, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2022-08-29 01:54:55", - "mark_id": 3, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3214559106, - "unit_id": 3277, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2022-09-20 12:53:55", - "mark_id": 1, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3215141263, - "unit_id": 3297, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2022-09-30 01:33:23", - "mark_id": 3, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3216855347, - "unit_id": 3328, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2022-10-14 22:28:19", - "mark_id": 1, - "sub_evaluation": 1925000 - }, - { - "unit_owning_user_id": 3218068575, - "unit_id": 3363, - "exp": 79700, - "next_exp": 0, - "level": 100, - "max_level": 100, - "level_limit_id": 1, - "rank": 2, - "max_rank": 2, - "love": 1000, - "max_love": 1000, - "unit_skill_exp": 0, - "unit_skill_level": 1, - "max_hp": 6, - "unit_removable_skill_capacity": 4, - "favorite_flag": true, - "display_rank": 2, - "is_rank_max": true, - "is_love_max": true, - "is_level_max": true, - "is_signed": false, - "is_skill_level_max": false, - "is_removable_skill_capacity_max": false, - "insert_date": "2022-10-28 21:09:30", - "mark_id": 1, - "sub_evaluation": 1925000 - } - ] - } - } - }, - "status": 200, - "commandNum": false, - "timeStamp": 1680244575 -} \ No newline at end of file diff --git a/assets/serverdata/item_data.json b/assets/serverdata/item_data.json new file mode 100644 index 0000000..e4b0420 --- /dev/null +++ b/assets/serverdata/item_data.json @@ -0,0 +1,3148 @@ +{ + "general_item_list": [ + { + "item_id": 1, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 5, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 6, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 7, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 8, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 9, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 11, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 12, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 13, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 14, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 15, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 16, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 17, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 18, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 19, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 20, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 21, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 22, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 23, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 24, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 25, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 26, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 27, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 28, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 29, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 30, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 31, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 32, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 33, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 34, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 35, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 36, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 37, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 38, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 39, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 40, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 41, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 42, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 43, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 44, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 45, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 46, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 47, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 51, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 52, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 53, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 54, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 56, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 57, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 59, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 60, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 67, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 68, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 69, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 70, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 71, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 72, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 73, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 74, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 75, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 76, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 77, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 78, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 79, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 80, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 81, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 82, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 83, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 84, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 85, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 86, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 87, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 88, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 92, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 93, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 97, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 98, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 102, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 103, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 104, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 105, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 106, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 107, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 108, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 109, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 110, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 111, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 112, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 113, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 114, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 115, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 116, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 117, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 118, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 119, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 120, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 121, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 122, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 123, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 124, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 125, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 126, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 127, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 128, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 129, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 130, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 131, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 132, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 133, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 134, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 135, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 136, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 137, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 138, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 139, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 140, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 141, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 142, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 143, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 144, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 145, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 146, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 147, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 148, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 149, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 150, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 153, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 158, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 159, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 160, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 161, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 164, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 165, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 166, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 167, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 168, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 170, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 171, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 172, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 176, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 188, + "amount": 1, + "use_button_flag": false, + "general_item_type": 7 + }, + { + "item_id": 189, + "amount": 1, + "use_button_flag": false, + "general_item_type": 7 + }, + { + "item_id": 190, + "amount": 1, + "use_button_flag": false, + "general_item_type": 7 + }, + { + "item_id": 191, + "amount": 1, + "use_button_flag": false, + "general_item_type": 7 + }, + { + "item_id": 192, + "amount": 1, + "use_button_flag": false, + "general_item_type": 7 + }, + { + "item_id": 193, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 198, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 199, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 201, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 202, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 203, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 204, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 205, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 206, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 214, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 215, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 218, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 219, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 220, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 221, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 222, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 223, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 224, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 225, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 226, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 227, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 228, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 229, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 230, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 231, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 232, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 233, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 234, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 235, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 251, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 252, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 255, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 256, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 257, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 258, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 262, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 263, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 270, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 271, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 272, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 273, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 278, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 279, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 286, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 287, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 288, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 289, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 290, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 291, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 292, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 293, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 294, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 295, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 296, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 297, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 298, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 299, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 300, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 301, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 302, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 303, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 304, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 305, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 306, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 307, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 308, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 309, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 310, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 311, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 312, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 319, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 320, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 321, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 323, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 324, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 325, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 326, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 327, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 328, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 329, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 330, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 331, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 332, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 333, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 334, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 335, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 336, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 337, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 338, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 339, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 340, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 341, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 342, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 349, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 350, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 351, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 352, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 353, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 355, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 356, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 357, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 358, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 359, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 360, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 361, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 374, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 375, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 376, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 377, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 378, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 379, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 380, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 381, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 390, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 391, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 392, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 393, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 394, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 395, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 412, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 421, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 422, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 423, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 424, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 1000, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 1200, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 2016, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 2017, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10001, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10003, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10004, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10005, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10006, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10007, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10008, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10010, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10011, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10012, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10013, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10015, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10016, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10017, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10018, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10019, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10020, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10021, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10022, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10023, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10024, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10025, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10026, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10027, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10028, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10029, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10031, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10032, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10033, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10034, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10035, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10036, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10037, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10039, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10040, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10041, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10042, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10043, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10044, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10045, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10047, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10048, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10049, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10050, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10051, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10052, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10053, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10054, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10055, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10056, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10057, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10058, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10059, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10060, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10061, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10062, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10063, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10064, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10065, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10066, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10067, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10068, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10069, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10070, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10071, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10072, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10073, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10074, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10075, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10076, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10077, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10078, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10079, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10080, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10081, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10082, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10083, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10084, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10085, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10086, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10087, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10088, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10089, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10090, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10091, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10092, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10093, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 10094, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 14001, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 14002, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 14003, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 14004, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 14005, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 14006, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 14007, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 14008, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 14009, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 14101, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 14102, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 14103, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 14104, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 14105, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 14106, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 14107, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 14108, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 14109, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100025, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100901, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100902, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100903, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100904, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100905, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100906, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100907, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100908, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100909, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100910, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100911, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100912, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100913, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100914, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100915, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100916, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100917, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100918, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100919, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100920, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100921, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100922, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100923, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100924, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100925, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100926, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100927, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100928, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100929, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100930, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100931, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100932, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100933, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100934, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100935, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100937, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100938, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100939, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100940, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100941, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100942, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100943, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100944, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100945, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100946, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100947, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100948, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100949, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100950, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100951, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100952, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100953, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100955, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100956, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100957, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100958, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100959, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100960, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100961, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100962, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100964, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100965, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100966, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100967, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100968, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100969, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100970, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100971, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100972, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100973, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100974, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100975, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100976, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100977, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100978, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100979, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100980, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100982, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100983, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100984, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100985, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100986, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100987, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100988, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100989, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100990, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100991, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100992, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100993, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100994, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100996, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 100997, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101002, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101003, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101004, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101005, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101008, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101009, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101010, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101011, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101012, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101013, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101014, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101016, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101017, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101020, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101022, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101024, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101026, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101028, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101029, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101030, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101032, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101034, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101036, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101041, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 101045, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 102000, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 102003, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 102004, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 102005, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 102006, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 102007, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 102008, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 102009, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 102010, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 102011, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 102012, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 102013, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 102014, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + }, + { + "item_id": 102015, + "amount": 1, + "use_button_flag": false, + "general_item_type": 1 + } + ], + "buff_item_list": [ + { + "item_id": 48, + "amount": 1, + "buff_type": 1 + }, + { + "item_id": 49, + "amount": 1, + "buff_type": 3 + }, + { + "item_id": 50, + "amount": 1, + "buff_type": 2 + }, + { + "item_id": 61, + "amount": 1, + "buff_type": 1 + }, + { + "item_id": 62, + "amount": 1, + "buff_type": 2 + }, + { + "item_id": 63, + "amount": 1, + "buff_type": 3 + }, + { + "item_id": 89, + "amount": 1, + "buff_type": 1 + }, + { + "item_id": 90, + "amount": 1, + "buff_type": 2 + }, + { + "item_id": 91, + "amount": 1, + "buff_type": 3 + }, + { + "item_id": 183, + "amount": 1, + "buff_type": 1 + }, + { + "item_id": 274, + "amount": 1, + "buff_type": 1 + }, + { + "item_id": 275, + "amount": 1, + "buff_type": 3 + }, + { + "item_id": 276, + "amount": 1, + "buff_type": 2 + }, + { + "item_id": 277, + "amount": 1, + "buff_type": 1 + } + ] +} diff --git a/assets/serverdata/reward.json b/assets/serverdata/reward.json deleted file mode 100644 index 99f83d1..0000000 --- a/assets/serverdata/reward.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "response_data": { - "clear_scenario": { - "scenario_id": 3244 - }, - "before_user_info": { - "level": 1028, - "exp": 28853572, - "previous_exp": 27734700, - "next_exp": 28941885, - "game_coin": 112462154, - "sns_coin": 11, - "free_sns_coin": 11, - "paid_sns_coin": 0, - "social_point": 1442340, - "unit_max": 904, - "waiting_unit_max": 700, - "current_energy": 222, - "energy_max": 417, - "training_energy": 8, - "training_energy_max": 10, - "energy_full_time": "2023-03-30 23:05:52", - "license_live_energy_recoverly_time": 60, - "friend_max": 99, - "tutorial_state": -1, - "over_max_energy": 0, - "unlock_random_live_muse": 1, - "unlock_random_live_aqours": 1 - }, - "after_user_info": { - "level": 1028, - "exp": 28853572, - "previous_exp": 27734700, - "next_exp": 28941885, - "game_coin": 112482154, - "sns_coin": 12, - "free_sns_coin": 12, - "paid_sns_coin": 0, - "social_point": 1442340, - "unit_max": 904, - "waiting_unit_max": 700, - "current_energy": 222, - "energy_max": 417, - "training_energy": 8, - "training_energy_max": 10, - "energy_full_time": "2023-03-30 23:05:52", - "license_live_energy_recoverly_time": 60, - "friend_max": 99, - "tutorial_state": -1, - "over_max_energy": 0, - "unlock_random_live_muse": 1, - "unlock_random_live_aqours": 1 - }, - "next_level_info": [ - { - "level": 1028, - "from_exp": 28853572 - } - ], - "base_reward_info": { - "game_coin_reward_box_flag": false, - "game_coin": 20000 - }, - "item_reward_info": [ - { - "add_type": 3001, - "reward_item_id": 4, - "item_category_id": 0, - "amount": 1, - "comment": "\u652f\u7ebf\u5267\u60c5\u5b8c\u6210\uff01", - "reward_box_flag": false - } - ], - "class_system": { - "rank_info": { - "before_class_rank_id": 10, - "after_class_rank_id": 10, - "rank_up_date": "2020-02-12 11:57:15" - }, - "complete_flag": false, - "is_opened": true, - "is_visible": true - }, - "museum_info": { - "parameter": { - "smile": 228, - "pure": 300, - "cool": 372 - }, - "contents_id_list": [ - 1597, - 1598, - 1599, - 1600, - 1601, - 1694, - 1695, - 1696, - 1697, - 1699, - 1700, - 1701 - ] - }, - "server_timestamp": 1680118815, - "present_cnt": 0 - }, - "release_info": [], - "status_code": 200 -} \ No newline at end of file diff --git a/assets/serverdata/stamp.json b/assets/serverdata/stamp.json deleted file mode 100644 index 1fd676e..0000000 --- a/assets/serverdata/stamp.json +++ /dev/null @@ -1,708 +0,0 @@ -{ - "result": { - "owning_stamp_ids": [ - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1, - 2, - 19, - 28, - 3, - 4, - 20, - 29, - 5, - 6, - 21, - 30, - 7, - 8, - 22, - 31, - 9, - 10, - 23, - 32, - 11, - 12, - 24, - 33, - 13, - 14, - 25, - 34, - 15, - 16, - 26, - 35, - 17, - 18, - 27, - 36, - 201, - 101, - 102, - 119, - 128, - 103, - 104, - 120, - 129, - 105, - 106, - 121, - 130, - 107, - 108, - 122, - 131, - 109, - 110, - 123, - 132, - 111, - 112, - 124, - 133, - 113, - 114, - 125, - 134, - 115, - 116, - 126, - 135, - 117, - 118, - 127, - 136, - 301, - 401, - 402, - 10001, - 10002 - ], - "stamp_setting": [ - { - "stamp_type": 1, - "setting_list": [ - { - "stamp_setting_id": 1, - "main_flag": 1, - "stamp_list": [ - { - "position": 1, - "stamp_id": 1 - }, - { - "position": 2, - "stamp_id": 17 - }, - { - "position": 3, - "stamp_id": 2 - }, - { - "position": 4, - "stamp_id": 9 - }, - { - "position": 5, - "stamp_id": 19 - }, - { - "position": 6, - "stamp_id": 15 - }, - { - "position": 7, - "stamp_id": 28 - }, - { - "position": 8, - "stamp_id": 16 - }, - { - "position": 9, - "stamp_id": 5 - }, - { - "position": 10, - "stamp_id": 12 - }, - { - "position": 11, - "stamp_id": 6 - }, - { - "position": 12, - "stamp_id": 109 - }, - { - "position": 13, - "stamp_id": 21 - }, - { - "position": 14, - "stamp_id": 110 - }, - { - "position": 15, - "stamp_id": 30 - }, - { - "position": 16, - "stamp_id": 112 - }, - { - "position": 17, - "stamp_id": 128 - }, - { - "position": 18, - "stamp_id": 117 - } - ] - }, - { - "stamp_setting_id": 2, - "main_flag": 0, - "stamp_list": [ - { - "position": 1, - "stamp_id": 2 - }, - { - "position": 2, - "stamp_id": 119 - }, - { - "position": 3, - "stamp_id": 3 - }, - { - "position": 4, - "stamp_id": 103 - }, - { - "position": 5, - "stamp_id": 21 - }, - { - "position": 6, - "stamp_id": 121 - }, - { - "position": 7, - "stamp_id": 22 - }, - { - "position": 8, - "stamp_id": 108 - }, - { - "position": 9, - "stamp_id": 9 - }, - { - "position": 10, - "stamp_id": 110 - }, - { - "position": 11, - "stamp_id": 11 - }, - { - "position": 12, - "stamp_id": 112 - }, - { - "position": 13, - "stamp_id": 14 - }, - { - "position": 14, - "stamp_id": 113 - }, - { - "position": 15, - "stamp_id": 16 - }, - { - "position": 16, - "stamp_id": 126 - }, - { - "position": 17, - "stamp_id": 17 - }, - { - "position": 18, - "stamp_id": 117 - } - ] - }, - { - "stamp_setting_id": 3, - "main_flag": 0, - "stamp_list": [ - { - "position": 1, - "stamp_id": 2 - }, - { - "position": 2, - "stamp_id": 101 - }, - { - "position": 3, - "stamp_id": 4 - }, - { - "position": 4, - "stamp_id": 103 - }, - { - "position": 5, - "stamp_id": 5 - }, - { - "position": 6, - "stamp_id": 105 - }, - { - "position": 7, - "stamp_id": 7 - }, - { - "position": 8, - "stamp_id": 108 - }, - { - "position": 9, - "stamp_id": 10 - }, - { - "position": 10, - "stamp_id": 110 - }, - { - "position": 11, - "stamp_id": 12 - }, - { - "position": 12, - "stamp_id": 112 - }, - { - "position": 13, - "stamp_id": 13 - }, - { - "position": 14, - "stamp_id": 114 - }, - { - "position": 15, - "stamp_id": 16 - }, - { - "position": 16, - "stamp_id": 116 - }, - { - "position": 17, - "stamp_id": 17 - }, - { - "position": 18, - "stamp_id": 117 - } - ] - }, - { - "stamp_setting_id": 4, - "main_flag": 0, - "stamp_list": [ - { - "position": 1, - "stamp_id": 2 - }, - { - "position": 2, - "stamp_id": 101 - }, - { - "position": 3, - "stamp_id": 4 - }, - { - "position": 4, - "stamp_id": 103 - }, - { - "position": 5, - "stamp_id": 5 - }, - { - "position": 6, - "stamp_id": 105 - }, - { - "position": 7, - "stamp_id": 7 - }, - { - "position": 8, - "stamp_id": 108 - }, - { - "position": 9, - "stamp_id": 10 - }, - { - "position": 10, - "stamp_id": 110 - }, - { - "position": 11, - "stamp_id": 12 - }, - { - "position": 12, - "stamp_id": 112 - }, - { - "position": 13, - "stamp_id": 13 - }, - { - "position": 14, - "stamp_id": 114 - }, - { - "position": 15, - "stamp_id": 16 - }, - { - "position": 16, - "stamp_id": 116 - }, - { - "position": 17, - "stamp_id": 17 - }, - { - "position": 18, - "stamp_id": 117 - } - ] - }, - { - "stamp_setting_id": 5, - "main_flag": 0, - "stamp_list": [ - { - "position": 1, - "stamp_id": 2 - }, - { - "position": 2, - "stamp_id": 101 - }, - { - "position": 3, - "stamp_id": 4 - }, - { - "position": 4, - "stamp_id": 103 - }, - { - "position": 5, - "stamp_id": 5 - }, - { - "position": 6, - "stamp_id": 105 - }, - { - "position": 7, - "stamp_id": 7 - }, - { - "position": 8, - "stamp_id": 108 - }, - { - "position": 9, - "stamp_id": 10 - }, - { - "position": 10, - "stamp_id": 110 - }, - { - "position": 11, - "stamp_id": 12 - }, - { - "position": 12, - "stamp_id": 112 - }, - { - "position": 13, - "stamp_id": 13 - }, - { - "position": 14, - "stamp_id": 114 - }, - { - "position": 15, - "stamp_id": 16 - }, - { - "position": 16, - "stamp_id": 116 - }, - { - "position": 17, - "stamp_id": 17 - }, - { - "position": 18, - "stamp_id": 117 - } - ] - } - ] - }, - { - "stamp_type": 2, - "setting_list": [ - { - "stamp_setting_id": 1, - "main_flag": 1, - "stamp_list": [ - { - "position": 1, - "stamp_id": 1001 - }, - { - "position": 2, - "stamp_id": 1002 - }, - { - "position": 3, - "stamp_id": 1003 - }, - { - "position": 4, - "stamp_id": 1004 - }, - { - "position": 5, - "stamp_id": 1005 - }, - { - "position": 6, - "stamp_id": 1006 - }, - { - "position": 7, - "stamp_id": 1007 - }, - { - "position": 8, - "stamp_id": 1008 - }, - { - "position": 9, - "stamp_id": 1009 - } - ] - }, - { - "stamp_setting_id": 2, - "main_flag": 0, - "stamp_list": [ - { - "position": 1, - "stamp_id": 1001 - }, - { - "position": 2, - "stamp_id": 1002 - }, - { - "position": 3, - "stamp_id": 1003 - }, - { - "position": 4, - "stamp_id": 1004 - }, - { - "position": 5, - "stamp_id": 1005 - }, - { - "position": 6, - "stamp_id": 1006 - }, - { - "position": 7, - "stamp_id": 1007 - }, - { - "position": 8, - "stamp_id": 1008 - }, - { - "position": 9, - "stamp_id": 1009 - } - ] - }, - { - "stamp_setting_id": 3, - "main_flag": 0, - "stamp_list": [ - { - "position": 1, - "stamp_id": 1001 - }, - { - "position": 2, - "stamp_id": 1002 - }, - { - "position": 3, - "stamp_id": 1003 - }, - { - "position": 4, - "stamp_id": 1004 - }, - { - "position": 5, - "stamp_id": 1005 - }, - { - "position": 6, - "stamp_id": 1006 - }, - { - "position": 7, - "stamp_id": 1007 - }, - { - "position": 8, - "stamp_id": 1008 - }, - { - "position": 9, - "stamp_id": 1009 - } - ] - }, - { - "stamp_setting_id": 4, - "main_flag": 0, - "stamp_list": [ - { - "position": 1, - "stamp_id": 1001 - }, - { - "position": 2, - "stamp_id": 1002 - }, - { - "position": 3, - "stamp_id": 1003 - }, - { - "position": 4, - "stamp_id": 1004 - }, - { - "position": 5, - "stamp_id": 1005 - }, - { - "position": 6, - "stamp_id": 1006 - }, - { - "position": 7, - "stamp_id": 1007 - }, - { - "position": 8, - "stamp_id": 1008 - }, - { - "position": 9, - "stamp_id": 1009 - } - ] - }, - { - "stamp_setting_id": 5, - "main_flag": 0, - "stamp_list": [ - { - "position": 1, - "stamp_id": 1001 - }, - { - "position": 2, - "stamp_id": 1002 - }, - { - "position": 3, - "stamp_id": 1003 - }, - { - "position": 4, - "stamp_id": 1004 - }, - { - "position": 5, - "stamp_id": 1005 - }, - { - "position": 6, - "stamp_id": 1006 - }, - { - "position": 7, - "stamp_id": 1007 - }, - { - "position": 8, - "stamp_id": 1008 - }, - { - "position": 9, - "stamp_id": 1009 - } - ] - } - ] - } - ] - }, - "status": 200, - "commandNum": false, - "timeStamp": 1680244575 -} \ No newline at end of file diff --git a/assets/serverdata/stamp_data.json b/assets/serverdata/stamp_data.json new file mode 100644 index 0000000..dfb7be0 --- /dev/null +++ b/assets/serverdata/stamp_data.json @@ -0,0 +1,559 @@ +{ + "owning_stamp_ids": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 201, + 301, + 401, + 402, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 10001, + 10002 + ], + "stamp_setting": [ + { + "stamp_type": 1, + "setting_list": [ + { + "stamp_setting_id": 1, + "main_flag": 1, + "stamp_list": [ + { + "position": 1, + "stamp_id": 1001 + }, + { + "position": 2, + "stamp_id": 1002 + }, + { + "position": 3, + "stamp_id": 1003 + }, + { + "position": 4, + "stamp_id": 1004 + }, + { + "position": 5, + "stamp_id": 1005 + }, + { + "position": 6, + "stamp_id": 1006 + }, + { + "position": 7, + "stamp_id": 1007 + }, + { + "position": 8, + "stamp_id": 1008 + }, + { + "position": 9, + "stamp_id": 1009 + } + ] + }, + { + "stamp_setting_id": 2, + "main_flag": 0, + "stamp_list": [ + { + "position": 1, + "stamp_id": 1001 + }, + { + "position": 2, + "stamp_id": 1002 + }, + { + "position": 3, + "stamp_id": 1003 + }, + { + "position": 4, + "stamp_id": 1004 + }, + { + "position": 5, + "stamp_id": 1005 + }, + { + "position": 6, + "stamp_id": 1006 + }, + { + "position": 7, + "stamp_id": 1007 + }, + { + "position": 8, + "stamp_id": 1008 + }, + { + "position": 9, + "stamp_id": 1009 + } + ] + }, + { + "stamp_setting_id": 3, + "main_flag": 0, + "stamp_list": [ + { + "position": 1, + "stamp_id": 1001 + }, + { + "position": 2, + "stamp_id": 1002 + }, + { + "position": 3, + "stamp_id": 1003 + }, + { + "position": 4, + "stamp_id": 1004 + }, + { + "position": 5, + "stamp_id": 1005 + }, + { + "position": 6, + "stamp_id": 1006 + }, + { + "position": 7, + "stamp_id": 1007 + }, + { + "position": 8, + "stamp_id": 1008 + }, + { + "position": 9, + "stamp_id": 1009 + } + ] + }, + { + "stamp_setting_id": 4, + "main_flag": 0, + "stamp_list": [ + { + "position": 1, + "stamp_id": 1001 + }, + { + "position": 2, + "stamp_id": 1002 + }, + { + "position": 3, + "stamp_id": 1003 + }, + { + "position": 4, + "stamp_id": 1004 + }, + { + "position": 5, + "stamp_id": 1005 + }, + { + "position": 6, + "stamp_id": 1006 + }, + { + "position": 7, + "stamp_id": 1007 + }, + { + "position": 8, + "stamp_id": 1008 + }, + { + "position": 9, + "stamp_id": 1009 + } + ] + }, + { + "stamp_setting_id": 5, + "main_flag": 0, + "stamp_list": [ + { + "position": 1, + "stamp_id": 1001 + }, + { + "position": 2, + "stamp_id": 1002 + }, + { + "position": 3, + "stamp_id": 1003 + }, + { + "position": 4, + "stamp_id": 1004 + }, + { + "position": 5, + "stamp_id": 1005 + }, + { + "position": 6, + "stamp_id": 1006 + }, + { + "position": 7, + "stamp_id": 1007 + }, + { + "position": 8, + "stamp_id": 1008 + }, + { + "position": 9, + "stamp_id": 1009 + } + ] + } + ] + }, + { + "stamp_type": 2, + "setting_list": [ + { + "stamp_setting_id": 1, + "main_flag": 1, + "stamp_list": [ + { + "position": 1, + "stamp_id": 1001 + }, + { + "position": 2, + "stamp_id": 1002 + }, + { + "position": 3, + "stamp_id": 1003 + }, + { + "position": 4, + "stamp_id": 1004 + }, + { + "position": 5, + "stamp_id": 1005 + }, + { + "position": 6, + "stamp_id": 1006 + }, + { + "position": 7, + "stamp_id": 1007 + }, + { + "position": 8, + "stamp_id": 1008 + }, + { + "position": 9, + "stamp_id": 1009 + } + ] + }, + { + "stamp_setting_id": 2, + "main_flag": 0, + "stamp_list": [ + { + "position": 1, + "stamp_id": 1001 + }, + { + "position": 2, + "stamp_id": 1002 + }, + { + "position": 3, + "stamp_id": 1003 + }, + { + "position": 4, + "stamp_id": 1004 + }, + { + "position": 5, + "stamp_id": 1005 + }, + { + "position": 6, + "stamp_id": 1006 + }, + { + "position": 7, + "stamp_id": 1007 + }, + { + "position": 8, + "stamp_id": 1008 + }, + { + "position": 9, + "stamp_id": 1009 + } + ] + }, + { + "stamp_setting_id": 3, + "main_flag": 0, + "stamp_list": [ + { + "position": 1, + "stamp_id": 1001 + }, + { + "position": 2, + "stamp_id": 1002 + }, + { + "position": 3, + "stamp_id": 1003 + }, + { + "position": 4, + "stamp_id": 1004 + }, + { + "position": 5, + "stamp_id": 1005 + }, + { + "position": 6, + "stamp_id": 1006 + }, + { + "position": 7, + "stamp_id": 1007 + }, + { + "position": 8, + "stamp_id": 1008 + }, + { + "position": 9, + "stamp_id": 1009 + } + ] + }, + { + "stamp_setting_id": 4, + "main_flag": 0, + "stamp_list": [ + { + "position": 1, + "stamp_id": 1001 + }, + { + "position": 2, + "stamp_id": 1002 + }, + { + "position": 3, + "stamp_id": 1003 + }, + { + "position": 4, + "stamp_id": 1004 + }, + { + "position": 5, + "stamp_id": 1005 + }, + { + "position": 6, + "stamp_id": 1006 + }, + { + "position": 7, + "stamp_id": 1007 + }, + { + "position": 8, + "stamp_id": 1008 + }, + { + "position": 9, + "stamp_id": 1009 + } + ] + }, + { + "stamp_setting_id": 5, + "main_flag": 0, + "stamp_list": [ + { + "position": 1, + "stamp_id": 1001 + }, + { + "position": 2, + "stamp_id": 1002 + }, + { + "position": 3, + "stamp_id": 1003 + }, + { + "position": 4, + "stamp_id": 1004 + }, + { + "position": 5, + "stamp_id": 1005 + }, + { + "position": 6, + "stamp_id": 1006 + }, + { + "position": 7, + "stamp_id": 1007 + }, + { + "position": 8, + "stamp_id": 1008 + }, + { + "position": 9, + "stamp_id": 1009 + } + ] + } + ] + } + ] +} diff --git a/assets/serverdata/subreward.json b/assets/serverdata/subreward.json deleted file mode 100644 index 0615c4a..0000000 --- a/assets/serverdata/subreward.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "response_data": { - "clear_subscenario": { - "subscenario_id": 3244 - }, - "before_user_info": { - "level": 1028, - "exp": 28853572, - "previous_exp": 27734700, - "next_exp": 28941885, - "game_coin": 112462154, - "sns_coin": 11, - "free_sns_coin": 11, - "paid_sns_coin": 0, - "social_point": 1442340, - "unit_max": 904, - "waiting_unit_max": 700, - "current_energy": 222, - "energy_max": 417, - "training_energy": 8, - "training_energy_max": 10, - "energy_full_time": "2023-03-30 23:05:52", - "license_live_energy_recoverly_time": 60, - "friend_max": 99, - "tutorial_state": -1, - "over_max_energy": 0, - "unlock_random_live_muse": 1, - "unlock_random_live_aqours": 1 - }, - "after_user_info": { - "level": 1028, - "exp": 28853572, - "previous_exp": 27734700, - "next_exp": 28941885, - "game_coin": 112482154, - "sns_coin": 12, - "free_sns_coin": 12, - "paid_sns_coin": 0, - "social_point": 1442340, - "unit_max": 904, - "waiting_unit_max": 700, - "current_energy": 222, - "energy_max": 417, - "training_energy": 8, - "training_energy_max": 10, - "energy_full_time": "2023-03-30 23:05:52", - "license_live_energy_recoverly_time": 60, - "friend_max": 99, - "tutorial_state": -1, - "over_max_energy": 0, - "unlock_random_live_muse": 1, - "unlock_random_live_aqours": 1 - }, - "next_level_info": [ - { - "level": 1028, - "from_exp": 28853572 - } - ], - "base_reward_info": { - "game_coin_reward_box_flag": false, - "game_coin": 20000 - }, - "item_reward_info": [ - { - "add_type": 3001, - "reward_item_id": 4, - "item_category_id": 0, - "amount": 1, - "comment": "\u652f\u7ebf\u5267\u60c5\u5b8c\u6210\uff01", - "reward_box_flag": false - } - ], - "class_system": { - "rank_info": { - "before_class_rank_id": 10, - "after_class_rank_id": 10, - "rank_up_date": "2020-02-12 11:57:15" - }, - "complete_flag": false, - "is_opened": true, - "is_visible": true - }, - "museum_info": { - "parameter": { - "smile": 228, - "pure": 300, - "cool": 372 - }, - "contents_id_list": [ - 1597, - 1598, - 1599, - 1600, - 1601, - 1694, - 1695, - 1696, - 1697, - 1699, - 1700, - 1701 - ] - }, - "server_timestamp": 1680118815, - "present_cnt": 0 - }, - "release_info": [], - "status_code": 200 -} \ No newline at end of file diff --git a/docs/images/20230624200603.jpg b/docs/images/20230624200603.jpg deleted file mode 100644 index ce63a1d..0000000 Binary files a/docs/images/20230624200603.jpg and /dev/null differ diff --git a/docs/images/20230624201042.jpg b/docs/images/20230624201042.jpg deleted file mode 100644 index 62c08fe..0000000 Binary files a/docs/images/20230624201042.jpg and /dev/null differ diff --git a/docs/images/20230624202154.jpg b/docs/images/20230624202154.jpg deleted file mode 100644 index 0e860de..0000000 Binary files a/docs/images/20230624202154.jpg and /dev/null differ diff --git a/go.mod b/go.mod index 575f306..e2012aa 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( require ( github.com/bytedance/gopkg v0.1.4 // indirect - github.com/bytedance/sonic v1.15.1 // indirect + github.com/bytedance/sonic v1.15.2 // indirect github.com/bytedance/sonic/loader v0.5.1 // indirect github.com/cloudwego/base64x v0.1.7 // indirect github.com/dustin/go-humanize v1.0.1 // indirect @@ -48,7 +48,6 @@ require ( github.com/go-playground/universal-translator v0.18.1 // indirect github.com/go-playground/validator/v10 v10.30.3 // indirect github.com/goccy/go-json v0.10.6 // indirect - github.com/google/gopacket v1.1.19 github.com/json-iterator/go v1.1.12 // indirect github.com/leodido/go-urn v1.4.0 // indirect github.com/mattn/go-isatty v0.0.22 // indirect diff --git a/go.sum b/go.sum index 2df9ae3..50a7a63 100644 --- a/go.sum +++ b/go.sum @@ -4,8 +4,8 @@ gitea.com/xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a h1:lSA0F4e9A2NcQSqGq gitea.com/xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a/go.mod h1:EXuID2Zs0pAQhH8yz+DNjUbjppKQzKFAn28TMYPB6IU= github.com/bytedance/gopkg v0.1.4 h1:oZnQwnX82KAIWb7033bEwtxvTqXcYMxDBaQxo5JJHWM= github.com/bytedance/gopkg v0.1.4/go.mod h1:v1zWfPm21Fb+OsyXN2VAHdL6TBb2L88anLQgdyje6R4= -github.com/bytedance/sonic v1.15.1 h1:nJD5PmM0vY7J8CT6MxoqbVAAMhkSmV2HgRAUrrpLoOw= -github.com/bytedance/sonic v1.15.1/go.mod h1:mT2NbXunuaEbnZ+mRIX/vYqKISmgEuHFDI4UzmKx2SA= +github.com/bytedance/sonic v1.15.2 h1:90H+rcF/FwLXwfB1cudOLq/je83n683Utf4Cbp0xHCo= +github.com/bytedance/sonic v1.15.2/go.mod h1:mT2NbXunuaEbnZ+mRIX/vYqKISmgEuHFDI4UzmKx2SA= github.com/bytedance/sonic/loader v0.5.1 h1:Ygpfa9zwRCCKSlrp5bBP/b/Xzc3VxsAW+5NIYXrOOpI= github.com/bytedance/sonic/loader v0.5.1/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo= github.com/cloudwego/base64x v0.1.7 h1:NppS+Fgzg5ovhn4NkUXaDT3x9jldgH5ToMCqzBSi2zI= @@ -49,8 +49,6 @@ github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= -github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo= github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs= github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -126,35 +124,24 @@ go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y= go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU= golang.org/x/arch v0.27.0 h1:0WNVcR8u9yFz8j5FvdHpgwNp3FS5U4guYdzHwEiGjoU= golang.org/x/arch v0.27.0/go.mod h1:0X+GdSIP+kL5wPmpK7sdkEVTt2XoYP0cSjQSbZBwOi8= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.52.0 h1:RMs7fP2rXdep0CftQlK8Uf+kibLm7qkCcradZWYz988= golang.org/x/crypto v0.52.0/go.mod h1:1QgfPxDqh0T2M/elOJtp9RvuR95kVjir0e6/BvEmGbc= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.36.0 h1:JJjpVx6myfUsUdAzZuOSTTmRE0PfZeNWzzvKrP7amb4= golang.org/x/mod v0.36.0/go.mod h1:moc6ELqsWcOw5Ef3xVprK5ul/MvtVvkIXLziUOICjUQ= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.45.0 h1:18qN3FAooORvApf5XjCXgsuayZOEtXf6JK18I3+ONa8= golang.org/x/tools v0.45.0/go.mod h1:LuUGqqaXcXMEFEruIVJVm5mgDD8vww/z/SR1gQ4uE/0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/internal/handler/api/item/list.go b/internal/handler/api/item/list.go index f960c0e..6b621e8 100644 --- a/internal/handler/api/item/list.go +++ b/internal/handler/api/item/list.go @@ -1,13 +1,23 @@ package item import ( - "encoding/json" - "honoka-chan/pkg/utils" + itemapischema "honoka-chan/internal/schema/api/item" + honokautils "honoka-chan/internal/utils" + "time" ) func itemList() (res any, err error) { - itemResp := utils.ReadAllText("assets/serverdata/item.json") - err = json.Unmarshal([]byte(itemResp), &res) + itemData, err := honokautils.LoadServerData[itemapischema.ListData]("item_data.json") + if err != nil { + return nil, err + } + + res = itemapischema.ListResp{ + Result: itemData, + Status: 200, + CommandNum: false, + TimeStamp: time.Now().Unix(), + } return res, err } diff --git a/internal/handler/api/login/topinfo.go b/internal/handler/api/login/topinfo.go index d6482ec..bf9f0ec 100644 --- a/internal/handler/api/login/topinfo.go +++ b/internal/handler/api/login/topinfo.go @@ -13,7 +13,7 @@ func loginTopInfo(ctx *gin.Context) (res any, err error) { ss := session.Get(ctx) now := time.Now() - friendsRequestCnt64, err := ss.UserEng.Table(new(usermodel.UserFriend)). + friendsRequestCnt, err := ss.UserEng.Table(new(usermodel.UserFriend)). Where("user_id = ?", ss.UserID). Where("status = ?", usermodel.FriendStatusAwaitingApproval). Where("is_new = ?", true). @@ -22,7 +22,7 @@ func loginTopInfo(ctx *gin.Context) (res any, err error) { return nil, err } - friendsApprovalWaitCnt64, err := ss.UserEng.Table(new(usermodel.UserFriend)). + friendsApprovalWaitCnt, err := ss.UserEng.Table(new(usermodel.UserFriend)). Where("user_id = ?", ss.UserID). Where("status = ?", usermodel.FriendStatusPending). Count() @@ -30,7 +30,7 @@ func loginTopInfo(ctx *gin.Context) (res any, err error) { return nil, err } - friendGreetCnt64, err := ss.UserEng.Table(new(usermodel.UserGreet)). + friendGreetCnt, err := ss.UserEng.Table(new(usermodel.UserGreet)). Where("receiver_id = ?", ss.UserID). Where("deleted_from_receiver = ?", false). Where("readed = ?", false). @@ -39,10 +39,6 @@ func loginTopInfo(ctx *gin.Context) (res any, err error) { return nil, err } - friendsRequestCnt := int(friendsRequestCnt64) - friendsApprovalWaitCnt := int(friendsApprovalWaitCnt64) - friendGreetCnt := int(friendGreetCnt64) - res = loginapischema.TopInfoResp{ Result: loginapischema.TopInfoData{ FriendActionCnt: friendGreetCnt, diff --git a/internal/handler/api/profile/cardranking.go b/internal/handler/api/profile/cardranking.go index 5cb55df..6aba65b 100644 --- a/internal/handler/api/profile/cardranking.go +++ b/internal/handler/api/profile/cardranking.go @@ -1,22 +1,19 @@ package profile import ( - "encoding/json" profileapischema "honoka-chan/internal/schema/api/profile" - "honoka-chan/pkg/utils" + honokautils "honoka-chan/internal/utils" "time" ) func cardRanking() (res any, err error) { - var result []any - love := utils.ReadAllText("assets/serverdata/love.json") - err = json.Unmarshal([]byte(love), &result) + cardRankingData, err := honokautils.LoadServerData[[]profileapischema.CardRankingData]("card_ranking_data.json") if err != nil { return nil, err } res = profileapischema.CardRankingResp{ - Result: result, + Result: cardRankingData, Status: 200, CommandNum: false, TimeStamp: time.Now().Unix(), diff --git a/internal/handler/api/profile/info.go b/internal/handler/api/profile/info.go index 19aff44..fd20889 100644 --- a/internal/handler/api/profile/info.go +++ b/internal/handler/api/profile/info.go @@ -72,7 +72,7 @@ func profileInfo(ctx *gin.Context, targetUserID int) (res any, err error) { UnitMax: 5000, EnergyMax: targetPref.EffectiveEnergyMax(), FriendMax: 99, - UnitCnt: int(unitCount), + UnitCnt: unitCount, InviteCode: targetPref.InviteCode, ElapsedTimeFromLogin: formatProfileElapsedTime(lastLoginTime), Introduction: targetPref.UserDesc, diff --git a/internal/handler/api/stamp/info.go b/internal/handler/api/stamp/info.go index 3ed794d..c491606 100644 --- a/internal/handler/api/stamp/info.go +++ b/internal/handler/api/stamp/info.go @@ -1,13 +1,23 @@ package stamp import ( - "encoding/json" - "honoka-chan/pkg/utils" + stampapischema "honoka-chan/internal/schema/api/stamp" + honokautils "honoka-chan/internal/utils" + "time" ) func stampInfo() (res any, err error) { - stampResp := utils.ReadAllText("assets/serverdata/stamp.json") - err = json.Unmarshal([]byte(stampResp), &res) + stampData, err := honokautils.LoadServerData[stampapischema.InfoData]("stamp_data.json") + if err != nil { + return nil, err + } + + res = stampapischema.InfoResp{ + Result: stampData, + Status: 200, + CommandNum: false, + TimeStamp: time.Now().Unix(), + } return res, err } diff --git a/internal/handler/api/unit/accessorytab.go b/internal/handler/api/unit/accessorytab.go index 3ce9fc0..0bb0fe6 100644 --- a/internal/handler/api/unit/accessorytab.go +++ b/internal/handler/api/unit/accessorytab.go @@ -1,20 +1,25 @@ package unit import ( - "encoding/json" unitapischema "honoka-chan/internal/schema/api/unit" - "honoka-chan/pkg/utils" + honokautils "honoka-chan/internal/utils" "time" ) func unitAccessoryTab() (res any, err error) { - data := utils.ReadAllText("assets/serverdata/accessoryTab.json") - resp := unitapischema.AccessoryTabResp{} - err = json.Unmarshal([]byte(data), &resp) + tabList, err := honokautils.LoadServerData[[]unitapischema.TabList]("accessory_tab_list.json") if err != nil { return nil, err } - resp.TimeStamp = time.Now().Unix() - return resp, err + res = unitapischema.AccessoryTabResp{ + Result: unitapischema.AccessoryTabData{ + TabList: tabList, + }, + Status: 200, + CommandNum: false, + TimeStamp: time.Now().Unix(), + } + + return res, err } diff --git a/internal/handler/eventscenario/startup.go b/internal/handler/eventscenario/startup.go new file mode 100644 index 0000000..70ad516 --- /dev/null +++ b/internal/handler/eventscenario/startup.go @@ -0,0 +1,32 @@ +package eventscenario + +import ( + "honoka-chan/internal/middleware" + "honoka-chan/internal/router" + eventscenarioschema "honoka-chan/internal/schema/eventscenario" + "honoka-chan/internal/session" + honokautils "honoka-chan/internal/utils" + + "github.com/gin-gonic/gin" +) + +func startup(ctx *gin.Context) { + ss := session.Get(ctx) + defer ss.Finalize() + + startReq := eventscenarioschema.StartUpReq{} + err := honokautils.ParseRequestData(ctx, &startReq) + if ss.CheckErr(err) { + return + } + + ss.Respond(eventscenarioschema.StartUpResp{ + ResponseData: eventscenarioschema.StartUpData{}, + ReleaseInfo: []any{}, + StatusCode: 200, + }) +} + +func init() { + router.AddHandler("main.php", "POST", "/eventscenario/startup", middleware.Common, startup) +} diff --git a/internal/handler/friend/list.go b/internal/handler/friend/list.go index a221c29..8519f32 100644 --- a/internal/handler/friend/list.go +++ b/internal/handler/friend/list.go @@ -115,7 +115,7 @@ func list(ctx *gin.Context) { ss.Respond(friendschema.ListResp{ ResponseData: friendschema.ListData{ - ItemCount: int(totalCount), + ItemCount: totalCount, FriendList: friendList, NewFriendList: []any{}, ServerTimestamp: time.Now().Unix(), diff --git a/internal/handler/friend/search.go b/internal/handler/friend/search.go index 0abdfa2..5cde615 100644 --- a/internal/handler/friend/search.go +++ b/internal/handler/friend/search.go @@ -96,7 +96,7 @@ func search(ctx *gin.Context) { UnitMax: 5000, EnergyMax: positiveIntOrDefault(row.EnergyMax, usermodel.DefaultUserEnergyMax), FriendMax: 99, - UnitCnt: int(unitCount), + UnitCnt: unitCount, ElapsedTimeFromLogin: formatElapsedTime(row.LastLoginTime), Comment: row.UserDesc, }, diff --git a/internal/handler/handler.go b/internal/handler/handler.go index 75cc27b..bdd0139 100644 --- a/internal/handler/handler.go +++ b/internal/handler/handler.go @@ -8,6 +8,7 @@ import ( _ "honoka-chan/internal/handler/background" _ "honoka-chan/internal/handler/download" _ "honoka-chan/internal/handler/event" + _ "honoka-chan/internal/handler/eventscenario" _ "honoka-chan/internal/handler/friend" _ "honoka-chan/internal/handler/gdpr" _ "honoka-chan/internal/handler/ghome" diff --git a/internal/handler/live/precisescore.go b/internal/handler/live/precisescore.go index 9b2f28f..de40c6c 100644 --- a/internal/handler/live/precisescore.go +++ b/internal/handler/live/precisescore.go @@ -4,10 +4,10 @@ import ( "encoding/json" "honoka-chan/internal/constant" "honoka-chan/internal/middleware" - usermodel "honoka-chan/internal/model/user" "honoka-chan/internal/router" commonschema "honoka-chan/internal/schema/common" liveschema "honoka-chan/internal/schema/live" + liverecordschema "honoka-chan/internal/schema/liverecord" "honoka-chan/internal/session" honokautils "honoka-chan/internal/utils" "honoka-chan/pkg/utils" @@ -173,7 +173,7 @@ func preciseScore(ctx *gin.Context) { } // DeckInfo - var deckInfo usermodel.DeckInfo + var deckInfo liverecordschema.DeckInfo err = json.Unmarshal([]byte(record.DeckInfoJSON), &deckInfo) if ss.CheckErr(err) { return diff --git a/internal/handler/live/reward.go b/internal/handler/live/reward.go index 86edec8..24bfcce 100644 --- a/internal/handler/live/reward.go +++ b/internal/handler/live/reward.go @@ -25,11 +25,10 @@ func reward(ctx *gin.Context) { if ss.CheckErr(err) { return } - // fmt.Println(ctx.MustGet("request_data").(string)) difficultyID := playRewardReq.LiveDifficultyID _, liveInfo := ss.GetLiveInfo(difficultyID) - _, progress := ss.GetLiveInProgress() // TODO: 添加返回指定状态码的方法 + _, progress := ss.GetLiveInProgress() _, deckInfo := ss.GetDeckInfo(progress.DeckID) deckInfo.LiveDifficultyID = difficultyID diff --git a/internal/handler/notice/usergreetinghistory.go b/internal/handler/notice/usergreetinghistory.go index 00e1709..e8e55c4 100644 --- a/internal/handler/notice/usergreetinghistory.go +++ b/internal/handler/notice/usergreetinghistory.go @@ -62,7 +62,7 @@ func userGreetingHistory(ctx *gin.Context) { ss.Respond(noticeschema.UserGreetingResp{ ResponseData: noticeschema.UserGreetingData{ - ItemCount: int(totalCount), + ItemCount: totalCount, HasNext: totalCount > int64(len(rows)), NoticeList: noticeList, ServerTimestamp: time.Now().Unix(), diff --git a/internal/handler/scenario/reward.go b/internal/handler/scenario/reward.go deleted file mode 100644 index eab5feb..0000000 --- a/internal/handler/scenario/reward.go +++ /dev/null @@ -1,29 +0,0 @@ -package scenario - -import ( - "encoding/json" - "honoka-chan/internal/middleware" - "honoka-chan/internal/router" - "honoka-chan/internal/session" - "honoka-chan/pkg/utils" - - "github.com/gin-gonic/gin" -) - -func reward(ctx *gin.Context) { - ss := session.Get(ctx) - defer ss.Finalize() - - data := utils.ReadAllText("assets/serverdata/reward.json") - var resp map[string]any - err := json.Unmarshal([]byte(data), &resp) - if ss.CheckErr(err) { - return - } - - ss.Respond(resp) -} - -func init() { - router.AddHandler("main.php", "POST", "/scenario/reward", middleware.Common, reward) -} diff --git a/internal/handler/subscenario/reward.go b/internal/handler/subscenario/reward.go deleted file mode 100644 index b6be48f..0000000 --- a/internal/handler/subscenario/reward.go +++ /dev/null @@ -1,29 +0,0 @@ -package subscenario - -import ( - "encoding/json" - "honoka-chan/internal/middleware" - "honoka-chan/internal/router" - "honoka-chan/internal/session" - "honoka-chan/pkg/utils" - - "github.com/gin-gonic/gin" -) - -func reward(ctx *gin.Context) { - ss := session.Get(ctx) - defer ss.Finalize() - - data := utils.ReadAllText("assets/serverdata/subreward.json") - var resp map[string]any - err := json.Unmarshal([]byte(data), &resp) - if ss.CheckErr(err) { - return - } - - ss.Respond(resp) -} - -func init() { - router.AddHandler("main.php", "POST", "/subscenario/reward", middleware.Common, reward) -} diff --git a/internal/model/unit/commonunitdata.go b/internal/model/unit/commonunitdata.go index bf7cd84..acafade 100644 --- a/internal/model/unit/commonunitdata.go +++ b/internal/model/unit/commonunitdata.go @@ -1,70 +1,69 @@ package unitmodel type CommonUnitData struct { - ID int `xorm:"id pk autoincr" json:"-"` - UnitNumber int `xorm:"unit_number" json:"-"` - UnitID int `xorm:"unit_id" json:"unit_id"` - UnitTypeID int `xorm:"unit_type_id" json:"unit_type_id"` - Name string `xorm:"name" json:"name"` - Eponym string `xorm:"eponym" json:"eponym"` - Rarity int `xorm:"rarity" json:"rarity"` - Attribute int `xorm:"attribute" json:"attribute"` - Smile int `xorm:"smile" json:"smile"` - Cute int `xorm:"cute" json:"cute"` - Cool int `xorm:"cool" json:"cool"` - Exp int `xorm:"exp" json:"exp"` - Level int `xorm:"level" json:"level"` - MaxLevel int `xorm:"max_level" json:"max_level"` - LevelLimitID int `xorm:"level_limit_id" json:"level_limit_id"` - Rank int `xorm:"rank" json:"rank"` - MaxRank int `xorm:"max_rank" json:"max_rank"` - Love int `xorm:"love" json:"love"` - MaxLove int `xorm:"max_love" json:"max_love"` - UnitSkillExp int `xorm:"unit_skill_exp" json:"unit_skill_exp"` - UnitSkillLevel int `xorm:"unit_skill_level" json:"unit_skill_level"` - MaxHp int `xorm:"max_hp" json:"max_hp"` - UnitRemovableSkillCapacity int `xorm:"unit_removable_skill_capacity" json:"unit_removable_skill_capacity"` - IsRankMax bool `xorm:"is_rank_max" json:"is_rank_max"` - IsLoveMax bool `xorm:"is_love_max" json:"is_love_max"` - IsLevelMax bool `xorm:"is_level_max" json:"is_level_max"` - IsSigned bool `xorm:"is_signed" json:"is_signed"` - IsSkillLevelMax bool `xorm:"is_skill_level_max" json:"is_skill_level_max"` - IsRemovableSkillCapacityMax bool `xorm:"is_removable_skill_capacity_max" json:"is_removable_skill_capacity_max"` - InsertDate int64 `xorm:"insert_date" json:"insert_date"` + ID int `xorm:"id pk autoincr"` + UnitNumber int `xorm:"unit_number"` + UnitID int `xorm:"unit_id"` + UnitTypeID int `xorm:"unit_type_id"` + Name string `xorm:"name"` + Eponym string `xorm:"eponym"` + Rarity int `xorm:"rarity"` + Attribute int `xorm:"attribute"` + Smile int `xorm:"smile"` + Cute int `xorm:"cute"` + Cool int `xorm:"cool"` + Exp int `xorm:"exp"` + Level int `xorm:"level"` + MaxLevel int `xorm:"max_level"` + LevelLimitID int `xorm:"level_limit_id"` + Rank int `xorm:"rank"` + MaxRank int `xorm:"max_rank"` + Love int `xorm:"love"` + MaxLove int `xorm:"max_love"` + UnitSkillExp int `xorm:"unit_skill_exp"` + UnitSkillLevel int `xorm:"unit_skill_level"` + MaxHp int `xorm:"max_hp"` + UnitRemovableSkillCapacity int `xorm:"unit_removable_skill_capacity"` + IsRankMax bool `xorm:"is_rank_max"` + IsLoveMax bool `xorm:"is_love_max"` + IsLevelMax bool `xorm:"is_level_max"` + IsSigned bool `xorm:"is_signed"` + IsSkillLevelMax bool `xorm:"is_skill_level_max"` + IsRemovableSkillCapacityMax bool `xorm:"is_removable_skill_capacity_max"` + InsertDate int64 `xorm:"insert_date"` } type UnitDataMap struct { - UnitOwningUserID int `xorm:"unit_owning_user_id pk autoincr"` - FavoriteFlag bool `xorm:"favorite_flag"` - DisplayRank int `xorm:"display_rank"` - - ID int `xorm:"id pk autoincr" json:"-"` - UnitID int `xorm:"unit_id" json:"unit_id"` - UnitTypeID int `xorm:"unit_type_id" json:"unit_type_id"` - Name string `xorm:"name" json:"name"` - Eponym string `xorm:"eponym" json:"eponym"` - Rarity int `xorm:"rarity" json:"rarity"` - Attribute int `xorm:"attribute" json:"attribute"` - Smile int `xorm:"smile" json:"smile"` - Cute int `xorm:"cute" json:"cute"` - Cool int `xorm:"cool" json:"cool"` - Exp int `xorm:"exp" json:"exp"` - Level int `xorm:"level" json:"level"` - MaxLevel int `xorm:"max_level" json:"max_level"` - LevelLimitID int `xorm:"level_limit_id" json:"level_limit_id"` - Rank int `xorm:"rank" json:"rank"` - MaxRank int `xorm:"max_rank" json:"max_rank"` - Love int `xorm:"love" json:"love"` - MaxLove int `xorm:"max_love" json:"max_love"` - UnitSkillExp int `xorm:"unit_skill_exp" json:"unit_skill_exp"` - UnitSkillLevel int `xorm:"unit_skill_level" json:"unit_skill_level"` - MaxHp int `xorm:"max_hp" json:"max_hp"` - UnitRemovableSkillCapacity int `xorm:"unit_removable_skill_capacity" json:"unit_removable_skill_capacity"` - IsRankMax bool `xorm:"is_rank_max" json:"is_rank_max"` - IsLoveMax bool `xorm:"is_love_max" json:"is_love_max"` - IsLevelMax bool `xorm:"is_level_max" json:"is_level_max"` - IsSigned bool `xorm:"is_signed" json:"is_signed"` - IsSkillLevelMax bool `xorm:"is_skill_level_max" json:"is_skill_level_max"` - IsRemovableSkillCapacityMax bool `xorm:"is_removable_skill_capacity_max" json:"is_removable_skill_capacity_max"` - InsertDate int64 `xorm:"insert_date" json:"insert_date"` + ID int `xorm:"id pk autoincr"` + UnitOwningUserID int `xorm:"unit_owning_user_id pk autoincr"` + UnitID int `xorm:"unit_id"` + UnitTypeID int `xorm:"unit_type_id"` + Name string `xorm:"name"` + Eponym string `xorm:"eponym"` + Rarity int `xorm:"rarity"` + Attribute int `xorm:"attribute"` + Smile int `xorm:"smile"` + Cute int `xorm:"cute"` + Cool int `xorm:"cool"` + Exp int `xorm:"exp"` + Level int `xorm:"level"` + MaxLevel int `xorm:"max_level"` + LevelLimitID int `xorm:"level_limit_id"` + Rank int `xorm:"rank"` + MaxRank int `xorm:"max_rank"` + DisplayRank int `xorm:"display_rank"` + Love int `xorm:"love"` + MaxLove int `xorm:"max_love"` + UnitSkillExp int `xorm:"unit_skill_exp"` + UnitSkillLevel int `xorm:"unit_skill_level"` + MaxHp int `xorm:"max_hp"` + UnitRemovableSkillCapacity int `xorm:"unit_removable_skill_capacity"` + IsRankMax bool `xorm:"is_rank_max"` + IsLoveMax bool `xorm:"is_love_max"` + IsLevelMax bool `xorm:"is_level_max"` + IsSigned bool `xorm:"is_signed"` + IsSkillLevelMax bool `xorm:"is_skill_level_max"` + IsRemovableSkillCapacityMax bool `xorm:"is_removable_skill_capacity_max"` + FavoriteFlag bool `xorm:"favorite_flag"` + InsertDate int64 `xorm:"insert_date"` } diff --git a/internal/model/user/userliverecord.go b/internal/model/user/userliverecord.go index f66a6e0..d5e0537 100644 --- a/internal/model/user/userliverecord.go +++ b/internal/model/user/userliverecord.go @@ -26,123 +26,3 @@ type UserLiveRecord struct { func (UserLiveRecord) TableName() string { return "user_live_record" } - -// TODO: 转移到 schema 下 -type NotesList struct { - TimingSec float64 `json:"timing_sec"` - NotesAttribute int `json:"notes_attribute"` - NotesLevel int `json:"notes_level"` - Effect int `json:"effect"` - EffectValue int `json:"effect_value"` - Position int `json:"position"` -} - -type LiveInfo struct { - LiveDifficultyID int `json:"live_difficulty_id"` - IsRandom bool `json:"is_random"` - AcFlag int `json:"ac_flag"` - SwingFlag int `json:"swing_flag"` - NotesList []NotesList `json:"notes_list"` -} - -// TODO: 转移到 schema 下 -type PreciseList struct { - Count int `json:"count"` - Effect int `json:"effect"` - Accuracy int `json:"accuracy"` - Tap float64 `json:"tap"` - IsSame bool `json:"is_same"` - Release any `json:"release"` - Position int `json:"position"` - NoteNumber int `json:"note_number"` - FirstTouch any `json:"first_touch"` - Tp bool `json:"tp"` - Tpf any `json:"tpf"` -} - -// TODO: 转移到 schema 下 -type TotalStatus struct { - Hp int `json:"hp"` - Smile int `json:"smile"` - Cute int `json:"cute"` - Cool int `json:"cool"` -} - -type CenterBonus struct { - Hp int `json:"hp"` - Smile int `json:"smile"` - Cute int `json:"cute"` - Cool int `json:"cool"` -} - -type SiBonus struct { - Hp int `json:"hp"` - Smile int `json:"smile"` - Cute int `json:"cute"` - Cool int `json:"cool"` -} - -type AccessoryInfo struct { - AccessoryOwningUserID int `json:"accessory_owning_user_id"` - AccessoryID int `json:"accessory_id"` - Exp int `json:"exp"` - NextExp int `json:"next_exp"` - Level int `json:"level"` - MaxLevel int `json:"max_level"` - RankUpCount int `json:"rank_up_count"` - FavoriteFlag bool `json:"favorite_flag"` -} - -type UnitList struct { - UnitID int `json:"unit_id"` - Position int `json:"position"` - Level int `json:"level"` - LevelLimitID int `json:"level_limit_id"` - DisplayRank int `json:"display_rank"` - Love int `json:"love"` - UnitSkillLevel int `json:"unit_skill_level"` - IsRankMax bool `json:"is_rank_max"` - IsLoveMax bool `json:"is_love_max"` - IsLevelMax bool `json:"is_level_max"` - IsSigned bool `json:"is_signed"` - Rank int `json:"rank"` - MaxHp int `json:"max_hp"` - UnitRemovableSkillCapacity int `json:"unit_removable_skill_capacity"` - RemovableSkillIds []int `json:"removable_skill_ids"` - TotalStatus TotalStatus `json:"total_status"` - SiBonus SiBonus `json:"si_bonus"` - AccessoryInfo *AccessoryInfo `json:"accessory_info,omitempty"` -} - -type DeckInfo struct { - LiveDifficultyID int `json:"live_difficulty_id"` - TotalStatus TotalStatus `json:"total_status"` - CenterBonus CenterBonus `json:"center_bonus"` - SiBonus SiBonus `json:"si_bonus"` - UnitList []UnitList `json:"unit_list"` -} - -// TODO: 转移到 schema 下 -type Icon struct { - NormalID int `json:"normal_id"` - JustID int `json:"just_id"` - SlideID int `json:"slide_id"` -} - -type LiveSetting struct { - NotesSpeed float64 `json:"notes_speed"` - CutinBrightness int `json:"cutin_brightness"` - CutinType int `json:"cutin_type"` - EffectFlag bool `json:"effect_flag"` - StringSize int `json:"string_size"` - SeID int `json:"se_id"` - Icon Icon `json:"icon"` - BackgroundID int `json:"background_id"` - RandomValue int `json:"random_value"` -} - -// TODO: 转移到 schema 下 -type TriggerLog struct { - Position int `json:"position"` - ActivationRate int `json:"activation_rate"` -} diff --git a/internal/schema/api/item/list.go b/internal/schema/api/item/list.go new file mode 100644 index 0000000..42fc2cd --- /dev/null +++ b/internal/schema/api/item/list.go @@ -0,0 +1,26 @@ +package itemapischema + +type GeneralItemList struct { + ItemID int `json:"item_id"` + Amount int `json:"amount"` + UseButtonFlag bool `json:"use_button_flag"` + GeneralItemType int `json:"general_item_type"` +} + +type BuffItemList struct { + ItemID int `json:"item_id"` + Amount int `json:"amount"` + BuffType int `json:"buff_type"` +} + +type ListData struct { + GeneralItemList []GeneralItemList `json:"general_item_list"` + BuffItemList []BuffItemList `json:"buff_item_list"` +} + +type ListResp struct { + Result ListData `json:"result"` + Status int `json:"status"` + CommandNum bool `json:"commandNum"` + TimeStamp int64 `json:"timeStamp"` +} diff --git a/internal/schema/api/login/topinfo.go b/internal/schema/api/login/topinfo.go index ccd9378..298c621 100644 --- a/internal/schema/api/login/topinfo.go +++ b/internal/schema/api/login/topinfo.go @@ -8,18 +8,18 @@ type LicenseInfo struct { } type TopInfoData struct { - FriendActionCnt int `json:"friend_action_cnt"` - FriendGreetCnt int `json:"friend_greet_cnt"` - FriendVarietyCnt int `json:"friend_variety_cnt"` - FriendNewCnt int `json:"friend_new_cnt"` - PresentCnt int `json:"present_cnt"` + FriendActionCnt int64 `json:"friend_action_cnt"` + FriendGreetCnt int64 `json:"friend_greet_cnt"` + FriendVarietyCnt int64 `json:"friend_variety_cnt"` + FriendNewCnt int64 `json:"friend_new_cnt"` + PresentCnt int64 `json:"present_cnt"` SecretBoxBadgeFlag bool `json:"secret_box_badge_flag"` ServerDatetime string `json:"server_datetime"` ServerTimestamp int64 `json:"server_timestamp"` NoticeFriendDatetime string `json:"notice_friend_datetime"` NoticeMailDatetime string `json:"notice_mail_datetime"` - FriendsApprovalWaitCnt int `json:"friends_approval_wait_cnt"` - FriendsRequestCnt int `json:"friends_request_cnt"` + FriendsApprovalWaitCnt int64 `json:"friends_approval_wait_cnt"` + FriendsRequestCnt int64 `json:"friends_request_cnt"` IsTodayBirthday bool `json:"is_today_birthday"` LicenseInfo LicenseInfo `json:"license_info"` UsingBuffInfo []any `json:"using_buff_info"` diff --git a/internal/schema/api/profile/cardranking.go b/internal/schema/api/profile/cardranking.go index fb9baed..7eb4dda 100644 --- a/internal/schema/api/profile/cardranking.go +++ b/internal/schema/api/profile/cardranking.go @@ -8,8 +8,8 @@ type CardRankingData struct { } type CardRankingResp struct { - Result any `json:"result"` - Status int `json:"status"` - CommandNum bool `json:"commandNum"` - TimeStamp int64 `json:"timeStamp"` + Result []CardRankingData `json:"result"` + Status int `json:"status"` + CommandNum bool `json:"commandNum"` + TimeStamp int64 `json:"timeStamp"` } diff --git a/internal/schema/api/profile/info.go b/internal/schema/api/profile/info.go index 4332cf8..2c4635b 100644 --- a/internal/schema/api/profile/info.go +++ b/internal/schema/api/profile/info.go @@ -53,7 +53,7 @@ type UserInfo struct { UnitMax int `json:"unit_max"` EnergyMax int `json:"energy_max"` FriendMax int `json:"friend_max"` - UnitCnt int `json:"unit_cnt"` + UnitCnt int64 `json:"unit_cnt"` InviteCode string `json:"invite_code"` ElapsedTimeFromLogin string `json:"elapsed_time_from_login"` Introduction string `json:"introduction"` diff --git a/internal/schema/api/stamp/info.go b/internal/schema/api/stamp/info.go new file mode 100644 index 0000000..247a59f --- /dev/null +++ b/internal/schema/api/stamp/info.go @@ -0,0 +1,29 @@ +package stampapischema + +type StampList struct { + Position int `json:"position"` + StampID int `json:"stamp_id"` +} + +type SettingList struct { + StampSettingID int `json:"stamp_setting_id"` + MainFlag int `json:"main_flag"` + StampList []StampList `json:"stamp_list"` +} + +type StampSetting struct { + StampType int `json:"stamp_type"` + SettingList []SettingList `json:"setting_list"` +} + +type InfoData struct { + OwningStampIds []int `json:"owning_stamp_ids"` + StampSetting []StampSetting `json:"stamp_setting"` +} + +type InfoResp struct { + Result InfoData `json:"result"` + Status int `json:"status"` + CommandNum bool `json:"commandNum"` + TimeStamp int64 `json:"timeStamp"` +} diff --git a/internal/schema/eventscenario/startup.go b/internal/schema/eventscenario/startup.go new file mode 100644 index 0000000..fbfb8ec --- /dev/null +++ b/internal/schema/eventscenario/startup.go @@ -0,0 +1,28 @@ +package eventscenarioschema + +type StartUpReq struct { + Module string `json:"module"` + EventScenarioID int `json:"event_scenario_id"` + Action string `json:"action"` + TimeStamp int `json:"timeStamp"` + Mgd int `json:"mgd"` + CommandNum string `json:"commandNum"` +} + +type EventScenarioList struct { + EventID int `json:"event_id"` + Progress int `json:"progress"` + Status int `json:"status"` + EventScenarioID int `json:"event_scenario_id"` +} + +type StartUpData struct { + EventScenarioList EventScenarioList `json:"event_scenario_list"` + ScenarioAdjustment int `json:"scenario_adjustment"` +} + +type StartUpResp struct { + ResponseData StartUpData `json:"response_data"` + ReleaseInfo []any `json:"release_info"` + StatusCode int `json:"status_code"` +} diff --git a/internal/schema/friend/list.go b/internal/schema/friend/list.go index 716de77..1bb91e3 100644 --- a/internal/schema/friend/list.go +++ b/internal/schema/friend/list.go @@ -71,7 +71,7 @@ type FriendList struct { } type ListData struct { - ItemCount int `json:"item_count"` + ItemCount int64 `json:"item_count"` FriendList []FriendList `json:"friend_list"` NewFriendList []any `json:"new_friend_list"` ServerTimestamp int64 `json:"server_timestamp"` diff --git a/internal/schema/friend/search.go b/internal/schema/friend/search.go index 6cec8f6..960f3fb 100644 --- a/internal/schema/friend/search.go +++ b/internal/schema/friend/search.go @@ -17,7 +17,7 @@ type SearchUserInfo struct { UnitMax int `json:"unit_max"` EnergyMax int `json:"energy_max"` FriendMax int `json:"friend_max"` - UnitCnt int `json:"unit_cnt"` + UnitCnt int64 `json:"unit_cnt"` ElapsedTimeFromLogin string `json:"elapsed_time_from_login"` Comment string `json:"comment"` } diff --git a/internal/schema/liverecord/liverecord.go b/internal/schema/liverecord/liverecord.go new file mode 100644 index 0000000..1f5b0ca --- /dev/null +++ b/internal/schema/liverecord/liverecord.go @@ -0,0 +1,85 @@ +package liverecordschema + +type TotalStatus struct { + Hp int `json:"hp"` + Smile int `json:"smile"` + Cute int `json:"cute"` + Cool int `json:"cool"` +} + +type CenterBonus struct { + Hp int `json:"hp"` + Smile int `json:"smile"` + Cute int `json:"cute"` + Cool int `json:"cool"` +} + +type SiBonus struct { + Hp int `json:"hp"` + Smile int `json:"smile"` + Cute int `json:"cute"` + Cool int `json:"cool"` +} + +type AccessoryInfo struct { + AccessoryOwningUserID int `json:"accessory_owning_user_id"` + AccessoryID int `json:"accessory_id"` + Exp int `json:"exp"` + NextExp int `json:"next_exp"` + Level int `json:"level"` + MaxLevel int `json:"max_level"` + RankUpCount int `json:"rank_up_count"` + FavoriteFlag bool `json:"favorite_flag"` +} + +type UnitList struct { + UnitID int `json:"unit_id"` + Position int `json:"position"` + Level int `json:"level"` + LevelLimitID int `json:"level_limit_id"` + DisplayRank int `json:"display_rank"` + Love int `json:"love"` + UnitSkillLevel int `json:"unit_skill_level"` + IsRankMax bool `json:"is_rank_max"` + IsLoveMax bool `json:"is_love_max"` + IsLevelMax bool `json:"is_level_max"` + IsSigned bool `json:"is_signed"` + Rank int `json:"rank"` + MaxHp int `json:"max_hp"` + UnitRemovableSkillCapacity int `json:"unit_removable_skill_capacity"` + RemovableSkillIds []int `json:"removable_skill_ids"` + TotalStatus TotalStatus `json:"total_status"` + SiBonus SiBonus `json:"si_bonus"` + AccessoryInfo *AccessoryInfo `json:"accessory_info,omitempty"` +} + +type DeckInfo struct { + LiveDifficultyID int `json:"live_difficulty_id"` + TotalStatus TotalStatus `json:"total_status"` + CenterBonus CenterBonus `json:"center_bonus"` + SiBonus SiBonus `json:"si_bonus"` + UnitList []UnitList `json:"unit_list"` +} + +type Icon struct { + NormalID int `json:"normal_id"` + JustID int `json:"just_id"` + SlideID int `json:"slide_id"` +} + +type LiveSetting struct { + NotesSpeed float64 `json:"notes_speed"` + CutinBrightness int `json:"cutin_brightness"` + CutinType int `json:"cutin_type"` + EffectFlag bool `json:"effect_flag"` + StringSize int `json:"string_size"` + SeID int `json:"se_id"` + Icon Icon `json:"icon"` + BackgroundID int `json:"background_id"` + RandomValue int `json:"random_value"` +} + +type TriggerLog struct { + Position int `json:"position"` + ActivationRate int `json:"activation_rate"` +} diff --git a/internal/schema/notice/usergreetinghistory.go b/internal/schema/notice/usergreetinghistory.go index dbc6c9f..e2991da 100644 --- a/internal/schema/notice/usergreetinghistory.go +++ b/internal/schema/notice/usergreetinghistory.go @@ -1,7 +1,7 @@ package noticeschema type UserGreetingData struct { - ItemCount int `json:"item_count"` + ItemCount int64 `json:"item_count"` HasNext bool `json:"has_next"` NoticeList []UserGreetingNotice `json:"notice_list"` ServerTimestamp int64 `json:"server_timestamp"` diff --git a/internal/session/accessory.go b/internal/session/accessory.go index caddcc2..712aa0e 100644 --- a/internal/session/accessory.go +++ b/internal/session/accessory.go @@ -3,6 +3,7 @@ package session import ( accessorymodel "honoka-chan/internal/model/accessory" usermodel "honoka-chan/internal/model/user" + liverecordschema "honoka-chan/internal/schema/liverecord" ) func (ss *Session) GetUserAccessoryWearByUnitOwningUserID(unitOwningUserID int) (bool, *usermodel.UserAccessoryWear) { @@ -29,7 +30,7 @@ func (ss *Session) GetAccessoryByAccessoryOwningUserID(accessoryOwningUserID int return has, &accessoryData } -func (ss *Session) GetUserAccessoryInfoByUnitOwningUserID(unitOwningUserID int) (bool, *usermodel.AccessoryInfo) { +func (ss *Session) GetUserAccessoryInfoByUnitOwningUserID(unitOwningUserID int) (bool, *liverecordschema.AccessoryInfo) { has, wearData := ss.GetUserAccessoryWearByUnitOwningUserID(unitOwningUserID) if !has { return false, nil @@ -40,7 +41,7 @@ func (ss *Session) GetUserAccessoryInfoByUnitOwningUserID(unitOwningUserID int) return false, nil } - return has, &usermodel.AccessoryInfo{ + return has, &liverecordschema.AccessoryInfo{ AccessoryOwningUserID: wearData.AccessoryOwningUserID, AccessoryID: accessoryData.AccessoryID, Exp: accessoryData.Exp, diff --git a/internal/session/live.go b/internal/session/live.go index cdf451d..ef96d50 100644 --- a/internal/session/live.go +++ b/internal/session/live.go @@ -4,6 +4,7 @@ import ( "honoka-chan/internal/constant" usermodel "honoka-chan/internal/model/user" liveschema "honoka-chan/internal/schema/live" + liverecordschema "honoka-chan/internal/schema/liverecord" ) // Move from LevelDB to SQLite @@ -110,14 +111,14 @@ func (ss *Session) GetLiveInfo(LiveDifficultyID int) (bool, *liveschema.LiveInfo } } -func (ss *Session) GetDeckInfo(deckID int) (bool, *usermodel.DeckInfo) { +func (ss *Session) GetDeckInfo(deckID int) (bool, *liverecordschema.DeckInfo) { // 卡片信息 totalHp, totalSmile, totalCute, totalCool := 0, 0, 0, 0 - unitData := []usermodel.UnitList{} + unitData := []liverecordschema.UnitList{} units := ss.GetUserDeckUnit(deckID) for _, u := range units { _, uData := ss.GetUnitInfo(u.UnitID) - tempUnitData := usermodel.UnitList{ + tempUnitData := liverecordschema.UnitList{ UnitID: u.UnitID, Position: u.Position, Level: u.Level, @@ -132,13 +133,13 @@ func (ss *Session) GetDeckInfo(deckID int) (bool, *usermodel.DeckInfo) { Rank: uData.Rank, MaxHp: uData.MaxHp, UnitRemovableSkillCapacity: uData.UnitRemovableSkillCapacity, - TotalStatus: usermodel.TotalStatus{ + TotalStatus: liverecordschema.TotalStatus{ Hp: uData.MaxHp, Smile: uData.Smile, Cute: uData.Cute, Cool: uData.Cool, }, - SiBonus: usermodel.SiBonus{ + SiBonus: liverecordschema.SiBonus{ Hp: 0, Smile: 0, Cute: 0, @@ -165,20 +166,20 @@ func (ss *Session) GetDeckInfo(deckID int) (bool, *usermodel.DeckInfo) { unitData = append(unitData, tempUnitData) } - return true, &usermodel.DeckInfo{ - TotalStatus: usermodel.TotalStatus{ + return true, &liverecordschema.DeckInfo{ + TotalStatus: liverecordschema.TotalStatus{ Hp: totalHp, Smile: totalSmile, Cute: totalCute, Cool: totalCool, }, - CenterBonus: usermodel.CenterBonus{ // TODO: 计算C位加成 + CenterBonus: liverecordschema.CenterBonus{ // TODO: 计算C位加成 Hp: 0, Smile: 0, Cute: 0, Cool: 0, }, - SiBonus: usermodel.SiBonus{ + SiBonus: liverecordschema.SiBonus{ Hp: 0, Smile: 0, Cute: 0, diff --git a/internal/utils/serverdata.go b/internal/utils/serverdata.go new file mode 100644 index 0000000..27db73e --- /dev/null +++ b/internal/utils/serverdata.go @@ -0,0 +1,16 @@ +package utils + +import ( + "encoding/json" + "honoka-chan/pkg/utils" + "path/filepath" +) + +const serverDataPath = "assets/serverdata" + +func LoadServerData[T any](fileName string) (T, error) { + var data T + filePath := filepath.Join(serverDataPath, fileName) + err := json.Unmarshal([]byte(utils.ReadAllText(filePath)), &data) + return data, err +} diff --git a/pkg/sifcap/sifcap.go b/pkg/sifcap/sifcap.go deleted file mode 100644 index fb4c264..0000000 --- a/pkg/sifcap/sifcap.go +++ /dev/null @@ -1,620 +0,0 @@ -// Copyright 2012 Google, Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the LICENSE file in the root of the source -// tree. - -// The pcapdump binary implements a tcpdump-like command line tool with gopacket -// using pcap as a backend data collection mechanism. -package sifcap - -import ( - "bufio" - "bytes" - "compress/gzip" - "encoding/binary" - "encoding/hex" - "flag" - "fmt" - "io" - "log" - "net/http" - "os" - "os/signal" - "runtime/pprof" - "strings" - "sync" - "time" - - "github.com/google/gopacket" - "github.com/google/gopacket/examples/util" - "github.com/google/gopacket/ip4defrag" - "github.com/google/gopacket/layers" // pulls in all layers decoders - "github.com/google/gopacket/pcap" - "github.com/google/gopacket/reassembly" -) - -var maxcount = flag.Int("c", -1, "Only grab this many packets, then exit") -var decoder = flag.String("decoder", "", "Name of the decoder to use (default: guess from capture)") -var statsevery = flag.Int("stats", 1000, "Output statistics every N packets") -var lazy = flag.Bool("lazy", false, "If true, do lazy decoding") -var nodefrag = flag.Bool("nodefrag", false, "If true, do not do IPv4 defrag") -var checksum = flag.Bool("checksum", false, "Check TCP checksum") -var nooptcheck = flag.Bool("nooptcheck", false, "Do not check TCP options (useful to ignore MSS on captures with TSO)") -var ignorefsmerr = flag.Bool("ignorefsmerr", false, "Ignore TCP FSM errors") -var allowmissinginit = flag.Bool("allowmissinginit", false, "Support streams without SYN/SYN+ACK/ACK sequence") -var verbose = flag.Bool("verbose", false, "Be verbose") -var debug = flag.Bool("debug", false, "Display debug information") -var quiet = flag.Bool("quiet", true, "Be quiet regarding errors") - -// http -var nohttp = flag.Bool("nohttp", false, "Disable HTTP parsing") - -var hexdump = flag.Bool("dump", false, "Dump HTTP request/response as hex") -var hexdumppkt = flag.Bool("dumppkt", false, "Dump packet as hex") - -// capture -var iface = flag.String("i", "enp8s0", "Interface to read packets from") -var fname = flag.String("r", "", "Filename to read from, overrides -i") -var snaplen = flag.Int("s", 65536, "Snap length (number of bytes max to read per packet") -var tstype = flag.String("timestamp_type", "", "Type of timestamps to use") -var promisc = flag.Bool("promisc", true, "Set promiscuous mode") - -var memprofile = flag.String("memprofile", "", "Write memory profile") - -var stats struct { - ipdefrag int - missedBytes int - pkt int - sz int - totalsz int - rejectFsm int - rejectOpt int - rejectConnFsm int - reassembled int - outOfOrderBytes int - outOfOrderPackets int - biggestChunkBytes int - biggestChunkPackets int - overlapBytes int - overlapPackets int -} - -const closeTimeout time.Duration = time.Hour * 24 // Closing inactive: TODO: from CLI -const timeout time.Duration = time.Minute * 5 // Pending bytes: TODO: from CLI - -/* - * HTTP part - */ - -type httpReader struct { - ident string - isClient bool - bytes chan []byte - data []byte - hexdump bool - parent *tcpStream -} - -func (h *httpReader) Read(p []byte) (int, error) { - ok := true - for ok && len(h.data) == 0 { - h.data, ok = <-h.bytes - } - if !ok || len(h.data) == 0 { - return 0, io.EOF - } - - l := copy(p, h.data) - h.data = h.data[l:] - return l, nil -} - -var outputLevel int -var errorsMap map[string]uint -var errorsMapMutex sync.Mutex -var errors uint - -// Too bad for perf that a... is evaluated -func Error(t string, s string, a ...any) { - errorsMapMutex.Lock() - errors++ - errorsMap[t] = errorsMap[t] + 1 - errorsMapMutex.Unlock() - if outputLevel >= 0 { - fmt.Printf(s, a...) - } -} -func Info(s string, a ...any) { - if outputLevel >= 1 { - fmt.Printf(s, a...) - } -} -func Debug(s string, a ...any) { - if outputLevel >= 2 { - fmt.Printf(s, a...) - } -} - -func (h *httpReader) run(wg *sync.WaitGroup) { - defer wg.Done() - b := bufio.NewReader(h) - for { - if h.isClient { - req, err := http.ReadRequest(b) - if err == io.EOF || err == io.ErrUnexpectedEOF { - break - } else if err != nil { - Error("HTTP-request", "HTTP/%s Request error: %s (%v,%+v)\n", h.ident, err, err, err) - continue - } - body, err := io.ReadAll(req.Body) - s := len(body) - if err != nil { - Error("HTTP-request-body", "Got body err: %s\n", err) - } else if h.hexdump { - Info("Body(%d/0x%x)\n%s\n", len(body), len(body), hex.Dump(body)) - } - req.Body.Close() - Info("HTTP/%s Request: %s %s (body:%d)\n", h.ident, req.Method, req.URL, s) - h.parent.Lock() - h.parent.urls = append(h.parent.urls, req.URL.String()) - h.parent.Unlock() - } else { - res, err := http.ReadResponse(b, nil) - var req string - h.parent.Lock() - if len(h.parent.urls) == 0 { - req = "" - } else { - req, h.parent.urls = h.parent.urls[0], h.parent.urls[1:] - } - h.parent.Unlock() - if err == io.EOF || err == io.ErrUnexpectedEOF { - break - } else if err != nil { - Error("HTTP-response", "HTTP/%s Response error: %s (%v,%+v)\n", h.ident, err, err, err) - continue - } - body, _ := io.ReadAll(res.Body) - s := len(body) - if err != nil { - Error("HTTP-response-body", "HTTP/%s: failed to get body(parsed len:%d): %s\n", h.ident, s, err) - } - if h.hexdump { - Info("Body(%d/0x%x)\n%s\n", len(body), len(body), hex.Dump(body)) - } - res.Body.Close() - sym := "," - if res.ContentLength > 0 && res.ContentLength != int64(s) { - sym = "!=" - } - contentType, ok := res.Header["Content-Type"] - if !ok { - contentType = []string{http.DetectContentType(body)} - } - encoding := res.Header["Content-Encoding"] - Info("HTTP/%s Response: %s URL:%s (%d%s%d%s) -> %s\n", h.ident, res.Status, req, res.ContentLength, sym, s, contentType, encoding[0]) - if err == nil { - var r io.Reader - r = bytes.NewBuffer(body) - if len(encoding) > 0 && (encoding[0] == "gzip" || encoding[0] == "deflate") { - r, err = gzip.NewReader(r) - if err != nil { - Error("HTTP-gunzip", "Failed to gzip decode: %s", err) - } - } - if err == nil { - res, _ := io.ReadAll(r) - fmt.Println(string(res)) - } - } - } - } -} - -/* - * The TCP factory: returns a new Stream - */ -type tcpStreamFactory struct { - wg sync.WaitGroup - doHTTP bool -} - -func (factory *tcpStreamFactory) New(net, transport gopacket.Flow, tcp *layers.TCP, ac reassembly.AssemblerContext) reassembly.Stream { - Debug("* NEW: %s %s\n", net, transport) - fsmOptions := reassembly.TCPSimpleFSMOptions{ - SupportMissingEstablishment: *allowmissinginit, - } - stream := &tcpStream{ - net: net, - transport: transport, - isDNS: tcp.SrcPort == 53 || tcp.DstPort == 53, - isHTTP: (tcp.SrcPort == 80 || tcp.DstPort == 80) && factory.doHTTP, - reversed: tcp.SrcPort == 80, - tcpstate: reassembly.NewTCPSimpleFSM(fsmOptions), - ident: fmt.Sprintf("%s:%s", net, transport), - optchecker: reassembly.NewTCPOptionCheck(), - } - if stream.isHTTP { - stream.client = httpReader{ - bytes: make(chan []byte), - ident: fmt.Sprintf("%s %s", net, transport), - hexdump: *hexdump, - parent: stream, - isClient: true, - } - stream.server = httpReader{ - bytes: make(chan []byte), - ident: fmt.Sprintf("%s %s", net.Reverse(), transport.Reverse()), - hexdump: *hexdump, - parent: stream, - } - factory.wg.Add(2) - go stream.client.run(&factory.wg) - go stream.server.run(&factory.wg) - } - return stream -} - -func (factory *tcpStreamFactory) WaitGoRoutines() { - factory.wg.Wait() -} - -/* - * The assembler context - */ -type Context struct { - CaptureInfo gopacket.CaptureInfo -} - -func (c *Context) GetCaptureInfo() gopacket.CaptureInfo { - return c.CaptureInfo -} - -/* - * TCP stream - */ - -/* It's a connection (bidirectional) */ -type tcpStream struct { - tcpstate *reassembly.TCPSimpleFSM - fsmerr bool - optchecker reassembly.TCPOptionCheck - net, transport gopacket.Flow - isDNS bool - isHTTP bool - reversed bool - client httpReader - server httpReader - urls []string - ident string - sync.Mutex -} - -func (t *tcpStream) Accept(tcp *layers.TCP, ci gopacket.CaptureInfo, dir reassembly.TCPFlowDirection, nextSeq reassembly.Sequence, start *bool, ac reassembly.AssemblerContext) bool { - // FSM - if !t.tcpstate.CheckState(tcp, dir) { - Error("FSM", "%s: Packet rejected by FSM (state:%s)\n", t.ident, t.tcpstate.String()) - stats.rejectFsm++ - if !t.fsmerr { - t.fsmerr = true - stats.rejectConnFsm++ - } - if !*ignorefsmerr { - return false - } - } - // Options - err := t.optchecker.Accept(tcp, ci, dir, nextSeq, start) - if err != nil { - Error("OptionChecker", "%s: Packet rejected by OptionChecker: %s\n", t.ident, err) - stats.rejectOpt++ - if !*nooptcheck { - return false - } - } - // Checksum - accept := true - if *checksum { - c, err := tcp.ComputeChecksum() - if err != nil { - Error("ChecksumCompute", "%s: Got error computing checksum: %s\n", t.ident, err) - accept = false - } else if c != 0x0 { - Error("Checksum", "%s: Invalid checksum: 0x%x\n", t.ident, c) - accept = false - } - } - if !accept { - stats.rejectOpt++ - } - return accept -} - -func (t *tcpStream) ReassembledSG(sg reassembly.ScatterGather, ac reassembly.AssemblerContext) { - dir, start, end, skip := sg.Info() - length, saved := sg.Lengths() - // update stats - sgStats := sg.Stats() - if skip > 0 { - stats.missedBytes += skip - } - stats.sz += length - saved - stats.pkt += sgStats.Packets - if sgStats.Chunks > 1 { - stats.reassembled++ - } - stats.outOfOrderPackets += sgStats.QueuedPackets - stats.outOfOrderBytes += sgStats.QueuedBytes - if length > stats.biggestChunkBytes { - stats.biggestChunkBytes = length - } - if sgStats.Packets > stats.biggestChunkPackets { - stats.biggestChunkPackets = sgStats.Packets - } - if sgStats.OverlapBytes != 0 && sgStats.OverlapPackets == 0 { - fmt.Printf("bytes:%d, pkts:%d\n", sgStats.OverlapBytes, sgStats.OverlapPackets) - panic("Invalid overlap") - } - stats.overlapBytes += sgStats.OverlapBytes - stats.overlapPackets += sgStats.OverlapPackets - - var ident string - if dir == reassembly.TCPDirClientToServer { - ident = fmt.Sprintf("%v %v(%s): ", t.net, t.transport, dir) - } else { - ident = fmt.Sprintf("%v %v(%s): ", t.net.Reverse(), t.transport.Reverse(), dir) - } - Debug("%s: SG reassembled packet with %d bytes (start:%v,end:%v,skip:%d,saved:%d,nb:%d,%d,overlap:%d,%d)\n", ident, length, start, end, skip, saved, sgStats.Packets, sgStats.Chunks, sgStats.OverlapBytes, sgStats.OverlapPackets) - if skip == -1 && *allowmissinginit { - // this is allowed - } else if skip != 0 { - // Missing bytes in stream: do not even try to parse it - return - } - data := sg.Fetch(length) - if t.isDNS { - dns := &layers.DNS{} - var decoded []gopacket.LayerType - if len(data) < 2 { - if len(data) > 0 { - sg.KeepFrom(0) - } - return - } - dnsSize := binary.BigEndian.Uint16(data[:2]) - missing := int(dnsSize) - len(data[2:]) - Debug("dnsSize: %d, missing: %d\n", dnsSize, missing) - if missing > 0 { - Info("Missing some bytes: %d\n", missing) - sg.KeepFrom(0) - return - } - p := gopacket.NewDecodingLayerParser(layers.LayerTypeDNS, dns) - err := p.DecodeLayers(data[2:], &decoded) - if err != nil { - Error("DNS-parser", "Failed to decode DNS: %v\n", err) - } else { - Debug("DNS: %s\n", gopacket.LayerDump(dns)) - } - if len(data) > 2+int(dnsSize) { - sg.KeepFrom(2 + int(dnsSize)) - } - } else if t.isHTTP { - if length > 0 { - if *hexdump { - Debug("Feeding http with:\n%s", hex.Dump(data)) - } - if dir == reassembly.TCPDirClientToServer && !t.reversed { - t.client.bytes <- data - } else { - t.server.bytes <- data - } - } - } -} - -func (t *tcpStream) ReassemblyComplete(ac reassembly.AssemblerContext) bool { - Debug("%s: Connection closed\n", t.ident) - if t.isHTTP { - close(t.client.bytes) - close(t.server.bytes) - } - // do not remove the connection to allow last ACK - return false -} - -func Start() { - defer util.Run()() - var handle *pcap.Handle - var err error - if *debug { - outputLevel = 2 - } else if *verbose { - outputLevel = 1 - } else if *quiet { - outputLevel = -1 - } - errorsMap = make(map[string]uint) - if *fname != "" { - if handle, err = pcap.OpenOffline(*fname); err != nil { - log.Fatal("PCAP OpenOffline error:", err) - } - } else { - // This is a little complicated because we want to allow all possible options - // for creating the packet capture handle... instead of all this you can - // just call pcap.OpenLive if you want a simple handle. - inactive, err := pcap.NewInactiveHandle(*iface) - if err != nil { - log.Fatalf("could not create: %v", err) - } - defer inactive.CleanUp() - if err = inactive.SetSnapLen(*snaplen); err != nil { - log.Fatalf("could not set snap length: %v", err) - } else if err = inactive.SetPromisc(*promisc); err != nil { - log.Fatalf("could not set promisc mode: %v", err) - } else if err = inactive.SetTimeout(time.Second); err != nil { - log.Fatalf("could not set timeout: %v", err) - } - if *tstype != "" { - if t, err := pcap.TimestampSourceFromString(*tstype); err != nil { - log.Fatalf("Supported timestamp types: %v", inactive.SupportedTimestamps()) - } else if err := inactive.SetTimestampSource(t); err != nil { - log.Fatalf("Supported timestamp types: %v", inactive.SupportedTimestamps()) - } - } - if handle, err = inactive.Activate(); err != nil { - log.Fatal("PCAP Activate error:", err) - } - defer handle.Close() - } - if len(flag.Args()) > 0 { - bpffilter := strings.Join(flag.Args(), " ") - Info("Using BPF filter %q\n", bpffilter) - if err = handle.SetBPFFilter(bpffilter); err != nil { - log.Fatal("BPF filter error:", err) - } - } - - var dec gopacket.Decoder - var ok bool - decoder_name := *decoder - if decoder_name == "" { - decoder_name = handle.LinkType().String() - } - if dec, ok = gopacket.DecodersByLayerName[decoder_name]; !ok { - log.Fatalln("No decoder named", decoder_name) - } - source := gopacket.NewPacketSource(handle, dec) - source.Lazy = *lazy - source.NoCopy = true - Info("Starting to read packets\n") - count := 0 - bytes := int64(0) - start := time.Now() - defragger := ip4defrag.NewIPv4Defragmenter() - - streamFactory := &tcpStreamFactory{doHTTP: !*nohttp} - streamPool := reassembly.NewStreamPool(streamFactory) - assembler := reassembly.NewAssembler(streamPool) - - signalChan := make(chan os.Signal, 1) - signal.Notify(signalChan, os.Interrupt) - - for packet := range source.Packets() { - count++ - Debug("PACKET #%d\n", count) - data := packet.Data() - bytes += int64(len(data)) - if *hexdumppkt { - Debug("Packet content (%d/0x%x)\n%s\n", len(data), len(data), hex.Dump(data)) - } - - // defrag the IPv4 packet if required - if !*nodefrag { - ip4Layer := packet.Layer(layers.LayerTypeIPv4) - if ip4Layer == nil { - continue - } - ip4 := ip4Layer.(*layers.IPv4) - l := ip4.Length - newip4, err := defragger.DefragIPv4(ip4) - if err != nil { - log.Fatalln("Error while de-fragmenting", err) - } else if newip4 == nil { - Debug("Fragment...\n") - continue // packet fragment, we don't have whole packet yet. - } - if newip4.Length != l { - stats.ipdefrag++ - Debug("Decoding re-assembled packet: %s\n", newip4.NextLayerType()) - pb, ok := packet.(gopacket.PacketBuilder) - if !ok { - panic("Not a PacketBuilder") - } - nextDecoder := newip4.NextLayerType() - nextDecoder.Decode(newip4.Payload, pb) - } - } - - tcp := packet.Layer(layers.LayerTypeTCP) - if tcp != nil { - tcp := tcp.(*layers.TCP) - if *checksum { - err := tcp.SetNetworkLayerForChecksum(packet.NetworkLayer()) - if err != nil { - log.Fatalf("Failed to set network layer for checksum: %s\n", err) - } - } - c := Context{ - CaptureInfo: packet.Metadata().CaptureInfo, - } - stats.totalsz += len(tcp.Payload) - assembler.AssembleWithContext(packet.NetworkLayer().NetworkFlow(), tcp, &c) - } - if count%*statsevery == 0 { - ref := packet.Metadata().CaptureInfo.Timestamp - flushed, closed := assembler.FlushWithOptions(reassembly.FlushOptions{T: ref.Add(-timeout), TC: ref.Add(-closeTimeout)}) - Debug("Forced flush: %d flushed, %d closed (%s)", flushed, closed, ref) - } - - done := *maxcount > 0 && count >= *maxcount - if count%*statsevery == 0 || done { - errorsMapMutex.Lock() - errorMapLen := len(errorsMap) - errorsMapMutex.Unlock() - fmt.Fprintf(os.Stderr, "Processed %v packets (%v bytes) in %v (errors: %v, errTypes:%v)\n", count, bytes, time.Since(start), errors, errorMapLen) - } - select { - case <-signalChan: - fmt.Fprintf(os.Stderr, "\nCaught SIGINT: aborting\n") - done = true - default: - // NOP: continue - } - if done { - break - } - } - - closed := assembler.FlushAll() - Debug("Final flush: %d closed", closed) - if outputLevel >= 2 { - streamPool.Dump() - } - - if *memprofile != "" { - f, err := os.Create(*memprofile) - if err != nil { - log.Fatal(err) - } - pprof.WriteHeapProfile(f) - f.Close() - } - - streamFactory.WaitGoRoutines() - Debug("%s\n", assembler.Dump()) - if !*nodefrag { - fmt.Printf("IPdefrag:\t\t%d\n", stats.ipdefrag) - } - fmt.Printf("TCP stats:\n") - fmt.Printf(" missed bytes:\t\t%d\n", stats.missedBytes) - fmt.Printf(" total packets:\t\t%d\n", stats.pkt) - fmt.Printf(" rejected FSM:\t\t%d\n", stats.rejectFsm) - fmt.Printf(" rejected Options:\t%d\n", stats.rejectOpt) - fmt.Printf(" reassembled bytes:\t%d\n", stats.sz) - fmt.Printf(" total TCP bytes:\t%d\n", stats.totalsz) - fmt.Printf(" conn rejected FSM:\t%d\n", stats.rejectConnFsm) - fmt.Printf(" reassembled chunks:\t%d\n", stats.reassembled) - fmt.Printf(" out-of-order packets:\t%d\n", stats.outOfOrderPackets) - fmt.Printf(" out-of-order bytes:\t%d\n", stats.outOfOrderBytes) - fmt.Printf(" biggest-chunk packets:\t%d\n", stats.biggestChunkPackets) - fmt.Printf(" biggest-chunk bytes:\t%d\n", stats.biggestChunkBytes) - fmt.Printf(" overlap packets:\t%d\n", stats.overlapPackets) - fmt.Printf(" overlap bytes:\t\t%d\n", stats.overlapBytes) - fmt.Printf("Errors: %d\n", errors) - for e := range errorsMap { - fmt.Printf(" %s:\t\t%d\n", e, errorsMap[e]) - } -} diff --git a/static/templates/admin/nav/css.html b/static/templates/admin/nav/css.html index 7d2f5a7..f72ca2f 100644 --- a/static/templates/admin/nav/css.html +++ b/static/templates/admin/nav/css.html @@ -36,14 +36,38 @@ background-color: #e4007f; } - .layui-nav-tree .layui-nav-child dd.layui-this, - .layui-nav-tree .layui-nav-child dd.layui-this a, .layui-nav-tree .layui-this, .layui-nav-tree .layui-this>a, .layui-nav-tree .layui-this>a:hover { background-color: #ff6699 !important; } + .layui-nav-tree .layui-nav-child { + padding: 0 !important; + background-color: rgba(0, 0, 0, 0.18) !important; + } + + .layui-nav-tree .layui-nav-child dd { + margin: 0; + padding: 0; + background: transparent !important; + } + + .layui-nav-tree .layui-nav-child dd>a { + display: block; + height: 40px; + line-height: 40px; + padding: 0 20px 0 42px; + box-sizing: border-box; + background: transparent !important; + } + + .layui-nav-tree .layui-nav-child dd>a.admin-subnav-active, + .layui-nav-tree .layui-nav-child dd>a.admin-subnav-active:hover { + background-color: #ff6699 !important; + color: #fff !important; + } + .admin-mobile-mask { display: none; } diff --git a/static/templates/admin/nav/side.html b/static/templates/admin/nav/side.html index 5221766..4ba517d 100644 --- a/static/templates/admin/nav/side.html +++ b/static/templates/admin/nav/side.html @@ -5,14 +5,14 @@
  • 用户设置
    -
    个人资料
    +
    个人资料
  • 卡片管理
    -
    卡片一览
    -
    卡片导入 +
    卡片一览
    +
    卡片导入
  • diff --git a/static/templates/admin/upload.html b/static/templates/admin/upload.html index c160fac..cf781d9 100644 --- a/static/templates/admin/upload.html +++ b/static/templates/admin/upload.html @@ -8,7 +8,7 @@ SIF 小助手 {{ template "admin/nav/css.html" . }}