2017-06-15 10 views
2

私のPython 2.7.13スクリプトは基本的にビデオゲームのためのいわゆる「1つのキーマクロ」です。ゲーム画面の一部からキャプチャされた情報に基づいて、プレーヤーの代わりに正しいキーの組み合わせが押されます。したがって、プレーヤーはfキーをスパムし、スクリプトはfの横にある他のキーを押します。ゲーム用のPythonワンボタンマクロ

ただし、スクリプトはランダムな時間(開始から1〜5分後)で動作しています。私はWindowsのタスクマネージャでスクリプトが実行されているのを見ることができますが、fのキーを押すと何も起こりません。

私はこのコードをもう少し最適化していないと書いていましたが、もう一度スクリーンショットを撮りました。そのスクリプトは、しばしば当時より「凍結」していました。

これはスクリーンショットが多すぎることがありますか?それとも、私はどこかにうんざりしましたか?

import pyautogui, pythoncom, pyHook 

# Determine if an ability is ready or not 

def ready(x,y, im): 
    if (im.getpixel((x,y)) != (0,0,0)): 
     return True 
    else: 
     return False 

def ability1(im): 
    return (ready(17, 16, im) or ready(35, 16, im)) 


def ability2(im): 
    return ready(134, 9, im) 

# Listen for keypress 
def OnKeyboardEvent(event): 
    im = pyautogui.screenshot(region=(249, 770, 194, 26)) 

    if (event.KeyID == 70): # Pressed the "f" key 
     if (ability1(im)): 
      pyautogui.hotkey('shift','4') 
      return True 

     if (ability2(im)): 
      pyautogui.press('-') 
      return True   

     pyautogui.press('1') 
     return True 

# create a hook manager 
hm = pyHook.HookManager() 

# watch for all mouse events 
hm.KeyDown = OnKeyboardEvent 

# set the hook 
hm.HookKeyboard() 

# wait forever 
pythoncom.PumpMessages() 

答えて

1

これをライブサーバで実行している場合、これはWardenのチェック/干渉の増加によるものです。

ライブサーバーでこのような自動化を使用しないことをお勧めします。