วิธีใช้ AutoKey เพื่อทำให้เกม Linux เป็นอัตโนมัติ

How Use Autokey Automate Linux Games



ออโต้คีย์ เป็นยูทิลิตี้การทำงานอัตโนมัติบนเดสก์ท็อปสำหรับ Linux และ X11 ซึ่งตั้งโปรแกรมไว้ใน Python 3, GTK และ Qt ด้วยการใช้สคริปต์และฟังก์ชัน MACRO คุณสามารถทำการกดแป้น การคลิกเมาส์ และส่วนต่างๆ ของอินเทอร์เฟซเดสก์ท็อปได้โดยอัตโนมัติ หากคุณกำลังมองหาทางเลือกแทนโปรแกรม Windows AutoHotkey , AutoKey เป็นตัวเลือกที่ดีที่สุดสำหรับผู้ใช้ Linux ในปัจจุบัน

โปรดทราบว่านี่เป็นแอปพลิเคชัน X11 เท่านั้น ยังไม่มีการเพิ่มการสนับสนุน Wayland ในแอปพลิเคชันในขณะที่เขียนบทความนี้







คุณสมบัติ AutoKey บางอย่าง ได้แก่ :



  • รองรับคำย่อที่สามารถขยายอักขระสองสามตัวโดยอัตโนมัติในประโยคและบล็อกข้อความที่คุณใช้บ่อย
  • รองรับการส่งการกดแป้นพิมพ์และการคลิกเมาส์โดยอำเภอใจ
  • รองรับการระบุกฎสำหรับหน้าต่างแอปพลิเคชันเฉพาะ
  • สคริปต์ Python 3 สามารถใช้เขียนกฎอัตโนมัติได้
  • ความสามารถในการควบคุมการทำงานของหน้าต่าง เช่น การขยายใหญ่สุด การปรับขนาด และการย้าย
  • มาพร้อมกับชุดตัวอย่างที่กำหนดไว้ล่วงหน้าเพื่อให้เขียนสคริปต์ได้ง่ายขึ้น
  • ความสามารถในการแสดงป๊อปอัปเมนูที่กำหนดเองพร้อมรายการตัวเลือก
  • ความสามารถในการบันทึกการกดแป้นพิมพ์และการคลิกเมาส์
  • ความสามารถในการตั้งค่าปุ่มลัดโดยไม่ต้องใช้ปุ่มปรับแต่ง
  • สคริปต์การทำงานอัตโนมัติสามารถพกพาได้และสามารถแชร์กับผู้ใช้รายอื่นได้อย่างง่ายดาย

คู่มือนี้จะแสดงตัวอย่าง AutoKey ที่เป็นประโยชน์สำหรับนักเล่นเกม Linux ในการเริ่มต้นให้ติดตั้งแพ็คเกจ Autokey Ubuntu จากหน้า GitHub ดาวน์โหลดไฟล์ที่กล่าวถึงด้านล่างจาก ที่นี่



  • autokey-common_x.xx.x-x_all.deb
  • autokey-gtk_x.xx.x-x_all.deb หรือ autokey-qt_x.xx.x-x_all.deb (ดาวน์โหลดเพียงอันเดียว)

หลังจากดาวน์โหลดไฟล์แล้ว ให้รันคำสั่งต่อไปนี้ตามลำดับ:





$sudoฉลาดติดตั้ง./autokey-common_0.95.8-0_all.deb
$sudoฉลาดติดตั้ง./autokey-gtk_0.95.8-0_all.deb

เป็นเรื่องปกติที่จะเห็นเกม PC หลายเกมใช้คีย์สำหรับการบันทึกอย่างรวดเร็วและการโหลดอย่างรวดเร็ว อย่างไรก็ตาม เกมพีซีอื่นๆ มากมาย โดยเฉพาะพอร์ตคอนโซลมีวิธีการบันทึกเกมที่น่าเบื่อ ซึ่งคุณต้องไปยังตัวเลือกเมนูต่างๆ นี่คือภาพจำลองสั้นๆ ที่ฉันวาดซึ่งแสดงให้เห็นสิ่งนี้ (ขออภัยในทักษะการวาดภาพของฉัน):



เกมต้องการให้คุณกดแป้นเพื่อหยุดเกม จากนั้นกดแป้นลูกศร จากนั้นกดแป้นเพื่อบันทึกเกม ตามด้วยแป้นอีกครั้งเพื่อกลับไปยังเกม กระบวนการทั้งหมดนี้สามารถทำให้เป็นอัตโนมัติและจับคู่กับคีย์ได้อย่างง่ายดายโดยใช้ AutoKey ตรวจสอบรหัสสคริปต์ด้านล่าง:

นำเข้าเวลา
keyboard.send_key('')
เวลานอน(0.25)
keyboard.send_key('')
เวลานอน(0.25)
keyboard.send_key('')
เวลานอน(0.25)
keyboard.send_key('')

หากต้องการเพิ่มสคริปต์นี้ใน AutoKey ให้เปิดแอปแล้วคลิกบนโฟลเดอร์ที่มองเห็นได้ หรือคลิกที่โฟลเดอร์ที่กำหนดเองซึ่งคุณสร้างขึ้นเพื่อไฮไลต์ คลิกที่ ไฟล์ > ใหม่ > Script เมนูตัวเลือกเพื่อสร้างสคริปต์ใหม่ภายในโฟลเดอร์นั้นดังแสดงในภาพหน้าจอด้านล่าง:

เปลี่ยนชื่อสคริปต์นี้เป็น Quicksave และใส่โค้ดด้านบนลงไป จากนั้นคลิกที่ปุ่ม Hotkey ที่ด้านล่าง ดังแสดงในภาพหน้าจอด้านล่าง:

ในหน้าจอถัดไป ให้คลิกที่ปุ่ม Press to Set จากนั้นกดปุ่มเพื่อจับคู่กับสคริปต์

กุญแจ:(ไม่มี)จะเปลี่ยนเป็นคีย์:<f5>.

คลิกที่ ตกลง และกด เพื่อบันทึกสคริปต์ โปรดจำไว้เสมอว่าให้บันทึกสคริปต์ มิฉะนั้นจะไม่มีการดำเนินการใดๆ เมื่อคุณกดปุ่มลัดที่แมปไว้

คีย์แมปบันทึกด่วนพร้อมใช้งานแล้ว ครั้งถัดไปเมื่อคุณกดปุ่ม ระบบจะทำการกดปุ่มตามลำดับ

โปรดทราบว่าเราได้เปลี่ยนการทำงานของคีย์ทั่วโลกในระบบปฏิบัติการ ตราบใดที่ AutoKey ทำงานและเชื่อมต่อกับซิสเต็มเทรย์ หากต้องการจำกัดเฉพาะบางหน้าต่างหรือแอปพลิเคชัน คุณจะต้องระบุกฎของหน้าต่างโดยคลิกที่ปุ่มตัวกรองหน้าต่างที่ด้านล่าง

คุณสามารถใช้สคริปต์เดียวกันด้านบนเพื่อสร้างสคริปต์สำหรับการโหลดอย่างรวดเร็วได้เช่นกัน คุณเพียงแค่ต้องลบบรรทัดสำหรับปุ่มลูกศรแล้วแมปสคริปต์กับคีย์

หากคุณกำลังมองหาชื่อคีย์ที่ถูกต้องเพื่อใช้ในสคริปต์ AutoKey Python 3 คุณสามารถค้นหารายการคีย์โค้ดพิเศษทั้งหมดที่ใช้งานได้ใน AutoKey ที่นี่ . คีย์ที่ไม่ได้กล่าวถึงในหน้าข้างต้นสามารถแทรกได้โดยใช้เครื่องหมายคำพูดเดี่ยวหรือคู่ ตัวอย่าง: keyboard.send_key('5'), keyboard.send_key('p') และอื่นๆ

ตัวอย่างที่ 2: ดื่มยาเพื่อสุขภาพสองอย่างติดต่อกันในเกมเล่นตามบทบาท

สมมติว่าปุ่มลัดเพื่อดื่มยาเพื่อสุขภาพในเกมของคุณคือ สคริปต์จะเป็น:

keyboard.send_key('ชม',ทำซ้ำ=2)

ค่าของตัวแปรการทำซ้ำสามารถเปลี่ยนเป็นตัวเลขอื่นได้เช่นกัน คุณสามารถทำตามขั้นตอนในตัวอย่างแรกเพื่อจับคู่สคริปต์กับปุ่มลัดที่คุณต้องการ

ตัวอย่างที่ 3: โหมดถ่ายภาพต่อเนื่องสำหรับปืนในเกมยิงปืน

คุณสามารถใช้รหัสด้านล่างเพื่อแมปกุญแจเพื่อยิงปืนสามครั้งติดต่อกัน วิธีดั้งเดิมในการยิงในเกมคือการกดคลิกเมาส์ซ้ายหนึ่งครั้ง

# ปุ่มเมาส์: ซ้าย=1,กลาง=2,ขวา=3
mouse.click_relative_self(0,0,1)
mouse.click_relative_self(0,0,1)
mouse.click_relative_self(0,0,1)

สคริปต์ด้านบนจะดำเนินการคลิกเมาส์ซ้ายสามครั้งติดต่อกัน คุณสามารถเพิ่มคำสั่งพิเศษได้หากคุณต้องการดำเนินการคลิกซ้ายมากกว่าสามครั้ง

คุณสามารถทำตามขั้นตอนในตัวอย่างแรกเพื่อจับคู่สคริปต์กับปุ่มลัด

ตัวอย่างที่ 4: สร้างเมนูเกมแบบกำหนดเอง / เปลี่ยนเกมเรียลไทม์เป็นเกมแบบผลัดกันเล่น

การใช้ฟังก์ชันเมนูรายการของ AutoKey เราจะแสดงเมนูเป็นโอเวอร์เลย์ที่ด้านบนของเกมที่กำลังทำงานอยู่ เมนูนี้จะขโมยโฟกัสจากเกมและกลับมาหลังจากคลิกเมาส์บนรายการเมนูใดรายการหนึ่ง เมื่อโฟกัสกลับมาแล้ว การกดแป้นพิมพ์อัตโนมัติจะทำงานเพื่อเรียกใช้ฟังก์ชันภายในเกม

ลองดูภาพนี้:

ในโฟลเดอร์ GameMenu ฉันได้สร้างโฟลเดอร์ย่อยชื่อ Show ทั้งโฟลเดอร์ GameMenu และ Show มีรายการย่อย นี่คือรหัสที่ฉันใส่ไว้ในไอเท็มย่อยแต่ละรายการ:

  • สินค้าคงคลัง: keyboard.send_key('i')
  • แผนที่: keyboard.send_key('m')
  • กลับไปที่เกม: keyboard.send_key('')
  • เปลี่ยนเป็น Assault Rifle: keyboard.send_key('2')
  • เปลี่ยนเป็น SMG: keyboard.send_key('1')

ที่นี่โฟลเดอร์ GameMenu ถูกแมปกับคีย์และนี่คือสิ่งที่ดูเหมือนในเกมที่กำลังรันอยู่:

รายการเมนูแต่ละรายการมีตัวเลขนำหน้าป้ายกำกับ คุณสามารถเรียกใช้รายการเมนูใดก็ได้โดยกดปุ่มตัวเลขที่เกี่ยวข้องบนแป้นพิมพ์ของคุณ ตัวอย่างเช่น การกดปุ่มที่นี่จะเปลี่ยนปืนเป็นปืนไรเฟิลจู่โจม

ตัวอย่าง GIF ขนาดเล็กของตัวอย่างนี้ (คลิกที่รูปภาพหรือคลิกขวาแล้วเปิด GIF ในแท็บใหม่หากภาพเคลื่อนไหวหยุดด้านล่าง):

วิธีนี้อาจใช้ไม่ได้กับทุกเกม ขึ้นอยู่กับวิธีจัดการการแสดงผลแบบหน้าต่างและแบบเต็มหน้าจอ เกมบางเกมไม่หยุดชั่วคราวเมื่อโฟกัสถูกขโมยไปในขณะที่เกมอื่นทำ หากเกมหยุดชั่วคราวเมื่อโฟกัสหายไป แสดงว่าคุณได้แปลงเกมแบบเรียลไทม์เป็นเกมแบบผลัดกันเล่นโดยใช้สคริปต์ AutoKey นี้

ตัวอย่างนี้จะทำงานกับเกมเป็นกรณีไป อย่างไรก็ตาม ในการทดสอบของฉัน ฉันได้ผลลัพธ์ที่ค่อนข้างดีกับทั้งเกมเนทีฟและ Steam Proton / Wine

บทสรุป

ตัวอย่างทั้งหมดที่กล่าวถึงในที่นี้เป็นพื้นฐาน โดยเน้นที่นักเล่นเกม Linux เป็นหลัก ครอบคลุมเฉพาะส่วนหนึ่งของ API อันทรงพลังของ AutoKey AutoKey สามารถทำให้เวิร์กโฟลว์ของคุณเป็นอัตโนมัติได้โดยใช้คุณสมบัติการเขียนสคริปต์สำหรับซอฟต์แวร์ประจำวันหรือซอฟต์แวร์ที่ซับซ้อนเช่นกัน มีตัวอย่างเพิ่มเติมอีกสองสามตัวอย่างใน เอกสารราชการ ของแอพ