Jump to content

Recommended Posts

Posted

Hello, 

I'd like to have an script for l2 classic to extract fragments at a determined level. 

What it would need is, when you hit the desired level, you need to be out of combat, extract fragment and then start attacking again. 

Capture-1.PNG

  • 2 weeks later...
Posted

I am trying to unravel this mystery by creating an alt + b buff script, I am stuck with this situation, according to the lines below in HTML I can see the other alt + b icons but when creating my scheme buff what is detected in the HTML is only two ('') empty and soon after action = "bypass 1874409986" ... being that the number after the bypass always changes I'm using the RegExp system is working correctly.

Bypass ('Mage') this command I find the Set Mage made by the server, but my 'Scheme Buff' is in this problem, with only the '' empty.
 I tried using the bypass command ('') but it had no effect whatsoever.

 

Quote

<table border=0 cellspacing=0 cellpadding=2 width=550>
                <tr>
                    <td width=115 align=left valign=top>
                        <table>
                        <tr>
                        <td width=115 align=left valign=top>
                        <font name="hs12" color="LEVEL">Personal buffs:</font>
                    </td>
                    <td width=300 align=center valign=top>
                        <button value="Create Scheme" action="bypass 1492358313" width=150 height=25 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF">
                    </td>
                </tr>
            </table>
            </td>
            </tr>
            <tr>
                <td width=265 align=left valign=top>
                    <table>
                    <tr>
                    <center>
                    <td width=120 height=30 valign=top align=center>
                    <table border=0 width=110 height=40 cellspacing=4 cellpadding=3 bgcolor=10100E>
                    <tr>
                    <td align=right valign=top>
                    <table border=0 cellspacing=0 cellpadding=0 width=32 height=32 background=Icon.skill1527>
                    <tr>
                    <td width=32 height=32 align=center valign=top>
                    <button value="  " action="bypass 1612491900" width=34 height=34 back=L2UI_CT1.ItemWindow_DF_Frame_Down fore=L2UI_CT1.ItemWindow_DF_Frame />
                </td>
            </tr>
            </table>
            </td>
            <td width=110 valign=top>
                <font name=hs9 color=FFFFFF>Mago</font>

            </td>
            <td width=30 align=center>
                <br>
                <button value="  " action="bypass 1874409986" width=32 height=32 back=L2UI_CT1.RadarMap_DF_OptionBtn_Down fore=L2UI_CT1.RadarMap_DF_OptionBtn />
            </td>
            </tr>
            </table>
            <br>
            </td>
            <td width=110 height=40 valign=top align=center></td>
            <td width=110 height=40 valign=top align=center></td>

 

  • 4 weeks later...
  • 2 weeks later...
Posted (edited)

a14fcd21fc9ae3e165d8eb987db704a7925.png

can someone give me this bot protection script? most of them are black one and i need to pick colorful one. if everyone works i could give a little bit of money. waiting for answers

@adr.bot

Edited by rageN1x
  • 4 weeks later...
Posted

HI @adr.bot gn. I've managed to set a script for alarm captcha in the server i'm playing:

 

uses
  SysUtils, Classes;
  
function SetForegroundWindow(hwnd: integer):boolean; stdcall; external 'user32.dll';


const
  // words / phrase to detect
  CaptchaTexts: array of string = ['=', 'Question:', '=', '?'];
  // play sound when detected (true - yes / false - no)
  CaptchaSound = true;
  // sound file name (in the Sounds folder)
  CaptchaSoundName = 'hp.wav';
  // highlight the desired window on the taskbar (true - yes / false - no)
  CaptchaFlashWindow = true;
  // move the window to the foreground (true - yes / false - no)
  CaptchaSetForegroundWindow = true;

procedure CaptchaThread(CaptchaTexts: array of string);
var
  a1, a2: integer;
  s1, s2: integer;
  EngineCustom: TL2Control;
  i, j: integer;
  Have: boolean;
  L: TStringList; 
  SoundPath: string;
begin
  SoundPath:= ExePath + 'Sounds\' + CaptchaSoundName;
  if (CaptchaSound) and (not FileExists(SoundPath)) then
  begin
    print('No sound file found. Path: ' + SoundPath);
    Script.Stop;
  end;

  while (true) do
  begin
    delay(1000);
    for i:= 0 to 100 do
    begin
      EngineCustom:= GetControlByIndex(i);    

      if (EngineCustom = nil) then
        break;
      if (EngineCustom.Status <> lsOnline) then
        continue;
        
      Have:= false;
      //print(EngineCustom.hlpText);
      //print(EngineCustom.CBTime);
      print(GetTickCount());
      print(EngineCustom.HlpTime);
      s1:=GetTickCount();
      s2:=EngineCustom.HlpTime;
      print(s1-s2);
       //engine.dlgtext.contains
       
      L:= TStringList.Create; // Create an object (list for strings) 
      L.Add(EngineCustom.hlpText);//(EngineCustom.hlpText); // Add the line to the
      L.Sort;
      //L.SaveToFile('C:/1.html'); // Save the list to the file 
      //L.Free;
      
      if (Pos('Question:', L.Text) > 0) and ((s1-s2) < 19000)then//L.Find('Question:', i) then//EngineCustom.hlpText.contains('Question:') then
        begin
          Have:= true;
          if (Have) then      
          begin
            L.Free;
            PlaySound(exepath+'\sounds\'+'PlayerAlarm'+'.wav');
            delay(5000);
          end;
          //PlaySound(exepath+'\sounds\'+'PlayerAlarm'+'.wav');
           if (user.target.dead) then begin
    while user.incombat do
    delay(1000);
    engine.autosoulshot(5789, true);
    engine.autotarget(2500);
    engine.attack;
    engine.pickup;
  end;
engine.restart; //restart to char select screen;
              engine.gamestart(0); //0 is char id
end
            
              
            end;
          end;
        end;


  
begin
  Script.NewThread(@CaptchaThread(CaptchaTexts));
end.

 

 

 

 

 

 

 

---------

 

 

Alarm works fine. And i added the last 2 lines (engine.restart) since once captcha window appears (tutorial window), if i relog the char, the captcha wont kick me and i can continue playing normally.

But what i dont know how to do, is once alarm sounds (something like...   if (Pos('Question:', L.Text) > 0) and ((s1-s2) < 19000)then//L.Find('Question:', i) ????

Make the char finish aggro mobs and once out of combat relog.

Posted
13 hours ago, iselladena said:

HI @adr.bot gn. I've managed to set a script for alarm captcha in the server i'm playing:

 

uses
  SysUtils, Classes;
  
function SetForegroundWindow(hwnd: integer):boolean; stdcall; external 'user32.dll';


const
  // words / phrase to detect
  CaptchaTexts: array of string = ['=', 'Question:', '=', '?'];
  // play sound when detected (true - yes / false - no)
  CaptchaSound = true;
  // sound file name (in the Sounds folder)
  CaptchaSoundName = 'hp.wav';
  // highlight the desired window on the taskbar (true - yes / false - no)
  CaptchaFlashWindow = true;
  // move the window to the foreground (true - yes / false - no)
  CaptchaSetForegroundWindow = true;

procedure CaptchaThread(CaptchaTexts: array of string);
var
  a1, a2: integer;
  s1, s2: integer;
  EngineCustom: TL2Control;
  i, j: integer;
  Have: boolean;
  L: TStringList; 
  SoundPath: string;
begin
  SoundPath:= ExePath + 'Sounds\' + CaptchaSoundName;
  if (CaptchaSound) and (not FileExists(SoundPath)) then
  begin
    print('No sound file found. Path: ' + SoundPath);
    Script.Stop;
  end;

  while (true) do
  begin
    delay(1000);
    for i:= 0 to 100 do
    begin
      EngineCustom:= GetControlByIndex(i);    

      if (EngineCustom = nil) then
        break;
      if (EngineCustom.Status <> lsOnline) then
        continue;
        
      Have:= false;
      //print(EngineCustom.hlpText);
      //print(EngineCustom.CBTime);
      print(GetTickCount());
      print(EngineCustom.HlpTime);
      s1:=GetTickCount();
      s2:=EngineCustom.HlpTime;
      print(s1-s2);
       //engine.dlgtext.contains
       
      L:= TStringList.Create; // Create an object (list for strings) 
      L.Add(EngineCustom.hlpText);//(EngineCustom.hlpText); // Add the line to the
      L.Sort;
      //L.SaveToFile('C:/1.html'); // Save the list to the file 
      //L.Free;
      
      if (Pos('Question:', L.Text) > 0) and ((s1-s2) < 19000)then//L.Find('Question:', i) then//EngineCustom.hlpText.contains('Question:') then
        begin
          Have:= true;
          if (Have) then      
          begin
            L.Free;
            PlaySound(exepath+'\sounds\'+'PlayerAlarm'+'.wav');
            delay(5000);
          end;
          //PlaySound(exepath+'\sounds\'+'PlayerAlarm'+'.wav');
           if (user.target.dead) then begin
    while user.incombat do
    delay(1000);
    engine.autosoulshot(5789, true);
    engine.autotarget(2500);
    engine.attack;
    engine.pickup;
  end;
engine.restart; //restart to char select screen;
              engine.gamestart(0); //0 is char id
end
            
              
            end;
          end;
        end;


  
begin
  Script.NewThread(@CaptchaThread(CaptchaTexts));
end.

 

 

 

 

 

 

 

---------

 

 

Alarm works fine. And i added the last 2 lines (engine.restart) since once captcha window appears (tutorial window), if i relog the char, the captcha wont kick me and i can continue playing normally.

But what i dont know how to do, is once alarm sounds (something like...   if (Pos('Question:', L.Text) > 0) and ((s1-s2) < 19000)then//L.Find('Question:', i) ????

Make the char finish aggro mobs and once out of combat relog.

function AggroCheck():boolean;
var
	i : integer;
begin
	result := false;
	if npclist.count = 0 then exit;
	for i := 0 to npclist.count -1 do
	begin
		if (npclist(i).target = user) or (npclist(i).atkoid = user.oid) then
		begin
			result := true;
			exit;
		end;
	end;
end;

 

Posted
12 minutes ago, iselladena said:

@adr.bot thank u very much. Should i add that part to the end keeping the "relog" part intact? or add a new function for relog affter aggrocheck?

My knowledge is pretty limited, but i'm trying lol.

ur alarm makes no sense, u need chose if u doing one script for all windows, or only for single window, now is half with get control, half with engine (current control)

  • 1 month later...
Posted

Hi guys,

 

Im trying to setup auto bishop res but its proving impossible, ive been able to have everything working on my bot bp in the party apart  from res/mass res, to use this skill do I need to write a script? Im confused

 

Thanks,

Posted
10 hours ago, fAkeN said:

Party heal-buff > Condition for target 1 > target dead

 

Hello,

 

Its not giving me a "dead" option it gives me "dead <" and "dead>", ive tried a few variations in  the value section next to the option but it doesnt seem to work, am i missing something?

 

Thanks

Posted (edited)

Hi Guys, 

 

Im now trying to configure my own scripts and figured starting with auto buffs and teleporting is a good place to start!!

 

With Gatekeeper it was easy to find the numbers needed to go in the DlgSel

 

Im having a problem with the buffer and the macro section, im able to open dlgesl 12 which is macro buffs but

my problem now is how do i select "Use on me" at the mage setting? is there a way of figuring what dlgsel I need to 

allocate or is it guesswork? or am I going the wrong way about this?

 

Pictures attached, 

 

Thanks, 

 

Screenshot_1.png

Screenshot_2.png

Edited by Zimoki

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...