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],