Enjoy :D this is just example, need rewrite script for your server
var
item: TL2Item;
function buffCheck: Boolean;
var buff: TL2Buff;
begin
if not User.Buffs.ByID(1204, buff) then begin
Result:=true;
Print('Buffs are needed. Buffing...');
Engine.MoveTo(82968, 53240, -1488);
Delay(500);
Engine.SetTarget(30176); // NPC ID
Delay(500);
Engine.DlgOpen;
Delay(500);
Engine.DlgSel(1);
Delay(500);
Print('Buffed.');
Engine.MoveTo(82968, 53208, -1488);
end;
Result:=false;
end;
function deadCheck: Boolean;
begin
Result := false;
if User.Dead then begin
Result := true;
Print('Dead. Pressing to village.');
Delay(1000);
Engine.FaceControl(0,false);
Engine.GoHome;
Delay(10000);
end;
end;
begin
while true do begin
delay(150);
if User.inrange(80334,54400,-1552, 250, 150) then begin
Engine.MoveTo(80334,54400,-1552);
Engine.MoveTo(80969,53698,-1558);
Engine.MoveTo(81540,53454,-1494);
Engine.MoveTo(82480,53340,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82323,55466,-1520, 250, 150) then begin
Engine.MoveTo(82323,55466,-1520);
Engine.MoveTo(82403,54498,-1523);
Engine.MoveTo(82589,53861,-1486);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82123,53535,-1488, 250, 150) then begin
Engine.MoveTo(82123,53535,-1488);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(80304,56241,-1552, 250, 150) then begin
Engine.MoveTo(80304,56241,-1552);
Engine.MoveTo(81470,55682,-1523);
Engine.MoveTo(82256,55294,-1523);
Engine.MoveTo(82510,54035,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82445,56012,-1520, 250, 150) then begin
Engine.MoveTo(82445,56012,-1520);
Engine.MoveTo(82341,54950,-1523);
Engine.MoveTo(82574,53833,-1486);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(80054,53209,-1552, 250, 150) then begin
Engine.MoveTo(80054,53209,-1552);
Engine.MoveTo(80624,53611,-1558);
Engine.MoveTo(81772,53468,-1494);
Engine.MoveTo(82289,53472,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(80513,52980,-1552, 250, 150) then begin
Engine.MoveTo(80513,52980,-1552);
Engine.MoveTo(80165,53065,-1558);
Engine.MoveTo(80630,53610,-1558);
Engine.MoveTo(81688,53447,-1494);
Engine.MoveTo(82303,53338,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(80267,55497,-1552, 250, 150) then begin
Engine.MoveTo(80267,55497,-1552);
Engine.MoveTo(80359,54536,-1558);
Engine.MoveTo(80792,53785,-1558);
Engine.MoveTo(81495,53421,-1494);
Engine.MoveTo(82323,53362,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(79933,55752,-1552, 250, 150) then begin
Engine.MoveTo(79933,55752,-1552);
Engine.MoveTo(80349,55208,-1558);
Engine.MoveTo(80470,54217,-1558);
Engine.MoveTo(81053,53602,-1558);
Engine.MoveTo(81974,53465,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(80594,55837,-1552, 250, 150) then begin
Engine.MoveTo(80594,55837,-1552);
Engine.MoveTo(81899,55492,-1523);
Engine.MoveTo(82240,55142,-1523);
Engine.MoveTo(82531,53946,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82213,53964,-1488, 250, 150) then begin
Engine.MoveTo(82213,53964,-1488);
Engine.MoveTo(82668,53709,-1486);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(83327,55410,-1520, 250, 150) then begin
Engine.MoveTo(83327,55410,-1520);
Engine.MoveTo(82607,55592,-1523);
Engine.MoveTo(82184,54809,-1523);
Engine.MoveTo(82563,53882,-1488);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(79706,52986,-1552, 250, 150) then begin
Engine.MoveTo(79706,52986,-1552);
Engine.MoveTo(80427,53549,-1558);
Engine.MoveTo(80812,53655,-1558);
Engine.MoveTo(81979,53439,-1494);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82880,55390,-1520, 250, 150) then begin
Engine.MoveTo(82880,55390,-1520);
Engine.MoveTo(82375,55524,-1523);
Engine.MoveTo(82367,54313,-1493);
Engine.MoveTo(82651,53734,-1486);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82552,53447,-1488, 250, 150) then begin
Engine.MoveTo(82552,53447,-1488);
Engine.MoveTo(82950,53186,-1494);
end;
if User.inrange(82638,53885,-1488, 250, 150) then begin
Engine.MoveTo(82638,53885,-1488);
Engine.MoveTo(82950,53186,-1494);
end;
if user.inrange(82888, 53240, -1488, 500) then begin
buffCheck;
end;
if user.inrange(82968, 53208, -1488, 150) and User.Buffs.ByID(1204, buffCheck) then begin
Print('Teleport to Apostate.');
Engine.SetTarget(30832);
Engine.DlgOpen;
Delay(500);
Engine.DlgSel('Catacomb');
Delay(500);
Engine.DlgSel('Apostate');
Delay(5000);
end;
if user.inrange(-20237, -250797, -8163, 500) then begin
Print('Apostate. Moving to spot');
Engine.MoveTo(-20168,-250744,-8160);
Engine.MoveTo(-19304,-250728,-8160);
Engine.MoveTo(-18968,-250504,-8160);
Engine.MoveTo(-18456,-250504,-8160);
Engine.MoveTo(-16792,-250536,-8160);
Engine.MoveTo(-16424,-250760,-8160);
Engine.MoveTo(-14888,-250776,-8160);
Engine.MoveTo(-14536,-250424,-8160);
Engine.MoveTo(-14408,-249160,-8160);
Engine.MoveTo(-13768,-249064,-8160);
Engine.MoveTo(-13736,-247848,-8160);
Print('AA farm: ON!');
Delay(500);
Engine.FaceControl(0, true);
while not deadCheck do delay(1000); //while not dead, do nothing and wait.
end;
end;
end.