适用的几个游戏自动脚本
- 欧陆风云
- 无人深空
- 骑马与砍杀
- 文明5
涉及的动作包括:
- 自动按键
- 界面判断
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
#SingleInstance force
; #Warn ; Enable warnings to assist with detecting common errors.
; SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
; SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
SetTitleMatchMode, 2
CoordMode, Mouse, Screen
now = Format("20200116002159")
; #InstallKeybdHook
;start of script
;#IfWinActive UltraEdit
;^j::MsgBox You pressed Win+Spacebar in Notepad.
#IfWinActive, Europa Universalis IV
{
savepath := Format("C:\Users\bard\Documents\Paradox Interactive\Europa Universalis IV\save games\")
F12::
FormatTime, now, , yyyyMMddHHmmss
FileCopy, %savepath%autosave.eu4, %savepath%backup\autosave_%now%.eu4
Sleep, 100
MsgBox "Backup to %savepath%backup\autosave_%now%.eu4 ."
Return
^F12::
SendEvent, {Esc down}
Sleep, 25
SendEvent, {Esc up}
Random, Delay, 150, 200
FileCopy, %savepath%backup\autosave_%now%.eu4, %savepath%autosave.eu4
Return
}
#IfWinActive, No Man's Sky
{
srcDir := Format("C:\Users\bard\AppData\Roaming\HelloGames\NMS\st_76561198257103065")
dstDir := Format("C:\Users\bard\AppData\Roaming\HelloGames\NMS\backup\st_76561198257103065")
F12::
FormatTime, now, , yyyyMMddHHmmss
FileCopyDir, %srcDir%, %dstDir%_%now%
Return
}
#IfWinActive, Mount&Blade Warband
{
; #UseHook
; savepath := Format("C:\Users\bard\Documents\Mount&Blade Warband Savegames\Perisno_0.99\")
savepath := Format("C:\Users\bard\Documents\Mount&Blade Warband Savegames\Prophesy of Pendor v3.8.0\")
q::
PixelGetColor, color, 1431, 715
;MouseGetPos, Mousex, Mousey
;PixelGetColor, color, %Mousex%, %Mousey%
;MsgBox %Mousex%, %Mousey%, %color%
if(0x5092B1 = color)
{
Click, Left, 1136, 783
Send 1
Click, Left, 658, 780
Click, Left, 925, 764
Send 2
MouseGetPos, Mousex, Mousey
Click, Left, 1061, 1048
Click, Left, 986, 1045
Click, Left, 1830, 888
MouseMove, %Mousex%, %Mousey%
}
else
Send s
return
F12::
SendEvent, {F12 down}
Sleep, 25
SendEvent, {F12 up}
Sleep, 500
FormatTime, now, , yyyyMMddHHmmss
FileCopy, %savepath%sg00.sav, %savepath%backup\sg00_%now%.sav
Return
F11::
SendEvent, {Esc down}
Sleep, 25
SendEvent, {Esc up}
Random, Delay, 150, 200
Sleep, %Delay%
Click, Left, 554, 546
Random, Delay, 1000, 2000
Sleep, %Delay%
FileDelete, %savepath%last_savegame_backup.sav
FileDelete, %savepath%sg00.sav
FileCopy, %savepath%backup\sg00_%now%.sav, %savepath%sg00.sav
Click, Left, 260, 390
Random, Delay, 100, 200
Sleep, %Delay%
Click, Left, 310, 200
Random, Delay, 100, 200
Sleep, %Delay%
Click, Left, 1450, 1000
Return
; #UseHook off
}
#IfWinActive, Sid Meier's Civilization
{
;reassigning the arrow keys
;a::left
;s::down
;d::right
;w::up
XButton1::NumpadSub
XButton2::NumpadAdd
d::
PixelGetColor, color, 268, 1032
if(0xC8FFFF = color)
{
Send {Right}
}
else
Send d
return
s::
PixelGetColor, color, 1431, 715
;MouseGetPos, Mousex, Mousey
;PixelGetColor, color, %Mousex%, %Mousey%
;MsgBox %Mousex%, %Mousey%, %color%
if(0x5092B1 = color)
{
Click, Left, 1136, 783
Send 1
Click, Left, 658, 780
Click, Left, 925, 764
Send 2
MouseGetPos, Mousex, Mousey
Click, Left, 1061, 1048
Click, Left, 986, 1045
Click, Left, 1830, 888
MouseMove, %Mousex%, %Mousey%
}
else
Send s
return
Tab::
MouseGetPos, Mousex, Mousey
Click, Left, 1738, 862
MouseMove, %Mousex%, %Mousey%
Return
^`::
MouseGetPos, Mousex, Mousey
Click, Left, 22, 50
Click, Left, 22, 100
MouseMove, %Mousex%, %Mousey%
Return
^1::
MouseGetPos, Mousex, Mousey
Click, Left, 22, 50
Click, Left, 22, 145
MouseMove, %Mousex%, %Mousey%
Return
^2::
MouseGetPos, Mousex, Mousey
Click, Left, 22, 50
Click, Left, 22, 190
MouseMove, %Mousex%, %Mousey%
Return
^3::
MouseGetPos, Mousex, Mousey
Click, Left, 22, 50
Click, Left, 22, 235
MouseMove, %Mousex%, %Mousey%
Return
^4::
MouseGetPos, Mousex, Mousey
Click, Left, 22, 50
Click, Left, 22, 280
MouseMove, %Mousex%, %Mousey%
Return
^5::
MouseGetPos, Mousex, Mousey
Click, Left, 22, 50
Click, Left, 22, 325
MouseMove, %Mousex%, %Mousey%
Return
!1::
PixelGetColor, color, 1695, 79
; if(0xABCDCD = color)
if(true)
{
MouseGetPos, Mousex, Mousey
Click, Left, 1700, 40
Click, Left, 1640, 50
MouseMove, %Mousex%, %Mousey%
}
else
{
MouseGetPos, Mousex, Mousey
Click, Left, 1700, 40
Click, Left, 1590, 50
MouseMove, %Mousex%, %Mousey%
}
Return
!2::
PixelGetColor, color, 1695, 79
; if(0xABCDCD = color)
if(true)
{
MouseGetPos, Mousex, Mousey
Click, Left, 1700, 40
Click, Left, 1640, 75
MouseMove, %Mousex%, %Mousey%
}
else
{
MouseGetPos, Mousex, Mousey
Click, Left, 1700, 40
Click, Left, 1590, 75
MouseMove, %Mousex%, %Mousey%
}
Return
!3::
PixelGetColor, color, 1695, 79
; if(0xABCDCD = color)
if(true)
{
MouseGetPos, Mousex, Mousey
Click, Left, 1700, 40
Click, Left, 1640, 100
MouseMove, %Mousex%, %Mousey%
}
else
{
MouseGetPos, Mousex, Mousey
Click, Left, 1700, 40
Click, Left, 1590, 100
MouseMove, %Mousex%, %Mousey%
}
Return
!`::
MouseGetPos, Mousex, Mousey
PixelGetColor, color, %Mousex%, %Mousey%
MsgBox %Mousex%, %Mousey%, %color%
Return
}
;end of script
另有一段定时按键的脚本,用到定时器
v_Enable=0
#`::
{
v_Enable:=!v_Enable
If(v_Enable=0)
SetTimer, Label0, Off
ELSE
SetTimer, Label0, 60000
}
Return
Label0:
{
Send +1
}
Return