Merge pull request #43 from 1204244136/dev

主要修改了readme文档,优化项目界面
This commit is contained in:
知一一 2025-05-06 15:21:43 +08:00 committed by GitHub
commit 7beb86d9f1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 126 additions and 277 deletions

View File

@ -10,7 +10,7 @@ stdScreenW := 3840
stdScreenH := 2160 stdScreenH := 2160
waitTolerance := 50 waitTolerance := 50
colorTolerance := 15 colorTolerance := 15
currentVersion := "v0.1.22" currentVersion := "v0.1.23"
usr := "kyokakawaii" usr := "kyokakawaii"
repo := "DoroHelper" repo := "DoroHelper"
;颜色判断 ;颜色判断
@ -33,8 +33,7 @@ CheckForUpdateHandler(isManualCheck) {
try { try {
latestObj := Github.latest(usr, repo) latestObj := Github.latest(usr, repo)
if (currentVersion != latestObj.version) { if (currentVersion != latestObj.version) {
; 发现新版本 userResponse := MsgBox( ; 发现新版本
userResponse := MsgBox(
"DoroHelper存在更新版本:`n" "DoroHelper存在更新版本:`n"
"`nVersion: " latestObj.version "`nVersion: " latestObj.version
"`nNotes:`n" "`nNotes:`n"
@ -580,8 +579,7 @@ FreeShop(numOfBook) {
firstClaimCkptY := [1305] firstClaimCkptY := [1305]
firstClaimUsedColor := ["0x127CD7"] ; 领取过的按钮颜色 firstClaimUsedColor := ["0x127CD7"] ; 领取过的按钮颜色
if !UserCheckColor(firstClaimCkptX, firstClaimCkptY, firstClaimUsedColor, scrRatio) { if !UserCheckColor(firstClaimCkptX, firstClaimCkptY, firstClaimUsedColor, scrRatio) {
; --- 执行第一次免费领取 --- ShopFreeClaim() ; 执行第一次免费领取
ShopFreeClaim() ; 调用辅助函数处理领取流程
; 检查是否还有第二次免费次数 (刷新按钮是否有红点) ; 检查是否还有第二次免费次数 (刷新按钮是否有红点)
refreshCkptX := [697] refreshCkptX := [697]
refreshCkptY := [949] refreshCkptY := [949]
@ -626,7 +624,7 @@ FreeShop(numOfBook) {
} }
} }
Sleep 1000 ; 刷新后额外等待一下界面加载 Sleep 1000 ; 刷新后额外等待一下界面加载
ShopFreeClaim() ; --- 执行第二次免费领取 --- ShopFreeClaim() ; 执行第二次免费领取
} }
} }
;废铁商店检查是否已经购买 ;废铁商店检查是否已经购买
@ -1073,7 +1071,6 @@ SimulationRoom() {
ExitApp ExitApp
} }
} }
;MsgBox "ok"
;开始模拟 ;开始模拟
stdTargetX := 1917 stdTargetX := 1917
stdTargetY := 1274 stdTargetY := 1274
@ -1212,64 +1209,6 @@ SimulationRoom() {
Sleep sleepTime // 2 Sleep sleepTime // 2
UserClick(stdTargetX, stdTargetY, scrRatio) UserClick(stdTargetX, stdTargetY, scrRatio)
Sleep sleepTime Sleep sleepTime
/*
stdTargetX := 1902
stdTargetY := 1461
UserClick(stdTargetX, stdTargetY, scrRatio)
Sleep sleepTime // 2
UserClick(stdTargetX, stdTargetY, scrRatio)
Sleep sleepTime // 2
*/
;点击不选择和确定
/*
tX := 2104
tY := 1656
desiredColor := ["0x089FE4"]
while !UserCheckColor([tX], [tY], desiredColor, scrRatio) {
tY := tY + 65
if tY > 2160 {
MsgBox "模拟室结束异常!"
ExitApp
}
}
;MsgBox "点不选择"
stdTargetX := 2185
stdTargetY := tY - 200
UserClick(stdTargetX, stdTargetY, scrRatio)
Sleep sleepTime // 2
UserClick(stdTargetX, stdTargetY, scrRatio)
Sleep sleepTime // 2
;MsgBox "点击确定"
stdTargetX := 2185
stdTargetY := tY
UserClick(stdTargetX, stdTargetY, scrRatio)
Sleep sleepTime
stdCkptX := [2104]
stdCkptY := [tY]
desiredColor := ["0x089FE4"]
while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) {
UserClick(stdTargetX, stdTargetY, scrRatio)
Sleep sleepTime
if A_Index > waitTolerance {
MsgBox "模拟室结束异常!"
ExitApp
}
}
stdTargetX := 2191
stdTargetY := 1349
UserClick(stdTargetX, stdTargetY, scrRatio)
Sleep sleepTime // 2
UserClick(stdTargetX, stdTargetY, scrRatio)
Sleep sleepTime // 2
UserClick(stdTargetX, stdTargetY, scrRatio)
Sleep sleepTime
*/
;退回大厅 ;退回大厅
stdTargetX := 333 stdTargetX := 333
stdTargetY := 2041 stdTargetY := 2041
@ -1287,8 +1226,8 @@ SimulationRoom() {
} }
} }
} }
;7: 新人竞技场打第三位,顺带50%以上的 ;7: 新人竞技场收菜
RookieArena(times) { Arena() {
;进入方舟 ;进入方舟
stdTargetX := 2689 stdTargetX := 2689
stdTargetY := 1463 stdTargetY := 1463
@ -1332,6 +1271,9 @@ RookieArena(times) {
Sleep sleepTime // 2 Sleep sleepTime // 2
UserClick(stdTargetX, stdTargetY, scrRatio) UserClick(stdTargetX, stdTargetY, scrRatio)
Sleep sleepTime // 2 Sleep sleepTime // 2
}
;新人竞技场
RookieArena(times) {
;进入竞技场 ;进入竞技场
stdTargetX := 2208 stdTargetX := 2208
stdTargetY := 1359 stdTargetY := 1359
@ -1444,6 +1386,9 @@ RookieArena(times) {
} }
} }
} }
;特殊竞技场
SpecialArena(times) {
}
;8: 对前n位nikke进行好感度咨询(可以通过收藏把想要咨询的nikke排到前面) ;8: 对前n位nikke进行好感度咨询(可以通过收藏把想要咨询的nikke排到前面)
NotAllCollection() { NotAllCollection() {
stdCkptX := [2447] stdCkptX := [2447]
@ -1663,7 +1608,7 @@ LoveTalking(times) {
} }
} }
;9: 爬塔一次(做每日任务) ;9: 爬塔一次(做每日任务)
TribeTower() { FailTower() {
stdTargetX := 2689 stdTargetX := 2689
stdTargetY := 1463 stdTargetY := 1463
UserClick(stdTargetX, stdTargetY, scrRatio) UserClick(stdTargetX, stdTargetY, scrRatio)
@ -2079,24 +2024,6 @@ Interception() {
ExitApp ExitApp
} }
} }
/*
;不勾选自动拦截就直接退出
if !isCheckedInterception
return
*/
/*
stdCkptX := [1917]
stdCkptY := [910]
desiredColor := ["0x037EF9"]
while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) {
Sleep sleepTime
if A_Index > waitTolerance {
MsgBox "进入拦截战失败!"
ExitApp
}
}
*/
stdTargetX := 559 stdTargetX := 559
stdTargetY := 1571 stdTargetY := 1571
UserClick(stdTargetX, stdTargetY, scrRatio) UserClick(stdTargetX, stdTargetY, scrRatio)
@ -2311,30 +2238,6 @@ Interception() {
ExitApp ExitApp
} }
} }
/*
stdTargetX := 904
stdTargetY := 1805
stdCkptX := [1893, 1913, 1933]
stdCkptY := [1951, 1948, 1956]
desiredColor := ["0xFFFFFF", "0xFFFFFF", "0xFFFFFF"]
while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) {
Sleep sleepTime
if A_Index > waitTolerance {
MsgBox "快速战斗结算失败!"
ExitApp
}
}
while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) {
UserClick(stdTargetX, stdTargetY, scrRatio)
Sleep sleepTime
if A_Index > waitTolerance {
MsgBox "退出结算页面失败!"
ExitApp
}
}
*/
;检查是否退出 ;检查是否退出
stdCkptX := [1390] stdCkptX := [1390]
stdCkptY := [1799] stdCkptY := [1799]
@ -2369,26 +2272,6 @@ Interception() {
ExitApp ExitApp
} }
} }
;进入特殊拦截战
/*
stdTargetX := 2059
stdTargetY := 1689
UserClick(stdTargetX, stdTargetY, scrRatio)
Sleep sleepTime
stdCkptX := [1425]
stdCkptY := [1852]
desiredColor := ["0x02AEF5"]
while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) {
UserClick(stdTargetX, stdTargetY, scrRatio)
Sleep sleepTime
if A_Index > waitTolerance {
MsgBox "进入特殊拦截战失败!"
ExitApp
}
}
*/
} }
;11: 邮箱收取 ;11: 邮箱收取
Mail() { Mail() {
@ -2591,6 +2474,9 @@ OnePass() { ;执行一次通行证
if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) {
} }
} }
;通用塔
UniversalTower() {
}
; 通用函数,用于切换 g_settings Map 中的设置值 ; 通用函数,用于切换 g_settings Map 中的设置值
ToggleSetting(settingKey, guiCtrl, *) { ToggleSetting(settingKey, guiCtrl, *) {
global g_settings global g_settings
@ -2601,19 +2487,11 @@ ToggleSetting(settingKey, guiCtrl, *) {
} }
ChangeOnNumOfBook(GUICtrl, *) { ChangeOnNumOfBook(GUICtrl, *) {
global g_numeric_settings global g_numeric_settings
g_numeric_settings["NumOfBook"] := GUICtrl.Value - 1 ; 转换为 0-3 存储 g_numeric_settings["NumOfBook"] := GUICtrl.Value - 1
}
ChangeOnNumOfBattle(GUICtrl, *) {
global g_numeric_settings
g_numeric_settings["NumOfBattle"] := GUICtrl.Value + 1 ; 转换为 2-5 存储
}
ChangeOnNumOfLoveTalking(GUICtrl, *) {
global g_numeric_settings
g_numeric_settings["NumOfLoveTalking"] := GUICtrl.Value ; 直接存储 1-10
} }
ChangeOnInterceptionBoss(GUICtrl, *) { ChangeOnInterceptionBoss(GUICtrl, *) {
global g_numeric_settings global g_numeric_settings
g_numeric_settings["InterceptionBoss"] := GUICtrl.Value ; 直接存储 1-5 g_numeric_settings["InterceptionBoss"] := GUICtrl.Value
} }
ChangeOnSleepTime(GUICtrl, *) { ChangeOnSleepTime(GUICtrl, *) {
global sleepTime global sleepTime
@ -2702,18 +2580,21 @@ ClickOnDoro(*) {
FriendPoint() FriendPoint()
if g_settings["SimulationRoom"] if g_settings["SimulationRoom"]
SimulationRoom() SimulationRoom()
if g_settings["RookieArena"] if g_settings["Arena"] {
RookieArena(g_numeric_settings["NumOfBattle"]) Arena() ;收菜
if g_settings["RookieArena"] ;新人竞技场
RookieArena(g_numeric_settings["NumOfRookieBattle"])
if g_settings["SpecialArena"] ;新人竞技场
SpecialArena(g_numeric_settings["NumOfSpecialBattle"])
else
BackToHall()
}
if g_settings["LoveTalking"] if g_settings["LoveTalking"]
LoveTalking(g_numeric_settings["NumOfLoveTalking"]) LoveTalking(g_numeric_settings["NumOfLoveTalking"])
if g_settings["CompanyTower"] { if g_settings["FailTower"]
if g_settings["TribeTower"] FailTower()
TribeTower() ; 执行每日任务版 (进塔就退) if g_settings["CompanyTower"]
else CompanyTower()
CompanyTower() ; 执行完整爬塔版
} else if g_settings["TribeTower"] {
TribeTower() ; 即使 CompanyTower 未勾选,也要执行每日任务版
}
if g_settings["Interception"] if g_settings["Interception"]
Interception() Interception()
if g_settings["Mail"] if g_settings["Mail"]
@ -2722,11 +2603,14 @@ ClickOnDoro(*) {
Mission() Mission()
if g_settings["Pass"] if g_settings["Pass"]
Pass() Pass()
if g_settings["UniversalTower"]
UniversalTower()
} }
if isBoughtTrash == 0 if isBoughtTrash == 0
MsgBox "协同作战商店似乎已经刷新了,快去看看吧" MsgBox "协同作战商店似乎已经刷新了,快去看看吧"
MsgBox "Doro完成任务" CompanyTowerInfo() MsgBox "Doro完成任务" CompanyTowerInfo()
;ExitApp if g_settings["SelfClosing"]
ExitApp
Pause Pause
} }
SleepTimeToLabel(sleepTime) { SleepTimeToLabel(sleepTime) {
@ -2750,47 +2634,31 @@ NumOfBookToLabel() {
global g_numeric_settings global g_numeric_settings
return String(g_numeric_settings["NumOfBook"] + 1) return String(g_numeric_settings["NumOfBook"] + 1)
} }
NumOfBattleToLabel() {
global g_numeric_settings
return String(g_numeric_settings["NumOfBattle"] - 1)
}
NumOfLoveTalkingToLabel() {
global g_numeric_settings
return String(g_numeric_settings["NumOfLoveTalking"])
}
InterceptionBossToLabel() { InterceptionBossToLabel() {
global g_numeric_settings global g_numeric_settings
return String(g_numeric_settings["InterceptionBoss"]) return String(g_numeric_settings["InterceptionBoss"])
} }
SaveSettings(*) {
WriteSettings()
MsgBox "设置已保存!"
}
WriteSettings(*) { WriteSettings(*) {
global g_settings, g_numeric_settings, sleepTime, colorTolerance global g_settings, g_numeric_settings, sleepTime, colorTolerance
; 从 g_settings Map 写入开关设置 ; 从 g_settings Map 写入开关设置
for key, value in g_settings { for key, value in g_settings {
IniWrite(value, "settings.ini", "Toggles", key) IniWrite(value, "settings.ini", "Toggles", key)
} }
; --- 新增:从 g_numeric_settings Map 写入数值设置 ---
for key, value in g_numeric_settings { for key, value in g_numeric_settings {
IniWrite(value, "settings.ini", "NumericSettings", key) ; 使用新段名 IniWrite(value, "settings.ini", "NumericSettings", key)
} }
; --- 新增结束 ---
; 写入其他独立设置 ; 写入其他独立设置
IniWrite(sleepTime, "settings.ini", "Other", "sleepTime") IniWrite(sleepTime, "settings.ini", "Other", "sleepTime")
IniWrite(colorTolerance, "settings.ini", "Other", "colorTolerance") IniWrite(colorTolerance, "settings.ini", "Other", "colorTolerance")
; 注意numOfBook, numOfBattle 等不再需要单独写入
} }
LoadSettings() { LoadSettings() {
global g_settings, g_numeric_settings, sleepTime, colorTolerance ; 移除不再使用的全局变量 global g_settings, g_numeric_settings, sleepTime, colorTolerance
default_settings := g_settings.Clone() ; 保留一份默认开关设置 default_settings := g_settings.Clone()
; 从 Map 加载开关设置 ; 从 Map 加载开关设置
for key, defaultValue in default_settings { for key, defaultValue in default_settings {
readValue := IniRead("settings.ini", "Toggles", key, defaultValue) readValue := IniRead("settings.ini", "Toggles", key, defaultValue)
g_settings[key] := readValue g_settings[key] := readValue
} }
; --- 新增:从 Map 加载数值设置 ---
default_numeric_settings := g_numeric_settings.Clone() ; 保留一份默认数值设置 default_numeric_settings := g_numeric_settings.Clone() ; 保留一份默认数值设置
for key, defaultValue in default_numeric_settings { for key, defaultValue in default_numeric_settings {
readValue := IniRead("settings.ini", "NumericSettings", key, defaultValue) readValue := IniRead("settings.ini", "NumericSettings", key, defaultValue)
@ -2801,16 +2669,13 @@ LoadSettings() {
g_numeric_settings[key] := defaultValue g_numeric_settings[key] := defaultValue
} }
} }
; --- 新增结束 ---
; 加载其他独立设置 (带默认值) ; 加载其他独立设置 (带默认值)
sleepTime := IniRead("settings.ini", "Other", "sleepTime", 1500) sleepTime := IniRead("settings.ini", "Other", "sleepTime", 1500)
colorTolerance := IniRead("settings.ini", "Other", "colorTolerance", 15) colorTolerance := IniRead("settings.ini", "Other", "colorTolerance", 15)
; 确保加载的值有效 (可选,但推荐) }
if !(sleepTime ~= "^(750|1000|1250|1500|1750|2000)$") SaveSettings(*) {
sleepTime := 1500 WriteSettings()
if !(colorTolerance ~= "^(15|35)$") MsgBox "设置已保存!"
colorTolerance := 15
; 可以为 g_numeric_settings 中的值添加范围检查,如果需要
} }
; 全局设置 Map 对象 ; 全局设置 Map 对象
global g_settings := Map( global g_settings := Map(
@ -2823,28 +2688,35 @@ global g_settings := Map(
"Mission", 1, ; 任务 "Mission", 1, ; 任务
"Pass", 1, ; 通行证 "Pass", 1, ; 通行证
"SimulationRoom", 1, ; 模拟室 "SimulationRoom", 1, ; 模拟室
"Arena", 1, ; 竞技场收菜
"RookieArena", 1, ; 新人竞技场 "RookieArena", 1, ; 新人竞技场
"SpecialArena", 1, ; 特殊竞技场
"LoveTalking", 1, ; 咨询 "LoveTalking", 1, ; 咨询
"CompanyWeapon", 0, ; 企业武器熔炉 (商店) "CompanyWeapon", 0, ; 企业武器熔炉 (商店)
"Interception", 0, ; 拦截战 "Interception", 0, ; 拦截战
"CompanyTower", 1, ; 企业塔 "CompanyTower", 1, ; 企业塔
"TribeTower", 0, ; 每日爬塔任务 "UniversalTower", 1, ; 通用塔
"FailTower", 0, ; 每日爬塔任务
"LongTalk", 1, ; 详细咨询 (若图鉴未满) "LongTalk", 1, ; 详细咨询 (若图鉴未满)
"AutoCheckUpdate", 0, ; 自动检查更新 "AutoCheckUpdate", 0, ; 自动检查更新
"SelfClosing", 0, ; 完成后自动关闭程序
"BookFire", 0, ; 手册:燃烧 "BookFire", 0, ; 手册:燃烧
"BookWater", 0, ; 手册:水冷 "BookWater", 0, ; 手册:水冷
"BookWind", 0, ; 手册:风压 "BookWind", 0, ; 手册:风压
"BookElec", 0, ; 手册:电击 "BookElec", 0, ; 手册:电击
"BookIron", 0 ; 手册:铁甲 "BookIron", 0, ; 手册:铁甲
;"CheckBox",0 ; 简介个性化礼包
) )
; 其他非简单开关的设置 Map 对象 ; 其他非简单开关的设置 Map 对象
global g_numeric_settings := Map( global g_numeric_settings := Map(
"NumOfBook", 3, ; 购买手册数量 (0-3) -> 对应 DropDownList 选项 1-4 "NumOfBook", 3, ; 购买手册数量
"NumOfBattle", 5, ; 新人竞技场次数 (2-5) -> 对应 DropDownList 选项 1-4 "NumOfRookieBattle", 5, ; 新人竞技场次数
"NumOfLoveTalking", 10, ; 咨询次数 (1-10) -> 对应 DropDownList 选项 1-10 "NumOfSpecialBattle", 5, ; 新人竞技场次数
"InterceptionBoss", 1 ; 拦截战BOSS选择 (1-5) -> 对应 DropDownList 选项 1-5 "NumOfLoveTalking", 10, ; 咨询次数
"InterceptionBoss", 1 ; 拦截战BOSS选择
) )
global isBoughtTrash := 1 ; 检测废铁商店 global isBoughtTrash := 1 ; 检测废铁商店
;检测管理员身份
if !A_IsAdmin { if !A_IsAdmin {
MsgBox "请以管理员身份运行Doro" MsgBox "请以管理员身份运行Doro"
ExitApp ExitApp
@ -2895,9 +2767,10 @@ doroGui.SetFont()
doroGui.Add("Button", "R1 x+10", "帮助").OnEvent("Click", ClickOnHelp) doroGui.Add("Button", "R1 x+10", "帮助").OnEvent("Click", ClickOnHelp)
doroGui.Add("Button", "R1 x+10", "检查更新").OnEvent("Click", ClickOnCheckForUpdate) doroGui.Add("Button", "R1 x+10", "检查更新").OnEvent("Click", ClickOnCheckForUpdate)
Tab := doroGui.Add("Tab3", "xm") ;由于autohotkey有bug只能这样写 Tab := doroGui.Add("Tab3", "xm") ;由于autohotkey有bug只能这样写
Tab.Add(["doro设置", "收获", "商店", "日常", "默认"]) Tab.Add(["设置", "收获", "商店", "日常", "默认"])
Tab.UseTab("doro设置") Tab.UseTab("设置")
AddCheckboxSetting(doroGui, "AutoCheckUpdate", "自动检查更新(确保能连上github)", "R2") AddCheckboxSetting(doroGui, "AutoCheckUpdate", "自动检查更新(确保能连上github)", "R1.2")
AddCheckboxSetting(doroGui, "SelfClosing", "任务完成后自动关闭程序", "R1.2")
doroGui.Add("Text", , "点击间隔(单位毫秒),谨慎更改") doroGui.Add("Text", , "点击间隔(单位毫秒),谨慎更改")
doroGui.Add("DropDownList", "Choose" SleepTimeToLabel(sleepTime), [750, 1000, 1250, 1500, 1750, 2000]).OnEvent("Change", doroGui.Add("DropDownList", "Choose" SleepTimeToLabel(sleepTime), [750, 1000, 1250, 1500, 1750, 2000]).OnEvent("Change",
ChangeOnSleepTime) ChangeOnSleepTime)
@ -2916,7 +2789,7 @@ AddCheckboxSetting(doroGui, "Pass", "通行证收取", "R1.2")
Tab.UseTab("商店") Tab.UseTab("商店")
doroGui.Add("Text", "R1.2 Section", "普通商店") doroGui.Add("Text", "R1.2 Section", "普通商店")
AddCheckboxSetting(doroGui, "FreeShop", "每日白嫖2次", "R1.2 xs+15") AddCheckboxSetting(doroGui, "FreeShop", "每日白嫖2次", "R1.2 xs+15")
doroGui.Add("CheckBox", " R1.2 xs+15", "购买简介个性化礼包") doroGui.Add("Text", " R1.2 xs+15", "购买简介个性化礼包")
doroGui.Add("Text", "R1.2 xs", "竞技场商店") doroGui.Add("Text", "R1.2 xs", "竞技场商店")
doroGui.Add("Text", "R1.2 xs+15", "购买手册:") doroGui.Add("Text", "R1.2 xs+15", "购买手册:")
AddCheckboxSetting(doroGui, "BookFire", "燃烧", "R1.2 xs+15") AddCheckboxSetting(doroGui, "BookFire", "燃烧", "R1.2 xs+15")
@ -2925,39 +2798,35 @@ AddCheckboxSetting(doroGui, "BookWind", "风压", "R1.2 X+1")
AddCheckboxSetting(doroGui, "BookElec", "电击", "R1.2 X+1") AddCheckboxSetting(doroGui, "BookElec", "电击", "R1.2 X+1")
AddCheckboxSetting(doroGui, "BookIron", "铁甲", "R1.2 X+1") AddCheckboxSetting(doroGui, "BookIron", "铁甲", "R1.2 X+1")
AddCheckboxSetting(doroGui, "CompanyWeapon", "购买公司武器熔炉", "R1.2 xs+15") AddCheckboxSetting(doroGui, "CompanyWeapon", "购买公司武器熔炉", "R1.2 xs+15")
;以下为无效功能 doroGui.Add("Text", " R1.2 xs+15", "❌购买简介个性化礼包")
doroGui.Add("CheckBox", " R1.2", "购买简介个性化礼包") doroGui.Add("Text", "R1.2 xs Section", "废铁商店")
doroGui.Add("Text", "R1.2 xs Section", "废铁商店(简介个性化礼包和废铁商店还在做)") doroGui.Add("Text", " R1.2 xs+15", "❌购买珠宝")
doroGui.Add("Checkbox", " R1.2 xs+15", "购买珠宝")
doroGui.Add("Text", " R1.2 xs+15", "购买好感券:") doroGui.Add("Text", " R1.2 xs+15", "购买好感券:")
doroGui.Add("Checkbox", " R1.2 xs+15", "通用") doroGui.Add("Text", " R1.2 xs+15", "通用")
doroGui.Add("Checkbox", " R1.2 x+1", "朝圣者") doroGui.Add("Text", " R1.2 x+1", "朝圣者")
doroGui.Add("Checkbox", " R1.2 x+1", "反常") doroGui.Add("Text", " R1.2 x+1", "反常")
doroGui.Add("Checkbox", " R1.2 xs+15", "极乐净土") doroGui.Add("Text", " R1.2 xs+15", "极乐净土")
doroGui.Add("Checkbox", " R1.2 x+1", "米西利斯") doroGui.Add("Text", " R1.2 x+1", "米西利斯")
doroGui.Add("Checkbox", " R1.2 x+1", "泰特拉") doroGui.Add("Text", " R1.2 x+1", "泰特拉")
doroGui.Add("Text", " R1.2 xs+15", "购买资源") doroGui.Add("Text", " R1.2 xs+15", "购买资源")
doroGui.Add("Checkbox", " R1.2 xs+15", "信用点+盒") doroGui.Add("Text", " R1.2 xs+15", "信用点+盒")
doroGui.Add("Checkbox", " R1.2 x+1", "战斗数据辑盒") doroGui.Add("Text", " R1.2 x+1", "战斗数据辑盒")
doroGui.Add("Checkbox", " R1.2 x+1", "芯尘盒") doroGui.Add("Text", " R1.2 x+1", "芯尘盒")
Tab.UseTab("日常") Tab.UseTab("日常")
AddCheckboxSetting(doroGui, "SimulationRoom", "模拟室5C(普通关卡需要快速战斗)", "R1.2") AddCheckboxSetting(doroGui, "SimulationRoom", "模拟室5C(普通关卡需要快速战斗)", "R1.2")
AddCheckboxSetting(doroGui, "RookieArena", "新人竞技场(请点开快速战斗)", "R1.2") AddCheckboxSetting(doroGui, "Arena", "竞技场收菜", "R1.2 Section")
AddCheckboxSetting(doroGui, "LoveTalking", "咨询妮姬(可以通过收藏改变妮姬排序)", "R1.2 Section") ; 注意 Section 选项用法 AddCheckboxSetting(doroGui, "RookieArena", "新人竞技场(请点开快速战斗)", "R1.2 XP+15 Y+M")
AddCheckboxSetting(doroGui, "LongTalk", "若图鉴未满,则进行详细咨询", "R1.2 XP+15 Y+M") AddCheckboxSetting(doroGui, "SpecialArena", "特殊竞技场(请点开快速战斗)", "R1.2 Y+M")
AddCheckboxSetting(doroGui, "CompanyTower", "爬企业塔", "R1.2 xs Section") AddCheckboxSetting(doroGui, "LoveTalking", "咨询妮姬(可以通过收藏改变妮姬排序)", "R1.2 xs Section") ; 注意 Section 选项用法(保存此控件位置并定义一个新控件段)
AddCheckboxSetting(doroGui, "TribeTower", "只完成每日任务,在进入后退出", "R1.2 XP+15 Y+M") AddCheckboxSetting(doroGui, "FailTower", "爬塔摆烂一次(用于完成每日任务)", "R1.2")
AddCheckboxSetting(doroGui, "CompanyTower", "尽可能地爬企业塔", "R1.2 xs Section")
AddCheckboxSetting(doroGui, "Interception", "使用对应编队进行异常拦截自动战斗", "R1.2 xs") AddCheckboxSetting(doroGui, "Interception", "使用对应编队进行异常拦截自动战斗", "R1.2 xs")
doroGui.Add("DropDownList", "Choose" InterceptionBossToLabel(), ["克拉肯(石)编队1", "过激派(头)编队2", "镜像容器(手)编队3", doroGui.Add("DropDownList", "Choose" InterceptionBossToLabel(), ["克拉肯(石)编队1", "过激派(头)编队2", "镜像容器(手)编队3",
"茵迪维利亚(衣)编队4", "死神(脚)编队5"]).OnEvent("Change", ChangeOnInterceptionBoss) "茵迪维利亚(衣)编队4", "死神(脚)编队5"]).OnEvent("Change", ChangeOnInterceptionBoss)
AddCheckboxSetting(doroGui, "UniversalTower", "尽可能地爬通用塔", "R1.2")
Tab.UseTab("默认") Tab.UseTab("默认")
doroGui.Add("Text", , "购买几本代码手册?") doroGui.Add("Text", , "购买代码手册数量")
doroGui.Add("DropDownList", "Choose" NumOfBookToLabel(), [0, 1, 2, 3]).OnEvent("Change", ChangeOnNumOfBook) doroGui.Add("DropDownList", "Choose" NumOfBookToLabel(), [0, 1, 2, 3]).OnEvent("Change", ChangeOnNumOfBook)
doroGui.Add("Text", , "新人竞技场打几次?")
doroGui.Add("DropDownList", "Choose" NumOfBattleToLabel(), [2, 3, 4, 5]).OnEvent("Change", ChangeOnNumOfBattle)
doroGui.Add("Text", , "咨询几位妮姬?")
doroGui.Add("DropDownList", "Choose" NumOfLoveTalkingToLabel(), [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).OnEvent("Change",
ChangeOnNumOfLoveTalking)
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()

View File

@ -1,66 +1,61 @@
# 免责声明 <div align="center">
<img alt="LOGO" src="./img/logo.png" width="256" height="256" />
# DoroHelper
PC 端日常任务清理助手。一键清理多项日常事务。支持国际服和港澳台服客户端。支持多开。
</div>
## 免责声明
本项目仅供个人学习研究使用,严禁用于商业用途。除 Github 以外其他任何网站、社交平台中有关本项目的内容**均非本人发布**,若造成侵犯著作权、版权或违反网络安全法规等任何后果,均与本人无关。 本项目仅供个人学习研究使用,严禁用于商业用途。除 Github 以外其他任何网站、社交平台中有关本项目的内容**均非本人发布**,若造成侵犯著作权、版权或违反网络安全法规等任何后果,均与本人无关。
# 前言
PC端自用日常任务清理助手DoroHelper。支持国际服和港澳台服客户端。支持多开。
![image](https://github.com/kyokakawaii/DoroHelper/blob/dev/img/preview.png)
### 叠甲:
使用任何脚本程序均有封号风险,请谨慎。 使用任何脚本程序均有封号风险,请谨慎。
### 再叠甲: 程序可能会有操作不兼容的情况出现。第一次使用最好在旁边看着。万一 Doro 失控,请按 Ctrl + 1 组合键结束进程或者 Ctrl + 2 组合键暂停进程。
程序是根据我自己的账号进度写的所以可能会有操作不兼容的情况出现。第一次使用最好在旁边看着。万一Doro失控请按Ctrl + 1组合键结束进程或者Ctrl + 2组合键暂停进程debug ## 使用
### 运行 ahk 文件(推荐)
# 下载 1. 将整个项目文件下载到本地并解压(右上角绿色 code 按钮-Download ZIP
1. 下载[AutoHotkey V2.0](https://www.autohotkey.com/download/ahk-v2.exe)
1. 以管理员身份运行 DoroHelper.ahk
在右边的release里有我编译好的exe文件可以直接用。 ### 运行 exe 文件
不放心的话也可以下载代码安装AutoHotkey V2.0并以管理员模式运行`DoroHelper.ahk`。也可以用任意文本编辑器打开`DoroHelper.ahk`修改(史山)代码以适配自己的情况。 1. 下载右边的 release 文件
1. 以管理员身份运行 DoroHelper.exe
也可以使用Ahk2Exe编译`DoroHelper.ahk`自己生成exe可执行文件。 ## 功能介绍
# 功能介绍
Doro 只是想让你少被该死的读条、闪光弹和重复劳动折磨。一键清理多项日常事务(按顺序执行),包括: Doro 只是想让你少被该死的读条、闪光弹和重复劳动折磨。一键清理多项日常事务(按顺序执行),包括:
- **前哨基地防御** - **前哨基地防御**
_1次一举歼灭+2次收菜_ - 1 次一举歼灭+2 次收菜
- **付费商店** - **付费商店**
_领取每日、周、月免费钻_ - 领取每日、周、月免费钻
- **免费商店** - **免费商店**
_普通商店每天白嫖2次竞技场购买自定义数量的属性技能书购买公司武器熔炉_ - 普通商店每天白嫖 2 次
- 竞技场购买自定义数量的属性技能书
- 购买公司武器熔炉
- **派遣远征和收菜** - **派遣远征和收菜**
- **收取赠送好友点数** - **收取赠送好友点数**
- **模拟室 5C 通关** - **模拟室 5C 通关**
- **新人竞技场进行自定义数量的战斗** - **新人竞技场进行自定义数量的战斗**
_顺带收取pjjc囤积超过50%的菜_ - 顺带收取 pjjc 囤积超过 50%的菜
- **进行自定义次数的好感度咨询**
_支持补充咨询图鉴_
- **光速爬塔失败1次**
_蹭每日任务点数_
- **进行十次好感度咨询**
- **光速爬塔失败 1 次(蹭每日任务点数)**
- **爬企业塔** - **爬企业塔**
- **自动异常拦截** - **自动异常拦截**
@ -71,49 +66,34 @@ PC端自用日常任务清理助手DoroHelper。支持国际服和港澳台
- **Pass 收取** - **Pass 收取**
# 使用说明 ## 要求
对大多数老玩家来说Doro设置保持默认就好。
万一Doro失控请按Ctrl + 1组合键结束进程。
万一Doro失控请按Ctrl + 1组合键结束进程。
万一Doro失控请按Ctrl + 1组合键结束进程。
## 要求:
- 【设定-画质-全屏幕模式 + 16:9 的显示器比例】(推荐) 或 【16:9 的窗口模式】(窗口尽量拉大,否则像素识别可能出现误差) - 【设定-画质-全屏幕模式 + 16:9 的显示器比例】(推荐) 或 【16:9 的窗口模式】(窗口尽量拉大,否则像素识别可能出现误差)
- 设定-画质-开启光晕效果 - 设定-画质-开启光晕效果
- 设定-画质-开启颜色分级 - 设定-画质-开启颜色分级
- 游戏语言设置为简体中文 - 游戏语言设置为简体中文
- 以**管理员身份**运行 DoroHelper - 以**管理员身份**运行 DoroHelper
- 不要开启 windows HDR 显示 - 不要开启 windows HDR 显示
## 步骤 ## 步骤
打开 NIKKE 启动器。点击启动。等右下角腾讯 ACE 反作弊系统扫完NIKKE 主程序中央 SHIFT UP logo 出现之后再切出来点击“DORO!”按钮。如果你看到鼠标开始在左下角连点,那就代表启动成功了。然后就可以悠闲地去泡一杯咖啡,或者刷一会儿手机,等待 Doro 完成工作了。 打开 NIKKE 启动器。点击启动。等右下角腾讯 ACE 反作弊系统扫完NIKKE 主程序中央 SHIFT UP logo 出现之后再切出来点击“DORO!”按钮。如果你看到鼠标开始在左下角连点,那就代表启动成功了。然后就可以悠闲地去泡一杯咖啡,或者刷一会儿手机,等待 Doro 完成工作了。
也可以在游戏处在大厅界面时有看板娘的页面切出来点击“DORO!”按钮启动程序。 也可以在游戏处在大厅界面时有看板娘的页面切出来点击“DORO!”按钮启动程序。
游戏需要更新的时候请更新完再使用Doro。 ## 其他
## 其他:
如果出现死循环,提高点击间隔可以解决 80%的问题。 如果出现死循环,提高点击间隔可以解决 80%的问题。
如果你的电脑配置较好的话,可以尝试降低点击间隔。 如果你的电脑配置较好的话,可以尝试降低点击间隔。
可以尝试设置得和我一样: ## 反馈和改进
![image](https://github.com/kyokakawaii/DoroHelper/blob/67486160e97713900c43cc2c68e176dd65e1f442/img/setting1.png) 加入[DoroHelper 反馈群](https://qm.qq.com/q/f0Q1yr7vzi)(584275905)
![image](https://github.com/kyokakawaii/DoroHelper/blob/67486160e97713900c43cc2c68e176dd65e1f442/img/setting2.png)
# 借物表 ## 借物表
<https://github.com/samfisherirl/Github.ahk-API-for-AHKv2> [Github.ahk-API-for-AHKv2](https://github.com/samfisherirl/Github.ahk-API-for-AHKv2)

BIN
img/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 KiB