diff --git a/DoroHelper.ahk b/DoroHelper.ahk index fdb10c3..0a3dc30 100644 --- a/DoroHelper.ahk +++ b/DoroHelper.ahk @@ -615,6 +615,36 @@ CashShop() ;============================================================= ;3: 免费商店 +BuyThisBook(coor, k) +{ + uX := Round(coor[1] * k) + uY := Round(coor[2] * 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 B > G and B > R { + return isCheckedBook[2] + } + + if G > R and G > B { + return isCheckedBook[3] + } + + if R > G and G > B and G > Format("{:d}", "0x50") { + return isCheckedBook[5] + } + + if R > B and B > G and B > Format("{:d}", "0x50") { + return isCheckedBook[4] + } + + return isCheckedBook[1] +} + FreeShop(numOfBook) { ;进入商店 @@ -833,7 +863,7 @@ FreeShop(numOfBook) desiredColor := ["0x127CD7"] ;如果今天没买过 - if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { + if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) and BuyThisBook([378, 1210], scrRatio) { stdTargetX := 384 stdTargetY := 1486 UserClick(stdTargetX, stdTargetY, scrRatio) @@ -883,7 +913,7 @@ FreeShop(numOfBook) stdCkptY := [1305] desiredColor := ["0x137CD5"] - if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { + if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) and BuyThisBook([702, 1210], scrRatio) { stdTargetX := 702 stdTargetY := 1484 UserClick(stdTargetX, stdTargetY, scrRatio) @@ -933,7 +963,7 @@ FreeShop(numOfBook) stdCkptY := [1304] desiredColor := ["0x147BD4"] - if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { + if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) and BuyThisBook([1025, 1210], scrRatio) { stdTargetX := 1030 stdTargetY := 1485 UserClick(stdTargetX, stdTargetY, scrRatio) @@ -3297,6 +3327,36 @@ ClickAutoCheckUpdate(*) isCheckedAutoCheckUpdate := 1 - isCheckedAutoCheckUpdate } +ClickOnFireBook(*) +{ + global isCheckedBook + isCheckedBook[1] := 1 - isCheckedBook[1] +} + +ClickOnWaterBook(*) +{ + global isCheckedBook + isCheckedBook[2] := 1 - isCheckedBook[2] +} + +ClickOnWindBook(*) +{ + global isCheckedBook + isCheckedBook[3] := 1 - isCheckedBook[3] +} + +ClickOnElecBook(*) +{ + global isCheckedBook + isCheckedBook[4] := 1 - isCheckedBook[4] +} + +ClickOnIronBook(*) +{ + global isCheckedBook + isCheckedBook[5] := 1 - isCheckedBook[5] +} + ChangeOnNumOfBook(GUICtrl, *) { global numOfBook @@ -3532,6 +3592,11 @@ WriteSettings() IniWrite(isCheckedCompanyTower, "settings.ini", "section1", "isCheckedCompanyTower") IniWrite(isCheckedLongTalk, "settings.ini", "section1", "isCheckedLongTalk") IniWrite(isCheckedAutoCheckUpdate, "settings.ini", "section1", "isCheckedAutoCheckUpdate") + IniWrite(isCheckedBook[1], "settings.ini", "section1", "isCheckedBook[1]") + IniWrite(isCheckedBook[2], "settings.ini", "section1", "isCheckedBook[2]") + IniWrite(isCheckedBook[3], "settings.ini", "section1", "isCheckedBook[3]") + IniWrite(isCheckedBook[4], "settings.ini", "section1", "isCheckedBook[4]") + IniWrite(isCheckedBook[5], "settings.ini", "section1", "isCheckedBook[5]") } @@ -3557,6 +3622,7 @@ LoadSettings() global isCheckedCompanyTower global isCheckedLongTalk global isCheckedAutoCheckUpdate + global isCheckedBook sleepTime := IniRead("settings.ini", "section1", "sleepTime") colorTolerance := IniRead("settings.ini", "section1", "colorTolerance") @@ -3608,6 +3674,41 @@ LoadSettings() catch as err { IniWrite(isCheckedAutoCheckUpdate, "settings.ini", "section1", "isCheckedAutoCheckUpdate") } + + try { + isCheckedBook[1] := IniRead("settings.ini", "section1", "isCheckedBook[1]") + } + catch as err { + IniWrite(isCheckedBook[1], "settings.ini", "section1", "isCheckedBook[1]") + } + + try { + isCheckedBook[2] := IniRead("settings.ini", "section1", "isCheckedBook[2]") + } + catch as err { + IniWrite(isCheckedBook[2], "settings.ini", "section1", "isCheckedBook[2]") + } + + try { + isCheckedBook[3] := IniRead("settings.ini", "section1", "isCheckedBook[3]") + } + catch as err { + IniWrite(isCheckedBook[3], "settings.ini", "section1", "isCheckedBook[3]") + } + + try { + isCheckedBook[4] := IniRead("settings.ini", "section1", "isCheckedBook[4]") + } + catch as err { + IniWrite(isCheckedBook[4], "settings.ini", "section1", "isCheckedBook[4]") + } + + try { + isCheckedBook[5] := IniRead("settings.ini", "section1", "isCheckedBook[5]") + } + catch as err { + IniWrite(isCheckedBook[5], "settings.ini", "section1", "isCheckedBook[5]") + } } @@ -3625,6 +3726,7 @@ isCheckedInterception := 0 isCheckedCompanyTower := 0 isCheckedLongTalk := 0 isCheckedAutoCheckUpdate := 0 +isCheckedBook := [1, 1, 1, 1, 1] InterceptionBoss := 1 numOfBook := 3 numOfBattle := 5 @@ -3670,8 +3772,8 @@ if isCheckedAutoCheckUpdate { ;创建gui doroGui := Gui(, "Doro小帮手" currentVersion) -doroGui.SetFont("s15") -doroGui.Add("Link",, '项目地址') +doroGui.SetFont("cred s15") +doroGui.Add("Link",, '紧急停止按ctrl + 1 项目地址') doroGui.SetFont() doroGui.Add("Button", "Default w80", "帮助").OnEvent("Click", ClickOnHelp) doroGui.Add("Button", "Default w80", "检查更新").OnEvent("Click", ClickOnCheckForUpdate) @@ -3680,12 +3782,17 @@ doroGui.Add("Text",, "点击间隔(单位毫秒),谨慎更改") doroGui.Add("DropDownList", "Choose" SleepTimeToLabel(sleepTime), [750, 1000, 1250, 1500, 1750, 2000]).OnEvent("Change", ChangeOnSleepTime) doroGui.Add("Text",, "色差容忍度,能跑就别改") doroGui.Add("DropDownList", "Choose" ColorToleranceToLabel(colorTolerance), ["严格", "宽松"]).OnEvent("Change", ChangeOnColorTolerance) -doroGui.Add("GroupBox", "w300 h545 YP+40", "想让Doro帮你做什么呢?") +doroGui.Add("GroupBox", "w300 h660 YP+40", "想让Doro帮你做什么呢?") doroGui.Add("Checkbox", IsCheckedToString(isCheckedOutposeDefence) " XP+10 YP+20", "领取前哨基地防御奖励").OnEvent("Click", ClickOnOutpostDefence) doroGui.Add("Checkbox", IsCheckedToString(isCheckedCashShop), "领取付费商店免费钻(进不了商店的别选)").OnEvent("Click", ClickOnCashShop) doroGui.Add("Checkbox", IsCheckedToString(isCheckedFreeShop), "普通商店 每日白嫖2次,并购买n本属性书").OnEvent("Click", ClickOnFreeShop) doroGui.Add("Text", "XP+15 Y+M", "购买几本属性书?") doroGui.Add("DropDownList", "Choose" NumOfBookToLabel(numOfBook), [0, 1, 2, 3]).OnEvent("Change", ChangeOnNumOfBook) +doroGui.Add("Checkbox", IsCheckedToString(isCheckedBook[1]), "燃烧书").OnEvent("Click", ClickOnFireBook) +doroGui.Add("Checkbox", IsCheckedToString(isCheckedBook[2]), "水冷书").OnEvent("Click", ClickOnWaterBook) +doroGui.Add("Checkbox", IsCheckedToString(isCheckedBook[3]), "风压书").OnEvent("Click", ClickOnWindBook) +doroGui.Add("Checkbox", IsCheckedToString(isCheckedBook[4]), "电击书").OnEvent("Click", ClickOnElecBook) +doroGui.Add("Checkbox", IsCheckedToString(isCheckedBook[5]), "铁甲书").OnEvent("Click", ClickOnIronBook) doroGui.Add("Checkbox", IsCheckedToString(isCheckedCompanyWeapon), "购买公司武器熔炉").OnEvent("Click", ClickOnCompanyWeapon) doroGui.Add("Checkbox", IsCheckedToString(isCheckedExpedtion) " XP-15 Y+M", "派遣远征").OnEvent("Click", ClickOnExpedition) doroGui.Add("Checkbox", IsCheckedToString(isCheckedFriendPoint), "好友点数收取").OnEvent("Click", ClickOnFriendPoint)