Попробую. И еще вопрос. При подключении к разным серверам эти кракозябры немного изменяются. А конкретнее последняя. С чем это связано?
Пакет имеет определенную структуру, значения элементов которой могут быть разными для разных серверов. Почитайте темки в разделе разработчиков "ООГ Авторизация" от FreePvP
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
function StrToHex(source: String): String;
var
i: Integer;
c: Char;
s: String;
begin
s := '';
for i := 1 to Length(source) do
begin
c := source[i];
s := s + IntToHex(Integer(c), 2) + ' ';
end;
result := s;
end;
Спасибо всем за помощь.
________________
Skype: darkwellroad
Сайт: [Ссылки могут видеть только зарегистрированные пользователи. ]
а зачем сначало переводить в AnsiString , а потом в String?
если можно сразу читать прямиком с пойманного пакета
Код:
function ByteArrayToStr(Byte_: TByteArray): string;
var
i: Integer;
begin
if Length(Byte_)>0 then
begin
for i:=0 to Length(Byte_)-1 do
if i<>Length(Byte_)-1 then
Result:=Result+IntToHex(Byte_[i],2)+' '
else
Result:=Result+IntToHex(Byte_[i],2)
end;
end;
________________
Хотите как то отблагодарить за помощь?
Не стесняйтесь нажимайте "Спасибо"
Делаю программы на заказ, по всем вопросам в скайп: Ginrey2
Последний раз редактировалось Ginrey; 18.12.2013 в 22:20.
Хм, щас у себя кусоче выдеру.... чтоб голословным не быть...
Код:
while Sock.Connected do
Begin
buf:=Sock.IOHandler.ReadByte;
BufferStream.Position:=BufferStream.Size;
if Crypted then
Begin
buf:=S2C_RC4.RC4Code(buf);
Unpacker.UnPack(buf,BufferStream);
End else
BufferStream.Write(buf,1);
calculate;
if PositionRead=BufferStream.Size then
Begin
PositionRead:=0;
BufferStream.Clear;
End;
End;
Код:
msg.Chat:=cmClan;
pck.ReadByte;
pck.ReadByte;
msg.SenderUid:=pck.ReadUint;
msg.Sender :='';//m_GetNickByWID(msg.uid);
msg.msg :=pck.ReadCStr();
if p_World.Notify.ContainsKey('onRecesiveMessage') then
p_World.Notify['onRecesiveMessage'](@msg)
else
p_Logger.Add('Clan chat:-> '+msg.Sender+' : '+msg.msg,lgWarn);
Код:
Function TPWPacket.ReadCStr;
begin
if size=0 then
size:=ReadCui32;
SetLength(Result,size div 2 );
ReadBuffer(Result[1],size);
end;
Последний раз редактировалось ToRcH2565; 23.12.2013 в 22:31.