PDA

Просмотр полной версии : Сервера


NoFear
03.12.2008, 02:07
Народ помогите плиз )
Хочу научиться писать програмы под Л2 :(
дайте пару ссылок на статейки... по отправлению и принятию пакетов через TCP ...
Вообще хочу написать программу.. которая будет конектиться к логин серверу считывать кол-во игровых серверов, узнавать максимально разрешенный онлайн ... и кол-во играюищх на сервере, если уже есть подобное то кому не жалко .. от исходников не откажусь
__________________
Спасибо за ответы

QaK
03.12.2008, 08:30
Хочу научиться писать програмы под Л2молодец =)
дайте пару ссылок на статейки... по отправлению и принятию пакетов через TCP ...а поиск поюзать?
узнавать максимально разрешенный онлайн ... вот это вроде низя.

NoFear
03.12.2008, 09:03
а поиск поюзать?

Да все ткоо про типы пакетов ... ничего больше(

QaK
03.12.2008, 10:32
Да все ткоо про типы пакетов ... ничего больше(попробуй компоненты поискать готовые.

ratvier
03.12.2008, 12:38
вот это вроде низя.
Можно

NoFear
03.12.2008, 14:19
попробуй компоненты поискать готовые.
Думаю таковых не существует...

Jes
03.12.2008, 17:54
Думаю таковых не существует...

пора уже дано было написать такую VLC компоненту с пропертями (IP Protocol Port name pass) и методами (BypassProtection,Login,Farm,RunScript,PKAll)
:D

xkor
03.12.2008, 17:55
Вообще хочу написать программу.. которая будет конектиться к логин серверу считывать кол-во игровых серверов, узнавать максимально разрешенный онлайн ... и кол-во играюищх на сервере, если уже есть подобное то кому не жалко .. от исходников не откажуськак раз вчера такую написал), исходников дать немогу а так сама прога вот: http://xkor.homeip.net/files/l2ru%20server%20monitor.rar
работает на интерлюдах, камаэлях и грациях с авторизацией с РСА...
199

NoFear
03.12.2008, 17:59
У меня не работает (
нажмимаю update ничего не происходит

xkor
03.12.2008, 18:05
NoFear, ну на руофе вопервых счас рестарт а прога по умолчанию на него настроена а во вторых у тя акк то на оффе есть?, без ака можно только на шоках получить список серверов...
на скрине IP адрес шоков...

NoFear
03.12.2008, 18:18
Ну уж не такой тупой что б не додуматься акк вбить))
а на счет рестарта не знал

Добавлено через 48 секунд
скажите как подключиться к логин серверу?? всь день бьюсь.. инфы в инете ваще нету(

Добавлено через 6 минут

var
packet:string;
size:word;
function StringToHex(str1,Separator:String):String;
var
buf:String;
i:Integer;
begin
buf:='';
for i:=1 to Length(str1) do begin
buf:=buf+IntToHex(Byte(str1[i]),2)+Separator;
end;
Result:=buf;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
IdTCPClient1.Host:=Edit1.Text;
IdTCPClient1.Port:=StrToInt(Edit2.Text);
try
IdTCPClient1.Connect;
except
end;
end;

procedure TForm1.IdTCPClient1Connected(Sender: TObject);
begin
IdTCPClient1.ReadBuffer(size,2);
SetLength(packet, size-2);
IdTCPClient1.ReadBuffer(packet[1], size-2);
memo1.Lines.Add(StringToHex(packet,' '));
end;

мне приходит пакет 00 04 2B 28 45 5A 78 00 00 - причем 2 байт всегда разный ...
дальше как я понимаю должно быть RequestAuthLogin ... - скажите как правильно отправить пакет на RequestAuthLogin? и как правильно шифровать Логин и пароль .. если можно дайте компонент

xkor
03.12.2008, 18:35
мне приходит пакет 00 04 2B 28 45 5A 78 00 00 - причем 2 байт всегда разный ..04 2B 28 45 - это ID сессии, на него при ревизии 5A 78 00 00 можн забить
пакетик с логином и паролем формируется примерно так:
procedure AddChecksum(var data:array of char; position: Word);
var
i,k:Word;
begin
k := (position div 4)-1;
for i := 0 to k do
PCardinal(@data[position])^:=PCardinal(@data[position])^ xor PCardinal(@data[i*4])^;
end;

function RequestAuthLogin_785a(const Login,
Pasword: String): string;
var
Packet: TPacket;
LoginD:array[0..13] of Char;
PaswordD:array[0..15] of Char;
begin
with Packet do begin
InitWrite;
FillChar(LoginD,14,0);
FillChar(PaswordD,16,0);
Move(Login[1],LoginD,Length(Login));
Move(Pasword[1],PaswordD,Length(Pasword));
WriteB(0); // Packet ID
Write(LoginD,14); // Login
Write(PaswordD,16); // Password
WriteB(8); // Seporator
WriteD(0);
WriteD(0);
WriteD(0); // Checksum
WriteD(0);
AddChecksum(data[3],40);
Result:=data;
end;
end;

NoFear
03.12.2008, 18:46
Но все равно не вкуриваю :((
Если кому не сложно можете сделать программу.. которая конектиться к серверу ...и показывает список серверов ...
очень хочу разобарться!!
ип 195.218.197.251
порт 2106
акк admin9999
пасс 123123123
протоком 656
хроники С4

Добавлено через 46 секунд
04 2B 28 45 - это ID сессии, на него при ревизии 5A 78 00 00 можн забить
пакетик с логином и паролем формируется примерно так:
procedure AddChecksum(var data:array of char; position: Word);
var
i,k:Word;
begin
k := (position div 4)-1;
for i := 0 to k do
PCardinal(@data[position])^:=PCardinal(@data[position])^ xor PCardinal(@data[i*4])^;
end;

function RequestAuthLogin_785a(const Login,
Pasword: String): string;
var
Packet: TPacket;
LoginD:array[0..13] of Char;
PaswordD:array[0..15] of Char;
begin
with Packet do begin
InitWrite;
FillChar(LoginD,14,0);
FillChar(PaswordD,16,0);
Move(Login[1],LoginD,Length(Login));
Move(Pasword[1],PaswordD,Length(Pasword));
WriteB(0); // Packet ID
Write(LoginD,14); // Login
Write(PaswordD,16); // Password
WriteB(8); // Seporator
WriteD(0);
WriteD(0);
WriteD(0); // Checksum
WriteD(0);
AddChecksum(data[3],40);
Result:=data;
end;
end;

Делфи 7 ругаеться на строчку Packet: TPacket;

xkor
03.12.2008, 18:48
NoFear, ну TPacket это мой объект для работы с пакетами, я его не выкладывал.., я код дал не для компиляции а для изучения)

QaK
04.12.2008, 09:17
очень хочу разобарться!!читать как: очень хочу поиметь готовое и почитать?

PanAm
05.12.2008, 18:15
очень хочу поиметь готовое и почитать+1 :cool:

O_o
06.12.2008, 13:04
все хотят поиметь что нибудь :D

NoFear
06.12.2008, 13:19
читать как: очень хочу поиметь готовое и почитать?
нет)
хочеться разобраться с подключением к логин серверу... а то ловиться токо 1 пакет а дальше ваще хз что делать (

PanAm
06.12.2008, 13:20
кстати, поиск рулит - http://coderx.ru/showpost.php?p=13769&postcount=33

NoFear
06.12.2008, 13:33
Рулит рулит.... я уже давно это на рулил ..но .. непонятного слишком много