Lokren Posted November 20, 2018 Posted November 20, 2018 var Buff:Tl2Buff; item:TL2Item; const //TEXT for invite inviteText = 'beniz45cm'; function SetForegroundWindow(hwnd: integer) : Boolean; stdcall; external 'user32.dll'; function captcha:boolean; begin if engine.dlgtext.contains('Refresh') or engine.dlgtext.contains('Captcha') or engine.dlgtext.contains('60 seconds') or engine.dlgtext.contains('Bot') then begin SetForegroundWindow(Engine.GameWindow); PlaySound(exepath+'\sounds\'+'PlayerAlarm'+'.wav'); delay(2500); StopSound; end; end; function CheckDeath(Obj: TL2Live = nil): boolean; begin if (Obj = nil) then Obj:= User; result:= false; if (Obj.Dead) then begin result:= true; Engine.FaceControl(0, false); while (User.Dead) and delay(999) do Engine.GoHome; delay(5555); end; end; function HaveAgroMobs(): boolean; var i: integer; begin result:= false; for i:= 0 to NpcList.Count-1 do begin if (IsAgr(NpcList(i))) then begin result:= true; exit; end; end; end; function IsAgr(Mob: TL2Npc): boolean; begin result:= (Mob.AtkOID = User.OID) and (not Mob.Dead); end; procedure checkbuff; begin CheckDeath(); if not (User.Buffs.ByID(1323, buff)) or (buff.EndTime < 300000) then begin print('NEED REBUFF '); delay(10000); Engine.BypassToServer('_bbshome', True); delay(500); Engine.BypassToServer('_bbsgetfav', True); delay(500); Engine.BypassToServer('_bbsbuffer', True); delay(500); Engine.BypassToServer('_bbsbufferbypass_giveBuffSet figher 0 0', True); if (User.Buffs.ByID(1323, buff)) and (buff.EndTime < 300000) then print('REBUFF DONE'); delay(1500); end; end; procedure restock; begin CheckDeath(); // IF SS less then 1000 if (inventory.user.byid(1464, item) and (item.count<1000)) then begin //3951 id of SSC print('RESTOCK SS'); Engine.FaceControl(0, false); delay(1000); if (HaveAgroMobs) then begin print('Killing aggro mobs'); Engine.FaceControl(0, true); while (HaveAgroMobs) do delay(10); Engine.FaceControl(0, false); while (User.InCombat) do delay(555); end; // PORT to town Engine.bypasstoserver('_bbshome', true); delay(500); Engine.BypassToServer('_bbsgetfav', True); delay(500); Engine.BypassToServer('_bbsgatekeeper', True); delay(500); Engine.BypassToServer('13', True); delay(3500); // OPEN GM SHOP if user.InRange(-44683, -113079, -224,10000) then begin // XYZ of ORC Village engine.bypasstoserver('_bbshome', true); delay(500); engine.bypasstoserver('_bbsgetfav', true); delay(500); engine.bypasstoserver('_bbsfile:smallNpcs/gmshop', true); delay(500); engine.bypasstoserver('110', true); delay(500); Engine.NPCExchange (1464, 25000); // Buy SSC print('RESTOCK BSSS DONE'); delay(1000); Engine.BypassToServer('_bbshome', True); delay(500); Engine.BypassToServer('_bbsgetfav', True); delay(500); Engine.BypassToServer('_bbsgatekeeper', True); delay(500); Engine.BypassToServer('19', True); delay(3500); end; end; // IF MP pots less then 50 if (inventory.user.byid(728, item) and (item.count<50)) then begin // 728 id of mp pot // while user.incombat do delay(1000); print('RESTOCK MP'); Engine.FaceControl(0, false); delay(1000); if (HaveAgroMobs) then begin print('Killing aggro mobs'); Engine.FaceControl(0, true); while (HaveAgroMobs) do delay(10); Engine.FaceControl(0, false); while (User.InCombat) do delay(555); end; // PORT to town Engine.BypassToServer('_bbshome', True); delay(500); Engine.BypassToServer('_bbsgetfav', True); delay(500); Engine.BypassToServer('_bbsgatekeeper', True); delay(500); Engine.BypassToServer('13', True); delay(3500); // OPEN GM SHOP if user.InRange(-44683, -113079, -224,10000) then begin // XYZ of ORC Village engine.bypasstoserver('_bbshome', true); delay(500); engine.bypasstoserver('_bbsgetfav', true); delay(500); engine.bypasstoserver('_bbsfile:smallNpcs/gmshop', true); delay(500); engine.bypasstoserver('1c', true); delay(500); Engine.NPCExchange (728, 500); //buy mp pot print('RESTOCK MP POTS DONE'); delay(1000); Engine.BypassToServer('_bbshome', True); delay(500); Engine.BypassToServer('_bbsgetfav', True); delay(500); Engine.BypassToServer('_bbsgatekeeper', True); delay(500); Engine.BypassToServer('19', True); delay(3500); end; end; end; begin delay(500); //load settings | Change name or comment Engine.LoadConfig(exepath+'\Settings\'+'branded'+'.xml'); delay(500); while true do begin restock(); checkbuff(); delay(1000); Engine.FaceControl(0,false); if User.InRange (81062, 148144, -3456, 20000) then begin // Giran restock(); print('PORT Branded'); Engine.BypassToServer('_bbshome', True); delay(500); Engine.BypassToServer('_bbsgetfav', True); delay(500); Engine.bypasstoserver('_bbsgatekeeper'); delay(500); Engine.BypassToServer('_bbsgatekeeper_main-26.htm', True); delay(500); Engine.BypassToServer('11', True); end; // Start Branded if User.InRange(46480, 170227, -4960, 500) then begin print('ROOM 0'); Engine.FaceControl(0,false); checkdeath(); restock(); checkbuff(); delay(1000); Engine.MoveTo(47352, 170280, -4960); Engine.MoveTo(47352, 171336, -4960); print('ROOM 1'); end; while User.InRange(47112, 171576, -4960, 1150) do begin Engine.loadzone('branded1'); Engine.FaceControl(0,true); delay(1000); if user.target.dead then begin delay(1000); if user.target.dead then begin delay(1000); if user.target.dead then begin delay(1000); checkdeath(); restock(); checkbuff(); delay(1000); Engine.MoveTo(47096, 171704, -4960); Engine.MoveTo(47096, 172232, -4960); Engine.MoveTo(47096, 172776, -4960); Engine.MoveTo(47528, 172808, -4960); Engine.MoveTo(47576, 173240, -4960); Engine.MoveTo(48296, 173272, -4960); print('ROOM 2'); end; end; end; end; while User.InRange(48488, 173560, -4960, 900) do begin Engine.loadzone('branded2'); Engine.FaceControl(0,true); delay(1000); if user.target.dead then begin delay(1000); if user.target.dead then begin delay(1000); if user.target.dead then begin delay(1000); checkdeath(); restock(); checkbuff(); Engine.FaceControl(0,false); delay(1000); Engine.MoveTo(48456, 173976, -4960); Engine.MoveTo(48456, 174616, -4960); Engine.MoveTo(49016, 174616, -4960); Engine.MoveTo(49496, 174616, -4960); print('ROOM 3'); end; end; end; end; while User.InRange(49752, 174264, -4960, 1100) do begin Engine.loadzone('branded3'); Engine.FaceControl(0,true); delay(1000); if user.target.dead then begin delay(1000); if user.target.dead then begin delay(1000); if user.target.dead then begin delay(1000); checkdeath(); restock(); checkbuff(); Engine.FaceControl(0,false); delay(1000); Engine.MoveTo(49912, 173880, -4960); Engine.MoveTo(50648, 173864, -4960); Engine.MoveTo(50872, 173752, -4960); Engine.MoveTo(50936, 172856, -4960); print('ROOM 4'); end; end; end; end; while User.InRange(51176, 172584, -4960, 900) do begin Engine.loadzone('branded4'); Engine.FaceControl(0,true); delay(1000); if user.target.dead then begin delay(1000); if user.target.dead then begin delay(1000); if user.target.dead then begin delay(1000); checkdeath(); restock(); checkbuff(); Engine.FaceControl(0,false); delay(1000); Engine.MoveTo(50872, 172216, -4960); Engine.MoveTo(50872, 171400, -4960); Engine.MoveTo(51176, 171272, -4960); Engine.MoveTo(51176, 170408, -4960); print('ROOM 5'); end; end; end; end; while User.InRange(51192, 170312, -4960, 450) do begin Engine.loadzone('branded5'); Engine.FaceControl(0,true); delay(1000); if user.target.dead then begin delay(1000); if user.target.dead then begin delay(1000); if user.target.dead then begin delay(1000); checkdeath(); restock(); checkbuff(); Engine.FaceControl(0,false); delay(1000); Engine.MoveTo(50888, 170312, -4960); Engine.MoveTo(50088, 170280, -4960); Engine.MoveTo(49720, 170264, -4960); print('ROOM 6'); end; end; end; end; while User.InRange(49496, 170296, -4960, 800) do begin Engine.loadzone('branded6'); Engine.FaceControl(0,true); delay(1000); if user.target.dead then begin delay(1000); if user.target.dead then begin delay(1000); if user.target.dead then begin delay(1000); checkdeath(); restock(); checkbuff(); Engine.FaceControl(0,false); delay(1000); Engine.MoveTo(48904, 170296, -4960); Engine.MoveTo(48216, 170296, -4960); Engine.MoveTo(48184, 170600, -4960); Engine.MoveTo(47464, 170632, -4960); Engine.MoveTo(47336, 171192, -4960); print('ROOM 1'); end; end; end; end; end; end. Script for branded catacombs. Put maps and xml files in folder Settings. Change bypasses for your server. Tested on http://l2mercury.com/ . On servers with different teleport then l2mercury, may need some changes. Download: https://www.mediafire.com/file/ihwdyx6wumq9v37/branded.rar How to check bypasses for my server? - https://www.youtube.com/watch?v=ZQHZm4p_LO8&feature=youtu.be 2
Xevk Posted November 20, 2018 Posted November 20, 2018 very good script , its working thank you very much
iOllie Posted November 20, 2018 Posted November 20, 2018 Keep it going my boy <3 thanks for the share
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now