Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Разработка
Войти через OpenID

Разработка Раздел для совместной разработки/доработки программы

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
 
 
Опции темы Опции просмотра
Старый 03.05.2009, 05:08   #11
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

В предыдущих версиях быда опция: "Пропускать логин - программа начинает работать после соединения с Game-Сервером". Кто подскажет для чего это? Из кода ниже тоже непонятно что оно делает .

delphi Код:
//пропускать логин?     //если (пропускать логин и мы не в игре)     if isPassLogin and (not IsGamel) then     begin       //отсылаем данные, сначала длину, а потом сам пакет       send(CSockl,PacketB, 2, 0);       repeat       until send(CSockl, PacketB, recv(SSockl, PacketB, $FFFF, 0), 0)<=0;     end     else     begin//иначе (пропускать логин и мы в игре)       //прием пакетов       repeat         if not GetSocketData(SSockl, Packet.DataB, Packet.Size-2) then break;         if IsGamel            then PacketProcesor(PacketB, CSockl, id, 4)            else PacketProcesor(PacketB, CSockl, id, 2);         if not GetSocketData(SSockl, Packet, 2) then break;         //sendMSG('size: '+IntToStr(Packet.Size));       until False;     end;

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

Добавлено через 1 час 28 минут
И ещё просветите зачем функция:
delphi Код:
function GetSocketData(Socket: TSocket; var Data; const Size: Word): Boolean; var   Position: Word;   Len: Integer;   DataB: array[0..$5000] of Byte absolute Data; begin   Result:=False;   Position:=0;   while Position<Size do begin     Len:=recv(Socket,DataB[Position],1,0);     if Len<=0 then Exit;     Inc(Position, Len);   end;   Result:=True; end;

Я как понял она с помошью "recv" считывает нужное количество байт с сокета по 1 байту. Почему так сделали? Что случится если попытаться сразу считать необходимое кол-во байт одним махом.

зы: прошу прощения за обилие вопросов, приспичило разобраться с программой.

Последний раз редактировалось Yegor, 03.05.2009 в 05:10. Причина: Добавлено сообщение
Yegor вне форума   Ответить с цитированием
 

  CoderX :: Forums > Lineage II > L2PacketHack > Разработка



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

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


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

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

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