style: 划分了代码的区域

This commit is contained in:
知一一 2025-05-30 11:57:14 +08:00
parent 2c6c6a6e11
commit f869a0459f
1 changed files with 413 additions and 356 deletions

View File

@ -3,10 +3,12 @@
#Include <FindText> #Include <FindText>
CoordMode "Pixel", "Client" CoordMode "Pixel", "Client"
CoordMode "Mouse", "Client" CoordMode "Mouse", "Client"
;consts ;region 设置常量
currentVersion := "v1.0.0-beta.1" currentVersion := "v1.0.0-beta.1"
usr := "1204244136" usr := "1204244136"
repo := "DoroHelper" repo := "DoroHelper"
;endregion 设置常量
;region 运行前提示
if A_Username != 12042 { if A_Username != 12042 {
msgbox " msgbox "
( (
@ -27,7 +29,9 @@ if A_Username != 12042 {
使 使
)" )"
} }
; 全局设置 Map 对象 ;endregion 运行前提示
;region 设置变量
;tag 简单开关
global g_settings := Map( global g_settings := Map(
;商店 ;商店
"Shop", 1, ;商店总开关 "Shop", 1, ;商店总开关
@ -85,18 +89,14 @@ global g_settings := Map(
"SelfClosing", 0, ;完成后自动关闭程序 "SelfClosing", 0, ;完成后自动关闭程序
"OpenBlablalink", 1, ;完成后打开Blablalink "OpenBlablalink", 1, ;完成后打开Blablalink
) )
; 其他非简单开关的设置 Map 对象 ;tag 其他非简单开关
global g_numeric_settings := Map( global g_numeric_settings := Map(
"SleepTime", 1000, ;默认等待时间 "SleepTime", 1000, ;默认等待时间
"InterceptionBoss", 1, ;拦截战BOSS选择 "InterceptionBoss", 1, ;拦截战BOSS选择
"Tolerance", 1 ;宽容度 "Tolerance", 1 ;宽容度
) )
;检测管理员身份 ;endregion 设置变量
if !A_IsAdmin { ;region 读取设置
MsgBox "请以管理员身份运行Doro"
ExitApp
}
;读取设置
SetWorkingDir A_ScriptDir SetWorkingDir A_ScriptDir
try { try {
LoadSettings() LoadSettings()
@ -107,7 +107,8 @@ catch {
if g_settings["AutoCheckUpdate"] { if g_settings["AutoCheckUpdate"] {
CheckForUpdateHandler(false) ;调用核心函数,标记为非手动检查 CheckForUpdateHandler(false) ;调用核心函数,标记为非手动检查
} }
;创建gui ;endregion 读取设置
;region 创建gui
doroGui := Gui(, "Doro小帮手" currentVersion) doroGui := Gui(, "Doro小帮手" currentVersion)
doroGui.Opt("+Resize") doroGui.Opt("+Resize")
doroGui.MarginY := Round(doroGui.MarginY * 0.9) doroGui.MarginY := Round(doroGui.MarginY * 0.9)
@ -165,7 +166,7 @@ AddCheckboxSetting(doroGui, "RookieArena", "新人竞技场", "R1.2")
AddCheckboxSetting(doroGui, "SpecialArena", "特殊竞技场", "R1.2") AddCheckboxSetting(doroGui, "SpecialArena", "特殊竞技场", "R1.2")
AddCheckboxSetting(doroGui, "ChampionArena", "冠军竞技场(跟风竞猜)", "R1.2") AddCheckboxSetting(doroGui, "ChampionArena", "冠军竞技场(跟风竞猜)", "R1.2")
doroGui.Add("Text", "R1.2 xs Section", "===异常拦截编队===") doroGui.Add("Text", "R1.2 xs Section", "===异常拦截编队===")
doroGui.Add("DropDownList", "Choose" InterceptionBossToLabel(), ["克拉肯(石)编队1", "镜像容器(手)编队2", "茵迪维利亚(衣)编队3", "过激派(头)编队4", "死神(脚)编队5"]).OnEvent("Change", (CtrlObj, Info) => ChangeNum("InterceptionBoss", CtrlObj)) doroGui.Add("DropDownList", "Choose" String(g_numeric_settings["InterceptionBoss"]), ["克拉肯(石)编队1", "镜像容器(手)编队2", "茵迪维利亚(衣)编队3", "过激派(头)编队4", "死神(脚)编队5"]).OnEvent("Change", (CtrlObj, Info) => ChangeNum("InterceptionBoss", CtrlObj))
AddCheckboxSetting(doroGui, "InterceptionShot", "结果截图", "x+5 yp+3 R1.2") AddCheckboxSetting(doroGui, "InterceptionShot", "结果截图", "x+5 yp+3 R1.2")
doroGui.Add("Text", "R1.2 xs Section", "===模拟室===") doroGui.Add("Text", "R1.2 xs Section", "===模拟室===")
doroGui.Add("Text", "R1.2 xs Section", "普通模拟室(需解锁快速模拟)") doroGui.Add("Text", "R1.2 xs Section", "普通模拟室(需解锁快速模拟)")
@ -196,7 +197,8 @@ LogBox.Value := "日志开始...`r`n" ; 初始内容
Tab.UseTab() Tab.UseTab()
doroGui.Add("Button", "Default w80 xm+100", "DORO!").OnEvent("Click", ClickOnDoro) doroGui.Add("Button", "Default w80 xm+100", "DORO!").OnEvent("Click", ClickOnDoro)
doroGui.Show() doroGui.Show()
; 点击运行 ;endregion 创建gui
;region 点击运行
ClickOnDoro(*) { ClickOnDoro(*) {
LogBox.Value := "" LogBox.Value := ""
Initialization Initialization
@ -279,8 +281,14 @@ ClickOnDoro(*) {
ExitApp ExitApp
} }
} }
;初始化 ;endregion 点击运行
;region 初始化
Initialization() { Initialization() {
;检测管理员身份
if !A_IsAdmin {
MsgBox "请以管理员身份运行Doro"
ExitApp
}
global BattleActive := 1 global BattleActive := 1
global stdScreenW := 3840 global stdScreenW := 3840
global stdScreenH := 2160 global stdScreenH := 2160
@ -336,6 +344,51 @@ Initialization() {
MsgBox ("请按ctrl+3调整游戏尺寸直到没有此提示") MsgBox ("请按ctrl+3调整游戏尺寸直到没有此提示")
} }
} }
;endregion 初始化
;region UI辅助函数
;tag 写入数据
WriteSettings(*) {
global g_settings, g_numeric_settings
;从 g_settings Map 写入开关设置
for key, value in g_settings {
IniWrite(value, "settings.ini", "Toggles", key)
}
for key, value in g_numeric_settings {
IniWrite(value, "settings.ini", "NumericSettings", key)
}
}
;tag 读入数据
LoadSettings() {
global g_settings, g_numeric_settings
default_settings := g_settings.Clone()
;从 Map 加载开关设置
for key, defaultValue in default_settings {
readValue := IniRead("settings.ini", "Toggles", key, defaultValue)
g_settings[key] := readValue
}
default_numeric_settings := g_numeric_settings.Clone() ;保留一份默认数值设置
for key, defaultValue in default_numeric_settings {
readValue := IniRead("settings.ini", "NumericSettings", key, defaultValue)
;确保读取的值是数字,如果不是则使用默认值
if IsNumber(readValue) {
g_numeric_settings[key] := Integer(readValue) ;转换为整数
} else {
g_numeric_settings[key] := defaultValue
}
}
}
;tag 保存数据
SaveSettings(*) {
WriteSettings()
MsgBox "设置已保存!"
AddLog("设置已保存!", true)
}
IsCheckedToString(foo) {
if foo
return "Checked"
else
return ""
}
/** /**
* g_settings Map GUI . * g_settings Map GUI .
* @param guiObj Gui - GUI . * @param guiObj Gui - GUI .
@ -373,6 +426,8 @@ ChangeNum(settingKey, GUICtrl, *) {
global g_numeric_settings global g_numeric_settings
g_numeric_settings[settingKey] := GUICtrl.Value g_numeric_settings[settingKey] := GUICtrl.Value
} }
;endregion UI辅助函数
;region 消息函数合集
MsgSponsor(*) { MsgSponsor(*) {
myGui := Gui() myGui := Gui()
myGui.Title := "Make Doro Great Again" myGui.Title := "Make Doro Great Again"
@ -411,95 +466,9 @@ ClickOnHelp(*) {
)" )"
} }
IsCheckedToString(foo) { ;endregion 消息函数合集
if foo ;region 软件更新
return "Checked" ;tag 检查更新
else
return ""
}
InterceptionBossToLabel() {
global g_numeric_settings
return String(g_numeric_settings["InterceptionBoss"])
}
WriteSettings(*) {
global g_settings, g_numeric_settings
; 从 g_settings Map 写入开关设置
for key, value in g_settings {
IniWrite(value, "settings.ini", "Toggles", key)
}
for key, value in g_numeric_settings {
IniWrite(value, "settings.ini", "NumericSettings", key)
}
}
LoadSettings() {
global g_settings, g_numeric_settings
default_settings := g_settings.Clone()
; 从 Map 加载开关设置
for key, defaultValue in default_settings {
readValue := IniRead("settings.ini", "Toggles", key, defaultValue)
g_settings[key] := readValue
}
default_numeric_settings := g_numeric_settings.Clone() ; 保留一份默认数值设置
for key, defaultValue in default_numeric_settings {
readValue := IniRead("settings.ini", "NumericSettings", key, defaultValue)
; 确保读取的值是数字,如果不是则使用默认值
if IsNumber(readValue) {
g_numeric_settings[key] := Integer(readValue) ; 转换为整数
} else {
g_numeric_settings[key] := defaultValue
}
}
}
SaveSettings(*) {
WriteSettings()
MsgBox "设置已保存!"
AddLog("设置已保存!", true)
}
;颜色判断
IsSimilarColor(targetColor, color) {
tr := Format("{:d}", "0x" . substr(targetColor, 3, 2))
tg := Format("{:d}", "0x" . substr(targetColor, 5, 2))
tb := Format("{:d}", "0x" . substr(targetColor, 7, 2))
pr := Format("{:d}", "0x" . substr(color, 3, 2))
pg := Format("{:d}", "0x" . substr(color, 5, 2))
pb := Format("{:d}", "0x" . substr(color, 7, 2))
distance := sqrt((tr - pr) ** 2 + (tg - pg) ** 2 + (tb - pb) ** 2)
if (distance < 15)
return true
return false
}
;坐标转换-点击
UserClick(sX, sY, k) {
uX := Round(sX * k) ; 计算转换后的坐标
uY := Round(sY * k)
CoordMode "Mouse", "Client"
Send "{Click " uX " " uY "}" ; 点击转换后的坐标
}
;坐标转换-按住
UserPress(sX, sY, k) {
uX := Round(sX * k) ; 计算转换后的坐标
uY := Round(sY * k)
CoordMode "Mouse", "Client"
Send "{Click " uX " " uY "}" ; 点击转换后的坐标
}
;坐标转换-移动
UserMove(sX, sY, k) {
uX := Round(sX * k) ; 计算转换后的坐标
uY := Round(sY * k)
Send "{Click " uX " " uY " " 0 "}" ; 点击转换后的坐标
}
;坐标转换-颜色
UserCheckColor(sX, sY, sC, k) {
loop sX.Length {
uX := Round(sX[A_Index] * k)
uY := Round(sY[A_Index] * k)
uC := PixelGetColor(uX, uY)
if (!IsSimilarColor(uC, sC[A_Index]))
return 0
}
return 1
}
;检查更新
CheckForUpdateHandler(isManualCheck) { CheckForUpdateHandler(isManualCheck) {
global currentVersion, usr, repo ;确保能访问全局变量 global currentVersion, usr, repo ;确保能访问全局变量
try { try {
@ -542,6 +511,7 @@ CheckForUpdateHandler(isManualCheck) {
} }
} }
} }
;tag 点击检查更新
ClickOnCheckForUpdate(*) { ClickOnCheckForUpdate(*) {
if InStr(currentVersion, "beta") { if InStr(currentVersion, "beta") {
MsgBox ("测试版本禁用更新!") MsgBox ("测试版本禁用更新!")
@ -550,42 +520,55 @@ ClickOnCheckForUpdate(*) {
} }
CheckForUpdateHandler(true) ;调用核心函数,标记为手动检查 CheckForUpdateHandler(true) ;调用核心函数,标记为手动检查
} }
;判断自动按钮颜色 ;endregion 软件更新
isAutoOff(sX, sY, k) { ;region 坐标辅助函数
uX := Round(sX * k) ;tag 点击
UserClick(sX, sY, k) {
uX := Round(sX * k) ;计算转换后的坐标
uY := Round(sY * k) uY := Round(sY * k)
uC := PixelGetColor(uX, uY) CoordMode "Mouse", "Client"
r := Format("{:d}", "0x" . substr(uC, 3, 2)) Send "{Click " uX " " uY "}" ;点击转换后的坐标
g := Format("{:d}", "0x" . substr(uC, 5, 2)) }
b := Format("{:d}", "0x" . substr(uC, 7, 2)) ;tag 按住
if Abs(r - g) < 10 && Abs(r - b) < 10 && Abs(g - b) < 10 UserPress(sX, sY, k) {
uX := Round(sX * k) ;计算转换后的坐标
uY := Round(sY * k)
CoordMode "Mouse", "Client"
Send "{Click " uX " " uY "}" ;点击转换后的坐标
}
;tag 移动
UserMove(sX, sY, k) {
uX := Round(sX * k) ;计算转换后的坐标
uY := Round(sY * k)
Send "{Click " uX " " uY " " 0 "}" ;点击转换后的坐标
}
;tag 颜色判断
IsSimilarColor(targetColor, color) {
tr := Format("{:d}", "0x" . substr(targetColor, 3, 2))
tg := Format("{:d}", "0x" . substr(targetColor, 5, 2))
tb := Format("{:d}", "0x" . substr(targetColor, 7, 2))
pr := Format("{:d}", "0x" . substr(color, 3, 2))
pg := Format("{:d}", "0x" . substr(color, 5, 2))
pb := Format("{:d}", "0x" . substr(color, 7, 2))
distance := sqrt((tr - pr) ** 2 + (tg - pg) ** 2 + (tb - pb) ** 2)
if (distance < 15)
return true return true
return false return false
} }
;检查自动瞄准和自动爆裂按钮颜色 ;tag 颜色
CheckAutoBattle() { UserCheckColor(sX, sY, sC, k) {
static autoBurstOn := false loop sX.Length {
static autoAimOn := false uX := Round(sX[A_Index] * k)
; 检查并开启自动瞄准 uY := Round(sY[A_Index] * k)
if !autoAimOn && UserCheckColor([216], [160], ["0xFFFFFF"], scrRatio) { uC := PixelGetColor(uX, uY)
; 如果自动瞄准按钮是灰色/关闭状态 if (!IsSimilarColor(uC, sC[A_Index]))
if isAutoOff(60, 57, scrRatio) { return 0
UserClick(60, 71, scrRatio) ; 点击开启自动瞄准
Sleep g_numeric_settings["SleepTime"]
} }
autoAimOn := true ; 设置标志位,表示已尝试开启或已开启 return 1
} }
; 检查并开启自动爆裂 ;endregion 坐标辅助函数
if !autoBurstOn && UserCheckColor([216], [160], ["0xFFFFFF"], scrRatio) { ; 假设检查点与 Auto Aim 相同 ;region 日志辅助函数
; 如果自动爆裂按钮是灰色/关闭状态 ;tag 添加日志
if isAutoOff(202, 66, scrRatio) {
Send "{Tab}" ; 发送 Tab 键尝试开启自动爆裂
Sleep g_numeric_settings["SleepTime"]
}
autoBurstOn := true ; 设置标志位,表示已尝试开启或已开启
}
}
;添加日志
AddLog(text, forceOutput := false) { ;默认参数设为false AddLog(text, forceOutput := false) { ;默认参数设为false
if (!IsObject(LogBox) || !LogBox.Hwnd) { if (!IsObject(LogBox) || !LogBox.Hwnd) {
return return
@ -600,7 +583,7 @@ AddLog(text, forceOutput := false) { ; 默认参数设为false
LogBox.Value .= timestamp " - " text "`r`n" LogBox.Value .= timestamp " - " text "`r`n"
SendMessage(0x0115, 7, 0, LogBox) ;自动滚动到底部 SendMessage(0x0115, 7, 0, LogBox) ;自动滚动到底部
} }
;日志的时间戳转换 ;tag 日志的时间戳转换
TimeToSeconds(timeStr) { TimeToSeconds(timeStr) {
;期望 "HH:mm:ss" 格式 ;期望 "HH:mm:ss" 格式
parts := StrSplit(timeStr, ":") parts := StrSplit(timeStr, ":")
@ -620,7 +603,7 @@ TimeToSeconds(timeStr) {
} }
return hours * 3600 + minutes * 60 + seconds return hours * 3600 + minutes * 60 + seconds
} }
; 读取日志框内容,根据 HH:mm:ss 时间戳推算跨度,输出到日志框 ;tag 读取日志框内容 根据 HH:mm:ss 时间戳推算跨度,输出到日志框
CalculateAndShowSpan(ExitReason := "", ExitCode := "") { CalculateAndShowSpan(ExitReason := "", ExitCode := "") {
global outputText global outputText
local logContent := LogBox.Value local logContent := LogBox.Value
@ -661,51 +644,21 @@ CalculateAndShowSpan(ExitReason := "", ExitCode := "") {
;添加到日志 ;添加到日志
AddLog(outputText) AddLog(outputText)
} }
; 剧情模式 ;endregion 日志辅助函数
StoryMode(*) { ;region 流程辅助函数
Initialization ;tag 点左下角的小房子的对应位置的右边(不返回)
while True {
Text := "|<SKIP的图标>*10$39.zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzztzDzzzz7szzzzsD1zzzz0s7zzzs30Tzzz000zzzs003zzz000Dzzs001zzz000zzzs10Dzzz0s7zzzsD1zzzz3szzzztzDzzzzzzzzzzzzzzzw"
while (ok := FindText(&X, &Y, NikkeX, NikkeY, NikkeX + NikkeW, NikkeY + NikkeH, 0.1 * PicTolerance, 0.1 * PicTolerance, Text, , 0, , , , , TrueRatio, TrueRatio)) {
Text1 := "|<1的图标>*99$31.y000Ty0003y7zzkyDzzyCDzzzWDzzzt7zzzw7zzzz3zzzzVzzDzkzy3zsTy1zwDz0zy7zUTz3zwDzVzy7zkzz3zsTzVzwDzkzy7zsTz3zwDzVzy7zkzz3zsTzVzw7zzzwHzzzyMzzzyCDzzyDVzzwDs000Dy000zk"
if (ok := FindText(&X, &Y, NikkeX, NikkeY, NikkeX + NikkeW, NikkeY + NikkeH, 0.1 * PicTolerance, 0.1 * PicTolerance, Text1, , , , , , , TrueRatio, TrueRatio)) {
Sleep 800
Send "{1}"
}
}
Text := "|<灰色的星星>*51$28.zzbzzzwDzzzkzzzy1zzzs7zzz0Dzzw0zzzU1zy000700002000080001k000DU001z000Dz001zw00Dzk00zz003zw00Dzk00zz001zs1U7zUTUTy7zVztzzbs"
if (ok := FindText(&X, &Y, NikkeX, NikkeY, NikkeX + NikkeW, NikkeY + NikkeH, 0.1 * PicTolerance, 0.1 * PicTolerance, Text, , , , , , 8, TrueRatio, TrueRatio)) {
FindText().Click(X, Y, "L")
Sleep g_numeric_settings["SleepTime"]
}
Text := "|<播放>*192$53.sTzlzlz3zks01zVy7zVk03z3wDz3U0Dy7sTy7W4D00Uzk308y0100U400w02010000s0Q031000wDkMD3U03sTUky7k0Tk01VwC00TU037s08ED000D00kky400Q0001w8O0s3U07sEw3s700DkVs7wC4ATX3sDsQ00y67UTks01wAC0TVk03sMM0T3V37VkU08700C001UES00SA47VUw00ysATXjzzzzzzzy"
if (ok := FindText(&X, &Y, NikkeX, NikkeY, NikkeX + NikkeW, NikkeY + NikkeH, 0.1 * PicTolerance, 0.1 * PicTolerance, Text, , 0, , , , , TrueRatio, TrueRatio)) {
FindText().Click(X, Y, "L")
Sleep 3000
Send "{LShift Down}"
Sleep 500
Send "{LShift Up}"
Click 0, 0, 0
}
if !WinActive(nikkeID) {
MsgBox "窗口未聚焦,程序已终止"
Pause
}
}
}
;点左下角的小房子的对应位置的右边(不返回)
Confirm() { Confirm() {
UserClick(474, 2028, scrRatio) UserClick(474, 2028, scrRatio)
;AddLog("点击默认位置(" Round(stdTargetX * scrRatio) "," Round(stdTargetY * scrRatio) ")") ;AddLog("点击默认位置(" Round(stdTargetX * scrRatio) "," Round(stdTargetY * scrRatio) ")")
Sleep 500 Sleep 500
} }
;按Esc ;tag 按Esc
GoBack() { GoBack() {
AddLog("返回") AddLog("返回")
Send "{Esc}" Send "{Esc}"
Sleep g_numeric_settings["SleepTime"] Sleep g_numeric_settings["SleepTime"]
} }
;结算招募 ;tag 结算招募
Recruit() { Recruit() {
AddLog("结算招募") AddLog("结算招募")
Text := "|<SKIP>*119$57.k1z7wT7k0w07kz1kw0100S7kS7U0003ky7kw003sS7Vy7Vy0T3ksTkwDk3zy63y7Vy0TzkkzkwDk07y47y7Vy00Dk0zkw00k0S03y7U07U3k0Tkw01zsS11y7U0Tz3kQDkwDz3sS7Uy7VzsT3ky7kwDz00S7kS7Vzs03kz3kwDz00S7wC7Vzy07kzVkwDzU" Text := "|<SKIP>*119$57.k1z7wT7k0w07kz1kw0100S7kS7U0003ky7kw003sS7Vy7Vy0T3ksTkwDk3zy63y7Vy0TzkkzkwDk07y47y7Vy00Dk0zkw00k0S03y7U07U3k0Tkw01zsS11y7U0Tz3kQDkwDz3sS7Uy7VzsT3ky7kwDz00S7kS7Vzs03kz3kwDz00S7wC7Vzy07kzVkwDzU"
@ -720,7 +673,7 @@ Recruit() {
Sleep g_numeric_settings["SleepTime"] Sleep g_numeric_settings["SleepTime"]
} }
} }
; 点掉推销 ;tag 点掉推销
RefuseSale() { RefuseSale() {
AddLog("尝试关闭可能的推销页面") AddLog("尝试关闭可能的推销页面")
loop 5 { loop 5 {
@ -733,7 +686,7 @@ RefuseSale() {
} }
Sleep g_numeric_settings["SleepTime"] Sleep g_numeric_settings["SleepTime"]
} }
; 进入战斗 ;tag 进入战斗
EnterToBattle() { EnterToBattle() {
global BattleActive := 1 global BattleActive := 1
AddLog("尝试进入战斗") AddLog("尝试进入战斗")
@ -751,7 +704,42 @@ EnterToBattle() {
AddLog("无战斗次数") AddLog("无战斗次数")
} }
} }
;战斗结算 ;tag 判断自动按钮颜色
isAutoOff(sX, sY, k) {
uX := Round(sX * k)
uY := Round(sY * k)
uC := PixelGetColor(uX, uY)
r := Format("{:d}", "0x" . substr(uC, 3, 2))
g := Format("{:d}", "0x" . substr(uC, 5, 2))
b := Format("{:d}", "0x" . substr(uC, 7, 2))
if Abs(r - g) < 10 && Abs(r - b) < 10 && Abs(g - b) < 10
return true
return false
}
;tag 检查自动瞄准和自动爆裂按钮颜色
CheckAutoBattle() {
static autoBurstOn := false
static autoAimOn := false
;检查并开启自动瞄准
if !autoAimOn && UserCheckColor([216], [160], ["0xFFFFFF"], scrRatio) {
;如果自动瞄准按钮是灰色/关闭状态
if isAutoOff(60, 57, scrRatio) {
UserClick(60, 71, scrRatio) ;点击开启自动瞄准
Sleep g_numeric_settings["SleepTime"]
}
autoAimOn := true ;设置标志位,表示已尝试开启或已开启
}
;检查并开启自动爆裂
if !autoBurstOn && UserCheckColor([216], [160], ["0xFFFFFF"], scrRatio) { ;假设检查点与 Auto Aim 相同
;如果自动爆裂按钮是灰色/关闭状态
if isAutoOff(202, 66, scrRatio) {
Send "{Tab}" ;发送 Tab 键尝试开启自动爆裂
Sleep g_numeric_settings["SleepTime"]
}
autoBurstOn := true ;设置标志位,表示已尝试开启或已开启
}
}
;tag 战斗结算
BattleSettlement(Screenshot := false) { BattleSettlement(Screenshot := false) {
global NikkeX global NikkeX
global NikkeY global NikkeY
@ -842,7 +830,7 @@ BattleSettlement(Screenshot := false) {
} }
} }
} }
;返回大厅 ;tag 返回大厅
BackToHall() { BackToHall() {
AddLog("返回大厅") AddLog("返回大厅")
Text方舟 := "|<方舟的图标>*200$57.0000w00000003zzU000003zzzk00003zzzzU0000zzzzz0000Tzzzzz0007zzzzzw003zzxzzzk00zzw7bzz00Dzz0wDzw03zzk7UTzk0Tzs0w1zz07zz0Tk7zw1zzkDzUzzkDzy3zy3zz3zzUzzkTzsTzw7zz3zzbzzzzzsDzyTzzzzzzzznzzzzzzzzzDzxzzzzzztzzUzzzzzz7zy7zz1zzsTzkTzsTzy3zz1zy3zzUDzs7zUTzw0zzUDk7zz03zy0w1zzk0Dzs7UTzy00zzkw7zzU03zz7Vzzs00Dzzzzzy000zzzzzz0001zzzzzk0003zzzzs00007zzzw000007zzy0000007zw000U" Text方舟 := "|<方舟的图标>*200$57.0000w00000003zzU000003zzzk00003zzzzU0000zzzzz0000Tzzzzz0007zzzzzw003zzxzzzk00zzw7bzz00Dzz0wDzw03zzk7UTzk0Tzs0w1zz07zz0Tk7zw1zzkDzUzzkDzy3zy3zz3zzUzzkTzsTzw7zz3zzbzzzzzsDzyTzzzzzzzznzzzzzzzzzDzxzzzzzztzzUzzzzzz7zy7zz1zzsTzkTzsTzy3zz1zy3zzUDzs7zUTzw0zzUDk7zz03zy0w1zzk0Dzs7UTzy00zzkw7zzU03zz7Vzzs00Dzzzzzy000zzzzzz0001zzzzzk0003zzzzs00007zzzw000007zzy0000007zw000U"
@ -861,7 +849,7 @@ BackToHall() {
} }
Sleep g_numeric_settings["SleepTime"] Sleep g_numeric_settings["SleepTime"]
} }
;进入方舟 ;tag 进入方舟
EnterToArk() { EnterToArk() {
AddLog("尝试进入方舟") AddLog("尝试进入方舟")
Text方舟 := "|<方舟内部左上角的文本>*111$36.zXzzVzzXzzVzz1zs03001s03001s33sDzsVXwTzslXw07st3w07U00w07U00sT7kX3sz7sXXkz7kVXkz7llXVy7VzX3UDXy37kDXy7zszzzDU" ;判断方舟内部左上角的文本是否存在 Text方舟 := "|<方舟内部左上角的文本>*111$36.zXzzVzzXzzVzz1zs03001s03001s33sDzsVXwTzslXw07st3w07U00w07U00sT7kX3sz7sXXkz7kVXkz7llXVy7VzX3UDXy37kDXy7zszzzDU" ;判断方舟内部左上角的文本是否存在
@ -880,7 +868,7 @@ EnterToArk() {
} }
Sleep g_numeric_settings["SleepTime"] Sleep g_numeric_settings["SleepTime"]
} }
;登录 ;tag 登录
Login() { Login() {
AddLog("正在登录") AddLog("正在登录")
check := 0 check := 0
@ -922,7 +910,9 @@ Login() {
} }
AddLog("已处于大厅页面,登录成功") AddLog("已处于大厅页面,登录成功")
} }
; 付费商店每日每周免费钻 ;endregion 流程辅助函数
;region 商店
;tag 付费商店每日每周免费钻
CashShop() { CashShop() {
BackToHall BackToHall
AddLog("===付费商店任务开始===") AddLog("===付费商店任务开始===")
@ -966,7 +956,7 @@ CashShop() {
AddLog("===付费商店任务结束===") AddLog("===付费商店任务结束===")
BackToHall BackToHall
} }
;普通商店 ;tag 普通商店
NormalShop() { NormalShop() {
BackToHall BackToHall
AddLog("===普通商店任务开始===") AddLog("===普通商店任务开始===")
@ -1076,7 +1066,7 @@ NormalShop() {
} }
AddLog("===普通商店任务结束===") AddLog("===普通商店任务结束===")
} }
; 竞技场商店 ;tag 竞技场商店
ArenaShop() { ArenaShop() {
AddLog("===竞技场商店任务开始===") AddLog("===竞技场商店任务开始===")
Text := "|<竞技场商店的图标>*127$42.zzs0DzzzzU03zzzz001zzzy1y1zzzw7z0zzzsTTUzzzswDUzzzkwDUlzylwDUwTsVsDVz7lXsD1zXXXsS3zl7XsE7zt7XU0TzsD301zzsD3U0Tzs73kkTzsb3ksDzlXXks7zntXkw7wrxVUw3szzVUy1kzzk1z01zzk1z03zzw1zU7zzy3zsTzU" Text := "|<竞技场商店的图标>*127$42.zzs0DzzzzU03zzzz001zzzy1y1zzzw7z0zzzsTTUzzzswDUzzzkwDUlzylwDUwTsVsDVz7lXsD1zXXXsS3zl7XsE7zt7XU0TzsD301zzsD3U0Tzs73kkTzsb3ksDzlXXks7zntXkw7wrxVUw3szzVUy1kzzk1z01zzk1z03zzw1zU7zzy3zsTzU"
@ -1209,7 +1199,7 @@ ArenaShop() {
} }
AddLog("===竞技场商店任务结束===") AddLog("===竞技场商店任务结束===")
} }
; 废铁商店 ;tag 废铁商店
ScrapShop() { ScrapShop() {
AddLog("===废铁商店任务开始===") AddLog("===废铁商店任务开始===")
Text := "|<废铁商店的图标>*160$40.zw000zzzU001zzy0003zzk000Dzz3zzkTzsDzzVzz1zzy3zw7zzwDzUy7zkTy7s7zVzkTU7y3z3z07w7sDz0TsT1zz1zUwDzy7z3UzsTzw67zUTzsETy0TzU1zw0Tz27zw1zs8Dzw7z1kzzsTw71zVzzUy7y1zy7sDs1zkTkTk1z3zVzk7sDy3zkT1zwDzVwDzkTzzUzzVzzy7zy3zzkTzw0003zzs000DzzU001zzz000DzU" Text := "|<废铁商店的图标>*160$40.zw000zzzU001zzy0003zzk000Dzz3zzkTzsDzzVzz1zzy3zw7zzwDzUy7zkTy7s7zVzkTU7y3z3z07w7sDz0TsT1zz1zUwDzy7z3UzsTzw67zUTzsETy0TzU1zw0Tz27zw1zs8Dzw7z1kzzsTw71zVzzUy7y1zy7sDs1zkTkTk1z3zVzk7sDy3zkT1zwDzVwDzkTzzUzzVzzy7zy3zzkTzw0003zzs000DzzU001zzz000DzU"
@ -1308,7 +1298,9 @@ ScrapShop() {
} }
AddLog("===废铁商店任务结束===") AddLog("===废铁商店任务结束===")
} }
; 模拟室 ;endregion 商店
;region 模拟室
;tag 模拟室
SimulationRoom() { SimulationRoom() {
EnterToArk EnterToArk
AddLog("===模拟室任务开始===") AddLog("===模拟室任务开始===")
@ -1391,7 +1383,7 @@ SimulationRoom() {
} }
AddLog("===模拟室任务结束===") AddLog("===模拟室任务结束===")
} }
; 模拟室超频 ;tag 模拟室超频
SimulationOverClock() { SimulationOverClock() {
AddLog("===模拟室超频任务开始===") AddLog("===模拟室超频任务开始===")
Text := "|<剩余奖励的0>*80$26.s001wTzyCDzzl600C3001lU00AE0014000F0004E3w141VUF0E84E421410UF0E84E66140z0F0004E0014000FU00AA0071U03WDzzllzzsy000S" Text := "|<剩余奖励的0>*80$26.s001wTzyCDzzl600C3001lU00AE0014000F0004E3w141VUF0E84E421410UF0E84E66140z0F0004E0014000FU00AA0071U03WDzzllzzsy000S"
@ -1483,7 +1475,9 @@ SimulationOverClock() {
} }
AddLog("===模拟室超频任务结束===") AddLog("===模拟室超频任务结束===")
} }
; 竞技场收菜 ;endregion 模拟室
;region 竞技场
;tag 竞技场收菜
Arena() { Arena() {
EnterToArk() EnterToArk()
AddLog("===竞技场收菜任务开始===") AddLog("===竞技场收菜任务开始===")
@ -1523,7 +1517,7 @@ Arena() {
} }
} }
} }
; 新人竞技场 ;tag 新人竞技场
RookieArena() { RookieArena() {
AddLog("===新人竞技场任务开始===") AddLog("===新人竞技场任务开始===")
AddLog("查找新人竞技场") AddLog("查找新人竞技场")
@ -1578,7 +1572,7 @@ RookieArena() {
} }
AddLog("===新人竞技场任务结束===") AddLog("===新人竞技场任务结束===")
} }
;特殊竞技场 ;tag 特殊竞技场
SpecialArena() { SpecialArena() {
AddLog("===特殊竞技场任务开始===") AddLog("===特殊竞技场任务开始===")
AddLog("查找特殊竞技场") AddLog("查找特殊竞技场")
@ -1633,7 +1627,7 @@ SpecialArena() {
} }
AddLog("===特殊竞技场任务结束===") AddLog("===特殊竞技场任务结束===")
} }
;冠军竞技场 ;tag 冠军竞技场
ChampionArena() { ChampionArena() {
AddLog("===冠军竞技场任务开始===") AddLog("===冠军竞技场任务开始===")
AddLog("查找冠军竞技场") AddLog("查找冠军竞技场")
@ -1680,7 +1674,9 @@ ChampionArena() {
AddLog("===冠军竞技场任务结束===") AddLog("===冠军竞技场任务结束===")
BackToHall BackToHall
} }
; 企业塔 ;endregion 竞技场
;region 无限之塔
;tag 企业塔
CompanyTower() { CompanyTower() {
EnterToArk EnterToArk
AddLog("===企业塔任务开始===") AddLog("===企业塔任务开始===")
@ -1748,7 +1744,7 @@ CompanyTower() {
AddLog("===企业塔任务结束===") AddLog("===企业塔任务结束===")
BackToHall BackToHall
} }
; 通用塔 ;tag 通用塔
UniversalTower() { UniversalTower() {
EnterToArk EnterToArk
AddLog("===通用塔任务开始===") AddLog("===通用塔任务开始===")
@ -1781,7 +1777,9 @@ UniversalTower() {
AddLog("===通用塔任务结束===") AddLog("===通用塔任务结束===")
BackToHall BackToHall
} }
; 异常拦截 ;endregion 无限之塔
;region 拦截战
;tag 异常拦截
Interception() { Interception() {
BackToHall BackToHall
EnterToArk EnterToArk
@ -1931,7 +1929,9 @@ Interception() {
AddLog("===异常拦截任务结束===") AddLog("===异常拦截任务结束===")
BackToHall BackToHall
} }
; 前哨基地收菜 ;endregion 拦截战
;region 前哨基地
;tag 前哨基地收菜
OutpostDefence() { OutpostDefence() {
BackToHall BackToHall
AddLog("===前哨基地收菜任务开始===") AddLog("===前哨基地收菜任务开始===")
@ -1987,7 +1987,7 @@ OutpostDefence() {
Expedition() Expedition()
BackToHall() BackToHall()
} }
; 派遣 ;tag 派遣
Expedition() { Expedition() {
AddLog("===派遣委托任务开始===") AddLog("===派遣委托任务开始===")
AddLog("查找派遣公告栏") AddLog("查找派遣公告栏")
@ -2023,7 +2023,9 @@ Expedition() {
AddLog("===派遣委托任务结束===") AddLog("===派遣委托任务结束===")
BackToHall BackToHall
} }
; 好感度咨询 ;endregion 前哨基地
;region 咨询
;tag 好感度咨询
LoveTalking() { LoveTalking() {
BackToHall BackToHall
UserClick(1497, 1994, scrRatio) ;点击妮姬图标位置(识图很困难) UserClick(1497, 1994, scrRatio) ;点击妮姬图标位置(识图很困难)
@ -2105,7 +2107,7 @@ LoveTalking() {
AddLog("===妮姬咨询任务结束===") AddLog("===妮姬咨询任务结束===")
BackToHall BackToHall
} }
; 花絮鉴赏 ;tag 花絮鉴赏
Appreciation() { Appreciation() {
AddLog("===花絮鉴赏任务开始===") AddLog("===花絮鉴赏任务开始===")
Text := "|<花絮鉴赏会的N>*184$44.000000000000000000Dy00000zzz0000k00M000M00300087xU8004DzzV002Dzzy8017zzzl00lzzzwE08zzzzU02DzzzsU1bxzsy80NzDyDm0CTlzXwk7bw7szDztz0yDnzyTk7XwzzbwsMzDztzD2DnzyTns3wzzbwz0zDztzDwDnzyTnzXwzzbwzwy/zxzDzzWzzDzzzsjzlzzzwPzyTzzz4zzXzzzWDzwDzzV3zzVzzUUzzy000EDzzw00M3zzzzzw0zzzzzs0Dzzzzk02" Text := "|<花絮鉴赏会的N>*184$44.000000000000000000Dy00000zzz0000k00M000M00300087xU8004DzzV002Dzzy8017zzzl00lzzzwE08zzzzU02DzzzsU1bxzsy80NzDyDm0CTlzXwk7bw7szDztz0yDnzyTk7XwzzbwsMzDztzD2DnzyTns3wzzbwz0zDztzDwDnzyTnzXwzzbwzwy/zxzDzzWzzDzzzsjzlzzzwPzyTzzz4zzXzzzWDzwDzzV3zzVzzUUzzy000EDzzw00M3zzzzzw0zzzzzs0Dzzzzk02"
@ -2131,7 +2133,8 @@ Appreciation() {
else AddLog("花絮鉴赏任务已完成") else AddLog("花絮鉴赏任务已完成")
AddLog("===花絮鉴赏任务结束===") AddLog("===花絮鉴赏任务结束===")
} }
; 好友点数收取 ;endregion 咨询
;region 好友点数收取
FriendPoint() { FriendPoint() {
BackToHall BackToHall
AddLog("===好友点数任务开始===") AddLog("===好友点数任务开始===")
@ -2149,7 +2152,8 @@ FriendPoint() {
AddLog("===好友点数任务结束===") AddLog("===好友点数任务结束===")
BackToHall BackToHall
} }
; 邮箱收取 ;endregion 好友点数收取
;region 邮箱收取
Mail() { Mail() {
BackToHall BackToHall
AddLog("===邮箱任务开始===") AddLog("===邮箱任务开始===")
@ -2172,7 +2176,9 @@ Mail() {
AddLog("===邮箱任务结束===") AddLog("===邮箱任务结束===")
BackToHall BackToHall
} }
;排名奖励(停用) ;endregion 邮箱收取
;region 方舟排名奖励
;tag 排名奖励(停用)
RankingReward() { RankingReward() {
EnterToArk() EnterToArk()
AddLog("===排名奖励任务开始===") AddLog("===排名奖励任务开始===")
@ -2209,7 +2215,8 @@ RankingReward() {
AddLog("===排名奖励任务结束===") AddLog("===排名奖励任务结束===")
BackToHall BackToHall
} }
; 任务收取 ;endregion 方舟排名奖励
;region 每日任务收取
Mission() { Mission() {
BackToHall BackToHall
AddLog("===每日任务奖励领取开始===") AddLog("===每日任务奖励领取开始===")
@ -2254,7 +2261,9 @@ Mission() {
AddLog("===每日任务奖励领取结束===") AddLog("===每日任务奖励领取结束===")
BackToHall BackToHall
} }
; 通行证收取 兼容双通行证 兼容特殊活动 ;endregion 每日任务收取
;region 通行证收取
;tag 查找通行证
Pass() { Pass() {
BackToHall() BackToHall()
AddLog("===通行证任务开始===") AddLog("===通行证任务开始===")
@ -2275,7 +2284,7 @@ Pass() {
AddLog("===通行证任务结束===") AddLog("===通行证任务结束===")
BackToHall() BackToHall()
} }
;执行一次通行证 ;tag 执行一次通行证
OnePass() { OnePass() {
UserClick(3633, 405, scrRatio) UserClick(3633, 405, scrRatio)
Sleep g_numeric_settings["SleepTime"] Sleep g_numeric_settings["SleepTime"]
@ -2302,7 +2311,9 @@ OnePass() {
} }
BackToHall() BackToHall()
} }
; 剧情活动(小活动) ;endregion 通行证收取
;region 剧情活动
;tag 小活动
Activity() { Activity() {
BackToHall BackToHall
Text := "|<作战出击的出击>*200$78.zzkDzzzzzzzzzzzkDzzzzzzzzzsDkDzzzzzzzzzsDkDzzzzzzzzzsDkDsDzzzsDzzsDkDs7zzzsDzzsDkDs7zzzsDzzsDkDs7zUzsDzzsDkDs7zU007zzsDkDs7zU0007zs7kDs7zU00003s007s7zU00003s00007zzs0003s00007zzzk003s00007zzzs7y3zw0007zzzsDzzzzk007y0zsDzz0zkDzDw0007zz0zkDzzy0000Dz0zkDzzy0000000zkDw3y0000000zkDw1zzk00000zkDw1zzzk0000zkDw1zrzs7s00zkDw1zkTsDzz0zkDw1zkDsDzz0TkDw1zkDsDsD000Dw1zkDsDs70001w1zkDsDs7000001zkDsDs7U00001zkDsDs7z00001zkDsDs7zzw001zk0k7s7zzzzU1zk003s7zzzzw1zk00007zzzzw1zk00007zzzzzzzy00007zzzzzzzzzs007zzzzzzzzzzz07zzzzzzzzzzzs7zzzzzzzzzzzzjU" Text := "|<作战出击的出击>*200$78.zzkDzzzzzzzzzzzkDzzzzzzzzzsDkDzzzzzzzzzsDkDzzzzzzzzzsDkDsDzzzsDzzsDkDs7zzzsDzzsDkDs7zzzsDzzsDkDs7zUzsDzzsDkDs7zU007zzsDkDs7zU0007zs7kDs7zU00003s007s7zU00003s00007zzs0003s00007zzzk003s00007zzzs7y3zw0007zzzsDzzzzk007y0zsDzz0zkDzDw0007zz0zkDzzy0000Dz0zkDzzy0000000zkDw3y0000000zkDw1zzk00000zkDw1zzzk0000zkDw1zrzs7s00zkDw1zkTsDzz0zkDw1zkDsDzz0TkDw1zkDsDsD000Dw1zkDsDs70001w1zkDsDs7000001zkDsDs7U00001zkDsDs7z00001zkDsDs7zzw001zk0k7s7zzzzU1zk003s7zzzzw1zk00007zzzzw1zk00007zzzzzzzy00007zzzzzzzzzs007zzzzzzzzzzz07zzzzzzzzzzzs7zzzzzzzzzzzzjU"
@ -2404,7 +2415,9 @@ Activity() {
AddLog("===剧情活动任务结束===") AddLog("===剧情活动任务结束===")
BackToHall BackToHall
} }
; 免费招募 ;endregion 剧情活动
;region 招募
;tag 每日免费招募
FreeRecruit() { FreeRecruit() {
BackToHall() BackToHall()
AddLog("===每日免费招募开始===") AddLog("===每日免费招募开始===")
@ -2431,6 +2444,8 @@ FreeRecruit() {
AddLog("===每日免费招募结束===") AddLog("===每日免费招募结束===")
UserClick(1929, 1982, scrRatio) ;点击大厅 UserClick(1929, 1982, scrRatio) ;点击大厅
} }
;endregion 招募
;region 协同作战
Cooperate() { Cooperate() {
BackToHall BackToHall
AddLog("===协同作战任务开始===") AddLog("===协同作战任务开始===")
@ -2496,6 +2511,8 @@ Cooperate() {
AddLog("===协同作战任务结束===") AddLog("===协同作战任务结束===")
BackToHall BackToHall
} }
;endregion 协同作战
;region 单人突击
SoloRaid() { SoloRaid() {
BackToHall BackToHall
AddLog("===单人突击任务开始===") AddLog("===单人突击任务开始===")
@ -2575,7 +2592,9 @@ SoloRaid() {
AddLog("===单人突击任务结束===") AddLog("===单人突击任务结束===")
BackToHall BackToHall
} }
; 德雷克·反派之路 ;endregion 单人突击
;region 其他限时活动
;tag 德雷克·反派之路
RoadToVillain() { RoadToVillain() {
BackToHall() BackToHall()
AddLog("===反派之路任务开始===") AddLog("===反派之路任务开始===")
@ -2626,23 +2645,61 @@ RoadToVillain() {
AddLog("===反派之路任务结束===") AddLog("===反派之路任务结束===")
BackToHall() BackToHall()
} }
;endregion 其他限时活动
;region 妙妙工具
;tag 剧情模式
StoryMode(*) {
Initialization
while True {
Text := "|<SKIP的图标>*10$39.zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzztzDzzzz7szzzzsD1zzzz0s7zzzs30Tzzz000zzzs003zzz000Dzzs001zzz000zzzs10Dzzz0s7zzzsD1zzzz3szzzztzDzzzzzzzzzzzzzzzw"
while (ok := FindText(&X, &Y, NikkeX, NikkeY, NikkeX + NikkeW, NikkeY + NikkeH, 0.1 * PicTolerance, 0.1 * PicTolerance, Text, , 0, , , , , TrueRatio, TrueRatio)) {
Text1 := "|<1的图标>*99$31.y000Ty0003y7zzkyDzzyCDzzzWDzzzt7zzzw7zzzz3zzzzVzzDzkzy3zsTy1zwDz0zy7zUTz3zwDzVzy7zkzz3zsTzVzwDzkzy7zsTz3zwDzVzy7zkzz3zsTzVzw7zzzwHzzzyMzzzyCDzzyDVzzwDs000Dy000zk"
if (ok := FindText(&X, &Y, NikkeX, NikkeY, NikkeX + NikkeW, NikkeY + NikkeH, 0.1 * PicTolerance, 0.1 * PicTolerance, Text1, , , , , , , TrueRatio, TrueRatio)) {
Sleep 800
Send "{1}"
}
}
Text := "|<灰色的星星>*51$28.zzbzzzwDzzzkzzzy1zzzs7zzz0Dzzw0zzzU1zy000700002000080001k000DU001z000Dz001zw00Dzk00zz003zw00Dzk00zz001zs1U7zUTUTy7zVztzzbs"
if (ok := FindText(&X, &Y, NikkeX, NikkeY, NikkeX + NikkeW, NikkeY + NikkeH, 0.1 * PicTolerance, 0.1 * PicTolerance, Text, , , , , , 8, TrueRatio, TrueRatio)) {
FindText().Click(X, Y, "L")
Sleep g_numeric_settings["SleepTime"]
}
Text := "|<播放>*192$53.sTzlzlz3zks01zVy7zVk03z3wDz3U0Dy7sTy7W4D00Uzk308y0100U400w02010000s0Q031000wDkMD3U03sTUky7k0Tk01VwC00TU037s08ED000D00kky400Q0001w8O0s3U07sEw3s700DkVs7wC4ATX3sDsQ00y67UTks01wAC0TVk03sMM0T3V37VkU08700C001UES00SA47VUw00ysATXjzzzzzzzy"
if (ok := FindText(&X, &Y, NikkeX, NikkeY, NikkeX + NikkeW, NikkeY + NikkeH, 0.1 * PicTolerance, 0.1 * PicTolerance, Text, , 0, , , , , TrueRatio, TrueRatio)) {
FindText().Click(X, Y, "L")
Sleep 3000
Send "{LShift Down}"
Sleep 500
Send "{LShift Up}"
Click 0, 0, 0
}
if !WinActive(nikkeID) {
MsgBox "窗口未聚焦,程序已终止"
Pause
}
}
}
;endregion 妙妙工具
;region 快捷键
;tag 关闭程序
^1:: { ^1:: {
ExitApp ExitApp
} }
;tag 暂停程序
^2:: { ^2:: {
Pause Pause
} }
;tag 初始化并调整窗口大小
^3:: { ^3:: {
Initialization() Initialization()
;WinMove (A_ScreenWidth / 2) - (NikkeWP / 2), (A_ScreenHeight / 2) - (NikkeHP / 2), 1920, 1080, nikkeID ;窗口缩放居中 ;WinMove (A_ScreenWidth / 2) - (NikkeWP / 2), (A_ScreenHeight / 2) - (NikkeHP / 2), 1920, 1080, nikkeID ;窗口缩放居中
WinMove (A_ScreenWidth / 2) - (NikkeWP / 2), (A_ScreenHeight / 2) - (NikkeHP / 2), 2347, 1350, nikkeID ;我电脑的尺寸 WinMove (A_ScreenWidth / 2) - (NikkeWP / 2), (A_ScreenHeight / 2) - (NikkeHP / 2), 2347, 1350, nikkeID ;我电脑的尺寸
} }
^4:: { ;tag 调试指定函数
}
;调试指定函数
^0:: { ^0:: {
;添加基本的依赖 ;添加基本的依赖
Initialization() Initialization()
;下面写要调试的函数 ;下面写要调试的函数
BattleSettlement BattleSettlement
} }
;endregion 快捷键