Показать сообщение отдельно
Старый 11.12.2008, 18:18   #4
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Цитата:
Сообщение от kamil Посмотреть сообщение
Напишите плиз небольшой примерчик чтобы можно было клиента вырубить, а перс все еще был бы на сервере....
Всё ниже перечисленное проверяем и используем на свой страх и риск!!!
Основные моменты скрипта для С4, С5, Т0:
delphi Код:
//*************************************************************** // вызывается при приходе каждого пакета, если скрипт включен //*************************************************************** begin   //****************************************************************************   //не обрабатываем пустые пакеты   if pck='' then exit;   //****************************************************************************   if (ConnectName=Name) and FromServer then begin     case pck[1] of       #$D3: begin // D3=NetPing:d(kID) на Нетпинг сервера шлем сохранённый пакет Нетпинга от клиента         //msg.Lines.Add('S>Пакет NetPing #$D3');         if LogOutOk then begin           buf:=NetPing;           SendToServerEx(Name);           //msg.Lines.Add('C>Пакет NetPing #$A8');         end;       end;     end;   end;   //****************************************************************************   if (ConnectName=Name) and FromClient then begin     case pck[1] of       #$09: begin //C>09=LogoutRequest - выходим ручками из клиента         //msg.Lines.Add('S>Пакет LogoutRequest #$09');         // вроде не надо тут их ставить?         NoFreeOnClientDisconnect;         NoFreeOnServerDisconnect;         pck:='';         // шлем s7E=LogOutOk, для отключения клиента         msg.Lines.Add('S>Пакет LogOutOk #$7E');         buf:=#$7E;         SendToClientEx(Name);         LogOutOk:=true;       end;       #$A8: begin        // C>A8=NetPing:d(kID)d(PING)d(dta)         //msg.Lines.Add('C>Пакет NetPing #$A8');         NetPing:=pck; // запомним его         pck:='';       end;       #$1B: begin         //msg.Lines.Add('C>Пакет RequestSicialAction #$1B');         case ReadD(2) of           //социальное действие Yes для начала ловли           6: begin             //msg.Lines.Add('Отключили клиент из скрипта...');             //для версии 3.1.9+ можно попробовать отключить клиента             //Варнинг! Опасно для жизни! =)             NoFreeOnClientDisconnect;             NoFreeOnServerDisconnect;             LogOutOk:=true;             buf:=#$7E;             SendToClientEx(Name); // отключаем клиент             //msg.Lines.Add('S>Пакет LogOutOk #$7E');             //не передаем серверу социальное действие             pck:='';           end;         end;       end;     end; //case   end; end.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием