├── .gitignore ├── doro.ico ├── img ├── preview.png ├── setting1.png └── setting2.png ├── README.md └── DoroHelper.ahk /.gitignore: -------------------------------------------------------------------------------- 1 | *.exe 2 | *.ini 3 | lib/ 4 | myver/ -------------------------------------------------------------------------------- /doro.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyokakawaii/DoroHelper_classic/HEAD/doro.ico -------------------------------------------------------------------------------- /img/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyokakawaii/DoroHelper_classic/HEAD/img/preview.png -------------------------------------------------------------------------------- /img/setting1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyokakawaii/DoroHelper_classic/HEAD/img/setting1.png -------------------------------------------------------------------------------- /img/setting2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyokakawaii/DoroHelper_classic/HEAD/img/setting2.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 注意 2 | 3 | 应朋友要求,还是修复了DoroHelper的老版本。因为作者比较忙,老版本基本不会添加新功能。 4 | 5 | 新版本对代码进行了全方位的重构,添加了大量新功能,且有新作者及时维护。详见 6 | 7 | 8 | # 免责声明 9 | 10 | 本项目仅供个人学习研究使用,严禁用于商业用途。除Github以外其他任何网站、社交平台中有关本项目的内容**均非本人发布**,若造成侵犯著作权、版权或违反网络安全法规等任何后果,均与本人无关。 11 | 12 | # 前言 13 | 14 | PC端自用日常任务清理助手:DoroHelper。支持国际服和港澳台服客户端。支持多开。 15 | 16 | 17 | ### 叠甲: 18 | 19 | 使用任何脚本程序均有封号风险,请谨慎。 20 | 21 | ### 再叠甲: 22 | 23 | 程序是根据我自己的账号进度写的,所以可能会有操作不兼容的情况出现。第一次使用最好在旁边看着。万一Doro失控,请按Ctrl + 1组合键结束进程。 24 | 25 | 26 | # 下载 27 | 28 | 在右边的release里有我编译好的exe文件可以直接用。 29 | 30 | 不放心的话也可以下载代码,安装AutoHotkey V2.0并以管理员模式运行`DoroHelper.ahk`。也可以用任意文本编辑器打开`DoroHelper.ahk`修改(史山)代码以适配自己的情况。 31 | 32 | 也可以使用Ahk2Exe编译`DoroHelper.ahk`自己生成exe可执行文件。 33 | 34 | 35 | # 功能介绍 36 | 37 | Doro只是想让你少被该死的读条、闪光弹和重复劳动折磨。一键清理多项日常事务,包括: 38 | 39 | - **前哨基地防御** 40 | 41 | _1次一举歼灭+2次收菜_ 42 | 43 | - **付费商店** 44 | 45 | _领取每日、周、月免费钻_ 46 | 47 | - **免费商店** 48 | 49 | _普通商店每天白嫖2次,竞技场购买自定义数量的属性技能书,购买公司武器熔炉_ 50 | 51 | - **派遣远征和收菜** 52 | 53 | - **收取赠送好友点数** 54 | 55 | - **模拟室5C通关** 56 | 57 | - **新人竞技场进行自定义数量的战斗** 58 | 59 | _顺带收取pjjc囤积超过50%的菜_ 60 | 61 | - **进行自定义次数的好感度咨询** 62 | 63 | _支持补充咨询图鉴_ 64 | 65 | - **光速爬塔失败1次** 66 | 67 | _蹭每日任务点数_ 68 | 69 | - **爬企业塔** 70 | 71 | - **自动异常拦截** 72 | 73 | 若不勾选自动异常拦截,在完成任务清单后,每日任务点数为90。此时Doro会自动进入异常拦截战斗页面并停留,方便指挥官直接手动开打。打完以后每日任务点数即来到100。 74 | 75 | # 使用说明 76 | 77 | 对大多数老玩家来说Doro设置保持默认就好。 78 | 79 | 万一Doro失控,请按Ctrl + 1组合键结束进程。 80 | 81 | 万一Doro失控,请按Ctrl + 1组合键结束进程。 82 | 83 | 万一Doro失控,请按Ctrl + 1组合键结束进程。 84 | 85 | ## 要求: 86 | 87 | - 【设定-画质-全屏幕模式 + 16:9的显示器比例】(推荐) 或 【16:9的窗口模式】(窗口尽量拉大,否则像素识别可能出现误差) 88 | 89 | - 设定-画质-开启光晕效果 90 | 91 | - 设定-画质-开启颜色分级 92 | 93 | - 游戏语言设置为简体中文 94 | 95 | - 以**管理员身份**运行DoroHelper 96 | 97 | - 不要开启windows HDR显示 98 | 99 | ## 步骤: 100 | 101 | 打开NIKKE启动器。点击启动。等右下角腾讯ACE反作弊系统扫完,NIKKE主程序中央SHIFT UP logo出现之后,再切出来点击“DORO!”按钮。如果你看到鼠标开始在左下角连点,那就代表启动成功了。然后就可以悠闲地去泡一杯咖啡,或者刷一会儿手机,等待Doro完成工作了。 102 | 103 | 也可以在游戏处在大厅界面时(有看板娘的页面)切出来点击“DORO!”按钮启动程序。 104 | 105 | 游戏需要更新的时候请更新完再使用Doro。 106 | 107 | ## 其他: 108 | 109 | 如果出现死循环,提高点击间隔可以解决80%的问题。 110 | 111 | 如果你的电脑配置较好的话,可以尝试降低点击间隔。 112 | 113 | 可以尝试设置得和我一样: 114 | 115 | ![image](https://github.com/kyokakawaii/DoroHelper_classic/blob/main/img/setting1.png) 116 | ![image](https://github.com/kyokakawaii/DoroHelper_classic/blob/main/img/setting2.png) 117 | 118 | # 借物表 119 | 120 | -------------------------------------------------------------------------------- /DoroHelper.ahk: -------------------------------------------------------------------------------- 1 | #Requires AutoHotkey >=v2.0 2 | 3 | #Include %A_ScriptDir%\lib\github.ahk 4 | 5 | 6 | CoordMode "Pixel", "Client" 7 | CoordMode "Mouse", "Client" 8 | 9 | 10 | ;操作间隔(单位:毫秒) 11 | sleepTime := 1500 12 | scrRatio := 1.0 13 | 14 | 15 | ;consts 16 | stdScreenW := 3840 17 | stdScreenH := 2160 18 | waitTolerance := 50 19 | colorTolerance := 15 20 | 21 | currentVersion := "v0.1.16.13" 22 | usr := "kyokakawaii" 23 | repo := "DoroHelper_classic" 24 | 25 | 26 | ;utilities 27 | IsSimilarColor(targetColor, color) 28 | { 29 | tr := Format("{:d}", "0x" . substr(targetColor, 3, 2)) 30 | tg := Format("{:d}", "0x" . substr(targetColor, 5, 2)) 31 | tb := Format("{:d}", "0x" . substr(targetColor, 7, 2)) 32 | 33 | pr := Format("{:d}", "0x" . substr(color, 3, 2)) 34 | pg := Format("{:d}", "0x" . substr(color, 5, 2)) 35 | pb := Format("{:d}", "0x" . substr(color, 7, 2)) 36 | 37 | ;MsgBox tr tg tb pr pg pb 38 | 39 | distance := sqrt((tr - pr) ** 2 + (tg - pg) ** 2 + (tb - pb) ** 2) 40 | 41 | if (distance < colorTolerance) 42 | return true 43 | 44 | return false 45 | } 46 | 47 | 48 | ClickOnCheckForUpdate(*) 49 | { 50 | latestObj := Github.latest(usr, repo) 51 | if currentVersion != latestObj.version 52 | { 53 | userResponse := MsgBox( 54 | "DoroHelper怀旧版存在更新版本:`n" 55 | "`nVersion: " latestObj.version 56 | "`nNotes:`n" 57 | . latestObj.change_notes 58 | "`n`n是否下载?",, '36') 59 | 60 | if (userResponse = "Yes") { 61 | try { 62 | Github.Download(latestObj.downloadURLs[1], A_ScriptDir "\DoroDownload") 63 | } 64 | catch as err { 65 | MsgBox "下载失败,请检查网络。" 66 | } 67 | else { 68 | FileMove "DoroDownload.exe", "DoroHelper-" latestObj.version ".exe" 69 | MsgBox "已下载至当前目录。" 70 | ExitApp 71 | } 72 | } 73 | } 74 | else { 75 | MsgBox "当前Doro已是最新版本。" 76 | } 77 | } 78 | 79 | 80 | CheckForUpdate() 81 | { 82 | latestObj := Github.latest(usr, repo) 83 | if currentVersion != latestObj.version 84 | { 85 | userResponse := MsgBox( 86 | "DoroHelper怀旧版存在更新版本:`n" 87 | "`nVersion: " latestObj.version 88 | "`nNotes:`n" 89 | . latestObj.change_notes 90 | "`n`n是否下载?",, '36') 91 | 92 | if (userResponse = "Yes") { 93 | try { 94 | Github.Download(latestObj.downloadURLs[1], A_ScriptDir "\DoroDownload") 95 | } 96 | catch as err { 97 | MsgBox "下载失败,请检查网络。" 98 | } 99 | else { 100 | FileMove "DoroDownload.exe", "DoroHelper-" latestObj.version ".exe" 101 | MsgBox "已下载至当前目录。" 102 | ExitApp 103 | } 104 | } 105 | } 106 | } 107 | 108 | 109 | ;functions 110 | UserClick(sX, sY, k) 111 | { 112 | uX := Round(sX * k) 113 | uY := Round(sY * k) 114 | Send "{Click " uX " " uY "}" 115 | } 116 | 117 | 118 | UserCheckColor(sX, sY, sC, k) 119 | { 120 | loop sX.Length { 121 | uX := Round(sX[A_Index] * k) 122 | uY := Round(sY[A_Index] * k) 123 | uC := PixelGetColor(uX, uY) 124 | if (!IsSimilarColor(uC, sC[A_Index])) 125 | return 0 126 | } 127 | return 1 128 | } 129 | 130 | isAutoOff(sX, sY, k) 131 | { 132 | uX := Round(sX * k) 133 | uY := Round(sY * k) 134 | uC := PixelGetColor(uX, uY) 135 | 136 | r := Format("{:d}", "0x" . substr(uC, 3, 2)) 137 | g := Format("{:d}", "0x" . substr(uC, 5, 2)) 138 | b := Format("{:d}", "0x" . substr(uC, 7, 2)) 139 | 140 | if Abs(r - g) < 10 && Abs(r - b) < 10 && Abs(g - b) < 10 141 | return true 142 | 143 | return false 144 | } 145 | 146 | 147 | autoBurstOn := false 148 | autoAimOn := false 149 | 150 | CheckAutoBattle() 151 | { 152 | global autoBurstOn 153 | global autoAimOn 154 | 155 | if !autoAimOn && UserCheckColor([216], [160], ["0xFFFFFF"], scrRatio) { 156 | if isAutoOff(60, 57, scrRatio) { 157 | UserClick(60, 71, scrRatio) 158 | Sleep sleepTime 159 | } 160 | autoAimOn := true 161 | } 162 | 163 | if !autoBurstOn && UserCheckColor([216], [160], ["0xFFFFFF"], scrRatio) { 164 | if isAutoOff(202, 66, scrRatio) { 165 | Send "{Tab}" 166 | Sleep sleepTime 167 | } 168 | autoBurstOn := true 169 | } 170 | } 171 | 172 | 173 | Login() 174 | { 175 | stdTargetX := 333 176 | stdTargetY := 2041 177 | UserClick(stdTargetX, stdTargetY, scrRatio) 178 | Sleep sleepTime 179 | 180 | stdCkptX := [64] 181 | stdCkptY := [470] 182 | desiredColor := ["0xFAA72C"] 183 | 184 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 185 | UserClick(stdTargetX, stdTargetY, scrRatio) 186 | Sleep sleepTime 187 | 188 | if UserCheckColor([1973, 1969], [1368, 1432], ["0x00ADFB", "0x00ADFB"], scrRatio) { 189 | UserClick(2127, 1400, scrRatio) 190 | Sleep sleepTime 191 | } 192 | 193 | if UserCheckColor([1965, 1871], [1321, 1317], ["0x00A0EB", "0xF7F7F7"], scrRatio) { 194 | UserClick(2191, 1350, scrRatio) 195 | Sleep sleepTime 196 | } 197 | 198 | if UserCheckColor([1720, 2111], [1539, 1598], ["0x00AEFF", "0x00AEFF"], scrRatio) { 199 | UserClick(1905, 1568, scrRatio) 200 | Sleep sleepTime 201 | } 202 | 203 | ;新版下载 204 | if UserCheckColor([1951, 1848], [1328, 1344], ["0x00ADFB", "0xF5F5F3"], scrRatio) { 205 | UserClick(2175, 1392, scrRatio) 206 | Sleep sleepTime 207 | } 208 | 209 | if A_Index > waitTolerance * 50 { 210 | MsgBox "登录失败!" 211 | ExitApp 212 | } 213 | } 214 | } 215 | 216 | 217 | BackToHall() 218 | { 219 | stdTargetX := 333 220 | stdTargetY := 2041 221 | UserClick(stdTargetX, stdTargetY, scrRatio) 222 | Sleep sleepTime 223 | 224 | stdCkptX := [64] 225 | stdCkptY := [470] 226 | desiredColor := ["0xFAA72C"] 227 | 228 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 229 | UserClick(stdTargetX, stdTargetY, scrRatio) 230 | Sleep sleepTime 231 | if A_Index > waitTolerance { 232 | MsgBox "退回大厅失败!" 233 | ExitApp 234 | } 235 | } 236 | } 237 | 238 | 239 | ;============================================================= 240 | ;1: 防御前哨基地奖励 241 | OutpostDefence() 242 | { 243 | Start: 244 | stdTargetX := 1092 245 | stdTargetY := 1795 246 | UserClick(stdTargetX, stdTargetY, scrRatio) 247 | Sleep sleepTime 248 | 249 | 250 | ;standard checkpoint 251 | stdCkptX := [1500, 1847] 252 | stdCkptY := [1816, 1858] 253 | desiredColor := ["0xF8FCFD", "0xF7FCFD"] 254 | 255 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 256 | UserClick(stdTargetX, stdTargetY, scrRatio) 257 | Sleep sleepTime 258 | if A_Index > waitTolerance { 259 | MsgBox "进入防御前哨失败!" 260 | ExitApp 261 | } 262 | 263 | if A_Index > 3 { 264 | BackToHall() 265 | goto Start 266 | } 267 | } 268 | 269 | ;一举歼灭 270 | stdTargetX := 1686 271 | stdTargetY := 1846 272 | UserClick(stdTargetX, stdTargetY, scrRatio) 273 | Sleep sleepTime 274 | 275 | stdCkptX := [1500, 1847] 276 | stdCkptY := [1816, 1858] 277 | desiredColor := ["0xF8FCFD", "0xF7FCFD"] 278 | 279 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 280 | UserClick(stdTargetX, stdTargetY, scrRatio) 281 | Sleep sleepTime 282 | if A_Index > waitTolerance { 283 | MsgBox "进入一举歼灭失败!" 284 | ExitApp 285 | } 286 | 287 | if A_Index > 10 { 288 | BackToHall() 289 | goto Start 290 | } 291 | } 292 | 293 | ;如有免费次数则扫荡,否则跳过 294 | stdCkptX := [1933] 295 | stdCkptY := [1648] 296 | desiredColor := ["0xE9ECF0"] 297 | 298 | if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 299 | stdTargetX := 2093 300 | stdTargetY := 1651 301 | UserClick(stdTargetX, stdTargetY, scrRatio) 302 | Sleep sleepTime 303 | ;UserClick(stdTargetX, stdTargetY, scrRatio) 304 | ;Sleep sleepTime 305 | 306 | stdCkptX := [1933] 307 | stdCkptY := [1648] 308 | desiredColor := ["0x11ADF5"] 309 | 310 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 311 | UserClick(stdTargetX, stdTargetY, scrRatio) 312 | Sleep sleepTime 313 | 314 | 315 | if UserCheckColor([2088], [1327], ["0x00A0EB"], scrRatio) { 316 | UserClick(2202, 1342, scrRatio) 317 | } 318 | 319 | if A_Index > 10 { 320 | BackToHall() 321 | goto Start 322 | } 323 | } 324 | 325 | ;如果升级,把框点掉 326 | stdCkptX := [2356] 327 | stdCkptY := [1870] 328 | desiredColor := ["0x0EAFF4"] 329 | stdTargetX := 2156 330 | stdTargetY := 1846 331 | 332 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 333 | UserClick(stdTargetX, stdTargetY, scrRatio) 334 | Sleep sleepTime 335 | 336 | 337 | if UserCheckColor([2088], [1327], ["0x00A0EB"], scrRatio) { 338 | UserClick(2202, 1342, scrRatio) 339 | } 340 | 341 | if A_Index > 10 { 342 | BackToHall() 343 | goto Start 344 | } 345 | } 346 | } 347 | else { 348 | stdCkptX := [2356] 349 | stdCkptY := [1870] 350 | desiredColor := ["0x0EAFF4"] 351 | stdTargetX := 2156 352 | stdTargetY := 1846 353 | 354 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 355 | UserClick(stdTargetX, stdTargetY, scrRatio) 356 | Sleep sleepTime 357 | 358 | 359 | if UserCheckColor([2088], [1327], ["0x00A0EB"], scrRatio) { 360 | UserClick(2202, 1342, scrRatio) 361 | } 362 | 363 | if A_Index > 10 { 364 | BackToHall() 365 | goto Start 366 | } 367 | } 368 | } 369 | 370 | 371 | ;获得奖励 372 | stdTargetX := 2156 373 | stdTargetY := 1846 374 | UserClick(stdTargetX, stdTargetY, scrRatio) 375 | Sleep sleepTime 376 | ;UserClick(stdTargetX, stdTargetY, scrRatio) 377 | ;Sleep sleepTime // 2 378 | ;多点一下,以防升级 379 | ;UserClick(stdTargetX, stdTargetY, scrRatio) 380 | ;Sleep sleepTime // 2 381 | 382 | stdCkptX := [64] 383 | stdCkptY := [470] 384 | desiredColor := ["0xFAA72C"] 385 | 386 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 387 | UserClick(stdTargetX, stdTargetY, scrRatio) 388 | Sleep sleepTime 389 | if UserCheckColor([2088], [1327], ["0x00A0EB"], scrRatio) { 390 | UserClick(2202, 1342, scrRatio) 391 | } 392 | if A_Index > waitTolerance { 393 | MsgBox "前哨基地防御异常!" 394 | ExitApp 395 | } 396 | if A_Index > 10 { 397 | BackToHall() 398 | goto Start 399 | } 400 | } 401 | } 402 | 403 | 404 | ;============================================================= 405 | ;2: 付费商店每日每周免费钻 406 | CashShop() 407 | { 408 | ;进入商店 409 | stdTargetX := 1163 410 | stdTargetY := 1354 411 | UserClick(stdTargetX, stdTargetY, scrRatio) 412 | Sleep sleepTime 413 | 414 | stdCkptX := [158, 199] 415 | stdCkptY := [525, 439] 416 | desiredColor := ["0x0DC2F4", "0x3B3E41"] 417 | 418 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 419 | if UserCheckColor([2047], [1677], ["0x00A0EB"], scrRatio) or UserCheckColor([2047], [1677], ["0x9A9B9A"], scrRatio) { 420 | UserClick(1789, 1387, scrRatio) 421 | Sleep sleepTime 422 | UserClick(1789, 1387, scrRatio) 423 | Sleep sleepTime 424 | UserClick(2144, 1656, scrRatio) 425 | Sleep sleepTime 426 | while UserCheckColor([2047], [1677], ["0x00A0EB"], scrRatio) { 427 | UserClick(2144, 1656, scrRatio) 428 | Sleep sleepTime 429 | } 430 | break 431 | } 432 | 433 | UserClick(stdTargetX, stdTargetY, scrRatio) 434 | Sleep sleepTime 435 | if UserCheckColor([2088], [1327], ["0x00A0EB"], scrRatio) { 436 | UserClick(2202, 1342, scrRatio) 437 | } 438 | if A_Index > waitTolerance { 439 | MsgBox "进入付费商店失败!" 440 | ExitApp 441 | } 442 | } 443 | 444 | Sleep sleepTime 445 | if UserCheckColor([2047], [1677], ["0x00A0EB"], scrRatio) or UserCheckColor([2047], [1677], ["0x9A9B9A"], scrRatio) { 446 | UserClick(1789, 1387, scrRatio) 447 | Sleep sleepTime 448 | UserClick(1789, 1387, scrRatio) 449 | Sleep sleepTime 450 | UserClick(2144, 1656, scrRatio) 451 | Sleep sleepTime 452 | while UserCheckColor([2047], [1677], ["0x00A0EB"], scrRatio) { 453 | UserClick(2144, 1656, scrRatio) 454 | Sleep sleepTime 455 | } 456 | } 457 | 458 | delta := false 459 | 460 | stdCkptX := [52] 461 | stdCkptY := [464] 462 | desiredColor := ["0xF7FCFD"] 463 | 464 | if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) 465 | delta := true 466 | 467 | 468 | stdTargetX := 256 469 | if delta 470 | stdTargetX := 432 471 | stdTargetY := 486 472 | UserClick(stdTargetX, stdTargetY, scrRatio) 473 | Sleep sleepTime 474 | 475 | stdCkptX := [194] 476 | if delta 477 | stdCkptX := [373] 478 | stdCkptY := [436] 479 | desiredColor := ["0x0FC7F5"] 480 | if delta 481 | desiredColor := ["0x0BC7F4"] 482 | 483 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 484 | UserClick(stdTargetX, stdTargetY, scrRatio) 485 | Sleep sleepTime // 2 486 | if A_Index > waitTolerance { 487 | MsgBox "进入礼包页面失败!" 488 | ExitApp 489 | } 490 | } 491 | 492 | stdCkptX := [514] 493 | stdCkptY := [1018] 494 | desiredColor := ["0xF2F8FC"] 495 | 496 | if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 497 | stdTargetX := stdTargetX - 172 498 | UserClick(stdTargetX, stdTargetY, scrRatio) 499 | Sleep sleepTime // 2 500 | UserClick(stdTargetX, stdTargetY, scrRatio) 501 | Sleep sleepTime // 2 502 | UserClick(stdTargetX, stdTargetY, scrRatio) 503 | Sleep sleepTime // 2 504 | UserClick(stdTargetX, stdTargetY, scrRatio) 505 | Sleep sleepTime // 2 506 | } 507 | 508 | del := 336 509 | 510 | stdCkptX := [1311] 511 | stdCkptY := [612] 512 | desiredColor := ["0xA0A0AC"] 513 | 514 | if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) 515 | del := 0 516 | 517 | ;每日 518 | stdTargetX := 545 - del 519 | stdTargetY := 610 520 | UserClick(stdTargetX, stdTargetY, scrRatio) 521 | Sleep sleepTime 522 | 523 | stdCkptX := [431 - del] 524 | stdCkptY := [594] 525 | desiredColor := ["0x0EC7F5"] 526 | 527 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 528 | UserClick(stdTargetX, stdTargetY, scrRatio) 529 | Sleep sleepTime // 2 530 | if A_Index > waitTolerance { 531 | MsgBox "进入每日礼包页面失败!" 532 | ExitApp 533 | } 534 | } 535 | 536 | stdTargetX := 212 537 | stdTargetY := 1095 538 | UserClick(stdTargetX, stdTargetY, scrRatio) 539 | Sleep sleepTime // 2 540 | UserClick(stdTargetX, stdTargetY, scrRatio) 541 | Sleep sleepTime // 2 542 | UserClick(stdTargetX, stdTargetY, scrRatio) 543 | Sleep sleepTime // 2 544 | 545 | ;每周 546 | stdTargetX := 878 - del 547 | stdTargetY := 612 548 | UserClick(stdTargetX, stdTargetY, scrRatio) 549 | Sleep sleepTime 550 | 551 | stdCkptX := [769 - del] 552 | stdCkptY := [600] 553 | desiredColor := ["0x0CC8F4"] 554 | 555 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 556 | UserClick(stdTargetX, stdTargetY, scrRatio) 557 | Sleep sleepTime // 2 558 | if A_Index > waitTolerance { 559 | MsgBox "进入每周礼包页面失败!" 560 | ExitApp 561 | } 562 | } 563 | 564 | stdTargetX := 212 565 | stdTargetY := 1095 566 | UserClick(stdTargetX, stdTargetY, scrRatio) 567 | Sleep sleepTime // 2 568 | UserClick(stdTargetX, stdTargetY, scrRatio) 569 | Sleep sleepTime // 2 570 | UserClick(stdTargetX, stdTargetY, scrRatio) 571 | Sleep sleepTime // 2 572 | 573 | ;每月 574 | stdTargetX := 1211 - del 575 | stdTargetY := 612 576 | UserClick(stdTargetX, stdTargetY, scrRatio) 577 | Sleep sleepTime 578 | 579 | stdCkptX := [1114 - del] 580 | stdCkptY := [600] 581 | desiredColor := ["0x0CC8F4"] 582 | 583 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 584 | UserClick(stdTargetX, stdTargetY, scrRatio) 585 | Sleep sleepTime // 2 586 | if A_Index > waitTolerance { 587 | MsgBox "进入每月礼包页面失败!" 588 | ExitApp 589 | } 590 | } 591 | 592 | stdTargetX := 212 593 | stdTargetY := 1095 594 | UserClick(stdTargetX, stdTargetY, scrRatio) 595 | Sleep sleepTime // 2 596 | UserClick(stdTargetX, stdTargetY, scrRatio) 597 | Sleep sleepTime // 2 598 | UserClick(stdTargetX, stdTargetY, scrRatio) 599 | Sleep sleepTime // 2 600 | 601 | ;回到大厅 602 | stdTargetX := 333 603 | stdTargetY := 2041 604 | UserClick(stdTargetX, stdTargetY, scrRatio) 605 | Sleep sleepTime 606 | 607 | stdCkptX := [64] 608 | stdCkptY := [470] 609 | desiredColor := ["0xFAA72C"] 610 | 611 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 612 | UserClick(stdTargetX, stdTargetY, scrRatio) 613 | Sleep sleepTime // 2 614 | if A_Index > waitTolerance { 615 | MsgBox "退出付费商店失败!" 616 | ExitApp 617 | } 618 | } 619 | } 620 | 621 | 622 | ;============================================================= 623 | ;3: 免费商店 624 | BuyThisBook(coor, k) 625 | { 626 | uX := Round(coor[1] * k) 627 | uY := Round(coor[2] * k) 628 | 629 | uC := PixelGetColor(uX, uY) 630 | 631 | R := Format("{:d}", "0x" . substr(uC, 3, 2)) 632 | G := Format("{:d}", "0x" . substr(uC, 5, 2)) 633 | B := Format("{:d}", "0x" . substr(uC, 7, 2)) 634 | 635 | if B > G and B > R { 636 | return isCheckedBook[2] 637 | } 638 | 639 | if G > R and G > B { 640 | return isCheckedBook[3] 641 | } 642 | 643 | if R > G and G > B and G > Format("{:d}", "0x50") { 644 | return isCheckedBook[5] 645 | } 646 | 647 | if R > B and B > G and B > Format("{:d}", "0x50") { 648 | return isCheckedBook[4] 649 | } 650 | 651 | return isCheckedBook[1] 652 | } 653 | 654 | FreeShop(numOfBook) 655 | { 656 | ;进入商店 657 | stdTargetX := 1193 658 | stdTargetY := 1487 659 | UserClick(stdTargetX, stdTargetY, scrRatio) 660 | Sleep sleepTime 661 | 662 | stdCkptX := [118] 663 | stdCkptY := [908] 664 | desiredColor := ["0xF99217"] 665 | 666 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 667 | UserClick(stdTargetX, stdTargetY, scrRatio) 668 | Sleep sleepTime 669 | if A_Index > waitTolerance { 670 | MsgBox "进入普通商店失败!" 671 | ExitApp 672 | } 673 | } 674 | 675 | ;如果今天没白嫖过 676 | stdCkptX := [349] 677 | stdCkptY := [1305] 678 | desiredColor := ["0x127CD7"] 679 | 680 | if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 681 | ;白嫖第一次 682 | stdTargetX := 383 683 | stdTargetY := 1480 684 | UserClick(stdTargetX, stdTargetY, scrRatio) 685 | Sleep sleepTime 686 | 687 | stdCkptX := [2063] 688 | stdCkptY := [1821] 689 | desiredColor := ["0x079FE4"] 690 | 691 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 692 | UserClick(stdTargetX, stdTargetY, scrRatio) 693 | Sleep sleepTime // 2 694 | if A_Index > waitTolerance { 695 | MsgBox "普通商店白嫖异常!" 696 | ExitApp 697 | } 698 | } 699 | 700 | stdTargetX := 2100 701 | stdTargetY := 1821 702 | UserClick(stdTargetX, stdTargetY, scrRatio) 703 | Sleep sleepTime 704 | 705 | stdCkptX := [118] 706 | stdCkptY := [908] 707 | desiredColor := ["0xF99217"] 708 | 709 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 710 | UserClick(stdTargetX, stdTargetY, scrRatio) 711 | Sleep sleepTime // 2 712 | if A_Index > waitTolerance { 713 | MsgBox "普通商店白嫖异常!" 714 | ExitApp 715 | } 716 | } 717 | 718 | ;如果还有免费次数,则白嫖第二次 719 | stdCkptX := [697] 720 | stdCkptY := [949] 721 | desiredColor := ["0xFB5C24"] 722 | 723 | if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 724 | ;刷新 725 | stdTargetX := 476 726 | stdTargetY := 981 727 | UserClick(stdTargetX, stdTargetY, scrRatio) 728 | Sleep sleepTime 729 | 730 | stdCkptX := [2133] 731 | stdCkptY := [1345] 732 | desiredColor := ["0x00A0EB"] 733 | 734 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 735 | UserClick(stdTargetX, stdTargetY, scrRatio) 736 | Sleep sleepTime // 2 737 | if A_Index > waitTolerance { 738 | MsgBox "普通商店刷新异常!" 739 | ExitApp 740 | } 741 | } 742 | 743 | stdTargetX := 2221 744 | stdTargetY := 1351 745 | UserClick(stdTargetX, stdTargetY, scrRatio) 746 | Sleep sleepTime 747 | 748 | stdCkptX := [118] 749 | stdCkptY := [908] 750 | desiredColor := ["0xF99217"] 751 | stdTargetX := 588 752 | stdTargetY := 1803 753 | 754 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 755 | UserClick(stdTargetX, stdTargetY, scrRatio) 756 | Sleep sleepTime // 2 757 | if A_Index > waitTolerance { 758 | MsgBox "普通商店刷新异常!" 759 | ExitApp 760 | } 761 | } 762 | 763 | ;第二次白嫖 764 | stdTargetX := 383 765 | stdTargetY := 1480 766 | UserClick(stdTargetX, stdTargetY, scrRatio) 767 | Sleep sleepTime 768 | 769 | stdCkptX := [2063] 770 | stdCkptY := [1821] 771 | desiredColor := ["0x079FE4"] 772 | 773 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 774 | UserClick(stdTargetX, stdTargetY, scrRatio) 775 | Sleep sleepTime // 2 776 | if A_Index > waitTolerance { 777 | MsgBox "普通商店白嫖异常!" 778 | ExitApp 779 | } 780 | } 781 | 782 | stdTargetX := 2100 783 | stdTargetY := 1821 784 | UserClick(stdTargetX, stdTargetY, scrRatio) 785 | Sleep sleepTime 786 | 787 | stdCkptX := [118] 788 | stdCkptY := [908] 789 | desiredColor := ["0xF99217"] 790 | 791 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 792 | UserClick(stdTargetX, stdTargetY, scrRatio) 793 | Sleep sleepTime // 2 794 | if A_Index > waitTolerance { 795 | MsgBox "普通商店白嫖异常!" 796 | ExitApp 797 | } 798 | } 799 | } 800 | 801 | } 802 | 803 | 804 | ;废铁商店检查是否已经购买 805 | stdTargetX := 137 806 | stdTargetY := 1737 807 | UserClick(stdTargetX, stdTargetY, scrRatio) 808 | Sleep sleepTime 809 | 810 | stdCkptX := [137] 811 | stdCkptY := [1650] 812 | desiredColor := ["0xFB931A"] 813 | 814 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 815 | UserClick(stdTargetX, stdTargetY, scrRatio) 816 | Sleep sleepTime // 2 817 | if A_Index > waitTolerance { 818 | MsgBox "废铁商店进入异常!" 819 | ExitApp 820 | } 821 | } 822 | 823 | if sleepTime < 1500 824 | Sleep 1000 825 | 826 | global isBoughtTrash 827 | 828 | stdCkptX := [1281] 829 | stdCkptY := [1307] 830 | desiredColor := ["0x137CD5"] 831 | 832 | if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 833 | isBoughtTrash := 0 834 | } 835 | else { 836 | isBoughtTrash := 1 837 | } 838 | 839 | 840 | ;如果需要,则购买竞技场商店前三本书 841 | if numOfBook >= 1 or isCheckedCompanyWeapon { 842 | stdTargetX := 134 843 | stdTargetY := 1403 844 | UserClick(stdTargetX, stdTargetY, scrRatio) 845 | Sleep sleepTime 846 | 847 | stdCkptX := [134] 848 | stdCkptY := [1316] 849 | desiredColor := ["0xFA9318"] 850 | 851 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 852 | UserClick(stdTargetX, stdTargetY, scrRatio) 853 | Sleep sleepTime // 2 854 | if A_Index > waitTolerance { 855 | MsgBox "竞技场商店进入异常!" 856 | ExitApp 857 | } 858 | } 859 | 860 | if sleepTime < 1500 861 | Sleep 500 862 | } 863 | 864 | if numOfBook >= 1 { 865 | ;购买第一本书 866 | ;如果今天没买过 867 | stdCkptX := [349] 868 | stdCkptY := [1305] 869 | desiredColor := ["0x127CD7"] 870 | 871 | ;如果今天没买过 872 | if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) and BuyThisBook([378, 1210], scrRatio) { 873 | stdTargetX := 384 874 | stdTargetY := 1486 875 | UserClick(stdTargetX, stdTargetY, scrRatio) 876 | Sleep sleepTime 877 | 878 | stdCkptX := [2067] 879 | stdCkptY := [1770] 880 | desiredColor := ["0x07A0E4"] 881 | 882 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 883 | UserClick(stdTargetX, stdTargetY, scrRatio) 884 | Sleep sleepTime // 2 885 | if A_Index > waitTolerance { 886 | MsgBox "第一本书购买异常!" 887 | ExitApp 888 | } 889 | } 890 | 891 | stdTargetX := 2067 892 | stdTargetY := 1770 893 | UserClick(stdTargetX, stdTargetY, scrRatio) 894 | Sleep sleepTime 895 | 896 | stdCkptX := [134] 897 | stdCkptY := [1316] 898 | desiredColor := ["0xFA9318"] 899 | 900 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 901 | UserClick(stdTargetX, stdTargetY, scrRatio) 902 | Sleep sleepTime // 2 903 | if A_Index >= 2 { 904 | stdTargetX := 2067 905 | stdTargetY := 1970 906 | } 907 | if A_Index > waitTolerance { 908 | MsgBox "第一本书购买异常!" 909 | ExitApp 910 | } 911 | } 912 | } 913 | } 914 | 915 | if numOfBook >= 2 { 916 | ;购买第二本书 917 | ;如果今天没买过 918 | stdCkptX := [673] 919 | stdCkptY := [1305] 920 | desiredColor := ["0x137CD5"] 921 | 922 | if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) and BuyThisBook([702, 1210], scrRatio) { 923 | stdTargetX := 702 924 | stdTargetY := 1484 925 | UserClick(stdTargetX, stdTargetY, scrRatio) 926 | Sleep sleepTime 927 | 928 | stdCkptX := [2067] 929 | stdCkptY := [1770] 930 | desiredColor := ["0x07A0E4"] 931 | 932 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 933 | UserClick(stdTargetX, stdTargetY, scrRatio) 934 | Sleep sleepTime // 2 935 | if A_Index > waitTolerance { 936 | MsgBox "第二本书购买异常!" 937 | ExitApp 938 | } 939 | } 940 | 941 | stdTargetX := 2067 942 | stdTargetY := 1770 943 | UserClick(stdTargetX, stdTargetY, scrRatio) 944 | Sleep sleepTime 945 | 946 | stdCkptX := [134] 947 | stdCkptY := [1316] 948 | desiredColor := ["0xFA9318"] 949 | 950 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 951 | UserClick(stdTargetX, stdTargetY, scrRatio) 952 | Sleep sleepTime // 2 953 | if A_Index >= 2 { 954 | stdTargetX := 2067 955 | stdTargetY := 1970 956 | } 957 | if A_Index > waitTolerance { 958 | MsgBox "第二本书购买异常!" 959 | ExitApp 960 | } 961 | } 962 | } 963 | } 964 | 965 | if numOfBook >= 3 { 966 | ;购买第三本书 967 | ;如果今天没买过 968 | stdCkptX := [997] 969 | stdCkptY := [1304] 970 | desiredColor := ["0x147BD4"] 971 | 972 | if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) and BuyThisBook([1025, 1210], scrRatio) { 973 | stdTargetX := 1030 974 | stdTargetY := 1485 975 | UserClick(stdTargetX, stdTargetY, scrRatio) 976 | Sleep sleepTime 977 | 978 | stdCkptX := [2067] 979 | stdCkptY := [1770] 980 | desiredColor := ["0x07A0E4"] 981 | 982 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 983 | UserClick(stdTargetX, stdTargetY, scrRatio) 984 | Sleep sleepTime // 2 985 | if A_Index > waitTolerance { 986 | MsgBox "第三本书购买异常!" 987 | ExitApp 988 | } 989 | } 990 | 991 | stdTargetX := 2067 992 | stdTargetY := 1770 993 | UserClick(stdTargetX, stdTargetY, scrRatio) 994 | Sleep sleepTime 995 | 996 | stdCkptX := [134] 997 | stdCkptY := [1316] 998 | desiredColor := ["0xFA9318"] 999 | 1000 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1001 | UserClick(stdTargetX, stdTargetY, scrRatio) 1002 | Sleep sleepTime // 2 1003 | if A_Index >= 2 { 1004 | stdTargetX := 2067 1005 | stdTargetY := 1970 1006 | } 1007 | if A_Index > waitTolerance { 1008 | MsgBox "第三本书购买异常!" 1009 | ExitApp 1010 | } 1011 | } 1012 | } 1013 | } 1014 | 1015 | if isCheckedCompanyWeapon { 1016 | stdCkptX := [2011] 1017 | stdCkptY := [1213] 1018 | desiredColor := ["0xD65E46"] 1019 | 1020 | if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1021 | stdTargetX := 2017 1022 | stdTargetY := 1485 1023 | UserClick(stdTargetX, stdTargetY, scrRatio) 1024 | Sleep sleepTime 1025 | 1026 | stdCkptX := [2067] 1027 | stdCkptY := [1770] 1028 | desiredColor := ["0x07A0E4"] 1029 | 1030 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1031 | UserClick(stdTargetX, stdTargetY, scrRatio) 1032 | Sleep sleepTime // 2 1033 | if A_Index > waitTolerance { 1034 | MsgBox "公司武器熔炉购买异常!" 1035 | ExitApp 1036 | } 1037 | } 1038 | 1039 | stdTargetX := 2067 1040 | stdTargetY := 1770 1041 | UserClick(stdTargetX, stdTargetY, scrRatio) 1042 | Sleep sleepTime 1043 | 1044 | stdCkptX := [134] 1045 | stdCkptY := [1316] 1046 | desiredColor := ["0xFA9318"] 1047 | 1048 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1049 | UserClick(stdTargetX, stdTargetY, scrRatio) 1050 | Sleep sleepTime // 2 1051 | if A_Index >= 2 { 1052 | stdTargetX := 2067 1053 | stdTargetY := 1970 1054 | } 1055 | if A_Index > waitTolerance { 1056 | MsgBox "公司武器熔炉购买异常!" 1057 | ExitApp 1058 | } 1059 | } 1060 | } 1061 | } 1062 | 1063 | stdTargetX := 333 1064 | stdTargetY := 2041 1065 | UserClick(stdTargetX, stdTargetY, scrRatio) 1066 | Sleep sleepTime 1067 | 1068 | stdCkptX := [64] 1069 | stdCkptY := [470] 1070 | desiredColor := ["0xFAA72C"] 1071 | 1072 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1073 | UserClick(stdTargetX, stdTargetY, scrRatio) 1074 | Sleep sleepTime // 2 1075 | if A_Index > waitTolerance { 1076 | MsgBox "退出免费商店失败!" 1077 | ExitApp 1078 | } 1079 | } 1080 | } 1081 | 1082 | 1083 | ;============================================================= 1084 | ;4: 派遣 1085 | Expedition() 1086 | { 1087 | ;进入前哨基地 1088 | stdTargetX := 1169 1089 | stdTargetY := 1663 1090 | UserClick(stdTargetX, stdTargetY, scrRatio) 1091 | Sleep sleepTime 1092 | 1093 | stdCkptX := [64] 1094 | stdCkptY := [470] 1095 | desiredColor := ["0xFAA72C"] 1096 | 1097 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1098 | UserClick(stdTargetX, stdTargetY, scrRatio) 1099 | Sleep sleepTime 1100 | if A_Index > waitTolerance { 1101 | MsgBox "进入前哨基地失败!" 1102 | ExitApp 1103 | } 1104 | } 1105 | 1106 | stdCkptX := [1907, 1963, 1838, 2034] 1107 | stdCkptY := [1817, 1852, 1763, 1877] 1108 | desiredColor := ["0xFFFFFF", "0xFFFFFF", "0x0B1219", "0x0B1219"] 1109 | 1110 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1111 | Sleep sleepTime 1112 | if A_Index > waitTolerance { 1113 | MsgBox "进入前哨基地失败!" 1114 | ExitApp 1115 | } 1116 | } 1117 | 1118 | ;派遣公告栏 1119 | ;收菜 1120 | stdTargetX := 2002 1121 | stdTargetY := 2046 1122 | UserClick(stdTargetX, stdTargetY, scrRatio) 1123 | Sleep sleepTime 1124 | 1125 | stdCkptX := [2113, 2119, 2387] 1126 | stdCkptY := [372, 399, 384] 1127 | desiredColor := ["0x404240", "0x404240", "0x404240"] 1128 | 1129 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1130 | UserClick(stdTargetX, stdTargetY, scrRatio) 1131 | Sleep sleepTime 1132 | if A_Index > waitTolerance { 1133 | MsgBox "进入派遣失败!" 1134 | ExitApp 1135 | } 1136 | } 1137 | 1138 | stdTargetX := 2268 1139 | stdTargetY := 1814 1140 | UserClick(stdTargetX, stdTargetY, scrRatio) 1141 | Sleep sleepTime // 2 1142 | UserClick(stdTargetX, stdTargetY, scrRatio) 1143 | Sleep sleepTime 1144 | UserClick(stdTargetX, stdTargetY, scrRatio) 1145 | Sleep sleepTime 1146 | UserClick(stdTargetX, stdTargetY, scrRatio) 1147 | Sleep sleepTime 1148 | 1149 | Sleep 3000 1150 | 1151 | ;全部派遣 1152 | stdCkptX := [1869, 1977] 1153 | stdCkptY := [1777, 1847] 1154 | desiredColor := ["0xCFCFCF", "0xCFCFCF"] 1155 | 1156 | ;如果今天没派遣过 1157 | if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1158 | stdTargetX := 1930 1159 | stdTargetY := 1813 1160 | UserClick(stdTargetX, stdTargetY, scrRatio) 1161 | Sleep sleepTime 1162 | 1163 | stdCkptX := [2199, 2055] 1164 | stdCkptY := [1796, 1853] 1165 | desiredColor := ["0x00ADFF", "0x00ADFF"] 1166 | 1167 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1168 | UserClick(stdTargetX, stdTargetY, scrRatio) 1169 | Sleep sleepTime 1170 | if A_Index > waitTolerance { 1171 | MsgBox "全部派遣失败!" 1172 | ExitApp 1173 | } 1174 | 1175 | if UserCheckColor([1779], [1778], ["0xCFCFCF"], scrRatio) 1176 | break 1177 | } 1178 | 1179 | stdTargetX := 2073 1180 | stdTargetY := 1818 1181 | UserClick(stdTargetX, stdTargetY, scrRatio) 1182 | Sleep sleepTime 1183 | 1184 | stdCkptX := [2199, 2055] 1185 | stdCkptY := [1796, 1853] 1186 | desiredColor := ["0x00ADFF", "0x00ADFF"] 1187 | 1188 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1189 | UserClick(stdTargetX, stdTargetY, scrRatio) 1190 | Sleep sleepTime 1191 | if A_Index > waitTolerance { 1192 | MsgBox "全部派遣失败!" 1193 | ExitApp 1194 | } 1195 | } 1196 | } 1197 | 1198 | ;回到大厅 1199 | stdTargetX := 333 1200 | stdTargetY := 2041 1201 | UserClick(stdTargetX, stdTargetY, scrRatio) 1202 | Sleep sleepTime 1203 | 1204 | stdCkptX := [64] 1205 | stdCkptY := [470] 1206 | desiredColor := ["0xFAA72C"] 1207 | 1208 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1209 | UserClick(stdTargetX, stdTargetY, scrRatio) 1210 | Sleep sleepTime 1211 | if A_Index > waitTolerance { 1212 | MsgBox "退出前哨基地失败!" 1213 | ExitApp 1214 | } 1215 | } 1216 | } 1217 | 1218 | 1219 | ;============================================================= 1220 | ;5: 好友点数收取 1221 | FriendPoint() 1222 | { 1223 | stdTargetX := 3729 1224 | stdTargetY := 553 1225 | UserClick(stdTargetX, stdTargetY, scrRatio) 1226 | Sleep sleepTime 1227 | 1228 | stdCkptX := [64] 1229 | stdCkptY := [470] 1230 | desiredColor := ["0xFAA72C"] 1231 | 1232 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1233 | UserClick(stdTargetX, stdTargetY, scrRatio) 1234 | Sleep sleepTime 1235 | if A_Index > waitTolerance { 1236 | MsgBox "进入好友界面失败!" 1237 | ExitApp 1238 | } 1239 | } 1240 | 1241 | stdCkptX := [2104, 2197] 1242 | stdCkptY := [1825, 1838] 1243 | desiredColor := ["0x0CAFF4", "0xF7FDFE"] 1244 | stdTargetX := 2276 1245 | stdTargetY := 1837 1246 | 1247 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) && !UserCheckColor([2104, 2054], [1825, 1876], ["0x8B8788", "0x8B8788"], scrRatio) { 1248 | Sleep sleepTime 1249 | if A_Index > waitTolerance { 1250 | MsgBox "进入好友界面失败!" 1251 | ExitApp 1252 | } 1253 | } 1254 | 1255 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1256 | UserClick(stdTargetX, stdTargetY, scrRatio) 1257 | Sleep sleepTime 1258 | if A_Index > waitTolerance { 1259 | MsgBox "赠送好友点数失败" 1260 | ExitApp 1261 | } 1262 | } 1263 | 1264 | stdTargetX := 333 1265 | stdTargetY := 2041 1266 | UserClick(stdTargetX, stdTargetY, scrRatio) 1267 | Sleep sleepTime 1268 | 1269 | stdCkptX := [64] 1270 | stdCkptY := [470] 1271 | desiredColor := ["0xFAA72C"] 1272 | 1273 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1274 | UserClick(stdTargetX, stdTargetY, scrRatio) 1275 | Sleep sleepTime 1276 | if A_Index > waitTolerance { 1277 | MsgBox "退出好友界面失败!" 1278 | ExitApp 1279 | } 1280 | } 1281 | } 1282 | 1283 | 1284 | ;============================================================= 1285 | ;5.1: 邮箱收取 1286 | Mail() 1287 | { 1288 | stdTargetX := 3667 1289 | stdTargetY := 81 1290 | UserClick(stdTargetX, stdTargetY, scrRatio) 1291 | Sleep sleepTime 1292 | 1293 | stdCkptX := [64] 1294 | stdCkptY := [470] 1295 | desiredColor := ["0xFAA72C"] 1296 | 1297 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1298 | UserClick(stdTargetX, stdTargetY, scrRatio) ;检测大厅点邮箱 1299 | Sleep sleepTime 1300 | if A_Index > waitTolerance { 1301 | MsgBox "进入邮箱失败1!" 1302 | ExitApp 1303 | } 1304 | } 1305 | 1306 | stdCkptX := [2344] 1307 | stdCkptY := [456] 1308 | desiredColor := ["0x2B4160"] 1309 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1310 | Sleep sleepTime 1311 | if A_Index > waitTolerance { 1312 | MsgBox "进入邮箱失败2!" 1313 | ExitApp 1314 | } 1315 | } 1316 | 1317 | stdTargetX := 2067 1318 | stdTargetY := 1830 1319 | UserClick(stdTargetX, stdTargetY, scrRatio) 1320 | Sleep sleepTime 1321 | UserClick(stdTargetX, stdTargetY, scrRatio) 1322 | Sleep sleepTime 1323 | UserClick(stdTargetX, stdTargetY, scrRatio) 1324 | Sleep sleepTime 1325 | 1326 | stdCkptX := [64] 1327 | stdCkptY := [470] 1328 | desiredColor := ["0xFAA72C"] 1329 | stdTargetX := 2394 1330 | stdTargetY := 291 1331 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1332 | UserClick(stdTargetX, stdTargetY, scrRatio) ;确认领取+返回直到回到大厅 1333 | Sleep sleepTime 1334 | if A_Index > waitTolerance { 1335 | MsgBox "退出邮箱失败!" 1336 | ExitApp 1337 | } 1338 | } 1339 | } 1340 | 1341 | ;============================================================= 1342 | ;6: 模拟室5C 1343 | checkOverClockRefresh() 1344 | { 1345 | stdTargetX := 1914 1346 | stdTargetY := 1271 1347 | stdCkptX := [2020, 1814] 1348 | stdCkptY := [1257, 1299] 1349 | desiredColor := ["0x9D2925", "0x9D2A25"] 1350 | 1351 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1352 | UserClick(stdTargetX, stdTargetY, scrRatio) 1353 | Sleep sleepTime 1354 | } 1355 | } 1356 | 1357 | 1358 | SimulationRoom() 1359 | { 1360 | stdTargetX := 2689 1361 | stdTargetY := 1463 1362 | UserClick(stdTargetX, stdTargetY, scrRatio) 1363 | Sleep sleepTime 1364 | 1365 | stdCkptX := [64] 1366 | stdCkptY := [470] 1367 | desiredColor := ["0xFAA72C"] 1368 | 1369 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1370 | UserClick(stdTargetX, stdTargetY, scrRatio) 1371 | Sleep sleepTime // 2 1372 | if A_Index > waitTolerance { 1373 | MsgBox "进入方舟失败!" 1374 | ExitApp 1375 | } 1376 | } 1377 | 1378 | stdCkptX := [1607] 1379 | stdCkptY := [283] 1380 | desiredColor := ["0x01D4F6"] 1381 | 1382 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1383 | Sleep sleepTime 1384 | if A_Index > waitTolerance { 1385 | MsgBox "进入方舟失败!" 1386 | ExitApp 1387 | } 1388 | } 1389 | 1390 | ;进入模拟室 1391 | stdTargetX := 1547 1392 | stdTargetY := 1138 1393 | UserClick(stdTargetX, stdTargetY, scrRatio) 1394 | Sleep sleepTime 1395 | 1396 | stdCkptX := [1764, 2024, 222] 1397 | stdCkptY := [1087, 1094, 889] 1398 | desiredColor := ["0xF8FCFD", "0xF8FCFD", "0x000000"] 1399 | 1400 | global isOverclockRefreshed 1401 | 1402 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1403 | UserClick(stdTargetX, stdTargetY, scrRatio) 1404 | Sleep sleepTime 1405 | ;TODO查看是否刷新超频 1406 | checkOverClockRefresh() 1407 | if A_Index > waitTolerance { 1408 | MsgBox "进入模拟室失败!" 1409 | ExitApp 1410 | } 1411 | } 1412 | 1413 | ;查看是否刷新超频 1414 | Sleep sleepTime 1415 | 1416 | checkOverClockRefresh() 1417 | 1418 | stdCkptX := [1878] 1419 | stdCkptY := [1732] 1420 | desiredColor := ["0xEA5148"] 1421 | if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1422 | isOverclockRefreshed := 1 1423 | } 1424 | 1425 | 1426 | ;MsgBox "ok" 1427 | 1428 | ;开始模拟 1429 | stdTargetX := 1917 1430 | stdTargetY := 1274 1431 | UserClick(stdTargetX, stdTargetY, scrRatio) 1432 | Sleep sleepTime 1433 | 1434 | stdCkptX := [1406] 1435 | stdCkptY := [1845] 1436 | desiredColor := ["0x04AEF4"] 1437 | 1438 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1439 | checkOverClockRefresh() 1440 | if UserCheckColor([1878], [1732], ["0xEA5148"], scrRatio) { 1441 | isOverclockRefreshed := 1 1442 | } 1443 | UserClick(stdTargetX, stdTargetY, scrRatio) 1444 | Sleep sleepTime 1445 | if A_Index > waitTolerance { 1446 | MsgBox "进入选关失败!" 1447 | ExitApp 1448 | } 1449 | } 1450 | 1451 | ;选择5C 1452 | stdTargetX := 2325 1453 | stdTargetY := 776 1454 | UserClick(stdTargetX, stdTargetY, scrRatio) 1455 | Sleep sleepTime // 2 1456 | UserClick(stdTargetX, stdTargetY, scrRatio) 1457 | Sleep sleepTime // 2 1458 | 1459 | stdTargetX := 2265 1460 | stdTargetY := 1214 1461 | UserClick(stdTargetX, stdTargetY, scrRatio) 1462 | Sleep sleepTime // 2 1463 | UserClick(stdTargetX, stdTargetY, scrRatio) 1464 | Sleep sleepTime 1465 | 1466 | ;打开快速模拟 1467 | stdCkptX := [1833] 1468 | stdCkptY := [1689] 1469 | desiredColor := ["0x18AFF4"] 1470 | stdTargetX := 1888 1471 | stdTargetY := 1691 1472 | 1473 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1474 | UserClick(stdTargetX, stdTargetY, scrRatio) 1475 | Sleep sleepTime 1476 | } 1477 | 1478 | 1479 | ;点击开始模拟 1480 | ;开始模拟 1481 | stdTargetX := 2210 1482 | stdTargetY := 1870 1483 | UserClick(stdTargetX, stdTargetY, scrRatio) 1484 | Sleep sleepTime 1485 | 1486 | stdCkptX := [1974] 1487 | stdCkptY := [1838] 1488 | desiredColor := ["0xFA801A"] 1489 | 1490 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1491 | UserClick(stdTargetX, stdTargetY, scrRatio) 1492 | Sleep sleepTime 1493 | if A_Index > waitTolerance { 1494 | MsgBox "开始模拟失败!" 1495 | ExitApp 1496 | } 1497 | } 1498 | 1499 | 1500 | stdTargetX := 1903 1501 | stdTargetY := 1369 1502 | stdCkptX := [304] 1503 | stdCkptY := [179] 1504 | desiredColor := ["0x858289"] 1505 | 1506 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1507 | UserClick(stdTargetX, stdTargetY, scrRatio) 1508 | Sleep sleepTime 1509 | 1510 | ;如果直接快速模拟完成 1511 | if UserCheckColor([1709, 2134, 1971], [1515, 1517, 1817], ["0xEFF2F5", "0xEFF2F5", "0x603004"], scrRatio) { 1512 | 1513 | while UserCheckColor([1709, 2134, 1971], [1515, 1517, 1817], ["0xEFF2F5", "0xEFF2F5", "0x603004"], scrRatio) { 1514 | UserClick(1916, 1542, scrRatio) 1515 | Sleep sleepTime 1516 | } 1517 | 1518 | ;退回大厅 1519 | stdTargetX := 333 1520 | stdTargetY := 2041 1521 | UserClick(stdTargetX, stdTargetY, scrRatio) 1522 | Sleep sleepTime 1523 | 1524 | stdCkptX := [64] 1525 | stdCkptY := [470] 1526 | desiredColor := ["0xFAA72C"] 1527 | 1528 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1529 | UserClick(stdTargetX, stdTargetY, scrRatio) 1530 | Sleep sleepTime 1531 | if A_Index > waitTolerance { 1532 | MsgBox "退回大厅失败!" 1533 | ExitApp 1534 | } 1535 | } 1536 | 1537 | return 1538 | } 1539 | 1540 | if A_Index > waitTolerance { 1541 | MsgBox "进入buff选择页面失败!" 1542 | ExitApp 1543 | } 1544 | } 1545 | 1546 | stdCkptX := [1760] 1547 | yy := 2160 1548 | stdCkptY := [yy] 1549 | desiredColor := ["0xDFE1E1"] 1550 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1551 | yy := yy - 30 1552 | stdCkptY := [yy] 1553 | if A_Index > waitTolerance { 1554 | ExitApp 1555 | } 1556 | } 1557 | 1558 | stdTargetX := 1760 1559 | stdTargetY := yy 1560 | 1561 | stdCkptX := [2053] 1562 | stdCkptY := [1933] 1563 | desiredColor := ["0x2E77C1"] 1564 | 1565 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1566 | UserClick(stdTargetX, stdTargetY, scrRatio) 1567 | Sleep sleepTime 1568 | if A_Index > waitTolerance { 1569 | MsgBox "进入战斗准备页面失败!" 1570 | ExitApp 1571 | } 1572 | } 1573 | 1574 | /* 1575 | stdCkptX := [1682] 1576 | stdCkptY := [1863] 1577 | desiredColor := ["0x000000"] 1578 | 1579 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1580 | Sleep sleepTime 1581 | if A_Index > waitTolerance { 1582 | MsgBox "开始模拟失败!" 1583 | ExitApp 1584 | } 1585 | } 1586 | 1587 | ;1C-5C 1588 | loop 5 { 1589 | ;选择最右边的关卡 1590 | stdTargetX := 2255 1591 | stdTargetY := 1478 1592 | UserClick(stdTargetX, stdTargetY, scrRatio) 1593 | Sleep sleepTime 1594 | 1595 | stdCkptX := [1912] 1596 | stdCkptY := [1943] 1597 | desiredColor := ["0xF8FCFD"] 1598 | 1599 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1600 | UserClick(stdTargetX, stdTargetY, scrRatio) 1601 | Sleep sleepTime 1602 | if A_Index > waitTolerance { 1603 | MsgBox "选择关卡失败!" 1604 | ExitApp 1605 | } 1606 | } 1607 | 1608 | stdCkptX := [2062] 1609 | stdCkptY := [1850] 1610 | desiredColor := ["0xF96F36"] 1611 | 1612 | ;如果是战斗关卡 1613 | if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1614 | ;点击快速战斗 1615 | stdTargetX := 2233 1616 | stdTargetY := 1854 1617 | UserClick(stdTargetX, stdTargetY, scrRatio) 1618 | Sleep sleepTime 1619 | 1620 | stdCkptX := [2062] 1621 | stdCkptY := [1850] 1622 | desiredColor := ["0xF96F36"] 1623 | 1624 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1625 | UserClick(stdTargetX, stdTargetY, scrRatio) 1626 | Sleep sleepTime 1627 | if A_Index > waitTolerance { 1628 | MsgBox "快速战斗失败!" 1629 | ExitApp 1630 | } 1631 | } 1632 | 1633 | stdCkptX := [2112] 1634 | stdCkptY := [1808] 1635 | desiredColor := ["0x05A0E3"] 1636 | 1637 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) && !UserCheckColor(stdCkptX, [1808 + 79], desiredColor, scrRatio) { 1638 | Sleep sleepTime 1639 | if A_Index > waitTolerance { 1640 | MsgBox "快速战斗失败!" 1641 | ExitApp 1642 | } 1643 | } 1644 | 1645 | Sleep 2000 ;kkk 1646 | if sleepTime <= 1000 1647 | Sleep 250 1648 | 1649 | ;点击不选择 1650 | deltaY := 0 1651 | stdCkptX := [1599] 1652 | stdCkptY := [1811 + 79] 1653 | desiredColor := ["0xDEE1E1"] 1654 | if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) 1655 | deltaY := 79 1656 | 1657 | ;if deltaY == 79 1658 | ; MsgBox "79" 1659 | 1660 | stdTargetX := 1631 1661 | stdTargetY := 1811 + deltaY 1662 | UserClick(stdTargetX, stdTargetY, scrRatio) 1663 | Sleep sleepTime 1664 | 1665 | stdCkptX := [2112] 1666 | stdCkptY := [1808 + deltaY] 1667 | desiredColor := ["0x05A0E3"] 1668 | 1669 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1670 | UserClick(stdTargetX, stdTargetY, scrRatio) 1671 | Sleep sleepTime 1672 | if A_Index > waitTolerance { 1673 | MsgBox "不选择buff失败!" 1674 | ExitApp 1675 | } 1676 | } 1677 | 1678 | ;点击确认 1679 | stdTargetX := 2146 1680 | stdTargetY := 1349 1681 | UserClick(stdTargetX, stdTargetY, scrRatio) 1682 | Sleep sleepTime 1683 | 1684 | stdCkptX := [2081] 1685 | stdCkptY := [1320] 1686 | desiredColor := ["0x00A0EB"] 1687 | 1688 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1689 | UserClick(stdTargetX, stdTargetY, scrRatio) 1690 | Sleep sleepTime 1691 | if A_Index > waitTolerance { 1692 | MsgBox "不选择buff失败!" 1693 | ExitApp 1694 | } 1695 | } 1696 | } 1697 | else { 1698 | Sleep 2000 ;kkk 1699 | if sleepTime <= 1000 1700 | Sleep 250 1701 | 1702 | stdCkptX := [1636, 2053] 1703 | stdCkptY := [1991, 1991] 1704 | desiredColor := ["0xE0E2E2", "0x13A1E4"] 1705 | 1706 | ;如果是可以不选择的buff关卡 1707 | if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1708 | ;点击不选择 1709 | stdTargetX := 1743 1710 | stdTargetY := 2019 1711 | UserClick(stdTargetX, stdTargetY, scrRatio) 1712 | Sleep sleepTime 1713 | 1714 | stdCkptX := [2053] 1715 | stdCkptY := [1991] 1716 | desiredColor := ["0x13A1E4"] 1717 | 1718 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1719 | UserClick(stdTargetX, stdTargetY, scrRatio) 1720 | Sleep sleepTime 1721 | if A_Index > waitTolerance { 1722 | MsgBox "不选择buff失败!" 1723 | ExitApp 1724 | } 1725 | } 1726 | 1727 | ;点击确认 1728 | stdTargetX := 2180 1729 | stdTargetY := 1346 1730 | UserClick(stdTargetX, stdTargetY, scrRatio) 1731 | Sleep sleepTime 1732 | 1733 | stdCkptX := [2080] 1734 | stdCkptY := [1319] 1735 | desiredColor := ["0x00A0EB"] 1736 | 1737 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1738 | UserClick(stdTargetX, stdTargetY, scrRatio) 1739 | Sleep sleepTime 1740 | if A_Index > waitTolerance { 1741 | MsgBox "不选择buff失败!" 1742 | ExitApp 1743 | } 1744 | } 1745 | 1746 | ;点击确认 1747 | stdTargetX := 1932 1748 | stdTargetY := 1293 1749 | UserClick(stdTargetX, stdTargetY, scrRatio) 1750 | Sleep sleepTime 1751 | 1752 | stdCkptX := [1836] 1753 | stdCkptY := [1260] 1754 | desiredColor := ["0x069FE3"] 1755 | 1756 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1757 | UserClick(stdTargetX, stdTargetY, scrRatio) 1758 | Sleep sleepTime 1759 | if A_Index > waitTolerance { 1760 | MsgBox "不选择buff失败!" 1761 | ExitApp 1762 | } 1763 | } 1764 | } 1765 | else { 1766 | ;是必须选择的关卡 1767 | ;选择buff 1768 | stdTargetX := 1885 1769 | stdTargetY := 1862 1770 | UserClick(stdTargetX, stdTargetY, scrRatio) 1771 | Sleep sleepTime // 2 1772 | stdTargetX := 1904 1773 | stdTargetY := 1900 1774 | UserClick(stdTargetX, stdTargetY, scrRatio) 1775 | Sleep sleepTime 1776 | 1777 | if sleepTime <= 1000 1778 | Sleep 1000 1779 | 1780 | ;点击确认 1781 | stdCkptX := [1858] 1782 | stdCkptY := [1572] 1783 | desiredColor := ["0x069FE3"] 1784 | 1785 | if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1786 | stdTargetX := 1923 1787 | stdTargetY := 1589 1788 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1789 | UserClick(stdTargetX, stdTargetY, scrRatio) 1790 | Sleep sleepTime 1791 | if A_Index > waitTolerance { 1792 | MsgBox "确认失败!" 1793 | ExitApp 1794 | } 1795 | } 1796 | } 1797 | else { 1798 | stdTargetX := 1908 1799 | stdTargetY := 2016 1800 | UserClick(stdTargetX, stdTargetY, scrRatio) 1801 | Sleep sleepTime // 2 1802 | UserClick(stdTargetX, stdTargetY, scrRatio) 1803 | Sleep sleepTime 1804 | UserClick(stdTargetX, stdTargetY, scrRatio) 1805 | Sleep sleepTime 1806 | UserClick(stdTargetX, stdTargetY, scrRatio) 1807 | Sleep sleepTime 1808 | 1809 | ;不替换buff 1810 | ;点击不选择和确定 1811 | tX := 2104 1812 | tY := 1656 1813 | desiredColor := ["0x089FE4"] 1814 | 1815 | flag := true 1816 | 1817 | while !UserCheckColor([tX], [tY], desiredColor, scrRatio) { 1818 | tY := tY + 65 1819 | if tY > 2160 { 1820 | flag := false 1821 | break 1822 | } 1823 | } 1824 | 1825 | if !flag { 1826 | /* 1827 | stdTargetX := 1908 1828 | stdTargetY := 2016 1829 | UserClick(stdTargetX, stdTargetY, scrRatio) 1830 | Sleep sleepTime // 2 1831 | UserClick(stdTargetX, stdTargetY, scrRatio) 1832 | Sleep sleepTime // 2 1833 | UserClick(stdTargetX, stdTargetY, scrRatio) 1834 | Sleep sleepTime // 2 1835 | UserClick(stdTargetX, stdTargetY, scrRatio) 1836 | Sleep sleepTime 1837 | 1838 | continue 1839 | } 1840 | 1841 | ;MsgBox "点不选择" 1842 | stdTargetX := 2185 1843 | stdTargetY := tY - 200 1844 | UserClick(stdTargetX, stdTargetY, scrRatio) 1845 | Sleep sleepTime // 2 1846 | UserClick(stdTargetX, stdTargetY, scrRatio) 1847 | Sleep sleepTime // 2 1848 | 1849 | ;MsgBox "点击确定" 1850 | stdTargetX := 2185 1851 | stdTargetY := tY 1852 | UserClick(stdTargetX, stdTargetY, scrRatio) 1853 | Sleep sleepTime 1854 | 1855 | stdCkptX := [2104] 1856 | stdCkptY := [tY] 1857 | desiredColor := ["0x089FE4"] 1858 | 1859 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1860 | UserClick(stdTargetX, stdTargetY, scrRatio) 1861 | Sleep sleepTime 1862 | if A_Index > waitTolerance { 1863 | MsgBox "模拟室结束异常!" 1864 | ExitApp 1865 | } 1866 | } 1867 | 1868 | stdTargetX := 1908 1869 | stdTargetY := 2016 1870 | UserClick(stdTargetX, stdTargetY, scrRatio) 1871 | Sleep sleepTime // 2 1872 | UserClick(stdTargetX, stdTargetY, scrRatio) 1873 | Sleep sleepTime // 2 1874 | UserClick(stdTargetX, stdTargetY, scrRatio) 1875 | Sleep sleepTime 1876 | UserClick(stdTargetX, stdTargetY, scrRatio) 1877 | Sleep sleepTime 1878 | } 1879 | } 1880 | } 1881 | } 1882 | 1883 | ;6C 1884 | ;选择右边一个关卡 1885 | stdTargetX := 2084 1886 | stdTargetY := 1508 1887 | UserClick(stdTargetX, stdTargetY, scrRatio) 1888 | Sleep sleepTime 1889 | 1890 | stdCkptX := [1921] 1891 | stdCkptY := [1921] 1892 | desiredColor := ["0x000000"] 1893 | 1894 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1895 | UserClick(stdTargetX, stdTargetY, scrRatio) 1896 | Sleep sleepTime 1897 | if A_Index > waitTolerance { 1898 | MsgBox "选择关卡失败!" 1899 | ExitApp 1900 | } 1901 | } 1902 | 1903 | Sleep 1500 ;kkk 1904 | if sleepTime <= 1000 1905 | Sleep 750 1906 | 1907 | stdCkptX := [1648] 1908 | stdCkptY := [1995] 1909 | desiredColor := ["0xE1E2E2"] 1910 | 1911 | ;如果是属性提升 1912 | if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1913 | stdTargetX := 1711 1914 | stdTargetY := 2020 1915 | UserClick(stdTargetX, stdTargetY, scrRatio) 1916 | Sleep sleepTime 1917 | 1918 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1919 | UserClick(stdTargetX, stdTargetY, scrRatio) 1920 | Sleep sleepTime 1921 | if A_Index > waitTolerance { 1922 | MsgBox "不选择失败!" 1923 | ExitApp 1924 | } 1925 | } 1926 | 1927 | stdTargetX := 2304 1928 | stdTargetY := 1338 1929 | UserClick(stdTargetX, stdTargetY, scrRatio) 1930 | Sleep sleepTime // 2 1931 | UserClick(stdTargetX, stdTargetY, scrRatio) 1932 | Sleep sleepTime // 2 1933 | UserClick(stdTargetX, stdTargetY, scrRatio) 1934 | Sleep sleepTime // 2 1935 | } 1936 | else { 1937 | ;如果是疗养室 1938 | stdTargetX := 1908 1939 | stdTargetY := 1767 1940 | UserClick(stdTargetX, stdTargetY, scrRatio) 1941 | Sleep sleepTime // 2 1942 | UserClick(stdTargetX, stdTargetY, scrRatio) 1943 | Sleep sleepTime // 2 1944 | 1945 | stdTargetX := 1892 1946 | stdTargetY := 2014 1947 | UserClick(stdTargetX, stdTargetY, scrRatio) 1948 | Sleep sleepTime // 2 1949 | UserClick(stdTargetX, stdTargetY, scrRatio) 1950 | Sleep sleepTime // 2 1951 | UserClick(stdTargetX, stdTargetY, scrRatio) 1952 | Sleep sleepTime // 2 1953 | } 1954 | 1955 | ;7C 1956 | stdTargetX := 1916 1957 | stdTargetY := 1471 1958 | UserClick(stdTargetX, stdTargetY, scrRatio) 1959 | Sleep sleepTime 1960 | 1961 | stdCkptX := [837, 951] 1962 | stdCkptY := [1407, 1762] 1963 | desiredColor := ["0xF8FCFE", "0xF8FCFE"] 1964 | 1965 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1966 | UserClick(stdTargetX, stdTargetY, scrRatio) 1967 | Sleep sleepTime 1968 | if A_Index > waitTolerance { 1969 | MsgBox "选择关卡失败!" 1970 | ExitApp 1971 | } 1972 | } 1973 | */ 1974 | 1975 | ;点击进入战斗 1976 | stdTargetX := 2225 1977 | stdTargetY := 2004 1978 | UserClick(stdTargetX, stdTargetY, scrRatio) 1979 | Sleep sleepTime // 2 1980 | UserClick(stdTargetX, stdTargetY, scrRatio) 1981 | Sleep sleepTime // 2 1982 | UserClick(stdTargetX, stdTargetY, scrRatio) 1983 | Sleep sleepTime // 2 1984 | 1985 | stdCkptX := [1420, 3713] 1986 | stdCkptY := [1204, 2035] 1987 | desiredColor := ["0xFFFFFF", "0xE6E6E6"] 1988 | 1989 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 1990 | ;UserClick(stdTargetX, stdTargetY - 300, scrRatio) 1991 | CheckAutoBattle() 1992 | Sleep sleepTime 1993 | if A_Index > waitTolerance * 2 { 1994 | ;MsgBox "模拟室boss战异常!" 1995 | break 1996 | } 1997 | } 1998 | 1999 | stdTargetX := 1898 2000 | stdTargetY := 1996 2001 | UserClick(stdTargetX, stdTargetY, scrRatio) 2002 | Sleep sleepTime 2003 | 2004 | stdCkptX := [2115] 2005 | stdCkptY := [1305] 2006 | stdCkptX2 := [2115] 2007 | stdCkptY2 := [1556] 2008 | desiredColor := ["0xEFF3F5"] 2009 | 2010 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) && !UserCheckColor(stdCkptX2, stdCkptY2, desiredColor, scrRatio) { 2011 | UserClick(stdTargetX, stdTargetY, scrRatio) 2012 | Sleep sleepTime 2013 | if A_Index > waitTolerance { 2014 | MsgBox "模拟室结束异常!" 2015 | ExitApp 2016 | } 2017 | } 2018 | 2019 | if colorTolerance != 15 { 2020 | Sleep 5000 2021 | } 2022 | 2023 | ;点击模拟结束 2024 | stdTargetX := 1923 2025 | stdTargetY := 1276 2026 | if UserCheckColor(stdCkptX2, stdCkptY2, desiredColor, scrRatio) { 2027 | stdTargetX := 1923 2028 | stdTargetY := 1552 2029 | } 2030 | UserClick(stdTargetX, stdTargetY, scrRatio) 2031 | Sleep sleepTime // 2 2032 | UserClick(stdTargetX, stdTargetY, scrRatio) 2033 | Sleep sleepTime // 2 2034 | UserClick(stdTargetX, stdTargetY, scrRatio) 2035 | Sleep sleepTime 2036 | 2037 | /* 2038 | stdTargetX := 1902 2039 | stdTargetY := 1461 2040 | UserClick(stdTargetX, stdTargetY, scrRatio) 2041 | Sleep sleepTime // 2 2042 | UserClick(stdTargetX, stdTargetY, scrRatio) 2043 | Sleep sleepTime // 2 2044 | */ 2045 | 2046 | ;点击不选择和确定 2047 | /* 2048 | tX := 2104 2049 | tY := 1656 2050 | desiredColor := ["0x089FE4"] 2051 | 2052 | while !UserCheckColor([tX], [tY], desiredColor, scrRatio) { 2053 | tY := tY + 65 2054 | if tY > 2160 { 2055 | MsgBox "模拟室结束异常!" 2056 | ExitApp 2057 | } 2058 | } 2059 | 2060 | ;MsgBox "点不选择" 2061 | stdTargetX := 2185 2062 | stdTargetY := tY - 200 2063 | UserClick(stdTargetX, stdTargetY, scrRatio) 2064 | Sleep sleepTime // 2 2065 | UserClick(stdTargetX, stdTargetY, scrRatio) 2066 | Sleep sleepTime // 2 2067 | 2068 | ;MsgBox "点击确定" 2069 | stdTargetX := 2185 2070 | stdTargetY := tY 2071 | UserClick(stdTargetX, stdTargetY, scrRatio) 2072 | Sleep sleepTime 2073 | 2074 | stdCkptX := [2104] 2075 | stdCkptY := [tY] 2076 | desiredColor := ["0x089FE4"] 2077 | 2078 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2079 | UserClick(stdTargetX, stdTargetY, scrRatio) 2080 | Sleep sleepTime 2081 | if A_Index > waitTolerance { 2082 | MsgBox "模拟室结束异常!" 2083 | ExitApp 2084 | } 2085 | } 2086 | 2087 | stdTargetX := 2191 2088 | stdTargetY := 1349 2089 | UserClick(stdTargetX, stdTargetY, scrRatio) 2090 | Sleep sleepTime // 2 2091 | UserClick(stdTargetX, stdTargetY, scrRatio) 2092 | Sleep sleepTime // 2 2093 | UserClick(stdTargetX, stdTargetY, scrRatio) 2094 | Sleep sleepTime 2095 | */ 2096 | 2097 | ;退回大厅 2098 | stdTargetX := 333 2099 | stdTargetY := 2041 2100 | UserClick(stdTargetX, stdTargetY, scrRatio) 2101 | Sleep sleepTime 2102 | 2103 | stdCkptX := [64] 2104 | stdCkptY := [470] 2105 | desiredColor := ["0xFAA72C"] 2106 | 2107 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2108 | UserClick(stdTargetX, stdTargetY, scrRatio) 2109 | Sleep sleepTime 2110 | if A_Index > waitTolerance { 2111 | MsgBox "退回大厅失败!" 2112 | ExitApp 2113 | } 2114 | } 2115 | } 2116 | 2117 | 2118 | ;============================================================= 2119 | ;7: 新人竞技场打第三位,顺带收50%以上的菜 2120 | RookieArena(times) 2121 | { 2122 | ;进入方舟 2123 | stdTargetX := 2689 2124 | stdTargetY := 1463 2125 | UserClick(stdTargetX, stdTargetY, scrRatio) 2126 | Sleep sleepTime 2127 | 2128 | stdCkptX := [64] 2129 | stdCkptY := [470] 2130 | desiredColor := ["0xFAA72C"] 2131 | 2132 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2133 | UserClick(stdTargetX, stdTargetY, scrRatio) 2134 | Sleep sleepTime // 2 2135 | if A_Index > waitTolerance { 2136 | MsgBox "进入方舟失败!" 2137 | ExitApp 2138 | } 2139 | } 2140 | 2141 | stdCkptX := [1607] 2142 | stdCkptY := [283] 2143 | desiredColor := ["0x01D4F6"] 2144 | 2145 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2146 | Sleep sleepTime 2147 | if A_Index > waitTolerance { 2148 | MsgBox "进入方舟失败!" 2149 | ExitApp 2150 | } 2151 | } 2152 | 2153 | ;收pjjc菜 2154 | if sleepTime < 1500 2155 | Sleep 1000 2156 | 2157 | stdTargetX := 2261 2158 | stdTargetY := 956 2159 | UserClick(stdTargetX, stdTargetY, scrRatio) 2160 | Sleep sleepTime 2161 | UserClick(stdTargetX, stdTargetY, scrRatio) 2162 | Sleep sleepTime 2163 | 2164 | stdCkptX := [1607] 2165 | stdCkptY := [283] 2166 | desiredColor := ["0x01D4F6"] 2167 | 2168 | stdTargetX := 2129 2169 | stdTargetY := 1920 2170 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2171 | UserClick(stdTargetX, stdTargetY, scrRatio) 2172 | Sleep sleepTime 2173 | } 2174 | 2175 | ;进入竞技场 2176 | stdTargetX := 2383 2177 | stdTargetY := 1353 2178 | UserClick(stdTargetX, stdTargetY, scrRatio) 2179 | Sleep sleepTime 2180 | 2181 | stdCkptX := [1607] 2182 | stdCkptY := [283] 2183 | desiredColor := ["0x01D4F6"] 2184 | 2185 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2186 | UserClick(stdTargetX, stdTargetY, scrRatio) 2187 | Sleep sleepTime 2188 | if A_Index > waitTolerance { 2189 | MsgBox "进入竞技场失败!" 2190 | ExitApp 2191 | } 2192 | } 2193 | 2194 | 2195 | stdCkptX := [1683] 2196 | stdCkptY := [606] 2197 | desiredColor := ["0xF7FCFE"] 2198 | 2199 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2200 | Sleep sleepTime 2201 | if A_Index > waitTolerance { 2202 | MsgBox "进入竞技场失败!" 2203 | ExitApp 2204 | } 2205 | } 2206 | 2207 | 2208 | ;进入新人竞技场 2209 | stdTargetX := 1647 2210 | stdTargetY := 1164 2211 | UserClick(stdTargetX, stdTargetY, scrRatio) 2212 | Sleep sleepTime 2213 | 2214 | stdCkptX := [784] 2215 | stdCkptY := [1201] 2216 | desiredColor := ["0xF8FCFE"] 2217 | 2218 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2219 | UserClick(stdTargetX, stdTargetY, scrRatio) 2220 | Sleep sleepTime 2221 | 2222 | if A_Index > 5 { 2223 | ;退回大厅 2224 | stdTargetX := 333 2225 | stdTargetY := 2041 2226 | UserClick(stdTargetX, stdTargetY, scrRatio) 2227 | Sleep sleepTime 2228 | 2229 | stdCkptX := [64] 2230 | stdCkptY := [470] 2231 | desiredColor := ["0xFAA72C"] 2232 | 2233 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2234 | UserClick(stdTargetX, stdTargetY, scrRatio) 2235 | Sleep sleepTime 2236 | if A_Index > waitTolerance { 2237 | MsgBox "退回大厅失败!" 2238 | ExitApp 2239 | } 2240 | } 2241 | 2242 | return 2243 | } 2244 | 2245 | if A_Index > waitTolerance { 2246 | MsgBox "进入新人竞技场失败!" 2247 | ExitApp 2248 | } 2249 | } 2250 | 2251 | loop times { 2252 | ;点击进入战斗 2253 | stdTargetX := 2371 2254 | stdTargetY := 1847 2255 | UserClick(stdTargetX, stdTargetY, scrRatio) 2256 | Sleep sleepTime 2257 | 2258 | stdCkptX := [2700] 2259 | stdCkptY := [1691] 2260 | desiredColor := ["0xF7FCFE"] 2261 | 2262 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2263 | UserClick(stdTargetX, stdTargetY, scrRatio) 2264 | Sleep sleepTime 2265 | if A_Index > waitTolerance { 2266 | MsgBox "选择对手失败!" 2267 | ExitApp 2268 | } 2269 | } 2270 | 2271 | ;点击进入战斗 2272 | stdTargetX := 2123 2273 | stdTargetY := 1784 2274 | UserClick(stdTargetX, stdTargetY, scrRatio) 2275 | Sleep sleepTime 2276 | 2277 | stdCkptX := [2784] 2278 | stdCkptY := [1471] 2279 | desiredColor := ["0xF8FCFD"] 2280 | 2281 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2282 | UserClick(stdTargetX, stdTargetY, scrRatio) 2283 | Sleep sleepTime 2284 | if A_Index > waitTolerance { 2285 | MsgBox "新人竞技场作战失败!" 2286 | ExitApp 2287 | } 2288 | } 2289 | } 2290 | 2291 | ;退回大厅 2292 | stdTargetX := 333 2293 | stdTargetY := 2041 2294 | UserClick(stdTargetX, stdTargetY, scrRatio) 2295 | Sleep sleepTime 2296 | 2297 | stdCkptX := [64] 2298 | stdCkptY := [470] 2299 | desiredColor := ["0xFAA72C"] 2300 | 2301 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2302 | UserClick(stdTargetX, stdTargetY, scrRatio) 2303 | Sleep sleepTime 2304 | if A_Index > waitTolerance { 2305 | MsgBox "退回大厅失败!" 2306 | ExitApp 2307 | } 2308 | } 2309 | } 2310 | 2311 | 2312 | ;============================================================= 2313 | ;8: 对前n位nikke进行好感度咨询(可以通过收藏把想要咨询的nikke排到前面) 2314 | NotAllCollection() 2315 | { 2316 | stdCkptX := [2447] 2317 | stdCkptY := [1464] 2318 | desiredColor := ["0x444547"] 2319 | return UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) 2320 | } 2321 | 2322 | LoveTalking(times) 2323 | { 2324 | ;进入妮姬列表 2325 | stdTargetX := 1497 2326 | stdTargetY := 2004 2327 | UserClick(stdTargetX, stdTargetY, scrRatio) 2328 | Sleep sleepTime 2329 | 2330 | stdCkptX := [64] 2331 | stdCkptY := [470] 2332 | desiredColor := ["0xFAA72C"] 2333 | 2334 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2335 | UserClick(stdTargetX, stdTargetY, scrRatio) 2336 | Sleep sleepTime // 2 2337 | if A_Index > waitTolerance { 2338 | MsgBox "进入妮姬列表失败!" 2339 | ExitApp 2340 | } 2341 | } 2342 | 2343 | stdCkptX := [1447, 1845] 2344 | stdCkptY := [428, 433] 2345 | desiredColor := ["0x3A3B3D", "0x3B3C3E"] 2346 | 2347 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2348 | Sleep sleepTime 2349 | if A_Index > waitTolerance { 2350 | MsgBox "进入妮姬列表失败!" 2351 | ExitApp 2352 | } 2353 | } 2354 | 2355 | ;进入咨询页面 2356 | stdTargetX := 3308 2357 | stdTargetY := 257 2358 | UserClick(stdTargetX, stdTargetY, scrRatio) 2359 | Sleep sleepTime 2360 | 2361 | stdCkptX := [1650] 2362 | stdCkptY := [521] 2363 | desiredColor := ["0x14B0F5"] 2364 | 2365 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2366 | ;如果没次数了,直接退出 2367 | if UserCheckColor(stdCkptX, stdCkptY, ["0xE0E0E2"], scrRatio) { 2368 | stdTargetX := 333 2369 | stdTargetY := 2041 2370 | UserClick(stdTargetX, stdTargetY, scrRatio) 2371 | Sleep sleepTime 2372 | 2373 | stdCkptX := [64] 2374 | stdCkptY := [470] 2375 | desiredColor := ["0xFAA72C"] 2376 | 2377 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2378 | UserClick(stdTargetX, stdTargetY, scrRatio) 2379 | Sleep sleepTime 2380 | if A_Index > waitTolerance { 2381 | MsgBox "退回大厅失败!" 2382 | ExitApp 2383 | } 2384 | } 2385 | return 2386 | } 2387 | UserClick(stdTargetX, stdTargetY, scrRatio) 2388 | Sleep sleepTime 2389 | if A_Index > waitTolerance { 2390 | MsgBox "进入咨询页面失败!" 2391 | ExitApp 2392 | } 2393 | } 2394 | 2395 | ;点进第一个妮姬 2396 | stdTargetX := 736 2397 | stdTargetY := 749 2398 | UserClick(stdTargetX, stdTargetY, scrRatio) 2399 | Sleep sleepTime 2400 | 2401 | stdCkptX := [1504] 2402 | stdCkptY := [1747] 2403 | desiredColor := ["0xF99F22"] 2404 | 2405 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2406 | UserClick(stdTargetX, stdTargetY, scrRatio) 2407 | Sleep sleepTime 2408 | if A_Index > waitTolerance { 2409 | MsgBox "进入妮姬咨询页面失败!" 2410 | ExitApp 2411 | } 2412 | } 2413 | 2414 | loop times { 2415 | stdCkptX := [1994] 2416 | stdCkptY := [1634] 2417 | desiredColor := ["0xFA6E34"] 2418 | 2419 | ;如果能够快速咨询 2420 | if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) && !(isCheckedLongTalk && NotAllCollection()) { 2421 | ;点击快速咨询 2422 | stdTargetX := 2175 2423 | stdTargetY := 1634 2424 | UserClick(stdTargetX, stdTargetY, scrRatio) 2425 | Sleep sleepTime 2426 | 2427 | stdCkptX := [1994] 2428 | stdCkptY := [1634] 2429 | desiredColor := ["0xFA6E34"] 2430 | 2431 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2432 | UserClick(stdTargetX, stdTargetY, scrRatio) 2433 | Sleep sleepTime 2434 | if A_Index > waitTolerance { 2435 | MsgBox "进入妮姬咨询页面失败!" 2436 | ExitApp 2437 | } 2438 | } 2439 | 2440 | ;点击确定 2441 | stdTargetX := 2168 2442 | stdTargetY := 1346 2443 | UserClick(stdTargetX, stdTargetY, scrRatio) 2444 | Sleep sleepTime 2445 | 2446 | stdCkptX := [1504] 2447 | stdCkptY := [1747] 2448 | desiredColor := ["0xF99F22"] 2449 | 2450 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2451 | UserClick(stdTargetX, stdTargetY, scrRatio) 2452 | Sleep sleepTime 2453 | if A_Index > waitTolerance { 2454 | MsgBox "快速咨询失败!" 2455 | ExitApp 2456 | } 2457 | } 2458 | } 2459 | else { 2460 | ;如果不能快速咨询 2461 | stdCkptX := [1982] 2462 | stdCkptY := [1819] 2463 | desiredColor := ["0x4A4A4C"] 2464 | if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2465 | stdTargetX := 2168 2466 | stdTargetY := 1777 2467 | UserClick(stdTargetX, stdTargetY, scrRatio) 2468 | Sleep sleepTime 2469 | 2470 | stdCkptX := [1504] 2471 | stdCkptY := [1747] 2472 | desiredColor := ["0xF99F22"] 2473 | 2474 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2475 | UserClick(stdTargetX, stdTargetY, scrRatio) 2476 | Sleep sleepTime 2477 | if A_Index > waitTolerance { 2478 | MsgBox "咨询失败!" 2479 | ExitApp 2480 | } 2481 | } 2482 | 2483 | ;点击确认 2484 | stdTargetX := 2192 2485 | stdTargetY := 1349 2486 | UserClick(stdTargetX, stdTargetY, scrRatio) 2487 | Sleep sleepTime 2488 | 2489 | stdCkptX := [2109] 2490 | stdCkptY := [1342] 2491 | desiredColor := ["0x00A0EB"] 2492 | 2493 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2494 | UserClick(stdTargetX, stdTargetY, scrRatio) 2495 | Sleep sleepTime 2496 | if A_Index > waitTolerance { 2497 | MsgBox "咨询失败!" 2498 | ExitApp 2499 | } 2500 | } 2501 | 2502 | stdCkptX := [1504] 2503 | stdCkptY := [1747] 2504 | desiredColor := ["0xF99F22"] 2505 | stdTargetX := 1903 2506 | stdTargetY := 1483 2507 | 2508 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2509 | if Mod(A_Index, 2) == 0 2510 | UserClick(stdTargetX, stdTargetY, scrRatio) 2511 | else 2512 | UserClick(stdTargetX, 1625, scrRatio) 2513 | Sleep sleepTime // 2 2514 | if A_Index > waitTolerance * 2 { 2515 | MsgBox "咨询失败!" 2516 | ExitApp 2517 | } 2518 | } 2519 | } 2520 | } 2521 | 2522 | if A_Index >= times 2523 | break 2524 | 2525 | ;翻页 2526 | stdTargetX := 3778 2527 | stdTargetY := 940 2528 | UserClick(stdTargetX, stdTargetY, scrRatio) 2529 | Sleep sleepTime 2530 | 2531 | stdCkptX := [1982] 2532 | stdCkptY := [1819] 2533 | desiredColor := ["0x4A4A4C"] 2534 | 2535 | numOfTalked := A_Index 2536 | 2537 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2538 | UserClick(stdTargetX, stdTargetY, scrRatio) 2539 | Sleep sleepTime 2540 | if A_Index + numOfTalked >= times + 5 2541 | break 2 2542 | if A_Index > waitTolerance { 2543 | MsgBox "咨询失败!" 2544 | ExitApp 2545 | } 2546 | } 2547 | } 2548 | 2549 | ;退回大厅 2550 | stdTargetX := 333 2551 | stdTargetY := 2041 2552 | UserClick(stdTargetX, stdTargetY, scrRatio) 2553 | Sleep sleepTime 2554 | 2555 | stdCkptX := [64] 2556 | stdCkptY := [470] 2557 | desiredColor := ["0xFAA72C"] 2558 | 2559 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2560 | UserClick(stdTargetX, stdTargetY, scrRatio) 2561 | Sleep sleepTime 2562 | if A_Index > waitTolerance { 2563 | MsgBox "退回大厅失败!" 2564 | ExitApp 2565 | } 2566 | } 2567 | } 2568 | 2569 | 2570 | ;============================================================= 2571 | ;9: 爬塔一次(做每日任务) 2572 | TribeTower() 2573 | { 2574 | stdTargetX := 2689 2575 | stdTargetY := 1463 2576 | UserClick(stdTargetX, stdTargetY, scrRatio) 2577 | Sleep sleepTime 2578 | 2579 | stdCkptX := [64] 2580 | stdCkptY := [470] 2581 | desiredColor := ["0xFAA72C"] 2582 | 2583 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2584 | UserClick(stdTargetX, stdTargetY, scrRatio) 2585 | Sleep sleepTime // 2 2586 | if A_Index > waitTolerance { 2587 | MsgBox "进入方舟失败!" 2588 | ExitApp 2589 | } 2590 | } 2591 | 2592 | stdCkptX := [1607] 2593 | stdCkptY := [283] 2594 | desiredColor := ["0x01D4F6"] 2595 | 2596 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2597 | Sleep sleepTime 2598 | if A_Index > waitTolerance { 2599 | MsgBox "进入方舟失败!" 2600 | ExitApp 2601 | } 2602 | } 2603 | 2604 | ;进入无限之塔 2605 | stdTargetX := 2278 2606 | stdTargetY := 776 2607 | UserClick(stdTargetX, stdTargetY, scrRatio) 2608 | Sleep sleepTime 2609 | 2610 | stdCkptX := [2405] 2611 | stdCkptY := [1014] 2612 | desiredColor := ["0xF8FBFE"] 2613 | 2614 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2615 | UserClick(stdTargetX, stdTargetY, scrRatio) 2616 | Sleep sleepTime 2617 | if A_Index > waitTolerance { 2618 | MsgBox "进入无限之塔失败!" 2619 | ExitApp 2620 | } 2621 | } 2622 | 2623 | stdTargetX := 1953 2624 | stdTargetY := 934 2625 | UserClick(stdTargetX, stdTargetY, scrRatio) 2626 | Sleep sleepTime 2627 | 2628 | stdCkptX := [2129, 2305] 2629 | stdCkptY := [1935, 1935] 2630 | desiredColor := ["0x2E77C2", "0x2E77C2"] 2631 | 2632 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2633 | UserClick(stdTargetX, stdTargetY, scrRatio) 2634 | Sleep sleepTime 2635 | if A_Index > waitTolerance { 2636 | MsgBox "选择作战失败!" 2637 | ExitApp 2638 | } 2639 | } 2640 | 2641 | stdTargetX := 2242 2642 | stdTargetY := 2001 2643 | UserClick(stdTargetX, stdTargetY, scrRatio) 2644 | Sleep sleepTime 2645 | 2646 | stdCkptX := [2129, 2305] 2647 | stdCkptY := [1935, 1935] 2648 | desiredColor := ["0x2E77C2", "0x2E77C2"] 2649 | 2650 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2651 | UserClick(stdTargetX, stdTargetY, scrRatio) 2652 | Sleep sleepTime 2653 | if A_Index > waitTolerance { 2654 | MsgBox "进入作战失败!" 2655 | ExitApp 2656 | } 2657 | } 2658 | 2659 | ;按esc 2660 | stdCkptX := [2065] 2661 | stdCkptY := [1954] 2662 | desiredColor := ["0x238CFD"] 2663 | stdTargetX := 3780 2664 | stdTargetY := 75 2665 | 2666 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2667 | UserClick(stdTargetX, stdTargetY, scrRatio) 2668 | Sleep sleepTime 2669 | if A_Index > waitTolerance { 2670 | MsgBox "按esc失败!" 2671 | ExitApp 2672 | } 2673 | } 2674 | 2675 | ;按放弃战斗 2676 | stdCkptX := [2065] 2677 | stdCkptY := [1954] 2678 | desiredColor := ["0x238CFD"] 2679 | stdTargetX := 1678 2680 | stdTargetY := 1986 2681 | 2682 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2683 | UserClick(stdTargetX, stdTargetY, scrRatio) 2684 | Sleep sleepTime 2685 | if A_Index > waitTolerance { 2686 | MsgBox "放弃战斗失败!" 2687 | ExitApp 2688 | } 2689 | } 2690 | 2691 | ;退回大厅 2692 | stdTargetX := 301 2693 | stdTargetY := 2030 2694 | UserClick(stdTargetX, stdTargetY, scrRatio) 2695 | Sleep sleepTime 2696 | 2697 | stdCkptX := [64] 2698 | stdCkptY := [470] 2699 | desiredColor := ["0xFAA72C"] 2700 | 2701 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2702 | UserClick(stdTargetX, stdTargetY, scrRatio) 2703 | Sleep sleepTime 2704 | if A_Index > waitTolerance { 2705 | MsgBox "退回大厅失败!" 2706 | ExitApp 2707 | } 2708 | } 2709 | } 2710 | 2711 | 2712 | ;============================================================= 2713 | MissionCompleted() 2714 | { 2715 | stdCkptX := [3451, 3756] 2716 | stdCkptY := [2077, 2075] 2717 | desiredColor := ["0x00A1FF", "0x00A1FF"] 2718 | 2719 | if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) 2720 | return true 2721 | else 2722 | return false 2723 | } 2724 | 2725 | MissionFailed() 2726 | { 2727 | stdCkptX := [2306, 1920, 1590, 1560] 2728 | stdCkptY := [702, 1485, 1489, 1473] 2729 | desiredColor1 := ["0xB71013", "0xE9E9E7", "0x161515", "0xE9E9E7"] 2730 | desiredColor2 := ["0xAD080B", "0xE9E9E7", "0x161515", "0xE9E9E7"] 2731 | 2732 | if UserCheckColor(stdCkptX, stdCkptY, desiredColor1, scrRatio) or UserCheckColor(stdCkptX, stdCkptY, desiredColor2, scrRatio) 2733 | return true 2734 | else 2735 | return false 2736 | } 2737 | 2738 | MissionEnded() 2739 | { 2740 | stdCkptX := [3494, 3721, 3526, 3457, 3339, 3407] 2741 | stdCkptY := [2086, 2093, 2033, 2043, 2040, 2043] 2742 | desiredColor := ["0x6F6F6F", "0x6F6F6F", "0x030303", "0x434343", "0xE6E6E6", "0x000000"] 2743 | 2744 | if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) 2745 | return true 2746 | else 2747 | return false 2748 | } 2749 | 2750 | failedTower := Array() 2751 | 2752 | CompanyTowerInfo() 2753 | { 2754 | info := "" 2755 | loop failedTower.Length { 2756 | info := info failedTower[A_Index] " " 2757 | } 2758 | if info != "" { 2759 | info := "`n" info "已经爬不动惹dororo..." 2760 | } 2761 | return info 2762 | } 2763 | 2764 | ;10: 企业塔 2765 | CompanyTower() 2766 | { 2767 | stdTargetX := 2689 2768 | stdTargetY := 1463 2769 | UserClick(stdTargetX, stdTargetY, scrRatio) 2770 | Sleep sleepTime 2771 | 2772 | stdCkptX := [64] 2773 | stdCkptY := [470] 2774 | desiredColor := ["0xFAA72C"] 2775 | 2776 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2777 | UserClick(stdTargetX, stdTargetY, scrRatio) 2778 | Sleep sleepTime // 2 2779 | if A_Index > waitTolerance { 2780 | MsgBox "进入方舟失败!" 2781 | ExitApp 2782 | } 2783 | } 2784 | 2785 | stdCkptX := [1607] 2786 | stdCkptY := [283] 2787 | desiredColor := ["0x01D4F6"] 2788 | 2789 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2790 | Sleep sleepTime 2791 | if A_Index > waitTolerance { 2792 | MsgBox "进入方舟失败!" 2793 | ExitApp 2794 | } 2795 | } 2796 | 2797 | ;进入无限之塔 2798 | stdTargetX := 2278 2799 | stdTargetY := 776 2800 | UserClick(stdTargetX, stdTargetY, scrRatio) 2801 | Sleep sleepTime 2802 | 2803 | stdCkptX := [2405] 2804 | stdCkptY := [1014] 2805 | desiredColor := ["0xF8FBFE"] 2806 | 2807 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2808 | UserClick(stdTargetX, stdTargetY, scrRatio) 2809 | Sleep sleepTime 2810 | if A_Index > waitTolerance { 2811 | MsgBox "进入无限之塔失败!" 2812 | ExitApp 2813 | } 2814 | } 2815 | 2816 | Sleep 1500 2817 | 2818 | ;尝试进入每座企业塔 2819 | targX := [1501, 1779, 2061, 2332] 2820 | targY := [1497, 1497, 1497, 1497] 2821 | ckptX := [1383, 1665, 1935, 2222] 2822 | ckptY := [1925, 1925, 1925, 1925] 2823 | 2824 | loop targX.Length { 2825 | i := A_Index 2826 | 2827 | stdTargetX := targX[i] 2828 | stdTargetY := targY[i] 2829 | stdCkptX := [ckptX[i]] 2830 | stdCkptY := [ckptY[i]] 2831 | desiredColor := ["0x00AAF4"] 2832 | 2833 | ;如果未开放,则检查下一个企业 2834 | if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) 2835 | continue 2836 | 2837 | ;点击进入企业塔 2838 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2839 | UserClick(stdTargetX, stdTargetY, scrRatio) 2840 | Sleep sleepTime 2841 | if A_Index > waitTolerance { 2842 | MsgBox "进入企业塔失败!" 2843 | ExitApp 2844 | } 2845 | } 2846 | 2847 | ;直到成功进入企业塔 2848 | stdCkptX := [3738] 2849 | stdCkptY := [447] 2850 | desiredColor := ["0xF8FCFE"] 2851 | 2852 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2853 | Sleep sleepTime 2854 | if A_Index > waitTolerance { 2855 | MsgBox "进入企业塔失败!" 2856 | ExitApp 2857 | } 2858 | } 2859 | 2860 | ;进入关卡页面 2861 | stdTargetX := 1918 2862 | stdTargetY := 919 2863 | 2864 | stdCkptX := [992] 2865 | stdCkptY := [2011] 2866 | desiredColor := ["0x000000"] 2867 | 2868 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2869 | UserClick(stdTargetX, stdTargetY, scrRatio) 2870 | Sleep sleepTime 2871 | if A_Index > waitTolerance { 2872 | MsgBox "进入企业塔关卡页面失败!" 2873 | ExitApp 2874 | } 2875 | } 2876 | 2877 | ;如果战斗次数已经用完 2878 | Sleep 1000 2879 | stdCkptX := [2038] 2880 | stdCkptY := [2057] 2881 | desiredColor := ["0x4D4E50"] 2882 | if UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2883 | stdCkptX := [3738] 2884 | stdCkptY := [447] 2885 | desiredColor := ["0xF8FCFE"] 2886 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2887 | Send "{Escape}" 2888 | Sleep sleepTime 2889 | } 2890 | 2891 | stdCkptX := [2405] 2892 | stdCkptY := [1014] 2893 | desiredColor := ["0xF8FBFE"] 2894 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) 2895 | Sleep sleepTime 2896 | 2897 | Sleep 1500 2898 | continue 2899 | } 2900 | 2901 | ;点击进入战斗 2902 | stdTargetX := 2249 2903 | stdTargetY := 1997 2904 | UserClick(stdTargetX, stdTargetY, scrRatio) 2905 | Sleep sleepTime 2906 | UserClick(stdTargetX, stdTargetY, scrRatio) 2907 | Sleep sleepTime 2908 | UserClick(stdTargetX, stdTargetY, scrRatio) 2909 | Sleep sleepTime 2910 | 2911 | ;等待战斗结束 2912 | WaitForBattleEnd: 2913 | while !(MissionCompleted() || MissionFailed() || MissionEnded()) { 2914 | CheckAutoBattle() 2915 | Sleep sleepTime 2916 | if A_Index > waitTolerance * 20 { 2917 | MsgBox "企业塔自动战斗失败!" 2918 | ExitApp 2919 | } 2920 | } 2921 | 2922 | ;如果战斗失败或次数用完 2923 | if MissionFailed() || MissionEnded() { 2924 | if MissionFailed() { 2925 | towerName := "" 2926 | global failedTower 2927 | switch i { 2928 | case 1: 2929 | towerName := "极乐净土塔" 2930 | case 2: 2931 | towerName := "米西利斯塔" 2932 | case 3: 2933 | towerName := "泰特拉塔" 2934 | case 4: 2935 | towerName := "朝圣者塔" 2936 | default: 2937 | towerName := "" 2938 | } 2939 | failedTower.Push towerName 2940 | } 2941 | 2942 | Send "{Escape}" 2943 | Sleep sleepTime 2944 | 2945 | while MissionFailed() || MissionEnded() { 2946 | Send "{Escape}" 2947 | Sleep sleepTime 2948 | } 2949 | 2950 | stdCkptX := [3738] 2951 | stdCkptY := [447] 2952 | desiredColor := ["0xF8FCFE"] 2953 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2954 | UserClick(3666, 1390, scrRatio) 2955 | Sleep sleepTime 2956 | if UserCheckColor([2088], [1327], ["0x00A0EB"], scrRatio) { 2957 | UserClick(2202, 1342, scrRatio) 2958 | Sleep sleepTime 2959 | } 2960 | } 2961 | 2962 | Sleep 5000 2963 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2964 | UserClick(3666, 1390, scrRatio) 2965 | Sleep sleepTime 2966 | if UserCheckColor([2088], [1327], ["0x00A0EB"], scrRatio) { 2967 | UserClick(2202, 1342, scrRatio) 2968 | Sleep sleepTime 2969 | } 2970 | } 2971 | 2972 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 2973 | Send "{Escape}" 2974 | Sleep sleepTime 2975 | } 2976 | 2977 | stdCkptX := [2405] 2978 | stdCkptY := [1014] 2979 | desiredColor := ["0xF8FBFE"] 2980 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) 2981 | Sleep sleepTime 2982 | 2983 | Sleep 1500 2984 | continue 2985 | } 2986 | 2987 | ;如果战斗胜利 2988 | while MissionCompleted() { 2989 | Send "t" 2990 | Sleep sleepTime 2991 | } 2992 | 2993 | goto WaitForBattleEnd 2994 | } 2995 | 2996 | ;退回大厅 2997 | stdTargetX := 301 2998 | stdTargetY := 2030 2999 | UserClick(stdTargetX, stdTargetY, scrRatio) 3000 | Sleep sleepTime 3001 | 3002 | stdCkptX := [64] 3003 | stdCkptY := [470] 3004 | desiredColor := ["0xFAA72C"] 3005 | 3006 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3007 | UserClick(stdTargetX, stdTargetY, scrRatio) 3008 | Sleep sleepTime 3009 | if A_Index > waitTolerance { 3010 | MsgBox "退回大厅失败!" 3011 | ExitApp 3012 | } 3013 | } 3014 | } 3015 | 3016 | 3017 | ;============================================================= 3018 | ;11: 进入异拦 3019 | EnterInterception() 3020 | { 3021 | stdTargetX := 2689 3022 | stdTargetY := 1463 3023 | UserClick(stdTargetX, stdTargetY, scrRatio) 3024 | Sleep sleepTime 3025 | 3026 | stdCkptX := [64] 3027 | stdCkptY := [470] 3028 | desiredColor := ["0xFAA72C"] 3029 | 3030 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3031 | UserClick(stdTargetX, stdTargetY, scrRatio) 3032 | Sleep sleepTime // 2 3033 | if A_Index > waitTolerance { 3034 | MsgBox "进入方舟失败!" 3035 | ExitApp 3036 | } 3037 | } 3038 | 3039 | stdCkptX := [1607] 3040 | stdCkptY := [283] 3041 | desiredColor := ["0x01D4F6"] 3042 | 3043 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3044 | Sleep sleepTime 3045 | if A_Index > waitTolerance { 3046 | MsgBox "进入方舟失败!" 3047 | ExitApp 3048 | } 3049 | } 3050 | 3051 | ;进入拦截战 3052 | stdTargetX := 1670 3053 | stdTargetY := 1590 3054 | UserClick(stdTargetX, stdTargetY, scrRatio) 3055 | Sleep sleepTime 3056 | 3057 | stdCkptX := [1607] 3058 | stdCkptY := [283] 3059 | desiredColor := ["0x01D4F6"] 3060 | 3061 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3062 | UserClick(stdTargetX, stdTargetY, scrRatio) 3063 | Sleep sleepTime 3064 | if A_Index > waitTolerance { 3065 | MsgBox "进入拦截战失败!" 3066 | ExitApp 3067 | } 3068 | } 3069 | 3070 | ;不勾选自动拦截就直接退出 3071 | if !isCheckedInterception 3072 | return 3073 | 3074 | /* 3075 | stdCkptX := [1917] 3076 | stdCkptY := [910] 3077 | desiredColor := ["0x037EF9"] 3078 | 3079 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3080 | Sleep sleepTime 3081 | if A_Index > waitTolerance { 3082 | MsgBox "进入拦截战失败!" 3083 | ExitApp 3084 | } 3085 | } 3086 | */ 3087 | 3088 | stdTargetX := 559 3089 | stdTargetY := 1571 3090 | UserClick(stdTargetX, stdTargetY, scrRatio) 3091 | Sleep 1000 3092 | UserClick(stdTargetX, stdTargetY, scrRatio) 3093 | Sleep 1000 3094 | UserClick(stdTargetX, stdTargetY, scrRatio) 3095 | Sleep 1000 3096 | 3097 | ;选择BOSS 3098 | switch InterceptionBoss { 3099 | case 1: 3100 | stdTargetX := 1556 3101 | stdTargetY := 886 3102 | stdCkptX := [1907] 3103 | stdCkptY := [898] 3104 | desiredColor := ["0xFA910E"] 3105 | 3106 | case 2: 3107 | stdTargetX := 2279 3108 | stdTargetY := 1296 3109 | stdCkptX := [1923] 3110 | stdCkptY := [908] 3111 | desiredColor := ["0xFB01F1"] 3112 | 3113 | case 3: 3114 | stdCkptX := [1917] 3115 | stdCkptY := [910] 3116 | desiredColor := ["0x037EF9"] 3117 | 3118 | case 4: 3119 | stdTargetX := 2281 3120 | stdTargetY := 899 3121 | stdCkptX := [1916] 3122 | stdCkptY := [907] 3123 | desiredColor := ["0x00F556"] 3124 | 3125 | case 5: 3126 | stdTargetX := 1551 3127 | stdTargetY := 1299 3128 | stdCkptX := [1919] 3129 | stdCkptY := [890] 3130 | desiredColor := ["0xFD000F"] 3131 | 3132 | default: 3133 | MsgBox "BOSS选择错误!" 3134 | ExitApp 3135 | } 3136 | 3137 | /* 3138 | if InterceptionBoss != 3 { 3139 | while UserCheckColor([1917], [910], ["0x037EF9"], scrRatio) { 3140 | UserClick(stdTargetX, stdTargetY, scrRatio) 3141 | Sleep sleepTime 3142 | if A_Index > waitTolerance { 3143 | MsgBox "选择BOSS失败!" 3144 | ExitApp 3145 | } 3146 | } 3147 | } 3148 | */ 3149 | stdTargetX := 1556 3150 | stdTargetY := 886 3151 | 3152 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3153 | UserClick(stdTargetX, stdTargetY, scrRatio) 3154 | Sleep 2000 3155 | if A_Index > waitTolerance { 3156 | MsgBox "选择BOSS失败!" 3157 | ExitApp 3158 | } 3159 | } 3160 | 3161 | ;点击挑战按钮 3162 | if UserCheckColor([1735], [1730], ["0x28282A"], scrRatio) { 3163 | stdTargetX := 301 3164 | stdTargetY := 2030 3165 | UserClick(stdTargetX, stdTargetY, scrRatio) 3166 | Sleep sleepTime 3167 | 3168 | stdCkptX := [64] 3169 | stdCkptY := [470] 3170 | desiredColor := ["0xFAA72C"] 3171 | 3172 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3173 | UserClick(stdTargetX, stdTargetY, scrRatio) 3174 | Sleep sleepTime 3175 | if A_Index > waitTolerance { 3176 | MsgBox "退回大厅失败!" 3177 | ExitApp 3178 | } 3179 | } 3180 | return 3181 | } 3182 | 3183 | stdTargetX := 1924 3184 | stdTargetY := 1779 3185 | 3186 | /* 3187 | stdCkptX := [1735] 3188 | stdCkptY := [1730] 3189 | desiredColor := [""] 3190 | 3191 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3192 | UserClick(stdTargetX, stdTargetY, scrRatio) 3193 | Sleep sleepTime 3194 | if A_Index > waitTolerance { 3195 | MsgBox "点击挑战失败!" 3196 | ExitApp 3197 | } 3198 | } 3199 | */ 3200 | 3201 | stdCkptX := [1390] 3202 | stdCkptY := [1799] 3203 | desiredColor := ["0x01AEF3"] 3204 | 3205 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3206 | UserClick(stdTargetX, stdTargetY, scrRatio) 3207 | Sleep sleepTime 3208 | if A_Index > waitTolerance { 3209 | MsgBox "点击挑战失败!" 3210 | ExitApp 3211 | } 3212 | } 3213 | 3214 | ;选择编队 3215 | switch InterceptionBoss { 3216 | case 1: 3217 | stdTargetX := 1882 3218 | stdTargetY := 1460 3219 | stdCkptX := [1843] 3220 | stdCkptY := [1428] 3221 | 3222 | case 2: 3223 | stdTargetX := 2020 3224 | stdTargetY := 1460 3225 | stdCkptX := [1981] 3226 | stdCkptY := [1428] 3227 | 3228 | case 3: 3229 | stdTargetX := 2151 3230 | stdTargetY := 1460 3231 | stdCkptX := [2113] 3232 | stdCkptY := [1428] 3233 | 3234 | case 4: 3235 | stdTargetX := 2282 3236 | stdTargetY := 1460 3237 | stdCkptX := [2248] 3238 | stdCkptY := [1428] 3239 | 3240 | case 5: 3241 | stdTargetX := 2421 3242 | stdTargetY := 1460 3243 | stdCkptX := [2380] 3244 | stdCkptY := [1428] 3245 | 3246 | default: 3247 | MsgBox "BOSS选择错误!" 3248 | ExitApp 3249 | } 3250 | 3251 | desiredColor := ["0x02ADF5"] 3252 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3253 | UserClick(stdTargetX, stdTargetY, scrRatio) 3254 | Sleep 1500 3255 | if A_Index > waitTolerance { 3256 | MsgBox "选择编队失败!" 3257 | ExitApp 3258 | } 3259 | } 3260 | 3261 | ;如果不能快速战斗,就进入战斗 3262 | stdCkptX := [1964] 3263 | stdCkptY := [1800] 3264 | desiredColor := ["0xF96B2F"] 3265 | 3266 | if !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3267 | stdTargetX := 2219 3268 | stdTargetY := 1992 3269 | stdCkptX := [1978] 3270 | stdCkptY := [1939] 3271 | desiredColor := ["0xEC2E15"] 3272 | 3273 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3274 | UserClick(stdTargetX, stdTargetY, scrRatio) 3275 | Sleep sleepTime 3276 | if A_Index > waitTolerance { 3277 | MsgBox "进入战斗失败!" 3278 | ExitApp 3279 | } 3280 | } 3281 | 3282 | ;退出结算页面 3283 | 3284 | stdTargetX := 904 3285 | stdTargetY := 1805 3286 | stdCkptX := [3731, 3713, 3638] 3287 | stdCkptY := [2040, 2034, 2091] 3288 | desiredColor := ["0xE6E6E6", "0xE6E6E6", "0x000000"] 3289 | 3290 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3291 | CheckAutoBattle() 3292 | Sleep sleepTime 3293 | if A_Index > waitTolerance * 20 { 3294 | MsgBox "自动战斗失败!" 3295 | ExitApp 3296 | } 3297 | } 3298 | 3299 | /* 3300 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3301 | UserClick(stdTargetX, stdTargetY, scrRatio) 3302 | Sleep sleepTime 3303 | if A_Index > waitTolerance { 3304 | MsgBox "退出结算页面失败!" 3305 | ExitApp 3306 | } 3307 | } 3308 | */ 3309 | } 3310 | else { 3311 | stdTargetX := 2226 3312 | stdTargetY := 1817 3313 | 3314 | stdCkptX := [1981, 2463] 3315 | stdCkptY := [1795, 1791] 3316 | desiredColor := ["0x656768", "0x656668"] 3317 | 3318 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3319 | UserClick(stdTargetX, stdTargetY, scrRatio) 3320 | Sleep sleepTime 3321 | if A_Index > waitTolerance { 3322 | MsgBox "每周快速战斗失败!" 3323 | ExitApp 3324 | } 3325 | } 3326 | } 3327 | 3328 | /* 3329 | ;检查是否退出 3330 | stdCkptX := [1390] 3331 | stdCkptY := [1799] 3332 | desiredColor := ["0x01AEF3"] 3333 | 3334 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3335 | Sleep sleepTime 3336 | if A_Index > waitTolerance { 3337 | MsgBox "退出结算页面失败!" 3338 | ExitApp 3339 | } 3340 | } 3341 | */ 3342 | 3343 | ;快速战斗 3344 | /* 3345 | stdTargetX := 2229 3346 | stdTargetY := 1842 3347 | stdCkptX := [1964] 3348 | stdCkptY := [1800] 3349 | desiredColor := ["0xF96B2F"] 3350 | 3351 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3352 | UserClick(stdTargetX, stdTargetY, scrRatio) 3353 | Sleep sleepTime 3354 | 3355 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3356 | UserClick(stdTargetX, stdTargetY, scrRatio) 3357 | Sleep sleepTime 3358 | if A_Index > waitTolerance { 3359 | MsgBox "快速战斗失败!" 3360 | ExitApp 3361 | } 3362 | } 3363 | 3364 | ;退出结算页面 3365 | stdTargetX := 904 3366 | stdTargetY := 1805 3367 | stdCkptX := [2232, 2391, 2464] 3368 | stdCkptY := [2100, 2099, 2051] 3369 | desiredColor := ["0x000000", "0x000000", "0x000000"] 3370 | 3371 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3372 | Sleep sleepTime 3373 | if A_Index > waitTolerance { 3374 | MsgBox "快速战斗结算失败!" 3375 | ExitApp 3376 | } 3377 | } 3378 | 3379 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3380 | UserClick(stdTargetX, stdTargetY, scrRatio) 3381 | Sleep sleepTime 3382 | if A_Index > waitTolerance { 3383 | MsgBox "退出结算页面失败!" 3384 | ExitApp 3385 | } 3386 | } 3387 | /* 3388 | stdTargetX := 904 3389 | stdTargetY := 1805 3390 | stdCkptX := [1893, 1913, 1933] 3391 | stdCkptY := [1951, 1948, 1956] 3392 | desiredColor := ["0xFFFFFF", "0xFFFFFF", "0xFFFFFF"] 3393 | 3394 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3395 | Sleep sleepTime 3396 | if A_Index > waitTolerance { 3397 | MsgBox "快速战斗结算失败!" 3398 | ExitApp 3399 | } 3400 | } 3401 | 3402 | while UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3403 | UserClick(stdTargetX, stdTargetY, scrRatio) 3404 | Sleep sleepTime 3405 | if A_Index > waitTolerance { 3406 | MsgBox "退出结算页面失败!" 3407 | ExitApp 3408 | } 3409 | } 3410 | 3411 | ;检查是否退出 3412 | stdCkptX := [1390] 3413 | stdCkptY := [1799] 3414 | desiredColor := ["0x01AEF3"] 3415 | 3416 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3417 | Sleep sleepTime 3418 | if A_Index > waitTolerance { 3419 | MsgBox "退出结算页面失败!" 3420 | ExitApp 3421 | } 3422 | } 3423 | 3424 | Sleep 1000 3425 | 3426 | stdTargetX := 2229 3427 | stdTargetY := 1842 3428 | stdCkptX := [1964] 3429 | stdCkptY := [1800] 3430 | desiredColor := ["0xF96B2F"] 3431 | } 3432 | 3433 | ;退回大厅 3434 | stdTargetX := 301 3435 | stdTargetY := 2030 3436 | UserClick(stdTargetX, stdTargetY, scrRatio) 3437 | Sleep sleepTime 3438 | 3439 | stdCkptX := [64] 3440 | stdCkptY := [470] 3441 | desiredColor := ["0xFAA72C"] 3442 | 3443 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3444 | UserClick(stdTargetX, stdTargetY, scrRatio) 3445 | Sleep sleepTime 3446 | if A_Index > waitTolerance { 3447 | MsgBox "退回大厅失败!" 3448 | ExitApp 3449 | } 3450 | } 3451 | */ 3452 | 3453 | ;进入特殊拦截战 3454 | /* 3455 | stdTargetX := 2059 3456 | stdTargetY := 1689 3457 | UserClick(stdTargetX, stdTargetY, scrRatio) 3458 | Sleep sleepTime 3459 | 3460 | stdCkptX := [1425] 3461 | stdCkptY := [1852] 3462 | desiredColor := ["0x02AEF5"] 3463 | 3464 | while !UserCheckColor(stdCkptX, stdCkptY, desiredColor, scrRatio) { 3465 | UserClick(stdTargetX, stdTargetY, scrRatio) 3466 | Sleep sleepTime 3467 | if A_Index > waitTolerance { 3468 | MsgBox "进入特殊拦截战失败!" 3469 | ExitApp 3470 | } 3471 | } 3472 | */ 3473 | } 3474 | 3475 | 3476 | ClickOnOutpostDefence(*) 3477 | { 3478 | global isCheckedOutposeDefence 3479 | isCheckedOutposeDefence := 1 - isCheckedOutposeDefence 3480 | } 3481 | 3482 | ClickOnCashShop(*) 3483 | { 3484 | global isCheckedCashShop 3485 | isCheckedCashShop := 1 - isCheckedCashShop 3486 | } 3487 | 3488 | ClickOnFreeShop(*) 3489 | { 3490 | global isCheckedFreeShop 3491 | isCheckedFreeShop := 1 - isCheckedFreeShop 3492 | } 3493 | 3494 | ClickOnExpedition(*) 3495 | { 3496 | global isCheckedExpedtion 3497 | isCheckedExpedtion := 1 - isCheckedExpedtion 3498 | } 3499 | 3500 | ClickOnFriendPoint(*) 3501 | { 3502 | global isCheckedFriendPoint 3503 | isCheckedFriendPoint := 1 - isCheckedFriendPoint 3504 | } 3505 | 3506 | ClickOnMail(*) 3507 | { 3508 | global isCheckedMail 3509 | isCheckedMail := 1 - isCheckedMail 3510 | } 3511 | 3512 | ClickOnSimulationRoom(*) 3513 | { 3514 | global isCheckedSimulationRoom 3515 | isCheckedSimulationRoom := 1 - isCheckedSimulationRoom 3516 | } 3517 | 3518 | ClickOnRookieArena(*) 3519 | { 3520 | global isCheckedRookieArena 3521 | isCheckedRookieArena := 1 - isCheckedRookieArena 3522 | } 3523 | 3524 | ClickOnLoveTalking(*) 3525 | { 3526 | global isCheckedLoveTalking 3527 | isCheckedLoveTalking := 1 - isCheckedLoveTalking 3528 | } 3529 | 3530 | ClickOnCompanyTower(*) 3531 | { 3532 | global isCheckedCompanyTower 3533 | isCheckedCompanyTower := 1 - isCheckedCompanyTower 3534 | } 3535 | 3536 | ClickOnTribeTower(*) 3537 | { 3538 | global isCheckedTribeTower 3539 | isCheckedTribeTower := 1 - isCheckedTribeTower 3540 | } 3541 | 3542 | ClickOnCompanyWeapon(*) 3543 | { 3544 | global isCheckedCompanyWeapon 3545 | isCheckedCompanyWeapon := 1 - isCheckedCompanyWeapon 3546 | } 3547 | 3548 | ClickOnInterception(*) 3549 | { 3550 | global isCheckedInterception 3551 | isCheckedInterception := 1 - isCheckedInterception 3552 | } 3553 | 3554 | ClickOnLongTalk(*) 3555 | { 3556 | global isCheckedLongTalk 3557 | isCheckedLongTalk := 1 - isCheckedLongTalk 3558 | } 3559 | 3560 | ClickAutoCheckUpdate(*) 3561 | { 3562 | global isCheckedAutoCheckUpdate 3563 | isCheckedAutoCheckUpdate := 1 - isCheckedAutoCheckUpdate 3564 | } 3565 | 3566 | ClickOnFireBook(*) 3567 | { 3568 | global isCheckedBook 3569 | isCheckedBook[1] := 1 - isCheckedBook[1] 3570 | } 3571 | 3572 | ClickOnWaterBook(*) 3573 | { 3574 | global isCheckedBook 3575 | isCheckedBook[2] := 1 - isCheckedBook[2] 3576 | } 3577 | 3578 | ClickOnWindBook(*) 3579 | { 3580 | global isCheckedBook 3581 | isCheckedBook[3] := 1 - isCheckedBook[3] 3582 | } 3583 | 3584 | ClickOnElecBook(*) 3585 | { 3586 | global isCheckedBook 3587 | isCheckedBook[4] := 1 - isCheckedBook[4] 3588 | } 3589 | 3590 | ClickOnIronBook(*) 3591 | { 3592 | global isCheckedBook 3593 | isCheckedBook[5] := 1 - isCheckedBook[5] 3594 | } 3595 | 3596 | ChangeOnNumOfBook(GUICtrl, *) 3597 | { 3598 | global numOfBook 3599 | numOfBook := GUICtrl.Value - 1 3600 | } 3601 | 3602 | ChangeOnNumOfBattle(GUICtrl, *) 3603 | { 3604 | global numOfBattle 3605 | numOfBattle := GUICtrl.Value + 1 3606 | } 3607 | 3608 | ChangeOnNumOfLoveTalking(GUICtrl, *) 3609 | { 3610 | global numOfLoveTalking 3611 | numOfLoveTalking := GUICtrl.Value 3612 | } 3613 | 3614 | ChangeOnInterceptionBoss(GUICtrl, *) 3615 | { 3616 | global InterceptionBoss 3617 | InterceptionBoss := GUICtrl.Value 3618 | } 3619 | 3620 | ChangeOnSleepTime(GUICtrl, *) 3621 | { 3622 | global sleepTime 3623 | switch GUICtrl.Value { 3624 | case 1: sleepTime := 750 3625 | case 2: sleepTime := 1000 3626 | case 3: sleepTime := 1250 3627 | case 4: sleepTime := 1500 3628 | case 5: sleepTime := 1750 3629 | case 6: sleepTime := 2000 3630 | default: sleepTime := 1500 3631 | } 3632 | } 3633 | 3634 | ChangeOnColorTolerance(GUICtrl, *) 3635 | { 3636 | global colorTolerance 3637 | switch GUICtrl.Value { 3638 | case 1: colorTolerance := 15 3639 | case 2: colorTolerance := 35 3640 | default: colorTolerance := 15 3641 | } 3642 | } 3643 | 3644 | ClickOnHelp(*) 3645 | { 3646 | msgbox " 3647 | ( 3648 | ############################################# 3649 | 使用说明 3650 | 3651 | 对大多数老玩家来说Doro设置保持默认就好。 3652 | 万一Doro失控,请按Ctrl + 1组合键结束进程。 3653 | 万一Doro失控,请按Ctrl + 1组合键结束进程。 3654 | 万一Doro失控,请按Ctrl + 1组合键结束进程。 3655 | 3656 | ############################################# 3657 | 要求: 3658 | 3659 | - 【设定-画质-全屏幕模式 + 16:9的显示器比例】(推荐) 或 【16:9的窗口模式(窗口尽量拉大,否则像素识别可能出现误差)】 3660 | - 设定-画质-开启光晕效果 3661 | - 设定-画质-开启颜色分级 3662 | - 游戏语言设置为简体中文 3663 | - 以**管理员身份**运行DoroHelper 3664 | - 不要开启windows HDR显示 3665 | 3666 | ############################################# 3667 | 步骤: 3668 | 3669 | -打开NIKKE启动器。点击启动。等右下角腾讯ACE反作弊系统扫完,NIKKE主程序中央SHIFT UP logo出现之后,再切出来点击“DORO!”按钮。如果你看到鼠标开始在左下角连点,那就代表启动成功了。然后就可以悠闲地去泡一杯咖啡,或者刷一会儿手机,等待Doro完成工作了。 3670 | -也可以在游戏处在大厅界面时(有看板娘的页面)切出来点击“DORO!”按钮启动程序。 3671 | -游戏需要更新的时候请更新完再使用Doro。 3672 | 3673 | ############################################# 3674 | 其他: 3675 | 3676 | -检查是否发布了新版本。 3677 | -如果出现死循环,提高点击间隔可以解决80%的问题。 3678 | -如果你的电脑配置较好的话,或许可以尝试降低点击间隔。 3679 | 3680 | )" 3681 | 3682 | } 3683 | 3684 | ClickOnDoro(*) 3685 | { 3686 | WriteSettings() 3687 | 3688 | title := "勝利女神:妮姬" 3689 | try { 3690 | WinGetClientPos ,, &userScreenW, &userScreenH, "勝利女神:妮姬" 3691 | } catch as err { 3692 | title := "ahk_exe nikke.exe" 3693 | } 3694 | 3695 | numNikke := WinGetCount(title) 3696 | 3697 | if numNikke = 0 { 3698 | MsgBox "未检测到NIKKE主程序" 3699 | ExitApp 3700 | } 3701 | 3702 | loop numNikke { 3703 | 3704 | nikkeID := WinGetIDLast(title) 3705 | 3706 | WinGetClientPos ,, &userScreenW, &userScreenH, nikkeID 3707 | global scrRatio 3708 | scrRatio := userScreenW / stdScreenW 3709 | 3710 | ;nikkeID := WinWait(title) 3711 | WinActivate nikkeID 3712 | 3713 | Login() 3714 | 3715 | if isCheckedOutposeDefence 3716 | OutpostDefence() 3717 | 3718 | if isCheckedCashShop 3719 | CashShop() 3720 | 3721 | if isCheckedFreeShop 3722 | FreeShop(numOfBook) 3723 | 3724 | ;if isCheckedOutposeDefence 3725 | ; OutpostDefence() 3726 | 3727 | if isCheckedExpedtion 3728 | Expedition() 3729 | 3730 | if isCheckedFriendPoint 3731 | FriendPoint() 3732 | 3733 | if isCheckedMail 3734 | Mail() 3735 | 3736 | if isCheckedSimulationRoom 3737 | SimulationRoom() 3738 | 3739 | if isCheckedRookieArena 3740 | RookieArena(numOfBattle) 3741 | 3742 | if isCheckedLoveTalking 3743 | LoveTalking(numOfLoveTalking) 3744 | 3745 | if isCheckedTribeTower 3746 | TribeTower() 3747 | 3748 | if isCheckedCompanyTower && !isCheckedTribeTower 3749 | CompanyTower() 3750 | 3751 | EnterInterception() 3752 | 3753 | } 3754 | 3755 | if isBoughtTrash == 0 3756 | MsgBox "协同作战商店似乎已经刷新了,快去看看吧" 3757 | 3758 | if isOverclockRefreshed == 1 3759 | MsgBox "模拟室超频已经刷新了,快去看看吧" 3760 | 3761 | MsgBox "Doro完成任务!记得异拦再扫荡两次,竞猜、签到等活动清完哦~" CompanyTowerInfo() 3762 | 3763 | ExitApp 3764 | } 3765 | 3766 | 3767 | SleepTimeToLabel(sleepTime) 3768 | { 3769 | return String(sleepTime / 250 - 2) 3770 | } 3771 | 3772 | 3773 | ColorToleranceToLabel(colorTolerance) 3774 | { 3775 | switch colorTolerance { 3776 | case 15: return "1" 3777 | case 35: return "2" 3778 | default: 3779 | return "1" 3780 | } 3781 | } 3782 | 3783 | 3784 | IsCheckedToString(foo) 3785 | { 3786 | if foo 3787 | return "Checked" 3788 | else 3789 | return "" 3790 | } 3791 | 3792 | 3793 | NumOfBookToLabel(n) 3794 | { 3795 | return String(n + 1) 3796 | } 3797 | 3798 | 3799 | NumOfBattleToLabel(n) 3800 | { 3801 | return String(n - 1) 3802 | } 3803 | 3804 | NumOfLoveTalkingToLabel(n) 3805 | { 3806 | return String(n) 3807 | } 3808 | 3809 | InterceptionBossToLabel(n) 3810 | { 3811 | return String(n) 3812 | } 3813 | 3814 | 3815 | WriteSettings() 3816 | { 3817 | IniWrite(sleepTime, "settings.ini", "section1", "sleepTime") 3818 | IniWrite(colorTolerance, "settings.ini", "section1", "colorTolerance") 3819 | IniWrite(isCheckedOutposeDefence, "settings.ini", "section1", "isCheckedOutposeDefence") 3820 | IniWrite(isCheckedCashShop, "settings.ini", "section1", "isCheckedCashShop") 3821 | IniWrite(isCheckedFreeShop, "settings.ini", "section1", "isCheckedFreeShop") 3822 | IniWrite(isCheckedExpedtion, "settings.ini", "section1", "isCheckedExpedtion") 3823 | IniWrite(isCheckedFriendPoint, "settings.ini", "section1", "isCheckedFriendPoint") 3824 | IniWrite(isCheckedMail, "settings.ini", "section1", "isCheckedMail") 3825 | IniWrite(isCheckedSimulationRoom, "settings.ini", "section1", "isCheckedSimulationRoom") 3826 | IniWrite(isCheckedRookieArena, "settings.ini", "section1", "isCheckedRookieArena") 3827 | IniWrite(isCheckedLoveTalking, "settings.ini", "section1", "isCheckedLoveTalking") 3828 | IniWrite(isCheckedCompanyTower, "settings.ini", "section1", "isCheckedCompanyTower") 3829 | IniWrite(isCheckedTribeTower, "settings.ini", "section1", "isCheckedTribeTower") 3830 | IniWrite(isCheckedCompanyWeapon, "settings.ini", "section1", "isCheckedCompanyWeapon") 3831 | IniWrite(numOfBook, "settings.ini", "section1", "numOfBook") 3832 | IniWrite(numOfBattle, "settings.ini", "section1", "numOfBattle") 3833 | IniWrite(numOfLoveTalking, "settings.ini", "section1", "numOfLoveTalking") 3834 | IniWrite(isCheckedInterception, "settings.ini", "section1", "isCheckedInterception") 3835 | IniWrite(InterceptionBoss, "settings.ini", "section1", "InterceptionBoss") 3836 | IniWrite(isCheckedLongTalk, "settings.ini", "section1", "isCheckedLongTalk") 3837 | IniWrite(isCheckedAutoCheckUpdate, "settings.ini", "section1", "isCheckedAutoCheckUpdate") 3838 | IniWrite(isCheckedBook[1], "settings.ini", "section1", "isCheckedBook[1]") 3839 | IniWrite(isCheckedBook[2], "settings.ini", "section1", "isCheckedBook[2]") 3840 | IniWrite(isCheckedBook[3], "settings.ini", "section1", "isCheckedBook[3]") 3841 | IniWrite(isCheckedBook[4], "settings.ini", "section1", "isCheckedBook[4]") 3842 | IniWrite(isCheckedBook[5], "settings.ini", "section1", "isCheckedBook[5]") 3843 | } 3844 | 3845 | 3846 | LoadSettings() 3847 | { 3848 | global sleepTime 3849 | global colorTolerance 3850 | global isCheckedOutposeDefence 3851 | global isCheckedCashShop 3852 | global isCheckedFreeShop 3853 | global isCheckedExpedtion 3854 | global isCheckedFriendPoint 3855 | global isCheckedMail 3856 | global isCheckedSimulationRoom 3857 | global isCheckedRookieArena 3858 | global isCheckedLoveTalking 3859 | global isCheckedCompanyTower 3860 | global isCheckedTribeTower 3861 | global isCheckedCompanyWeapon 3862 | global numOfBook 3863 | global numOfBattle 3864 | global numOfLoveTalking 3865 | global isCheckedInterception 3866 | global InterceptionBoss 3867 | global isCheckedLongTalk 3868 | global isCheckedAutoCheckUpdate 3869 | global isCheckedBook 3870 | 3871 | sleepTime := IniRead("settings.ini", "section1", "sleepTime") 3872 | colorTolerance := IniRead("settings.ini", "section1", "colorTolerance") 3873 | isCheckedOutposeDefence := IniRead("settings.ini", "section1", "isCheckedOutposeDefence") 3874 | isCheckedCashShop := IniRead("settings.ini", "section1", "isCheckedCashShop") 3875 | isCheckedFreeShop := IniRead("settings.ini", "section1", "isCheckedFreeShop") 3876 | isCheckedExpedtion := IniRead("settings.ini", "section1", "isCheckedExpedtion") 3877 | isCheckedFriendPoint := IniRead("settings.ini", "section1", "isCheckedFriendPoint") 3878 | isCheckedSimulationRoom := IniRead("settings.ini", "section1", "isCheckedSimulationRoom") 3879 | isCheckedRookieArena := IniRead("settings.ini", "section1", "isCheckedRookieArena") 3880 | isCheckedLoveTalking := IniRead("settings.ini", "section1", "isCheckedLoveTalking") 3881 | isCheckedTribeTower := IniRead("settings.ini", "section1", "isCheckedTribeTower") 3882 | isCheckedCompanyWeapon := IniRead("settings.ini", "section1", "isCheckedCompanyWeapon") 3883 | numOfBook := IniRead("settings.ini", "section1", "numOfBook") 3884 | numOfBattle := IniRead("settings.ini", "section1", "numOfBattle") 3885 | numOfLoveTalking := IniRead("settings.ini", "section1", "numOfLoveTalking") 3886 | 3887 | try { 3888 | isCheckedInterception := IniRead("settings.ini", "section1", "isCheckedInterception") 3889 | } 3890 | catch as err { 3891 | IniWrite(isCheckedInterception, "settings.ini", "section1", "isCheckedInterception") 3892 | } 3893 | 3894 | try { 3895 | InterceptionBoss := IniRead("settings.ini", "section1", "InterceptionBoss") 3896 | } 3897 | catch as err { 3898 | IniWrite(InterceptionBoss, "settings.ini", "section1", "InterceptionBoss") 3899 | } 3900 | 3901 | try { 3902 | isCheckedCompanyTower := IniRead("settings.ini", "section1", "isCheckedCompanyTower") 3903 | } 3904 | catch as err { 3905 | IniWrite(isCheckedCompanyTower, "settings.ini", "section1", "isCheckedCompanyTower") 3906 | } 3907 | 3908 | try { 3909 | isCheckedLongTalk := IniRead("settings.ini", "section1", "isCheckedLongTalk") 3910 | } 3911 | catch as err { 3912 | IniWrite(isCheckedLongTalk, "settings.ini", "section1", "isCheckedLongTalk") 3913 | } 3914 | 3915 | try { 3916 | isCheckedAutoCheckUpdate := IniRead("settings.ini", "section1", "isCheckedAutoCheckUpdate") 3917 | } 3918 | catch as err { 3919 | IniWrite(isCheckedAutoCheckUpdate, "settings.ini", "section1", "isCheckedAutoCheckUpdate") 3920 | } 3921 | 3922 | try { 3923 | isCheckedBook[1] := IniRead("settings.ini", "section1", "isCheckedBook[1]") 3924 | } 3925 | catch as err { 3926 | IniWrite(isCheckedBook[1], "settings.ini", "section1", "isCheckedBook[1]") 3927 | } 3928 | 3929 | try { 3930 | isCheckedBook[2] := IniRead("settings.ini", "section1", "isCheckedBook[2]") 3931 | } 3932 | catch as err { 3933 | IniWrite(isCheckedBook[2], "settings.ini", "section1", "isCheckedBook[2]") 3934 | } 3935 | 3936 | try { 3937 | isCheckedBook[3] := IniRead("settings.ini", "section1", "isCheckedBook[3]") 3938 | } 3939 | catch as err { 3940 | IniWrite(isCheckedBook[3], "settings.ini", "section1", "isCheckedBook[3]") 3941 | } 3942 | 3943 | try { 3944 | isCheckedBook[4] := IniRead("settings.ini", "section1", "isCheckedBook[4]") 3945 | } 3946 | catch as err { 3947 | IniWrite(isCheckedBook[4], "settings.ini", "section1", "isCheckedBook[4]") 3948 | } 3949 | 3950 | try { 3951 | isCheckedBook[5] := IniRead("settings.ini", "section1", "isCheckedBook[5]") 3952 | } 3953 | catch as err { 3954 | IniWrite(isCheckedBook[5], "settings.ini", "section1", "isCheckedBook[5]") 3955 | } 3956 | 3957 | try { 3958 | isCheckedMail := IniRead("settings.ini", "section1", "isCheckedMail") 3959 | } 3960 | catch as err { 3961 | IniWrite(isCheckedMail, "settings.ini", "section1", "isCheckedMail") 3962 | } 3963 | } 3964 | 3965 | 3966 | isCheckedOutposeDefence := 1 3967 | isCheckedCashShop := 1 3968 | isCheckedFreeShop := 1 3969 | isCheckedExpedtion := 1 3970 | isCheckedFriendPoint := 1 3971 | isCheckedMail := 1 3972 | isCheckedSimulationRoom := 1 3973 | isCheckedRookieArena := 1 3974 | isCheckedLoveTalking := 1 3975 | isCheckedCompanyWeapon := 1 3976 | isCheckedInterception := 0 3977 | isCheckedCompanyTower := 1 3978 | isCheckedTribeTower := 0 3979 | isCheckedLongTalk := 1 3980 | isCheckedAutoCheckUpdate := 0 3981 | isCheckedBook := [1, 1, 1, 1, 1] 3982 | InterceptionBoss := 1 3983 | numOfBook := 3 3984 | numOfBattle := 5 3985 | numOfLoveTalking := 10 3986 | isBoughtTrash := 1 3987 | isOverclockRefreshed := 0 3988 | 3989 | 3990 | /* 3991 | ^1::{ 3992 | MsgBox isCheckedOutposeDefence " " isCheckedCashShop " " isCheckedFreeShop " " isCheckedExpedtion " " isCheckedFriendPoint " " isCheckedMail " " isCheckedSimulationRoom " " isCheckedRookieArena " " isCheckedLoveTalking " " isCheckedTribeTower 3993 | } 3994 | ^2::{ 3995 | MsgBox colorTolerance 3996 | } 3997 | */ 3998 | 3999 | if !A_IsAdmin { 4000 | MsgBox "请以管理员身份运行Doro" 4001 | ExitApp 4002 | } 4003 | 4004 | ;读取设置 4005 | SetWorkingDir A_ScriptDir 4006 | try { 4007 | LoadSettings() 4008 | } 4009 | catch as err { 4010 | WriteSettings() 4011 | } 4012 | 4013 | /* 4014 | if not FileExist("settings.ini") { 4015 | ;MsgBox "write" 4016 | WriteSettings() 4017 | } else { 4018 | ;MsgBox "load" 4019 | LoadSettings() 4020 | } 4021 | */ 4022 | 4023 | if isCheckedAutoCheckUpdate { 4024 | CheckForUpdate() 4025 | } 4026 | 4027 | ;创建gui 4028 | doroGui := Gui(, "DoroHelper " currentVersion) 4029 | doroGui.Opt("+Resize") 4030 | doroGui.MarginY := Round(doroGui.MarginY * 0.9) 4031 | doroGui.SetFont("cred s15") 4032 | doroGui.Add("Text", "R1", "紧急停止按ctrl + 1") 4033 | doroGui.Add("Link"," R1", '项目地址') 4034 | doroGui.SetFont() 4035 | doroGui.Add("Button", "R1 x+10", "帮助").OnEvent("Click", ClickOnHelp) 4036 | doroGui.Add("Button","R1 x+10","检查怀旧版更新").OnEvent("Click", ClickOnCheckForUpdate) 4037 | Tab := doroGui.Add("Tab3","xm") ;由于bug只能这样写 4038 | Tab.Add(["doro设置","收获","日常","默认参数"]) 4039 | Tab.UseTab("doro设置") 4040 | doroGui.Add("Checkbox", IsCheckedToString(isCheckedAutoCheckUpdate) "R2", "自动检查更新(确保能连上github)").OnEvent("Click", ClickAutoCheckUpdate) 4041 | doroGui.Add("Text",, "点击间隔(单位毫秒),谨慎更改") 4042 | doroGui.Add("DropDownList", "Choose" SleepTimeToLabel(sleepTime), [750, 1000, 1250, 1500, 1750, 2000]).OnEvent("Change", ChangeOnSleepTime) 4043 | doroGui.Add("Text",, "色差容忍度,能跑就别改") 4044 | doroGui.Add("DropDownList", "Choose" ColorToleranceToLabel(colorTolerance), ["严格", "宽松"]).OnEvent("Change", ChangeOnColorTolerance) 4045 | Tab.UseTab("收获") 4046 | doroGui.Add("Checkbox", IsCheckedToString(isCheckedOutposeDefence) " R1.2", "领取前哨基地防御奖励+1次免费歼灭").OnEvent("Click", ClickOnOutpostDefence) 4047 | doroGui.Add("Checkbox", IsCheckedToString(isCheckedCashShop) " R1.2", "领取付费商店免费钻(进不了商店的别选)").OnEvent("Click", ClickOnCashShop) 4048 | doroGui.Add("Checkbox", IsCheckedToString(isCheckedExpedtion) " R1.2", "派遣委托").OnEvent("Click", ClickOnExpedition) 4049 | doroGui.Add("Checkbox", IsCheckedToString(isCheckedFriendPoint) " R1.2", "好友点数收取").OnEvent("Click", ClickOnFriendPoint) 4050 | doroGui.Add("Checkbox", IsCheckedToString(isCheckedMail) " R1.2", "邮箱收取").OnEvent("Click", ClickOnMail) 4051 | Tab.UseTab("日常") 4052 | doroGui.Add("Checkbox", IsCheckedToString(isCheckedFreeShop) " R1.2 Section ", "普通商店 每日白嫖2次,并购买手册:").OnEvent("Click", ClickOnFreeShop) 4053 | doroGui.Add("Checkbox", IsCheckedToString(isCheckedBook[1]) " R1.2 XP+15 Y+M", "燃烧").OnEvent("Click", ClickOnFireBook) 4054 | doroGui.Add("Checkbox", IsCheckedToString(isCheckedBook[2]) " R1.2 X+1", "水冷").OnEvent("Click", ClickOnWaterBook) 4055 | doroGui.Add("Checkbox", IsCheckedToString(isCheckedBook[3]) " R1.2 X+1", "风压").OnEvent("Click", ClickOnWindBook) 4056 | doroGui.Add("Checkbox", IsCheckedToString(isCheckedBook[4]) " R1.2 X+1", "电击").OnEvent("Click", ClickOnElecBook) 4057 | doroGui.Add("Checkbox", IsCheckedToString(isCheckedBook[5]) " R1.2 X+1", "铁甲").OnEvent("Click", ClickOnIronBook) 4058 | doroGui.Add("Checkbox", IsCheckedToString(isCheckedCompanyWeapon) " R1.2 xs+15", "购买公司武器熔炉").OnEvent("Click", ClickOnCompanyWeapon) 4059 | doroGui.Add("Checkbox", IsCheckedToString(isCheckedSimulationRoom) " R1.2 xs", "模拟室5C(普通关卡需要快速战斗)").OnEvent("Click", ClickOnSimulationRoom) 4060 | doroGui.Add("Checkbox", IsCheckedToString(isCheckedRookieArena) " R1.2", "新人竞技场(请点开快速战斗)").OnEvent("Click", ClickOnRookieArena) 4061 | doroGui.Add("Checkbox", IsCheckedToString(isCheckedLoveTalking) " " " R1.2 xs Section", "咨询妮姬(可以通过收藏改变妮姬排序)").OnEvent("Click", ClickOnLoveTalking) 4062 | doroGui.Add("Checkbox", IsCheckedToString(isCheckedLongTalk) " R1.2 XP+15 Y+M", "若图鉴未满,则进行详细咨询").OnEvent("Click", ClickOnLongTalk) 4063 | doroGui.Add("Checkbox", IsCheckedToString(isCheckedCompanyTower) " R1.2 xs Section", "爬企业塔").OnEvent("Click", ClickOnCompanyTower) 4064 | doroGui.Add("Checkbox", IsCheckedToString(isCheckedTribeTower) " R1.2 XP+15 Y+M", "只完成每日任务,在进入后直接退出").OnEvent("Click", ClickOnTribeTower) 4065 | doroGui.Add("Checkbox", IsCheckedToString(isCheckedInterception) " R1.2 xs", "使用对应编队进行异常拦截自动战斗").OnEvent("Click", ClickOnInterception) 4066 | doroGui.Add("Text", "XP+15 Y+M", "打哪个boss?(勾选上条生效,否则停在异拦界面)") 4067 | doroGui.Add("DropDownList", "Choose" InterceptionBossToLabel(InterceptionBoss), ["克拉肯(石),编队1", "过激派(头),编队2", "镜像容器(手),编队3", "茵迪维利亚(衣),编队4", "死神(脚),编队5"]).OnEvent("Change", ChangeOnInterceptionBoss) 4068 | Tab.UseTab("默认参数") 4069 | doroGui.Add("Text", , "购买几本属性书?") 4070 | doroGui.Add("DropDownList", "Choose" NumOfBookToLabel(numOfBook), [0, 1, 2, 3]).OnEvent("Change", ChangeOnNumOfBook) 4071 | doroGui.Add("Text", , "新人竞技场打几次?") 4072 | doroGui.Add("DropDownList", "Choose" NumOfBattleToLabel(numOfBattle), [2, 3, 4, 5]).OnEvent("Change", ChangeOnNumOfBattle) 4073 | doroGui.Add("Text", , "咨询几位妮姬?") 4074 | doroGui.Add("DropDownList", "Choose" NumOfLoveTalkingToLabel(numOfLoveTalking), [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).OnEvent("Change", ChangeOnNumOfLoveTalking) 4075 | Tab.UseTab() 4076 | doroGui.Add("Button", "Default w80 xm+110", "DORO!").OnEvent("Click", ClickOnDoro) 4077 | doroGui.Show() 4078 | 4079 | ^1::{ 4080 | ExitApp 4081 | } 4082 | 4083 | 4084 | 4085 | 4086 | 4087 | 4088 | /* 4089 | ;登陆到主界面 4090 | Login() 4091 | 4092 | ;前哨基地防御奖励 4093 | OutpostDefence() 4094 | 4095 | ;付费商店领免费钻 4096 | CashShop() 4097 | 4098 | ;普通商店白嫖 4099 | FreeShop() 4100 | 4101 | ;派遣 4102 | Expedition() 4103 | 4104 | ;好友点数收取 4105 | FriendPoint() 4106 | 4107 | ;模拟室5C(不拿buff) 4108 | SimulationRoom() 4109 | 4110 | RookieArenaTimes := 0 4111 | 4112 | ;新人竞技场n次打第三位,顺带收50%以上的菜 4113 | RookieArena(RookieArenaTimes) 4114 | 4115 | LoveTalkingTimes := 10 4116 | 4117 | ;对前n位nikke进行好感度咨询(可以通过收藏把想要咨询的nikke排到前面) 4118 | ;LoveTalking(LoveTalkingTimes) 4119 | 4120 | ;爬塔一次(蹭每日任务) 4121 | TribeTower() 4122 | 4123 | ;再次收前哨基地防御奖励(蹭每日任务) 4124 | OutpostDefence() 4125 | 4126 | ;进入特拦界面 4127 | EnterInterception() 4128 | 4129 | ;邮箱收取 4130 | Mail() 4131 | */ --------------------------------------------------------------------------------