├── Old ├── main.ahk ├── main1.ahk ├── main2.ahk ├── main3.ahk └── 原神-new.ahk ├── README.md ├── main4-Gai.ahk ├── main5-Gai.ahk └── main5.ahk /Old/main.ahk: -------------------------------------------------------------------------------- 1 | ;### 用前须知 2 | ;本脚本修改自b站火er丶:https://space.bilibili.com/12586633 的脚本 3 | ;仅仅做了下判定点的修改,相比较原版速度变慢,但误触发NPC几率减小(有时候还是会触发) 4 | ;1080P适用,若有问题需要自己修改判定点坐标,详细查看火er丶的视频:https://www.bilibili.com/video/BV1JA411s7Ud 5 | 6 | ;### 功能 7 | ;自动拾取,自动点击传送点坐标 8 | 9 | ;### 使用方法: 10 | ;1、安装ahk 11 | ;2、打开main.ahk(需要管理员权限才能正常使用) 12 | ;3、进入游戏后,按F10开关(下面代码可以自行改按键),屏幕左下角出现on则代表已启动 13 | ;4、release的exe无需ahk即可运行 14 | 15 | ;### 若无法正常运行? 16 | ;1、是否1080P,否的话需要自己手动修改判定点坐标 17 | ;2、是否右键以管理员模式启动 18 | ;3、游戏中按F10左下角出现on才算成功运行 19 | 20 | ;------------------------------------------------启动原神 ↓↓↓ 21 | run C:\Users\test\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\YuanShen.lnk ;可修改为自己的路径 22 | 23 | ;------------------------------------------------原神下才有效果 ↓↓↓ 24 | #IfWinActive ahk_exe YuanShen.exe 25 | SysGet, VirtualWidth, 16 26 | SysGet, VirtualHeight, 17 27 | CoordMode, ToolTip, Screen 28 | CoordMode, ToolTip, Screen 29 | 30 | ;-------------------------------------------------定义变量 ↓↓↓ 31 | GetColor(x,y) 32 | { 33 | PixelGetColor, color, x, y, RGB 34 | StringRight color,color,10 ; 35 | return color 36 | } 37 | ;-------------------------------------------------随机需要的勾子 ↓↓↓ 38 | sleep(duration) ; duration:持续时间 39 | { 40 | SleepDuration:= duration ;这里有时可以根据下面的值进行细微调整(例如 2 与 3 的区别). 41 | DllCall("Sleep", UInt, SleepDuration) ; 必须使用 DllCall 而不是 Sleep 命令. 42 | DllCall("Winmm\timeEndPeriod", UInt, TimePeriod) ; 应该进行调用来让系统恢复正常. 43 | } 44 | ;--------------------------------------------------F键 自动拾取 ↓↓↓ 45 | #IfWinActive ahk_exe YuanShen.exe 46 | #Persistent 47 | #SingleInstance 48 | v_Enable=true 49 | F10:: ;F10开关,可自行修改 50 | { 51 | v_Enable:=!v_Enable 52 | if (v_Enable=true ) ; 53 | { 54 | SetTimer, Label, Off 55 | ToolTip 56 | } 57 | else 58 | { 59 | SetTimer, Label, 60 | ToolTip on ,74, 1021 ;On显示的位置坐标 61 | } 62 | } 63 | return 64 | Label: 65 | SetTimer, Label, 0 66 | { 67 | if WinActive("ahk_exe YuanShen.exe") ;只在游戏中生效 68 | { 69 | if ( (GetColor(1130,566)=="0xFFFFFF" or GetColor(1130,529)=="0xFFFFFF" or GetColor(1130,492)=="0xFFFFFF" or GetColor(1130,457)=="0xFFFFFF" or GetColor(1130,421)=="0xFFFFFF" or GetColor(1130,385)=="0xFFFFFF" or GetColor(1130,360)=="0xFFFFFF") and GetColor(1181,541)!="0xFFFFFF" and GetColor(1193,493)!="0xFFFFFF" and GetColor(1193,522)!="0xFFFFFF" and GetColor(1193,503)!="0xFFFFFF") ;1080p的小伙伴应该可以直接使用,不用重新取色 70 | loop 6 71 | { 72 | Send f 73 | Sleep 12 74 | Send {WheelDown} ;下滑滚轮 75 | Sleep 23 76 | } 77 | if GetColor(1480,1012)=="0xFFCC33" ;自动点击传送 78 | { 79 | Click 1655,1005 80 | } 81 | } 82 | 83 | } 84 | return 85 | -------------------------------------------------------------------------------- /Old/main1.ahk: -------------------------------------------------------------------------------- 1 | ;### 用前须知 2 | ;本脚本修改自b站火er丶:https://space.bilibili.com/12586633 的脚本 3 | ;仅仅做了判定点和启动方式的修改,相比较原版速度变慢,但误触发NPC几率减小(有时候还是会触发) 4 | ;1080P适用,若有问题需要自己修改判定点坐标,详细查看火er丶的视频:https://www.bilibili.com/video/BV1JA411s7Ud 5 | 6 | ;### 功能 7 | ;自动拾取,自动点击传送点坐标 8 | 9 | ;### 使用方法: 10 | ;1、安装ahk 11 | ;2、打开main.ahk(需要管理员权限才能正常使用) 12 | ;3、进入游戏后,按F10开关(下面代码可以自行改按键),屏幕左下角出现on则代表已启动 13 | ;4、release的exe无需ahk即可运行 14 | 15 | ;### 若无法正常运行? 16 | ;1、是否1080P,否的话需要自己手动修改判定点坐标 17 | ;2、是否右键以管理员模式启动 18 | ;3、游戏中按F10左下角出现on才算成功运行 19 | 20 | ;------------------------------------------------原神下才有效果 ↓↓↓ 21 | ;IfWinActive ahk_exe YuanShen.exe 22 | SysGet, VirtualWidth, 16 23 | SysGet, VirtualHeight, 17 24 | CoordMode, ToolTip, Screen 25 | CoordMode, ToolTip, Screen 26 | 27 | ;-------------------------------------------------定义变量 ↓↓↓ 28 | GetColor(x,y) 29 | { 30 | PixelGetColor, color, x, y, RGB 31 | StringRight color,color,10 ; 32 | return color 33 | } 34 | ;-------------------------------------------------随机需要的勾子 ↓↓↓ 35 | sleep(duration) ; duration:持续时间 36 | { 37 | SleepDuration:= duration ;这里有时可以根据下面的值进行细微调整(例如 2 与 3 的区别). 38 | DllCall("Sleep", UInt, SleepDuration) ; 必须使用 DllCall 而不是 Sleep 命令. 39 | DllCall("Winmm\timeEndPeriod", UInt, TimePeriod) ; 应该进行调用来让系统恢复正常. 40 | } 41 | ;--------------------------------------------------F键 自动拾取 ↓↓↓ 42 | ;#IfWinActive ahk_exe YuanShen.exe 43 | #Persistent 44 | #SingleInstance 45 | v_Enable=true 46 | 47 | $g:: ;G按键:长按0.5s-1.2s开启关闭,长按2s启动游戏 48 | { 49 | KeyWait, g 50 | if (A_TimeSinceThisHotkey > 2000) ;启动游戏 51 | { 52 | run C:\Program Files\Genshin Impact\Genshin Impact Game\YuanShen.exe ;修改为自己的游戏路径 53 | SoundPlay, %A_WinDir%\Media\Alarm02.wav ;声音提示已启动游戏 54 | } 55 | else if (A_TimeSinceThisHotkey > 500 and A_TimeSinceThisHotkey < 1200) ;开关 56 | { 57 | v_Enable:=!v_Enable 58 | if (v_Enable=true) 59 | { 60 | SetTimer, Label, Off 61 | SoundBeep, 250, 500 ;低音:已关闭 62 | } 63 | else 64 | { 65 | SetTimer, Label, 66 | SoundBeep, 750, 500 ;高音:已启动 67 | } 68 | } 69 | else 70 | SendInput, % GetKeyState("CapsLock", "G") ? "G" : "g" 71 | } 72 | Return 73 | 74 | Label: 75 | SetTimer, Label, 0 76 | { 77 | if WinActive("ahk_exe YuanShen.exe") ;只在游戏中生效 78 | { 79 | if ( (GetColor(1130,566)=="0xFFFFFF" or GetColor(1130,529)=="0xFFFFFF" or GetColor(1130,492)=="0xFFFFFF" or GetColor(1130,457)=="0xFFFFFF" or GetColor(1130,421)=="0xFFFFFF" or GetColor(1130,385)=="0xFFFFFF" or GetColor(1130,360)=="0xFFFFFF") and GetColor(1184,546)!="0xFFFFFF" and GetColor(1193,493)!="0xFFFFFF" and GetColor(1193,522)!="0xFFFFFF" and GetColor(1193,502)!="0xFFFFFF") ;1080p的小伙伴应该可以直接使用,不用重新取色 80 | loop 6 81 | { 82 | Send f 83 | Sleep 12 84 | Send {WheelDown} ;下滑滚轮 85 | Sleep 24 86 | } 87 | if GetColor(1480,1012)=="0xFFCC33" ;自动点击传送 88 | { 89 | Click 1655,1005 90 | } 91 | } 92 | } 93 | return 94 | -------------------------------------------------------------------------------- /Old/main2.ahk: -------------------------------------------------------------------------------- 1 | ;------------------------------------------------原神下才有效果 ↓↓↓ 2 | ;IfWinActive ahk_exe YuanShen.exe 3 | SysGet, VirtualWidth, 16 4 | SysGet, VirtualHeight, 17 5 | CoordMode, ToolTip, Screen 6 | CoordMode, ToolTip, Screen 7 | 8 | ;-------------------------------------------------定义变量 ↓↓↓ 9 | GetColor(x,y) 10 | { 11 | PixelGetColor, color, x, y, RGB 12 | StringRight color,color,10 ; 13 | return color 14 | } 15 | ;-------------------------------------------------随机需要的勾子 ↓↓↓ 16 | sleep(duration) ; duration:持续时间 17 | { 18 | SleepDuration:= duration ;这里有时可以根据下面的值进行细微调整(例如 2 与 3 的区别). 19 | DllCall("Sleep", UInt, SleepDuration) ; 必须使用 DllCall 而不是 Sleep 命令. 20 | DllCall("Winmm\timeEndPeriod", UInt, TimePeriod) ; 应该进行调用来让系统恢复正常. 21 | } 22 | ;--------------------------------------------------F键 自动拾取 ↓↓↓ 23 | ;#IfWinActive ahk_exe YuanShen.exe 24 | #Persistent 25 | #SingleInstance 26 | v_Enable=true 27 | 28 | $g:: ;G按键:长按0.5s-1.2s开启关闭,长按2s启动/关闭游戏 29 | { 30 | KeyWait, g 31 | if (A_TimeSinceThisHotkey > 2000) ;启动游戏 32 | { 33 | If WinActive("ahk_exe YuanShen.exe") 34 | { 35 | WinClose ahk_exe YuanShen.exe 36 | SoundPlay, %A_WinDir%\Media\Ring06.wav 37 | } 38 | Else 39 | { 40 | run %APPDATA%\Microsoft\Windows\Start Menu\Programs\YuanShen.lnk 41 | ;找到:原神安装目录\Genshin Impact Game\YuanShen.exe,右键exe固定到开始菜单即可正常启动,也可直接替换成游戏目录 42 | SoundPlay, %A_WinDir%\Media\Alarm02.wav ;声音提示已启动游戏 43 | } 44 | } 45 | else if (A_TimeSinceThisHotkey > 500 and A_TimeSinceThisHotkey < 1200) ;开关 46 | { 47 | v_Enable:=!v_Enable 48 | if (v_Enable=true) 49 | { 50 | SetTimer, Label, Off 51 | SoundBeep, 250, 300 ;低音:已关闭 52 | } 53 | else 54 | { 55 | SetTimer, Label, 56 | SoundBeep, 750, 300 ;高音:已启动 57 | } 58 | } 59 | else 60 | SendInput, % GetKeyState("CapsLock", "G") ? "G" : "g" 61 | } 62 | Return 63 | 64 | Label: 65 | SetTimer, Label, 0 66 | { 67 | if WinActive("ahk_exe YuanShen.exe") ;只在游戏中生效 68 | { 69 | if ( (GetColor(1130,566)=="0xFFFFFF" or GetColor(1130,529)=="0xFFFFFF" or GetColor(1130,492)=="0xFFFFFF" or GetColor(1130,457)=="0xFFFFFF" or GetColor(1130,421)=="0xFFFFFF" or GetColor(1130,385)=="0xFFFFFF" or GetColor(1130,360)=="0xFFFFFF") and GetColor(1184,546)!="0xFFFFFF" and GetColor(1193,493)!="0xFFFFFF" and GetColor(1193,522)!="0xFFFFFF" and GetColor(1193,502)!="0xFFFFFF") ;1080p的小伙伴应该可以直接使用,不用重新取色 70 | loop 6 71 | { 72 | Send f 73 | Sleep 12 74 | Send {WheelDown} ;下滑滚轮 75 | Sleep 24 76 | } 77 | if GetColor(1480,1012)=="0xFFCC33" ;自动点击传送 78 | { 79 | Click 1655,1005 80 | Sleep 300 81 | MouseMove, 960, 540 82 | } 83 | } 84 | } 85 | return 86 | -------------------------------------------------------------------------------- /Old/main3.ahk: -------------------------------------------------------------------------------- 1 | ;------------------------------------------------原神下才有效果 ↓↓↓ 2 | ;IfWinActive ahk_exe YuanShen.exe 3 | SysGet, VirtualWidth, 16 4 | SysGet, VirtualHeight, 17 5 | CoordMode, ToolTip, Screen 6 | CoordMode, ToolTip, Screen 7 | 8 | ;-------------------------------------------------定义变量 ↓↓↓ 9 | GetColor(x,y) 10 | { 11 | PixelGetColor, color, x, y, RGB 12 | StringRight color,color,10 ; 13 | return color 14 | } 15 | ;-------------------------------------------------随机需要的勾子 ↓↓↓ 16 | sleep(duration) ; duration:持续时间 17 | { 18 | SleepDuration:= duration ;这里有时可以根据下面的值进行细微调整(例如 2 与 3 的区别). 19 | DllCall("Sleep", UInt, SleepDuration) ; 必须使用 DllCall 而不是 Sleep 命令. 20 | DllCall("Winmm\timeEndPeriod", UInt, TimePeriod) ; 应该进行调用来让系统恢复正常. 21 | } 22 | ;--------------------------------------------------F键 自动拾取 ↓↓↓ 23 | ;#IfWinActive ahk_exe YuanShen.exe 24 | #Persistent 25 | #SingleInstance 26 | v_Enable=0 27 | 28 | $g:: ;G按键:长按0.5s-1.2s开启关闭,长按2s启动/关闭游戏 29 | { 30 | KeyWait, g ,t2 31 | if ErrorLevel ;启动游戏 32 | { 33 | If WinActive("ahk_exe YuanShen.exe") 34 | { 35 | SoundPlay, %A_WinDir%\Media\Ring06.wav 36 | WinClose ahk_exe YuanShen.exe 37 | Sleep 6000 38 | ExitApp 39 | } 40 | Else 41 | { 42 | run %APPDATA%\Microsoft\Windows\Start Menu\Programs\YuanShen.lnk ;找到:原神安装目录\Genshin Impact Game\YuanShen.exe,右键exe固定到开始菜单即可正常启动,也可直接替换成游戏目录 43 | ;Run %PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\原神\原神.lnk 44 | SoundPlay, %A_WinDir%\Media\Alarm02.wav ;声音提示已启动游戏 45 | Sleep 5000 46 | v_Enable=0 47 | SetTimer, Label, On ;已启动自动拾取 48 | SoundBeep, 750, 300 ;高音:已启动 49 | } 50 | } 51 | else if (A_TimeSinceThisHotkey > 500 and A_TimeSinceThisHotkey < 1200) ;开关 52 | { 53 | v_Enable:=!v_Enable 54 | if v_Enable 55 | { 56 | SetTimer, Label, Off 57 | SoundBeep, 250, 300 ;低音:已关闭 58 | } 59 | else 60 | { 61 | SetTimer, Label, On 62 | SoundBeep, 750, 300 ;高音:已启动 63 | } 64 | } 65 | else 66 | SendInput, % GetKeyState("CapsLock", "G") ? "G" : "g" 67 | } 68 | Return 69 | 70 | Label: 71 | SetTimer, Label, 0 72 | { 73 | if WinActive("ahk_exe YuanShen.exe") ;只在游戏中生效 74 | { 75 | if ( (GetColor(1130,566)=="0xFFFFFF" or GetColor(1130,529)=="0xFFFFFF" or GetColor(1130,492)=="0xFFFFFF" or GetColor(1130,457)=="0xFFFFFF" or GetColor(1130,421)=="0xFFFFFF" or GetColor(1130,385)=="0xFFFFFF" or GetColor(1130,360)=="0xFFFFFF") and GetColor(1184,546)!="0xFFFFFF" and GetColor(1193,493)!="0xFFFFFF" and GetColor(1193,522)!="0xFFFFFF" and GetColor(1193,502)!="0xFFFFFF") ;1080p的小伙伴应该可以直接使用,不用重新取色 76 | loop 8 77 | { 78 | Send f 79 | Sleep 12 80 | Send {WheelDown} ;下滑滚轮 81 | Sleep 24 82 | } 83 | if GetColor(1480,1012)=="0xFFCC33" ;自动点击传送 84 | { 85 | Click 1655,1005 86 | Sleep 300 87 | MouseMove, 960, 540 88 | } 89 | } 90 | } 91 | return 92 | -------------------------------------------------------------------------------- /Old/原神-new.ahk: -------------------------------------------------------------------------------- 1 | ;------------------------------------------------原神下才有效果 ↓↓↓ 2 | #IfWinActive ahk_exe YuanShen.exe 3 | SysGet, VirtualWidth, 16 4 | SysGet, VirtualHeight, 17 5 | CoordMode, ToolTip, Screen 6 | CoordMode, ToolTip, Screen 7 | 8 | ;-------------------------------------------------定义变量 ↓↓↓ 9 | GetColor(x,y) 10 | { 11 | PixelGetColor, color, x, y, RGB 12 | StringRight color,color,10 ; 13 | return color 14 | } 15 | ;-------------------------------------------------随机需要的勾子 ↓↓↓ 16 | sleep(duration) ; duration:持续时间 17 | { 18 | SleepDuration:= duration ;这里有时可以根据下面的值进行细微调整(例如 2 与 3 的区别). 19 | DllCall("Sleep", UInt, SleepDuration) ; 必须使用 DllCall 而不是 Sleep 命令. 20 | DllCall("Winmm\timeEndPeriod", UInt, TimePeriod) ; 应该进行调用来让系统恢复正常. 21 | } 22 | 23 | 24 | 25 | ;-------------------------------------------------远离手的侧键 自动蓄力或者左键E循环 26 | XButton2:: 27 | loop 28 | { 29 | GetKeyState,State,XButton2,P 30 | if (State="U") ; 31 | { 32 | break 33 | } 34 | if GetColor(1587,1036)=="0xFFFFFF" ;白色的R(瞄准) ,实现按住侧键自动左键自动E,适合像温迪这样秒E的角色 35 | { 36 | Send {LButton} 37 | Random, OutputVar,10,20 38 | Sleep(OutputVar) 39 | Send e 40 | Random, OutputVar,10,20 41 | Sleep(OutputVar) 42 | } 43 | else ; 否则 凝光的一键卡刀 44 | { 45 | loop 2 46 | { 47 | Send {LButton} 48 | Sleep 25 49 | } 50 | { 51 | Send {LButton down} 52 | Sleep 250 53 | Send {LButton up} 54 | Sleep 20 55 | } 56 | } 57 | 58 | } 59 | return 60 | 61 | ;-------------------------------------------------靠近手的侧键 模拟ALT,方便放大招 ↓↓↓ 62 | XButton1::LAlt 63 | 64 | ;--------------------------------------------------F键 自动拾取 ↓↓↓ 65 | #IfWinActive ahk_exe YuanShen.exe 66 | #Persistent 67 | #SingleInstance 68 | v_Enable=true 69 | f:: ;f键 开关 70 | { 71 | v_Enable:=!v_Enable 72 | if (v_Enable=true ) ; 73 | { 74 | SetTimer, Label, Off 75 | ToolTip 76 | } 77 | else 78 | { 79 | SetTimer, Label, 80 | ToolTip on ,74, 1021 ;On显示的位置坐标 81 | } 82 | } 83 | return 84 | Label: 85 | SetTimer, Label, 0 86 | { 87 | if ( GetColor(1105,533)=="0xFFFFFF" or GetColor(1061,519)=="0xFFFFFF" ) and WinActive("ahk_exe YuanShen.exe") ;1080p的小伙伴应该可以直接使用,不用重新取色 88 | loop 6 89 | { 90 | Send f 91 | Sleep 20 92 | Send {WheelDown} ;下滑滚轮 93 | Sleep 20 94 | } 95 | if GetColor(1480,1012)=="0xFFCC33" ;自动点击传送 96 | { 97 | Click 1655,1005 98 | } 99 | } 100 | return 101 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Genshin-AutoF 2 | 什么时候PC端才有一键拾取啊 3 | 滚轮+F太累了 4 | 5 | ### 用前须知 6 | 修改自b站火er丶:https://space.bilibili.com/12586633 的脚本,建议去支持一波 7 | 1080P适用,若有问题需要自己修改判定点坐标,详细查看火er丶的视频:https://www.bilibili.com/video/BV1JA411s7Ud 8 | Old/原神-new.ahk是作者的源文件 9 | 10 | ### 功能 11 | 自动拾取,自动点击传送点坐标 12 | 13 | ### 不同的版本 14 | main4-Gai做了下判定点的修改,相比较原版速度变慢,但误触发NPC几率减小(有时候还是会触发) 建议用main4-Gai.ahk自己调试 15 | main5-Gai删了对多个物品的检测,更简单更快 16 | 更多请直接看代码 17 | 18 | ### 使用方法 19 | #### 前置工作 20 | 将yuanshen.exe固定到开始菜单![110919882-b2cb6680-8357-11eb-9827-328b7d85d001](https://user-images.githubusercontent.com/49758022/111563720-74a8c980-87d3-11eb-8ec3-c91ffcc2a8d7.png) 21 | 22 | #### 以.ahk运行 23 | 安装ahk:https://www.autohotkey.com/ 24 | 25 | 1、打开main.ahk(需要管理员权限才能正常使用) 26 | 2、默认自动启动游戏以及自动拾取 27 | 3、Capslock开启/关闭自动拾取,长按Capslock执行大写锁定,长按F10直接关闭游戏 28 | 4、调试好后可以自己编译.exe 29 | 30 | ### 无法正常运行? 31 | 1、是否1080P,否的话需要自己手动修改判定点坐标 32 | 2、是否右键以管理员模式启动 33 | -------------------------------------------------------------------------------- /main4-Gai.ahk: -------------------------------------------------------------------------------- 1 | ;------------------------------------------------原神下才有效果 ↓↓↓ 2 | ;IfWinActive ahk_exe YuanShen.exe 3 | SysGet, VirtualWidth, 16 4 | SysGet, VirtualHeight, 17 5 | CoordMode, ToolTip, Screen 6 | CoordMode, ToolTip, Screen 7 | 8 | ;-------------------------------------------------定义变量 ↓↓↓ 9 | GetColor(x,y) 10 | { 11 | PixelGetColor, color, x, y, RGB 12 | StringRight color,color,10 ; 13 | return color 14 | } 15 | ;-------------------------------------------------随机需要的勾子 ↓↓↓ 16 | sleep(duration) ; duration:持续时间 17 | { 18 | SleepDuration:= duration ;这里有时可以根据下面的值进行细微调整(例如 2 与 3 的区别). 19 | DllCall("Sleep", UInt, SleepDuration) ; 必须使用 DllCall 而不是 Sleep 命令. 20 | DllCall("Winmm\timeEndPeriod", UInt, TimePeriod) ; 应该进行调用来让系统恢复正常. 21 | } 22 | 23 | ;--------------------------------------------------开启即自动启动原神 ↓↓↓ 24 | ;/* 25 | run %APPDATA%\Microsoft\Windows\Start Menu\Programs\YuanShen.lnk 26 | SoundPlay, %A_WinDir%\Media\Alarm02.wav ;声音提示已启动游戏 27 | Sleep 20000 28 | SetTimer, Label, On ;已启动自动拾取 29 | SoundPlay, %A_WinDir%\Media\Speech On.wav 30 | ;*/ 31 | ;--------------------------------------------------F键 自动拾取 ↓↓↓ 32 | ;#IfWinActive ahk_exe YuanShen.exe 33 | #Persistent 34 | #SingleInstance 35 | g_Enable=0 36 | 37 | ;--------------------------------------------------切换开关 38 | $CapsLock:: ;切换开关 39 | KeyWait , CapsLock , t1 40 | if ErrorLevel 41 | { 42 | KeyWait, CapsLock 43 | if (A_PriorKey == "CapsLock") 44 | { 45 | SetCapsLockState, % GetKeyState("CapsLock", "T") ? "Off" : "On" 46 | ToolTip, % "大写锁定: " . (GetKeyState("CapsLock", "T") ? "开启" : "关闭"), , , 13 47 | SetTimer, RemoveToolTip, 1000 48 | } 49 | } 50 | Else 51 | { 52 | g_Enable:=!g_Enable 53 | if g_Enable 54 | { 55 | SetTimer, Label, Off 56 | SoundPlay, %A_WinDir%\Media\Speech Off.wav 57 | } 58 | else 59 | { 60 | SetTimer, Label, On 61 | SoundPlay, %A_WinDir%\Media\Speech On.wav 62 | } 63 | } 64 | Return 65 | 66 | ;--------------------------------------------------关闭游戏 67 | F10:: ;长按F10关闭游戏 68 | KeyWait , F10 , t1 69 | If Errorlevel 70 | { 71 | If WinActive("ahk_exe YuanShen.exe") 72 | { 73 | SoundPlay, %A_WinDir%\Media\Ring06.wav 74 | WinClose ahk_exe YuanShen.exe 75 | Sleep 6000 76 | ExitApp 77 | } 78 | Else 79 | { 80 | run %APPDATA%\Microsoft\Windows\Start Menu\Programs\YuanShen.lnk ;找到原神安装目录\Genshin Impact Game\YuanShen.exe,右键exe固定到开始菜单即可正常启动,也可直接替换成游戏目录 81 | SoundPlay, %A_WinDir%\Media\Alarm02.wav ;声音提示已启动游戏 82 | Sleep 5000 83 | g_Enable=0 84 | SetTimer, Label, On ;已启动自动拾取 85 | SoundPlay, %A_WinDir%\Media\Speech On.wav 86 | } 87 | } 88 | return 89 | 90 | ;--------------------------------------------------Always On 91 | Label: ;自动拾取,点击坐标 92 | SetTimer, Label, 0 93 | { 94 | if WinActive("ahk_exe YuanShen.exe") ;只在游戏中生效 95 | { 96 | If ( GetColor(66,30)=="0xE9C48F") ;只在游戏主界面生效 97 | { 98 | if ( (GetColor(1130,566)=="0xFFFFFF" or GetColor(1130,529)=="0xFFFFFF" or GetColor(1130,492)=="0xFFFFFF" or GetColor(1130,457)=="0xFFFFFF" or GetColor(1130,421)=="0xFFFFFF" or GetColor(1130,385)=="0xFFFFFF" or GetColor(1130,360)=="0xFFFFFF") and GetColor(1184,546)!="0xFFFFFF" and GetColor(1193,493)!="0xFFFFFF" and GetColor(1193,522)!="0xFFFFFF" and GetColor(1193,502)!="0xFFFFFF") ;1080p的小伙伴应该可以直接使用,不用重新取色 99 | { 100 | loop 8 101 | { 102 | Send f 103 | Sleep 12 104 | Send {WheelDown} ;下滑滚轮 105 | Sleep 24 106 | } 107 | } 108 | } 109 | if GetColor(1480,1012)=="0xFFCC33" ;自动点击传送 110 | { 111 | Click 1655,1005 112 | Sleep 300 113 | MouseMove, 960, 540 114 | } 115 | } 116 | } 117 | return 118 | 119 | RemoveToolTip: 120 | ToolTip, , , , 13 121 | SetTimer, RemoveToolTip, Off 122 | return 123 | -------------------------------------------------------------------------------- /main5-Gai.ahk: -------------------------------------------------------------------------------- 1 | ;------------------------------------------------原神下才有效果 ↓↓↓ 2 | SysGet, VirtualWidth, 16 3 | SysGet, VirtualHeight, 17 4 | CoordMode, ToolTip, Screen 5 | CoordMode, ToolTip, Screen 6 | 7 | ;-------------------------------------------------定义变量 ↓↓↓ 8 | GetColor(x,y) 9 | { 10 | PixelGetColor, color, x, y, RGB 11 | StringRight color,color,10 ; 12 | return color 13 | } 14 | ;-------------------------------------------------随机需要的勾子 ↓↓↓ 15 | sleep(duration) ; duration:持续时间 16 | { 17 | SleepDuration:= duration ;这里有时可以根据下面的值进行细微调整(例如 2 与 3 的区别). 18 | DllCall("Sleep", UInt, SleepDuration) ; 必须使用 DllCall 而不是 Sleep 命令. 19 | DllCall("Winmm\timeEndPeriod", UInt, TimePeriod) ; 应该进行调用来让系统恢复正常. 20 | } 21 | 22 | RUNYUANSHEN() 23 | ;--------------------------------------------------F键 自动拾取 ↓↓↓ 24 | #Persistent 25 | #SingleInstance 26 | 27 | ;--------------------------------------------------切换开关 28 | $CapsLock:: ;切换开关 29 | KeyWait , CapsLock , t1 30 | if ErrorLevel 31 | { 32 | KeyWait, CapsLock 33 | if (A_PriorKey == "CapsLock") 34 | { 35 | SetCapsLockState, % GetKeyState("CapsLock", "T") ? "Off" : "On" 36 | } 37 | } 38 | Else 39 | { 40 | g_Enable:=!g_Enable 41 | if g_Enable 42 | { 43 | SetTimer, Label, Off 44 | ToolTip 45 | SoundPlay, %A_WinDir%\Media\Speech Off.wav 46 | } 47 | else 48 | { 49 | SetTimer, Label, On 50 | ToolTip on ,74, 1021 51 | SoundPlay, %A_WinDir%\Media\Windows Ding.wav 52 | } 53 | } 54 | Return 55 | 56 | ;--------------------------------------------------关闭游戏 57 | 58 | F10:: 59 | KeyWait , F10 , t1 60 | If Errorlevel 61 | { 62 | If WinActive("ahk_exe YuanShen.exe") 63 | { 64 | SoundPlay, %A_WinDir%\Media\Ring06.wav 65 | WinClose ahk_exe YuanShen.exe 66 | Sleep 6000 67 | ExitApp 68 | } 69 | Else 70 | { 71 | run %APPDATA%\Microsoft\Windows\Start Menu\Programs\YuanShen.lnk ;找到原神安装目录\Genshin Impact Game\YuanShen.exe,右键exe固定到开始菜单即可正常启动,也可直接替换成游戏目录 72 | SoundPlay, %A_WinDir%\Media\Alarm02.wav ;声音提示已启动游戏 73 | Sleep 20000 74 | g_Enable=0 75 | SetTimer, Label, On ;已启动自动拾取 76 | SoundPlay, %A_WinDir%\Media\Speech On.wav 77 | } 78 | } 79 | return 80 | 81 | ;--------------------------------------------------Always On 82 | Label: ;自动拾取,点击坐标,挣脱 83 | SetTimer, Label, 50 84 | { 85 | if WinActive("ahk_exe YuanShen.exe") ;只在游戏中生效 86 | { 87 | If ( GetColor(66,30)=="0xE9C48F") ; 有派蒙图标,在主界面 88 | { 89 | if ( GetColor(1132,537)=="0xFFFFFF" or GetColor(1061,552)=="0xFFFFFF") 90 | { 91 | If (GetColor(1184,546)!="0xFFFFFF") ;特殊点,可以排除交互按钮 92 | { 93 | PickingFunc() 94 | } 95 | } 96 | } 97 | 98 | if GetColor(1477,1012)=="0xFFCB32" ;自动点击传送 99 | { 100 | Click 1655,1005 101 | Sleep 300 102 | MouseMove, 960, 540 103 | } 104 | 105 | if GetColor(1435,595)=="0x323232" ;自动挣脱 106 | { 107 | loop 9 108 | { 109 | Send {Space} 110 | Sleep 141 111 | } 112 | } 113 | } 114 | } 115 | return 116 | 117 | ;--------------------------------------------------F8连点 118 | 119 | F8:: 120 | while GetKeyState("F8", "P") ;如果鼠标右键为按下的状态则进入循环 121 | { 122 | Click Left 123 | Sleep 20 124 | } 125 | return 126 | 127 | ;--------------------------------------------------捡东西 ↓↓↓ 128 | PickingFunc() 129 | { 130 | SendInput {f} 131 | loop 4 132 | { 133 | Send {WheelDown} ;下滑滚轮 134 | Sleep 30 135 | SendInput {f} 136 | Sleep 20 137 | SendInput {f} 138 | Sleep 50 139 | } 140 | } 141 | 142 | ;--------------------------------------------------自动委托 ↓↓↓ 143 | F9:: 144 | keydizi:=[] 145 | dizi:="1,2,3,4,5,6,7" 146 | aaa:=0 147 | loop, Parse, dizi, `, 148 | { 149 | keydizi[A_Index] := A_LoopField 150 | } 151 | for key,value in keydizi 152 | { 153 | 154 | if value=1 155 | { 156 | MouseClick , L , 131,231, , 0 ;璃月 157 | Sleep 200 158 | continue 159 | } 160 | if value=5 161 | { 162 | MouseClick , L , 173,158, , 0 ;蒙德 163 | Sleep 200 164 | continue 165 | } 166 | if value=2 167 | MouseClick , L , 725,325, , 0 ;荻花洲 168 | if value=3 169 | MouseClick , L , 959,448, , 0 ;瑶光滩 170 | if value=4 171 | MouseClick , L , 558,558, , 0 ;绝云间 172 | if value=6 173 | MouseClick , L , 1052,335, , 0 ;低语森林 174 | if value=7 175 | MouseClick , L , 1170,655, , 0 ;达达乌帕谷 176 | { 177 | Sleep 200 178 | MouseClick , L , 1725,1022, , 0 ;领取 179 | Sleep 100 180 | MouseClick , L , 1725,1022, , 0 ;点击继续 181 | Sleep 200 182 | if aaa=0 183 | { 184 | MouseClick , L , 1798,677, , 0 ;20个 185 | aaa:=1 186 | Sleep 250 187 | } 188 | MouseClick , L , 1725,1022, , 0 ;选择 189 | Sleep 250 190 | if value=2 191 | MouseClick , L , 317,165, , 0 ;重云 192 | if value=3 193 | MouseClick , L , 145,419, , 0 ;凯亚 194 | if value=4 195 | MouseClick , L , 210,539, , 0 ;丽莎 196 | if value=6 197 | MouseClick , L , 353,158, , 0 ;班尼特 198 | if value=7 199 | MouseClick , L , 341,306, , 0 ;皇女 200 | Sleep 200 201 | } 202 | } 203 | Send, {Esc} 204 | return 205 | 206 | ;--------------------------------------------------自动启动原神 ↓↓↓ 207 | RUNYUANSHEN() 208 | { 209 | run %APPDATA%\Microsoft\Windows\Start Menu\Programs\YuanShen.lnk 210 | g_Enable=0 211 | SetTimer, Label, On ;已启动自动拾取 212 | ToolTip on ,74, 1021 213 | SoundPlay, %A_WinDir%\Media\Windows Ding.wav 214 | } 215 | 216 | 217 | ;关键点:GetColor(1181,541)!="0xFFFFFF" GetColor(1184,546)=="0xFFFFFF" 218 | ;"C:\Users\test\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\YuanShen.lnk" 219 | ;"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\原神\原神.lnk" 220 | ;%PROGRAMDATA% 221 | ; if ( (GetColor(1130,566)=="0xFFFFFF" or GetColor(1130,529)=="0xFFFFFF" or GetColor(1130,492)=="0xFFFFFF" or GetColor(1130,457)=="0xFFFFFF" or GetColor(1130,421)=="0xFFFFFF" or GetColor(1130,385)=="0xFFFFFF" or GetColor(1130,360)=="0xFFFFFF") and GetColor(1184,546)!="0xFFFFFF" and GetColor(1193,493)!="0xFFFFFF" and GetColor(1193,522)!="0xFFFFFF" and GetColor(1193,502)!="0xFFFFFF") ;1080p的小伙伴应该可以直接使用,不用重新取色 -------------------------------------------------------------------------------- /main5.ahk: -------------------------------------------------------------------------------- 1 | ;------------------------------------------------原神下才有效果 ↓↓↓ 2 | #IfWinActive ahk_exe YuanShen.exe 3 | SysGet, VirtualWidth, 16 4 | SysGet, VirtualHeight, 17 5 | CoordMode, ToolTip, Screen 6 | CoordMode, ToolTip, Screen 7 | 8 | ;-------------------------------------------------定义变量 ↓↓↓ 9 | GetColor(x,y) 10 | { 11 | PixelGetColor, color, x, y, RGB 12 | StringRight color,color,10 ; 13 | return color 14 | } 15 | ;-------------------------------------------------随机需要的勾子 ↓↓↓ 16 | sleep(duration) ; duration:持续时间 17 | { 18 | SleepDuration:= duration ;这里有时可以根据下面的值进行细微调整(例如 2 与 3 的区别). 19 | DllCall("Sleep", UInt, SleepDuration) ; 必须使用 DllCall 而不是 Sleep 命令. 20 | DllCall("Winmm\timeEndPeriod", UInt, TimePeriod) ; 应该进行调用来让系统恢复正常. 21 | } 22 | 23 | ;--------------------------------------------------开启即自动启动原神 ↓↓↓ 24 | ;/* 25 | run %APPDATA%\Microsoft\Windows\Start Menu\Programs\YuanShen.lnk 26 | SoundPlay, %A_WinDir%\Media\Alarm02.wav ;声音提示已启动游戏 27 | Sleep 20000 28 | SetTimer, Label, On ;已启动自动拾取 29 | SoundPlay, %A_WinDir%\Media\Speech On.wav 30 | ;*/ 31 | ;--------------------------------------------------自动拾取 ↓↓↓ 32 | ;#IfWinActive ahk_exe YuanShen.exe 33 | #Persistent 34 | #SingleInstance 35 | g_Enable=0 36 | 37 | ;--------------------------------------------------切换开关 38 | $CapsLock:: ;切换开关 39 | KeyWait , CapsLock , t1 40 | if ErrorLevel 41 | { 42 | KeyWait, CapsLock 43 | if (A_PriorKey == "CapsLock") 44 | { 45 | SetCapsLockState, % GetKeyState("CapsLock", "T") ? "Off" : "On" 46 | ToolTip, % "大写锁定: " . (GetKeyState("CapsLock", "T") ? "开启" : "关闭"), , , 13 47 | SetTimer, RemoveToolTip, 1000 48 | } 49 | } 50 | Else 51 | { 52 | g_Enable:=!g_Enable 53 | if g_Enable 54 | { 55 | SetTimer, Label, Off 56 | SoundPlay, %A_WinDir%\Media\Speech Off.wav 57 | } 58 | else 59 | { 60 | SetTimer, Label, On 61 | SoundPlay, %A_WinDir%\Media\Speech On.wav 62 | } 63 | } 64 | Return 65 | 66 | ;--------------------------------------------------关闭游戏 67 | F10:: ;长按F10关闭游戏 68 | KeyWait , F10 , t1 69 | If Errorlevel 70 | { 71 | If WinActive("ahk_exe YuanShen.exe") 72 | { 73 | SoundPlay, %A_WinDir%\Media\Ring06.wav 74 | WinClose ahk_exe YuanShen.exe 75 | Sleep 6000 76 | ExitApp 77 | } 78 | Else 79 | { 80 | run %APPDATA%\Microsoft\Windows\Start Menu\Programs\YuanShen.lnk ;找到原神安装目录\Genshin Impact Game\YuanShen.exe,右键exe固定到开始菜单即可正常启动,也可直接替换成游戏目录 81 | SoundPlay, %A_WinDir%\Media\Alarm02.wav ;声音提示已启动游戏 82 | Sleep 20000 83 | g_Enable=0 84 | SetTimer, Label, On ;已启动自动拾取 85 | SoundPlay, %A_WinDir%\Media\Speech On.wav 86 | } 87 | } 88 | return 89 | 90 | ;--------------------------------------------------Always On 91 | Label: ;自动拾取,点击坐标 92 | SetTimer, Label, 0 93 | { 94 | if WinActive("ahk_exe YuanShen.exe") ;只在游戏中生效 95 | { 96 | If ( GetColor(66,30)=="0xE9C48F") ;只在游戏主界面生效 97 | { 98 | If (GetColor(1184,546)!="0xFFFFFF" and GetColor(1193,493)!="0xFFFFFF" and GetColor(1193,522)!="0xFFFFFF" and GetColor(1193,502)!="0xFFFFFF") ;排除多个叠加,可能会失误 99 | { 100 | if ( GetColor(1130,566)=="0xFFFFFF" or GetColor(1130,529)=="0xFFFFFF" or GetColor(1130,492)=="0xFFFFFF" or GetColor(1130,457)=="0xFFFFFF" or GetColor(1130,421)=="0xFFFFFF" or GetColor(1130,385)=="0xFFFFFF" or GetColor(1130,360)=="0xFFFFFF") ;不使用鼠标键图标,因为鼠标键出现的太快,很容易误操作,若想更加稳妥需要在这个if前加个延时,误操作可能性降低,但拾取的反应速度更慢 101 | { 102 | loop 8 103 | { 104 | Send f 105 | Sleep 12 106 | Send {WheelDown} ;下滑滚轮 107 | Sleep 24 108 | } 109 | } 110 | } 111 | } 112 | if GetColor(1476,1012)=="0xFFCC33" ;自动点击传送 113 | { 114 | Click 1655,1005 115 | Sleep 300 116 | MouseMove, 960, 540 117 | } 118 | } 119 | } 120 | return 121 | 122 | RemoveToolTip: 123 | ToolTip, , , , 13 124 | SetTimer, RemoveToolTip, Off 125 | return 126 | --------------------------------------------------------------------------------