#Requires AutoHotkey >=v2.0 CoordMode "Pixel", "Client" CoordMode "Mouse", "Client" ;操作间隔(单位:毫秒) sleepTime := 1500 scrRatio := 1.0 ;consts stdScreenW := 3840 stdScreenH := 2160 waitTolerance := 50 colorTolerance := 15 ;utilities 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)) ;MsgBox tr tg tb pr pg pb distance := sqrt((tr - pr) ** 2 + (tg - pg) ** 2 + (tb - pb) ** 2) if (distance < colorTolerance) return true return false } ;functions UserClick(sX, sY, k) { uX := Integer(sX * k) uY := Integer(sY * k) Send "{Click " uX " " uY "}" } UserCheckColor(sX, sY, sC, k) { loop sX.Length { uX := Integer(sX[A_Index] * k) uY := Integer(sY[A_Index] * k) uC := PixelGetColor(uX, uY) if (!IsSimilarColor(uC, sC[A_Index])) return 0 } return 1 } Login() { stdTargetX := 333 stdTargetY := 2041 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [64] stdCkptY := [470] desiredColor := ["0xFAA72C"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance * 10 { MsgBox "登录失败!" ExitApp } } } BackToHall() { stdTargetX := 333 stdTargetY := 2041 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [64] stdCkptY := [470] desiredColor := ["0xFAA72C"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "退回大厅失败!" ExitApp } } } ;============================================================= ;1: 防御前哨基地奖励 OutpostDefence() { Start: stdTargetX := 1092 stdTargetY := 1795 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime ;standard checkpoint stdCkptX := [1500, 1847] stdCkptY := [1816, 1858] desiredColor := ["0xF8FCFD", "0xF7FCFD"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入防御前哨失败!" ExitApp } if A_Index > 10 { BackToHall() goto Start } } ;一举歼灭 stdTargetX := 1686 stdTargetY := 1846 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [1500, 1847] stdCkptY := [1816, 1858] desiredColor := ["0xF8FCFD", "0xF7FCFD"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入一举歼灭失败!" ExitApp } if A_Index > 10 { BackToHall() goto Start } } ;如有免费次数则扫荡,否则跳过 stdCkptX := [1933] stdCkptY := [1648] desiredColor := ["0xE9ECF0"] if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { stdTargetX := 2093 stdTargetY := 1651 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime ;UserClick(stdTargetX, stdTargetY, scrRatio) ;Sleep sleepTime stdCkptX := [1933] stdCkptY := [1648] desiredColor := ["0x11ADF5"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if UserCheckColor([2088], [1327], ["0x00A0EB"], scrRatio) { UserClick(2202, 1342, scrRatio) } if A_Index > 10 { BackToHall() goto Start } } ;如果升级,把框点掉 stdCkptX := [2356] stdCkptY := [1870] desiredColor := ["0x0EAFF4"] stdTargetX := 2156 stdTargetY := 1846 while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if UserCheckColor([2088], [1327], ["0x00A0EB"], scrRatio) { UserClick(2202, 1342, scrRatio) } if A_Index > 10 { BackToHall() goto Start } } } else { stdCkptX := [2356] stdCkptY := [1870] desiredColor := ["0x0EAFF4"] stdTargetX := 2156 stdTargetY := 1846 while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if UserCheckColor([2088], [1327], ["0x00A0EB"], scrRatio) { UserClick(2202, 1342, scrRatio) } if A_Index > 10 { BackToHall() goto Start } } } ;获得奖励 stdTargetX := 2156 stdTargetY := 1846 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime ;UserClick(stdTargetX, stdTargetY, scrRatio) ;Sleep sleepTime // 2 ;多点一下,以防升级 ;UserClick(stdTargetX, stdTargetY, scrRatio) ;Sleep sleepTime // 2 stdCkptX := [64] stdCkptY := [470] desiredColor := ["0xFAA72C"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if UserCheckColor([2088], [1327], ["0x00A0EB"], scrRatio) { UserClick(2202, 1342, scrRatio) } if A_Index > waitTolerance { MsgBox "前哨基地防御异常!" ExitApp } } } ;============================================================= ;2: 付费商店每日每周免费钻 CashShop() { ;进入商店 stdTargetX := 1163 stdTargetY := 1354 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [158, 199] stdCkptY := [525, 439] desiredColor := ["0x0DC2F4", "0x3B3E41"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "进入付费商店失败!" ExitApp } } delta := false stdCkptX := [1093] stdCkptY := [480] desiredColor := ["0xD8D9DA"] if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) delta := true stdTargetX := 256 if delta stdTargetX := 432 stdTargetY := 486 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [194] if delta stdCkptX := [373] stdCkptY := [436] desiredColor := ["0x0FC7F5"] if delta desiredColor := ["0x0BC7F4"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "进入礼包页面失败!" ExitApp } } ;每日 stdTargetX := 545 stdTargetY := 610 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [431] stdCkptY := [594] desiredColor := ["0x0EC7F5"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "进入每日礼包页面失败!" ExitApp } } stdTargetX := 212 stdTargetY := 1095 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 ;每周 stdTargetX := 878 stdTargetY := 612 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [769] stdCkptY := [600] desiredColor := ["0x0CC8F4"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "进入每周礼包页面失败!" ExitApp } } stdTargetX := 212 stdTargetY := 1095 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 ;每月 stdTargetX := 1211 stdTargetY := 612 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [1114] stdCkptY := [600] desiredColor := ["0x0CC8F4"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "进入每月礼包页面失败!" ExitApp } } stdTargetX := 212 stdTargetY := 1095 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 ;回到大厅 stdTargetX := 333 stdTargetY := 2041 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [64] stdCkptY := [470] desiredColor := ["0xFAA72C"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "退出付费商店失败!" ExitApp } } } ;============================================================= ;3: 免费商店 FreeShop(numOfBook) { ;进入商店 stdTargetX := 1193 stdTargetY := 1487 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [118] stdCkptY := [908] desiredColor := ["0xF99217"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入普通商店失败!" ExitApp } } ;如果今天没白嫖过 stdCkptX := [349] stdCkptY := [1305] desiredColor := ["0x127CD7"] if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { ;白嫖第一次 stdTargetX := 383 stdTargetY := 1480 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2063] stdCkptY := [1821] desiredColor := ["0x079FE4"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "普通商店白嫖异常!" ExitApp } } stdTargetX := 2100 stdTargetY := 1821 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [118] stdCkptY := [908] desiredColor := ["0xF99217"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "普通商店白嫖异常!" ExitApp } } ;如果还有免费次数,则白嫖第二次 stdCkptX := [697] stdCkptY := [949] desiredColor := ["0xFB5C24"] if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { ;刷新 stdTargetX := 476 stdTargetY := 981 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2133] stdCkptY := [1345] desiredColor := ["0x00A0EB"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "普通商店刷新异常!" ExitApp } } stdTargetX := 2221 stdTargetY := 1351 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [118] stdCkptY := [908] desiredColor := ["0xF99217"] stdTargetX := 588 stdTargetY := 1803 while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "普通商店刷新异常!" ExitApp } } ;第二次白嫖 stdTargetX := 383 stdTargetY := 1480 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2063] stdCkptY := [1821] desiredColor := ["0x079FE4"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "普通商店白嫖异常!" ExitApp } } stdTargetX := 2100 stdTargetY := 1821 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [118] stdCkptY := [908] desiredColor := ["0xF99217"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "普通商店白嫖异常!" ExitApp } } } } ;废铁商店检查是否已经购买 stdTargetX := 137 stdTargetY := 1737 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [137] stdCkptY := [1650] desiredColor := ["0xFB931A"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "废铁商店进入异常!" ExitApp } } if sleepTime < 1500 Sleep 500 global isBoughtTrash stdCkptX := [349] stdCkptY := [1305] desiredColor := ["0x137CD5"] if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { isBoughtTrash := 0 } else { isBoughtTrash := 1 } ;如果需要,则购买竞技场商店前三本书 if numOfBook >= 1 { stdTargetX := 134 stdTargetY := 1403 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [134] stdCkptY := [1316] desiredColor := ["0xFA9318"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "竞技场商店进入异常!" ExitApp } } if sleepTime < 1500 Sleep 500 } if numOfBook >= 1 { ;购买第一本书 ;如果今天没买过 stdCkptX := [349] stdCkptY := [1305] desiredColor := ["0x127CD7"] ;如果今天没买过 if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { stdTargetX := 384 stdTargetY := 1486 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2067] stdCkptY := [1770] desiredColor := ["0x07A0E4"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "第一本书购买异常!" ExitApp } } stdTargetX := 2067 stdTargetY := 1770 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [134] stdCkptY := [1316] desiredColor := ["0xFA9318"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index >= 2 { stdTargetX := 2067 stdTargetY := 1970 } if A_Index > waitTolerance { MsgBox "第一本书购买异常!" ExitApp } } } } if numOfBook >= 2 { ;购买第二本书 ;如果今天没买过 stdCkptX := [673] stdCkptY := [1305] desiredColor := ["0x137CD5"] if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { stdTargetX := 702 stdTargetY := 1484 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2067] stdCkptY := [1770] desiredColor := ["0x07A0E4"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "第二本书购买异常!" ExitApp } } stdTargetX := 2067 stdTargetY := 1770 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [134] stdCkptY := [1316] desiredColor := ["0xFA9318"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index >= 2 { stdTargetX := 2067 stdTargetY := 1970 } if A_Index > waitTolerance { MsgBox "第二本书购买异常!" ExitApp } } } } if numOfBook >= 3 { ;购买第三本书 ;如果今天没买过 stdCkptX := [997] stdCkptY := [1304] desiredColor := ["0x147BD4"] if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { stdTargetX := 1030 stdTargetY := 1485 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2067] stdCkptY := [1770] desiredColor := ["0x07A0E4"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "第三本书购买异常!" ExitApp } } stdTargetX := 2067 stdTargetY := 1770 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [134] stdCkptY := [1316] desiredColor := ["0xFA9318"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index >= 2 { stdTargetX := 2067 stdTargetY := 1970 } if A_Index > waitTolerance { MsgBox "第三本书购买异常!" ExitApp } } } } stdTargetX := 333 stdTargetY := 2041 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [64] stdCkptY := [470] desiredColor := ["0xFAA72C"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "退出免费商店失败!" ExitApp } } } ;============================================================= ;4: 派遣 Expedition() { ;进入前哨基地 stdTargetX := 1169 stdTargetY := 1663 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [64] stdCkptY := [470] desiredColor := ["0xFAA72C"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入前哨基地失败!" ExitApp } } stdCkptX := [1907, 1963, 1838, 2034] stdCkptY := [1817, 1852, 1763, 1877] desiredColor := ["0xFFFFFF", "0xFFFFFF", "0x0B1219", "0x0B1219"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入前哨基地失败!" ExitApp } } ;派遣公告栏 ;收菜 stdTargetX := 2002 stdTargetY := 2046 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2113, 2119, 2387] stdCkptY := [372, 399, 384] desiredColor := ["0x404240", "0x404240", "0x404240"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入派遣失败!" ExitApp } } stdTargetX := 2268 stdTargetY := 1814 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime Sleep 3000 ;全部派遣 stdCkptX := [1869, 1977] stdCkptY := [1777, 1847] desiredColor := ["0xCFCFCF", "0xCFCFCF"] ;如果今天没派遣过 if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { stdTargetX := 1930 stdTargetY := 1813 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2199, 2055] stdCkptY := [1796, 1853] desiredColor := ["0x00ADFF", "0x00ADFF"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "全部派遣失败!" ExitApp } } stdTargetX := 2073 stdTargetY := 1818 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2199, 2055] stdCkptY := [1796, 1853] desiredColor := ["0x00ADFF", "0x00ADFF"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "全部派遣失败!" ExitApp } } } ;回到大厅 stdTargetX := 333 stdTargetY := 2041 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [64] stdCkptY := [470] desiredColor := ["0xFAA72C"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "退出前哨基地失败!" ExitApp } } } ;============================================================= ;5: 好友点数收取 FriendPoint() { stdTargetX := 3729 stdTargetY := 524 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [64] stdCkptY := [470] desiredColor := ["0xFAA72C"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入好友界面失败!" ExitApp } } stdCkptX := [2104, 2197] stdCkptY := [1825, 1838] desiredColor := ["0x0CAFF4", "0xF7FDFE"] stdTargetX := 2276 stdTargetY := 1837 while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "赠送好友点数失败" ExitApp } } stdTargetX := 333 stdTargetY := 2041 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [64] stdCkptY := [470] desiredColor := ["0xFAA72C"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "退出好友界面失败!" ExitApp } } } ;============================================================= ;6: 模拟室5C SimulationRoom() { stdTargetX := 2689 stdTargetY := 1463 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [64] stdCkptY := [470] desiredColor := ["0xFAA72C"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "进入方舟失败!" ExitApp } } stdCkptX := [1641] stdCkptY := [324] desiredColor := ["0x01D4F6"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入方舟失败!" ExitApp } } ;进入模拟室 stdTargetX := 1547 stdTargetY := 1138 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [1829, 2024] stdCkptY := [1122, 1094] desiredColor := ["0xF8FCFD", "0xF8FCFD"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入模拟室失败!" ExitApp } } ;开始模拟 stdTargetX := 1917 stdTargetY := 1274 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [1687, 1759] stdCkptY := [1823, 628] desiredColor := ["0x05AFF4", "0x1D1D1C"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入选关失败!" ExitApp } } ;选择5C stdTargetX := 2127 stdTargetY := 1074 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 stdTargetX := 2263 stdTargetY := 1307 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 ;点击开始模拟 ;开始模拟 stdTargetX := 1891 stdTargetY := 1818 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [1687, 1759] stdCkptY := [1823, 628] desiredColor := ["0x05AFF4", "0x1D1D1C"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "开始模拟失败!" ExitApp } } ;1C-5C loop 5 { ;选择最右边的关卡 stdTargetX := 2255 stdTargetY := 1478 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [1912] stdCkptY := [1943] desiredColor := ["0xF8FCFD"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "选择关卡失败!" ExitApp } } stdCkptX := [2062] stdCkptY := [1850] desiredColor := ["0xF96F36"] ;如果是战斗关卡 if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { ;点击快速战斗 stdTargetX := 2233 stdTargetY := 1854 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2062] stdCkptY := [1850] desiredColor := ["0xF96F36"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "快速战斗失败!" ExitApp } } stdCkptX := [2112] stdCkptY := [1808] desiredColor := ["0x05A0E3"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) && !UserCheckColor(stdCkptX, [1808 + 79], desiredColor, scrRatio) { Sleep sleepTime if A_Index > waitTolerance { MsgBox "快速战斗失败!" ExitApp } } Sleep 1500 ;kkk if sleepTime <= 1000 Sleep 750 ;点击不选择 deltaY := 0 stdCkptX := [1599] stdCkptY := [1811 + 79] desiredColor := ["0xDEE1E1"] if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) deltaY := 79 ;if deltaY == 79 ; MsgBox "79" stdTargetX := 1631 stdTargetY := 1811 + deltaY UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2112] stdCkptY := [1808 + deltaY] desiredColor := ["0x05A0E3"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "不选择buff失败!" ExitApp } } ;点击确认 stdTargetX := 2146 stdTargetY := 1349 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2081] stdCkptY := [1320] desiredColor := ["0x00A0EB"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "不选择buff失败!" ExitApp } } } else { Sleep 1500 ;kkk if sleepTime <= 1000 Sleep 750 stdCkptX := [1636, 2053] stdCkptY := [1991, 1991] desiredColor := ["0xE0E2E2", "0x13A1E4"] ;如果是可以不选择的buff关卡 if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { ;点击不选择 stdTargetX := 1743 stdTargetY := 2019 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2053] stdCkptY := [1991] desiredColor := ["0x13A1E4"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "不选择buff失败!" ExitApp } } ;点击确认 stdTargetX := 2180 stdTargetY := 1346 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2080] stdCkptY := [1319] desiredColor := ["0x00A0EB"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "不选择buff失败!" ExitApp } } ;点击确认 stdTargetX := 1932 stdTargetY := 1293 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [1836] stdCkptY := [1260] desiredColor := ["0x069FE3"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "不选择buff失败!" ExitApp } } } else { ;是必须选择的关卡 ;选择buff stdTargetX := 1885 stdTargetY := 1862 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 stdTargetX := 1904 stdTargetY := 1900 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if sleepTime <= 1000 Sleep 1000 ;点击确认 stdCkptX := [1858] stdCkptY := [1572] desiredColor := ["0x069FE3"] if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { stdTargetX := 1923 stdTargetY := 1589 while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "确认失败!" ExitApp } } } else { stdTargetX := 1908 stdTargetY := 2016 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime } } } } ;6C ;选择右边一个关卡 stdTargetX := 2084 stdTargetY := 1508 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [1921] stdCkptY := [1921] desiredColor := ["0x000000"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "选择关卡失败!" ExitApp } } Sleep 1500 ;kkk if sleepTime <= 1000 Sleep 750 stdCkptX := [1648] stdCkptY := [1995] desiredColor := ["0xE1E2E2"] ;如果是属性提升 if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { stdTargetX := 1711 stdTargetY := 2020 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "不选择失败!" ExitApp } } stdTargetX := 2304 stdTargetY := 1338 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 } else { ;如果是疗养室 stdTargetX := 1908 stdTargetY := 1767 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 stdTargetX := 1892 stdTargetY := 2014 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 } ;7C stdTargetX := 1916 stdTargetY := 1471 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [837, 951] stdCkptY := [1407, 1762] desiredColor := ["0xF8FCFE", "0xF8FCFE"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "选择关卡失败!" ExitApp } } ;点击进入战斗 stdTargetX := 2225 stdTargetY := 2004 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 stdCkptX := [1420, 2337] stdCkptY := [1243, 1440] desiredColor := ["0xFFFFFF", "0xFE0203"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { ;UserClick(stdTargetX, stdTargetY - 300, scrRatio) Sleep sleepTime if A_Index > waitTolerance * 3 { MsgBox "模拟室boss战异常!" ExitApp } } stdTargetX := 1898 stdTargetY := 1996 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2115] stdCkptY := [1305] stdCkptX2 := [2115] stdCkptY2 := [1556] desiredColor := ["0xEFF3F5"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) && !UserCheckColor(stdCkptX2, stdCkptY2, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "模拟室结束异常!" ExitApp } } ;点击模拟结束 stdTargetX := 1923 stdTargetY := 1276 if UserCheckColor(stdCkptX2, stdCkptY2, desiredColor, scrRatio) { stdTargetX := 1923 stdTargetY := 1552 } UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) 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 stdTargetY := 2041 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [64] stdCkptY := [470] desiredColor := ["0xFAA72C"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "退回大厅失败!" ExitApp } } } ;============================================================= ;7: 新人竞技场打第三位,顺带收50%以上的菜 RookieArena(times) { ;进入方舟 stdTargetX := 2689 stdTargetY := 1463 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [64] stdCkptY := [470] desiredColor := ["0xFAA72C"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "进入方舟失败!" ExitApp } } stdCkptX := [1641] stdCkptY := [324] desiredColor := ["0x01D4F6"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入方舟失败!" ExitApp } } ;收pjjc菜 if sleepTime < 1500 Sleep 1000 stdTargetX := 2278 stdTargetY := 1092 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 stdTargetX := 2129 stdTargetY := 1920 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 ;进入竞技场 stdTargetX := 2208 stdTargetY := 1359 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [1683] stdCkptY := [606] desiredColor := ["0xF7FCFE"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入竞技场失败!" ExitApp } } ;进入新人竞技场 stdTargetX := 1647 stdTargetY := 1164 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [784] stdCkptY := [1201] desiredColor := ["0xF8FCFE"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > 5 { ;退回大厅 stdTargetX := 333 stdTargetY := 2041 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [64] stdCkptY := [470] desiredColor := ["0xFAA72C"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "退回大厅失败!" ExitApp } } return } if A_Index > waitTolerance { MsgBox "进入新人竞技场失败!" ExitApp } } loop times { ;点击进入战斗 stdTargetX := 2320 stdTargetY := 1661 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2267] stdCkptY := [1593] desiredColor := ["0x16B0F5"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "选择对手失败!" ExitApp } } ;点击进入战斗 stdTargetX := 2123 stdTargetY := 1784 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2784] stdCkptY := [1471] desiredColor := ["0xF8FCFD"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "新人竞技场作战失败!" ExitApp } } } ;退回大厅 stdTargetX := 333 stdTargetY := 2041 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [64] stdCkptY := [470] desiredColor := ["0xFAA72C"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "退回大厅失败!" ExitApp } } } ;============================================================= ;8: 对前n位nikke进行好感度咨询(可以通过收藏把想要咨询的nikke排到前面) LoveTalking(times) { ;进入妮姬列表 stdTargetX := 1497 stdTargetY := 2004 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [64] stdCkptY := [470] desiredColor := ["0xFAA72C"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "进入妮姬列表失败!" ExitApp } } stdCkptX := [1466, 1814] stdCkptY := [428, 433] desiredColor := ["0x3B3C3E", "0x3B3C3E"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入妮姬列表失败!" ExitApp } } ;进入咨询页面 stdTargetX := 3308 stdTargetY := 257 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [1650] stdCkptY := [521] desiredColor := ["0x14B0F5"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { ;如果没次数了,直接退出 if UserCheckColor(stdCkptX, stdCkptY, ["0xE0E0E2"], scrRatio) { stdTargetX := 333 stdTargetY := 2041 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [64] stdCkptY := [470] desiredColor := ["0xFAA72C"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "退回大厅失败!" ExitApp } } return } UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入咨询页面失败!" ExitApp } } ;点进第一个妮姬 stdTargetX := 736 stdTargetY := 749 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [1504] stdCkptY := [1747] desiredColor := ["0xF99F22"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入妮姬咨询页面失败!" ExitApp } } loop times { stdCkptX := [1994] stdCkptY := [1634] desiredColor := ["0xFA6E34"] ;如果能够快速咨询 if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { ;点击快速咨询 stdTargetX := 2175 stdTargetY := 1634 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [1994] stdCkptY := [1634] desiredColor := ["0xFA6E34"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入妮姬咨询页面失败!" ExitApp } } ;点击确定 stdTargetX := 2168 stdTargetY := 1346 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [1504] stdCkptY := [1747] desiredColor := ["0xF99F22"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "快速咨询失败!" ExitApp } } } else { ;如果不能快速咨询 stdCkptX := [1982] stdCkptY := [1819] desiredColor := ["0x4A4A4C"] if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { stdTargetX := 2168 stdTargetY := 1777 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [1504] stdCkptY := [1747] desiredColor := ["0xF99F22"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "咨询失败!" ExitApp } } ;点击确认 stdTargetX := 2192 stdTargetY := 1349 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2109] stdCkptY := [1342] desiredColor := ["0x00A0EB"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "咨询失败!" ExitApp } } stdCkptX := [1504] stdCkptY := [1747] desiredColor := ["0xF99F22"] stdTargetX := 1903 stdTargetY := 1483 while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { if Mod(A_Index, 2) == 0 UserClick(stdTargetX, stdTargetY, scrRatio) else UserClick(stdTargetX, 1625, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance * 2 { MsgBox "咨询失败!" ExitApp } } } } if A_Index >= times break ;翻页 stdTargetX := 3778 stdTargetY := 940 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [1982] stdCkptY := [1819] desiredColor := ["0x4A4A4C"] numOfTalked := A_Index while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index + numOfTalked >= times break 2 if A_Index > waitTolerance { MsgBox "咨询失败!" ExitApp } } } ;退回大厅 stdTargetX := 333 stdTargetY := 2041 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [64] stdCkptY := [470] desiredColor := ["0xFAA72C"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "退回大厅失败!" ExitApp } } } ;============================================================= ;9: 爬塔一次(做每日任务) TribeTower() { stdTargetX := 2689 stdTargetY := 1463 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [64] stdCkptY := [470] desiredColor := ["0xFAA72C"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "进入方舟失败!" ExitApp } } stdCkptX := [1641] stdCkptY := [324] desiredColor := ["0x01D4F6"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入方舟失败!" ExitApp } } ;进入无限之塔 stdTargetX := 2278 stdTargetY := 776 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2405] stdCkptY := [1014] desiredColor := ["0xF8FBFE"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入无限之塔失败!" ExitApp } } stdTargetX := 1953 stdTargetY := 934 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2129, 2305] stdCkptY := [1935, 1935] desiredColor := ["0x2E77C2", "0x2E77C2"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "选择作战失败!" ExitApp } } stdTargetX := 2242 stdTargetY := 2001 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [2129, 2305] stdCkptY := [1935, 1935] desiredColor := ["0x2E77C2", "0x2E77C2"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入作战失败!" ExitApp } } ;按esc stdCkptX := [2065] stdCkptY := [1954] desiredColor := ["0x238CFD"] stdTargetX := 3780 stdTargetY := 75 while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "按esc失败!" ExitApp } } ;按放弃战斗 stdCkptX := [2065] stdCkptY := [1954] desiredColor := ["0x238CFD"] stdTargetX := 1678 stdTargetY := 1986 while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "放弃战斗失败!" ExitApp } } ;退回大厅 stdTargetX := 301 stdTargetY := 2030 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [64] stdCkptY := [470] desiredColor := ["0xFAA72C"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "退回大厅失败!" ExitApp } } } ;============================================================= ;10: 进入特拦界面 EnterInterception() { stdTargetX := 2689 stdTargetY := 1463 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [64] stdCkptY := [470] desiredColor := ["0xFAA72C"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime // 2 if A_Index > waitTolerance { MsgBox "进入方舟失败!" ExitApp } } stdCkptX := [1641] stdCkptY := [324] desiredColor := ["0x01D4F6"] while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入方舟失败!" ExitApp } } ;进入拦截战 stdTargetX := 1781 stdTargetY := 1719 UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime stdCkptX := [1641] stdCkptY := [324] desiredColor := ["0x01D4F6"] while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { UserClick(stdTargetX, stdTargetY, scrRatio) Sleep sleepTime if A_Index > waitTolerance { MsgBox "进入拦截战失败!" 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 } } } ClickOnOutpostDefence(*) { global isCheckedOutposeDefence isCheckedOutposeDefence := 1 - isCheckedOutposeDefence } ClickOnCashShop(*) { global isCheckedCashShop isCheckedCashShop := 1 - isCheckedCashShop } ClickOnFreeShop(*) { global isCheckedFreeShop isCheckedFreeShop := 1 - isCheckedFreeShop } ClickOnExpedition(*) { global isCheckedExpedtion isCheckedExpedtion := 1 - isCheckedExpedtion } ClickOnFriendPoint(*) { global isCheckedFriendPoint isCheckedFriendPoint := 1 - isCheckedFriendPoint } ClickOnSimulationRoom(*) { global isCheckedSimulationRoom isCheckedSimulationRoom := 1 - isCheckedSimulationRoom } ClickOnRookieArena(*) { global isCheckedRookieArena isCheckedRookieArena := 1 - isCheckedRookieArena } ClickOnLoveTalking(*) { global isCheckedLoveTalking isCheckedLoveTalking := 1 - isCheckedLoveTalking } ClickOnTribeTower(*) { global isCheckedTribeTower isCheckedTribeTower := 1 - isCheckedTribeTower } ChangeOnNumOfBook(GUICtrl, *) { global numOfBook numOfBook := GUICtrl.Value - 1 } ChangeOnNumOfBattle(GUICtrl, *) { global numOfBattle numOfBattle := GUICtrl.Value + 1 } ChangeOnNumOfLoveTalking(GUICtrl, *) { global numOfLoveTalking numOfLoveTalking := GUICtrl.Value } ChangeOnSleepTime(GUICtrl, *) { global sleepTime switch GUICtrl.Value { case 1: sleepTime := 750 case 2: sleepTime := 1000 case 3: sleepTime := 1250 case 4: sleepTime := 1500 case 5: sleepTime := 1750 case 6: sleepTime := 2000 default: sleepTime := 1500 } } ClickOnHelp(*) { msgbox " ( ############################################# 使用说明 对大多数老玩家来说Doro设置保持默认就好。 万一Doro失控,请按Ctrl + 1组合键结束进程。 万一Doro失控,请按Ctrl + 1组合键结束进程。 万一Doro失控,请按Ctrl + 1组合键结束进程。 ############################################# 要求: - 【设定-画质-全屏幕模式 + 16:9的显示器比例】 或 【16:9的窗口模式(窗口别拉太小,否则像素识别可能出现误差)】 - 设定-画质-开启光晕效果 - 设定-画质-开启颜色分级 - 游戏语言设置为简体中文 - 以**管理员身份**运行DoroHelper ############################################# 步骤: 打开NIKKE启动器。点击启动。等右下角腾讯ACE反作弊系统扫完,NIKKE主程序中央SHIFT UP logo出现之后,再切出来点击“DORO!”按钮。如果你看到鼠标开始在左下角连点,那就代表启动成功了。(不行的话手动点击一下NIKKE,让它成为活跃窗口。)然后就可以悠闲地去泡一杯咖啡,或者刷一会儿手机,等待Doro完成工作了。 也可以在游戏处在大厅界面时(有看板娘的页面)切出来点击“DORO!”按钮启动程序。 游戏需要更新的时候请更新完再使用Doro。 ############################################# 其他: 如果出现死循环,提高点击间隔可以解决80%的问题。 还是不行就上github搜索DoroHelper,看是否发布了新版本。 如果你的电脑配置较好的话,或许可以尝试降低点击间隔。 )" } ClickOnDoro(*) { if !A_IsAdmin { MsgBox "请以管理员身份运行Doro" ExitApp } WinGetClientPos ,, &userScreenW, &userScreenH, "NIKKE" global scrRatio scrRatio := userScreenW / stdScreenW nikkeID := WinWait("NIKKE") WinActivate nikkeID Login() if isCheckedOutposeDefence OutpostDefence() if isCheckedCashShop CashShop() if isCheckedFreeShop FreeShop(numOfBook) if isCheckedExpedtion Expedition() if isCheckedFriendPoint FriendPoint() if isCheckedSimulationRoom SimulationRoom() if isCheckedRookieArena RookieArena(numOfBattle) if isCheckedLoveTalking LoveTalking(numOfLoveTalking) if isCheckedTribeTower TribeTower() if isCheckedOutposeDefence OutpostDefence() EnterInterception() if isBoughtTrash == 0 MsgBox "协同作战商店似乎已经刷新了,快去看看吧" MsgBox "Doro完成任务!" ExitApp } isCheckedOutposeDefence := 1 isCheckedCashShop := 1 isCheckedFreeShop := 1 isCheckedExpedtion := 1 isCheckedFriendPoint := 1 isCheckedSimulationRoom := 1 isCheckedRookieArena := 1 isCheckedLoveTalking := 1 isCheckedTribeTower := 1 numOfBook := 3 numOfBattle := 5 numOfLoveTalking := 10 isBoughtTrash := 1 /* ^1::{ MsgBox isCheckedOutposeDefence " " isCheckedCashShop " " isCheckedFreeShop " " isCheckedExpedtion " " isCheckedFriendPoint " " isCheckedSimulationRoom " " isCheckedRookieArena " " isCheckedLoveTalking " " isCheckedTribeTower } */ ;创建gui doroGui := Gui(, "Doro小帮手") doroGui.Add("Button", "Default w80", "帮助").OnEvent("Click", ClickOnHelp) doroGui.Add("Text",, "点击间隔(单位毫秒),谨慎更改") doroGui.Add("DropDownList", "Choose4", [750, 1000, 1250, 1500, 1750, 2000]).OnEvent("Change", ChangeOnSleepTime) doroGui.Add("GroupBox", "w300 h320 YP+40", "想让Doro帮你做什么呢?") doroGui.Add("Checkbox", "Checked XP+10 YP+20", "领取前哨基地防御奖励").OnEvent("Click", ClickOnOutpostDefence) doroGui.Add("Checkbox", "Checked", "领取付费商店免费钻(进不了商店的别选)").OnEvent("Click", ClickOnCashShop) doroGui.Add("Checkbox", "Checked", "普通商店 每日白嫖2次,并购买n本属性书").OnEvent("Click", ClickOnFreeShop) doroGui.Add("Text",, "购买几本属性书?") doroGui.Add("DropDownList", "Choose4", [0, 1, 2, 3]).OnEvent("Change", ChangeOnNumOfBook) doroGui.Add("Checkbox", "Checked", "派遣远征").OnEvent("Click", ClickOnExpedition) doroGui.Add("Checkbox", "Checked", "好友点数收取").OnEvent("Click", ClickOnFriendPoint) doroGui.Add("Checkbox", "Checked", "模拟室5C(普通关卡需要快速战斗)").OnEvent("Click", ClickOnSimulationRoom) doroGui.Add("Checkbox", "Checked", "新人竞技场n次(请点开快速战斗)").OnEvent("Click", ClickOnRookieArena) doroGui.Add("Text",, "新人竞技场打几次?") doroGui.Add("DropDownList", "Choose4", [2, 3, 4, 5]).OnEvent("Change", ChangeOnNumOfBattle) doroGui.Add("Checkbox", "Checked", "咨询n位妮姬(可以通过收藏改变妮姬排序)").OnEvent("Click", ClickOnLoveTalking) doroGui.Add("Text",, "咨询几位妮姬?") doroGui.Add("DropDownList", "Choose10", [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).OnEvent("Change", ChangeOnNumOfLoveTalking) doroGui.Add("Checkbox", "Checked", "爬塔1次(蹭每日任务)").OnEvent("Click", ClickOnTribeTower) doroGui.Add("Button", "Default w80 XP+100 YP+40", "DORO!").OnEvent("Click", ClickOnDoro) doroGui.Show() ^1::{ ExitApp } /* ;登陆到主界面 Login() ;前哨基地防御奖励 OutpostDefence() ;付费商店领免费钻 CashShop() ;普通商店白嫖 FreeShop() ;派遣 Expedition() ;好友点数收取 FriendPoint() ;模拟室5C(不拿buff) SimulationRoom() RookieArenaTimes := 0 ;新人竞技场n次打第三位,顺带收50%以上的菜 RookieArena(RookieArenaTimes) LoveTalkingTimes := 10 ;对前n位nikke进行好感度咨询(可以通过收藏把想要咨询的nikke排到前面) ;LoveTalking(LoveTalkingTimes) ;爬塔一次(蹭每日任务) TribeTower() ;再次收前哨基地防御奖励(蹭每日任务) OutpostDefence() ;进入特拦界面 EnterInterception() */