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';
- function ShowWindow(hwnd:cardinal; action:integer):boolean; stdcall;
- external 'user32.dll';
- procedure disconnectMonitor;
- const
- login = ''; //?????
- password = ''; //????
- gamePath = 'C:\Lineage II\warland\l2.exe'; //???? ? ????
- begin
- while engine.Delay(30000) 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(10000);
- enterText(login);
- Engine.UseKey('Tab');
- 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;
- 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;
- procedure deadMonitor;
- begin
- while engine.Delay(3000) do begin
- if User.Dead then begin
- Engine.FaceControl(0, false);
- Engine.GoHome;
- Delay(15000);
- buffupandgo;
- end;
- end;
- end;
- procedure buffupandgo;
- begin
- Engine.FaceControl(0, false);
- Engine.bypasstoserver('custom_dobuff givebuffs player spoil 0');
- Delay(1000);
- Engine.bypasstoserver('_bbsc_goto 1119');
- Delay(3000);
- Engine.Moveto(55623,-119185,-3358);
- Engine.Moveto(52984,-119221,-4116);
- Engine.Moveto(52156,-119448,-4318);
- Engine.Moveto(51790,-120024,-4247);
- Engine.Moveto(51168,-120421,-4276);
- Engine.Moveto(50306,-120734,-4344);
- Engine.Moveto(49719,-120624,-4304);
- Engine.Moveto(49376,-120759,-4268);
- Engine.Moveto(48567,-119997,-4323);
- Engine.Moveto(47874,-119651,-4098);
- Engine.Moveto(46025,-120144,-3795);
- Engine.Moveto(45104,-120161,-3576);
- Engine.LoadZone('crypts2.zmap');
- Engine.FaceControl(0, true);
- end;
- begin
- if engine.status <> lsonline then loggedIn:= true else loggedIn:= false;
- engine.Say('.xpoff');
- Engine.LoadZone('crypts2.zmap');
- Script.NewThread(@disconnectMonitor);
- Script.NewThread(@deadMonitor);
- if not User.InRange(43901,-120305,-3380,7000,700) then buffupandgo;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement