import time
import requests
import threading
import re
# 🔧 Настройки
BOT_TOKEN = ""
CHAT_ID = "" # пример: 123456789 или -1001234567890
LOG_PATH = r"C:\SAMPLOGS\RakSAMP Lite.log"
OUT_FILE = r"C:\SAMPLOGS\to_game.txt"
def send_to_telegram(text: str):
"""Отправка текста в Telegram"""
url = f"
https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
try:
requests.post(url, data={"chat_id": CHAT_ID, "text": text}, timeout=10)
except Exception as e:
print("Ошибка отправки:", e)
def remove_colors(text: str) -> str:
return re.sub(r"\{[0-9A-Fa-f]{6}\}", "", text)
def tail_log():
"""Слежение за логом и пересылка [MSG]"""
try:
with open(LOG_PATH, "r", encoding="cp1251", errors="ignore") as f:
f.seek(0, 2)
while True:
line = f.readline()
if not line:
time.sleep(1)
continue
if "[MSG]" in line:
clean = remove_colors(line.strip())
send_to_telegram(clean)
except FileNotFoundError:
print("Не найден лог:", LOG_PATH)
def listen_telegram():
"""Слушаем команды в Telegram (!cand ...)"""
url = f"
https://api.telegram.org/bot{BOT_TOKEN}/getUpdates"
offset = None
while True:
try:
resp = requests.get(url, params={"timeout": 10, "offset": offset}, timeout=15).json()
for update in resp.get("result", []):
offset = update["update_id"] + 1
msg = update.get("message", {})
text = msg.get("text", "")
if text.startswith("!cand "):
command = text[len("!cand "):]
with open(OUT_FILE, "a", encoding="utf-8") as out:
out.write(command + "\n")
send_to_telegram(f"✅ В игру отправлено: {command}")
except Exception as e:
print("Ошибка получения обновлений:", e)
time.sleep(1)
if __name__ == "__main__":
threading.Thread(target=tail_log, daemon=True).start()
listen_telegram()
это чат из игры логирует
код для того чтобы в игру текст выводил я через чат гтп делал потомучто лень уже думать, и блять на это 3 часа убил, бесполезно
чекни:
Код:
🔥 Понял, тебе нужно связать Telegram-бота с RakSAMP, чтобы при написании команды !cand в телеграм-чате бот пересылал сообщение прямо в игру через sendInput("текст").
Сделаем так:
Python-скрипт работает как Telegram-бот.
При получении команды из чата он вызывает RakSAMP-функцию sendInput.
Для вызова Lua-функций мы будем писать промежуточный файл (например command.txt), а Lua-скрипт в RakSAMP будет читать этот файл и отправлять сообщение.
🔹 Часть 1. Python (Telegram-бот)
Сохрани как tg_bridge.py:
import telebot
import time
TOKEN = "ТОКЕН_ТВОЕГО_БОТА" # замени на свой токен
CHAT_ID = -100123456789 # id беседы (можно взять у @getidsbot)
bot = telebot.TeleBot(TOKEN)
@bot.message_handler(commands=["cand"])
def handle_cand(message):
if message.chat.id == CHAT_ID:
# сохраняем текст в файл для RakSAMP
with open("command.txt", "w", encoding="utf-8") as f:
f.write("Привет из Telegram!")
bot.reply_to(message, "🔥 Сообщение отправлено в игру!")
print("Бот запущен...")
bot.infinity_polling()
🔹 Часть 2. Lua (RakSAMP-скрипт)
Сохрани как tg_input.lua и положи в scripts/:
require("addon")
print("[TG-BRIDGE] Скрипт запущен.")
-- таск для проверки файла раз в 2 секунды
task = newTask(function()
while true do
local file = io.open("command.txt", "r")
if file then
local text = file:read("*a")
file:close()
if text ~= "" then
sendInput(text) -- отправить в чат
-- очищаем файл
local clear = io.open("command.txt", "w")
clear:close()
print("[TG-BRIDGE] Отправлено в чат: " .. text)
end
end
wait(2000) -- проверяем каждые 2 сек
end
end, false)
⚙️ Как использовать
Запусти tg_bridge.py (бот в Telegram).
Запусти RakSAMP, чтобы подгрузился tg_input.lua.
Напиши в беседе с ботом команду:
/cand
(или !cand, если настроишь хендлер на текст).
Сообщение из command.txt бот отправит в чат игры.
этот код написал чат гпт типо чтобы сообщения в самп кидать
но он тоже не рабоатет