Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uses SysUtils;
- 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';
- //Это хз что такое, но оно надо :D
- function isDigit(ch: char): boolean;
- const
- digits = '0123456789';
- var
- i: cardinal;
- begin
- result:= false;
- for i:= 0 to length(digits) do
- if digits[i] = ch then begin
- result:= true;
- exit;
- end;
- end;
- //Чек на дисконект и указание дальнейших действий
- procedure Disconect;
- var
- i: integer;
- const
- VK_TAB: cardinal = $9;
- VK_RETURN: cardinal = $D;
- login: string = ''; //наш логин
- password: string = ''; //наш пароль
- gamePath = 'C:\Program Files (x86)\L2Multi.ru Helios\system\L2.exe'; //путь к папке систем нашего клиента
- delayTime: cardinal = 4000; //задержка
- begin
- while 1=1 do begin //бесконечный цикл
- delay(10000);
- if (Engine.Status = lsOffline) or (Engine.Status = lsOff) then begin //если статус оффлайн
- loggedIn:=true;
- print('Обнаружен вылет окна');
- delay(1111);
- Script.Suspend;
- delay(1111);
- Engine.FaceControl(0, false); //выключаем интерфейс
- delay(1111);
- //Script.Suspend; //тормозим на паузу майн тело скрипта
- //delay(1111);
- Engine.GameClose; //закрываем клиент
- Delay(1000);
- ShellExecuteW(0, 'open', PChar(gamePath), nil, nil, 0); //запускаем клиент
- Delay(20000);
- //engine.enterText(login); //вводим логин
- //delay(delayTime);
- //engine.useKey(VK_TAB);
- // delay(delayTime);
- //engine.enterText(password); //вводим пароль
- Engine.AuthLogin(,);
- Engine.UseKey('Enter');
- Delay(3000);
- Engine.UseKey('Enter');
- Delay(3000);
- Engine.UseKey('Enter');
- Delay(5000);
- Engine.UseKey('Enter');
- Delay(12000);
- Engine.UseKey('Enter');
- Delay(12000);
- script.resume; //снимаем с паузы майн тело скрипта
- if engine.status = lsOnline then begin //когда мы онлайн, то...
- delay(1111);
- print('Зашли в игру. Продолжаем');
- delay(1111);
- //script.resume; //снимаем с паузы майн тело скрипта
- //delay(1111);
- Engine.FaceControl(0, true);
- end;
- end;
- end;
- end;
- 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;
- procedure SetProverkaXYZ; //проверка на АФК (двигаемся ли мы)
- var ProverkaXYZ: array [0..3] of Integer;
- begin
- while Engine.Status = lsOnline do begin delay(555);
- print('запоминаю координаты');
- ProverkaXYZ[0] := User.X;
- ProverkaXYZ[1] := User.Y;
- ProverkaXYZ[2] := User.Z;
- ProverkaXYZ[3] := User.Target.HP;
- delay(120000); //если в течении указанного времени наши координаты не изменились, то выполняем действия что ниже
- if (ProverkaXYZ[0] = User.X) and (ProverkaXYZ[1] = User.Y) and (ProverkaXYZ[2] = User.Z) and (User.Cast.EndTime = 0) and (ProverkaXYZ[3] = User.Target.HP) then begin
- print('Стоим на месте больше 3-x минут, закрываю клиент');
- delay(1000);
- Engine.GameClose;
- Delay(1000);
- end;
- end;
- end;
- procedure death;
- begin
- while not user.dead do delay(40000);
- Engine.FaceControl(0,false);
- delay(10000);
- Engine.gohome;
- Print('Убили негра');
- delay(1000);
- delay(5000);
- engine.bypasstoserver('_bbshome;Teleport');
- delay(1300);
- engine.bypasstoserver('_bbshome;Teleport;useSheme:123');
- engine.moveto(41528,40920,-3504);
- Engine.FaceControl(0,true);
- end;
- //ваше тело майн скрипта
- begin
- Script.NewThread(@SetProverkaXYZ); //проверка в потоке Анти Афк
- Script.NewThread(@death);
- delay(1000);
- while true do begin //зацикленно на этом месте
- if engine.status <> lsonline then loggedIn:= true else loggedIn:= false;
- delay(555);
- Script.NewThread(@Disconect); //проверка в потоке на дисконект/вылет и авто логин
- delay(555);
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement