style: 划分了代码的区域
This commit is contained in:
parent
2c6c6a6e11
commit
f869a0459f
465
DoroHelper.ahk
465
DoroHelper.ahk
|
@ -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 快捷键
|
||||||
|
|
Loading…
Reference in New Issue