def items_menu(chat_id): items = Item_list.itemlist data = datahandler.get_current(chat_id)[1] if data is not None: data = data.split(',') keyboard = types.InlineKeyboardMarkup() for item in items: matched_items = 0 if item.id in data: matched_items += 1 callback_button = types.InlineKeyboardButton( text=(item.name + u'\U00002714'), callback_data='delete_item' + item.id) keyboard.add(callback_button) else: callback_button = types.InlineKeyboardButton( text=item.name, callback_data='add_item' + item.id) keyboard.add(callback_button) else: keyboard = types.InlineKeyboardMarkup() for item in items: callback_button = types.InlineKeyboardButton( text=item.name, callback_data='add_item' + item.id) keyboard.add(callback_button) callback_button = types.InlineKeyboardButton(text='Qabul qilindi', callback_data='accept_player') keyboard.add(callback_button) return ('Jihozni tanlang', keyboard)
def skills_menu(chat_id): skills = special_abilities.usual_abilities data = datahandler.get_current(chat_id)[2] if data is not None: data = data.split(',') keyboard = types.InlineKeyboardMarkup() for skill in skills: matched_skills = 0 if skill.name in data: matched_skills += 1 callback_button = types.InlineKeyboardButton( text=skill.name + u'\U00002714', callback_data='delete_skill' + skill.name) keyboard.add(callback_button) else: callback_button = types.InlineKeyboardButton( text=skill.name, callback_data='add_skill' + skill.name) keyboard.add(callback_button) else: keyboard = types.InlineKeyboardMarkup() for skill in skills: callback_button = types.InlineKeyboardButton( text=skill.name, callback_data='add_skill' + skill.name) keyboard.add(callback_button) callback_button = types.InlineKeyboardButton(text='Qabul qilindi', callback_data='accept_player') keyboard.add(callback_button) return ('Qobiliyatlar tanlandi', keyboard)
def skills_menu(chat_id): skills = special_abilities.usual_abilities data = datahandler.get_current(chat_id)[2] if data is not None: data = data.split(',') keyboard = types.InlineKeyboardMarkup() for skill in skills: matched_skills = 0 if skill.name in data: matched_skills += 1 callback_button = types.InlineKeyboardButton( text=skill.name + u'\U00002714', callback_data='delete_skill' + skill.name) keyboard.add(callback_button) else: callback_button = types.InlineKeyboardButton( text=skill.name, callback_data='add_skill' + skill.name) keyboard.add(callback_button) else: keyboard = types.InlineKeyboardMarkup() for skill in skills: callback_button = types.InlineKeyboardButton( text=skill.name, callback_data='add_skill' + skill.name) keyboard.add(callback_button) callback_button = types.InlineKeyboardButton( text='Принято', callback_data='accept_player') keyboard.add(callback_button) return ('Выберите навыки', keyboard)
def items_menu(chat_id): items = Item_list.itemlist data = datahandler.get_current(chat_id)[1] if data is not None: data = data.split(',') keyboard = types.InlineKeyboardMarkup() for item in items: matched_items = 0 if item.id in data: matched_items += 1 callback_button = types.InlineKeyboardButton( text=(item.name + u'\U00002714'), callback_data='delete_item' + item.id) keyboard.add(callback_button) else: callback_button = types.InlineKeyboardButton( text=item.name, callback_data='add_item' + item.id) keyboard.add(callback_button) else: keyboard = types.InlineKeyboardMarkup() for item in items: callback_button = types.InlineKeyboardButton( text=item.name, callback_data='add_item' + item.id) keyboard.add(callback_button) callback_button = types.InlineKeyboardButton( text='Принято', callback_data='accept_player') keyboard.add(callback_button) return ('Выберите предметы', keyboard)
def player_menu(name, cid): data = list(datahandler.get_current(cid)) itemnames = [] skills = [] private_string = None if datahandler.get_private_string(cid) == '1': print(str(datahandler.get_private_string(cid))) private_string = '|yes' if data[0] is None: data[0] = ' ' if data[1] is None: data[1] = ' ' elif data[1] == '': data[1] = ' ' else: items = data[1].split(',') for item in items: if item == '': items.remove(item) for item in items: itemnames.append(Item_list.items[item].name) if data[2] is None: data[2] = ' ' elif data[2] == '': data[2] = ' ' else: skills = data[2].split(',') message = name + '\n Qurollar: ' + data[0] + '\n Jihozlar: ' + ', '.join( itemnames) + '\n Qobiliyatlar: ' + ', '.join(skills) keyboard = types.InlineKeyboardMarkup() callback_button1 = types.InlineKeyboardButton( text="Qurolni o`zgartirish", callback_data='change_weapon') callback_button2 = types.InlineKeyboardButton( text="Jihozlarni o`zgartirish", callback_data='change_items') callback_button3 = types.InlineKeyboardButton( text="Qobiliyatlarni o`zgartirish", callback_data='change_skills') if private_string is not None: callback_button4 = types.InlineKeyboardButton( text="Shaxsiy ma`lumotlar" + private_string, callback_data='change_string') else: callback_button4 = types.InlineKeyboardButton( text="Shaxsiy ma`lumotlar", callback_data='change_string') keyboard.add(callback_button1, callback_button2) keyboard.add(callback_button3) keyboard.add(callback_button4) return (message, keyboard)
def player_menu(name, cid): data = list(datahandler.get_current(cid)) itemnames = [] skills = [] private_string = None if datahandler.get_private_string(cid) == '1': print(str(datahandler.get_private_string(cid))) private_string = '|yes' if data[0] is None: data[0] = ' ' if data[1] is None: data[1] = ' ' elif data[1] == '': data[1] = ' ' else: items = data[1].split(',') for item in items: if item == '': items.remove(item) for item in items: itemnames.append(Item_list.items[item].name) if data[2] is None: data[2] = ' ' elif data[2] == '': data[2] = ' ' else: skills = data[2].split(',') message = name + '\n Оружие: ' + data[0] + '\n Предметы: ' + ', '.join( itemnames) + '\n Навыки: ' + ', '.join(skills) keyboard = types.InlineKeyboardMarkup() callback_button1 = types.InlineKeyboardButton( text="Изменить оружие", callback_data='change_weapon') callback_button2 = types.InlineKeyboardButton(text="Изменить предметы", callback_data='change_items') callback_button3 = types.InlineKeyboardButton( text="Изменить навыки", callback_data='change_skills') if private_string is not None: callback_button4 = types.InlineKeyboardButton( text="Отчеты в личку" + private_string, callback_data='change_string') else: callback_button4 = types.InlineKeyboardButton( text="Отчеты в личку", callback_data='change_string') keyboard.add(callback_button1, callback_button2) keyboard.add(callback_button3) keyboard.add(callback_button4) return (message, keyboard)
def player_menu(name, cid): data = list(datahandler.get_current(cid)) itemnames = [] skills = [] private_string = None if datahandler.get_private_string(cid) == '1': print(str(datahandler.get_private_string(cid))) private_string = '|yes' if data[0] is None: data[0] = ' ' if data[1] is None: data[1] = ' ' elif data[1] == '': data[1] = ' ' else: items = data[1].split(',') for item in items: if item == '': items.remove(item) for item in items: itemnames.append(Item_list.items[item].name) if data[2] is None: data[2] = ' ' elif data[2] == '': data[2] = ' ' else: skills = data[2].split(',') message = name + '\n Оружие: ' + data[0] + '\n Предметы: ' + ', '.join(itemnames) + '\n Навыки: ' + ', '.join(skills) keyboard = types.InlineKeyboardMarkup() callback_button1 = types.InlineKeyboardButton( text="Изменить оружие", callback_data='change_weapon') callback_button2 = types.InlineKeyboardButton( text="Изменить предметы", callback_data='change_items') callback_button3 = types.InlineKeyboardButton( text="Изменить навыки", callback_data='change_skills') if private_string is not None: callback_button4 = types.InlineKeyboardButton( text="Отчеты в личку" + private_string, callback_data='change_string') else: callback_button4 = types.InlineKeyboardButton( text="Отчеты в личку", callback_data='change_string') keyboard.add(callback_button1, callback_button2) keyboard.add(callback_button3) keyboard.add(callback_button4) return (message, keyboard)
def prepare_custom_fight(game): # Организация словаря game.player_dict = {p.chat_id: p for p in game.players} game.gamestate = 'weapon' bot.send_message(game.cid, 'Diqqat jang boshlanmoqda!!!') # Список активных игроков и раздача итемов for p in game.players: game.fight.activeplayers.append(p) p.team.actors.append(p) data = datahandler.get_current(p.chat_id) weapon_name = data[0] for weapon in Weapon_list.fullweaponlist: if weapon.name == weapon_name: p.weapon = weapon break item_ids = data[1].split(',') print(', '.join(item_ids)) for item_id in item_ids: p.itemlist.append(Item_list.items[item_id]) skill_names = data[2].split(',') for skill_name in skill_names: for skill in special_abilities.abilities: if skill.name == skill_name: p.abilities.append(skill) break # Подключение ai-противников if game.gametype == 'rhino': boss = ai.Rhino('Karkidon ' + '|' + u'\U0001F98F', game, game.team2, len(game.team1.players)) game.team2.actors.append(boss) game.fight.aiplayers.append(game.team2.actors[-1]) game.aiplayers.append(game.team2.actors[-1]) game.player_dict[game.fight.aiplayers[-1].chat_id] = game.fight.aiplayers[-1] game.abilitycounter = len(game.players) game.fight.Withbots = True elif game.gametype == 'master': boss = ai.Master('Master ' + '|' + '☯️', game, game.team2, len(game.team1.players)) game.team2.actors.append(boss) game.fight.aiplayers.append(game.team2.actors[-1]) game.aiplayers.append(game.team2.actors[-1]) game.player_dict[game.fight.aiplayers[-1].chat_id] = game.fight.aiplayers[-1] game.abilitycounter = len(game.players) game.fight.Withbots = True elif game.gametype == 'wolfs': boss = ai.DogLeader('Karkidon ' + '|' + u'\U0001F43A', game, game.team2, len(game.team1.players)) game.team2.actors.append(boss) game.fight.aiplayers.append(game.team2.actors[-1]) game.aiplayers.append(game.team2.actors[-1]) game.player_dict[game.fight.aiplayers[-1].chat_id] = game.fight.aiplayers[-1] for x in range(0, len(game.team1.players)): game.team2.actors.append(ai.Dog('Kuchuk ' + str(x + 1) + '|' + u'\U0001F436', game, game.team2)) game.fight.aiplayers.append(game.team2.actors[-1]) game.aiplayers.append(game.team2.actors[-1]) game.player_dict[game.fight.aiplayers[-1].chat_id] = game.fight.aiplayers[-1] game.fight.Withbots = True game.gamestate = 'fight' # Последняя подготовка for p in game.players: if datahandler.get_private_string(p.chat_id) == '1': p.private_string = True if p.weapon is None: p.weapon = Weapon_list.fists p.fight.string.add('Qurol ' + p.name + ' - ' + p.weapon.name) for a in p.abilities: a.aquare(a, p) a.aquareonce(a, p) if p.weapon.Melee: p.Inmelee = False p.weapon.aquare(p) for p in game.fight.aiplayers: for a in p.abilities: a.aquare(a, p) a.aquareonce(a, p) if p.weapon.Melee: p.Inmelee = False p.weapon.aquare(p) print('1-Guruh - ' + ', '.join([p.name for p in game.team1.players])) print('2-Guruh - ' + ', '.join([p.name for p in game.team2.players])) game.fight.string.post(bot, 'Qurol tanlovi') try: game.startfight() except: bot.send_message(game.cid, 'Qandaydir xatolik. O`yin qayta boshlanadi.') delete_game(game)
def add_player(message): game = utils.get_game_from_chat(message.chat.id) if message.from_user.id in Main_classes.dict_players: pass elif game is not None: try: no = 0 for ids in message.from_user.first_name: if ids.lower() not in symbols: no = 1 if no == 0: name = message.from_user.first_name.split(' ')[0][:12] else: name = message.from_user.username bot.send_message(message.from_user.id, 'Вы присоединились к игре.', parse_mode='markdown') if game.gametype == game.gametypes[0] and message.from_user.id not in game.marked_id \ and message.chat.id == game.cid and game.gamestate == game.gamestates[0]: player = Main_classes.Player(message.from_user.id, name, Weapon_list.fists, game, message.from_user.username) game.pending_players.append(player) game.marked_id.append(player.chat_id) Main_classes.dict_players[player.chat_id] = game game.gamers = game.gamers + 1 bot.send_message( game.cid, name + ' успешно присоединился. Всего игроков: ' + str(game.gamers)) if not game.pending_team1: game.pending_team1.append(player) datahandler.get_player(message.from_user.id, message.from_user.username, name) elif not game.pending_team2: game.pending_team2.append(player) datahandler.get_player(message.from_user.id, message.from_user.username, name) elif len(game.pending_players) >= 3: keyboard = types.InlineKeyboardMarkup() callback_button1 = types.InlineKeyboardButton( text=str(len(game.pending_team1)) + ' - ' + game.pending_team1[0].name, callback_data='team1') callback_button2 = types.InlineKeyboardButton( text=str(len(game.pending_team2)) + ' - ' + game.pending_team2[0].name, callback_data='team2') keyboard.add(callback_button1, callback_button2) bot.send_message(message.from_user.id, name + ' Выберите, кому вы поможете в этом ' 'бою.', reply_markup=keyboard) datahandler.get_player(message.from_user.id, message.from_user.username, name) elif game.gametype == game.gametypes[3] and message.from_user.id not in game.marked_id \ and message.chat.id == game.cid and game.gamestate == game.gamestates[0]: datahandler.get_player(message.from_user.id, message.from_user.username, name) data = datahandler.get_current(message.from_user.id) bot.send_message( game.cid, name + ' успешно присоединился к кастомной игре.') if data[0] is not None and data[1] is not None and data[ 2] is not None: player = Main_classes.Player(message.from_user.id, name.split(' ')[0][:12], Weapon_list.fists, game, message.from_user.username) game.pending_players.append(player) game.marked_id.append(player.chat_id) Main_classes.dict_players[player.chat_id] = game if not game.pending_team1: game.pending_team1.append(player) datahandler.get_player(message.from_user.id, message.from_user.username, name) elif not game.pending_team2: game.pending_team2.append(player) datahandler.get_player(message.from_user.id, message.from_user.username, name) elif len(game.pending_players) >= 3: keyboard = types.InlineKeyboardMarkup() callback_button1 = types.InlineKeyboardButton( text=str(len(game.pending_team1)) + ' - ' + game.pending_team1[0].name, callback_data='team1') callback_button2 = types.InlineKeyboardButton( text=str(len(game.pending_team2)) + ' - ' + game.pending_team2[0].name, callback_data='team2') keyboard.add(callback_button1, callback_button2) bot.send_message(message.from_user.id, message.from_user.first_name + ' Выберите, кому вы поможете в этом ' 'бою.', reply_markup=keyboard) else: bot.send_message(message.chat.id, 'Заполните лист /player') elif message.from_user.id not in game.marked_id and message.chat.id == game.cid and \ game.gamestate == game.gamestates[0]: if game.gametype == game.gametypes[1] and len( game.pending_players) > 2: pass else: game.gamers = game.gamers + 1 bot.send_message( game.cid, name + ' успешно присоединился. Всего игроков: ' + str(game.gamers)) datahandler.get_player(message.from_user.id, message.from_user.username, name) player = Main_classes.Player(message.from_user.id, name.split(' ')[0][:12], None, game, message.from_user.username) game.pending_players.append(player) game.pending_team1.append(player) Main_classes.dict_players[player.chat_id] = game game.marked_id.append(player.chat_id) elif game.gamestate != game.gamestates[0]: bot.send_message(message.chat.id, 'Нет запущенной игры или игра уже началась.') except: bot.send_message( message.chat.id, 'Что-то пошло не так. Возможно, стоит начать разговор с ботом @' + config.username) time.sleep(3)
def add_player(message): game = utils.get_game_from_chat(message.chat.id) if message.from_user.id in Main_classes.dict_players: pass elif game is not None: try: bot.send_message(message.from_user.id, "Siz o'yinga omadli qo'shildingiz.", parse_mode='markdown') if game.gametype == game.gametypes[0] and message.from_user.id not in game.marked_id \ and message.chat.id == game.cid and game.gamestate == game.gamestates[0]: player = Main_classes.Player( message.from_user.id, message.from_user.first_name.split(' ')[0][:12], Weapon_list.fists, game, message.from_user.username) game.pending_players.append(player) game.marked_id.append(player.chat_id) Main_classes.dict_players[player.chat_id] = game bot.send_message( game.cid, message.from_user.first_name + ' o`yinga qo`shildi.') if not game.pending_team1: game.pending_team1.append(player) datahandler.get_player(message.from_user.id, message.from_user.username, message.from_user.first_name) elif not game.pending_team2: game.pending_team2.append(player) datahandler.get_player(message.from_user.id, message.from_user.username, message.from_user.first_name) elif len(game.pending_players) >= 3: keyboard = types.InlineKeyboardMarkup() callback_button1 = types.InlineKeyboardButton( text=str(len(game.pending_team1)) + ' - ' + game.pending_team1[0].name, callback_data='team1') callback_button2 = types.InlineKeyboardButton( text=str(len(game.pending_team2)) + ' - ' + game.pending_team2[0].name, callback_data='team2') keyboard.add(callback_button1, callback_button2) bot.send_message(message.from_user.id, message.from_user.first_name + ' Kimga yordam berishingizni ' 'tanlang.', reply_markup=keyboard) datahandler.get_player(message.from_user.id, message.from_user.username, message.from_user.first_name) elif game.gametype == game.gametypes[3] and message.from_user.id not in game.marked_id \ and message.chat.id == game.cid and game.gamestate == game.gamestates[0]: datahandler.get_player(message.from_user.id, message.from_user.username, message.from_user.first_name) data = datahandler.get_current(message.from_user.id) bot.send_message( game.cid, message.from_user.first_name + ' sozlangan janga omadli qo`shildi.') if data[0] is not None and data[1] is not None and data[ 2] is not None: player = Main_classes.Player( message.from_user.id, message.from_user.first_name.split(' ')[0][:12], Weapon_list.fists, game, message.from_user.username) game.pending_players.append(player) game.marked_id.append(player.chat_id) Main_classes.dict_players[player.chat_id] = game if not game.pending_team1: game.pending_team1.append(player) datahandler.get_player(message.from_user.id, message.from_user.username, message.from_user.first_name) elif not game.pending_team2: game.pending_team2.append(player) datahandler.get_player(message.from_user.id, message.from_user.username, message.from_user.first_name) elif len(game.pending_players) >= 3: keyboard = types.InlineKeyboardMarkup() callback_button1 = types.InlineKeyboardButton( text=str(len(game.pending_team1)) + ' - ' + game.pending_team1[0].name, callback_data='team1') callback_button2 = types.InlineKeyboardButton( text=str(len(game.pending_team2)) + ' - ' + game.pending_team2[0].name, callback_data='team2') keyboard.add(callback_button1, callback_button2) bot.send_message(message.from_user.id, message.from_user.first_name + ' Kimga jangda yordam berishingizni ' 'tanlang.', reply_markup=keyboard) else: bot.send_message(message.chat.id, '/player jadvalini to`ldiring') elif message.from_user.id not in game.marked_id and message.chat.id == game.cid and \ game.gamestate == game.gamestates[0]: if game.gametype == game.gametypes[1] and len( game.pending_players) > 2: pass else: bot.send_message( game.cid, message.from_user.first_name + ' o`yinga qo`shildi.') datahandler.get_player(message.from_user.id, message.from_user.username, message.from_user.first_name) player = Main_classes.Player( message.from_user.id, message.from_user.first_name.split(' ')[0][:12], None, game, message.from_user.username) game.pending_players.append(player) game.pending_team1.append(player) Main_classes.dict_players[player.chat_id] = game game.marked_id.append(player.chat_id) elif game.gamestate != game.gamestates[0]: bot.send_message( message.chat.id, 'O`yin boshlanmagan yoki allaqachon bo`layabdi.') except: bot.send_message( message.chat.id, 'O`yinga qo`shilish uchun @HuntUzBot bilan bog`laning.') time.sleep(3)
def prepare_custom_fight(game): # Организация словаря game.player_dict = {p.chat_id: p for p in game.players} game.gamestate = 'weapon' bot.send_message(game.cid, 'Бой начинается!') # Список активных игроков и раздача итемов for p in game.players: game.fight.activeplayers.append(p) p.team.actors.append(p) data = datahandler.get_current(p.chat_id) weapon_name = data[0] for weapon in Weapon_list.fullweaponlist: if weapon.name == weapon_name: p.weapon = weapon break item_ids = data[1].split(',') print(', '.join(item_ids)) for item_id in item_ids: p.itemlist.append(Item_list.items[item_id]) skill_names = data[2].split(',') for skill_name in skill_names: for skill in special_abilities.abilities: if skill.name == skill_name: p.abilities.append(skill) break # Подключение ai-противников if game.gametype == 'rhino': boss = ai.Rhino('Носорог ' + '|' + u'\U0001F98F', game, game.team2, len(game.team1.players)) game.team2.actors.append(boss) game.fight.aiplayers.append(game.team2.actors[-1]) game.aiplayers.append(game.team2.actors[-1]) game.player_dict[ game.fight.aiplayers[-1].chat_id] = game.fight.aiplayers[-1] game.abilitycounter = len(game.players) game.fight.Withbots = True elif game.gametype == 'wolfs': boss = ai.DogLeader('Вожак ' + '|' + u'\U0001F43A', game, game.team2, len(game.team1.players)) game.team2.actors.append(boss) game.fight.aiplayers.append(game.team2.actors[-1]) game.aiplayers.append(game.team2.actors[-1]) game.player_dict[ game.fight.aiplayers[-1].chat_id] = game.fight.aiplayers[-1] for x in range(0, len(game.team1.players)): game.team2.actors.append( ai.Dog('Собака ' + str(x + 1) + '|' + u'\U0001F436', game, game.team2)) game.fight.aiplayers.append(game.team2.actors[-1]) game.aiplayers.append(game.team2.actors[-1]) game.player_dict[ game.fight.aiplayers[-1].chat_id] = game.fight.aiplayers[-1] game.fight.Withbots = True game.gamestate = 'fight' # Последняя подготовка for p in game.players: if datahandler.get_private_string(p.chat_id) == '1': p.private_string = True if p.weapon is None: p.weapon = Weapon_list.fists p.fight.string.add('Оружие ' + p.name + ' - ' + p.weapon.name) for a in p.abilities: a.aquare(a, p) a.aquareonce(a, p) if p.weapon.Melee: p.Inmelee = False p.weapon.aquare(p) for p in game.fight.aiplayers: for a in p.abilities: a.aquare(a, p) a.aquareonce(a, p) if p.weapon.Melee: p.Inmelee = False p.weapon.aquare(p) print('Команда 1 - ' + ', '.join([p.name for p in game.team1.players])) print('Команда 2 - ' + ', '.join([p.name for p in game.team2.players])) game.fight.string.post(bot, 'Выбор оружия') try: game.startfight() except: bot.send_message(game.cid, 'Какая-то ошибка. Игра будет сброшена.') delete_game(game)
def add_player(message): game = utils.get_game_from_chat(message.chat.id) if message.from_user.id in Main_classes.dict_players: pass elif game is not None: try: bot.send_message(message.from_user.id, 'Вы присоединились к игре.', parse_mode='markdown') if game.gametype == game.gametypes[0] and message.from_user.id not in game.marked_id \ and message.chat.id == game.cid and game.gamestate == game.gamestates[0]: player = Main_classes.Player(message.from_user.id, message.from_user.first_name.split(' ')[0][:12], Weapon_list.fists, game, message.from_user.username) game.pending_players.append(player) game.marked_id.append(player.chat_id) Main_classes.dict_players[player.chat_id] = game bot.send_message(game.cid, message.from_user.first_name + ' успешно присоединился.') if not game.pending_team1: game.pending_team1.append(player) datahandler.get_player(message.from_user.id, message.from_user.username, message.from_user.first_name) elif not game.pending_team2: game.pending_team2.append(player) datahandler.get_player(message.from_user.id, message.from_user.username, message.from_user.first_name) elif len(game.pending_players) >= 3: keyboard = types.InlineKeyboardMarkup() callback_button1 = types.InlineKeyboardButton( text=str(len(game.pending_team1)) + ' - ' + game.pending_team1[0].name, callback_data='team1') callback_button2 = types.InlineKeyboardButton( text=str(len(game.pending_team2)) + ' - ' + game.pending_team2[0].name, callback_data='team2') keyboard.add(callback_button1, callback_button2) bot.send_message(message.from_user.id, message.from_user.first_name + ' Выберите, кому вы поможете в этом ' 'бою.', reply_markup=keyboard) datahandler.get_player(message.from_user.id, message.from_user.username, message.from_user.first_name) elif game.gametype == game.gametypes[3] and message.from_user.id not in game.marked_id \ and message.chat.id == game.cid and game.gamestate == game.gamestates[0]: datahandler.get_player(message.from_user.id, message.from_user.username, message.from_user.first_name) data = datahandler.get_current(message.from_user.id) bot.send_message(game.cid, message.from_user.first_name + ' успешно присоединился к кастомной игре.') if data[0] is not None and data[1] is not None and data[2] is not None: player = Main_classes.Player(message.from_user.id, message.from_user.first_name.split(' ')[0][:12], Weapon_list.fists, game, message.from_user.username) game.pending_players.append(player) game.marked_id.append(player.chat_id) Main_classes.dict_players[player.chat_id] = game if not game.pending_team1: game.pending_team1.append(player) datahandler.get_player(message.from_user.id, message.from_user.username, message.from_user.first_name) elif not game.pending_team2: game.pending_team2.append(player) datahandler.get_player(message.from_user.id, message.from_user.username, message.from_user.first_name) elif len(game.pending_players) >= 3: keyboard = types.InlineKeyboardMarkup() callback_button1 = types.InlineKeyboardButton( text=str(len(game.pending_team1)) + ' - ' + game.pending_team1[0].name, callback_data='team1') callback_button2 = types.InlineKeyboardButton( text=str(len(game.pending_team2)) + ' - ' + game.pending_team2[0].name, callback_data='team2') keyboard.add(callback_button1, callback_button2) bot.send_message(message.from_user.id, message.from_user.first_name + ' Выберите, кому вы поможете в этом ' 'бою.', reply_markup=keyboard) else: bot.send_message(message.chat.id, 'Заполните лист /player') elif message.from_user.id not in game.marked_id and message.chat.id == game.cid and \ game.gamestate == game.gamestates[0]: if game.gametype == game.gametypes[1] and len(game.pending_players) > 2: pass else: bot.send_message(game.cid, message.from_user.first_name + ' успешно присоединился.') datahandler.get_player(message.from_user.id, message.from_user.username, message.from_user.first_name) player = Main_classes.Player(message.from_user.id, message.from_user.first_name.split(' ')[0][:12], None, game, message.from_user.username) game.pending_players.append(player) game.pending_team1.append(player) Main_classes.dict_players[player.chat_id] = game game.marked_id.append(player.chat_id) elif game.gamestate != game.gamestates[0]: bot.send_message(message.chat.id, 'Нет запущенной игры или игра уже началась.') except: bot.send_message(message.chat.id, 'Что-то пошло не так. Возможно, стоит начать разговор с ботом @veganwarsbot.') time.sleep(3)