; Peli-ikkunan vasemman yläkulman koordinaatit (täytyy hankkia ensin)
winX = 100
winY = 80
; Hanki hiiren näyttökoordinaatit
GetCursorPos mouseX, mouseY
; Muunna peli-ikkunan sisäisiksi koordinaateiksi
gameX := mouseX - winX
gameY := mouseY - winYHuomioitavaa:
Kehitysvaiheessa koordinaattien manuaalinen syöttäminen on hankalaa. Tehokkaampi tapa on painaa yhtä pikanäppäintä, joka täyttää nykyisen hiiren sijainnin koordinaatit automaattisesti skriptin GUI-kenttään.
; Rekisteröi pikanäppäin F1
Hotkey, F1, GetMousePos
return
GetMousePos:
MouseGetPos, mx, my
GuiControl,, FindX, %mx%
GuiControl,, FindY, %my%
ToolTip, Koordinaatit siepattu: X%mx% Y%my%
SetTimer, RemoveTip, -2000
returnNäin voit siirtää hiiren haluamaasi kohtaan, painaa F1, ja koordinaatit täytetään automaattisesti "Etsi X / Etsi Y" -kenttiin. Voit halutessasi sitoa eri pikanäppäimet eri koordinaattikenttiin.
Alkuperäisessä skriptissä oli neljä itsenäistä näppäintä, joilla jokaisella oli oma viiveaikansa. Pelissä on kuitenkin usein tarpeen lähettää kaksi näppäintä peräkkäin (esim. ensin taitonäppäin, sitten apunäppäin), ja vasta sitten odottaa hetki.
Muutoksen suunta:
SendKeyGroup(useGroup, keyA, keyB, waitMs, minute) {
global TimerCount, TargetHwnd
if (useGroup != 1)
return
if (minute > 0 and Mod(TimerCount, minute * 60) = 0) {
; Lähetä näppäinryhmä joka N minuutti
ControlSend, , {%keyA%}, ahk_id %TargetHwnd%
Sleep, 100
ControlSend, , {%keyB%}, ahk_id %TargetHwnd%
}
if (minute = 0) {
; Lähetä jokaisessa syklissä
ControlSend, , {%keyA%}, ahk_id %TargetHwnd%
Sleep, 100
ControlSend, , {%keyB%}, ahk_id %TargetHwnd%
}
}Tämä on yleisin valinta AHK-peliskripteissä:
| Tapa | Edut | Haitat |
|---|---|---|
| Voidaan pysäyttää milloin tahansa, ei tuki skriptiä, selkeä rakenne | Minimiväli noin 1 sekunti, ei sovi nopeaan toimintaan |
| Tarkka hallinta jokaisen syklin välillä | Skriptin pysäyttäminen vaatii erillisen mekanismin, helposti jumittuu |
Jos peli vaatii toimintoja sekunnin tai hitaammin (esim. toistuvat taidot, säännölliset buffit), SetTimer on siistimpi valinta. Jos tarvitaan millisekuntien tarkkaa ohjausta, kannattaa käyttää Sleep-silmukkaa break-ehdolla.
PostMessage-komentoa tai etsiä muita ikkunaviestejä.{F1}, {Enter}.MouseGetPos, , , TargetHwndControlClick-koordinaatit voivat siirtyä. Suosittele pelin käyttöä ikkunatilassa ja skaalauksen asettamista 100 %:iin.Kun muutat yksinkertaisen etualan skriptin taustalla toimivaksi monen näppäimen järjestelmäksi, keskeiset muutokset ovat: taustakomentojen valinta (ControlSend / ControlClick), ikkunan sisäisten koordinaattien laskenta ja pääsilmukan ohjaustapa. Tässä artikkelissa esitetyt muokkausesimerkit voidaan soveltaa suoraan Water Margin Online -peliin tai muihin vastaaviin peliautomaatioskripteihin. Jos pelissäsi on erityisiä näppäinyhdistelmiä tai koordinaattien napsautustarpeita, suosittelemme aloittamaan pienimmällä toimivalla taustaversiolla ja lisäämään toimintoja askel askeleelta.