Chat 2 VKontakte

Chat 2 VKontakte 2.6

smoke96

Участник
Сообщения
1,134
Реакции
175
>> Можно писать в VK 1 раз в раунд!
>> Можно писать в VK 1 раз в раунд!
>> Можно писать в VK 1 раз в раунд!

у меня всё норм
В смысле мне такое тоже пишет в игровой чат , но сообщения все равно отправляются , сам проверь))
 

September

Участник
Сообщения
5,238
Реакции
2,742
UPD: Проблему решил.

Поясню кратко: Если один из ркон паролей прописан неверно, то ни на один сервер команда !all не сработает. Будьте внимательны.
 

xtance

Участник
Сообщения
513
Реакции
743
Что-то команда !all не срабатывает. Что-то с ркон не так?
Пароль введен 100% верно на сервере котором тестирую.

Ибо через !1 sm_rcon say test все норм работает. Может быть, если на другом сервере не верно введен пароль, то на всех серверах не работает команда !all?

No quote
Да, скорее всего так и есть, потому что пока что всякие такие исключения никак не обрабатываются. Будут чуть позже.
 

xtance

Участник
Сообщения
513
Реакции
743
xTance обновил(а) ресурс Chat 2 VKontakte новой записью:

Новые функции, новый код

Chat2VK обновился до версии 2.0, и вот что поменялось:
  • переработаны команды для вызова онлайна, теперь отдаёт steamid, киллы и смерти игроков (все скриншоты здесь!)
  • команды !all и !все (были и раньше, но теперь работают лучше)
  • костылизирован код (теперь больше фич для разработчиков, можно использовать функции chat2vk в своих php скриптах)
  • переписан плагин: поддержка нескольких бесед, а так...

Узнать больше об этом обновлении...
Сообщения автоматически склеены:

Вышел крупный апдейт и без багов тут никак. Просьба репортить все ошибки, которые происходят.
Если до этого у вас стоял этот плагин, рекомендую забэкапиться, удалить все файлы (запомнив свой токен) и начать сначала.
Теперь веб скрипт пишет логи в /vkontakte/logs/число.log, а если не пишет, надо сделать так:
Screenshot_64.png

Вся конфигурация веб скрипта теперь в /vkontakte/vk_config.php

Про новые функции, связанные со Steam:

Сделано в целях удобной идентификации пользователя. Выглядит это вот так:
3.png
Если заинтересовало, идём настраивать.
Вписываем в STEAM_API свой webapi ключ стима и домен сайта. В MEDOO_CFG находятся настройки базы, по умолчанию sqlite, можно попробовать прикрутить другие базы, но я не стал.
Более того, у вас уже есть база: sqlite/vk.db и содержит она где-то 28 аккаунтов.

Какие есть команды? (естественно все для вк, а не для сервера)
!vk (ссылка на steam) - получаем ссылку на вк игрока (к слову работают почти все форматы стим и ссылки тоже)
!steam (пересланное сообщение или ссылка на вк) - получаем ссылку на стим игрока по его vk id
!tie (пересланное сообщение от того, кого надо привязать + ссылка на его стим) - связывает профили [админ команда, см. VK_ADMINS]
!untie (пересланное сообщение) - удаляет пользователя из базы [админ команда, см. VK_ADMINS]

Если в базу ничего не пишет, попробуйте так же как и с логами, но с папкой sqlite..
Screenshot_64.png
Сообщения автоматически склеены:


------------------------------------------------------------------------------------

Техническая часть веб скрипта.

Теперь скрипт обрабатывает исключения и от одного лежащего сервера не будет тонны ошибок.
Так же, я попытался сделать его более понятным, добавив комменты и разделив на файлы:
  • /vkontakte/vk_config.php - конфиг
  • /vkontakte/vk_chat.php - сюда обращается вконтакте при новом сообщении к боту
  • /vkontakte/vk_class.php - класс с целым набором функций (почитайте, там в принципе понятный код... наверно)
  • /vkontakte/vk_steam.php - это заглушка, куда попадают люди, желающие привязать Steam к VK (в будущем планируется от неё избавиться, поэтому сделано наспех)
  • /vkontakte/SteamAuth.php - нужно для привязки Steam
  • /scripts/Medoo/Medoo.php - это лёгкий фреймворк для баз данных
  • /scripts/SourceQuery/* - скрипты для связи ВК и игрового сервера
По поводу класса vk_class.php, теперь проще добавлять поддержку ВК в ваши скрипты, что позволит делать например вот такие штуки:
Screenshot_65.png(я прикрутил это к своей панели для банов, но вы можете попробовать сделать это с SB/MA/ещё чем-нибудь!)

PHP:
require_once 'vkontakte/vk_class.php';
$vk = new VKontakte();
$vk->send_vk(2000000001, "Это сообщение попадёт в беседу!");

2000000001 - это первая конфа, в которую вы пригласили бота. Все ID меньше 2000000000 - это пользовательские ID, например мой 142805811, так что вы можете отправлять себе оповещения в личку.
(Чтобы бот мог писать человеку, надо чтобы человек написал ему первым, иначе будет ошибка)

Техническая часть плагина.

Я по-прежнему не сделал нативы, чтобы другие плагины могли писать в вк, но когда-нибудь сделаю.
Зато теперь команда sm_web_getplayers отдаёт JSON массив с игроками. Как он формируется, посмотрите в коде (чтобы качественно поугарать).
Выглядит массив так (k это киллы, d это смерти, а вот как это чудо работает на играх кроме КС - не уверен. наверно, не работает. позже поправлю если будут предложения)
Screenshot_66.png
Если в конфиге (VK_Commands) указана одна беседа, меню с выбором не всплывает.
 
Последнее редактирование:

w0hderful

Участник
Сообщения
131
Реакции
27
Сервер вернул неправильный ответ: HTTP response code said error

Спамит хоть делаю всё правильно... устанавливаю старую версию всё отлично.
Оффтоп
 
Последнее редактирование:

xtance

Участник
Сообщения
513
Реакции
743
Сервер вернул неправильный ответ: HTTP response code said error

Спамит хоть делаю всё правильно... устанавливаю старую версию всё отлично.
Оффтоп
Надо сюда добавить скобку ], после запятой
Чтобы пабл стал массивом. А пока что ошибка
45360
 

theeldarka

Участник
Сообщения
76
Реакции
16
Сижу, не пойму. json схема приходит и не декодится. С исходным кодом автора не работало и так, потому я и полез разбираться. Попробовал обрезать приходящий ответ, оставив только json и не декодит(
По логам все видно
45363
45364

Сообщения автоматически склеены:

Скопировал все то, что вернул сервер, чуток обрезал и попробовал декод. Намекаю на то, что по команде sm_web_getplayers сервер отдает кривой json-Массив, что хостинг не может декоднуть
45366

45365

Сообщения автоматически склеены:

А энкодит вроде бы также. Я запутался
45367
45368

Сообщения автоматически склеены:

Из-за пустого массива с игроками летят ошибки с других функций. Можно конечно отключить вывод ошибок, но тогда кол-во игроков 0, count() же не работает
45369

Сообщения автоматически склеены:

Кстати, вот еще баг. Hostname получается как-то не корректно
45370

Сообщения автоматически склеены:

И еще, сообщения склеены 28 апреля 2005 года, прям в мой день рождения
 
Последнее редактирование:

xtance

Участник
Сообщения
513
Реакции
743
Сижу, не пойму. json схема приходит и не декодится. С исходным кодом автора не работало и так, потому я и полез разбираться. Попробовал обрезать приходящий ответ, оставив только json и не декодит(
Это странно. А не может быть такого, что игроков на сервере так много, что всё не влезает в строку (в плагине char sJson[1512];) и оно обрезается где-то посередине?

Вот пример того что прилетает с моего сервера и декодится норм:
JSON:
[{"name": "!!", "steamid": 429716310, "k": 6,"d": 4 },{"name": "Hentali! Senpai", "steamid": 921910530, "k": 8, "d": 13 },{"name": "B00sted", "steamid": 897859870, "k": 4, "d": 4 },{"name": "vasabakladan","steamid": 1026314044,"k": 0, "d": 1 },{"name": "BaNdErLoG12", "steamid": 308779430, "k": 18, "d": 25 },{"name": "5.11", "steamid": 98945123, "k": 6, "d": 11 },{"name": "_Rainee_magicdrop.ru _", "steamid":859696317, "k": 0, "d": 6 }]

По поводу Hostname - не помню почему я переместил его в OnPluginStart, сейчас перезалью обнову, чтобы не качать всё целиком вот фикс
(просьба скачавшим в ночь со вчера на сегодня обновиться. извиняюсь, переделано довольно много и за всем не уследил)
 

Вложения

  • chat2vk.smx
    12.3 КБ · Просмотры: 6
  • chat2vk.sp
    10.1 КБ · Просмотры: 7

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
Не пойму, зачем заменять все [ и ]. Если explode() по L ещё понимаю (лог), то замену нет.

Мб где-то посередине ника режет. Имеет смысл делать explode() по \n, а не по L.
 

theeldarka

Участник
Сообщения
76
Реакции
16
Имеет смысл делать explode() по \n, а не по L.
Я ночью не заметил, что там новая строка. Мне проще по L было сделать
Сообщения автоматически склеены:

А не может быть такого, что игроков на сервере так много, что всё не влезает в строку (в плагине char sJson[1512];) и оно обрезается где-то посередине?
На момент тестирования было 15 игроков, возможно и не влезли
 

xtance

Участник
Сообщения
513
Реакции
743
Я ночью не заметил, что там новая строка. Мне проще по L было сделать
Сообщения автоматически склеены:


На момент тестирования было 15 игроков, возможно и не влезли
Не, 15 игроков и у меня бывает, обычно влезают. В общем вот фикс который работает у меня с log on потому что трабл именно в логах=\

PHP:
$p = $q->Rcon("sm_web_getplayers");
$pieces = explode("\nL ", $p);
$players = json_decode($pieces[0], true);
if (VK_LOGGING) $this->put('Получен массив игроков',$players);

Вставить заместо строчки $players = json_decode($q->Rcon("sm_web_getplayers"), true);
Просьба отписаться, работает ли с этим
В логах будет отображён массив (или не будет)
 
Последнее редактирование:

White Wolf

🍉
Сообщения
2,382
Реакции
2,187
Сижу, не пойму. json схема приходит и не декодится. С исходным кодом автора не работало и так, потому я и полез разбираться. Попробовал обрезать приходящий ответ, оставив только json и не декодит(
По логам все видно
Посмотреть вложение 45363Посмотреть вложение 45364
Сообщения автоматически склеены:

Скопировал все то, что вернул сервер, чуток обрезал и попробовал декод. Намекаю на то, что по команде sm_web_getplayers сервер отдает кривой json-Массив, что хостинг не может декоднуть
Посмотреть вложение 45366
Посмотреть вложение 45365
Сообщения автоматически склеены:

А энкодит вроде бы также. Я запутался
Посмотреть вложение 45367Посмотреть вложение 45368
Сообщения автоматически склеены:

Из-за пустого массива с игроками летят ошибки с других функций. Можно конечно отключить вывод ошибок, но тогда кол-во игроков 0, count() же не работает
Посмотреть вложение 45369
Сообщения автоматически склеены:

Кстати, вот еще баг. Hostname получается как-то не корректно
Посмотреть вложение 45370
Сообщения автоматически склеены:

И еще, сообщения склеены 28 апреля 2005 года, прям в мой день рождения
Оффтоп
Имеет смысл делать explode() по \n, а не по L
И предусмотреть \r\n
 

megoRU

Участник
Сообщения
383
Реакции
80
Как изменить код в chat2vk.sp чтобы убрать слово игрок и строчку сервер...
+желательно и ссылку стима убрать
Строка 206-212
45402
 

Fanyatsu

Шизофреник со стажем
Сообщения
1,030
Реакции
341
Как изменить код в chat2vk.sp чтобы убрать слово игрок и строчку сервер...
+желательно и ссылку стима убрать
Строка 206-212
Ради этого я впервые скачал сие чудоплагин...
Скачай и проверь нормально ли, если что отпиши, просто не уверен в одном)
Сразу скажу, что для отключения надписи "Сервер: ..." есть "IncludeServerName" "0" но раз тебе нужно sp отредачить так, то я вырезал
 

Вложения

  • chat2vk.smx
    12.3 КБ · Просмотры: 2
  • chat2vk.sp
    10.1 КБ · Просмотры: 4

w0hderful

Участник
Сообщения
131
Реакции
27
Бот не пишет список игроков которые присутствуют! просто цифра онлайна, Возможно как-то сделать еще вывод списка игроков?
 

Livindege

Live in page, that's why Livindege
Сообщения
95
Реакции
55
Бот не пишет список игроков которые присутствуют! просто цифра онлайна, Возможно как-то сделать еще вывод списка игроков?
Я уже написал, он решает эту проблему, там немног нехватает масива, я ему предложил идею ждем, у меня также толькт еще не показывает и онлайн кол
 
Сверху Снизу