Действие — Сменить исполнителя (выполнять для подписчика с ID…)
Начнем с того, как это может быть использовано. В первую очередь — это игры в которых есть механики взаимодействия между игроками.
И нужно ряд действий выполнить уже с другим подписчиком. Получить имя, зачислить баллы, упомянуть в беседе, выдать скидку и т. п.
Ниже пример работы команды которая позволяет обнимать или атаковать другого участника беседы стандартным ВК-шным упоминанием.

ВАЖНО
После изменения ID все переменные будут содержать в себе уже идентификатор нового подписчика. В том числе переменные %subs_id%
и т. п. Если вам нужно помнить оригинальный %subs_id%
все время, пока выполняется команда, запишите во временную переменную.
Практика использования
Кроме самого действия вам могут понадобиться и другие полезные штуки, о которых речь пойдет ниже. Опишу как реализован пример из картинки.
- Предисловие: Все делается одной командой :-)
- Во-первых, реагирует команда на обычные сообщения, содержащие в себе команды для бота:
Обнять
илиАтаковать
. Для упрощения, уберем блок переменных и оставим только команду «Обнять». - Кроме события в команде содержится условие переменная содержит следующее регулярное выражение:
\[id\d+\|.+\]
. Это условие позволит проверить было упоминание или нет. И если нет, то вежливо сказать об этом подписчику. Устаревшее, лучше использовать условие (↓) - Добавляем условие «есть упоминание» (на скринах «есть ли подписчик»):
Числовая переменная{mention}%content%{/mention}
больше0
.
Раньше (↑) для подобного использовались регулярные выражения
(\[id\d+\|.+\]
), но в курсе «Лётная школа» Олександр рекомендует использовать именно такой вариант. Потому что он поддерживает как классическое упоминание игрока, так и ссылку на его профиль ВКонтакте. Это условие позволит проверить было упоминание или нет. И если нет, то вежливо сказать об этом подписчику.
Примеры упоминаний:
— обнять @son_of_sky
— обнять *son_of_sky
- обнять vk.com/son_of_sky

- Дальше вы можете отправить сообщение пользователь, содержащее текст упоминания, пользователю который упомянул. Например так:
Ищем {mention}%content%|text{/mention} …
либо%mention%
- И вот в этот момент «входит» действие «Выполнить для». И меняет «виновника» для последующих действий. В параметрах оно принимает ID. Поэтому в нашем случае, чтобы получить ID из упоминания используем переменную
%mention%
либо{mention}%content%{/mention}
- А дальше что хотите. Картинки, текст, переменные. Новые переменные уже будут проверять все для нового подписчика. Небольшая полезность напоследок: кликабельное имя подписчика Автопилот может подставить вместо такой записи:
@id%subs_id% (%first_name%)
.

Узнать подробнее о переменной «Упоминание» можно в этом разделе.
И бонус: кому интересно узнать про использования кнопок в беседах, об этом можно почитать в этом разделе. Но к слову, если вы запишите упоминание в кнопку, оно не сработает. Потому что бот получит сообщение в совсем другом формате. Лучше просто ID передать числом.
UPD. Также небольшое обновление в действии:

Параметр 1 позволяет устанавливать выбор смены исполнителя и имеет в себе следующие варианты:
VK ID
— дальнейшие действия будут выполнены для игрока с VK_ID, указанным в параметре 2ID Автопилота
— дальнейшие действия будут выполнены для игрока с ID Автопилота, указанным в параметре 2. Это может быть полезно для запуска команд без VK ID, пример запуска таких команд был показан в «Клубе опытных пилотов»-
ID в Telegram
— дальнейшие действия будут выполнены для игрока с Telegram ID, указанным в параметре 2. Это может быть полезно для запуска команд в Telegram -
email
— дальнейшие действия будут выполнены для игрока с почтой, указанной в параметре 2 -
телефон
— дальнейшие действия будут выполнены для игрока с номером телефона, указанным в параметре 2
Полезные переменные действия:
%mention%
— ID игрока из упоминания%orig_subs_id%
— ID профиля ВКонтакте того подписчика, для которого запустил текущее событие/команду.
После смены игрока и выполнения действий, рекомендуется менять исполнителя обратно через действие: «Сменить исполнителя» с переменной %orig_subs_id%
Если у вас остались какие-то вопросы, замечания или просто хотите поблагодарить, 💙 сделать это можно в этом посте на стене сообщества. Творческих взлетов и успешного внедрения!
Вернуться на главную страницу инструкций