Jump to content

Recommended Posts

Posted

@adr.bot how could i read the system message window? i mean if i would like to catch, record all my damages, pick up or any other consumable actived

 

I've tried ChatMessage.ChatType= mtSystem but it is not getting anything.

Posted
5 hours ago, panchio said:

@adr.bot how could i read the system message window? i mean if i would like to catch, record all my damages, pick up or any other consumable actived

 

I've tried ChatMessage.ChatType= mtSystem but it is not getting anything.

Use WaitAction instead.

 

var
  id , p : integer;
begin
   while (true) do
   begin
      Engine.WaitAction([laSysMsg],id,p);
      print(id);
   end;
end.

 

Posted (edited)

hey @adr.bot is there any Method to get current loaded zone name? e.g.:

 

Engine.LoadZone('123');
// print(Engine.GetCurrentZone) or smth . Should print 123 (zone name)

And if not, is it possible to manually implement such method somehow? Tnanks in advance.

 

Edited by Griffin39
  • 3 weeks later...
  • 3 weeks later...
Posted (edited)

hi i need help with this script  works normal but when i tp rune reloop the tp and not move to path!!!

 

 

uses SysUtils,Teleport;

procedure AttackDefense;
var
uX,uY,uZ: integer;
begin
 engine.Facecontrol(0, false);
 engine.moveto(user.x,user.y,user.z);
 uX:=user.x;
 uY:=user.y;
 uZ:=user.Z;
 while user.inrange(uX,uY,uZ,500) do begin
     engine.useitem(736);//soe
     delay(20000);
 end;
 while user.incombat do delay(500);
end;
procedure Target(id: integer);
var
i:integer;
begin
for i:=0 to npclist.count-1 do begin
 if npclist.items(i).id = id then begin
  if not npclist.items(i).dead then begin
   engine.settarget(npclist.items(i));
   break();
  end;
 end;
end;
end;
function ValidNPC: boolean;
var
i,n:integer;
npc: TL2Live;
begin
result:=false;
n:=0;
for i:=0 to npclist.count-1 do begin
 if npclist.items(i).id = 31748 then begin
  if not npclist.items(i).dead then inc(n);
 end;
end;
if n = 4 then result:=true;
end;


procedure chapter1;  // Precious Soul 1
var
item: TL2item;
begin
if engine.queststatus(241,1) and not engine.queststatus(241,2) then begin //st1
 while not user.inrange(84429, 147265, -3392,300) do begin // Тп в гиран
   Teleport.TpGiran;
 end;
 Engine.MoveTo(83800, 147672, -3392);
 Engine.MoveTo(83672, 147880, -3384);
 Engine.MoveTo(83608, 148440, -3384);
 Engine.MoveTo(83496, 148840, -3392);
 Engine.MoveTo(83304, 149144, -3392);
 Engine.MoveTo(82984, 149224, -3456);
 Engine.MoveTo(82632, 149432, -3456);
 Engine.MoveTo(82136, 149496, -3456);
 Engine.MoveTo(81656, 149544, -3456);
 Engine.MoveTo(81304, 149672, -3448);
 while not engine.queststatus(241,2) do begin
  engine.settarget(30753);
  delay(500);
  engine.dlgOpen;
  delay(500);
  engine.DlgSel('Quest');
  delay(500);
  engine.DlgSel(1);
  delay(500);
  engine.DlgSel(1);
  delay(500);
 end;
end;
if engine.queststatus(241,2) and not engine.queststatus(241,3) then begin //st2
 while not user.inrange(73048, 118300, -3688,300) do begin
  Teleport.TpDeathPass;
 end;
 while not engine.queststatus(241,3) do begin
  engine.settarget(30754);
  engine.movetotarget(-100);
  delay(500);
  engine.dlgOpen;
  delay(500);
  engine.DlgSel('Quest');
  delay(500);
  engine.DlgSel(1);
  delay(500);
  engine.DlgSel(1);
  delay(500);
 end;
end;
if engine.queststatus(241,3) and not engine.queststatus(241,4) then begin //st3
 while not user.inrange(34208, 187379, -3088,300) do begin
  Teleport.TpBeeHive;
 end;
 Engine.MoveTo(33768, 187288, -3248);
 Engine.MoveTo(33016, 187144, -3200);
 Engine.MoveTo(32040, 186760, -3232);
 Engine.MoveTo(30984, 186408, -3400);
 Engine.MoveTo(30184, 186200, -3632);
 Engine.MoveTo(28632, 186312, -3664);
 Engine.MoveTo(26488, 186696, -3536);
 Engine.MoveTo(25400, 186504, -3360);
 Engine.MoveTo(23176, 186440, -3456);
 Engine.MoveTo(21944, 186280, -3336);
 Engine.MoveTo(21288, 186408, -3248);
 Engine.MoveTo(20936, 186472, -3240);
 Engine.MoveTo(20424, 186296, -3344);
 Engine.MoveTo(19944, 186040, -3344);
 Engine.MoveTo(19688, 185608, -3344);
 Engine.MoveTo(19816, 185416, -3336);
 Engine.MoveTo(20200, 185176, -3336);
 Engine.MoveTo(20584, 184904, -3336);
 Engine.MoveTo(20904, 184696, -3336);
 Engine.LoadZone(script.path+'BarahamNoblesse.zmap');
 engine.facecontrol(0, true);
 while not engine.queststatus(241,4) do delay(500);
 while user.incombat do delay(500);
 engine.facecontrol(0, false);
end;
if engine.queststatus(241,4) and not engine.queststatus(241,5) then begin //st4
 while not user.inrange(147452, 27127, -2192,300) do begin
  Teleport.TpAden;
 end;
 Engine.MoveTo(147624, 26904, -2192);
 Engine.MoveTo(147624, 26504, -2176);
 Engine.MoveTo(147688, 26360, -2120);
  while not engine.queststatus(241,5) do begin
   engine.settarget(31739);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
  end;     
end;
if engine.queststatus(241,5) and not engine.queststatus(241,6) then begin //st5
 while not user.inrange(111078, 218929, -3520,300) do begin
  Teleport.TpHeine;
 end;
 Engine.MoveTo(110680, 219096, -3520);
 Engine.MoveTo(110040, 219096, -3456);
 Engine.MoveTo(110056, 218536, -3528);
 Engine.MoveTo(110056, 218104, -3528);
 Engine.MoveTo(110072, 217720, -3592);
 Engine.MoveTo(110040, 217288, -3728);
 Engine.MoveTo(109672, 217336, -3728);
 Engine.MoveTo(109336, 217496, -3728);
 Engine.MoveTo(108744, 217512, -3688);
 Engine.MoveTo(108248, 217528, -3672);
 Engine.MoveTo(107832, 217560, -3656);
 Engine.MoveTo(107624, 217848, -3656);
 Engine.MoveTo(107304, 218056, -3656);
 Engine.MoveTo(107144, 218072, -3656);
 Engine.MoveTo(107112, 217736, -3576);
 Engine.MoveTo(107096, 217192, -3576);
 Engine.MoveTo(107000, 217000, -3576);
 while not engine.queststatus(241,6) do begin
   engine.settarget(31042);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
   engine.DlgSel(1);
   delay(500);
  end;
end;
if engine.queststatus(241,6) and not engine.queststatus(241,7) then begin //st6
 while not user.inrange(73048, 118300, -3688,300) do begin
  Teleport.TpDeathPass;
 end;
 Engine.MoveTo(72856, 117736, -3664);
 Engine.MoveTo(72424, 117000, -3664);
 Engine.MoveTo(71928, 115608, -3680);
 Engine.MoveTo(71592, 114440, -3712);
 Engine.MoveTo(71400, 113448, -3696);
 Engine.MoveTo(71336, 112472, -3680);
 Engine.MoveTo(71288, 111176, -3712);
 Engine.MoveTo(71016, 110168, -3712);
 Engine.MoveTo(70904, 108312, -3712);
 Engine.MoveTo(70952, 106984, -3712);
 Engine.MoveTo(71080, 105384, -3680);
 Engine.MoveTo(71240, 104376, -3664);
 Engine.MoveTo(71464, 102968, -3696);
 Engine.MoveTo(71608, 102120, -3712);
 Engine.MoveTo(71768, 101240, -3696);
 Engine.MoveTo(72104, 100888, -3680);
 Engine.MoveTo(72392, 100232, -3616);
 Engine.MoveTo(73176, 99992, -3392);
 Engine.MoveTo(73592, 99848, -3288);
 Engine.MoveTo(74200, 99576, -3264);
 Engine.MoveTo(74920, 99640, -3264);
 Engine.MoveTo(75640, 99800, -3296);
 Engine.MoveTo(76744, 100024, -3376);
 Engine.MoveTo(76648, 101304, -3296);
 Engine.MoveTo(76504, 102552, -3176);
 Engine.MoveTo(76328, 103432, -3056);
 Engine.MoveTo(76088, 104456, -2960);
 Engine.MoveTo(75992, 105016, -2880);
 Engine.MoveTo(76232, 105592, -2912);
 Engine.MoveTo(76920, 106568, -2944);
 Engine.MoveTo(76712, 107000, -2880);
 Engine.LoadZone(script.path+'SuccubusNoblesse.zmap');
 engine.facecontrol(0, true);
 while not engine.queststatus(241,7) do delay(500);
 AttackDefense;
end;
if engine.queststatus(241,7) and not engine.queststatus(241,8) then begin //st7
 while not user.inrange(111078, 218929, -3520,300) do begin
  Teleport.TpHeine;
 end;
 Engine.MoveTo(110680, 219096, -3520);
 Engine.MoveTo(110040, 219096, -3456);
 Engine.MoveTo(110056, 218536, -3528);
 Engine.MoveTo(110056, 218104, -3528);
 Engine.MoveTo(110072, 217720, -3592);
 Engine.MoveTo(110040, 217288, -3728);
 Engine.MoveTo(109672, 217336, -3728);
 Engine.MoveTo(109336, 217496, -3728);
 Engine.MoveTo(108744, 217512, -3688);
 Engine.MoveTo(108248, 217528, -3672);
 Engine.MoveTo(107832, 217560, -3656);
 Engine.MoveTo(107624, 217848, -3656);
 Engine.MoveTo(107304, 218056, -3656);
 Engine.MoveTo(107144, 218072, -3656);
 Engine.MoveTo(107112, 217736, -3576);
 Engine.MoveTo(107096, 217192, -3576);
 Engine.MoveTo(107000, 217000, -3576);
 while not engine.queststatus(241,8) do begin
   engine.settarget(31042);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
   engine.DlgSel(1);
   delay(500);
  end;

end;
if engine.queststatus(241,8) and not engine.queststatus(241,9) then begin //st8
 while not user.inrange(147452, 27127, -2192,300) do begin
  Teleport.TpAden;
 end;
 Engine.MoveTo(147720, 26360, -2120);
 while not engine.queststatus(241,9) do begin
   engine.settarget(31739);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
  end;     
end;
if engine.queststatus(241,9) and not engine.queststatus(241,10) then begin //st9
 while not user.inrange(116543, 76297, -2720,300) do begin
  Teleport.TpHunters;
 end;
 Engine.MoveTo(117112, 76264, -2720);
 Engine.MoveTo(117672, 76216, -2672);
 Engine.MoveTo(118072, 76136, -2672);
 Engine.MoveTo(118488, 76248, -2632);
 Engine.MoveTo(119336, 76504, -2368);
 Engine.MoveTo(119576, 76568, -2256);
 Engine.MoveTo(119688, 76680, -2256);
 Engine.MoveTo(119576, 76840, -2256);
 Engine.MoveTo(119272, 77112, -2256);
 Engine.MoveTo(119368, 77304, -2240);
 Engine.MoveTo(119544, 77400, -2224);
 Engine.MoveTo(119848, 77304, -2224);
 while not engine.queststatus(241,10) do begin
   engine.settarget(30692);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
  end;    
end;
if engine.queststatus(241,10) and not engine.queststatus(241,11) then begin //st10
 while not user.inrange(147452, 27127, -2192,300) do begin
  Teleport.TpAden;
 end;
 Engine.MoveTo(147720, 26360, -2120);
 while not engine.queststatus(241,11) do begin
   engine.settarget(31739);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
  end;     
end;
if engine.queststatus(241,11) and not engine.queststatus(241,12) then begin //st11
while not user.inrange(44115, -50215, -784,300) do begin
  Teleport.TpRune;
 end;
 Engine.MoveTo(43928, -49704, -784);
 Engine.MoveTo(43848, -48968, -784);
 Engine.MoveTo(43608, -48328, -784);
 Engine.MoveTo(43368, -48184, -784);
 Engine.MoveTo(41960, -48184, -784);
 Engine.MoveTo(40344, -48264, -752);
 Engine.MoveTo(40344, -48760, -672);
 Engine.MoveTo(40200, -49592, -384);
 Engine.MoveTo(40088, -49880, -288);
 Engine.MoveTo(39672, -50472, -224);
 Engine.MoveTo(38776, -50968, 16);
 Engine.MoveTo(37992, -51208, 304);
 Engine.MoveTo(37112, -51224, 640);
 Engine.MoveTo(36872, -51224, 728);
 Engine.MoveTo(36664, -51128, 728);
 Engine.MoveTo(36680, -50728, 896);
 Engine.MoveTo(36680, -50504, 912);
 Engine.MoveTo(37176, -50136, 912);
 Engine.MoveTo(37912, -49496, 912);
 Engine.MoveTo(38184, -49016, 912);
 Engine.MoveTo(38456, -48264, 912);
 Engine.MoveTo(37656, -48232, 912);
 Engine.MoveTo(36728, -48216, 912);
 Engine.MoveTo(36328, -48104, 912);
 Engine.MoveTo(35928, -47752, 912);
 Engine.MoveTo(35928, -47064, 1072);
 Engine.MoveTo(35896, -46952, 1088);
 Engine.MoveTo(35640, -46920, 1160);
 Engine.MoveTo(35176, -46920, 1336);
 Engine.MoveTo(35000, -46920, 1408);
 Engine.MoveTo(34888, -46968, 1408);
 Engine.MoveTo(34904, -47528, 1560);
 Engine.MoveTo(34888, -47976, 1688);
 Engine.MoveTo(34872, -48168, 1728);
 Engine.MoveTo(34776, -48200, 1736);
 Engine.MoveTo(34280, -48216, 1792);
 Engine.MoveTo(33432, -48168, 1792);
 Engine.MoveTo(33048, -48184, 1792);
 while not engine.queststatus(241,12) do begin
   engine.settarget(31742);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
   engine.DlgSel(1);
   delay(2000);
 end;
end;
if engine.queststatus(241,12) and not engine.queststatus(241,13) then begin //st12
if not user.inrange(33000, -48200, 1792, 400) then begin
while not user.inrange(44115, -50215, -784,300) do begin
  Teleport.TpRune;
 end;
 Engine.MoveTo(43928, -49704, -784);
 Engine.MoveTo(43848, -48968, -784);
 Engine.MoveTo(43608, -48328, -784);
 Engine.MoveTo(43368, -48184, -784);
 Engine.MoveTo(41960, -48184, -784);
 Engine.MoveTo(40344, -48264, -752);
 Engine.MoveTo(40344, -48760, -672);
 Engine.MoveTo(40200, -49592, -384);
 Engine.MoveTo(40088, -49880, -288);
 Engine.MoveTo(39672, -50472, -224);
 Engine.MoveTo(38776, -50968, 16);
 Engine.MoveTo(37992, -51208, 304);
 Engine.MoveTo(37112, -51224, 640);
 Engine.MoveTo(36872, -51224, 728);
 Engine.MoveTo(36664, -51128, 728);
 Engine.MoveTo(36680, -50728, 896);
 Engine.MoveTo(36680, -50504, 912);
 Engine.MoveTo(37176, -50136, 912);
 Engine.MoveTo(37912, -49496, 912);
 Engine.MoveTo(38184, -49016, 912);
 Engine.MoveTo(38456, -48264, 912);
 Engine.MoveTo(37656, -48232, 912);
 Engine.MoveTo(36728, -48216, 912);
 Engine.MoveTo(36328, -48104, 912);
 Engine.MoveTo(35928, -47752, 912);
 Engine.MoveTo(35928, -47064, 1072);
 Engine.MoveTo(35896, -46952, 1088);
 Engine.MoveTo(35640, -46920, 1160);
 Engine.MoveTo(35176, -46920, 1336);
 Engine.MoveTo(35000, -46920, 1408);
 Engine.MoveTo(34888, -46968, 1408);
 Engine.MoveTo(34904, -47528, 1560);
 Engine.MoveTo(34888, -47976, 1688);
 Engine.MoveTo(34872, -48168, 1728);
 Engine.MoveTo(34776, -48200, 1736);
 Engine.MoveTo(34280, -48216, 1792);
 Engine.MoveTo(33432, -48168, 1792);
 Engine.MoveTo(33048, -48184, 1792);
end;
 while not engine.queststatus(241,13) do begin
   engine.settarget(31744);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
 end;
end;
if engine.queststatus(241,13) and not engine.queststatus(241,14) then begin //st13
 while not user.inrange(44115, -50215, -784,300) do begin
  Teleport.TpRune;
 end;
 Engine.MoveTo(43880, -49816, -784);
 Engine.MoveTo(43624, -49208, -776);
 Engine.MoveTo(43432, -49176, -776);
 Engine.MoveTo(43112, -49256, -776);
 Engine.MoveTo(42936, -48776, -776);
 Engine.MoveTo(42552, -48328, -784);
 Engine.MoveTo(41656, -48264, -784);
 Engine.MoveTo(40568, -48248, -752);
 Engine.MoveTo(39736, -48232, -752);
 Engine.MoveTo(38168, -48248, -1136);
 Engine.MoveTo(37608, -48408, -1136);
 Engine.MoveTo(37384, -48648, -1112);
 Engine.MoveTo(37352, -49032, -1112);
 Engine.MoveTo(37416, -49240, -1112);
 Engine.MoveTo(37960, -49336, -1112);
 Engine.MoveTo(38184, -49352, -1112);
 Engine.MoveTo(38328, -49256, -1112);
 while not engine.queststatus(241,14) do begin
   engine.settarget(31336);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
   engine.DlgSel(1);
   delay(500);
 end;
end;
if engine.queststatus(241,14) and not engine.queststatus(241,15) then begin //st14
 while not user.inrange(172120, 20272, -3312,300) do begin
  Teleport.TpCementery;
 end;
 Engine.MoveTo(172216, 20056, -3312);
 Engine.MoveTo(172504, 20088, -3312);
 Engine.MoveTo(172712, 20200, -3312);
 Engine.MoveTo(173032, 20232, -3224);
 Engine.MoveTo(173960, 20232, -3232);
 Engine.MoveTo(174680, 20216, -3232);
 Engine.MoveTo(175768, 20232, -3232);
 Engine.MoveTo(176648, 20216, -3232);
 Engine.MoveTo(177656, 20232, -3232);
 Engine.MoveTo(178088, 20216, -3232);
 Engine.MoveTo(178424, 19816, -3232);
 Engine.MoveTo(178616, 19704, -3200);
 Engine.MoveTo(178840, 19656, -3152);
 Engine.MoveTo(179480, 19432, -3152);
 Engine.MoveTo(179592, 19240, -3152);
 Engine.MoveTo(179656, 19112, -3152);
 Engine.MoveTo(179720, 17192, -3152);
 Engine.MoveTo(181064, 17144, -3152);
 Engine.LoadZone(script.path+'CrimsonMoss.zmap');
 engine.facecontrol(0, true);
 while not engine.queststatus(241,15) do delay(500);
 AttackDefense;
end;
if engine.queststatus(241,15) and not engine.queststatus(241,16) then begin //st15
 while not user.inrange(44115, -50215, -784,300) do begin
  Teleport.TpRune;
 end;
 Engine.MoveTo(43848, -49832, -784);
 Engine.MoveTo(43544, -49176, -776);
 Engine.MoveTo(43112, -49256, -776);
 Engine.MoveTo(42920, -48568, -784);
 Engine.MoveTo(42696, -48328, -784);
 Engine.MoveTo(42008, -48248, -784);
 Engine.MoveTo(40712, -48232, -752);
 Engine.MoveTo(39832, -48216, -752);
 Engine.MoveTo(38136, -48248, -1136);
 Engine.MoveTo(37528, -48440, -1136);
 Engine.MoveTo(37352, -48728, -1112);
 Engine.MoveTo(37384, -49144, -1112);
 Engine.MoveTo(37432, -49320, -1112);
 Engine.MoveTo(37896, -49336, -1112);
 Engine.MoveTo(38280, -49272, -1112);
 Engine.MoveTo(38344, -49272, -1112);
 while not engine.queststatus(241,16) do begin
   engine.settarget(31336);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
   engine.DlgSel(1);
   delay(500);
 end;
end;
if engine.queststatus(241,16) and not engine.queststatus(241,17) then begin //st16
while not user.inrange(44115, -50215, -784,300) do begin
  Teleport.TpRune;
 end;
 Engine.MoveTo(43928, -49704, -784);
 Engine.MoveTo(43848, -48968, -784);
 Engine.MoveTo(43608, -48328, -784);
 Engine.MoveTo(43368, -48184, -784);
 Engine.MoveTo(41960, -48184, -784);
 Engine.MoveTo(40344, -48264, -752);
 Engine.MoveTo(40344, -48760, -672);
 Engine.MoveTo(40200, -49592, -384);
 Engine.MoveTo(40088, -49880, -288);
 Engine.MoveTo(39672, -50472, -224);
 Engine.MoveTo(38776, -50968, 16);
 Engine.MoveTo(37992, -51208, 304);
 Engine.MoveTo(37112, -51224, 640);
 Engine.MoveTo(36872, -51224, 728);
 Engine.MoveTo(36664, -51128, 728);
 Engine.MoveTo(36680, -50728, 896);
 Engine.MoveTo(36680, -50504, 912);
 Engine.MoveTo(37176, -50136, 912);
 Engine.MoveTo(37912, -49496, 912);
 Engine.MoveTo(38184, -49016, 912);
 Engine.MoveTo(38456, -48264, 912);
 Engine.MoveTo(37656, -48232, 912);
 Engine.MoveTo(36728, -48216, 912);
 Engine.MoveTo(36328, -48104, 912);
 Engine.MoveTo(35928, -47752, 912);
 Engine.MoveTo(35928, -47064, 1072);
 Engine.MoveTo(35896, -46952, 1088);
 Engine.MoveTo(35640, -46920, 1160);
 Engine.MoveTo(35176, -46920, 1336);
 Engine.MoveTo(35000, -46920, 1408);
 Engine.MoveTo(34888, -46968, 1408);
 Engine.MoveTo(34904, -47528, 1560);
 Engine.MoveTo(34888, -47976, 1688);
 Engine.MoveTo(34872, -48168, 1728);
 Engine.MoveTo(34776, -48200, 1736);
 Engine.MoveTo(34280, -48216, 1792);
 Engine.MoveTo(33432, -48168, 1792);
 Engine.MoveTo(33048, -48184, 1792);
 while not engine.queststatus(241,17) do begin
   engine.settarget(31743);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
   engine.DlgSel(1);
   delay(500);
 end;
end;
if engine.queststatus(241,17) and not engine.queststatus(241,18) then begin //st17
 if not user.inrange(33000, -48200, 1792, 300) then begin
 while not user.inrange(44115, -50215, -784,300) do begin
  Teleport.TpRune;
 end;
 Engine.MoveTo(43928, -49704, -784);
 Engine.MoveTo(43848, -48968, -784);
 Engine.MoveTo(43608, -48328, -784);
 Engine.MoveTo(43368, -48184, -784);
 Engine.MoveTo(41960, -48184, -784);
 Engine.MoveTo(40344, -48264, -752);
 Engine.MoveTo(40344, -48760, -672);
 Engine.MoveTo(40200, -49592, -384);
 Engine.MoveTo(40088, -49880, -288);
 Engine.MoveTo(39672, -50472, -224);
 Engine.MoveTo(38776, -50968, 16);
 Engine.MoveTo(37992, -51208, 304);
 Engine.MoveTo(37112, -51224, 640);
 Engine.MoveTo(36872, -51224, 728);
 Engine.MoveTo(36664, -51128, 728);
 Engine.MoveTo(36680, -50728, 896);
 Engine.MoveTo(36680, -50504, 912);
 Engine.MoveTo(37176, -50136, 912);
 Engine.MoveTo(37912, -49496, 912);
 Engine.MoveTo(38184, -49016, 912);
 Engine.MoveTo(38456, -48264, 912);
 Engine.MoveTo(37656, -48232, 912);
 Engine.MoveTo(36728, -48216, 912);
 Engine.MoveTo(36328, -48104, 912);
 Engine.MoveTo(35928, -47752, 912);
 Engine.MoveTo(35928, -47064, 1072);
 Engine.MoveTo(35896, -46952, 1088);
 Engine.MoveTo(35640, -46920, 1160);
 Engine.MoveTo(35176, -46920, 1336);
 Engine.MoveTo(35000, -46920, 1408);
 Engine.MoveTo(34888, -46968, 1408);
 Engine.MoveTo(34904, -47528, 1560);
 Engine.MoveTo(34888, -47976, 1688);
 Engine.MoveTo(34872, -48168, 1728);
 Engine.MoveTo(34776, -48200, 1736);
 Engine.MoveTo(34280, -48216, 1792);
 Engine.MoveTo(33432, -48168, 1792);
 Engine.MoveTo(33048, -48184, 1792);
end;
 while not engine.queststatus(241,18) do begin
   engine.settarget(31742);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
   engine.DlgSel(1);
   delay(500);
 end;
end;
if engine.queststatus(241,18) and not engine.queststatus(241,19) then begin //st18
 while not user.inrange(147790, -56496, -2768,300) do begin
  Teleport.TpGoddard;
 end;
 Engine.MoveTo(148360, -56216, -2760);
 Engine.MoveTo(149016, -56376, -2768);
 Engine.MoveTo(149240, -56424, -2768);
 Engine.MoveTo(149912, -56904, -2960);
 Engine.MoveTo(150040, -57336, -2960);
 Engine.MoveTo(150104, -57864, -2960);
 while not engine.queststatus(241,19) do begin
   engine.settarget(31740);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
   engine.DlgSel(1);
   delay(500);
 end;
end;
if engine.queststatus(241,19) and not engine.queststatus(241,20) then begin //st19
while not Inventory.Quest.ByID(7677, item) do begin
   engine.settarget(31740);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
   engine.DlgSel(1);
   delay(500);
 end;
end;
/////////////////////////
end;
procedure chapter2;  // Precious Soul 2
var
item: TL2item;
begin
if Inventory.Quest.ByID(7677, item) then begin
 while not user.inrange(44115, -50215, -784,300) do begin
  Teleport.TpRune;
 end;
 Engine.MoveTo(43928, -49704, -784);
 Engine.MoveTo(43848, -48968, -784);
 Engine.MoveTo(43608, -48328, -784);
 Engine.MoveTo(43368, -48184, -784);
 Engine.MoveTo(41960, -48184, -784);
 Engine.MoveTo(40344, -48264, -752);
 Engine.MoveTo(40344, -48760, -672);
 Engine.MoveTo(40200, -49592, -384);
 Engine.MoveTo(40088, -49880, -288);
 Engine.MoveTo(39672, -50472, -224);
 Engine.MoveTo(38776, -50968, 16);
 Engine.MoveTo(37992, -51208, 304);
 Engine.MoveTo(37112, -51224, 640);
 Engine.MoveTo(36872, -51224, 728);
 Engine.MoveTo(36664, -51128, 728);
 Engine.MoveTo(36680, -50728, 896);
 Engine.MoveTo(36680, -50504, 912);
 Engine.MoveTo(37176, -50136, 912);
 Engine.MoveTo(37912, -49496, 912);
 Engine.MoveTo(38184, -49016, 912);
 Engine.MoveTo(38456, -48264, 912);
 Engine.MoveTo(37656, -48232, 912);
 Engine.MoveTo(36728, -48216, 912);
 Engine.MoveTo(36328, -48104, 912);
 Engine.MoveTo(35928, -47752, 912);
 Engine.MoveTo(35928, -47064, 1072);
 Engine.MoveTo(35896, -46952, 1088);
 Engine.MoveTo(35640, -46920, 1160);
 Engine.MoveTo(35176, -46920, 1336);
 Engine.MoveTo(35000, -46920, 1408);
 Engine.MoveTo(34888, -46968, 1408);
 Engine.MoveTo(34904, -47528, 1560);
 Engine.MoveTo(34888, -47976, 1688);
 Engine.MoveTo(34872, -48168, 1728);
 Engine.MoveTo(34776, -48200, 1736);
 Engine.MoveTo(34280, -48216, 1792);
 Engine.MoveTo(33432, -48168, 1792);
 Engine.MoveTo(33048, -48184, 1792);
 while not engine.queststatus(242,1) do begin
   engine.settarget(31742);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
   engine.DlgSel(1);
   delay(500);
 end;
end;
if engine.queststatus(242,1) and not engine.queststatus(242,2) then begin
 while not engine.queststatus(242,2) do begin
  engine.settarget(31743);
  delay(500);
  engine.dlgOpen;
  delay(500);
  engine.DlgSel('Quest');
  delay(500);
  delay(500);
  engine.DlgSel(1);
  delay(500);
  engine.DlgSel(1);
  delay(500);
  engine.DlgSel(1);
  delay(500);
  engine.DlgSel(1);
  delay(500);
  engine.DlgSel(1);
  delay(500);
 end;
end;
if engine.queststatus(242,2) and not engine.queststatus(242,3) then begin
 while not engine.queststatus(242,3) do begin
  engine.settarget(31744);
  delay(500);
  engine.dlgOpen;
  delay(500);
  engine.DlgSel('Quest');
  delay(500);
  delay(500);
  engine.DlgSel(1);
  delay(500);
 end;
end;
if engine.queststatus(242,3) and not engine.queststatus(242,4) then begin
 while not user.inrange(93137, -58245, -2832,300) do begin
  Teleport.TpScreams;
 end;
 Engine.MoveTo(94952, -59432, -2424);
 Engine.MoveTo(94984, -60152, -2432);
 Engine.MoveTo(95000, -60584, -2464);
 while not engine.queststatus(242,4) do begin
  engine.settarget(31751);
  delay(500);
  engine.dlgOpen;
  delay(500);
  engine.DlgSel('Quest');
  delay(500);
  delay(500);
  engine.DlgSel(1);
  delay(500);
 end;
end;
if engine.queststatus(242,4) and not engine.queststatus(242,5) then begin
 while not engine.queststatus(242,5) do begin
  engine.settarget(31752);
  delay(500);
  engine.dlgOpen;
  delay(500);
  engine.DlgSel('Quest');
  delay(500);
  delay(500);
  engine.DlgSel(1);
  delay(500);
  if user.target.dead then engine.canceltarget;
 end;
end;
if engine.queststatus(242,5) and not engine.queststatus(242,6) then begin
 while not engine.queststatus(242,6) do begin
   engine.settarget(31751);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
 end;
end;
if engine.queststatus(242,6) and not engine.queststatus(242,7) then begin
 while not user.inrange(85235, 16207, -3656,500) do begin
  Teleport.TpIvory;
 end;
 Engine.MoveTo(85400, 16488, -3624);
 Engine.MoveTo(85352, 16872, -3592);
 Engine.MoveTo(85368, 17384, -3496);
 Engine.MoveTo(85352, 17752, -3496);
 Engine.MoveTo(85368, 18760, -3680);
 Engine.MoveTo(85368, 19560, -3768);
 Engine.MoveTo(85384, 20056, -3768);
 Engine.MoveTo(85384, 20856, -3696);
 Engine.MoveTo(85384, 21368, -3608);
 Engine.MoveTo(85384, 21928, -3512);
 Engine.MoveTo(85384, 22504, -3496);
 Engine.MoveTo(85384, 23160, -3496);
 Engine.MoveTo(85432, 24008, -3624);
 Engine.MoveTo(85496, 24120, -3616);
 Engine.MoveTo(86056, 24424, -3576);
 Engine.MoveTo(86488, 24312, -3584);
 Engine.MoveTo(87288, 23976, -3536);
 Engine.MoveTo(87864, 23944, -3488);
 Engine.MoveTo(88280, 23944, -3504);
 Engine.MoveTo(89016, 23752, -3584);
 Engine.MoveTo(89656, 23608, -3584);
 Engine.MoveTo(90216, 23464, -3584);
 Engine.MoveTo(90760, 23528, -3592);
 Engine.MoveTo(91528, 23400, -3544);
 Engine.MoveTo(92088, 23304, -3408);
 Engine.MoveTo(93016, 23064, -3240);
 Engine.MoveTo(93976, 22872, -3112);
 Engine.MoveTo(94408, 22568, -2992);
 Engine.MoveTo(94872, 22392, -2896);
 Engine.MoveTo(95288, 22184, -2864);
 Engine.MoveTo(95352, 22136, -2864);
 while not engine.queststatus(242,7) do begin
   engine.settarget(30759);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
 end;
 
end;
if engine.queststatus(242,7) and not engine.queststatus(242,8) then begin
 while not user.inrange(85235, 16207, -3656,500) do begin
  Teleport.TpIvory;
 end;
 Engine.MoveTo(85400, 16360, -3648);
 Engine.MoveTo(85336, 17032, -3584);
 Engine.MoveTo(85336, 17544, -3496);
 Engine.MoveTo(85336, 19784, -3768);
 Engine.MoveTo(85352, 20984, -3680);
 Engine.MoveTo(85352, 21832, -3528);
 Engine.MoveTo(85352, 22664, -3496);
 Engine.MoveTo(85336, 23240, -3496);
 Engine.MoveTo(85336, 24024, -3632);
 Engine.MoveTo(85064, 24088, -3616);
 Engine.MoveTo(84856, 24008, -3568);
 Engine.MoveTo(84376, 24232, -3552);
 Engine.MoveTo(83640, 24264, -3552);
 Engine.MoveTo(82968, 24088, -3504);
 Engine.MoveTo(82056, 23848, -3520);
 Engine.MoveTo(81336, 23656, -3552);
 Engine.MoveTo(80312, 23272, -3552);
 Engine.MoveTo(79768, 22952, -3552);
 Engine.MoveTo(79032, 22248, -3536);
 Engine.MoveTo(78552, 21624, -3552);
 Engine.MoveTo(78168, 20760, -3552);
 Engine.MoveTo(77848, 19976, -3552);
 Engine.MoveTo(77640, 19112, -3600);
 Engine.MoveTo(77480, 17992, -3792);
 Engine.MoveTo(75656, 18568, -3744);
 Engine.MoveTo(74232, 18440, -3632);
 Engine.MoveTo(71592, 18360, -3664);
 Engine.MoveTo(70104, 18168, -3632);
 Engine.MoveTo(69880, 18120, -3648);
 while not engine.queststatus(242,8) do begin
   engine.settarget(30738);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
   engine.DlgSel(1);
   delay(500);
 end;
 
end;
if engine.queststatus(242,8) and not engine.queststatus(242,9) then begin
 while not user.inrange(85235, 16207, -3656,500) do begin
  Teleport.TpIvory;
 end;
 Engine.MoveTo(85400, 16488, -3624);
 Engine.MoveTo(85352, 16872, -3592);
 Engine.MoveTo(85368, 17384, -3496);
 Engine.MoveTo(85352, 17752, -3496);
 Engine.MoveTo(85368, 18760, -3680);
 Engine.MoveTo(85368, 19560, -3768);
 Engine.MoveTo(85384, 20056, -3768);
 Engine.MoveTo(85384, 20856, -3696);
 Engine.MoveTo(85384, 21368, -3608);
 Engine.MoveTo(85384, 21928, -3512);
 Engine.MoveTo(85384, 22504, -3496);
 Engine.MoveTo(85384, 23160, -3496);
 Engine.MoveTo(85432, 24008, -3624);
 Engine.MoveTo(85496, 24120, -3616);
 Engine.MoveTo(86056, 24424, -3576);
 Engine.MoveTo(86488, 24312, -3584);
 Engine.MoveTo(87288, 23976, -3536);
 Engine.MoveTo(87864, 23944, -3488);
 Engine.MoveTo(88280, 23944, -3504);
 Engine.MoveTo(89016, 23752, -3584);
 Engine.MoveTo(89656, 23608, -3584);
 Engine.MoveTo(90216, 23464, -3584);
 Engine.MoveTo(90760, 23528, -3592);
 Engine.MoveTo(91528, 23400, -3544);
 Engine.MoveTo(92088, 23304, -3408);
 Engine.MoveTo(93016, 23064, -3240);
 Engine.MoveTo(93976, 22872, -3112);
 Engine.MoveTo(94408, 22568, -2992);
 Engine.MoveTo(94872, 22392, -2896);
 Engine.MoveTo(95288, 22184, -2864);
 Engine.MoveTo(95352, 22136, -2864);
 while not engine.queststatus(242,9) do begin
   engine.settarget(30759);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
 end;
end;
if engine.queststatus(242,9) and not engine.queststatus(242,10) then begin // как будет перс для теста, переписать, пока и так работает.
 if not user.inrange(86488, -75912, -3464, 3000) then begin
 while not user.inrange(67989, -71937, -3728,500) do begin
  Teleport.TpVOS;
 end;
 Engine.MoveTo(69000, -72120, -3776);
 Engine.MoveTo(70152, -72760, -3776);
 Engine.MoveTo(71912, -73672, -3728);
 Engine.MoveTo(73608, -74600, -3536);
 Engine.MoveTo(74728, -74472, -3328);
 Engine.MoveTo(75704, -74408, -3184);
 Engine.MoveTo(77064, -74152, -3040);
 Engine.MoveTo(77752, -73192, -2992);
 Engine.MoveTo(77976, -72536, -2968);
 Engine.MoveTo(78728, -70968, -3488);
 Engine.MoveTo(80024, -71192, -3440);
 Engine.MoveTo(81192, -71384, -3424);
 Engine.MoveTo(82440, -71672, -3456);
 Engine.MoveTo(83400, -72296, -3472);
 Engine.MoveTo(84152, -72920, -3488);
 Engine.MoveTo(84936, -73576, -3600);
 Engine.MoveTo(86408, -73992, -3552);
 Engine.MoveTo(87416, -74232, -3520);
 Engine.MoveTo(87848, -74408, -3488);
 Engine.MoveTo(87160, -75160, -3480);
 Engine.MoveTo(86424, -75864, -3464);
 Engine.MoveTo(86040, -76216, -3456);
 Engine.MoveTo(85880, -76488, -3456);
 end;
 Engine.LoadZone(script.path+'VOS_Unicorn.zmap');
 engine.facecontrol(0, true);
 while not inventory.Quest.ByID(7595, item) or (item.count < 4) do delay(500);
 AttackDefense;
 Engine.MoveTo(85880, -76536, -3456);
 while not ValidNPC do delay(500);
 while inventory.Quest.ByID(7595, item) and (item.count > 0) do begin
   Target(31748);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
   if user.target.dead then engine.canceltarget;
   delay(500);
 end;
 
 
end;
if engine.queststatus(242,10) and not engine.queststatus(242,11) then begin
 if not user.inrange(86488, -75912, -3464, 3000) then begin
 while not user.inrange(67989, -71937, -3728,500) do begin
  Teleport.TpVOS;
 end;
 Engine.MoveTo(69000, -72120, -3776);
 Engine.MoveTo(70152, -72760, -3776);
 Engine.MoveTo(71912, -73672, -3728);
 Engine.MoveTo(73608, -74600, -3536);
 Engine.MoveTo(74728, -74472, -3328);
 Engine.MoveTo(75704, -74408, -3184);
 Engine.MoveTo(77064, -74152, -3040);
 Engine.MoveTo(77752, -73192, -2992);
 Engine.MoveTo(77976, -72536, -2968);
 Engine.MoveTo(78728, -70968, -3488);
 Engine.MoveTo(80024, -71192, -3440);
 Engine.MoveTo(81192, -71384, -3424);
 Engine.MoveTo(82440, -71672, -3456);
 Engine.MoveTo(83400, -72296, -3472);
 Engine.MoveTo(84152, -72920, -3488);
 Engine.MoveTo(84936, -73576, -3600);
 Engine.MoveTo(86408, -73992, -3552);
 Engine.MoveTo(87416, -74232, -3520);
 Engine.MoveTo(87848, -74408, -3488);
 Engine.MoveTo(87160, -75160, -3480);
 Engine.MoveTo(86424, -75864, -3464);
 Engine.MoveTo(86040, -76216, -3456);
 Engine.MoveTo(85880, -76488, -3456);
 end;
  while not engine.queststatus(242,11) do begin
   engine.settarget(31746);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.canceltarget;
   delay(500);
   engine.settarget(31747);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
 end;
end;
if engine.queststatus(242,11) then begin
 while not user.inrange(44083, -50161, -784,500) do begin
  Teleport.TpRune;
 end;
 Engine.MoveTo(43928, -49704, -784);
 Engine.MoveTo(43848, -48968, -784);
 Engine.MoveTo(43608, -48328, -784);
 Engine.MoveTo(43368, -48184, -784);
 Engine.MoveTo(41960, -48184, -784);
 Engine.MoveTo(40344, -48264, -752);
 Engine.MoveTo(40344, -48760, -672);
 Engine.MoveTo(40200, -49592, -384);
 Engine.MoveTo(40088, -49880, -288);
 Engine.MoveTo(39672, -50472, -224);
 Engine.MoveTo(38776, -50968, 16);
 Engine.MoveTo(37992, -51208, 304);
 Engine.MoveTo(37112, -51224, 640);
 Engine.MoveTo(36872, -51224, 728);
 Engine.MoveTo(36664, -51128, 728);
 Engine.MoveTo(36680, -50728, 896);
 Engine.MoveTo(36680, -50504, 912);
 Engine.MoveTo(37176, -50136, 912);
 Engine.MoveTo(37912, -49496, 912);
 Engine.MoveTo(38184, -49016, 912);
 Engine.MoveTo(38456, -48264, 912);
 Engine.MoveTo(37656, -48232, 912);
 Engine.MoveTo(36728, -48216, 912);
 Engine.MoveTo(36328, -48104, 912);
 Engine.MoveTo(35928, -47752, 912);
 Engine.MoveTo(35928, -47064, 1072);
 Engine.MoveTo(35896, -46952, 1088);
 Engine.MoveTo(35640, -46920, 1160);
 Engine.MoveTo(35176, -46920, 1336);
 Engine.MoveTo(35000, -46920, 1408);
 Engine.MoveTo(34888, -46968, 1408);
 Engine.MoveTo(34904, -47528, 1560);
 Engine.MoveTo(34888, -47976, 1688);
 Engine.MoveTo(34872, -48168, 1728);
 Engine.MoveTo(34776, -48200, 1736);
 Engine.MoveTo(34280, -48216, 1792);
 Engine.MoveTo(33432, -48168, 1792);
 Engine.MoveTo(33048, -48184, 1792);
 while engine.queststatus(242,11) do begin
   engine.settarget(31743);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
   
 end;
end;
////////////////////////////////////////////////
end;
procedure chapter3;  // Precious Soul 3
var
item: TL2item;
begin
if Inventory.Quest.ByID(7678, item) then begin
 while not user.inrange(147816, -56514, -2768,500) do begin
  Teleport.TpGoddard;
 end;
 Engine.MoveTo(147928, -56152, -2768);
 Engine.MoveTo(148488, -56200, -2768);
 Engine.MoveTo(149048, -56376, -2768);
 Engine.MoveTo(149272, -56488, -2760);
 Engine.MoveTo(149576, -56696, -2864);
 Engine.MoveTo(149896, -56952, -2960);
 Engine.MoveTo(150008, -57352, -2960);
 Engine.MoveTo(150104, -57816, -2960);
 Engine.MoveTo(150104, -57880, -2960);
 while Inventory.Quest.ByID(7678, item) do begin
   engine.settarget(31740);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
   engine.DlgSel(1);
   delay(500);
end;

 
end;
if engine.queststatus(246,1) and not engine.queststatus(246,2) then begin
 while not engine.queststatus(246,2) do begin
   engine.settarget(31741);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
end;
end;
if engine.queststatus(246,2) and not engine.queststatus(246,3) then begin
 while not user.inrange(67959, -71929, -3728,500) do begin
   Teleport.TpVOS;
 end;
 //to Piligrim
 Engine.MoveTo(68408, -72152, -3728);
 Engine.MoveTo(69032, -72472, -3776);
 Engine.MoveTo(70136, -72968, -3760);
 Engine.MoveTo(71528, -73576, -3752);
 Engine.MoveTo(72952, -74120, -3680);
 Engine.MoveTo(73736, -74408, -3504);
 Engine.MoveTo(74600, -74472, -3376);
 Engine.MoveTo(75512, -74408, -3200);
 Engine.MoveTo(76696, -74280, -3088);
 Engine.MoveTo(77464, -74264, -3024);
 Engine.MoveTo(77960, -74168, -3080);
 Engine.MoveTo(78328, -74360, -3224);
 Engine.MoveTo(78920, -75048, -3480);
 Engine.MoveTo(79384, -75736, -3672);
 Engine.MoveTo(79736, -76328, -3920);
 Engine.MoveTo(79896, -76808, -4000);
 Engine.LoadZone(script.path+'NoblessePiligrim.zmap');
 engine.facecontrol(0, true);
 while not inventory.Quest.ByID(7591, item) do begin
 if user.target = nil then Engine.DMoveTo(80488, -79192, -4032);
 delay(500); // вставить ID кольца.
 end;
 // вставить ID кольца.
 engine.facecontrol(0,false); ///////////
 //to Judge
 Engine.MoveTo(81544, -79496, -4032);
 Engine.MoveTo(82392, -79880, -3936);
 Engine.MoveTo(83192, -80040, -3728);
 Engine.MoveTo(83640, -80120, -3544);
 Engine.MoveTo(84408, -80456, -3504);
 Engine.MoveTo(85400, -80792, -3600);
 Engine.MoveTo(86280, -80760, -3696);
 Engine.MoveTo(87256, -79864, -3696);
 Engine.MoveTo(88056, -79032, -3696);
 Engine.MoveTo(89096, -78296, -3760);
 Engine.MoveTo(89656, -78088, -3776);
 Engine.LoadZone(script.path+'NoblesseJudge.zmap');
 engine.facecontrol(0, true);
 while not inventory.Quest.ByID(7592, item) do delay(500); // вставить ID кольца.
 AttackDefense; // придумать как фиксануть проверку на атаку
 
 
end;
if engine.queststatus(246,3) and not engine.queststatus(246,4) then begin
  while not user.inrange(147816, -56514, -2768,500) do begin
   Teleport.TpGoddard;
  end;
  Engine.MoveTo(148600, -56184, -2768);
  Engine.MoveTo(149224, -56424, -2768);
  Engine.MoveTo(149592, -56696, -2864);
  Engine.MoveTo(149896, -56920, -2960);
  Engine.MoveTo(149960, -57288, -2960);
  Engine.MoveTo(150088, -57656, -2960);
  Engine.MoveTo(150152, -57816, -2960);
  while not engine.queststatus(246,4) do begin
   engine.settarget(31741);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
   engine.DlgSel(2);
   delay(500);
end;
end;  
if engine.queststatus(246,4) and not engine.queststatus(246,5) then begin
 while not user.inrange(67959, -71929, -3728,500) do begin
   Teleport.TpVOS;
 end;
 Engine.MoveTo(69224, -72456, -3792);
 Engine.MoveTo(69976, -72776, -3776);
 Engine.MoveTo(70952, -73208, -3776);
 Engine.MoveTo(71832, -73576, -3744);
 Engine.MoveTo(73384, -74296, -3568);
 Engine.MoveTo(73976, -74504, -3472);
 Engine.MoveTo(75096, -74424, -3248);
 Engine.MoveTo(76104, -74392, -3152);
 Engine.MoveTo(76936, -74232, -3056);
 Engine.MoveTo(77688, -74216, -3040);
 Engine.MoveTo(78200, -74360, -3192);
 Engine.MoveTo(79272, -75048, -3552);
 Engine.MoveTo(80232, -77176, -4032);
 Engine.MoveTo(80408, -77736, -4032);
 Engine.MoveTo(81336, -78824, -4032);
 Engine.MoveTo(82264, -79704, -3968);
 Engine.MoveTo(83160, -79976, -3744);
 Engine.MoveTo(83688, -80056, -3536);
 Engine.MoveTo(84040, -80216, -3488);
 Engine.MoveTo(84584, -81160, -3504);
 Engine.MoveTo(84920, -82936, -3552);
 Engine.MoveTo(85320, -84664, -3552);
 Engine.MoveTo(86184, -85944, -3408);
 Engine.MoveTo(86648, -86344, -3192);
 Engine.MoveTo(87288, -86536, -2984);
 Engine.MoveTo(88168, -86424, -2840);
 Engine.MoveTo(89016, -86168, -2744);
 Engine.MoveTo(89208, -86984, -2752);
 Engine.MoveTo(88728, -87656, -2752);
 Engine.MoveTo(88488, -88456, -2760);
 Engine.MoveTo(88344, -88968, -2760);
 Engine.MoveTo(87704, -89192, -2704);
 Engine.MoveTo(87064, -89208, -2704);
 Engine.LoadZone(script.path+'NoblesseStuff.zmap');
 engine.facecontrol(0,true);
 while not inventory.Quest.ByID(7593, item) do delay(500);
 engine.facecontrol(0,false);
 AttackDefense;
end;
if engine.queststatus(246,5) and not engine.queststatus(246,6) then begin
  while not user.inrange(147816, -56514, -2768,500) do begin
   Teleport.TpGoddard;
  end;
  Engine.MoveTo(148392, -56200, -2760);
  Engine.MoveTo(148872, -56264, -2768);
  Engine.MoveTo(149256, -56424, -2760);
  Engine.MoveTo(149592, -56664, -2864);
  Engine.MoveTo(149880, -56888, -2960);
  Engine.MoveTo(149976, -57032, -2960);
  Engine.MoveTo(150040, -57432, -2960);
  Engine.MoveTo(150184, -57832, -2960);
  while not engine.queststatus(246,6) do begin
   engine.settarget(31741);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
  end;
end;
if engine.queststatus(246,6) and not engine.queststatus(246,7) then begin
  while not user.inrange(85279, 16107, -3656,500) do begin
   Teleport.TpIvory;
  end;
  while not user.inrange(85424, 16071, -1760,500) do begin  //go 4 floor
   engine.settarget(30727);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel(3);
   delay(500);
   engine.DlgSel(4);
   delay(500);
  end;
  while not Inventory.Quest.ByID(7679, item) do begin
   engine.settarget(30721);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
   engine.DlgSel(1);
   delay(500);
  end;
            
end;  
//////////////////////////////////
end;
procedure chapter4;  // Precious Soul 4
var
item: TL2item;
begin
if Inventory.Quest.ByID(7679, item) then begin
 while not user.inrange(147816, -56514, -2768,500) do begin
  Teleport.TpGoddard;
 end;
 Engine.MoveTo(148072, -56312, -2768);
 Engine.MoveTo(148392, -56232, -2760);
 Engine.MoveTo(148728, -56280, -2768);
 Engine.MoveTo(149016, -56424, -2768);
 Engine.MoveTo(149272, -56488, -2760);
 Engine.MoveTo(149624, -56696, -2864);
 Engine.MoveTo(149848, -56936, -2960);
 Engine.MoveTo(149944, -57112, -2960);
 Engine.MoveTo(149992, -57432, -2960);
 Engine.MoveTo(150024, -57720, -2960);
 Engine.MoveTo(150072, -57848, -2960);
end;
////////////
end;

 


begin
  chapter1;
  chapter2;
  chapter3;
  chapter4;
end.

 
// разная хуйня
// пофиксить отбивку через интерфейс.
Engine.LoadZone(script.path+'VOS_Unicorn.zmap');


if engine.queststatus(246,1) and not engine.queststatus(246,2) then begin
 while not user.inrange(84429, 147265, -3392,500) do begin
   Teleport.TpGiran;
 end;

end;

while not engine.queststatus(242,11) do begin
   engine.settarget(31743);
   engine.movetotarget(-100);
   engine.dlgOpen;
   delay(500);
   engine.DlgSel('Quest');
   delay(500);
   engine.DlgSel(1);
   delay(500);
end;

 

 

 

Edited by amita
Posted
On 4/3/2020 at 4:28 PM, l3g0las said:

hi, 

does anyone has a nobless quest script?

I have nobless quest script but it doesn't kill the raidboss for you.

 

Quote

hi, any script for TTs + this captcha

https://imgur.com/a/lSufgOl

I have TTs script with sound when a dialog appears so you have to be there to enter captcha.

 

Amita what is the name of the quest and where do I start it? I'll check the script.

  • 2 weeks later...
Posted (edited)

 

On 4/9/2020 at 7:22 AM, darknesscrysis said:

I have nobless quest script but it doesn't kill the raidboss for you.

 

I have TTs script with sound when a dialog appears so you have to be there to enter captcha.

 

Amita what is the name of the quest and where do I start it? I'll check the script.

Hi! Do u have still the captcha script? Becuase i need it. In this server a captcha appears when u are leveling. So it would be easier for me to check my pc when adrenaline replays a sound than checking my pc every minute for this annoying captcha.

 

 

Edited by elrey2
Posted

Here is the captcha script. You have to stop it and run it again for the sound to stop. You have to have a sound named 'beep.wav' in a folder 'sounds' in the adrenaline folder.

 

uses sysutils,classes;
var
alarm:boolean= false;

procedure OnPacket(ID, ID2: Cardinal; Data: Pointer; Size: Word);
begin
  if  (ID = 160)  and  (not alarm)  then alarm := true; 
end;

procedure doAlarm;
begin
  while true do
  begin
    if alarm then begin
      playsound(exepath+'\sounds\beep.wav');
      delay(2222);
    end;
    Delay(1111)
  end;
end;

begin
  script.newthread(@doAlarm);
  delay(-1);
end.

 

Posted
13 hours ago, darknesscrysis said:

Here is the captcha script. You have to stop it and run it again for the sound to stop. You have to have a sound named 'beep.wav' in a folder 'sounds' in the adrenaline folder.

 


uses sysutils,classes;
var
alarm:boolean= false;

procedure OnPacket(ID, ID2: Cardinal; Data: Pointer; Size: Word);
begin
  if  (ID = 160)  and  (not alarm)  then alarm := true; 
end;

procedure doAlarm;
begin
  while true do
  begin
    if alarm then begin
      playsound(exepath+'\sounds\beep.wav');
      delay(2222);
    end;
    Delay(1111)
  end;
end;

begin
  script.newthread(@doAlarm);
  delay(-1);
end.

 

Thank you dark for the answer. Unfortunately the script doesnt work for me. The captcha is like a trade/party window. See in the image below. Anyone have a captcha script for this? I need only a sound when the captcha appears

Captcha2.png

Posted

The above script works for tutorial windows. For trade chats you would only need to change the packet ID, so search for that. You don't need to ask for a whole other script when you already have one that you just need to modify for it to work.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



  • Posts

    • 🚀 Telonyx Contest Platform Telegram Native Giveaway & Contest System for Modern Communities 💎 White-Label • Self-Hosted • Telegram Mini App • Monetization Ready 🧠 Product Overview Telonyx Contest Platform is a production-ready Telegram Mini App system designed for running modern contests, giveaways and engagement campaigns directly inside Telegram. It replaces outdated bot-based mechanics with a fully interactive application experience — no commands, no chat spam, no external websites. Users interact with a clean, fast and mobile-first interface inside Telegram. ⚡ Core Experience Participants can: • 🚀 instantly join contests inside Telegram Mini App • 🎁 view prizes and participation rules • 📊 track real-time contest status • ✅ verify task completion automatically • 🏆 receive winner results and notifications • 💰 participate in free or paid campaigns Everything is fully native to Telegram. 🧩 Key Platform Capabilities 🎯 Contest Engine • advanced contest creation system • multiple winners and reward tiers • scheduled launches and auto-finish logic • contest duplication and templates • real-time participant tracking • flexible rule configuration 📱 Mini App Interface • modern Telegram Mini App UX • mobile-first optimized layout • fast loading and smooth transitions • participant counter & live status • prize showcase system • one-click participation flow 🔎 Task Verification System Automated validation of participation rules: • Telegram channel subscriptions • sponsor channel requirements • multi-channel verification logic • YouTube subscription checks • TikTok task validation ❌ Zero manual moderation required 🛡 Anti-Fraud & Security Layer • duplicate entry prevention • bot detection system • CAPTCHA integration • rule enforcement engine • participation integrity checks 🏆 Automated Winner Selection • fully automated draw system • transparent winner selection logic • instant result publishing • winner notification system • historical archive of all contests 💎 Telegram Stars Monetization • optional paid participation via Telegram Stars • native Telegram checkout integration • flexible entry pricing per campaign • direct monetization of engagement traffic 🌍 Multi-Language Architecture Built with localization in mind. Supported out of the box: • 🇬🇧 English • 🇷🇺 Russian • 🇺🇦 Ukrainian • 🇹🇷 Turkish • 🇪🇸 Spanish • 🇵🇹 Portuguese • ➕ extensible language system for custom localization All UI layers, notifications and admin panel can be fully translated per deployment. 🎯 Ideal Use Cases 🎮 Gaming Projects / Lineage II Servers • pre-launch hype campaigns • donation reward giveaways • VIP / premium account distribution • promo code campaigns • server opening events 🎥 Streamers & Creators • subscriber engagement campaigns • live stream giveaways • audience growth funnels • partnership promotions 🌐 Communities & Brands • automated engagement systems • viral marketing campaigns • audience retention mechanics 🏗 Architecture & Deployment • Telegram Mini App frontend • FastAPI backend architecture • PostgreSQL database layer • Redis caching system • Docker-based deployment • WebSocket real-time updates • REST API integration layer 📦 Self-hosted deployment — full control over infrastructure and data 🎨 White-Label & Customization Each installation can be fully customized: • complete UI/UX rebranding • project-specific visual identity • custom engagement mechanics • referral & viral systems • loyalty & progression systems • seasonal campaign modules • custom API integrations   💡 Why This Platform Traditional contest bots are limited, noisy and inefficient. Telonyx Contest Platform is a modern engagement layer for Telegram ecosystems — combining UX, automation and monetization in one system. ✔ Higher participation rate ✔ Lower friction ✔ Direct revenue via Telegram Stars ✔ Full control via self-hosted deployment 💼 Commercial Model • Single License (Self-Hosted Deployment) • White-Label Branding Rights • Optional Custom Development • Installation & Setup Service 📩 Contact For demo access, licensing details or custom implementation: @se1dhe @telonyx_dev  
    • https://discord.gg/acvqx9rbhy Added intelligent agent that reads scripts and config and provides infos to players regarding gameplay Like where to farm/max enchants etc etc   Added auto translate to En/ES/BR htmls without api
    • The core strength of Novproxy Perfectly unlock overseas AI large models: 100% pure residential IP, perfectly bypassing various strict risk controls such as ChatGPT, Claude, Midjourney, etc. This is an essential tool for parents to train AI on weekends and during work! Available in 195+ countries/regions worldwide: covering an extremely wide range. Whether it's setting up accounts for cross-border e-commerce, conducting overseas web crawling, or conducting network gray-scale tests, it can all be handled easily. Ultra-fast concurrency: Real residential network, stable and non-blocking, high-concurrency business can also run at full capacity.
    • Thanks for your comment. That's what I'm working on, but it takes a lot of planning and getting it to work. I hope I can pull it off. Right now, I'm working on the Party feature, and I'm also working on AI conversations focused solely on Lineage, meaning the AI will only talk about the game. We'll see how it goes. The idea is to develop the system so thoroughly that there are sieges and the Phantom Players are undetectable, making them seem as realistic as possible. I'm sorry, but I don't see it as a useful modification. I'm also doing modifications on request, so if you're interested, you can send me a PM.
    • Trader Feedback  0  0  0 Total Rating 0%  Status:Offline  Group:Members  Posts:29  Reputation:  Member No:245618  Days Won:0  Joined:04/06/2026    Gender:Not Telling    Country: Author Posted April 29 TG Support: https://t.me/buyingproxysup | Channel: https://t.me/buyingproxycom Discord support: #buyingproxy | Server: Join the BuyingProxy Discord Server!  Create your free account here
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..