1. OBCYANKA 2. *click* 3. C4acTbe_P9IgoM 4. Оскорбление Администрации. Да не просто оскорбление, а на коде HEX! 5. 6. *click* P.S. Для проверки - можно перепроверить. Дешифратор, который я использовал - *click* Прости, Данёк. Я просто к экзамену готовился, а тут такая интересная штука - минут 15 разгадывал. Сначала вручную, но с кириллицей были проблемы, потом нашёл этот чудо-дешифратор
Привет. Так как делать было нечего, решил сделать небольшой подарок игрокам, а именно обои для вашего телефона. Что я под этим говорю? А то, что вы можете получить обои для телефона с вашим скином! Разве не классно? Выглядеть это будет примерно так:
Как заказать обои?
1) Ваш ник на VimeWorld'e (именно по нему я буду брать скин для обоев) 2) Пожелания. (например, за какими блоками вы хотите стоять)
1 Один Дома 2 Хотел воссоздать сцену/сцены из нашего горячо любимого фильма. Каждый перед новым годом обожает посмотреть кадры этого шедевра. А что если сделать это в майнкрафт? Посмотрим.. 3 4arodey_ и master3d (спасибо ему большое) 4 https://imgur.com/a/H1wRwgY 5 /warp homealone
Краткая информация:
PHP - скриптовый язык программирования. Используется, в большей степени, для создания веб-приложений, и является самым популярным языком для разработки динамических веб-сайтов и генерации HTML.
Подготовка:
Для начала нам нужно создать файл с нашим ботом. Давайте назовем его "bot.php"?, а затем откроем с помощью любого текстового редактора (Например: Sublime Text 3, Atom, Nodepad++) и вставим теги начала и конца:
Начинаем кодить:
Для удобства, предложу сразу же задефайнить наш токен доступа и строку (строку можно получить в настройках CallBack API)
define('confirmation_token', 'c6d0c6e4');
define('token', '086b5839bbd99ee025cf1ffee4436cicfab8addc98937cw6028190555b929871bb03b86098a59939212d8');
Теперь, можем начать писать и сам обработчик событий!
Для получения обновлений, можно создать переменную data и просвоить ей значение: "json_decode(file_get_contents('php://input') , true)". После этого весь ваш код должен выглядеть так:
<?php
//Строка для подтверждения адреса сервера из настроек Callback API
define('confirmation_token', 'c6d0c6e4');
//Токен доступа к сообществу
define('token', '086b5839bbd99ee025cf1ffee4436cicfab8addc98937cw6028190555b929871aa03b86398a59939212d8');
//При отправке запроса на наш файл, пришедшие в него данные будут переведены в массив для дальнейшей работы
$data = json_decode(file_get_contents('php://input') , true);
?>
Мы можем начинать обрабатывать события, которые нам отсылает ВКонтакте. Для этого давайте создадим switch, перебирающий значение у массива, находящегося в переменной $data.
switch ($data['type']){
case 'confirmation':
break;
case 'message_new':
break;
}
Теперь можно написать действия для наших кейсов. В "confirmation" добавьте строку:
echo confirmation_token;
А в "message_new" просто скопируйте этот код:
//айди чата, где был вызван бот
$peer_id = $data['object']['peer_id'] ? : $data['object']['user_id'];
//текст сообщения, разбитый на пробелы
$text = explode(" ", $data['object']['text']);
//1 часть текста, переведенная в формат, где все буквы - маленькие
$text[0] = mb_strtolower($text[0]);
switch ($text[0]){
case '/help': case '/хелп': case '/команды':
send_message($peer_id, "Доступные команды:\n\n/stats <ник> - просмотр статистики игроков");
break;
}
echo ('ok');
header("HTTP/1.1 200 OK");
Он содержит несколько переменных для работы с сообщениями. А также простой обработчик сообщений.
И также чтоб не сильно углубляться в строение ВК-API, вставьте эти функции в конец бота (перед ?>)
function send_message($peer_id = null, $message = null, $forward_messages = null, $attach = null, $random_id = null)
{
api('messages.send', array(
'peer_id' => $peer_id,
'message' => $message,
'forward_messages' => $forward_messages,
'keyboard' => $keyboard,
'attachment' => $attach,
'random_id' => '0'
));
}
function api($method, $params)
{
$params['access_token'] = token;
$params['v'] = '5.102';
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.vk.com/method/' . $method,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params,
CURLOPT_CUSTOMREQUEST => "POST"
]);
$json = curl_exec($curl);
curl_close($curl);
$response = json_decode($json, true);
return $response['response'];
}
Теперь ваш файлик должен выглядеть примерно так:
<?php
define('confirmation_token', 'c6d0c6e4');
define('token', '086b5839bbd99ee025cf1ffee4436cicfab8addc98937cw6028190555b929871aa03b86398a59939212d8');
$data = json_decode(file_get_contents('php://input') , true);
switch ($data['type']){
case 'confirmation':
echo confirmation_token;
break;
case 'message_new':
$peer_id = $data['object']['peer_id'] ? : $data['object']['user_id'];
$text = explode(" ", $data['object']['text']);
$text[0] = mb_strtolower($text[0]);
switch ($text[0]){
case '/help': case '/хелп': case '/команды':
send_message($peer_id, "Доступные команды:\n\n/stats <ник> - просмотр статистики игроков");
break;
}
echo ('ok');
header("HTTP/1.1 200 OK");
break;
default:
echo ('Unsupported event');
break;
}
function send_message($peer_id = null, $message = null, $forward_messages = null, $attach = null, $random_id = null)
{
api('messages.send', array(
'peer_id' => $peer_id,
'message' => $message,
'forward_messages' => $forward_messages,
'keyboard' => $keyboard,
'attachment' => $attach,
'random_id' => '0'
));
}
function api($method, $params)
{
$params['access_token'] = token;
$params['v'] = '5.102';
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.vk.com/method/' . $method,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => $params,
CURLOPT_CUSTOMREQUEST => "POST"
]);
$json = curl_exec($curl);
curl_close($curl);
$response = json_decode($json, true);
return $response['response'];
}
?>
Пожалуй, давайте зальем его на хостинг и проверим работоспособность, не забывая версию CallBack API и путь до бота на вашем сайте (смотрите спойлер).
Важно! Если вы это ранее не сделали, то включите сообщения сообщества.
Если вы все сделали правильно, то написав боту "/help" вы должны получить в ответ такое сообщение:
Собственно, можем начать работать уже с самим API VimeWorld.ru
Работа с API:
Для получения информации об игроке мы будем использовать cURL.
Давайте добавим новую команду - /stats. Для этого перейдем в кейс "message_new" и вставим под "/help" этот текст:
case '/stats': case '/статс': case '/статистика':
send_message($peer_id, "Тест");
break;
И теперь, перед вызовом функции send_message добавим подключение к апи вайма:
$ch = curl_init("https://api.vimeworld.ru/user/name/{$text[1]}");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 4);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Access-Token: MY_TOKEN'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Вместо "MY_TOKEN" вставьте свой токен разработчика (или удалите эту строчку, иначе будет ошибка).
Далее, можно сделать обработчик ответа:
//если айди не равен нулю
if($response[0]['id']){
//создаем переменную с информацией о игроке
$player = "Профиль игрока: {$response[0]['username']}\nРанг: {$response[0]['rank']}";
}
//иначе
else{
//создаем переменную с ошибкой
$player = "Данного игрока не существует!";
}
И не забываем изменить строчку с send_message на эту:
send_message($peer_id, $player);
Теперь давайте снова зальем этот скрипт и напишем боту "/stats barahag"
Вывод ранга и ника - круто, но как насчет добавления новой информации в /stats?
Давайте зайдем в официальную документацию к этому методу (ну, или под спойлер), и посмотрим, какую информацию предоставляет нам VimeWorld
Полезная для нас информация: гильдия, наигранное время, ранг, уровень и айди.
Для гильдии можно написать простой обработчик:
//если имя гильдии равно чему-то
if($response[0]['guild']['name']){
//делаем переменную с ним
$guild = $response[0]['guild']['name'];
}
//иначе
else{
//переменную с ошибкой
$guild = "Отсутствует";
}
И также, стоило бы преобразовать наигранное время в человеческий вид:
$days = number_format($response[0]['playedSeconds']/60/60/24,0,'.','');
$hour = number_format($response[0]['playedSeconds']/60/60%24,0,'.','');
$min = number_format($response[0]['playedSeconds']/60%60,0,'.','');
$sec = number_format($response[0]['playedSeconds']%60,0,'.','');
И в конце, давайте изменим значение переменной:
$player = "Профиль игрока: {$response[0]['username']}
Ранг: {$response[0]['rank']}
Гильдия: {$guild}
Проведено в игре: {$days} дн. {$hour} ч. {$min} мин. {$sec} сек.";
Новые команды:
Но зачем ограничиваться только статистикой? Давайте также добавим две новые команды: /staff и /streams.
В отличие от "/stats", здесь мы должны подключиться один раз к апи и работать с информацией в цикле.
1 Один Дома 2 Хотел воссоздать сцену/сцены из нашего горячо любимого фильма. Каждый перед новым годом обожает посмотреть кадры этого шедевра. А что если сделать это в майнкрафт? Посмотрим.. 3 4arodey_ и master3d (спасибо ему большое) 4 https://imgur.com/a/H1wRwgY 5 /warp homealone
Привет. Так как делать было нечего, решил сделать небольшой подарок игрокам, а именно обои для вашего телефона. Что я под этим говорю? А то, что вы можете получить обои для телефона с вашим скином! Разве не классно? Выглядеть это будет примерно так:
Как заказать обои?
1) Ваш ник на VimeWorld'e (именно по нему я буду брать скин для обоев) 2) Пожелания. (например, за какими блоками вы хотите стоять)
Привет. Так как делать было нечего, решил сделать небольшой подарок игрокам, а именно обои для вашего телефона. Что я под этим говорю? А то, что вы можете получить обои для телефона с вашим скином! Разве не классно? Выглядеть это будет примерно так:
Как заказать обои?
1) Ваш ник на VimeWorld'e (именно по нему я буду брать скин для обоев) 2) Пожелания. (например, за какими блоками вы хотите стоять)
Привет. Так как делать было нечего, решил сделать небольшой подарок игрокам, а именно обои для вашего телефона. Что я под этим говорю? А то, что вы можете получить обои для телефона с вашим скином! Разве не классно? Выглядеть это будет примерно так:
Как заказать обои?
1) Ваш ник на VimeWorld'e (именно по нему я буду брать скин для обоев) 2) Пожелания. (например, за какими блоками вы хотите стоять)
Привет. Так как делать было нечего, решил сделать небольшой подарок игрокам, а именно обои для вашего телефона. Что я под этим говорю? А то, что вы можете получить обои для телефона с вашим скином! Разве не классно? Выглядеть это будет примерно так:
Как заказать обои?
1) Ваш ник на VimeWorld'e (именно по нему я буду брать скин для обоев) 2) Пожелания. (например, за какими блоками вы хотите стоять)
Привет. Так как делать было нечего, решил сделать небольшой подарок игрокам, а именно обои для вашего телефона. Что я под этим говорю? А то, что вы можете получить обои для телефона с вашим скином! Разве не классно? Выглядеть это будет примерно так:
Как заказать обои?
1) Ваш ник на VimeWorld'e (именно по нему я буду брать скин для обоев) 2) Пожелания. (например, за какими блоками вы хотите стоять)
Привет. Бывает же такие ситуации, когда к тебе тепаются два человека одновременно, и приходится говорить другу, чтобы кинул запрос на телепортацию заново. Так вот, для таких ситуаций, когда два и больше людей за короткий промежуток времени кидают инвайт на телепорт, можно использовать команду /tpaccept <ник желаемого игрока>
А, ну ещё, если можно, то добавьте именно в этот раздел над кнопочкой «создать тему», слова, что будет хорошо, если идеи, которые относятся к модовым серверам будут отмечены каким-то тэгом или же подписью в название. Например: [Модовые].
Что это вообще такое? Как с этим работать? Для чего это нужно? Я постараюсь ответить на все эти вопросы как можно подробнее.
Документ состоит из листов:
1. Список модераторов MiniGames (Небольшая статистика общего количества модераторов начиная с 31.07.2019 по 31.12.2021. Включает в себя даты принятия/снятия, получения выговор, личные страницы ВКонтакте, причины снятия)
2. Модераторы MG 2022 (Статистика модераторов с 2022 года, а также информация о заявках)
3. Список администрации на модовых серверах (Включает в себя даты принятия/снятия/повышения, причины снятия)
4. Список CivCraft (Включает в себя даты принятия/снятия/повышения, причины снятия)
(Вся информация была взята отсюда - https://vk.com/vwpersonal)
В чем плюсы (++)?
• Быстрый поиск 💬
• Подробная информация ⚠️
• Легкость в использовании 🛠️
• Подсчет количества за вас 🔢
• Быстрое обновление списка 🔝
• Много интересной статистики 💥
Какие минусы (--)?
• Кому-то могут не понравиться Гугл таблицы 🙄
Полезная информация:
- Как быстро найти модератора?
- Как найти мне ВК модератора?
- Что означают цвет ячейки, цифра слева и цифры справа от ника?
- Где можно найти причины снятия?
Ссылка на таблицу - https://docs.google.com/spreadsheets/d/1AjBOT0k0sfvc04w_TiGRdrdumfakweSa7xZ52PWwm6c
Помощник - _eternitycute
Если будут предложения, жду вас тут - https://vk.com/taich