Страница 1 из 1

Проверка онлайна ГМа / сравнение /who и счетчика он-лайна

Добавлено: Пн дек 03, 2007 9:02 am
-MS-
На многих серверах есть просмотр онлайна игроков на сайте. Обычно это выглядит в виде пронумерованого списка. Послений номер соответсвует количеству игроков. Естественно ГМов там нету. Но когда в игре пишешь команду /who показываеться онлайн вместе с ГМами (проверенно).

Из хтмл вытащить поселенее число не проблема.
Есть проблема как это дело использовать в ОпенКоре.
Идея такая раз в 3 минуты скажем проверяем онлайн командой /who и сравниваем число с числом из хмтля с сайта. Если онлайн в игре выше указанной на сайте бот скажем садиться АФКать или выходит в чар селект.

Ну вобщем вот так)

Есть такие мысли, в каком направление думать.

1.
а)заставить бота написать команду /who
б)обновляем логи чатов
в)считываеи число из строки вида "character online X" (к примеру)и где Х - нужное число, записываем число в какой-либо файл.
2. написать небольшую программульку, которая вытащит из html число онлайновых персонажей и запишет это число в тот же файл.
3. сравнить эти числа, если онлайн выше заявленного то заставляем бота сесть в городе АФКать.

Есть идеи?)

Добавлено: Пн дек 03, 2007 9:51 am
piroJOKE
Бессмысленно, т.к. обычно список с сайта "опаздывает", т.к. обновляется редко - раз в минуту или что-то в этом роде. Т.е., грубо говоря сравнивать нечего - метод годится для серваков с онлайном ~10 чел, да и то...

Добавлено спустя 29 секунд:

Перенесено в вопросы. Кстати, сабж мы уже обсуждали.

Добавлено: Пн дек 03, 2007 1:29 pm
4epT
-MS-, имена ГМ-ов известны?
Проще выдирать из их общего списка и на это реагировать.

А всё остальное (кроме работы с html-кой) делается легко посте прочтения гайда по макросам.

Ну или у меня можно заказать (2227733) :twisted:

Добавлено: Пн дек 03, 2007 2:05 pm
Kissa2k
Обычно статистика не редко обновляется, а это скрипт выдирающий инфу из мускульной бд афины.
В принципе сделать такой плагин не очень-то сложно.

Добавлено спустя 1 минуту 38 секунд:

Я может бы и помог, но не могу т.к. сейчас я в больничке=)

Добавлено спустя 6 минут 22 секунды:

По поводу выдергивания из хтмл - то можно использовать специальные классы для Perl из CPAN. Но проще вручную с помощью открытия сокета и отправки http запросов (как через telnet) и потом парсить результат. По поводу who, то в ОК вроде есть метод какого-то класса (не помню какого =)) возвращающий онлайн.. нужно глянуть в документации исходного кода ОК.

Добавлено: Пн дек 03, 2007 2:47 pm
-MS-
4epT писал(а):-MS-, имена ГМ-ов известны?
Проще выдирать из их общего списка и на это реагировать.

А всё остальное (кроме работы с html-кой) делается легко посте прочтения гайда по макросам.

Ну или у меня можно заказать (2227733) :twisted:
Известны, в том то и фишка что их не видно онлайн.

С хтмл все просто как раз таки.
загружаем хтмл как файл отбрезаем концовку, там стандарный набор символов одинаковой длинны, в конце остаеться число 2,3,4х значное в зависимости от сервака. Смотрим эти 2а последних символа и все.

Седня проверял так онлайн, показывало абсолютно синхронно. На всякий случай можно раза 3 подряд проверку устроить.

Добавлено: Пн дек 03, 2007 8:37 pm
4epT
ну тогда со стороны ОК могу написать:

Код: Выделить всё

automacro who {
timeout 180
call {
do who
}
}
automacro online {
console /There are currently (\d+) users online/
call {
$html = значение с сайта
if ($.lastMatch1 = $html) goto end
do relog 1800
:end
}
}
дальше твоё "С хтмл все просто как раз таки."

Добавлено: Пн дек 03, 2007 9:11 pm
Kissa2k
Добавлено спустя год:

Я думаю, что все таки стоит написать функциональный плагин с возможностью использования на разных серверах.

Добавлено: Пн дек 03, 2007 9:49 pm
Aib0
[offtop]
Kissa2k писал(а):Добавлено спустя год:
шо за бред?[/offtop]

Добавлено: Пн дек 03, 2007 10:41 pm
Funt
Это стёб.

Добавлено: Пн дек 03, 2007 11:03 pm
4epT
Kissa2k, а на каждый сайтик не разная ли html-ка будет?

Добавлено: Вт дек 04, 2007 12:38 pm
Kissa2k
Ну я имел в виду с минимальными переделками

Добавлено: Вт дек 04, 2007 3:17 pm
slamhome
а можно сделать так ,если who напишет GM01, то сразу выход?

и раз в 3 минуты мало.вдруг он зайдёт и сразу к тебе проверять на ботность