Вернуться   МПМ Былины - Мир Древней Руси > Для игроков > Клиенты для игры

Клиенты для игры Все что связано с клиентами для игры. Jmc, MMC, ZMud etc...

Ответ
 
Опции темы Опции просмотра
Старый 07.07.2005, 05:21   #1
Обреня
Знакомый Мадера
 
Регистрация: 07.11.2004
Сообщений: 97
По умолчанию Вопрос про таймеры в клиентах

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

Скрипты просьба не предлагать ибо не спортивно.
Обреня вне форума   Ответить с цитированием
Старый 07.07.2005, 07:06   #2
d_blacky
The God of Void
 
Регистрация: 05.03.2004
Сообщений: 217
По умолчанию 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. возможные небольшие опечатки.
d_blacky вне форума   Ответить с цитированием
Старый 07.07.2005, 13:00   #3
kilnik
Занятой мадер
 
Регистрация: 26.09.2004
Сообщений: 132
По умолчанию 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
kilnik вне форума   Ответить с цитированием
Старый 07.07.2005, 18:59   #4
Обреня
Знакомый Мадера
 
Регистрация: 07.11.2004
Сообщений: 97
По умолчанию RE: Вопрос про таймеры в клиентах

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

Цитата:
timeout { CMD::cmd_connect "194.87.5.70", 443 }
Обреня вне форума   Ответить с цитированием
Старый 07.07.2005, 19:04   #5
d_blacky
The God of Void
 
Регистрация: 05.03.2004
Сообщений: 217
По умолчанию 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 в моем варианте ассинхронным потоком ну и в принципе остальное-то почти тоже самое. (у меня просто при уходе на постой или концом не делается авто-реконнект).

Последний раз редактировалось d_blacky; 07.07.2005 в 19:13.
d_blacky вне форума   Ответить с цитированием
Старый 09.07.2005, 00:32   #6
kilnik
Занятой мадер
 
Регистрация: 26.09.2004
Сообщений: 132
По умолчанию RE: Вопрос про таймеры в клиентах

Ю РНВМН)
kilnik вне форума   Ответить с цитированием
Старый 11.07.2005, 14:00   #7
Шана[МЗ]
Гость
 
Регистрация: 29.09.2004
Адрес: МЗ
Сообщений: 674
По умолчанию 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.
Шана[МЗ] вне форума   Ответить с цитированием
Старый 11.07.2005, 17:21   #8
d_blacky
The God of Void
 
Регистрация: 05.03.2004
Сообщений: 217
По умолчанию RE: Вопрос про таймеры в клиентах

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


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


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


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