甘雨一键蓄力射击AHK,
在游戏中因为地形或者跳跃冲刺或者被怪物打断后,
也可以快速恢复蓄力状态,可以让我们简化输出手法,提高操作乘区。
视频教程:
图示:
如果看不清,右键在新标签页中打开
如果你是窗口化,
一定要按一下F8,
这样会将游戏放到左上角,
然后使用snipaste截图(不要真的截下来,只要定住就行)
按wasd可以微调
移动到位置上之后按Alt+F1
就可以取色了。
看上图的位置,尽量不要乱取,否则可能无法使用!
;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ 脚本设定 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
#NoEnv ; 不检查空变量是否为环境变量(建议所有新脚本使用).
#SingleInstance force
#Persistent ;让脚本持续运行(即直到用户关闭或遇到 ExitApp).
#InstallKeybdHook ;强制无条件安装键盘钩子.
#InstallMouseHook
#UseHook ;强制使用钩子实现全部或部分键盘热键.
#KeyHistory, 0 ;置为 0 来禁用按键历史.
SetKeyDelay,-1, 1 ;设置每次 Send 和 ControlSend 发送键击后自动的延时.
SetControlDelay, -1 ;设置在每次控件修改命令执行后自动的延时.
SetMouseDelay, -1 ;设置每次鼠标移动或点击后自动的延时.
SetWinDelay,-1 ;设置在每次执行窗口命令(例如 WinActivate) 后自动的延时.
SetBatchLines,-1 ;使用 SetBatchLines -1 让脚本无休眠运行(即让脚本以全速运行).
ListLines, Off ;在历史中略去后续执行的行.
;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ 游戏热键 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
#IfWinActive ahk_exe YuanShen.exe
~LButton:: ;按住左键凝光卡刀、甘雨自动蓄力射击
DllCall("QueryPerformanceFrequency", "Int64*", freq) ;获得的是CPU的频率 freq=1千万
DllCall("QueryPerformanceCounter", "Int64*", before1) ;高精度计数器 给before1赋值 类似before1:=A_TickCount
aaa:=0
x1x:=1316 ;瞄准时R字母上的X(叉)的横坐标,通过取色获取之后赋值给x1x
if (GetColor(1269,419)=="0x410E0A" or GetColor(1268,393)=="0x472C24") ;甘雨4号位-名字字体 or 2人组队2号位,防止不是甘雨的时候自动释放左键
gjyu:=1
else
gjyu:=0
loop
{
GetKeyState,State,LButton,P
if (State="U") ;
{
Send {LButton Up}
break
}
if (GetColor(1269,419)=="0x410E0A" or GetColor(1268,393)=="0x472C24") ;甘雨4号位-名字字体 or 2人组队2号位,循环内再放一下是怕上面没有取到
gjyu:=1
if gjyu
{
if (GetColor(1130,759)=="0xFFFFFF" and GetColor(1145,770)=="0xFFFFFF" and Not GetColor(1325,764)=="0xFFFFFF" ) ;R瞄准前*2 and not R瞄准后
{
if aaa>2 ;卡掉之后重新开始蓄力
{
SendInput {LButton up}
sleep(60) ;增加延迟防止一直后台松开左键,不能及时蓄力
aaa:=0
}
SendInput {LButton Down}
DllCall("QueryPerformanceCounter", "Int64*", before1) ;高精度计数器 给before1赋值 类似before1:=A_TickCount
aaa++
x1x:=1316 ;获取到R瞄准前*2andnot的色值之后原坐标的值赋值给x1x,使下面的if GetColor(x1x,740)=="0xFFFFFF" 生效
}
if GetColor(x1x,738)=="0xFFFFFF" ;瞄准时R字母上的X(叉) 下面的取色之后复制上来 再把横坐标改为x1x
{
DllCall("QueryPerformanceCounter", "Int64*", before2) ;高精度计数器 给before2赋值 类似before2:=A_TickCount
sleep 100
x1x:=1299 ;通过手动修改数值改变x1x坐标,产生一个新的坐标(新坐标取的色值不能是相同的)使取色只生效一次,以防止before2一直变化
}
DllCall("QueryPerformanceCounter", "Int64*", now) ;高精度计数器 给now赋值 类似now:=A_TickCount
passT1 := Round((now-before1) / freq * 1000,0) ;计算经过的时间,取整
if GetColor(1316,738)=="0xFFFFFF" ;瞄准时R字母上的X(叉) 取色
passT2 := Round((now-before2) / freq * 1000,0) ;计算经过的时间,取整
if (passT1>1400 and passT2>1450) ;双保险 防早泄 doge
{
Send {LButton up}
Sleep(30)
aaa:=0
}
;ToolTip %passT1%---%passT2%---%aaa%----%x1x% ;debug用
}
}
return
;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ 函 数 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
GetColor(x,y) ;获取坐标xy处的色值
{
PixelGetColor, color, x, y, RGB
StringLeft color,color,10 ;
return color
}
sleep(duration) ;高精度睡眠时间
{
SleepDuration:= duration
DllCall("Sleep", UInt, SleepDuration)
DllCall("Winmm\timeEndPeriod", UInt, TimePeriod)
}
;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ 全局热键 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
#IfWinActive
F2:: ;保存(使用AutoAHK编辑器才会保存)之后重启
ControlSend,ahk_parent,^s,ahk_exe AutoAHK.exe
sleep 50
ControlSend,ahk_parent,^s,ahk_exe AutoAHK.exe
sleep 100
Reload
return
!F1:: ;Alt+F1获取鼠标停留处的坐标、色值代码
MouseGetPos, MouseX, MouseY
PixelGetColor, color, %MouseX%, %MouseY%, RGB
StringLeft color,color,10
ToolTip, GetColor(%MouseX%`,%MouseY%)=="%color%"
clipboard = GetColor(%MouseX%,%MouseY%)=="%color%"
return
!F2:: ;Alt+F2获取鼠标停留处的游戏类名的代码
WinGetClass, class, A
ToolTip, #IfWinActive ahk_class %class%
clipboard = #IfWinActive ahk_class %class%
return
!F3:: ;Alt+F3获取鼠标停留处的代码,用于快速移动鼠标并点击此处
MouseGetPos, MouseX, MouseY
ToolTip, SendInput {Click %MouseX%`,%MouseY%}
clipboard =SendInput {Click %MouseX%,%MouseY%}
return
!F4:: ;Alt+F4获取鼠标停留处的代码,用于快速移动鼠标到此处丹不点击
MouseGetPos, MouseX, MouseY
ToolTip, MouseMove %MouseX%`,%MouseY%
clipboard =MouseMove %MouseX%,%MouseY%
return
!F5:: ;Alt+F1鼠标停留处的窗口置顶或取消置顶
WinSet, AlwaysOnTop, Toggle,A
WinGetTitle, getTitle, A
WinGet, getTop,ExStyle,A
if (getTop & 0x8)
ToolTip 已置顶 `n%getTitle% , , , 2
else
ToolTip 取消置顶,,,2
return
!Left::MouseMove, -1, 0, 0, R ;鼠标左移一个像素
!Right::MouseMove, 1, 0, 0, R ;鼠标右移一个像素
!Up::MouseMove, 0, -1, 0, R ;鼠标上移一个像素
!Down::MouseMove, 0, 1, 0, R ;鼠标下移一个像素
F8:: ;窗口化的原神左上角对其,用于snipaste截图软件定格画面后用本AHK的Alt+F1热键取色
WinMove 原神,, 0, 0
Return
作者:火er丶
出处:bilibili