PDA

Просмотр полной версии : NoCloseCServerAfterClientDisconnect = Как работает?


Newby
23.10.2009, 00:50
У кого нибудь работает эта функция, если да то откуда ее вызывать надо чтоб работало????

alexteam
23.10.2009, 00:57
http://l2phx.pp.ru/arhive/l2ph_help/index.htm#page=scripting.htm

Newby
23.10.2009, 15:04
Если бы все было так просто я бы сюда не отписал! Вставляю NoClose... в процедуру Init и даже процедуру OnConnect создавал и туда пихал, хотя не уверен что она вообще вызывается в новых версиях. Короче выхожу клиентом и соединение разрывается полюбому! Неужели их надо в основное тело скрипта вставлять?

alexteam
23.10.2009, 15:31
может вот это не синим а красным надо было выделить... или на арабском написать..
действует для текущего обрабатываемого соединения либо, для явно установленного с помошью UseForConnectName имени соединения или установленного с помошью UseForConnectID идентификатора соединения.
какое текущее соединение (connectionid/connectionname) в ините/free/инициализированых с скрипта вызовах (к примеру таймер) ?.

Newby
23.10.2009, 20:32
может вот это не синим а красным надо было выделить... или на арабском написать..
Да, кстати, лучше красным, синий у меня бледный какой-то еле прочитал ;)


какое текущее соединение (connectionid/connectionname) в ините/free/инициализированых с скрипта вызовах (к примеру таймер) ?.

Алекс, сори, не совсем понял вопрос...

Добавлено через 3 минуты
procedure NoCloseServerAfterClientDisconnect
Не будет разрушать соединение пх с сервером при отключении клиента от пх
действует для текущего обрабатываемого соединения либо, для явно установленного с помошью UseForConnectName имени соединения или установленного с помошью UseForConnectID идентификатора соединения.

Честно говоря маловато информации =) Вопрос не в том для какого именно соединения работает, а в том работает ли вообще!

alexteam
23.10.2009, 21:09
Честно говоря маловато информации =) Вопрос не в том для какого именно соединения работает, а в том работает ли вообще!
работает.

ответ на "а пачИму у мИня не работает" заключен в том самом синеньком тексте и в моем "направляющем" вопросе.

Добавлено через 2 минуты
думаю стоит уточнить что текущее обрабатываемое соединение, точнее его идентификатор = connectionid что в принципе логично, если не пытаться переводить имя переменной с арабского.

Newby
25.10.2009, 00:47
Придется согласится с тем, что я ничего не понимаю, по крайней мере из того что ты пытаешься сказать своими наводящими вопросами. Ну ладно, надеюсь я тебе не слишком надоел своими орфографическими ошибками и вопросами на арабском.
Переадресую свою вопрос форумчанам которые знают что такое не быть программистом, но все же пытаться писать скрипты потому, что тебе это нравится. Приведите пожалуйста в пример пару строчек кода с примером применения процедур НоСлозе из рабочего скрипта. Заранее спасибо!

alexteam
25.10.2009, 01:03
begin
case pck[1] of
#$00: begin
NoCloseServerAfterClientDisconnect;
NoCloseClientAfterServerDisconnect;
pck:='';
buf:=#$84;
SendToClient;
end;
end;

Newby
25.10.2009, 01:48
Фух, я то думал совсем тупой =) Не пашет !

Все пакеты перехватываю 00 ЛогАут от клиента и еще D0 так же от клиента!(Протокол 83 Грация Финал) Сервер никаких пакетов о выходе вообще не получает! Но все равно соединение рвется!

alexteam
25.10.2009, 13:02
Поправил скрипт. проверил - работает.
сами функции замечательно ставят соответствующие метки в текущем соединении... а вот сокетный енжин их игнорировал если стояли не обе. поправил в сокетном енджине это место. к стати, билд перезалил.

ChiterEPT
26.10.2009, 01:20
Спасибо, ушел пробовать =) (Newby)
Наконец-то вспомнил пароль от старого акка на форуме =)