From 941a79ccc73c650584d9a70d6a478b3161313696 Mon Sep 17 00:00:00 2001 From: Lost-MSth Date: Fri, 9 Apr 2021 14:42:14 +0800 Subject: [PATCH] Update to v2.3.2 --- README.md | 9 +- latest version/database/arcsong.db | Bin 122880 -> 126976 bytes latest version/database/singles.json | 156 ++++++++++++++------------- latest version/main.py | 6 ++ latest version/server/arcdownload.py | 27 +++-- latest version/server/arcscore.py | 8 ++ latest version/server/auth.py | 7 +- latest version/server/info.py | 7 +- latest version/server/init.py | 29 +++++ latest version/setting.py | 2 +- 10 files changed, 160 insertions(+), 91 deletions(-) create mode 100644 latest version/server/init.py diff --git a/README.md b/README.md index 54f13d2..09af0b4 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,7 @@ This procedure is mainly used for study and research, and shall not be used for 没有以下 We don't have: - 服务器安全性保证 Server security assurance +- 世界模式下的搭档升级、觉醒,以及某些奖励的获取 Partner upgrading, uncapping, and receiving some rewards in the world mode 可能有问题 There may be problems: - Recent 30 @@ -64,8 +65,12 @@ It is just so interesting. What it can do is under exploration. > Tips: When updating, please keep the original database in case of data loss. > Before using, please run **database_initialize.py** to get the initial database. -### Version 2.3.1 -- 适用于Arcaea 3.5.3版本 For Arcaea 3.5.3 +### Version 2.3.2 +- 适用于Arcaea 3.5.4版本 For Arcaea 3.5.4 +- 更新了歌曲数据库 Update the song database. +- 新增运行前关键性文件检查 Add checking critical files before running. +- 新增可下载数据的客户端校验更新 Add client verification update of downloadable data. +- 新增歌曲成绩的谱面校验 Add checking chart file when submitting the song score. - 修复了一些Bug Fix some bugs. ## 运行环境与依赖 Running environment and requirements diff --git a/latest version/database/arcsong.db b/latest version/database/arcsong.db index 95690885f604915bb3e50ef1cb3e95b37d58bdf5..ed25b7b56f561d1c479b00050538c9972ed801a3 100644 GIT binary patch delta 11216 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 delta 10295 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 Y&ts1y-XfR!$=*HXuOFHC4*3J~e^V_ZtpET3 diff --git a/latest version/database/singles.json b/latest version/database/singles.json index b587177..ddefb98 100644 --- a/latest version/database/singles.json +++ b/latest version/database/singles.json @@ -12,10 +12,10 @@ "items": [{ "id": "dataerror", "type": "single", - "_id": "6046bab736651a07ebc537f3", + "_id": "606f9f5636651a07ebc541f3", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -24,10 +24,10 @@ "items": [{ "id": "yourvoiceso", "type": "single", - "_id": "6046bab736651a07ebc53800", + "_id": "606f9f5636651a07ebc54201", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -36,10 +36,10 @@ "items": [{ "id": "crosssoul", "type": "single", - "_id": "6046bab736651a07ebc5380d", + "_id": "606f9f5636651a07ebc5420e", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -48,10 +48,10 @@ "items": [{ "type": "single", "id": "impurebird", - "_id": "6046bab736651a07ebc53801", + "_id": "606f9f5636651a07ebc541f4", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -60,7 +60,7 @@ "items": [{ "type": "single", "id": "auxesia", - "_id": "6046bab736651a07ebc5380e", + "_id": "606f9f5636651a07ebc5420f", "is_available": true }], "price": 100, @@ -72,10 +72,10 @@ "items": [{ "type": "single", "id": "modelista", - "_id": "6046bab736651a07ebc537f4", + "_id": "606f9f5636651a07ebc54202", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -84,10 +84,10 @@ "items": [{ "type": "single", "id": "yozakurafubuki", - "_id": "6046bab736651a07ebc53802", + "_id": "606f9f5636651a07ebc541f5", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -96,10 +96,10 @@ "items": [{ "type": "single", "id": "surrender", - "_id": "6046bab736651a07ebc5380f", + "_id": "606f9f5636651a07ebc54210", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -108,7 +108,7 @@ "items": [{ "type": "single", "id": "metallicpunisher", - "_id": "6046bab736651a07ebc537f5", + "_id": "606f9f5636651a07ebc54203", "is_available": true }], "price": 100, @@ -118,7 +118,7 @@ "items": [{ "type": "single", "id": "carminescythe", - "_id": "6046bab736651a07ebc53803", + "_id": "606f9f5636651a07ebc541f6", "is_available": true }], "price": 100, @@ -128,10 +128,10 @@ "items": [{ "type": "single", "id": "bethere", - "_id": "6046bab736651a07ebc53810", + "_id": "606f9f5636651a07ebc54211", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -140,10 +140,10 @@ "items": [{ "type": "single", "id": "callmyname", - "_id": "6046bab736651a07ebc537e9", + "_id": "606f9f5636651a07ebc5421c", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -152,10 +152,10 @@ "items": [{ "type": "single", "id": "fallensquare", - "_id": "6046bab736651a07ebc537de", + "_id": "606f9f5636651a07ebc541e9", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -164,10 +164,10 @@ "items": [{ "type": "single", "id": "dropdead", - "_id": "6046bab736651a07ebc53804", + "_id": "606f9f5636651a07ebc541f7", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -176,10 +176,10 @@ "items": [{ "type": "single", "id": "alexandrite", - "_id": "6046bab736651a07ebc53811", + "_id": "606f9f5636651a07ebc54212", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -188,10 +188,10 @@ "items": [{ "type": "single", "id": "astraltale", - "_id": "6046bab736651a07ebc537f7", + "_id": "606f9f5636651a07ebc54205", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -200,7 +200,7 @@ "items": [{ "type": "single", "id": "phantasia", - "_id": "6046bab736651a07ebc537df", + "_id": "606f9f5636651a07ebc541ea", "is_available": true }], "price": 100, @@ -210,7 +210,7 @@ "items": [{ "type": "single", "id": "empireofwinter", - "_id": "6046bab736651a07ebc53805", + "_id": "606f9f5636651a07ebc541f8", "is_available": true }], "price": 100, @@ -220,10 +220,10 @@ "items": [{ "type": "single", "id": "libertas", - "_id": "6046bab736651a07ebc537eb", + "_id": "606f9f5636651a07ebc5421e", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -232,10 +232,10 @@ "items": [{ "type": "single", "id": "dottodot", - "_id": "6046bab736651a07ebc537e0", + "_id": "606f9f5636651a07ebc541eb", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -244,10 +244,10 @@ "items": [{ "type": "single", "id": "dreadnought", - "_id": "6046bab736651a07ebc537ec", + "_id": "606f9f5636651a07ebc5421f", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -256,10 +256,10 @@ "items": [{ "type": "single", "id": "mirzam", - "_id": "6046bab736651a07ebc537e1", + "_id": "606f9f5636651a07ebc541ec", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -268,10 +268,10 @@ "items": [{ "type": "single", "id": "heavenlycaress", - "_id": "6046bab736651a07ebc53807", + "_id": "606f9f5636651a07ebc541fa", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -280,10 +280,10 @@ "items": [{ "type": "single", "id": "filament", - "_id": "6046bab736651a07ebc53814", + "_id": "606f9f5636651a07ebc54215", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -292,7 +292,7 @@ "items": [{ "type": "single", "id": "avantraze", - "_id": "6046bab736651a07ebc537ed", + "_id": "606f9f5636651a07ebc54220", "is_available": true }], "price": 100, @@ -302,10 +302,10 @@ "items": [{ "type": "single", "id": "battlenoone", - "_id": "6046bab736651a07ebc537fa", + "_id": "606f9f5636651a07ebc54208", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -314,7 +314,7 @@ "items": [{ "type": "single", "id": "saikyostronger", - "_id": "6046bab736651a07ebc537e2", + "_id": "606f9f5636651a07ebc541ed", "is_available": true }], "price": 100, @@ -324,10 +324,10 @@ "items": [{ "type": "single", "id": "izana", - "_id": "6046bab736651a07ebc53808", + "_id": "606f9f5636651a07ebc541fb", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -336,10 +336,10 @@ "items": [{ "type": "single", "id": "einherjar", - "_id": "6046bab736651a07ebc53815", + "_id": "606f9f5636651a07ebc54216", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -348,10 +348,10 @@ "items": [{ "type": "single", "id": "laqryma", - "_id": "6046bab736651a07ebc537ee", + "_id": "606f9f5636651a07ebc54221", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -360,10 +360,10 @@ "items": [{ "type": "single", "id": "amygdata", - "_id": "6046bab736651a07ebc537fb", + "_id": "606f9f5636651a07ebc54209", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -372,10 +372,10 @@ "items": [{ "type": "single", "id": "altale", - "_id": "6046bab736651a07ebc537e3", + "_id": "606f9f5636651a07ebc541ee", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -384,10 +384,10 @@ "items": [{ "type": "single", "id": "feelssoright", - "_id": "6046bab736651a07ebc537ef", + "_id": "606f9f5636651a07ebc54222", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -396,7 +396,7 @@ "items": [{ "type": "single", "id": "scarletcage", - "_id": "6046bab736651a07ebc537fc", + "_id": "606f9f5636651a07ebc5420a", "is_available": true }], "price": 100, @@ -406,7 +406,7 @@ "items": [{ "type": "single", "id": "teriqma", - "_id": "6046bab736651a07ebc537e4", + "_id": "606f9f5636651a07ebc541ef", "is_available": true }], "price": 100, @@ -416,10 +416,10 @@ "items": [{ "type": "single", "id": "mahoroba", - "_id": "6046bab736651a07ebc5380a", + "_id": "606f9f5636651a07ebc541fd", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -428,10 +428,10 @@ "items": [{ "type": "single", "id": "badtek", - "_id": "6046bab736651a07ebc537f0", + "_id": "606f9f5636651a07ebc54223", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -440,7 +440,7 @@ "items": [{ "type": "single", "id": "maliciousmischance", - "_id": "6046bab736651a07ebc53817", + "_id": "606f9f5636651a07ebc54218", "is_available": true }], "price": 100, @@ -450,7 +450,7 @@ "items": [{ "type": "single", "id": "buchigireberserker", - "_id": "6046bab736651a07ebc537e5", + "_id": "606f9f5636651a07ebc541f0", "is_available": true }], "price": 100, @@ -460,10 +460,10 @@ "items": [{ "type": "single", "id": "galaxyfriends", - "_id": "6046bab736651a07ebc5380b", + "_id": "606f9f5636651a07ebc541fe", "is_available": true }], - "price": 50, + "price": 100, "orig_price": 100, "discount_from": 1615248000000, "discount_to": 1615852799000 @@ -472,7 +472,7 @@ "items": [{ "type": "single", "id": "xeraphinite", - "_id": "6046bab736651a07ebc53818", + "_id": "606f9f5636651a07ebc54219", "is_available": true }], "orig_price": 100, @@ -482,7 +482,7 @@ "items": [{ "type": "single", "id": "xanatos", - "_id": "6046bab736651a07ebc537f1", + "_id": "606f9f5636651a07ebc54224", "is_available": true }], "price": 100, @@ -492,7 +492,7 @@ "items": [{ "type": "single", "id": "attraqtia", - "_id": "6046bab736651a07ebc537ff", + "_id": "606f9f5636651a07ebc5420d", "is_available": true }], "orig_price": 100, @@ -502,7 +502,17 @@ "items": [{ "type": "single", "id": "gimmedablood", - "_id": "6046bab736651a07ebc537e7", + "_id": "606f9f5636651a07ebc541f2", + "is_available": true + }], + "orig_price": 100, + "price": 100 +}, { + "name": "bassline", + "items": [{ + "type": "single", + "id": "bassline", + "_id": "606f9f5636651a07ebc54200", "is_available": true }], "orig_price": 100, diff --git a/latest version/main.py b/latest version/main.py index 4734a7c..ce94606 100644 --- a/latest version/main.py +++ b/latest version/main.py @@ -13,6 +13,7 @@ import web.index import server.arcworld import server.arcdownload import server.arcpurchase +import server.init import os import sys @@ -570,6 +571,11 @@ def main(): dictConfig(log_dict) + if not server.init.check_before_run(app): + app.logger.error('Something wrong. The server will not run.') + input('Press ENTER key to exit.') + sys.exit() + app.logger.info("Start to initialize data in 'songfile' table...") try: error = server.arcdownload.initialize_songfile() diff --git a/latest version/server/arcdownload.py b/latest version/server/arcdownload.py index 59cc99d..4575351 100644 --- a/latest version/server/arcdownload.py +++ b/latest version/server/arcdownload.py @@ -42,7 +42,7 @@ def get_url(file_path, **kwargs): return url_for('download', file_path=file_path, t=t, _external=True) -def get_one_song(c, user_id, song_id, file_dir='./database/songs'): +def get_one_song(c, user_id, song_id, file_dir='./database/songs', url_flag=True): # 获取一首歌的下载链接,返回字典 dir_list = os.listdir(os.path.join(file_dir, song_id)) re = {} @@ -64,8 +64,12 @@ def get_one_song(c, user_id, song_id, file_dir='./database/songs'): else: checksum = get_file_md5(os.path.join( file_dir, song_id, 'base.ogg')) - re['audio'] = {"checksum": checksum, "url": get_url( - file_path=song_id+'/base.ogg', t=token)} + + if url_flag: + re['audio'] = {"checksum": checksum, "url": get_url( + file_path=song_id+'/base.ogg', t=token)} + else: + re['audio'] = {"checksum": checksum} else: if 'chart' not in re: re['chart'] = {} @@ -76,23 +80,28 @@ def get_one_song(c, user_id, song_id, file_dir='./database/songs'): checksum = x[0] else: checksum = get_file_md5(os.path.join(file_dir, song_id, i)) - re['chart'][i[0]] = {"checksum": checksum, "url": get_url( - file_path=song_id+'/'+i, t=token)} - c.execute('''insert into download_token values(:a,:b,:c,:d,:e)''', { - 'a': user_id, 'b': song_id, 'c': i, 'd': token, 'e': now}) + if url_flag: + re['chart'][i[0]] = {"checksum": checksum, "url": get_url( + file_path=song_id+'/'+i, t=token)} + else: + re['chart'][i[0]] = {"checksum": checksum} + + if url_flag: + c.execute('''insert into download_token values(:a,:b,:c,:d,:e)''', { + 'a': user_id, 'b': song_id, 'c': i, 'd': token, 'e': now}) return {song_id: re} -def get_all_songs(user_id, file_dir='./database/songs'): +def get_all_songs(user_id, file_dir='./database/songs', url_flag=True): # 获取所有歌的下载链接,返回字典 dir_list = os.listdir(file_dir) re = {} with Connect() as c: for i in dir_list: if os.path.isdir(os.path.join(file_dir, i)): - re.update(get_one_song(c, user_id, i, file_dir)) + re.update(get_one_song(c, user_id, i, file_dir, url_flag)) return re diff --git a/latest version/server/arcscore.py b/latest version/server/arcscore.py index e6085a3..3876c35 100644 --- a/latest version/server/arcscore.py +++ b/latest version/server/arcscore.py @@ -569,6 +569,14 @@ def arc_score_check(user_id, song_id, difficulty, score, shiny_perfect_count, pe if abs(ascore - score) >= 5: return False + with Connect() as c: # 歌曲谱面MD5检查,服务器没有谱面就不管了 + c.execute('''select md5 from songfile where song_id=:a and file_type=:b''', { + 'a': song_id, 'b': int(difficulty)}) + x = c.fetchone() + if x: + if x[0] != song_hash: + return False + x = song_token + song_hash + song_id + str(difficulty) + str(score) + str(shiny_perfect_count) + str( perfect_count) + str(near_count) + str(miss_count) + str(health) + str(modifier) + str(clear_type) y = str(user_id) + song_hash diff --git a/latest version/server/auth.py b/latest version/server/auth.py index 969407e..9d49d82 100644 --- a/latest version/server/auth.py +++ b/latest version/server/auth.py @@ -168,9 +168,10 @@ def auth_required(request): user_id = None with Connect() as c: headers = request.headers - token = headers['Authorization'] - token = token[7:] - user_id = token_get_id(token) + if 'Authorization' in headers: + token = headers['Authorization'] + token = token[7:] + user_id = token_get_id(token) if user_id is not None: return view(user_id, *args, **kwargs) diff --git a/latest version/server/info.py b/latest version/server/info.py index 0d0f186..06ec210 100644 --- a/latest version/server/info.py +++ b/latest version/server/info.py @@ -1,6 +1,7 @@ from server.sql import Connect import server.arcworld import server.arcpurchase +import server.arcdownload import time from setting import Config @@ -198,7 +199,7 @@ def get_value_0(c, user_id): "max_stamina_ts": 1586274871917, "stamina": 12, "world_unlocks": ["scenery_chap1", "scenery_chap2", "scenery_chap3", "scenery_chap4", "scenery_chap5"], - "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"], + "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"], "singles": get_user_singles(c, user_id), "packs": get_user_packs(c, user_id), "characters": characters, @@ -226,7 +227,7 @@ def arc_aggregate_small(user_id): def arc_aggregate_big(user_id): - # 返回用户数据和地图歌曲信息 + # 返回比较全的用户数据 r = {"success": False} with Connect() as c: r = {"success": True, @@ -238,7 +239,7 @@ def arc_aggregate_big(user_id): "value": server.arcpurchase.get_item(c, 'pack') }, { "id": 2, - "value": {} + "value": server.arcdownload.get_all_songs(user_id, url_flag=False) }, { "id": 3, "value": { diff --git a/latest version/server/init.py b/latest version/server/init.py new file mode 100644 index 0000000..639d52e --- /dev/null +++ b/latest version/server/init.py @@ -0,0 +1,29 @@ +import os + + +def check_before_run(app): + # 运行前检查关键文件,返回布尔值,其实是因为有人经常忘了 + + f = True + + if not os.path.exists('setting.py'): + app.logger.warning('File `setting.py` is missing.') + f = False + + if not os.path.exists('database'): + app.logger.warning('Folder `database` is missing.') + f = False + + if not os.path.exists('database/songs'): + app.logger.warning('Folder `database/songs` is missing.') + f = False + + if not os.path.exists('database/arcaea_database.db'): + app.logger.warning('File `database/arcaea_database.db` is missing.') + f = False + + if not os.path.exists('database/arcsong.db'): + app.logger.warning('File `database/arcsong.db` is missing.') + f = False + + return f diff --git a/latest version/setting.py b/latest version/setting.py index 9b310d0..36da3f9 100644 --- a/latest version/setting.py +++ b/latest version/setting.py @@ -125,7 +125,7 @@ class Config(): 是否强制使用全解锁云端存档 If forcing full unlocked cloud save is enabled ''' - SAVE_FULL_UNLOCK = True + SAVE_FULL_UNLOCK = False ''' -------------------- '''