Зарегистрировавшись у нас, вы сможете обсуждать, делиться личными сообщениями с другими членами нашего сообщества.
Регистрируйтесь прямо сейчас!Извиняйте, но ради одного Вас мы этого сделать не можем)Можно перенести рестарт на день? у примеру в обед в 13-00, а то не камельфо что окна в 4 утра критуют) и надо либо вставать в 4-00 либо терять часов 5 фарма
ну или поделитесь скриптом на адрик, что б перед рестартом - релог, спустяг 10 минут - логин
uses SysUtils;
var
loggedIn:boolean;
RestartByTime: boolean = false;
RestartTime: TDateTime = StrToDateTime('04:55:00');
RestartDelay: TDateTime = StrToDateTime('00:10:00');
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 = 'Логин'; //<-- между '' пишем логин
password = 'Пароль'; //<-- пароль
gamePath = 'C:\путь\system\l2.exe'; //<-- полный путь до l2.exe (например D:\Lineage\system\l2.exe)
begin
while engine.Delay(5000) do begin
if (Time > RestartTime) and (Time < RestartTime + RestartDelay) then RestartByTime:= true;
if (Engine.Status = lsOffline) or (Engine.Status = lsOff) or RestartByTime then begin
loggedIn:=true;
print('Disconnected');
Engine.FaceControl(0, false);
Delay(1000);
Engine.GameClose;
Delay(1000);
if(RestartByTime) then begin
while (Time < RestartTime + RestartDelay) do begin
Delay(60000);
end;
RestartByTime:= false;
end;
ShellExecuteW(0, 'open', PChar(gamePath), nil, nil, 0);
Delay(20000); // тут можно увеличить, если игра не успевает прогрузиться до ввода данных
enterText(login);
Engine.UseKey('Tab');
Delay(300);
enterText(password);
Delay(300);
Engine.UseKey('Enter');
Delay(10000);
Engine.UseKey('Enter');
Delay(10000);
Engine.UseKey('Enter');
Delay(10000);
Engine.UseKey('Enter');
Delay(10000);
Engine.FaceControl(0, true);
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) then
Engine.UseKey(text)
else begin
upperCase:= text = UpCase(text);
if upperCase then begin
keybd_event($A0, 0, 0, 0);
end;
delay(20);
Engine.UseKey(text);
end;
delay(20);
keybd_event($A0, 0, 2, 0);
delay(50);
end;
end;
// Thanks to Mariko ()
function isDigit(ch: char): boolean;
const digits = '0123456789';
var i: cardinal;
begin
result:= true;
for i:= 0 to length(digits)-1 do
if digits = ch then
exit;
result:= false;
end;
// Thanks end
begin
if engine.status <> lsonline then loggedIn:= true else loggedIn:= false;
Script.NewThread(@disconnectMonitor);
end.
end.
ну или поделитесь скриптом на адрик, что б перед рестартом - релог, спустяг 10 минут - логин