|
@@ -19,19 +19,19 @@ app = Flask(__name__)
|
|
|
cache.init_app(app)
|
|
|
app.config['TEMPLATES_AUTO_RELOAD'] = True
|
|
|
socketio = SocketIO(app, cors_allowed_origins="*", max_http_buffer_size=1e8)
|
|
|
-event = threading.Event()
|
|
|
-g_status_list = []
|
|
|
-last_time = 0.0
|
|
|
-task_queue = deque()
|
|
|
-last_process = ''
|
|
|
-isGameBegin = True
|
|
|
-autoTask = None
|
|
|
-isReset = False
|
|
|
-g_times = 0
|
|
|
-g_cureNum = 500
|
|
|
-g_switch = False
|
|
|
-g_isRestart = True
|
|
|
-last_change_time = time.time()
|
|
|
+class GlobalState:
|
|
|
+ event = threading.Event()
|
|
|
+ g_status_list = []
|
|
|
+ last_time = 0.0
|
|
|
+ task_queue = deque()
|
|
|
+ last_process = ''
|
|
|
+ isGameBegin = True
|
|
|
+ isReset = False
|
|
|
+ g_times = 0
|
|
|
+ g_cureNum = 500
|
|
|
+ g_switch = False
|
|
|
+ g_isRestart = True
|
|
|
+ last_change_time = time.time()
|
|
|
|
|
|
@app.after_request
|
|
|
def add_no_cache_header(response):
|
|
@@ -42,18 +42,16 @@ def add_no_cache_header(response):
|
|
|
return response
|
|
|
|
|
|
def thread_runTask():
|
|
|
- global last_process
|
|
|
- global task_queue,isReset
|
|
|
while True:
|
|
|
- if event.is_set():
|
|
|
- task_queue.clear()
|
|
|
- if len(task_queue) != 0:
|
|
|
+ if GlobalState.event.is_set():
|
|
|
+ GlobalState.task_queue.clear()
|
|
|
+ if len(GlobalState.task_queue) != 0:
|
|
|
# 初始时间
|
|
|
current_time = time.time()
|
|
|
- task = task_queue[-1]
|
|
|
- task_queue.pop()
|
|
|
+ task = GlobalState.task_queue[-1]
|
|
|
+ GlobalState.task_queue.pop()
|
|
|
print(f"{task.name} 开始执行")
|
|
|
- last_process = task.name
|
|
|
+ GlobalState.last_process = task.name
|
|
|
try:
|
|
|
task.run()
|
|
|
except Exception as e:
|
|
@@ -64,8 +62,8 @@ def thread_runTask():
|
|
|
myTimeSleep_small()
|
|
|
else:
|
|
|
myTimeSleep_big()
|
|
|
- if isReset:
|
|
|
- isReset = False
|
|
|
+ if GlobalState.isReset:
|
|
|
+ GlobalState.isReset = False
|
|
|
cfg = read_cfg()
|
|
|
if cfg['switch']:
|
|
|
type = update_rungame_type()
|
|
@@ -94,28 +92,27 @@ def send_todo():
|
|
|
emit('processing_todo', get_todo_msgList())
|
|
|
|
|
|
def send_status(msg):#软件执行状态
|
|
|
- global g_status_list, g_times
|
|
|
try:
|
|
|
if not msg == "":
|
|
|
# 添加新的状态消息和时间到列表
|
|
|
timestamp = datetime.now().strftime('%H:%M:%S') # 获取当前时间
|
|
|
status_entry = {'msg': msg, 'time': timestamp} # 存储消息和时间
|
|
|
- g_status_list.append(status_entry)
|
|
|
+ GlobalState.g_status_list.append(status_entry)
|
|
|
|
|
|
# 如果列表超过 5 条,移除最早的一条
|
|
|
- if len(g_status_list) > 5:
|
|
|
- g_status_list.pop(0)
|
|
|
+ if len(GlobalState.g_status_list) > 5:
|
|
|
+ GlobalState.g_status_list.pop(0)
|
|
|
else:
|
|
|
sendStr = ''
|
|
|
- for item in g_status_list:
|
|
|
- sendStr = f"{g_times}次-{item['time']}-{item['msg']}<br>" + sendStr
|
|
|
+ for item in GlobalState.g_status_list:
|
|
|
+ sendStr = f"{GlobalState.g_times}次-{item['time']}-{item['msg']}<br>" + sendStr
|
|
|
|
|
|
emit('processing_status', sendStr)
|
|
|
|
|
|
# 如果消息是 "结束",发送所有状态并清空列表
|
|
|
if msg == "结束":
|
|
|
- g_status_list = [] # 清空列表
|
|
|
- event.clear()
|
|
|
+ GlobalState.g_status_list = [] # 清空列表
|
|
|
+ GlobalState.event.clear()
|
|
|
except Exception as e:
|
|
|
print(f"Error in send_status: {e}")
|
|
|
return
|
|
@@ -123,12 +120,11 @@ def send_status(msg):#软件执行状态
|
|
|
|
|
|
@socketio.on('monitor_begin')
|
|
|
def monitor_begin():
|
|
|
- global last_time, last_process
|
|
|
current_time = time.time()
|
|
|
- elapsed_time = current_time - last_time
|
|
|
+ elapsed_time = current_time - GlobalState.last_time
|
|
|
if elapsed_time < 0.5:
|
|
|
return
|
|
|
- last_time = current_time
|
|
|
+ GlobalState.last_time = current_time
|
|
|
regionRet, regionPos = game_region()
|
|
|
screenshot = pyautogui.screenshot(region=regionPos)
|
|
|
#binary_img = binarize_image(screenshot)
|
|
@@ -137,9 +133,9 @@ def monitor_begin():
|
|
|
image_data_base64 = base64.b64encode(compressed_data).decode('utf-8')
|
|
|
socketio.emit('image_data', image_data_base64)
|
|
|
task_arr = []
|
|
|
- if not event.is_set():
|
|
|
- task_arr.append(last_process)
|
|
|
- for item in reversed(task_queue):
|
|
|
+ if not GlobalState.event.is_set():
|
|
|
+ task_arr.append(GlobalState.last_process)
|
|
|
+ for item in reversed(GlobalState.task_queue):
|
|
|
task_arr.append(item.name)
|
|
|
latest_tasks = task_arr[:5] # only show the last 5 tasks
|
|
|
send_hint(json.dumps(latest_tasks, ensure_ascii=False))
|
|
@@ -149,14 +145,14 @@ def monitor_begin():
|
|
|
|
|
|
@socketio.on('end_script')
|
|
|
def handle_end_script():
|
|
|
- event.set()
|
|
|
+ GlobalState.event.set()
|
|
|
|
|
|
@socketio.on('end_game')
|
|
|
def handle_end_game():
|
|
|
- event.set()
|
|
|
+ GlobalState.event.set()
|
|
|
task_close_game()
|
|
|
send_status("结束2")
|
|
|
- event.clear()
|
|
|
+ GlobalState.event.clear()
|
|
|
|
|
|
@socketio.on('get_title')
|
|
|
def handle_get_title():
|
|
@@ -206,7 +202,7 @@ def http_restart_game():
|
|
|
def handle_close_game():
|
|
|
task_close_game()
|
|
|
send_status("结束2")
|
|
|
- event.clear()
|
|
|
+ GlobalState.event.clear()
|
|
|
|
|
|
@app.route('/close_game', methods=['POST'])
|
|
|
def http_close_game():
|
|
@@ -222,34 +218,33 @@ def handle_read_cfg():
|
|
|
emit('processing_cfg', cfg)
|
|
|
|
|
|
def restart_game(type=0):
|
|
|
- global isGameBegin
|
|
|
- isGameBegin = False
|
|
|
+ GlobalState.isGameBegin = False
|
|
|
while True:
|
|
|
task_close_game()
|
|
|
if True == task_start_game(type):
|
|
|
break
|
|
|
else:
|
|
|
send_status("启动失败")
|
|
|
- isGameBegin = True
|
|
|
+ GlobalState.isGameBegin = True
|
|
|
send_status("结束")
|
|
|
config = read_cfg()
|
|
|
print("config", config)
|
|
|
auto_task(config)
|
|
|
|
|
|
def auto_participate():
|
|
|
- task_queue.appendleft(task_returnAllLine())
|
|
|
+ GlobalState.task_queue.appendleft(task_returnAllLine())
|
|
|
|
|
|
timeout = 40 * 60
|
|
|
start_time = time.time() # 记录开始时间
|
|
|
|
|
|
|
|
|
- while not event.is_set():
|
|
|
- if len(task_queue) < 4:
|
|
|
- task_queue.appendleft(task_useAnnimalSkill(True))
|
|
|
- task_queue.appendleft(task_paticipateInTeam(False))
|
|
|
- task_queue.appendleft(task_paticipateInTeam())
|
|
|
- task_queue.appendleft(task_paticipateInTeam(False))
|
|
|
- task_queue.appendleft(task_paticipateInTeam())
|
|
|
+ while not GlobalState.event.is_set():
|
|
|
+ if len(GlobalState.task_queue) < 4:
|
|
|
+ GlobalState.task_queue.appendleft(task_useAnnimalSkill(True))
|
|
|
+ GlobalState.task_queue.appendleft(task_paticipateInTeam(False))
|
|
|
+ GlobalState.task_queue.appendleft(task_paticipateInTeam())
|
|
|
+ GlobalState.task_queue.appendleft(task_paticipateInTeam(False))
|
|
|
+ GlobalState.task_queue.appendleft(task_paticipateInTeam())
|
|
|
myTimeSleep_big()
|
|
|
# 每次循环检查已用时间
|
|
|
current_time = time.time()
|
|
@@ -261,16 +256,15 @@ def auto_participate():
|
|
|
|
|
|
|
|
|
def auto_palace():
|
|
|
- global g_times, g_cureNum
|
|
|
timeout = 180 * 60
|
|
|
start_time = time.time() # 记录开始时间
|
|
|
read_cfg()
|
|
|
- while not event.is_set():
|
|
|
- g_times += 1
|
|
|
- if len(task_queue) < 4:
|
|
|
- task_queue.appendleft(task_cure(True, g_cureNum * 5))
|
|
|
- task_queue.appendleft(task_cure(True, g_cureNum * 3))
|
|
|
- task_queue.appendleft(task_fight_enemy())
|
|
|
+ while not GlobalState.event.is_set():
|
|
|
+ GlobalState.g_times += 1
|
|
|
+ if len(GlobalState.task_queue) < 4:
|
|
|
+ GlobalState.task_queue.appendleft(task_cure(True, GlobalState.g_cureNum * 5))
|
|
|
+ GlobalState.task_queue.appendleft(task_cure(True, GlobalState.g_cureNum * 3))
|
|
|
+ GlobalState.task_queue.appendleft(task_fight_enemy())
|
|
|
|
|
|
myTimeSleep_big()
|
|
|
current_time = time.time()
|
|
@@ -280,27 +274,26 @@ def auto_palace():
|
|
|
handle_restart_game()
|
|
|
|
|
|
def add_auto_task(isMaxCollect, isJina, isSimple = False, isAddStrengh = False, activity = 'None', isAutoParticipate = True, isDailyConfig = False, train_type = 'None', always = False):
|
|
|
- global g_times, g_cureNum, g_switch, g_isRestart
|
|
|
collectArr = [int(x) for x in isMaxCollect.split(",")]
|
|
|
print("collectArr", collectArr)
|
|
|
if len(collectArr) == 1:
|
|
|
collectArr = collectArr[0]
|
|
|
- while not event.is_set():
|
|
|
+ while not GlobalState.event.is_set():
|
|
|
if isSimple == False and is_within_n_minutes(get_todo_time("巨熊行动"), 30, 35):
|
|
|
print("in fight bear")
|
|
|
- if len(task_queue) < 5:
|
|
|
+ if len(GlobalState.task_queue) < 5:
|
|
|
start_recording()
|
|
|
- task_queue.appendleft(task_returnAllLine())
|
|
|
- task_queue.appendleft(task_useAnnimalSkill(True))
|
|
|
- task_queue.appendleft(task_paticipateInTeam2(not g_switch))
|
|
|
- task_queue.appendleft(task_paticipateInTeam2(not g_switch))
|
|
|
- task_queue.appendleft(task_paticipateInTeam(not g_switch))
|
|
|
- task_queue.appendleft(task_paticipateInTeam(not g_switch))
|
|
|
- task_queue.appendleft(task_paticipateInTeam2(not g_switch))
|
|
|
- task_queue.appendleft(task_paticipateInTeam2(not g_switch))
|
|
|
- task_queue.appendleft(task_paticipateInTeam(not g_switch))
|
|
|
- task_queue.appendleft(task_paticipateInTeam(not g_switch))
|
|
|
- task_queue.appendleft(task_paticipateInTeam(False))
|
|
|
+ GlobalState.task_queue.appendleft(task_returnAllLine())
|
|
|
+ GlobalState.task_queue.appendleft(task_useAnnimalSkill(True))
|
|
|
+ GlobalState.task_queue.appendleft(task_paticipateInTeam2(not GlobalState.g_switch))
|
|
|
+ GlobalState.task_queue.appendleft(task_paticipateInTeam2(not GlobalState.g_switch))
|
|
|
+ GlobalState.task_queue.appendleft(task_paticipateInTeam(not GlobalState.g_switch))
|
|
|
+ GlobalState.task_queue.appendleft(task_paticipateInTeam(not GlobalState.g_switch))
|
|
|
+ GlobalState.task_queue.appendleft(task_paticipateInTeam2(not GlobalState.g_switch))
|
|
|
+ GlobalState.task_queue.appendleft(task_paticipateInTeam2(not GlobalState.g_switch))
|
|
|
+ GlobalState.task_queue.appendleft(task_paticipateInTeam(not GlobalState.g_switch))
|
|
|
+ GlobalState.task_queue.appendleft(task_paticipateInTeam(not GlobalState.g_switch))
|
|
|
+ GlobalState.task_queue.appendleft(task_paticipateInTeam(False))
|
|
|
|
|
|
myTimeSleep_big()
|
|
|
send_status(f'巨熊行动中')
|
|
@@ -308,7 +301,7 @@ def add_auto_task(isMaxCollect, isJina, isSimple = False, isAddStrengh = False,
|
|
|
elif isSimple == False and is_within_n_minutes(get_todo_time("巨熊行动"), 60, 0):
|
|
|
# 设置无尽运行和启动的游戏为0
|
|
|
always = True
|
|
|
- if g_switch:
|
|
|
+ if GlobalState.g_switch:
|
|
|
update_rungame_type(0)
|
|
|
send_status(f'巨熊行动:在60min内,切换到无尽模式')
|
|
|
stop_recording()
|
|
@@ -316,96 +309,93 @@ def add_auto_task(isMaxCollect, isJina, isSimple = False, isAddStrengh = False,
|
|
|
print("add special activity")
|
|
|
# special activity
|
|
|
if activity == 'lianmeng':
|
|
|
- task_queue.appendleft(task_activity_lianmeng())
|
|
|
+ GlobalState.task_queue.appendleft(task_activity_lianmeng())
|
|
|
elif activity == 'cure':
|
|
|
- task_queue.appendleft(task_cure(True, g_cureNum))
|
|
|
+ GlobalState.task_queue.appendleft(task_cure(True, GlobalState.g_cureNum))
|
|
|
elif activity == 'only_cure':
|
|
|
- task_queue.appendleft(task_cure(True, g_cureNum))
|
|
|
- task_queue.appendleft(task_cure(True, g_cureNum))
|
|
|
- task_queue.appendleft(task_cure(True, g_cureNum))
|
|
|
+ GlobalState.task_queue.appendleft(task_cure(True, GlobalState.g_cureNum))
|
|
|
+ GlobalState.task_queue.appendleft(task_cure(True, GlobalState.g_cureNum))
|
|
|
+ GlobalState.task_queue.appendleft(task_cure(True, GlobalState.g_cureNum))
|
|
|
return
|
|
|
|
|
|
print("add normal activity")
|
|
|
- task_queue.appendleft(task_checkActivities())
|
|
|
- if g_switch == True:
|
|
|
- task_queue.appendleft(task_checkBenifitStatus())
|
|
|
+ GlobalState.task_queue.appendleft(task_checkActivities())
|
|
|
+ if GlobalState.g_switch == True:
|
|
|
+ GlobalState.task_queue.appendleft(task_checkBenifitStatus())
|
|
|
|
|
|
- # first run
|
|
|
- #if g_times % 3 == 1:
|
|
|
- # task_queue.appendleft(check_safe_collect())
|
|
|
|
|
|
if isSimple == False:
|
|
|
- task_queue.appendleft(task_information())
|
|
|
+ GlobalState.task_queue.appendleft(task_information())
|
|
|
|
|
|
- task_queue.appendleft(task_check_Research())
|
|
|
- task_queue.appendleft(task_checkStoreRoom())
|
|
|
+ GlobalState.task_queue.appendleft(task_check_Research())
|
|
|
+ GlobalState.task_queue.appendleft(task_checkStoreRoom())
|
|
|
if not isSimple:
|
|
|
if isJina == 'jina':
|
|
|
- task_queue.appendleft(task_fight_jina(isAddStrengh))
|
|
|
+ GlobalState.task_queue.appendleft(task_fight_jina(isAddStrengh))
|
|
|
elif isJina == 'yongbing':
|
|
|
- task_queue.appendleft(task_fight_yongbing(isAddStrengh))
|
|
|
+ GlobalState.task_queue.appendleft(task_fight_yongbing(isAddStrengh))
|
|
|
elif isJina == 'monster':
|
|
|
- task_queue.appendleft(task_fightMonster(isAddStrengh, False, isSimple))
|
|
|
+ GlobalState.task_queue.appendleft(task_fightMonster(isAddStrengh, False, isSimple))
|
|
|
elif isJina == 'big_monster' or isJina == 'bigMonster_max':
|
|
|
- task_queue.appendleft(task_fightMonster(isAddStrengh, True, isSimple))
|
|
|
+ GlobalState.task_queue.appendleft(task_fightMonster(isAddStrengh, True, isSimple))
|
|
|
elif isJina == 'jina_call':
|
|
|
### 全部聊天记录都是新吉娜
|
|
|
- task_queue.appendleft(task_call_jina())
|
|
|
- task_queue.appendleft(task_call_jina())
|
|
|
- task_queue.appendleft(task_call_jina())
|
|
|
- task_queue.appendleft(task_call_jina())
|
|
|
+ GlobalState.task_queue.appendleft(task_call_jina())
|
|
|
+ GlobalState.task_queue.appendleft(task_call_jina())
|
|
|
+ GlobalState.task_queue.appendleft(task_call_jina())
|
|
|
+ GlobalState.task_queue.appendleft(task_call_jina())
|
|
|
elif isJina == 'jina_onlyFight':
|
|
|
- task_queue.appendleft(task_fight_jina_only())
|
|
|
- task_queue.appendleft(task_collect(collectArr, isSimple, isAddStrengh))
|
|
|
- task_queue.appendleft(task_train(train_type))
|
|
|
+ GlobalState.task_queue.appendleft(task_fight_jina_only())
|
|
|
+ GlobalState.task_queue.appendleft(task_collect(collectArr, isSimple, isAddStrengh))
|
|
|
+ GlobalState.task_queue.appendleft(task_train(train_type))
|
|
|
|
|
|
if isSimple == False:
|
|
|
if not isAddStrengh: # 如果不是添加体力,则添加一次采集
|
|
|
- task_queue.appendleft(task_collect(collectArr, isSimple, isAddStrengh))
|
|
|
+ GlobalState.task_queue.appendleft(task_collect(collectArr, isSimple, isAddStrengh))
|
|
|
if isJina == 'monster' and isAddStrengh:
|
|
|
- task_queue.appendleft(task_fightMonster(isAddStrengh, False, isSimple))
|
|
|
+ GlobalState.task_queue.appendleft(task_fightMonster(isAddStrengh, False, isSimple))
|
|
|
else:
|
|
|
- task_queue.appendleft(task_collect(collectArr, isSimple, isAddStrengh))
|
|
|
+ GlobalState.task_queue.appendleft(task_collect(collectArr, isSimple, isAddStrengh))
|
|
|
else:
|
|
|
- task_queue.appendleft(task_collect(collectArr, isSimple, isAddStrengh))
|
|
|
+ GlobalState.task_queue.appendleft(task_collect(collectArr, isSimple, isAddStrengh))
|
|
|
|
|
|
print("add rare activity")
|
|
|
- if g_times % 5 == 1:
|
|
|
+ if GlobalState.g_times % 5 == 1:
|
|
|
if get_rungame_type() == 0:
|
|
|
- task_queue.appendleft(check_buildOrResearch())
|
|
|
- task_queue.appendleft(task_cure(True, g_cureNum))
|
|
|
- task_queue.appendleft(task_information())
|
|
|
- task_queue.appendleft(task_checkDonata())
|
|
|
- task_queue.appendleft(task_checkMaster())
|
|
|
- task_queue.appendleft(task_checkAdventure())
|
|
|
- task_queue.appendleft(task_train(train_type))
|
|
|
- task_queue.appendleft(task_useAnnimalSkill())
|
|
|
- task_queue.appendleft(task_read_mails())
|
|
|
- task_queue.appendleft(task_getStrength())
|
|
|
+ GlobalState.task_queue.appendleft(check_buildOrResearch())
|
|
|
+ GlobalState.task_queue.appendleft(task_cure(True, GlobalState.g_cureNum))
|
|
|
+ GlobalState.task_queue.appendleft(task_information())
|
|
|
+ GlobalState.task_queue.appendleft(task_checkDonata())
|
|
|
+ GlobalState.task_queue.appendleft(task_checkMaster())
|
|
|
+ GlobalState.task_queue.appendleft(task_checkAdventure())
|
|
|
+ GlobalState.task_queue.appendleft(task_train(train_type))
|
|
|
+ GlobalState.task_queue.appendleft(task_useAnnimalSkill())
|
|
|
+ GlobalState.task_queue.appendleft(task_read_mails())
|
|
|
+ GlobalState.task_queue.appendleft(task_getStrength())
|
|
|
if auto_participate:
|
|
|
- task_queue.appendleft(task_checkConfilits())
|
|
|
- task_queue.appendleft(task_checkDiamond())
|
|
|
- task_queue.appendleft(task_fight_campion())
|
|
|
- task_queue.appendleft(task_get_fire_crystal())
|
|
|
- task_queue.appendleft(task_checkUnionTreasure())
|
|
|
- #task_queue.appendleft(task_checkBenifitStatus())
|
|
|
- task_queue.appendleft(task_gotoTree())
|
|
|
- task_queue.appendleft(task_checkHelp())
|
|
|
+ GlobalState.task_queue.appendleft(task_checkConfilits())
|
|
|
+ GlobalState.task_queue.appendleft(task_checkDiamond())
|
|
|
+ GlobalState.task_queue.appendleft(task_fight_campion())
|
|
|
+ GlobalState.task_queue.appendleft(task_get_fire_crystal())
|
|
|
+ GlobalState.task_queue.appendleft(task_checkUnionTreasure())
|
|
|
+ #GlobalState.task_queue.appendleft(task_checkBenifitStatus())
|
|
|
+ GlobalState.task_queue.appendleft(task_gotoTree())
|
|
|
+ GlobalState.task_queue.appendleft(task_checkHelp())
|
|
|
|
|
|
if activity == 'redPackage':
|
|
|
- task_queue.appendleft(task_get_redPackage())
|
|
|
+ GlobalState.task_queue.appendleft(task_get_redPackage())
|
|
|
if isJina == 'bigMonster_max':
|
|
|
- task_queue.appendleft(task_fightMonster(isAddStrengh, True, isSimple))
|
|
|
+ GlobalState.task_queue.appendleft(task_fightMonster(isAddStrengh, True, isSimple))
|
|
|
|
|
|
print("check restart")
|
|
|
- g_times += 1
|
|
|
+ GlobalState.g_times += 1
|
|
|
restart_times = 7
|
|
|
- if g_switch:
|
|
|
+ if GlobalState.g_switch:
|
|
|
restart_times = 4
|
|
|
- if g_times % restart_times == 0 and g_times != 0:
|
|
|
- if g_isRestart:
|
|
|
+ if GlobalState.g_times % restart_times == 0 and GlobalState.g_times != 0:
|
|
|
+ if GlobalState.g_isRestart:
|
|
|
handle_end_game()
|
|
|
- if g_switch == False:
|
|
|
+ if GlobalState.g_switch == False:
|
|
|
if always:
|
|
|
nextTaskTime = random.randint(400, 450)
|
|
|
set_nextTaskTime(nextTaskTime)
|
|
@@ -418,7 +408,7 @@ def add_auto_task(isMaxCollect, isJina, isSimple = False, isAddStrengh = False,
|
|
|
nextTaskTime = random.randint(20, 50)
|
|
|
set_nextTaskTime(nextTaskTime)
|
|
|
myTimeSleep(nextTaskTime, send_status)
|
|
|
- if g_isRestart:
|
|
|
+ if GlobalState.g_isRestart:
|
|
|
handle_restart_game()
|
|
|
else:
|
|
|
nextTaskTime = random.randint(400, 450)
|
|
@@ -426,9 +416,9 @@ def add_auto_task(isMaxCollect, isJina, isSimple = False, isAddStrengh = False,
|
|
|
myTimeSleep(nextTaskTime, send_status)
|
|
|
|
|
|
|
|
|
- task_queue.clear()
|
|
|
+ GlobalState.task_queue.clear()
|
|
|
send_status(f'自动模式结束')
|
|
|
- event.clear()
|
|
|
+ GlobalState.event.clear()
|
|
|
|
|
|
daily_config = {
|
|
|
"login_task": False,
|
|
@@ -520,11 +510,10 @@ def write_cfg(config):
|
|
|
with open('config.json', 'w') as config_file:
|
|
|
json.dump(config, config_file, indent=4)
|
|
|
def read_cfg():
|
|
|
- global g_cureNum
|
|
|
try:
|
|
|
with open('config.json', 'r') as config_file:
|
|
|
config = json.load(config_file)
|
|
|
- g_cureNum = config['cureNumber']
|
|
|
+ GlobalState.g_cureNum = int(config['cureNumber'])
|
|
|
return config
|
|
|
except FileNotFoundError:
|
|
|
print("配置文件不存在,请检查文件路径。")
|
|
@@ -562,7 +551,6 @@ def handle_auto(data):
|
|
|
auto_task(config)
|
|
|
|
|
|
def auto_task(data):
|
|
|
- global autoTask, g_cureNum,g_isRestart,g_switch
|
|
|
if data == None:
|
|
|
isMaxCollect = '4,3,2,1'
|
|
|
isSimple = False
|
|
@@ -576,7 +564,7 @@ def auto_task(data):
|
|
|
cureNumber = 500
|
|
|
lineCheck = False
|
|
|
switch = False
|
|
|
- g_isRestart = True
|
|
|
+ GlobalState.g_isRestart = True
|
|
|
else:
|
|
|
isMaxCollect = data['maxCollect']
|
|
|
isSimple = data['simple']
|
|
@@ -587,13 +575,13 @@ def auto_task(data):
|
|
|
auto_daily = False
|
|
|
train_type = data['train']
|
|
|
always = data['always']
|
|
|
- cureNumber = data['cureNumber']
|
|
|
+ cureNumber = int(data['cureNumber'])
|
|
|
lineCheck = data['lineCheck']
|
|
|
switch = data['switch']
|
|
|
- g_isRestart = data['is_restart']
|
|
|
+ GlobalState.g_isRestart = data['is_restart']
|
|
|
|
|
|
- g_cureNum = cureNumber
|
|
|
- g_switch = switch
|
|
|
+ GlobalState.g_cureNum = cureNumber
|
|
|
+ GlobalState.g_switch = switch
|
|
|
set_lineCheck(lineCheck)
|
|
|
send_status(f'开始自动模式')
|
|
|
executor.submit(add_auto_task, isMaxCollect, isJina, isSimple, isAddStrengh, activity, participateJijie, auto_daily, train_type, always)
|
|
@@ -601,13 +589,11 @@ def auto_task(data):
|
|
|
|
|
|
@socketio.on('begin_auto_participate')
|
|
|
def handle_auto_participate():
|
|
|
- global autoTask
|
|
|
send_status(f'开始自动集结模式')
|
|
|
executor.submit(auto_participate)
|
|
|
|
|
|
@socketio.on('begin_testNewFun')
|
|
|
def handle_auto_testNewFun():
|
|
|
- global autoTask
|
|
|
send_status(f'开始自动测试新功能')
|
|
|
task_testFun().run()
|
|
|
|
|
@@ -616,23 +602,21 @@ def handle_auto_testNewFun():
|
|
|
|
|
|
@socketio.on('auto_palace')
|
|
|
def handle_auto_palace():
|
|
|
- global autoTask
|
|
|
send_status(f'开始自动王城')
|
|
|
executor.submit(auto_palace)
|
|
|
|
|
|
def monitor_game_runtime():
|
|
|
- global g_times, last_change_time
|
|
|
- last_value = g_times
|
|
|
+ last_value = GlobalState.g_times
|
|
|
|
|
|
while True:
|
|
|
- current_value = g_times
|
|
|
+ current_value = GlobalState.g_times
|
|
|
if current_value != last_value:
|
|
|
last_value = current_value
|
|
|
- last_change_time = time.time()
|
|
|
+ GlobalState.last_change_time = time.time()
|
|
|
print(f"g_times changed to {current_value}")
|
|
|
|
|
|
# 检查是否超过60分钟没有变化
|
|
|
- if time.time() - last_change_time > 3600: # 3600秒=60分钟
|
|
|
+ if time.time() - GlobalState.last_change_time > 3600: # 3600秒=60分钟
|
|
|
print("g_times hasn't changed for 60 minutes!")
|
|
|
handle_restart_game()
|
|
|
|
|
@@ -644,7 +628,7 @@ if __name__ == '__main__':
|
|
|
init()
|
|
|
if '--reset' in sys.argv:
|
|
|
time.sleep(2)
|
|
|
- isReset = True
|
|
|
+ GlobalState.isReset = True
|
|
|
print("需要重启游戏")
|
|
|
runTask = threading.Thread(target=thread_runTask)#启动线程往里面添加任务
|
|
|
runTask.daemon = True
|