Скрипт релогина для Adrenaline

Обмен опытом игроками, в основном по работе БОТа
Mak78
Сообщения: 2
Зарегистрирован: 24 май 2019, 15:40
Флаг: Russia

Скрипт релогина для Adrenaline

Сообщение Mak78 » 24 май 2019, 15:43

Тут пока не пробовал, но основа такая. Поковыряйтесь
Важно! Строка "while engine.Delay(3000) do begin " delay выставлять в зависимости от ресурсов компьютера и скорости инета. Тоесть - если всё слабовато и обычно окно долго грузится, выставляйте побольше. У меня работает на 11000 (комп на работе - гумно)

Код: Выделить всё

uses SysUtils;
      //https://l2script.ru - Сборник скриптов
var
loggedIn:boolean;     //////////////
 
function ShellExecuteW(hwnd: integer; lpOperation, lpFile, lpParameters, lpDirectory: PChar;  nShowCmd: integer): integer; stdcall;
  external 'Shell32.dll';
                               /////////////
function keybd_event(bVk, bScan: byte; dwFlags, dwExtraInfo: integer): integer; stdcall;
  external 'user32.dll';
                                     //////////////
function ShowWindow(hwnd:cardinal; action:integer):boolean; stdcall;
external 'user32.dll';
                             //https://l2script.ru - Сборник скриптов
procedure disconnectMonitor;
const
  login = 'логин';           //логин меняем между  ' '           ///////////////
  password = 'пароль';         //пароль меняем между  ' '
  gamePath = 'путь к l2.exe';
begin
  while engine.Delay(3000) do begin   
    if (Engine.Status = lsOffline) or (Engine.Status = lsOff) then begin
      loggedIn:=true;                           ////////////////
      print('Disconnected');
      Engine.FaceControl(0, false);
      Delay(1000);                         //https://l2script.ru - Сборник скриптов
      Engine.GameClose;
      Delay(1000);                                   /////////////
      ShellExecuteW(0, 'open', PChar(gamePath), nil, nil, 0);
      Delay(10000);
      enterText(login);
      Engine.UseKey('Tab');                       //https://l2script.ru - Сборник скриптов
      Delay(300);
      enterText(password);
      Delay(300);
      Engine.UseKey('Enter');
      Delay(2000);
      Engine.UseKey('Enter');
      Delay(2000);
      Engine.UseKey('Enter');                              //////////////////
      Delay(2000);
      Engine.UseKey('Enter');
      Delay(10000);                                      //////////////////
      Engine.FaceControl(0, true);
    end;
  end;
end;
                                                         //https://l2script.ru - Сборник скриптов
procedure enterText(const text: string);
var
  i: cardinal;
  upperCase: boolean;
begin
  for i:= 1 to length(text) do begin                           //////////////
    if isDigit(text[i]) then
      Engine.UseKey(text[i])
    else begin
      upperCase:= text[i] = UpCase(text[i]);
      if upperCase then begin
          keybd_event(20, 0, 1, 0);
          keybd_event(20, 0, 2, 0);
          Engine.UseKey(text[i]);
          delay(10);
          keybd_event(20, 0, 1, 0);
          keybd_event(20, 0, 2, 0);                            ////////////////
      end else
        Engine.UseKey(text[i]);
    end;
    Delay(50);
  end;
end;
                                                                 ///////////////
function isDigit(ch: char): boolean;
const
  digits = '013456789';
var
  i: cardinal;
begin
  result:= false;
  for i:= 0 to length(digits) do
    if digits[i] = ch then begin
      result:= true;
      exit;
    end;
end;                                                            ////////////
                         
begin
if engine.status <> lsonline then loggedIn:= true else loggedIn:= false;
  Script.NewThread(@disconnectMonitor);
end.
end.

Asgard
Сообщения: 351
Зарегистрирован: 01 окт 2017, 02:03
Поблагодарили: 1 раз

Re: Скрипт релогина для Adrenaline

Сообщение Asgard » 24 май 2019, 22:08

Чет у меня не работает, мб потому что при диске под адриком и вручную невозможно ни релогнуть ни даже выйти из клиента (без адрика все ок), приходится через диспетчер задач глушить процесс.

Mak78
Сообщения: 2
Зарегистрирован: 24 май 2019, 15:40
Флаг: Russia

Re: Скрипт релогина для Adrenaline

Сообщение Mak78 » 25 май 2019, 07:38

У меня клиент закрывает при дисконекте.
Проверял отключив роутер :)
Тут при рестартах клиент закрывается или просто пишет дисконект и продалжает висеть?

Asgard
Сообщения: 351
Зарегистрирован: 01 окт 2017, 02:03
Поблагодарили: 1 раз

Re: Скрипт релогина для Adrenaline

Сообщение Asgard » 25 май 2019, 13:51

Mak78 писал(а):У меня клиент закрывает при дисконекте.
Проверял отключив роутер :)
Тут при рестартах клиент закрывается или просто пишет дисконект и продалжает висеть?

Без адрика клиент закрывает как и положено, а вот под ботом при диске клиент ничего не пишет и просто не реагирует на команды. Ставил с оффовского дистрибутива ИЛа, поверх патч с сайта.