es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Pydirectinput/Pynput/Pyautogui no siempre presionan las teclas.

Así que he estado intentando hacer una macro para un juego en Roblox y a veces las entradas no funcionan realmente. ¿Por qué sucede esto? Lo he intentado en pydirectinput, pynput y pyautogui, pero ninguno funciona. He estado intentando hacer esto durante las últimas horas y realmente me encantaría que alguien me ayudara.

Aquí está mi código (para pydirectinput):

import pydirectinput, threading, time, sys, os

os._exit(404)

def press_key(key):
    pydirectinput.press(key)

def hold_key(key, s):
    pydirectinput.keyDown(key)
    time.sleep(s)
    pydirectinput.keyUp(key)

w = "w"
a = "a"
s = "s"
d = "d"
period = "."
comma = ","

def reset():
    press_key("esc")
    time.sleep(.1)
    press_key(KeyCode(char="r"))
    time.sleep(.1)
    press_key(Key.enter)
    time.sleep(.1)

def start():
    press_key(period)
    time.sleep(.1)
    press_key(period)
    hold_key(w, 2)
    time.sleep(1)
    press_key("space")
    time.sleep(.1)
    hold_key(w, 2)
    time.sleep(.5)
    press_key(comma)
    time.sleep(.1)
    press_key(comma)
    time.sleep(.3)
    hold_key(w, 1)
    time.sleep(.2)
    press_key(period)
    time.sleep(.1)
    press_key(period)
    time.sleep(.3)
    hold_key(w, .5)
    time.sleep(.3)
    press_key(period)
    time.sleep(.1)
    press_key(period)
    time.sleep(.2)
    hold_key(w, .3)
    time.sleep(.1)
    press_key("e")

def loop():
    print("loop")
    # while True:
    #     hold_key(w, 1)
    #     hold_key(a, 1)
    #     hold_key(s, 1)
    #     hold_key(d, 1)

time.sleep(2)
threading.Thread(target=start()).start()
time.sleep(2)
threading.Thread(target=loop).start()
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Podría haber varias razones por las que los inputs no están funcionando. Aquí hay algunas posibles explicaciones:

    • El juego podría estar bloqueando scripts de entrada externos como el que ha creado por razones de seguridad.
    • El tiempo de los inputs puede no ser el correcto, lo que podría hacer que el juego no los registre correctamente. Puede que sea necesario ajustar el tiempo o añadir alguna demora entre cada input.
    • Su código puede tener errores o bugs que impiden que funcione correctamente. Puede que sea necesario comprobar su código en busca de errores y asegurarse de que funciona como se pretende.
    • Su ordenador puede no tener suficientes recursos para ejecutar el script y el juego al mismo tiempo, lo que podría hacer que el script falle o se ralentice. Puede que sea necesario cerrar otros programas o actualizar su hardware.

    Es difícil decir exactamente cuál es el problema sin más información, pero estas son algunas posibles soluciones para probar.

Comments are closed.