Re: [-AI-] 想請問一下這程式裡的程式碼用途

作者: yohoboy (小寶包是天使與惡魔)   2017-12-31 09:34:57
Global $g_bPaused = False ;設定暫停真假值
Dim $interval = 480
Dim $isLoop=1
;!單獨滑鼠右鍵觸發、單獨滑鼠下滾觸發或單獨LSHIFT觸發
;用Capslock會依目前是否亮燈決定是否成功跑!
HotKeySet("{F8}", "StartClick") ;不能用滑鼠點擊觸發,建議用鍵盤組合方式觸發
HotKeySet("{F10}", "Terminate")
;!除了上面的exit方式外希望有個暫停程式運作(含偵測)的,要用時按一下又繼續的,
;有查到用pause/break當開關,但希望是可以用其他鍵而不只限定於pause
;(因為可能會同時開多個-AI-來用)!
HotKeySet("{F9}", "TogglePause") ;腳本暫停執行,可代換其他快速鍵,
;但是檔名要更換其他名稱,避免混淆,
;再按一次可繼續執行
While 1
Sleep(60000) ;讓程式可以持續運作,直到Terminate 中止,
;該指令只是讓程式可以暫停執行,目前只有這
;一行,所以大小無關,除非有其他指令要執行時就有影響
WEnd
Func Terminate() ;中止程式執行
Exit
EndFunc
Func TogglePause() ;設定暫停指令
MsgBox(0,"真假值",$g_bPaused) ;此指令讓你知道初值,正式時可以拿掉
$g_bPaused = Not $g_bPaused ;反閘運算,初值為False 輸出為True,
;反之為False
MsgBox(0,"真假值",$g_bPaused) ;輸出運算後值
While $g_bPaused
Sleep(100)
ToolTip('腳本暫停執行-1', 0, 0) ;腳本暫停,並顯示左上資訊,
;可代換其他編號,避免混淆
WEnd
ToolTip("")
EndFunc ;==>TogglePause
Func StartClick()
$isLoop = 1 - $isLoop ;以同一按鍵來做切換狀態的開關
While (1-$isLoop) ;檢查是否執行迴圈
Send("{LSHIFT}")
Sleep (1500)
$time=0
While $time<=10
If($isLoop==1) Then ;檢查是否跳過迴圈
ExitLoop(2)
EndIf
$time+=1
Send("{Space down}")
Sleep ($interval)
Send("{Space up}")
Sleep ($interval*9/8)
WEnd
WEnd
EndFunc
有關連點部分可參考send 指令搭配 SendKeyDelay副指令控制連點間隔時間
另要偵測某按鍵是否按下還是要靠HotKeySet指令去做,但是可用 if 或是
while 去做後續處理。
※ 引述《MoJi (戰神)》之銘言:
: 大概想了一下雛形
: 註解!部分應該是我目前有疑惑的
: Dim $interval = 480
: Dim $isLoop=1
: ;!單獨滑鼠右鍵觸發、單獨滑鼠下滾觸發或單獨LSHIFT觸發
: ;用Capslock會依目前是否亮燈決定是否成功跑!
: HotKeySet("{RBUTTON}", "StartClick")
: HotKeySet("{F10}", "Terminate")
: ;!除了上面的exit方式外希望有個暫停程式運作(含偵測)的,要用時按一下又繼續的,
: ;有查到用pause/break當開關,但希望是可以用其他鍵而不只限定於pause
: ;(因為可能會同時開多個-AI-來用)!
: While 1
: Sleep(60000) ;!這裡面的數值填大填小有啥差別?!
: WEnd
: Func Terminate()
: Exit 0
: EndFunc
: Func StartClick()
: $isLoop = 1-$isLoop ;以同一按鍵來做切換狀態的開關
: While (1-$isLoop) ;檢查是否執行迴圈
: Send("{LSHIFT}")
: Sleep (1500)
: $time=0
: While $time<=10
: If($isLoop==1) Then ;檢查是否跳過迴圈
: ExitLoop(2)
: EndIf
: $time+=1
: Send("{Space down}")
: Sleep ($interval)
: Send("{Space up}")
: Sleep ($interval*9/8)
: WEnd
: WEnd
: EndFunc
: ps.
: 還有就是a按下時連點a,放開時結束....
: AHK有getkeystate可以偵測按件是否按下a來判斷
: ai有嗎?想把連點也加進去

Links booklink

Contact Us: admin [ a t ] ucptt.com