МПМ Былины - Мир Древней Руси

МПМ Былины - Мир Древней Руси (https://www.bylins.su/vbb/index.php)
-   Клиенты для игры (https://www.bylins.su/vbb/forumdisplay.php?f=52)
-   -   Вопрос про таймеры в клиентах (https://www.bylins.su/vbb/showthread.php?t=1375)

Обреня 07.07.2005 04:21

Вопрос про таймеры в клиентах
 
Вопрос: как в жабе или mmc написать триг на реконнект через заданное время после дисконнекта? (найти момент дисконнекта не проблема, проблема - выждать)

Скрипты просьба не предлагать ибо не спортивно.

d_blacky 07.07.2005 06:06

RE: Вопрос про таймеры в клиентах
 
С чего вдруг скрипты -- и не спортивно? Занимают меньше места в конфиге и работают куда быстрее и корректней чем триги на внутренних псевдо-языках.

mmc: Вставить в *.ini строчки:
Код:

$reconnect_time = 180; # насколько помню, время в секундах
hook {
        if ($failed_connect) {
                sleep $reconnect_time;
                CMD::cmd_connect "mud.ru", 4000;
        }
        1;
} "disconnect";
hook {
        $failed_connect=1;
        1;
} "connect";
alias {$failed_connect=0} "конец";
alias {$failed_connect=0} "постой";

p.s. возможные небольшие опечатки.

kilnik 07.07.2005 12:00

RE: Вопрос про таймеры в клиентах
 
это с каких это пор перл - внутренний псевдо(!)-язык mmc?

это решение довольно кривое, так как sleep подвешивает намертво процесс ммс. Прервать неполучиться (за те 180 секунд пока он будет спать). Если только убить.

я думаю лучше так.

Код:

my $timeout = 180;

hook
{
        timeout { CMD::cmd_connect "194.87.5.70", 443 } , $timeout, 1
} 'disconnect';

+какую нибудь команду killall, которая порешит этот внутренний процесс, например

Код:

alias { CMD::cmd_kill $_ for (1..10) } 'killall'
у меня этот килал забинден вместе с '~', так что довольно удобно получаеться )

Ну или сделать с флагами, тоже можно. Главное не через sleep :)

Обреня 07.07.2005 17:59

RE: Вопрос про таймеры в клиентах
 
А чего цифирь 443 в предыдущем посте значит?

Цитата:

timeout { CMD::cmd_connect "194.87.5.70", 443 }

d_blacky 07.07.2005 18:04

RE: Вопрос про таймеры в клиентах
 
Цитата:

Сообщение от Килник
это с каких это пор перл - внутренний псевдо(!)-язык mmc?

Мдя, я думал я выразился относительно четко, а оказывается...
Поясняю для особо алгоритмичных:
Цитата:

Сообщение от Обрения
Скрипты просьба не предлагать ибо не спортивно.

Я удивляюсь почему это такой негатив на тему скриптов? и пишу:

Цитата:

Сообщение от d_blacky
С чего вдруг скрипты -- и не спортивно? Занимают меньше места в конфиге и работают куда быстрее и корректней чем триги на внутренних псевдо-языках.

Тем самым я как раз говорил что скрипты (perl в mmc, и как правило JS в jmc), работают куда лучше чем всякие внутренние псевдо-языки (mmc-script внутренний пседов-язык в mmc или к примеру..... хм, я хз как его обозвать, назовем тоже jmc-script -- типа тот "язык" на котором пишут всякие "#match $a + $b" и т.д. в jmc).

Цитата:

Сообщение от Обреня
А чего цифирь 443 в предыдущем посте значит?

ну mud.ru позволяет коннектиться к портам 110, 443, 4000, и 9000, вот это был один из них.

Цитата:

Сообщение от Килник
это решение довольно кривое, так как sleep подвешивает намертво процесс ммс. Прервать неполучиться (за те 180 секунд пока он будет спать). Если только убить.

Ну если кто-то выставляет таймер для реконнекта (вместо нажатия на альяс после дисконнекта) -- то возможно в это время он вообще не появляется у компа и ему все-равно реагирует ли mmc на какие-нибудь команды или нет во время исполнения sleep.
Просто в слепую килять процессы 1--10 тоже как-то не спортивно :).
В принципе ничего против твоего варианта не имею, заменил sleep в моем варианте ассинхронным потоком ну и в принципе остальное-то почти тоже самое. (у меня просто при уходе на постой или концом не делается авто-реконнект).

kilnik 08.07.2005 23:32

RE: Вопрос про таймеры в клиентах
 
Ю РНВМН)

Шана[МЗ] 11.07.2005 13:00

RE: Вопрос про таймеры в клиентах
 
Цитата:

Сообщение от d_blacky
ну mud.ru позволяет коннектиться к портам 110, 443, 4000, и 9000, вот это был один из них.

telnet mud.ru 110
Trying 194.87.5.70...
Connected to mud.ru.
Escape character is '^]'.
+OK
quit
+OK
Connection closed by foreign host.

на 110 POP3 висит давно уже :(

А 9000 надо перепечатать в 7000.

d_blacky 11.07.2005 16:21

RE: Вопрос про таймеры в клиентах
 
Почему-то в этом форуме изменены _дефолтные_ насколько я помню в vbb_3.0 настройки позволяющие только-что созданной группе пользователей (группа "программеры" создавалась отдельно от группы Users) редактировать свои сообщения.
А редактировать же можно только совсем совсем недавно созданные сообщения (у меня склероз на точные цифры) -- вроде не более 120 секунд после ее создания, поэтому я не могу изменить 9000 на 7000,
в принципе основным вопросом было -- "что значить 443", а не "на каких портах висит игра".


Часовой пояс GMT +4, время: 03:05.

Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot