Skip to content
This repository was archived by the owner on Mar 18, 2020. It is now read-only.

Commit 62e941f

Browse files
committed
Finish 1.6 release.
1 parent 202352d commit 62e941f

3 files changed

Lines changed: 33 additions & 14 deletions

File tree

Config.ahk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,5 @@ ENABLE_DAILY_RACE := true
1919
ENABLE_MULTI_PLAYER_RACE := true
2020
; true/false,默认开启/关闭生涯赛事
2121
ENABLE_CAREER_RACE := true
22+
; 允许脚本使用每个段位的前几辆车来跑多人
23+
MP_MAX_CARS_PER_LEVEL = 4

source/A9.ahk

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ MP_START_X = 1520
5353
MP_START_Y = 976
5454
MP_START_COLOR_NORMAL = 0x12FBC3
5555
MP_START_COLOR_DARK = 0x2B402F
56+
; 多人段位检测
57+
MP_LEVEL_DETECT_X = 1682
58+
MP_LEVEL_DETECT_Y = 530
59+
MP_LEVEL_COLORS := {0x6184DA: 1, 0xC09F8C: 2, 0x30C8F2: 3, 0xF86492: 4, 0xA2E1F5: 5}
5660
; 多人首页误触
5761
MP_START_MISTAKE_X = 1761
5862
MP_START_MISTAKE_Y = 163
@@ -94,8 +98,8 @@ EURO_RACE_Y = 640
9498
EURO_RACE_Y_DEVIATION = 65
9599
EURO_RACE_COLOR = 0x12FBC3
96100
; A9运行检测
97-
GAME_RUNNING_CHECK_X = 637
98-
GAME_RUNNING_CHECK_Y = 53
101+
GAME_RUNNING_CHECK_X = 686
102+
GAME_RUNNING_CHECK_Y = 23
99103
GAME_RUNNING_CHECK_COLOR_DARK = 0x191919
100104
GAME_RUNNING_CHECK_COLOR_GRAY = 0x343434
101105
GAME_RUNNING_CHECK_COLOR_NORMAL = 0xFFFFFF
@@ -117,7 +121,8 @@ CAR_FIRST_OIL_X = 630
117121
CAR_UPPER_OIL_Y = 633
118122
CAR_LOWER_OIL_Y = 993
119123
CAR_MP_X_DEVIATION = 150
120-
CAR_MP_Y_DEVIATION = -10
124+
CAR_MP_UPPER_Y_DEVIATION = -10
125+
CAR_MP_LOWER_Y_DEVIATION = -20
121126
CAR_GAP_W = 514
122127
CAR_RUNABLE_COLOR_MIN = 0x12260C
123128
CAR_RUNABLE_COLOR_MAX = 0x39FBC3
@@ -248,12 +253,18 @@ OpenApp() ; 启动A9
248253
Restart() ; 重置,不会影响票数计时器
249254
{
250255
global BACK_X, BACK_Y, BACK_COLOR, GAME_RUNNING_CHECK_X, GAME_RUNNING_CHECK_Y, GAME_RUNNING_CHECK_COLOR_NORMAL, GAME_RUNNING_CHECK_COLOR_CROSS_1, GAME_RUNNING_CHECK_COLOR_CROSS_2, GAME_RUNNING_CHECK_X_2, GAME_RUNNING_CHECK_Y_2, GAME_RUNNING_CHECK_COLOR_2, lastRestartTime, enableDebug
251-
; 60秒内重置过,或者检测不到菜单页特征值
252-
if (lastRestartTime != "" && lastRestartTime + 60000 > A_TickCount
253-
|| !(CheckPixel(BACK_X, BACK_Y, BACK_COLOR) && (CheckPixelWithDeviation(GAME_RUNNING_CHECK_X, GAME_RUNNING_CHECK_Y, GAME_RUNNING_CHECK_COLOR_CROSS_1) || CheckPixelWithDeviation(GAME_RUNNING_CHECK_X, GAME_RUNNING_CHECK_Y, GAME_RUNNING_CHECK_COLOR_CROSS_2))
254-
|| CheckPixel(GAME_RUNNING_CHECK_X_2, GAME_RUNNING_CHECK_Y_2, GAME_RUNNING_CHECK_COLOR_2) && CheckPixel(GAME_RUNNING_CHECK_X, GAME_RUNNING_CHECK_Y, GAME_RUNNING_CHECK_COLOR_NORMAL)))
256+
CheckTime()
257+
forceRestart := lastRestartTime != "" && lastRestartTime + 60000 > A_TickCount
258+
hasBack := CheckPixel(BACK_X, BACK_Y, BACK_COLOR)
259+
mainCross := CheckPixelWithDeviation(GAME_RUNNING_CHECK_X, GAME_RUNNING_CHECK_Y, GAME_RUNNING_CHECK_COLOR_CROSS_1) || CheckPixelWithDeviation(GAME_RUNNING_CHECK_X, GAME_RUNNING_CHECK_Y, GAME_RUNNING_CHECK_COLOR_CROSS_2)
260+
mainNormal := CheckPixel(GAME_RUNNING_CHECK_X, GAME_RUNNING_CHECK_Y, GAME_RUNNING_CHECK_COLOR_NORMAL)
261+
secondNormal := CheckPixel(GAME_RUNNING_CHECK_X_2, GAME_RUNNING_CHECK_Y_2, GAME_RUNNING_CHECK_COLOR_2)
262+
if (forceRestart || !(hasBack && mainCross || mainNormal && secondNormal)) ; 60秒内重置过,或者检测不到菜单页特征值
255263
{
256-
Debug("Restarting")
264+
if (enableDebug)
265+
{
266+
Debug("Restarting.", "forceRestart: " . forceRestart, "hasBack: " . hasBack, "mainCross: " . mainCross, "mainNormal: " . mainNormal, "secondNormal: " . secondNormal)
267+
}
257268
if (!enableDebug)
258269
CloseApp()
259270
OpenApp()
@@ -432,20 +443,24 @@ RunMultiPlayerRace() ; 从A9首页打开并开始多人赛事
432443
if (A_Index > 10)
433444
return
434445
}
446+
local finish := false
447+
local maxLevel = 0
448+
for k, v in MP_LEVEL_COLORS ; 检测段位,青铜~传奇 分别对应 1~5
449+
if CheckPixel(MP_LEVEL_DETECT_X, MP_LEVEL_DETECT_Y, k)
450+
maxLevel := v
451+
Debug("段位:" . maxLevel)
435452
RandomClick(MP_START_X, MP_START_Y, , DELAY_MIDDLE)
436453
WaitColor(BACK_X, BACK_Y, BACK_COLOR)
437-
local finish := false
438-
local maxLevel := 3 ; 这里先固定最高使用黄金段位车辆,后面有时间再加检测
439454
Loop %maxLevel%
440455
{
441456
local levelX := MP_LEVEL_X + MP_LEVEL_GAP * (maxLevel - A_Index)
442457
RandomClick(levelX, MP_LEVEL_Y, , DELAY_MIDDLE)
443-
Loop 4
458+
Loop %MP_MAX_CARS_PER_LEVEL%
444459
{
445460
local relativePos := A_Index
446461
ToolTip 正在检查第%relativePos%辆车
447462
local carX := (relativePos - 1) // 2 * CAR_GAP_W + CAR_FIRST_OIL_X + CAR_MP_X_DEVIATION
448-
local carY := (relativePos & 1 = 0 ? CAR_LOWER_OIL_Y : CAR_UPPER_OIL_Y) + CAR_MP_Y_DEVIATION
463+
local carY := relativePos & 1 = 0 ? (CAR_LOWER_OIL_Y + CAR_MP_LOWER_Y_DEVIATION) : (CAR_UPPER_OIL_Y + CAR_MP_UPPER_Y_DEVIATION)
449464
local oilColor := GetPixel(carX, carY)
450465
local oilR := oilColor & 0xFF
451466
local oilG := (oilColor & 0xFF00) >> 8

source/Commons.ahk

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,11 +216,13 @@ HideToolTip() ; 隐藏气泡提示
216216
ToolTip
217217
}
218218

219-
Debug(text) ; 记录日志,用于debug
219+
Debug(text*) ; 记录日志,用于debug
220220
{
221221
global enableDebug
222222
if (enableDebug)
223223
{
224-
MsgBox % text
224+
for k, v in text
225+
formatted .= formatted = "" ? v : ("`n" . v)
226+
MsgBox %formatted%
225227
}
226228
}

0 commit comments

Comments
 (0)