Создаю игру на подобии
но когда я добавляю его в группу то он вообще не реагирует на команды, что делать ?
но когда я добавляю его в группу то он вообще не реагирует на команды, что делать ?
Потому что умерСоздаю игру на подобии
но когда я добавляю его в группу то он вообще не реагирует на команды, что делать ?
можешь посмотреть код и узнать что не так ? это мой первый бот простоПотому что умер
Неверные отступы (исправить нужно), а так же не знаю назвать это ошибкой или нет, но у тебя нет проверки что игроков достаточно, вот исправленный хэндлер "start_round"import telebot
import random
token = '6772682425:AAHdurYqtoK3XbV103kGSr0dAGB8xRHNf50'
bot = telebot.TeleBot(token)
starts = False
starting = True
players = {}
roles = ["Шпион","Житель"]
mesta = ["База террористов","Банк","Больница","Киностудия","Корпоративная вечеринка","Овощебаза","Пассажирский поезд","Пиратский корабль","Полярная станция","Посольство","Ресторан","Супермаркет","Театр","Университет","Войско крестоносцев","Казино","Океанский лайнер","Орбитальная станция","Отель","Пляж","Подводная лодка","Полицейский участок","Самолет","Станция техобслуживания","Цирк","Школа"]
@bot.message_handler(commands=['start_shpion'])
def start_game(message):
global starting
if starting == True:
starting = False
global starts
starts = True
global players
players.clear()
bot.send_message(message.chat.id, text="Добро пожаловать в игру Шпион! Чтобы присоединиться, нажмите --> /join_shpion")
else:
bot.send_message(message.chat.id, text="Игра уже началась, вы не можете начать новую")
@bot.message_handler(commands=['join_shpion'])
def join_game(message):
global players
if starts == True:
if message.from_user.id not in players:
players[message.from_user.id] = None
bot.send_message(chat_id=message.chat.id, text=f"{message.from_user.first_name} Присоединился к игре")
else:
bot.send_message(chat_id=message.chat.id, text="Вы уже в игре")
else:
bot.send_message(message.chat.id, 'Игру еще не запустили\nНапишите в чат /start_shpion чтобы запустить игру')
@bot.message_handler(commands=['start_round'])
def start_round(message):
if starts == True:
if len(players) < 0:
bot.send_message(message.chat.id, "Недостаточно игроков. Нужно как минимум 4 игроков.")
return
random.shuffle(roles)
mestas = random.choice(mesta)
shpion_squad = len(players) // 1
print(shpion_squad)
while shpion_squad > 0:
for player_id, role in zip(players.keys(), roles):
players[player_id] = role
bot.send_message(chat_id=player_id, text=f"Ваша роль: {role}")
print(shpion_squad)
shpion_squad -= 1
if role == "Житель":
bot.send_message(chat_id=player_id, text=f'Тема: {mestas}')
else:
bot.send_message(message.chat.id,'Игру еще не запустили\nНапишите в чат /game чтобы запустить игру' )
@bot.message_handler(commands=['stop_shpion'])
def stop(message):
global starting
starting = True
bot.polling(none_stop=True)
@bot.message_handler(commands=['start_round'])
def start_round(message):
global starts, players
if not starts:
bot.send_message(message.chat.id, 'Игра еще не запущена. Для этого напишите /start_shpion')
return
if len(players) < 6: #пиши тут минимум кол-во игроков
bot.send_message(message.chat.id, "Для игры мне нужно минимум 6 игроков")
return
roles = ["Шпион", "Житель"]
mesta = ["Театр", "Банк", "Больница", "Киностудия"] # тут пиши список полный своих локаций
location = random.choice(mesta) # Выбор локации
spy_count = 1 # Тут ставишь сколько шпионов должно быть в раунде
# Тут раздаются роли
for i, player_id in enumerate(players.keys()):
if i < spy_count:
role = "Шпион"
bot.send_message(player_id, f"Ваша роль: {role}")
else:
role = "Мирный"
bot.send_message(player_id, f"Ваша роль: {role}\nМесто: {location}")
players.clear()