Здрасте.
Подкорректировал и сделал себе такой скрипт для авто логина, ну он работает только если игру закрыты или выпадает ошибка. Скрипт не работает если перезагрузка сервера виде такого окна: http://imgur.com/a/L5DRD, (не работает патаму што игра не закрыта, а если она не закрыта, новое окно загрузится не может.)
Как проверить что мы вылетели из сервера ? Можете есть. какая нибудь. команда, для закрытия игры ? Было бы интересно узнать как обойти сервер рестарт. p.s. Может как то надо менять данный код ?
Спасибо за ответы.)
Подкорректировал и сделал себе такой скрипт для авто логина, ну он работает только если игру закрыты или выпадает ошибка. Скрипт не работает если перезагрузка сервера виде такого окна: http://imgur.com/a/L5DRD, (не работает патаму што игра не закрыта, а если она не закрыта, новое окно загрузится не может.)
Как проверить что мы вылетели из сервера ? Можете есть. какая нибудь. команда, для закрытия игры ? Было бы интересно узнать как обойти сервер рестарт. p.s. Может как то надо менять данный код ?
Спасибо за ответы.)
Код:
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';
function ShowWindow(hwnd:cardinal; action:integer):boolean; stdcall;
external 'user32.dll';
procedure disconnectMonitor;
const
login = 'arbuzas222';
password = 'herbasbas';
gamePath = 'C:\Program Files (x86)\Lineage II\system\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);
Engine.GameClose;
Delay(1000);
ShellExecuteW(0, 'open', PChar(gamePath), nil, nil, 0);
Delay(5000);
enterText(login);
Engine.UseKey('Tab');
Delay(300);
enterText(password);
Delay(300);
Engine.UseKey('Enter');
Delay(1000);
Engine.UseKey('Enter');
Delay(1000);
Engine.UseKey('Enter');
Delay(1000);
Engine.UseKey('Enter');
Delay(10000);
ShowWindow(engine.gamewindow, 6);
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;
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.