Page 1 of 1
Идея насчет реконнектора
Posted: 2006-09-26 10:47:06
by Edred
Скрипт на реконнект есть, но с ним только одна проблема - если инет лег из-за лагов на время - он не поможет.
Потому идея - нужно написать маленькую утилю, которая будет пинговать указанный адрес. Вызываться должна из командной строки (чтобы из скрипта на реконнект вызывать через лаунч), флаг нормального пинга выставлять в реестр, в глобальную переменную ИзиУО (желательно в параметрах запуска утили сделать флаг номера переменной). Типа:
Code: Select all
UO.SetEasyUO( '10', '0' )
UO.Launch( 'c:\pingshard.exe', '\EUO=10 \IP=255.255.255.0' )
repeat
wait(1000)
until UO.GetEasyUO( '10' ) == '1'
Кто взялся бы написать такую утилю?
Posted: 2006-09-26 21:54:16
by Grin
а в чем идея?
Есть ли соединение и так можно узнать (в инжекте). Все равно механизм реконекта остается тот же (say и тд).
Да и если инет падает
то можно сделать что бы прога фиксировала колво ошибок (потерю пакетов, если это происходи несколько раз подряд).
А вообще в свое время была мысль на писать приблуду (где то уже была такая идея, возможно ктото реализовал, или в гендальфе такое).
На писчать прогу которая будет комутировать инжект с сервером и отвечать за дисконекты и переконекты, то есть для юзверя дисконект не будет виден это будет чтото в роде не большого лага... за это время прога скомутируетсяс сервером и все будет в шоколаде;)
Но это толко в мозгах;)
Posted: 2006-09-26 22:11:36
by Edred
Grin wrote:А вообще в свое время была мысль на писать приблуду (где то уже была такая идея, возможно ктото реализовал, или в гендальфе такое).
На писчать прогу которая будет комутировать инжект с сервером и отвечать за дисконекты и переконекты, то есть для юзверя дисконект не будет виден это будет чтото в роде не большого лага... за это время прога скомутируетсяс сервером и все будет в шоколаде;)
Но это толко в мозгах;)
Если написать как ты говоришь - клиент все равно конлост выкинет, в нем зашито где-то макс время на этот самый лаг. Не думаю, что больше минуты будет ждать. В гендальфе (и, похоже, в стелсе) реализация через виртуальный сервер, то есть гендальф устанавливает на комп виртуальный шард и клиент коннектится к нему. Тогда если связь между виртуальным и реальным сервером потеряна (реконнектор ее восстановит), между клиентом и виртуальным сервером минимальный обмен пакетами идет и тут как лаг все выглядит.
Но все это прожекты, которые если и будут осуществлены - то когда-то в другой жизни. Я же речь веду о простенькой проге (мне самому просто довольно тяжело на сегодняшний день сесть и разбираться, я программы для сети/инета не писал никогда), которая была бы отличным дополнением к тому скрипту на реконнект, который валяется тут на форуме. Этот скрипт, кстати, довольно неплохо реконнектит, только если именно конлост "быстрый". Потому что если клиент при реконнекте выдаст что не могу связаться - пишите письма. Даже если через 2 минуты уже можно будет связаться. А вот такая прога помогла бы именно проверить, есть ли возможность связаться.
ЗЫ: Первый раз слышу, что в инжекте можно проверить
возможность коннекта к указанному серверу в указанное время, если при этом чар в это время
отконнекчен от шарда.
Posted: 2006-09-27 00:45:11
by doomstar
пока инжект восстанавливает соединение он пожет посылать клиенту пакеты от сервера и клиент будет думать что конлоста нету
Posted: 2006-09-27 02:02:11
by Grin
Ед вся защита клиента т лага это:
1. Закрытие сокета
2. Пакет Ping (непомню номер пакета)
Ничего не мешает это реализовать
а поповоду узнать есть ли конект попробуй
uo.isonline()
Posted: 2006-09-27 10:20:07
by Edred
Grin wrote:а поповоду узнать есть ли конект попробуй
uo.isonline()
Я экспериментировал с IsOnline - она показывает есть ли коннект когда клиент законнекчен с шардом. А после конлоста, когда клиент уже выдал табличку об этом, ни фига она не покажет. А меня интересует сама возможность коннекта, пора ли запускать скрипт на реконнект. Шарды, бывает, на полчаса-час ложатся - как отследить момент, когда он снова встал, чтобы запустить скрипт на реконнект? Кроме пинга - решений не вижу.
Posted: 2006-09-28 20:38:41
by doomstar
если стандартная виндовая команда telnet возвращает ошибку если не может законектится то на этой основе можно написать .cmd скрипт, который бы проверял код ошибки от telnet и передавал инжекту информацию о том законектился он или нет.
Просто гипотиза, сам не проверял.
Posted: 2006-09-28 22:02:40
by Edred
doomstar wrote:если стандартная виндовая команда telnet возвращает ошибку если не может законектится то на этой основе можно написать .cmd скрипт, который бы проверял код ошибки от telnet и передавал инжекту информацию о том законектился он или нет.
Просто гипотиза, сам не проверял.
Проверю в выходные.
Posted: 2006-12-14 21:35:49
by Ded Banzai
Edred wrote:doomstar wrote:если стандартная виндовая команда telnet возвращает ошибку если не может законектится то на этой основе можно написать .cmd скрипт, который бы проверял код ошибки от telnet и передавал инжекту информацию о том законектился он или нет.
Просто гипотиза, сам не проверял.
Проверю в выходные.
Есть программы, которые мониторят сервис относительно адреса сервера и порта, и, на основании этого, позволяют выполнить какое-либо действие. Например записать в текстовый файл значение, когда сервер в дауне и когда в апе его изменить. Например The Dude. Можно воспользоваться этим...

Posted: 2006-12-14 23:55:37
by Edred
Меня это уже не интересует...

Я инжект использую уже только в ПвП и ПвМ. Прокачка и добыча, то есть там, где нужен реконнектор - на стелсе.