diff --git a/README.md b/README.md index fa0e311..52a02f1 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,9 @@ It is just so interesting. What it can do is under exploration. ## 下载 Download [这里 Here](https://github.com/Lost-MSth/Arcaea-server/releases) -[Arcaea](https://konmai.cn/#arcaea) +[Arcaea](https://arcaea.lowiro.com/zh) +> Konmai下载站因不可抗力关闭,请从官方网站下载 +> Konmai download website is closed due to force majeure. Please download it from the official website. ## 更新日志 Update log 只保留最新版本 Only keep the latest version. diff --git a/latest version/database/arcsong.db b/latest version/database/arcsong.db index 274f905..6b4a5dd 100644 Binary files a/latest version/database/arcsong.db and b/latest version/database/arcsong.db differ diff --git a/latest version/database/database_initialize.py b/latest version/database/database_initialize.py index c6f12c3..43a633f 100644 --- a/latest version/database/database_initialize.py +++ b/latest version/database/database_initialize.py @@ -4,7 +4,7 @@ import json # 数据库初始化文件,删掉arcaea_database.db文件后运行即可,谨慎使用 -ARCAEA_SERVER_VERSION = 'v2.6.4' +ARCAEA_SERVER_VERSION = 'v2.6.5' def main(path='./'): @@ -228,6 +228,7 @@ def main(path='./'): c.execute('''create table if not exists purchase_item(purchase_name text, item_id text, type text, + amount int, primary key(purchase_name, item_id, type) );''') c.execute('''create table if not exists user_save(user_id int primary key, @@ -379,7 +380,7 @@ def main(path='./'): c.execute('''insert into item values(?,"core",1,'')''', (i,)) world_songs = ["babaroque", "shadesoflight", "kanagawa", "lucifer", "anokumene", "ignotus", "rabbitintheblackroom", "qualia", "redandblue", "bookmaker", "darakunosono", "espebranch", "blacklotus", "givemeanightmare", "vividtheory", "onefr", "gekka", "vexaria3", "infinityheaven3", "fairytale3", "goodtek3", "suomi", "rugie", "faintlight", "harutopia", "goodtek", "dreaminattraction", "syro", "diode", "freefall", "grimheart", "blaster", - "cyberneciacatharsis", "monochromeprincess", "revixy", "vector", "supernova", "nhelv", "purgatorium3", "dement3", "crossover", "guardina", "axiumcrisis", "worldvanquisher", "sheriruth", "pragmatism", "gloryroad", "etherstrike", "corpssansorganes", "lostdesire", "blrink", "essenceoftwilight", "lapis", "solitarydream", "lumia3", "purpleverse", "moonheart3", "glow", "enchantedlove", "take", "lifeispiano", "vandalism", "nexttoyou3", "lostcivilization3", "turbocharger", "bookmaker3", "laqryma3", "kyogenkigo", "hivemind", "seclusion", "quonwacca3", "bluecomet", "energysynergymatrix"] + "cyberneciacatharsis", "monochromeprincess", "revixy", "vector", "supernova", "nhelv", "purgatorium3", "dement3", "crossover", "guardina", "axiumcrisis", "worldvanquisher", "sheriruth", "pragmatism", "gloryroad", "etherstrike", "corpssansorganes", "lostdesire", "blrink", "essenceoftwilight", "lapis", "solitarydream", "lumia3", "purpleverse", "moonheart3", "glow", "enchantedlove", "take", "lifeispiano", "vandalism", "nexttoyou3", "lostcivilization3", "turbocharger", "bookmaker3", "laqryma3", "kyogenkigo", "hivemind", "seclusion", "quonwacca3", "bluecomet", "energysynergymatrix", "gengaozo", "lastendconductor3"] for i in world_songs: c.execute('''insert into item values(?,"world_song",1,'')''', (i,)) @@ -411,10 +412,17 @@ def main(path='./'): _id = '' else: _id = j['_id'] - c.execute('''insert into item values(?,?,?,?)''', - (j['id'], j['type'], j['is_available'], _id)) - c.execute('''insert into purchase_item values(?,?,?)''', - (i['name'], j['id'], j['type'])) + c.execute( + '''select exists(select * from item where item_id=?)''', (j['id'],)) + if c.fetchone() == (0,): + c.execute('''insert into item values(?,?,?,?)''', + (j['id'], j['type'], j['is_available'], _id)) + if 'amount' in j: + amount = j['amount'] + else: + amount = 1 + c.execute('''insert into purchase_item values(?,?,?,?)''', + (i['name'], j['id'], j['type'], amount)) # item初始化 f = open(path+'singles.json', 'r') diff --git a/latest version/database/packs.json b/latest version/database/packs.json index a342d1c..e1532df 100644 --- a/latest version/database/packs.json +++ b/latest version/database/packs.json @@ -4,6 +4,11 @@ "type": "pack", "id": "core", "is_available": true + }, { + "type": "core", + "amount": 5, + "id": "core_generic", + "is_available": true }], "price": 500, "orig_price": 500, @@ -19,6 +24,11 @@ "type": "character", "id": "kou", "is_available": true + }, { + "type": "core", + "amount": 5, + "id": "core_generic", + "is_available": true }], "price": 500, "orig_price": 500, @@ -34,6 +44,11 @@ "type": "character", "id": "sapphire", "is_available": true + }, { + "type": "core", + "amount": 5, + "id": "core_generic", + "is_available": true }], "price": 500, "orig_price": 500, @@ -49,6 +64,11 @@ "type": "character", "id": "lethe", "is_available": true + }, { + "type": "core", + "amount": 5, + "id": "core_generic", + "is_available": true }], "price": 500, "orig_price": 500, @@ -60,6 +80,11 @@ "type": "pack", "id": "yugamu", "is_available": true + }, { + "type": "core", + "amount": 5, + "id": "core_generic", + "is_available": true }], "price": 500, "orig_price": 500, @@ -71,6 +96,11 @@ "type": "pack", "id": "lanota", "is_available": true + }, { + "type": "core", + "amount": 5, + "id": "core_generic", + "is_available": true }], "price": 500, "orig_price": 500, @@ -82,6 +112,11 @@ "type": "pack", "id": "nijuusei", "is_available": true + }, { + "type": "core", + "amount": 5, + "id": "core_generic", + "is_available": true }], "price": 500, "orig_price": 500, @@ -93,6 +128,11 @@ "type": "pack", "id": "rei", "is_available": true + }, { + "type": "core", + "amount": 5, + "id": "core_generic", + "is_available": true }], "price": 500, "orig_price": 500, @@ -104,6 +144,11 @@ "type": "pack", "id": "tonesphere", "is_available": true + }, { + "type": "core", + "amount": 5, + "id": "core_generic", + "is_available": true }], "price": 500, "orig_price": 500, @@ -115,6 +160,11 @@ "type": "pack", "id": "groovecoaster", "is_available": true + }, { + "type": "core", + "amount": 5, + "id": "core_generic", + "is_available": true }], "price": 500, "orig_price": 500, @@ -126,6 +176,11 @@ "type": "pack", "id": "zettai", "is_available": true + }, { + "type": "core", + "amount": 5, + "id": "core_generic", + "is_available": true }], "price": 500, "orig_price": 500, @@ -137,6 +192,11 @@ "type": "pack", "id": "chunithm", "is_available": true + }, { + "type": "core", + "amount": 3, + "id": "core_generic", + "is_available": true }], "price": 300, "orig_price": 300 @@ -146,6 +206,11 @@ "type": "pack", "id": "prelude", "is_available": true + }, { + "type": "core", + "amount": 4, + "id": "core_generic", + "is_available": true }], "price": 400, "orig_price": 400, @@ -157,6 +222,11 @@ "type": "pack", "id": "omatsuri", "is_available": true + }, { + "type": "core", + "amount": 5, + "id": "core_generic", + "is_available": true }], "price": 500, "orig_price": 500, @@ -168,6 +238,11 @@ "type": "pack", "id": "vs", "is_available": true + }, { + "type": "core", + "amount": 5, + "id": "core_generic", + "is_available": true }], "price": 500, "orig_price": 500, @@ -179,8 +254,13 @@ "type": "pack", "id": "extend", "is_available": true + }, { + "type": "core", + "amount": 7, + "id": "core_generic", + "is_available": true }], - "price": 700, + "price": 100, "orig_price": 700, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -190,6 +270,11 @@ "type": "pack", "id": "alice", "is_available": true + }, { + "type": "core", + "amount": 5, + "id": "core_generic", + "is_available": true }], "orig_price": 500, "price": 500 @@ -199,6 +284,11 @@ "type": "pack", "id": "alice_append_1", "is_available": true + }, { + "type": "core", + "amount": 3, + "id": "core_generic", + "is_available": true }], "orig_price": 300, "price": 300 @@ -208,6 +298,11 @@ "type": "pack", "id": "ongeki", "is_available": true + }, { + "type": "core", + "amount": 4, + "id": "core_generic", + "is_available": true }], "orig_price": 400, "price": 400 @@ -217,6 +312,11 @@ "type": "pack", "id": "maimai", "is_available": true + }, { + "type": "core", + "amount": 4, + "id": "core_generic", + "is_available": true }], "orig_price": 400, "price": 400 @@ -226,6 +326,11 @@ "type": "pack", "id": "chunithm_append_1", "is_available": true + }, { + "type": "core", + "amount": 3, + "id": "core_generic", + "is_available": true }], "orig_price": 300, "price": 300 @@ -235,6 +340,11 @@ "type": "pack", "id": "observer_append_1", "is_available": true + }, { + "type": "core", + "amount": 3, + "id": "core_generic", + "is_available": true }], "orig_price": 300, "price": 300 @@ -244,6 +354,11 @@ "type": "pack", "id": "observer", "is_available": true + }, { + "type": "core", + "amount": 5, + "id": "core_generic", + "is_available": true }], "orig_price": 500, "price": 500 @@ -253,6 +368,11 @@ "type": "pack", "id": "observer_append_2", "is_available": true + }, { + "type": "core", + "amount": 3, + "id": "core_generic", + "is_available": true }], "orig_price": 300, "price": 300 @@ -262,6 +382,11 @@ "type": "pack", "id": "wacca", "is_available": true + }, { + "type": "core", + "amount": 5, + "id": "core_generic", + "is_available": true }], "orig_price": 500, "price": 500 diff --git a/latest version/database/singles.json b/latest version/database/singles.json index 7269ddc..98c8be2 100644 --- a/latest version/database/singles.json +++ b/latest version/database/singles.json @@ -1,520 +1,793 @@ [{ - "name": "testsingle", - "items": [{ - "id": "testsingle", - "type": "single", - "is_available": false - }], - "price": 100, - "orig_price": 100 + "name": "testsingle", + "items": [{ + "id": "testsingle", + "type": "single", + "is_available": false + }], + "price": 100, + "orig_price": 100 }, { - "name": "dataerror", - "items": [{ - "id": "dataerror", - "type": "single", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "dataerror", + "items": [{ + "id": "dataerror", + "type": "single", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "yourvoiceso", - "items": [{ - "id": "yourvoiceso", - "type": "single", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "yourvoiceso", + "items": [{ + "id": "yourvoiceso", + "type": "single", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "crosssoul", - "items": [{ - "id": "crosssoul", - "type": "single", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "crosssoul", + "items": [{ + "id": "crosssoul", + "type": "single", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "impurebird", - "items": [{ - "type": "single", - "id": "impurebird", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "impurebird", + "items": [{ + "type": "single", + "id": "impurebird", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "auxesia", - "items": [{ - "type": "single", - "id": "auxesia", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1520413239000, - "discount_to": 1521072000000 + "name": "auxesia", + "items": [{ + "type": "single", + "id": "auxesia", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1520413239000, + "discount_to": 1521072000000 }, { - "name": "modelista", - "items": [{ - "type": "single", - "id": "modelista", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "modelista", + "items": [{ + "type": "single", + "id": "modelista", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "yozakurafubuki", - "items": [{ - "type": "single", - "id": "yozakurafubuki", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "yozakurafubuki", + "items": [{ + "type": "single", + "id": "yozakurafubuki", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "surrender", - "items": [{ - "type": "single", - "id": "surrender", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "surrender", + "items": [{ + "type": "single", + "id": "surrender", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "metallicpunisher", - "items": [{ - "type": "single", - "id": "metallicpunisher", - "is_available": true - }], - "price": 100, - "orig_price": 100 + "name": "metallicpunisher", + "items": [{ + "type": "single", + "id": "metallicpunisher", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100 }, { - "name": "carminescythe", - "items": [{ - "type": "single", - "id": "carminescythe", - "is_available": true - }], - "price": 100, - "orig_price": 100 + "name": "carminescythe", + "items": [{ + "type": "single", + "id": "carminescythe", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100 }, { - "name": "bethere", - "items": [{ - "type": "single", - "id": "bethere", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "bethere", + "items": [{ + "type": "single", + "id": "bethere", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "callmyname", - "items": [{ - "type": "single", - "id": "callmyname", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "callmyname", + "items": [{ + "type": "single", + "id": "callmyname", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "fallensquare", - "items": [{ - "type": "single", - "id": "fallensquare", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "fallensquare", + "items": [{ + "type": "single", + "id": "fallensquare", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "dropdead", - "items": [{ - "type": "single", - "id": "dropdead", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "dropdead", + "items": [{ + "type": "single", + "id": "dropdead", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "alexandrite", - "items": [{ - "type": "single", - "id": "alexandrite", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "alexandrite", + "items": [{ + "type": "single", + "id": "alexandrite", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "astraltale", - "items": [{ - "type": "single", - "id": "astraltale", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "astraltale", + "items": [{ + "type": "single", + "id": "astraltale", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "phantasia", - "items": [{ - "type": "single", - "id": "phantasia", - "is_available": true - }], - "price": 100, - "orig_price": 100 + "name": "phantasia", + "items": [{ + "type": "single", + "id": "phantasia", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100 }, { - "name": "empireofwinter", - "items": [{ - "type": "single", - "id": "empireofwinter", - "is_available": true - }], - "price": 100, - "orig_price": 100 + "name": "empireofwinter", + "items": [{ + "type": "single", + "id": "empireofwinter", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100 }, { - "name": "libertas", - "items": [{ - "type": "single", - "id": "libertas", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "libertas", + "items": [{ + "type": "single", + "id": "libertas", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "dottodot", - "items": [{ - "type": "single", - "id": "dottodot", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "dottodot", + "items": [{ + "type": "single", + "id": "dottodot", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "dreadnought", - "items": [{ - "type": "single", - "id": "dreadnought", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "dreadnought", + "items": [{ + "type": "single", + "id": "dreadnought", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "mirzam", - "items": [{ - "type": "single", - "id": "mirzam", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "mirzam", + "items": [{ + "type": "single", + "id": "mirzam", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "heavenlycaress", - "items": [{ - "type": "single", - "id": "heavenlycaress", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "heavenlycaress", + "items": [{ + "type": "single", + "id": "heavenlycaress", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "filament", - "items": [{ - "type": "single", - "id": "filament", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "filament", + "items": [{ + "type": "single", + "id": "filament", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "avantraze", - "items": [{ - "type": "single", - "id": "avantraze", - "is_available": true - }], - "price": 100, - "orig_price": 100 + "name": "avantraze", + "items": [{ + "type": "single", + "id": "avantraze", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100 }, { - "name": "battlenoone", - "items": [{ - "type": "single", - "id": "battlenoone", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "battlenoone", + "items": [{ + "type": "single", + "id": "battlenoone", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "saikyostronger", - "items": [{ - "type": "single", - "id": "saikyostronger", - "is_available": true - }], - "price": 100, - "orig_price": 100 + "name": "saikyostronger", + "items": [{ + "type": "single", + "id": "saikyostronger", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100 }, { - "name": "izana", - "items": [{ - "type": "single", - "id": "izana", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "izana", + "items": [{ + "type": "single", + "id": "izana", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "einherjar", - "items": [{ - "type": "single", - "id": "einherjar", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "einherjar", + "items": [{ + "type": "single", + "id": "einherjar", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "laqryma", - "items": [{ - "type": "single", - "id": "laqryma", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "laqryma", + "items": [{ + "type": "single", + "id": "laqryma", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "amygdata", - "items": [{ - "type": "single", - "id": "amygdata", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "amygdata", + "items": [{ + "type": "single", + "id": "amygdata", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "altale", - "items": [{ - "type": "single", - "id": "altale", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "altale", + "items": [{ + "type": "single", + "id": "altale", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "feelssoright", - "items": [{ - "type": "single", - "id": "feelssoright", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "feelssoright", + "items": [{ + "type": "single", + "id": "feelssoright", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "scarletcage", - "items": [{ - "type": "single", - "id": "scarletcage", - "is_available": true - }], - "price": 100, - "orig_price": 100 + "name": "scarletcage", + "items": [{ + "type": "single", + "id": "scarletcage", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100 }, { - "name": "teriqma", - "items": [{ - "type": "single", - "id": "teriqma", - "is_available": true - }], - "price": 100, - "orig_price": 100 + "name": "teriqma", + "items": [{ + "type": "single", + "id": "teriqma", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100 }, { - "name": "mahoroba", - "items": [{ - "type": "single", - "id": "mahoroba", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "mahoroba", + "items": [{ + "type": "single", + "id": "mahoroba", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "badtek", - "items": [{ - "type": "single", - "id": "badtek", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "badtek", + "items": [{ + "type": "single", + "id": "badtek", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "maliciousmischance", - "items": [{ - "type": "single", - "id": "maliciousmischance", - "is_available": true - }], - "price": 100, - "orig_price": 100 + "name": "maliciousmischance", + "items": [{ + "type": "single", + "id": "maliciousmischance", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100 }, { - "name": "buchigireberserker", - "items": [{ - "type": "single", - "id": "buchigireberserker", - "is_available": true - }], - "price": 100, - "orig_price": 100 + "name": "buchigireberserker", + "items": [{ + "type": "single", + "id": "buchigireberserker", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100 }, { - "name": "galaxyfriends", - "items": [{ - "type": "single", - "id": "galaxyfriends", - "is_available": true - }], - "price": 100, - "orig_price": 100, - "discount_from": 1615248000000, - "discount_to": 1615852799000 + "name": "galaxyfriends", + "items": [{ + "type": "single", + "id": "galaxyfriends", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100, + "discount_from": 1615248000000, + "discount_to": 1615852799000 }, { - "name": "xeraphinite", - "items": [{ - "type": "single", - "id": "xeraphinite", - "is_available": true - }], - "orig_price": 100, - "price": 100 + "name": "xeraphinite", + "items": [{ + "type": "single", + "id": "xeraphinite", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "orig_price": 100, + "price": 100 }, { - "name": "xanatos", - "items": [{ - "type": "single", - "id": "xanatos", - "is_available": true - }], - "price": 100, - "orig_price": 100 + "name": "xanatos", + "items": [{ + "type": "single", + "id": "xanatos", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "price": 100, + "orig_price": 100 }, { - "name": "attraqtia", - "items": [{ - "type": "single", - "id": "attraqtia", - "is_available": true - }], - "orig_price": 100, - "price": 100 + "name": "attraqtia", + "items": [{ + "type": "single", + "id": "attraqtia", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "orig_price": 100, + "price": 100 }, { - "name": "gimmedablood", - "items": [{ - "type": "single", - "id": "gimmedablood", - "is_available": true - }], - "orig_price": 100, - "price": 100 + "name": "gimmedablood", + "items": [{ + "type": "single", + "id": "gimmedablood", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "orig_price": 100, + "price": 100 }, { - "name": "bassline", - "items": [{ - "type": "single", - "id": "bassline", - "is_available": true - }], - "orig_price": 100, - "price": 100 + "name": "bassline", + "items": [{ + "type": "single", + "id": "bassline", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "orig_price": 100, + "price": 100 }, { - "name": "theultimacy", - "items": [{ - "type": "single", - "id": "theultimacy", - "is_available": true - }], - "orig_price": 100, - "price": 100 + "name": "theultimacy", + "items": [{ + "type": "single", + "id": "theultimacy", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "orig_price": 100, + "price": 100 }, { - "name": "rekkaresonanc", - "items": [{ - "type": "single", - "id": "rekkaresonanc", - "is_available": true - }], - "orig_price": 100, - "price": 100 + "name": "rekkaresonanc", + "items": [{ + "type": "single", + "id": "rekkaresonanc", + "is_available": true + }], + "orig_price": 100, + "price": 100 }, { - "name": "rekkaresonance", - "items": [{ - "type": "single", - "id": "rekkaresonance", - "is_available": true - }], - "orig_price": 100, - "price": 100 + "name": "rekkaresonance", + "items": [{ + "type": "single", + "id": "rekkaresonance", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "orig_price": 100, + "price": 100 }, { - "name": "sheriruthrmx", - "items": [{ - "type": "single", - "id": "sheriruthrmx", - "is_available": true - }], - "orig_price": 100, - "price": 100 + "name": "sheriruthrmx", + "items": [{ + "type": "single", + "id": "sheriruthrmx", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "orig_price": 100, + "price": 100 }, { - "name": "eveninginscarlet", - "items": [{ - "type": "single", - "id": "eveninginscarlet", - "is_available": true - }], - "orig_price": 100, - "price": 100 + "name": "eveninginscarlet", + "items": [{ + "type": "single", + "id": "eveninginscarlet", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "orig_price": 100, + "price": 100 +}, { + "name": "lastendconductor", + "items": [{ + "type": "single", + "id": "lastendconductor", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "orig_price": 100, + "price": 100 +}, { + "name": "goldenslaughterer", + "items": [{ + "type": "single", + "id": "goldenslaughterer", + "is_available": true + }, { + "type": "core", + "amount": 1, + "id": "core_generic", + "is_available": true + }], + "orig_price": 100, + "price": 100 }] \ No newline at end of file diff --git a/latest version/server/arcpurchase.py b/latest version/server/arcpurchase.py index a1ccfcc..a316afc 100644 --- a/latest version/server/arcpurchase.py +++ b/latest version/server/arcpurchase.py @@ -25,15 +25,35 @@ def get_purchase(c, type='pack'): for i in x: items = [] c.execute( - '''select a.* from item a, purchase_item b where a.item_id=b.item_id and a.type=b.type and b.purchase_name=:name''', {'name': i[0]}) + '''select a.*, b.amount from item a, purchase_item b where a.item_id=b.item_id and a.type=b.type and b.purchase_name=:name''', {'name': i[0]}) y = c.fetchall() + t = None if y: for j in y: - items.append({ - "type": j[1], - "id": j[0], - "is_available": int2b(j[2]) - }) + if j[3]: + amount = j[3] + else: + amount = 1 + if i[0] == j[0]: + # 物品排序,否则客户端报错 + t = { + "type": j[1], + "id": j[0], + "is_available": int2b(j[2]), + 'amount': amount + } + else: + items.append({ + "type": j[1], + "id": j[0], + "is_available": int2b(j[2]), + "amount": amount + }) + + + if t is not None: + # 放到列表头 + items = [t, items] r = {"name": i[0], "items": items, @@ -104,7 +124,7 @@ def buy_thing(user_id, purchase_id): } c.execute( - '''select item_id, type from purchase_item where purchase_name=:a''', {'a': purchase_id}) + '''select item_id, type, amount from purchase_item where purchase_name=:a''', {'a': purchase_id}) x = c.fetchall() if x: now = int(time.time() * 1000) @@ -115,7 +135,11 @@ def buy_thing(user_id, purchase_id): if flag: for i in x: - server.item.claim_user_item(c, user_id, i[0], i[1]) + if i[2]: + amount = i[2] + else: + amount = 1 + server.item.claim_user_item(c, user_id, i[0], i[1], amount) success_flag = True else: diff --git a/latest version/server/arcworld.py b/latest version/server/arcworld.py index aed72f9..5a47deb 100644 --- a/latest version/server/arcworld.py +++ b/latest version/server/arcworld.py @@ -127,9 +127,12 @@ def get_available_maps(): for i in Config.AVAILABLE_MAP: info = get_world_info(i) del info['steps'] - del info['is_locked'] - del info['curr_position'] - del info['curr_capture'] + try: + del info['is_locked'] + del info['curr_position'] + del info['curr_capture'] + except: + pass re.append(info) return re diff --git a/latest version/setting.py b/latest version/setting.py index bbb343f..d556bb8 100644 --- a/latest version/setting.py +++ b/latest version/setting.py @@ -30,7 +30,7 @@ class Config(): Allowed game versions If it is blank, all are allowed. ''' - ALLOW_APPVERSION = ['3.5.3', '3.5.3c', '3.8.4', '3.8.4c'] + ALLOW_APPVERSION = ['3.5.3', '3.5.3c', '3.8.6', '3.8.6c'] ''' -------------------- ''' diff --git a/latest version/templates/web/allpurchase.html b/latest version/templates/web/allpurchase.html index 4818676..16c3832 100644 --- a/latest version/templates/web/allpurchase.html +++ b/latest version/templates/web/allpurchase.html @@ -37,6 +37,10 @@ {{x['type']}}
+ Amount: + {{x['amount']}} +
+ {% if not loop.last %} diff --git a/latest version/templates/web/changepurchaseitem.html b/latest version/templates/web/changepurchaseitem.html index b5ed66a..496380e 100644 --- a/latest version/templates/web/changepurchaseitem.html +++ b/latest version/templates/web/changepurchaseitem.html @@ -17,8 +17,11 @@ + + +
@@ -36,6 +39,7 @@ +
diff --git a/latest version/web/index.py b/latest version/web/index.py index 4e2e7b0..4d82291 100644 --- a/latest version/web/index.py +++ b/latest version/web/index.py @@ -847,6 +847,7 @@ def change_purchase_item(): purchase_name = request.form['purchase_name'] item_id = request.form['item_id'] item_type = request.form['type'] + amount = int(request.form['amount']) except: error = '数据错误 Wrong data.' flash(error) @@ -862,8 +863,8 @@ def change_purchase_item(): c.execute( '''select exists(select * from item where item_id=? and type=?)''', (item_id, item_type)) if c.fetchone() == (1,): - c.execute('''insert into purchase_item values(?,?,?)''', - (purchase_name, item_id, item_type)) + c.execute('''insert into purchase_item values(?,?,?,?)''', + (purchase_name, item_id, item_type, amount)) flash('''购买项目的物品添加成功 Successfully add the purchase's item.''') else: error = '''物品不存在 The item does not exist.''' diff --git a/latest version/web/system.py b/latest version/web/system.py index b868e39..91405bb 100644 --- a/latest version/web/system.py +++ b/latest version/web/system.py @@ -301,7 +301,7 @@ def get_all_purchase(): items = [] if y: for j in y: - items.append({'item_id': j[1], 'type': j[2]}) + items.append({'item_id': j[1], 'type': j[2], 'amount':j[3]}) re.append({'purchase_name': i[0], 'price': i[1],