Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг
Войти через OpenID

Скриптинг Форум посвещенный созданию скриптов для L2PacketHack

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 27.05.2011, 22:01   #1
Пользователь
 
Аватар для metalFan
 
Регистрация: 26.10.2007
Сообщений: 43
Сказал Спасибо: 8
Имеет 21 спасибок в 8 сообщенях
metalFan
По умолчанию Хочу отсоеденить клиент, пишет ошибку 10083

PHP код:
27.05.2011 20:44:40 Перехвачен коннект на yandex.ru:7777
27.05.2011 20
:44:40 Thread Startпоток сервера Thread[0].SH 488/2380 SSock=484
27.05.2011 20
:44:40 Thread Startпоток клиента Thread[0].CH 464/5424 CSock=540
27.05.2011 20
:44:44 Считываем имя соединения...
27.05.2011 20:44:44 Имя соединения:JackSparrow
27.05.2011 20
:47:16 Disconnectотвалился сервер Thread[0].SH 488/2380 SSock=484
27.05.2011 20
:47:17 На сокете484 ошибка10053 Программа на вашем хост-компьютере разорвала установленное подключение
27.05.2011 20
:47:18 На сокете484 ошибка10038 Сделана попытка выполнить операцию на объектене являющемся сокетом
27.05.2011 20
:47:18 На сокете484 ошибка10038 Сделана попытка выполнить операцию на объектене являющемся сокетом

...
...
... 
на каждом входящем пакете пишет это
PHP код:
Сделана попытка выполнить операцию на объектене являющемся сокетом 
через некоторое время пакетхак умирает с ошибкой или зависанием.
Как отсоединить клиент от сервера?
вот этот скрипт хочу оставить работать, пытался запихать туда nlobp овские советы по нетпингу и его вызовы NoFreeOnDisconnect - не работает.
metalFan вне форума   Ответить с цитированием
Старый 27.05.2011, 22:03   #2
Пользователь
 
Аватар для metalFan
 
Регистрация: 26.10.2007
Сообщений: 43
Сказал Спасибо: 8
Имеет 21 спасибок в 8 сообщенях
metalFan
По умолчанию

PHP код:

var curposbyte;
    
TITLE_DATA2: array [0..16of string;

const
  
jokes_max 99;
  
CName 'JackSparrow';

var
  
fTStringList;
  
jokes: array [1..jokes_maxof String;
  
jokes_realinteger;
  
IDs: array [1..2000of cardinal;
  
Names: array [1..2000of String;
  
countInteger;
  
MyIDCardinal;
  
MyNameString;
  
mTMemo;
  
tTTimer;

  
InTimerBoolean;

  
procedure OnDisconnect;
  
begin
        NoFreeOnServerDisconnect
;
      
NoFreeOnClientDisconnect;

  
end;

procedure OnTimerProc;
begin
  InTimer 
:= true;
  
buf := #$55;
  
WriteS(MyName);
  
WriteS(TITLE_DATA2[curpos]);
  
SendToServerEx(CName);

  
curpos := curpos 1;
  if 
curpos 16 then curpos := 0;

  
InTimer := false;
end;

procedure Init;

var 
ibyte;
begin
  randomize
;
  
count := 0;

  
:= TStringList.Create;
  
jokes_real := 0;
  for 
:= 1 to jokes_max do
  
begin
    
try
      
f.LoadFromFile('D:\games\Lineage II\l2phx\bash\' + IntToStr(i) + '.txt');
      jokes_real := jokes_real + 1;
    except
    end;
    jokes[jokes_real] := f.Text;
  end;
  f.free;

  TITLE_DATA2[0] := '';
  TITLE_DATA2[1] := '';
  TITLE_DATA2[2] := '';
  TITLE_DATA2[3] := '';
  TITLE_DATA2[4] := '';
  TITLE_DATA2[5] := '';
  TITLE_DATA2[6] := '';
  TITLE_DATA2[7] := '';
  TITLE_DATA2[8] := '';
  TITLE_DATA2[9] := '';
  TITLE_DATA2[10] := '';
  TITLE_DATA2[11] := '';
  TITLE_DATA2[12] := '';
  TITLE_DATA2[13] := '';
  TITLE_DATA2[14] := '';
  TITLE_DATA2[15] := '';
  TITLE_DATA2[16] := '';

  curpos := 0;

  t := TTimer.Create(nil);
  t.Enabled := false;
  t.Interval := 2000;
  t.OnTimer := @OnTimerProc;

  ShowTab;

  m:=TMemo.Create(UserTab);
  m.parent:=UserTab;
  m.align:=alClient;
  m.ReadOnly:=true;
  m.ScrollBars:=ssBoth;
  m.lines.add('
Àíåêäîòîâ çàãðóæåíî: ' + inttostr(jokes_real));
end;

procedure Free;
begin
  NoFreeOnServerDisconnect
;
NoFreeOnClientDisconnect;


  
m.Free;
  
HideTab;

  
t.OnTimer := nil;
  
t.Enabled := false;
  
t.Interval := 0;
  
t.Free;
end;

function 
FindPlayer(ObjIDcardinal): integer;
var 
kcardinal;
begin
  result 
:= -1;
  if 
Count 0 then
    
for := 1 to Count do
      if 
IDs[k] = ObjID then
      begin
        result 
:= k;
        break
      
end;
end;

var
  
ikinteger;
  
objidcardinal;
  
namestring;
begin
{if (ConnectName CNamethen }
  if 
FromServer then
  
case pck[1of
    
#$64:
    
begin
      i 
:= 2;
      if 
ReadD(i) = 380 then {S1_PURCHASED_S3_S2_s}
      
begin
        i 
:= 4*2;
        
name := ReadS(i);
        if (
name ''then
        begin
          
// âíåñåì â ëîã (blacklist)
          
m.Lines.Add(TimeToStr(now)+': '+name+' purchased (BLACKLISTED)');
        
end
        
else
        
begin
          
while (InTimer true) do := i;

          
buf := #$CC;
          
:= int(random jokes_real) + 1;
          
WriteS(jokes[i]);
          
WriteS(name);
          
SendToServer{Ex(CName)};

          if (
Length(m.Lines.Text) > 60000then m.Lines.Text := '<cleared>';
          
// âíåñåì â ëîã
          
m.Lines.Add(TimeToStr(now)+': '+name+' purchased');
          
m.Lines.Add('> ' jokes[i]);
        
end;
      
end
    end
;

    
#$03: // CharInfo
    
begin
      i 
:= 2;
      
objid := ReadD(i);

      
:= FindPlayer(ObjID);

      if 
= -1 then
      begin
        i 
:= 2;
        
name := ReadS(i);
        
// blacklist
        
if (name ''then
        begin
          
// (none)
        
end
        
else begin
          
// äîáàâëåíèå
          
count := count 1;
          
IDs[count] := ObjID;
          
Names[count] := name;


  



          
//m.Lines.Add(IntToStr(count) + ' - ' + Format('%x', [ObjId])+' = '+ Names[count]);
        
end;
      
end;
    
end;

    
#$04: //UserInfo
    
begin
      i 
:= 4*4;
      
MyID := ReadD(i);
      
MyName := ReadS(i);
      
t.Enabled := false;
    
end;


    
#$12: // ObjectDelete
    
begin
      i 
:= 2;
      
objid := ReadD(i);

      
:= FindPlayer(objid);

      if 
<> -1 then
      begin
        IDs
[i] := IDs[count];
        
Names[i] := Names[count];
        
count := count 1;
      
end
    end
;

    
#$29: //TargetSeleted
    
begin
      i 
:= 2;
      
objid := ReadD(i);

      if 
ReadD(i) <> MyID then exit;

      
:= FindPlayer(objid);

      if 
<> -1 then
      begin
        
while (InTimer true) do := i;

        
buf := #$CC;
        
WriteS('купи стрелу');
        
WriteS(names[i]);
        
SendToServer{Ex(CName)};
        
        
m.Lines.Add(TimeToStr(now)+': '+names[i]);
      
end
    end
;
    
end;


if 
FromClient then
      
case pck[1of
       
#$09: //Logout
          
begin
            pck 
:= '';
              
buf := #$7E;
                
SendToClient{Ex(CName)};
                 
end;

                 
end;




end

Последний раз редактировалось Breadfan, 04.02.2014 в 04:25.
metalFan вне форума   Ответить с цитированием
Старый 27.05.2011, 23:35   #3
Местный
 
Аватар для Breadfan
 
Регистрация: 29.04.2008
Сообщений: 830
Сказал Спасибо: 80
Имеет 230 спасибок в 169 сообщенях
Breadfan пока неопределено
По умолчанию

delphi Код:
if (pck[1]=#$09) and FromClient and (ConnectName=Name) then begin  pck:='';  NoCloseServerAfterClientDisconnect;  NoCloseClientAfterServerDisconnect;  buf:=#$7E;  SendToClientex(name); end;
__________________
На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."

А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?

Последний раз редактировалось Breadfan, 27.05.2011 в 23:37.
Breadfan вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг



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

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


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

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!