Skip to content

Instantly share code, notes, and snippets.

@sl5net
Last active March 20, 2021 22:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sl5net/a9469c0c714a7bed577cfce8d02b4593 to your computer and use it in GitHub Desktop.
Save sl5net/a9469c0c714a7bed577cfce8d02b4593 to your computer and use it in GitHub Desktop.
0AD build everything by pressing first letter
#####################################################
# you must be root to use keyboard the following:
# sudo apt install python3-pip
# pip3 install keyboard
# sudo autokey
#####################################################
#####################################################
# Disable Ubuntu Shortcuts:
# Super+L (global shortcuts: use it for audio and then delete it)
# Super+P (global shortcuts: use it for audio and then delete it)
# config 0AD:
# team chat: T --> Super+T
# privat chat: --> Super+L or menu+P
# camera reset: R --> Super+R
# folow player: F --> shift+f
# config 0AD ~/snap/0ad/201/.config/0ad/config/:
# if using Kate-Editor:
# Space\+([A-Z]") --> \1
#####################################################
import keyboard as keyboard2 # must be different name becouse of name conflicts
#
import time
secondsStart = 0
secondsEnd = 0
aPressedCount = 0
bPressedCount = 0
cPressedCount = 0
dPressedCount = 0
ePressedCount = 0
fPressedCount = 0
gPressedCount = 0
wPressedCount = 0
while True:
winClass = window.get_active_class()
if winClass != 'pyrogenesis.pyrogenesis':
time.sleep(1)
continue
key = keyboard2.read_key()
# if keyboard2.is_pressed(' '): #if key space is pressed.You can also use right,left,up,down and others like a,b,c,etc.
# secondsStart = time.time()
# keyboard.send_keys("You pressed space")
# if key:
# print("You pressed p")
# break
# f12fffffffffff
# f<space>+<F><Space>+<F>f<space>+<F><space>+<F>p# endOfScript # f<space>+<F><space>+f
sleepBefore = 0.2
sleepAfter = 0.3
if key == "c":
secondsNow = time.time()
if secondsNow - secondsStart < 3:
secondsStart = 0
cPressedCount = cPressedCount + 1
if cPressedCount == 1: # field = "Space+F" ff<space>+<F><space>+f
keyboard.send_keys("c") # civial center
# time.sleep(sleepAfter)
if cPressedCount == 2: # field = "Space+F" ff<space>+<F><space>+f
time.sleep(sleepBefore)
keyboard.send_keys("k") # coral
if cPressedCount > 2:
cPressedCount = 0
secondsStart = 0
time.sleep(sleepAfter)
continue
if key == "d":
# dock = "Space+J"
# defense_tower = "Space+D" as backup
secondsNow = time.time()
if secondsNow - secondsStart < 3:
secondsStart = 0
dPressedCount = dPressedCount + 1
if dPressedCount == 1: # Dore Defense Stone Tower
keyboard.send_keys("j") # dock
#time.sleep(sleepAfter)
if dPressedCount == 2: # field = "Space+F" ff<space>+<F><space>+f
time.sleep(sleepBefore)
keyboard.send_keys("d") # defense_tower = "Space+D" as backup
#time.sleep(sleepAfter)
if dPressedCount > 2:
cPressedCount = 0
secondsStart = 0
time.sleep(sleepAfter)
continue
if key == "e":
# wallset_palisade = "Space+E"c
# elephant_stables = "Space+Q"
secondsNow = time.time()
if secondsNow - secondsStart < 3:
secondsStart = 0
ePressedCount = 0
ePressedCount = ePressedCount + 1
if ePressedCount == 1: # elephant_stables = "Space+Q"
time.sleep(sleepBefore)
keyboard.send_keys("q")
time.sleep(sleepAfter)
if ePressedCount == 2: # wallset_palisade = "Space+E"
time.sleep(sleepBefore)
# keyboard.send_keys("e")
time.sleep(sleepAfter)
if ePressedCount > 2:
ePressedCount = 0
secondsStart = 0
continue
if key == "f":
#keyboard.send_keys("<ctrl>+c") # <= this is working
#keyboard.send_keys("<menu>+c") # <= this is working
if False:
keyboard.fake_keypress('<space>')
time.sleep(0.1)
keyboard.send_keys("s")
time.sleep(0.1)
keyboard.release_key('<space>')
# f<f>f<f>p# endOfScript # p äfäfäf
# p# endOfScript #
# field = "Space+F"
# farmstead = "Space+G"
# forge = "Space+N"
# fortress = "Space+R"
secondsNow = time.time()
if secondsNow - secondsStart < 3:
secondsStart = 0
fPressedCount = fPressedCount + 1
# p# endOfScript #
if fPressedCount == 1: # field = "Space+F" ff<space>+<F><space>+f
keyboard.send_keys("f")
time.sleep(sleepAfter)
if fPressedCount == 2:
time.sleep(sleepBefore)
keyboard.send_keys("g") # farmstead = "Space+G"
time.sleep(sleepAfter)
if fPressedCount == 3:
time.sleep(sleepBefore)
keyboard.send_keys("n") # forge = "Space+N"
time.sleep(sleepAfter)
if fPressedCount == 4:
time.sleep(sleepBefore)
keyboard.send_keys("r") # fortress = "Space+R"
time.sleep(sleepAfter)
if fPressedCount > 4:
fPressedCount = 0
secondsStart = 0
continue
if key == "t":
secondsNow = time.time()
if secondsNow - secondsStart < 3:
secondsStart = 0
tPressedCount = tPressedCount + 1
if tPressedCount == 1: # field = "Space+F" ff<space>+<F><space>+f
keyboard.send_keys("t") # temple
# time.sleep(sleepAfter)
if tPressedCount == 2: # field = "Space+F" ff<space>+<F><space>+f
time.sleep(sleepBefore)
keyboard.send_keys("d") # tower
if tPressedCount > 2:
tPressedCount = 0
secondsStart = 0
time.sleep(sleepAfter)
continue
if key == "w":
# wallset_stone = "Space+W"
# wallset_palisade = "Space+E"
# wallset_siege = "Space+U"
secondsNow = time.time()
if secondsNow - secondsStart < 3:
secondsStart = 0
wPressedCount = 0
wPressedCount = wPressedCount + 1
if wPressedCount == 1: # wallset_stone = "Space+W"
keyboard.send_keys("w")
# time.sleep(sleepAfter)
if wPressedCount == 2: # wallset_palisade = "Space+E"
time.sleep(sleepBefore)
keyboard.send_keys("e") # wallset_palisade = "Space+E"
# time.sleep(sleepAfter)
if wPressedCount == 3: # wallset_palisade = "Space+E"
time.sleep(sleepBefore)
keyboard.send_keys("u") # wallset_siege = "Space+U"
if wPressedCount > 3:
wPressedCount = 0
secondsStart = 0
time.sleep(sleepAfter)
continue
if key == "p":
# print("You pressed p")p# endOfScript #
break
# p# endOfScript #
# f ff1 You pressed space You pressed spacef2 You pressed spacef You pressed spaceffff
# You pressed space You pressed space You pressed space You pressed space. You pressed space. You pressed spacep# endOfScript #
# ppppppppppppppfffppfff
# # hiho # # hiho # # hiho # # hiho #
# mouse.click_relative(10,10,1)
# keyboard.send_keys("# endOfScript # ")
# hihoz# hiho # hiho
# p phiho
# p# endOfScript #
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment