госпади
нате всё че есть
delphi Код:
procedure Proc;
var
i:integer;
s,s1:string;
j:cardinal;
begin
s:='';
if PacketsFromServer.Count>0 then
begin
with TFullPacketServer(PacketsFromServer.Items[0]) do
begin
j:=3;
if id2<>-1 then inc(j,6);
SetLength(s,length(s)+(length(data)*3)+j);
s1:=IntToHex(id,2);
s[1]:=s1[1];
s[2]:=s1[2];
s[3]:=' ';
if id2<>-1 then
begin
s1:=IntToHex(id2,4);
s[4]:=s1[1];
s[5]:=s1[2];
s[6]:=' ';
s[7]:=s1[3];
s[8]:=s1[4];
s[9]:=' ';
end;
for i:=0 to length(data)-1 do
begin
s1:=inttohex(data[i],2);
s[j+1]:=s1[1];
s[j+2]:=s1[2];
s[j+3]:=' ';
inc(j,3);
end;
end;
Writeln('FromServer:'+s);
PacketsFromServer.Delete(0);
end;
end;
procedure ParsingFromServer(curpck:PNetworkPacket); stdcall;
var
p:pointer;
b:byte;
data1:arrayofbyte;
i:integer;
//s:PChar;
//s:string;
begin
SetLength(data1,curpck.size);
if (curpck.size>0) and (curpck.size<3000) then
for i:=0 to curpck.size-1 do
begin
p:=Pointer(cardinal(curpck.data)+i);
b:=Byte(p^);
data1[i]:=b;
end;
PacketsFromServer.Add(TFullPacketServer.create(curpck,data1));
Proc;
SetLength(data1,0);
//writeLn('FromServer:'+data); }
//writeln('ïàðñþ '+inttostr(curpck.size));//iteln('ïàðñþ ');
end;
procedure AddNetworkQueue_hook(np:PNetworkPacket); stdcall;
begin
asm
pushad
end;
ParsingFromServer(np);
asm
popad;
push np;
call [AddNetworkQueue_origAddr]
end;
end;
бредовость из-за того что я уже не знаю из-за чего критует, переделывал как мог)