Тема: Клиент
Показать сообщение отдельно
Старый 07.03.2014, 10:07   #4
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

эм... сложный вопрос могу лишь рассказать общую теорию построения такого скрипта

во первых - если ты наблюдал за пакетами, приходящими в клиент - даже если ничего не делать персонажем, просто стоять и рядом никого не будет - время от времени приходит пакет пинг и клиент ему отзывается - посылает на сервер обратно другой пакет-ответ на пинг. он может быть разный на разных серверах, поэтому точно не скажу какие там параметры и id... вот значит нам надо эмулировать отсылку ответа на этот пинг.

во вторых - когда ты выходишь из игры, клиент посылает серверу что-то типа логофф - типа разлогинился, нам нужно его перехватить и обнулить. то есть когда ты жмешь выход из игры, клиент закроется - нооооо сервер не дополучит этот пакет логофф и будет продолжать получать ответы на пинг - а значит будет думать что ты все еще в сети.

где-то дуней мне давал такой скрипт... надо поискать - ты его не запускай, иначе из-за несовпадения id спалишься, что используешь левые программы - ты посмотри общую структуру, а после добавь свои значения что есть в пинге.
Код:
const
name = 'besmudag'; 

procedure NetPing;
begin
buf:=#$A8;
WriteD(ReadD(2));
WriteD(5); 
WriteD(6144);
SendToServerEx(name);
end;

procedure offclient;
begin
pck:='';
NoCloseServerAfterClientDisconnect;
NoCloseClientAfterServerDisconnect;
buf:=#$7E;
SendToClientEx(name);
end;

begin
if (connectname=name) and (fromclient) and (pck[1]=#$09) then offclient;
if (connectname=name) and (fromserver) and (pck[1]=#$D3) then NetPing;
end.
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
За это сообщение SeregaZ нажился спасибкой от: