-
Публикаций
5 061 -
Зарегистрирован
-
Посещение
Все публикации пользователя Charkos0ff
-
Человек выше крутит сообщение
-
:)
-
модератор забанил по подставе
Charkos0ff ответил в теме пользователя Bodorod_118 в Жалобы на персонал
Модератор невиновен. Пиши жалобу на того, кто подал подставу -
Выше накрутчики сообщений, и кстати, барахаг - гей
-
_Jane_Kotek_, ты че творишь то!?
-
Да-да, это конкурс на 100 вимеров Условия: Поставить репутацию Написать свой никнеймИтоги после 33 репутации Всем удачи :wub:
-
За
-
За, удачи
-
Если тебе важно будущее скайварса, сюда
Charkos0ff ответил в теме пользователя NANY в Буст и передача аккаунта
Как же скучно я живу, ни разу ботами не пользовался даже -
2722
-
Ну да, ну да, модераторы же роботы и не могут взять отпуск.
-
Слили пароль от модера снимайте бестрие
Charkos0ff ответил в теме пользователя Yura в Жалобы на персонал
*тык* -
Всё верно
-
Против. Если твою идею реализуют, то что будет мешать создавать мультиаккаунты, кидать с них коины в казну гильдии, а потом брать с основного аккаунта?
-
Всё верно. "м нету" - обычный обход для "матери нет"
-
Асоциальное поведение (Для заек, банящих за 4 мата)
Charkos0ff ответил в теме пользователя Charkos0ff в Жалобы на игроков
вверх -
ты мой краш либо я либо никто это шантаж
Charkos0ff ответил в теме пользователя _KoteMyrr_ в Жалобы на персонал
сливер!!! -
Мультики-мультики.
Charkos0ff ответил в теме пользователя 16dashka16 в Жалобы на пользователей форума
Аккаунт будет отображаться только если человек заходил на МГ, то есть, если играть только на модовых/ни разу не зайти на сервер такое может произойти. -
Слили пароль от модера снимайте бестрие
Charkos0ff ответил в теме пользователя Yura в Жалобы на персонал
Хорошо, что хоть двушка была -
Не по форме, да и все верно
-
[Гайд] Создание ботов для ВКонтакте, а также работа с API VimeWorld
Charkos0ff ответил в теме пользователя Charkos0ff в Помощь
Краткая информация: NodeJS - кроссплатформенная среда с открытым исходным кодом для разработки серверных и сетевых приложений, с помощью неё можно написать бота, сайт и даже программу. Подготовка: Прежде всего, нужно включить LongPool в вашей группе (смотрите спойлер). Теперь, давайте создадим проект/папку для нашего проекта. А потом пропишем эту команду: npm initНачинаем кодить: Для начала, давайте установим нужные нам пакеты. Библиотека для работы с ВК API: npm install node-vk-bot-apiДля работы с интернетом: npm install axiosВвести эти две команды можно в IDE, или консоле (cmd). Приступим к самому коду! Подключаем библиотеки const VkBot = require("node-vk-bot-api"); const axios = require('axios');И вставляем этот код, содержащий авторизацию в апи и простой обработчик сообщений //подключаемся к апи const bot = new VkBot("564b5073b1125c8ed10e368f092e077bfb5cf3f1aaa3fd1aec070c2d41b045a4d779a5c4d572627e495ef"); //если что-то произошло bot.on(async (ctx) => { //выводим сообщение в переменную let text = ctx.message.body; //и делим по пробелам let delim = text.split(" "); //перебираем команды switch(delim[0]){ case '/help': ctx.reply("Доступные команды:\n\n/stats < ник > - просмотр статистики игроков"); break; } }) bot.startPolling(); В итоге ваш код должен выглядеть так: const VkBot = require("node-vk-bot-api"); const axios = require('axios'); const bot = new VkBot("564b5073b1125c8ed10e368f092e077bfb5cf3f1aaa3fd1aec070c2d41b045a4d779a5c4d572627e495ef"); bot.on(async (ctx) => { let text = ctx.message.body; let delim = text.split(" "); switch(delim[0]){ case '/help': ctx.reply("Доступные команды:\n\n/stats < ник > - просмотр статистики игроков"); break; } }) bot.startPolling(); Пожалуй, теперь стоит запустить этот JavaScript файл Важно! Если вы это ранее не сделали, то включите сообщения сообщества! Если вам не выдало никаких ошибок, то тогда давайте напишем нашему боту "/help". Если вы получили такое сообщение, то можем начинать работать с самим API. Работа с API: Для получения информации об игроке мы будем использовать библиотеку axios. Давайте добавим новую команду - /stats. Для этого перейдем в обработчик команд и вставим под кейсом с "/help" этот текст: case '/stats': ctx.reply("Тестовая команда"); break; Теперь, можем наконец-то поработать с апи. Перед отправкой сообщения (ctx.reply) добавим подключение к нему var response = await axios.get( `https://api.vimeworld.ru/user/name/${username}` ); Но не стоит забывать, что человек кроме валидного игрока может попросить не существующего. Поэтому давайте добавим простое условие с проверкой на ответ сервера: if(response.data[0]){ ctx.reply(`Профиль игрока: ${response.data[0].username}\nРанг: ${response.data[0].rank}`); } else { ctx.reply(`Данного игрока не существует`); } В окончании первого этапа работы с апи можно перезапустить бота и написать ему "/stats Lucy" Теперь, как насчет добавления новой информации в нашу команду? Давайте зайдем в официальную документацию к апи (ну или под спойлер), и посмотрим, какую информацию предоставляет нам VimeWorld Для гильдии можно создать переменную такого типа: let guild = (response.data[0].guild !== null) ? `${response.data[0].guild.name}` : `Отсутствует`;И аналогично предыдущим ЯП стоило бы преобразовать наигранное время в человеческий вид: let days = Math.floor(response.data[0].playedSeconds/60/60/24); let hour = Math.floor(response.data[0].playedSeconds/60/60%24); let min = Math.floor(response.data[0].playedSeconds/60%60); let sec = Math.floor(response.data[0].playedSeconds%60);В конце изменим отправляемый текст: ctx.reply(`Профиль игрока: ${response.data[0].username}` + `\nРанг: ${response.data[0].rank}` + `\nГильдия: ${guild}` + `\nПроведено в игре: ${days} дн. ${hour} ч. ${min} мин. ${sec} сек.`); Новые команды: Но зачем ограничиваться только статистикой? Давайте также добавим две новые команды: /staff и /streams. В отличие от "/stats", здесь мы должны подключиться один раз к апи и работать с информацией в цикле. /streams case '/streams': case '/стримы': var response = await axios.get( `https://api.vimeworld.ru/online/streams` ); var streams = ""; let count = response.data.length; if(count > 1){ for (let i = 0; i != count; i++) { let time1 = Math.floor(response.data[i].duration/60/60/24); let time2 = Math.floor(response.data[i].duration/60/60%24); let time3 = Math.floor(response.data[i].duration/60%60); let time4 = Math.floor(response.data[i].duration%60); streams += `\n${response.data[i].title}\nСтример: ${response.data[i].owner} \nЗрителей: ${response.data[i].viewers}\nСсылка: ${response.data[i].url}\nСтрим идёт: ${time1} дн. ${time2} ч. ${time3} мин. ${time4} сек.\n`; } ctx.reply(`Стримы в данный момент:${streams}\nВсего стримов: ${count}`); } else{ ctx.reply(`Все стримеры спят`); } break; /staff case '/staff': case '/модеры': var response = await axios.get( `https://api.vimeworld.ru/online/staff` ); var moders = ""; let count_m = response.data.length; if(count_m > 1){ for (let i = 0; i != count_m; i++) { if(response.data[i].rank == 'MODER'){rank = '[Модер]';} if(response.data[i].rank == 'WARDEN'){rank = '[Пр.Модер]';} if(response.data[i].rank == 'CHIEF'){rank = '[Гл.Модер]';} moders += `\n${rank} ${response.data[i].username}`; } ctx.reply(`Модераторы в сети:\n${moders}\n\nВсего Модераторов: ${count_m}`); } else{ ctx.reply(`Все модераторы спят`); } break; После добавления новых команд, весь ваш код должен выглядеть так: Поздавляю! Теперь у вас есть бот способный показывать модераторов, стримы и статистику игроков! -
[Гайд] Создание ботов для ВКонтакте, а также работа с API VimeWorld
Charkos0ff ответил в теме пользователя Charkos0ff в Помощь
Краткая информация: Python - это высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Подготовка: Прежде всего, нужно включить LongPool в вашей группе (смотрите спойлер). Теперь, давайте создадим проект/папку для нашего проекта. А в ней - bot.py Начинаем кодить: Для начала, давайте установим нужные нам пакеты. Библиотека для работы с ВК API python -m pip install vk_apiДля работы с интернетом: python -m pip install requestsВвести эти две команды можно в IDE, или консоле (cmd). Приступим к самому коду! Импортируем библиотеки import requests import vk_api from vk_api.longpoll import VkLongPoll, VkEventTypeИ вставляем этот код, содержащий функцию отправки сообщения и авторизацию в Апи def send_message(user_id, message): vk.method('messages.send', {'user_id': user_id, 'message': message, 'random_id': 0}) # Ключ доступа к сообществу token = "aeb83497cbdbb6f2d2eadce6b474d2637b4c8350bdec4818acc237221513a257f7b016d3a415536664f91" vk = vk_api.VkApi(token=token) data = VkLongPoll(vk) Далее, можем написать и обработчик команд. Состоять он будет из цикла, проверки новых событий и простого обработчика команд for event in data.listen(): # Если пришло новое сообщение if event.type == VkEventType.MESSAGE_NEW: if event.to_me: text = event.text text = text.split() if text[0] == "/help": send_message(event.user_id, "Доступные команды:\n/stats < ник > - просмотр статистики игроков") В итоге ваш код должен выглядеть так: import requests import vk_api from vk_api.longpoll import VkLongPoll, VkEventType def send_message(user_id, message): vk.method('messages.send', {'user_id': user_id, 'message': message, 'random_id': 0}) token = "aeb83497cbdbb6f2d2eadce6b474d2637b4c8350bdec4818acc237221513a257f7b016d3a415536664f91" vk = vk_api.VkApi(token=token) data = VkLongPoll(vk) for event in data.listen(): if event.type == VkEventType.MESSAGE_NEW: if event.to_me: text = event.text text = text.split() if text[0] == "/help": send_message(event.user_id, "Доступные команды:\n\n/stats < ник > - просмотр статистики игроков") Пожалуй, теперь стоит запустить этот Python файл Важно! Если вы это ранее не сделали, то включите сообщения сообщества! Если вы всё сделали правильно и вам не выдало никаких ошибок, то тогда давайте напишем нашему боту "/help". Собственно если вы получили такое сообщение, то можем начинать работать с самим API. Работа с API: Для получения информации об игроке мы будем использовать библиотеку requests. Давайте добавим новую команду - /stats. Для этого перейдем в обработчик команд и вставим под ифом с "/help" этот текст: #или если текст равен /stats elif text[0] == "/stats": send_message(event.user_id, "Тестовая команда") Теперь, можем наконец-то поработать с апи. Перед send_message добавим подключение к нему response = requests.get(f'https://api.vimeworld.ru/user/name/{text[1]}').json()[0]Но не стоит забывать, про обработку ответа от сервера. Поэтому, нужно создать условие: #если айди равен чему-то if response['id']: #создаем переменную с данными игрока player = f"Профиль игрока: {response['username']}\nРанг: {response['rank']}" #иначе else: #создаем переменную с ошибкой player = f"Такого игрока не существует!" Теперь переменная player является нашим текстом для ответа, поэтому изменяем строчку с send_message на эту: send_message(event.user_id, player)И в окончании данного этапа, давайте перезапустим бота (сохранив пред этим файлик) и напишем боту "/stats barahag" Теперь, как насчет добавления новой информации в нашу команду? Давайте зайдем в официальную документацию к апи (ну или под спойлер), и посмотрим, какую информацию предоставляет нам VimeWorld Для гильдии можно написать простой обработчик: if response['guild']: guild = response['guild']['name'] else: guild = "Отсутствует" А так же как и в PHP, стоило бы преобразовать наигранное время в человеческий вид: days = str(response['playedSeconds']/60/60/24).split(".")[0] hour = str(response['playedSeconds']/60/60%24).split(".")[0] min = str(response['playedSeconds']/60%60).split(".")[0] sec = str(response['playedSeconds']%60).split(".")[0] В конце же, давайте изменим значение переменной: player = f"Профиль игрока: {response['username']}" \ f"\nРанг: {response['rank']}" \ f"\nГильдия: {guild}" \ f"\nПроведено в игре: {days} дн. {hour} ч. {min} мин. {sec} сек." Новые команды: Но зачем ограничиваться только статистикой? Давайте также добавим две новые команды: /staff и /streams. В отличие от "/stats", здесь мы должны подключиться один раз к апи и работать с информацией в цикле. /streams: elif text[0] == "/streams" or text[0] == "/стримы": response = requests.get(f'https://api.vimeworld.ru/online/streams').json() count = len(response) s = -1; if count > 1: while s != count: s += 1 time1 = str(response[s]['duration'] / 60 / 60 / 24).split(".")[0] time2 = str(response[s]['duration'] / 60 / 60 % 24).split(".")[0] time3 = str(response[s]['duration'] / 60 % 60).split(".")[0] time4 = str(response[s]['duration'] % 60).split(".")[0] streams = streams + f"{response[s]['title']}\nСтример: {response[s]['owner']} \nЗрителей: {response[s]['viewers']}\nСсылка: {response[s]['url']}\nСтрим идёт: {time1} дн. {time2} ч. {time3} мин. {time4} сек.\n" send_message(event.user_id, f"Стримы в данный момент:{streams}\nВсего стримов: {count}") else: send_message(event.user_id, f"Стримы в данный момент:\n\nВсего стримов: {count}") /staff: elif text[0] == "/staff" or text[0] == "/модеры": requests.get(f'https://api.vimeworld.ru/online/staff').json() count = len(response) moders = "" if count > 1: for i in range(0, count): if response[i]['rank'] == 'MODER': rank = '[Модер]' if response[i]['rank'] == 'WARDEN': rank = '[Пр.Модер]' if response[i]['rank'] == 'CHIEF': rank = '[Гл.Модер]' moders += f"\n{rank} {response[i]['username']}" send_message(event.user_id, f"Модераторы в сети:\n{moders}\n\nВсего Модераторов: {count}") else: send_message(event.user_id, f"На данный момент модерация в сети отсутствует") После добавления новых команд, весь ваш код должен выглядеть так: Поздавляю! Теперь у вас есть бот способный показывать модераторов, стримы и статистику игроков! -
[Гайд] Создание ботов для ВКонтакте, а также работа с API VimeWorld
Charkos0ff ответил в теме пользователя Charkos0ff в Помощь
Краткая информация: 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", здесь мы должны подключиться один раз к апи и работать с информацией в цикле. /streams: $ch = curl_init("https://api.vimeworld.ru/online/streams"); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 4); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = json_decode(curl_exec($ch), true); curl_close($ch); $count = count($response); $s = -1; while($s != $count-1){ $s +=1; $time1 = $response[$s]['duration']/60/60/24; $time2 = $response[$s]['duration']/60/60%24; $time3 = $response[$s]['duration']/60%60; $time4 = $response[$s]['duration']%60; $time1 = number_format($time1,0,'.',''); $time2 = number_format($time2,0,'.',''); $time3 = number_format($time3,0,'.',''); $time4 = number_format($time4,0,'.',''); $c +=1; $template .= "{$response[$s]['title']}\nСтример: {$response[$s]['owner']} \nЗрителей: {$response[$s]['viewers']}\nСсылка: {$response[$s]['url']}\nСтрим идёт: {$time1} дн. {$time2} ч. {$time3} мин. {$time4} сек.\n"; } send_message($peer_id, "Стримы в данный момент:\n\n{$template}Всего стримов: {$count}"); /staff: $ch = curl_init("https://api.vimeworld.ru/online/staff"); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 4); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Access-Token: DVjvMiIi5cbHXuNvRheRM6XGoYB0tcG')); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = json_decode(curl_exec($ch), true); curl_close($ch); $count = count($response); $m = -1; while($m != $count-1){ $m +=1; if($response[$m]['guild']['tag']){$guildtag = "<{$response[$m]['guild']['tag']}> ";}else{$guildtag = "";} if($response[$m]['rank'] == 'MODER'){$rank = '[Модер]';} if($response[$m]['rank'] == 'WARDEN'){$rank = '[Пр.Модер]';} if($response[$m]['rank'] == 'CHIEF'){$rank = '[Гл.Модер]';} $c +=1; $template .= "\n{$guildtag}{$rank} {$response[$m]['username']}. {$response[$m]['online']['message']}"; } send_message($peer_id, "Модераторы онлайн: \n{$template}\n\nВсего в сети: {$count}"); После добавления новых команд, весь ваш код должен выглядеть так: -
[Гайд] Создание ботов для ВКонтакте, а также работа с API VimeWorld
Charkos0ff опубликовал теме в Помощь
Общая информация API (Application Programming Interface) - составляющая часть сервера, которая получает запросы и отправляет ответы. У VimeWorld'а тоже присутствует публичный апи. С помощью него мы можем просмотреть статистику любого игрока, стримы в данный момент, последние матчи на сервере, или например модераторов в сети. Подготовка Для создания бота в ВК присутствует несколько видов апи: CallBack (для PHP) и LongPool (для остальных языков). Основная разница в том, что CallBack будет отправлять нам события. А LongPool же сам обращается к серверам. В любом случае для работы бота нам нужен ключ доступа к сообществу. Получить его можно зайдя в настройки группы, и перейдя по этому пути: Настройки->Работа с API. После этого нужно кликнуть на кнопку "Создать ключ" и выдать ему все права. В этом гайде будет присутствовать 3 языка программирования: PHP, Python и JavaScript (NodeJS). Полезные ссылки Официальная документация к API VimeWorld - https://vimeworld.github.io/api-docs/ Json Formatter (красивый JSON в браузере) - https://chrome.google.com/webstore/detail/json-formatter/bcjindcccaagfpapjjmafapmmgkkhgoa Бесплатный хостинг (для PHP) - https://beget.com/ru/free-hosting Бесплатный хостинг (для Python и NodeJS) - https://heroku.com/ Python - https://www.python.org/downloads/ NodeJS - https://nodejs.org/en/ -
Против.
