做了模式检测和有效检测。

This commit is contained in:
DogeAS 2025-05-09 23:43:55 +08:00
parent 0cbc53788c
commit 6758781f3e
3 changed files with 30 additions and 10 deletions

View File

@ -1,5 +1,6 @@
interval = 0.1 interval = 0.1
wakeSignalStrength=20 wakeSignalStrength=20
defalutStrength=10 defalutStrength=5
max_retries = 3 # 最大重试次数 max_retries = 3 # 最大重试次数
retry_delay = 1 # 重试间隔时间(秒) retry_delay = 1 # 重试间隔时间(秒)
indicators_url = "http://localhost:8111/indicators"

View File

@ -17,6 +17,7 @@ calculatedStB=0
dglab_instance=pydglab.dglab_v3() dglab_instance=pydglab.dglab_v3()
data={} data={}
dataGot=False dataGot=False
gameMode=0#0=tank 1=air
#连接主机 #连接主机
async def connect(): async def connect():
@ -41,13 +42,15 @@ async def connect():
#抓取数据 #抓取数据
async def getData(): async def getData():
global data,dataGot global data,dataGot
indicators_url = "http://localhost:8111/indicators"
dataGot=True dataGot=True
#获取数据 #获取数据
try: try:
response=requests.get(indicators_url) response=requests.get(cfg.indicators_url)
response.raise_for_status() response.raise_for_status()
data=response.json() data=response.json()
#如果是海军
if data.get("valid")==False:
dataGot=False
#获取失败 #获取失败
except requests.exceptions.RequestException as e: except requests.exceptions.RequestException as e:
print(f"获取数据失败 :{e}") print(f"获取数据失败 :{e}")
@ -61,11 +64,24 @@ async def getData():
#强度计算 #强度计算
async def setStrength(): async def setStrength():
#计算 #计算
global data,currentStA,currentStB,calculatedStA,calculatedStB global data,currentStA,currentStB,calculatedStA,calculatedStB,gameMode
#陆战计算
if dataGot and data.get("army")=="tank":
if gameMode==1:
gameMode=0
calculatedStA=data.get("crew_total")*4 calculatedStA=data.get("crew_total")*4
#最后记得取整
calculatedStA=round(calculatedStA) calculatedStA=round(calculatedStA)
#if calculatedStA<15: #空战计算
#calculatedStA+=5 elif dataGot and data.get("army")=="air":
if gameMode==0:
gameMode=1
calculatedStA=cfg.defalutStrength
if calculatedStA<15:
calculatedStA+=2
else:
calculatedStA=cfg.defalutStrength
#主逻辑 #主逻辑
async def main(): async def main():
@ -91,6 +107,9 @@ async def main():
print(f"强度修改为:{calculatedStA},{calculatedStB}") print(f"强度修改为:{calculatedStA},{calculatedStB}")
await dglab_instance.set_strength_sync(calculatedStA, calculatedStB) await dglab_instance.set_strength_sync(calculatedStA, calculatedStB)
await asyncio.sleep(cfg.interval) await asyncio.sleep(cfg.interval)
else:
await dglab_instance.set_strength_sync(currentStA, currentStB)
await asyncio.sleep(cfg.interval)
return return
if __name__ == "__main__": if __name__ == "__main__":

Binary file not shown.