Как сделать ветки ответов бота в ВК?
Хочу сделать бота для Вк, но ввиду своего маленького опыта работы в vk_api не могу сделать ветвь диалога. Пример привожу для команды казино
```
def cas():
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW:
kf = random.randint(0,5)
vk.messages.send(
peer_id=peer_id,
message='Сколько хотите ставить?',
random_id=get_random_id(),
)
if text.lower() == text.lower():
text.lower=int(text.lower())
if kf==0:
vk.messages.send(
peer_id=peer_id,
message='Вы проиграли!',
random_id=get_random_id(),
)
elif kf==1:
vk.messages.send(
peer_id=peer_id,
message='Ваша ставка сохранилась!',
random_id=get_random_id(),
)
elif kf==2:
vk.messages.send(
peer_id=peer_id,
message='Вы выиграли! Коэффицент: 2х. Баланс: '+text.lower()*2,
random_id=get_random_id(),
)
elif kf==3:
vk.messages.send(
peer_id=peer_id,
message='Вы выиграли! Коэффицент: 3х. Баланс: '+text.lower()*3,
random_id=get_random_id(),
)
elif kf==4:
vk.messages.send(
peer_id=peer_id,
message='Вы выиграли! Коэффицент: 4х. Баланс: '+text.lower()*4,
random_id=get_random_id(),
)
elif kf==5:
vk.messages.send(
peer_id=peer_id,
message='Вы выиграли! Коэффицент: 2х. Баланс: '+text.lower()*5,
random_id=get_random_id(),
)
```
Ответы (1 шт):
Автор решения: Komedik
→ Ссылка
В таком случае, Вам каждый раз придётся смотреть события через for event in longpoll.listen(), когда нужно получить ответ, иначе код выполнится без участия пользователя.
Также, убедитесь, что код будет работать для всех пользователей индивидуально и одновременно (Не нужно будет ожидать, пока ответит др. пользователь)
Код:
def is_digit(str): #Проверка: Можно ли str перевести в int
if str is int():
print("A str must be specified. Given an int.")
elif str not is int():
if string.isdigit():
return True
else:
try:
float(string)
return True
except ValueError:
return False
def cas():
id = event.user_id
vk.messages.send(
peer_id=peer_id,
message='Сколько хотите ставить?',
random_id=get_random_id(),
)
a = True
while a == True:
try:
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW:
if event.to_me:
new_id = event.user_id
if new_id == id:
msg = event.text.lower()
if is_digit(msg) == False:
vk.messages.send(
peer_id=peer_id,
message='Указана неверная сумма ставки.',
random_id=get_random_id()
)
if is_digit(msg) == True:
kf = random.randint(0, 5)
if kf==0:
vk.messages.send(
peer_id=peer_id,
message='Вы проиграли!',
random_id=get_random_id(),
)
elif kf==1:
vk.messages.send(
peer_id=peer_id,
message='Ваша ставка сохранилась!',
random_id=get_random_id(),
)
elif kf==2:
vk.messages.send(
peer_id=peer_id,
message='Вы выиграли! Коэффицент: 2х. Баланс: '+str(int(msg.lower())*2),
random_id=get_random_id(),
)
elif kf==3:
vk.messages.send(
peer_id=peer_id,
message='Вы выиграли! Коэффицент: 3х. Баланс: '+str(int(msg.lower())*3),
random_id=get_random_id(),
)
elif kf==4:
vk.messages.send(
peer_id=peer_id,
message='Вы выиграли! Коэффицент: 4х. Баланс: '+str(int(msg.lower())*4),
random_id=get_random_id(),
)
elif kf==5:
vk.messages.send(
peer_id=peer_id,
message='Вы выиграли! Коэффицент: 2х. Баланс: '+str(int(msg.lower())*5),
random_id=get_random_id(),
)
elif is_digit(msg) == False:
vk.messages.send(
peer_id=peer_id,
message='Указана неверная сумма ставки.',
random_id=get_radnom_id()
)
a = False
break
except Exception as error:
print(error)