Пару десятков минут гугления и использования метода тыка.
Для работы нужна библиотека keyboard (
pip install keyboard
) и еще pywin32, чтобы бинды не срабатывали, когда самп свернут (
pip install pywin32
).
keyboard.add_hotkey("1", fun)
- при нажатии на единичку, выполнится функция fun (бинд на клавишу).
keypress(key)
- нажимает на клавишу key (зажимает и через 100 миллисекунд отжимает).
sampIsActive()
- возвращает True, если активно окно сампа.
send_to_chat(message)
- отправляет строку message в чат, когда самп - это активное окно.
send_messages_to_chat(messages_list, delay)
- отправляет список строк messages_list в чат с задержкой delay в секундах (по умолчанию = 0)
Обязательно в конце нужно прописать бесконечный цикл. Либо же
keyboard.wait()
.
import time
import keyboard
from win32gui import GetWindowText, GetForegroundWindow
def keypress(key):
keyboard.press(key)
time.sleep(0.1)
keyboard.release(key)
def sampIsActive():
return GetWindowText(GetForegroundWindow()) == "GTA:SA:MP"
def send_to_chat(message):
if sampIsActive():
keypress("F6")
keyboard.write(message)
keypress('Enter')
def send_messages_to_chat(messages_list, delay=0):
for message in messages_list:
send_to_chat(message)
time.sleep(delay)
keyboard.add_hotkey("Ctrl + 1", lambda: send_to_chat("/me упал, отжался."))
keyboard.add_hotkey("Ctrl + 2", lambda: send_messages_to_chat(
["Приветствую, меня зовут Даниил.", "Чем могу быть полезен?"], 2
))
while True:
pass
PS: Во время того, как скрипт печатает, лучше ничего не нажимать.