AutoHotkey ile oyun içi fare tıklamalarını ve tuşları arka planda çalıştırarak diğer işlemlerinizi bölmeyin. ControlSend ve ControlClick komutlarıyla ön plana geçmeden tuş gönderme ve tıklama yapın; SetTimer ile ana döngüyü yönetin.
Research answer

Create a landscape editorial hero image for this Studio Global article: 以圖片製作出來看看. Article summary: # AI generated image. Topic tags: general, image. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with fake numbers, clickbait thumbnails, icons, and tiny thumbnail layouts. Make it useful as an illustrative visual, not as factual evidence.
Birçok oyuncu, tekrarlayan işlemleri otomatikleştirmek için AutoHotkey (AHK) ile scriptler yazar. Ancak, scripti arka planda çalıştırıp diğer işlerinizi etkilememek, oyun penceresi içindeki doğru koordinatları almak ve tuş göndermeyi daha kararlı hale getirmek gibi zorluklarla karşılaşılır.
Bu makale, Suikastçı Online oyunu için yazılmış bir otomasyon scriptinin düzenlenmesini örnek alarak arka plan tuşları, koordinat hesaplama, fare konumu yakalama kısayolları ve çoklu tuş gruplarının gönderilmesi gibi konuları adım adım açıklıyor.
Ön plan scriptleri fare tıklaması veya tuş gönderimi yaparken oyun penceresini en öne getirir ve diğer işlerinizi böler. Arka plan işleminin amacı, script çalışırken siz diğer pencereleri kullanmaya devam edebilirsiniz ve oyun penceresi arka planda komutları almaya devam eder.
AHK'da arka plan işlemleri için anahtar komutlar:
ControlSend: Belirtilen pencereye, o pencereyi etkinleştirmeden tuş gönderir.ControlClick: Belirtilen pencerenin belirli koordinatlarına, pencereyi etkinleştirmeden fare tıklaması gönderir.ahk_id %TargetHwnd%Oyun içi XY koordinatları, ekranın mutlak koordinatlarından farklıdır. Oyun penceresi taşındığında veya boyutu değiştiğinde, ekranın mutlak koordinatlarına göre yazılmış tıklamalar kayar.
Doğru yöntem, "pencere içi bağıl koordinatları" hesaplamaktır:
Oyun içi X = Fare Ekran X - Oyun Penceresi Sol Üst Köşe X
Oyun içi Y = Fare Ekran Y - Oyun Penceresi Sol Üst Köşe YDaha hassas olmak için, oyun içeriğinin (başlık çubuğu ve kenarlıklar hariç) sol üst köşesini referans almak gerekir.
; Oyun penceresinin sol üst köşe koordinatları (önceden alınmalı)
winX = 100
winY = 80
; Fare ekran koordinatlarını al
GetCursorPos mouseX, mouseY
; Oyun penceresi içi koordinatlara dönüştür
gameX := mouseX - winX
gameY := mouseY - winYDikkat Edilmesi Gerekenler:
Geliştirme aşamasında koordinatları manuel olarak girmek zahmetlidir. Daha verimli bir yol, bir kısayol tuşuna basarak fare konumunu doğrudan script GUI'sindeki alanlara doldurmaktır.
; F1 kısayolunu kaydet
Hotkey, F1, GetMousePos
return
GetMousePos:
MouseGetPos, mx, my
GuiControl,, FindX, %mx%
GuiControl,, FindY, %my%
ToolTip, Koordinat Yakalandı: X%mx% Y%my%
SetTimer, RemoveTip, -2000
returnBu sayede fareyi hedef konuma getirip F1'e bastığınızda koordinatlar otomatik olarak "Ara X / Ara Y" alanlarına doldurulur. İhtiyaca göre farklı kısayolları farklı koordinat alanlarına atayabilirsiniz.
Orijinal scriptte her biri kendi gecikme süresine sahip dört bağımsız tuş vardı. Ancak oyun içinde genellikle arka arkaya iki tuş göndermek (örneğin önce bir beceri tuşu, sonra bir yardımcı tuş) ve ardından beklemek gerekir.
Değişiklik Yönü:
SendKeyGroup(useGroup, keyA, keyB, waitMs, minute) {
global TimerCount, TargetHwnd
if (useGroup != 1)
return
if (minute > 0 and Mod(TimerCount, minute * 60) = 0) {
; Her N dakikada bir tuş grubunu gönder
ControlSend, , {%keyA%}, ahk_id %TargetHwnd%
Sleep, 100
ControlSend, , {%keyB%}, ahk_id %TargetHwnd%
}
if (minute = 0) {
; Her döngüde gönder
ControlSend, , {%keyA%}, ahk_id %TargetHwnd%
Sleep, 100
ControlSend, , {%keyB%}, ahk_id %TargetHwnd%
}
}AHK oyun scriptlerinde en sık karşılaşılan seçimdir:
| Yöntem | Avantajlar | Dezavantajlar |
|---|---|---|
| İstediğiniz zaman durdurulabilir, scripti bloke etmez, yapı nettir. | Minimum aralık yaklaşık 1 saniyedir, yüksek frekanslı işlemler için uygun değildir. |
| Her döngü aralığını hassas bir şekilde kontrol edebilirsiniz. | Durdurmak için ek mekanizma gerekir, kolayca takılabilir. |
Oyununuz için saniyede bir veya daha yavaş işlemler (örneğin beceri tekrarlama, düzenli buff ekleme) gerekiyorsa SetTimer daha temiz bir seçimdir. Milisaniye hassasiyetinde kontrol gerekiyorsa Sleep döngüsü ve break koşulu kullanmalısınız.
PostMessage veya başka pencere mesajları kullanmayı deneyin.{F1}, {Enter}.MouseGetPos, , , TargetHwndControlClick koordinatları kayabilir. Oyunu pencere modunda oynamanız ve görüntü ölçeklemesini %100'e ayarlamanız önerilir.Basit bir ön plan scriptinden arka plan çoklu tuş sistemine geçişin temel değişiklikleri şunlardır: arka plan komutlarının seçimi (ControlSend / ControlClick), pencere içi koordinat dönüşümü ve ana döngü sürücü yöntemi. Makalede verilen değiştirilmiş örnek, doğrudan Suikastçı Online veya benzer ihtiyaçları olan diğer oyun otomasyon scriptlerine uygulanabilir. Oyununuzun özel tuş kombinasyonları veya koordinat tıklamaları varsa, en küçük uygulanabilir arka plan sürümüyle başlayıp adım adım özellik eklemenizi öneririz.
Studio Global AI
This page includes a source-backed answer you can continue inside Studio Global.
AutoHotkey ile oyun içi fare tıklamalarını ve tuşları arka planda çalıştırarak diğer işlemlerinizi bölmeyin.
AutoHotkey ile oyun içi fare tıklamalarını ve tuşları arka planda çalıştırarak diğer işlemlerinizi bölmeyin. ControlSend ve ControlClick komutlarıyla ön plana geçmeden tuş gönderme ve tıklama yapın; SetTimer ile ana döngüyü yönetin.
Oyun penceresi içindeki X Y koordinatlarını hesaplamak için pencere başlığının konumunu referans alın ve F1 gibi bir kısayol tuşuyla anında yakalayın.