• Log in or sign up for an account here: https://www.sythe.org/login

Help with a ess mining + banker script

  • Thread starter Thread starter frub
  • Start date Start date
F

frub

Guest
This is the script:

Code:
{.include SRL/SRL.scar}
{.include SRL/SRL/Skill/Mining.scar}
{.include SRL/SRL/misc/trade.scar}

{
"Stars, Hide your fires, Let not light see my black and deep desires.
The eye wink at the hand; Yet let that be, Which the eye fears when it
is done to see"
               Macbeth - Shakespeare
}


Const
   StartPlayer = 0;
   NumberOfUsers = 8;
   MinutesPerLoad = 5;
   Loads = 100;
   VersionNumber = '1.15';
   YourSRLSTATSID   = '';  // Stats ID.
   YourSRLSTATSPASS = ''; // Stats Pass.
   // SRL Stats are fun, register at:
   // http://www.stats.srl-forums.com/
   YourRCMASTER      = ''; // Remote Control Master.
   WizzyDebug = False;

Type
  AColor = Record
    Color: Integer;
    Amount: Integer;
End;

Var
   Colors: Array Of AColor;
Var
   Position : String;
   EssencePoint : Array [0..4] Of TPoint;
   MiningMark, Abyss, NOAbyss, AuburyText, AuburyDTM,
   RuneEssenceMined, PureEssenceMined, iMark, IdleMark, Aubs, MyMark, BankDTM: Integer;
   PortalBool : Boolean;
   NormalRandomsTime, FastRandomsTime, FindTalkTime, RespondTime: LongInt;

Procedure DeclarePlayers;

Begin
   HowManyPlayers:= NumberOfUsers;
   NumberOfPlayers( HowManyPlayers );
   CurrentPlayer := StartPlayer;
   Players[0].Name :='';
   Players[0].Pass :='';
   Players[0].Nick :='';
   Players[0].Loc :='Bank';
   Players[0].Active:=True;
   Players[0].Boolean1  := True;       // Is The Pick Equipped?
   Players[0].Boolean2 := False; // False for brightness Check Once.
   Players[0].String1 := '';   // Bank PIN, If any.

   Players[1].Name :='';
   Players[1].Pass :='';
   Players[1].Nick :='';
   Players[1].Loc :='Bank';
   Players[1].Active:=True;
   Players[1].Boolean1  := True;       // Is The Pick Equipped?
   Players[1].Boolean2 := False; // False for brightness Check Once.
   Players[1].String1 := '';   // Bank PIN, If any.

   Players[2].Name :='';
   Players[2].Pass :='';
   Players[2].Nick :='';
   Players[2].Loc :='Bank';
   Players[2].Active:=True;
   Players[2].Boolean1  := True;       // Is The Pick Equipped?
   Players[2].Boolean2 := False; // False for brightness Check Once.
   Players[2].String1 := '';   // Bank PIN, If any.

   Players[3].Name :='';
   Players[3].Pass :='';
   Players[3].Nick :='';
   Players[3].Loc :='Bank';
   Players[3].Active:=True;
   Players[3].Boolean1  := True;       // Is The Pick Equipped?
   Players[3].Boolean2 := False; // False for brightness Check Once.
   Players[3].String1 := '';   // Bank PIN, If any.

   Players[4].Name :='';
   Players[4].Pass :='';
   Players[4].Nick :='';
   Players[4].Loc :='Bank';
   Players[4].Active:=True;
   Players[4].Boolean1  := True;       // Is The Pick Equipped?
   Players[4].Boolean2 := False; // False for brightness Check Once.
   Players[4].String1 := '';   // Bank PIN, If any.

   Players[5].Name :='';
   Players[5].Pass :='';
   Players[5].Nick :='';
   Players[5].Loc :='Bank';
   Players[5].Active:=True;
   Players[5].Boolean1  := True;       // Is The Pick Equipped?
   Players[5].Boolean2 := False; // False for brightness Check Once.
   Players[5].String1 := '';   // Bank PIN, If any.

   Players[6].Name :='';
   Players[6].Pass :='';
   Players[6].Nick :='';
   Players[6].Active:=True;
   Players[6].Loc := 'Bank';
   Players[6].Boolean1  := True;       // Is The Pick Equipped?
   Players[6].Boolean2 := False; // False for brightness Check Once.
   Players[6].String1 := '';   // Bank PIN, If any.

   Players[7].Name :='';
   Players[7].Pass :='';
   Players[7].Nick :='';
   Players[7].Active:=True;
   Players[7].Loc := 'Bank';
   Players[7].Boolean1  := True;       // Is The Pick Equipped?
   Players[7].Boolean2 := False; // False for brightness Check Once.
   Players[7].String1 := '';   // Bank PIN, If any.

   Writeln( IntToStr ( NumberOfUsers ) + ' Players' );
End;

Function FindAuburyText: Boolean;  // FindTalk by Renax, but adepted.
var
  ExitCond, NoMoreYellow: Boolean;
  Yint, Xmin, diff, difflast, Xmax, XmidRec, Xmid: Integer;
  RawMenuText: string;
begin
  x := 0;
  y := 0;
  Xmid := 0;
  Xmin := 0;
  Xmax := 0;
  NoMoreYellow := False;
  if (FindColor(x, y, 65535, 10, 25, 511, 334)) and (not (FindColor(x, y, 65280, 220, 130, 290, 165))) then
  begin
    Result := False;
    if (not (FindBitmapMaskTolerance(AuburyText, x, y, 0, 0, 516, 338, 0, 40)))
      then
      Exit;
    if (FindColorSpiral(x, y, 65535, x - 10, y - 10, x + 10, y + 10)) then
    begin
      Wait(10);
      if (GetColor(x, y) = 65535) then
      begin
        Status('Spotted aubury text');
        Wait(10);
        NoMoreYellow := False;
        Yint := 0;
        repeat
          Yint := Yint + 1;
          y := y + Yint;
          x := 0;
          repeat
            ExitCond := False;
            x := x + 1;
            Xmin := x;
            if (GetColor(x, y) = 65535) then
              ExitCond := True;
            if (x > 500) then
            begin
              x := 0;
              ExitCond := True;
              NoMoreYellow := True;
            end;
          until (ExitCond);
          ExitCond := False;
          x := 520;
          while (NoMoreYellow = False) and (ExitCond = False) do
          begin
            x := x - 1;
            Xmax := x;
            if (GetColor(x, y) = 65535) then
              ExitCond := True;
          end;
          diff := (Xmax - Xmin);
          if (diff > difflast) and (diff > 25) then
          begin
            XmidRec := ((diff / 2) + Xmin);
          end;
          difflast := diff;
        until (NoMoreYellow)
          x := XmidRec;
        MMouse(x, y + 6, 3, 0);
        Wait(100);
        ColorToleranceSpeed(1);
        if IsUpTextMulti('Talk', 'lk-to', 'to')  Then
        begin
          GetMousePos(x, y);
          Mouse(x, y + 6, 0, 0, False);
          if (ChooseOptionGetMenuText(RawMenuText, x, y, 'Teleport')) then
          begin
            Status('Found Aubury')
            FFlag(1);
            Wait(1000 + Random(500))
            Result := True;
            Exit;
          end;
        end;
      end;
    end;
  end;
end;

{--------------------------------------------------------

Function FindFastRandoms: Boolean;    // By WT-Fakawi.

FindFastRandoms is a quicker version of FindNormalRandoms.
It does not include ALL the Anti-Randoms though.

--------------------------------------------------------}

Function FindFastRandoms: Boolean;    // By WT-Fakawi.
var
  i: Integer;
begin
  for i:=1 to 10 do
  begin
    case I of
       1:  If FindDead then
             Result := True;
       2:  If FindMod then
             Result := True;
       3:  If FindMime then
             Result := True;
       4:  If FindMaze then
             Result := True;
       5:  If FindQuiz then
             Result := True;
       6:  If FindDemon then
             Result := True;
       7:  if NoGameTab then
             begin
               Result := True;
               Players[CurrentPlayer].loc := 'No GameTab';
               Logout;
               Exit;
             end;
       8 : If RC Then Result := True;

       9: If FindTalk Then Result := True;

       10: If HandleTrade Then Result := True;
    End;
    Wait(1);
  end;
end;

// New Randoms Checking.

Function ScanMiniMap(iFrom, iTo, Distance: Integer): Integer;

Var
   I, iX,iY: Integer;
Begin
  For I := iFrom To ITo Do
  Begin
    iX := Round(Distance * Sin(I * Pi / 180)) + 648;
    iY := Round(-Distance * Cos(I * Pi / 180)) + 80;
    If GetColor(iX, iY) = 0 Then
    Begin
      Result := Result + 1;
    End;
  End;
End;

Function FindNormalRandomsTimeEx: Boolean;

Var
  TempTime, Time1, Time2: LongInt;

Begin
  TempTime := GetSystemTime;
  If TempTime - NormalRandomsTime > 6000 Then
  Begin
    NormalRandomsTime := GetSystemTime;
    Time1 := GetSystemTime;
    Result := FindNormalRandoms;
    Time2 := GetSystemTime;
    Status('Calling FNRandoms; Took '+IntToStr(Time2-Time1)+'.');
    Exit;
  End;

  If TempTime - FastRandomsTime > 2000 Then
  Begin
    FastRandomsTime := GetSystemTime;
    Time1 := GetSystemTime;
    Result := FindFastRandoms;
    Time2 := GetSystemTime;
    Status('Calling FFRandoms; Took '+IntToStr(Time2-Time1)+'.');
    Exit;
  End;

  If TempTime - FindTalkTime > 500 Then
  Begin
    FindTalkTime := GetSystemTime;
    Time1 := GetSystemTime;
    Result := FindTalk;
    Time2 := GetSystemTime;
    Status('Calling FT; Took '+IntToStr(Time2-Time1)+'.');
    Exit;
  End;

  If TempTime - RespondTime > 1000 Then
  Begin
    RespondTime := GetSystemTime;
    Time1 := GetSystemTime;
  //  Respond;
    Time2 := GetSystemTime;
    Status('Calling RP; Took '+IntToStr(Time2-Time1)+'.');
    Exit;
  End;

End;

Function InAbyss: Boolean;

Var
   A : Integer;

Begin
  A := ScanMiniMap(0, 359, 50);
  Status('In Abyss gave '+IntToStr(A)+'.');
  If A = 360 Then
  Begin
    WriteLn('We are in the Abyss random.');
    Result := True;
  End
End;

Function GuessAbyssRandom: Boolean;

Var
   AbyssalMark, iX, iY, I, ChosenColor, Tol, Tries: Integer;
   WeirdColors: Array [0..3] Of Integer;
   Operate: TPoint;
Begin
  WeirdColors[0] := 13751777;
  WeirdColors[1] := 4953873;
  WeirdColors[2] := 2509833;
  Repeat
    Case Random(4) Of
      0: Begin Operate.X := 252; Operate.Y := 150; End;
      1: Begin Operate.X := 278; Operate.Y := 170; End;
      2: Begin Operate.X := 238; Operate.Y := 200; End;
      3: Begin Operate.X := 215; Operate.Y := 166; End;
    End;

    For I := 0 To 2 Do
    Begin
      Tol := 0;
      Repeat
        Tol := Tol + 1;
        iX := MSCX;
        iY := MSCY;
        If FindColorSpiralTolerance(iX, iY, WeirdColors[i], MSX1, MSY1, MSX2, MSY2, Tol) Then
        Begin
          ChosenColor := WeirdColors[i];
          If (Distance (iX, iY, MSCX, MSCY) < 120) Then Break;
        End;
        If ChosenColor <> 0 Then Break;
      Until Tol > 9;
    End;

    If ChosenColor <> 0 Then
    Begin
      MMouse(iX, iY, 0, 0);
      Wait(100);
      If IsUpText('perate') Then
      Begin
        GetMousePos(iX, iY);
        Mouse(iX, iY, 0, 0, True);
      End;
    End;

    Wait(5000+Random(500));
    If Not InAbyss Then
    Begin
      Abyss := Abyss + 1;
      ReportVars[8] := ReportVars[8] + 1;
      Result := True;
      Wait(1000);
      ClickToContinue;
      SRLRandomsReport;
      Exit;
   End;
    Tries := Tries + 1;
    If TimeFromMark(AbyssalMark) > 60000 * 5 Then Break;
  Until Tries > 30;

   Tries := 0;
   If InAbyss Then
   Begin
    Repeat
      Case Random(4) Of
        0: Begin Operate.X := 252; Operate.Y := 150; End;
        1: Begin Operate.X := 278; Operate.Y := 170; End;
        2: Begin Operate.X := 238; Operate.Y := 200; End;
        3: Begin Operate.X := 215; Operate.Y := 166; End;
      End;
      iX := Operate.X;
      iY := Operate.Y;
      If FindColorSpiralTolerance(iX, iY, 3393, MSX1, MSY1, MSX2, MSY2, Tol)
      Or FindColorSpiralTolerance(iX, iY, 2040150, MSX1, MSY1, MSX2, MSY2, Tol) Then
      Begin
        If (Distance (iX, iY, MSCX, MSCY) < 80) Then
        Begin
          MMouse(iX, iY, 0, 0);
          Wait(100);
          If IsUpText('perate') Then
          Begin
            GetMousePos(iX, iY);
            Mouse(iX, iY, 0, 0, True);
            Wait(5000+ Random(500));
            If Not InAbyss Then
            Begin
              Abyss := Abyss + 1;
              ReportVars[8] := ReportVars[8] + 1;
              Result := True;
              ClickToContinue;
              SRLRandomsReport;
              Exit;
            End;
          End;
        End;
      End;
      Tries := Tries + 1;
      Tol := Tol + 2;
      If Tol > 20 Then Tol := 2;
    Until Tries > 50;
  End;
  LogOut;
  NOAbyss := NOAbyss + 1;
  ReportVars[9] := ReportVars[9] + 1;
  Players[CurrentPlayer].Loc := 'Abyss';
  SRLRandomsReport;
  WriteLn('Abyss Random Event.');
End;

Function GetUpTextBlue:String;

Begin
  Result := Trim(GetTextAtEx(7, 7, 140, upchars, true,
  true, 0, 2, 14277634, 50, True, tr_AllChars));
End;

Function IsUpTextBlue(Text: String): Boolean;

Begin
  Result := (Pos(Text, GetUpTextBlue) <> 0)
End;

Function OpenVarrockEastBank: Boolean;

Var
   x, y, T: Integer;

Begin
  FFlag(0);
  Wait(500 + Random (500));
  ColorToleranceSpeed(0)
  x := 250 + Random(20);
  y := 210 + Random(20);
  If FindColorSpiralTolerance(x, y, 2970721, MSX1, MSY1, MSX2, MSY2, 19) Then
  Begin
    MMouse(x, y, 0, 0);
    Wait(100+Random(150));
    ColorToleranceSpeed(1);
    If IsUpText('ank') Then
    Begin
      Mouse(x, y, 0,0, False);
      Wait(50);
      If ChooseOption(x, y, 'uick') Then
      Begin
        T := GetSystemTime;
        Repeat
          If BankScreen Then Break;
          Wait(100);
        Until GetSystemTime - T >  6000;
        Result := BankScreen;
        ColorToleranceSpeed(1);
        Exit;
      End;
    End;
  End;
  ColorToleranceSpeed(1);
End;

Function FindEssence(Var iX, iY: Integer): Boolean;

Var
  I, Tolerance : Integer;
Begin
  If Not LoggedIn Then Exit;
  For I := 0 To 2 Do
  Begin
    Tolerance := - 1;
    While Tolerance < 10 Do
    Begin
      Tolerance := Tolerance + 1;
      iX := EssencePoint[i].X;
      iY := EssencePoint[i].Y;
      If FindColorSpiralTolerance(iX, iY, 9539996, MSX1, MSY1, MSX2, MSY2, Tolerance) Then
      Begin
        If Distance(iX, iY, EssencePoint[i].X, EssencePoint[i].Y) < 80 Then
        Begin
          MMouse(iX, iY, 0, 0);
          Wait(100);
          If IsUpTextBlue('ssen') Then
          Begin
            GetMousePos(iX, iY);
            Result := True;
            Status('Found Essence');
            Exit;
          End;
        End;
      End;
    End;
  End;
  WriteLn('Did not find any essence..');
End;

Function WeirdMiddle(TPA: TpointArray): TPoint;

Var
  L, I: Integer;
Begin
  L := GetArrayLength(TPA) - 1;
  For I := 0 To L Do
  Begin
    Result.X := Result.X + TPA[i].X;
    Result.Y := Result.Y + TPA[i].Y;
  End;
  Try
  Result.X := Round(Result.X Div GetArrayLength(TPA));
  Result.Y := Round(Result.Y Div GetArrayLength(TPA));
  Except WriteLn('Error in WeirdMiddle'); End;
End;


Function AtMine: Boolean;

Var
  iX, iY: Integer;

Begin
  Result := FindColoredAreaTolerance(iX, iY, 0, MMX1, MMY1, MMX2, MMY2, 100, 0);
End;

Function UsePortal: Boolean;

Var
   Count: Integer;
   Portal: TPoint;
   PortalTPA: TPointArray;

Begin
  If Not AtMine Then
  Begin
    Result := True;
    Exit;
  End
  ColorToleranceSpeed(2);
  Repeat
    FindColorsTolerance(PortalTPA, 11059142, MSX1, MSY1, MSX2, MSY2, 9);
    WriteLn(IntToStr(GetArrayLength(PortalTPA)));
    Wait(50);
    Count := Count + 1;
    If Count > 100 Then Break;
  Until GetArrayLength(PortalTPA) > 80;
  ColorToleranceSpeed(1);
  If Not Count > 100 Then
  Begin
    WriteLn('Portal Popped up');
    Portal := WeirdMiddle(PortalTPA);
    MMouse(Portal.X, Portal.Y, 0, 0);
  GetMousePos(Portal.X, Portal.Y);
  Wait(100+Random(50));
  If IsUpText('ort') Then
    Result := True;
  End;
End;

Function ToPortal: Boolean;

Var
  iX, iY, C : Integer;
  Boolie : Boolean;
Begin
  If Not LoggedIn Then Exit;
  If Not AtMine Then
  Begin
    Result := True;
    Exit;
  End
  If FindSymbol(iX, iY, 'transportation') Then
  Begin
    Mouse(iX, iY, 2, 2, True);
    Wait(10);
    FFlag(0);
    FindNormalRandoms;
    iX := MSCX;
    iY := MSCY;
    Repeat
      If Random(4) = 3 Then
        Boolie := True;
      If Boolie Then
      Begin
        Case Random(3) Of
          0: MakeCompass('E');
          1: MakeCompass('S');
          2: MakeCompass('W');
        End;
      End;
      Wait(50);
      C := C + 1;
      If Not AtMine Then
      Begin
        Result := True;
        Exit;
      End
      If UsePortal Then
      Begin
        GetMousePos(iX, iY);
        Mouse(iX, iY, 0, 0, True);
        Wait(10);
        Result := True;
        FFlag(0);
        Exit;
      End Else WriteLn('No Portal');
      If Not AtMine Then
      Begin
        Result := True;
        Exit;
      End
      If FindObj(iX, iY, 'rtal', 10731205, 15) Then
      Begin
        Mouse(iX, iY, 0, 0, True);
        Wait(10);
        Result := True;
        FFlag(0);
        Exit;
      End Else WriteLn('No Portal');
      Wait(1000);
    Until C > 4;
  End;
End;

Function RunToPortal: Boolean;

Begin
  MarkTime(iMark);
  Repeat
    If Not LoggedIn Then Break;
    If (TimeFromMark(iMark) > 120000) Then
    Begin
      If WizzyDebug Then WriteLn('Portal Took too long..logging');
      LogOut;
      Players[CurrentPlayer].Loc := 'Portal';
    End;
    If ToPortal Then
    Begin
      FFlag(0);
      Wait(6000);
    End
    Else Wait(100);
  Until Not AtMine;
  Result := True;
  PortalBool := True;
End;

Function HighestBrightNess: Boolean;

Begin
  GameTab(11);
  Wait(400);
  If GetColor(712, 226) <> 16777215 Then
  Begin
    Mouse(712, 226, 2, 2, True);
    Result := True;
    Wait(200);
  End;
End;

Function GetMiddle:String;

Var
   Ex, Ey: Integer;
Begin
  If Not LoggedIn Then Exit;

  If ScanMiniMap(330, 380, 55) < 35 Then
  Begin
    Result := 'MiddleSW';
    Status(Result);
    ReportVars[4] := ReportVars[4] + 1;
    Ex := 610; // 605
    Ey := 120; // 116
    EssencePoint[0].X := 170;
    EssencePoint[0].Y := 240;
    EssencePoint[1].X := 190;
    EssencePoint[1].Y := 290;
    EssencePoint[2].X := 200;
    EssencePoint[2].Y := 223;
  End
  Else
  Begin
    Result := 'MiddleNE';
    Status(Result);
    ReportVars[3] := ReportVars[3] + 1;
    Ex := 690;
    Ey := 30;
    EssencePoint[0].X := 360;
    EssencePoint[0].Y := 40;
    EssencePoint[1].X := 450;
    EssencePoint[1].Y := 100;
    EssencePoint[2].X := 390;
    EssencePoint[2].Y := 30;
  End;
  Mouse(Ex, Ey, 2, 2, True);
  Wait(10);
  FFlag(0);
  Wait(100);
End;

Function GetPositionInMine: String;

Begin
  MakeCompass('N');
  If Not LoggedIn Then Exit;
  If Not FindSymbol(x, y, 'transportation') Then
  Begin
    Result := GetMiddle;
    Exit;
  End;

  If ScanMiniMap(220, 240, 60) < 15 Then
  Begin
    Result := 'North-East';
    ReportVars[5] := ReportVars[5] + 1;
    EssencePoint[0].X := 340;
    EssencePoint[0].Y := 61;
    EssencePoint[1].X := 295;
    EssencePoint[1].Y := 50;
    EssencePoint[2].X := 395;
    EssencePoint[2].Y := 120;
    Status(Result);
    Exit;
  End;

  If ScanMiniMap(125, 155, 60) < 20 Then
  Begin
    Result := 'North-West';
    ReportVars[6] := ReportVars[6] + 1;
    EssencePoint[0].X := 140;
    EssencePoint[0].Y := 115;
    EssencePoint[1].X := 18;
    EssencePoint[1].Y := 70;
    EssencePoint[2].X := 120;
    EssencePoint[2].Y := 150;
    Status(Result);
    Exit;
  End;

  If ScanMiniMap(285, 325, 60) < 25 Then
  Begin
    Result := 'South-East';
    ReportVars[7] := ReportVars[7] + 1;
    EssencePoint[0].X := 350;
    EssencePoint[0].Y := 160;
    EssencePoint[1].X := 337;
    EssencePoint[1].Y := 210;
    EssencePoint[2].X := 362;
    EssencePoint[2].Y := 125;
    Status(Result);
    If (ScanMiniMap(140, 170, 55) <> 31) Then
      Exit;
  End;

  Result := 'South-West';
  ReportVars[2] := ReportVars[2] + 1;
  EssencePoint[0].X := 190;
  EssencePoint[0].Y := 60;
  EssencePoint[1].X := 146;
  EssencePoint[1].Y := 94;
  EssencePoint[2].X := 285;
  EssencePoint[2].Y := 54;
  Status(Result);

End;

Function SpotAubury: Boolean;
                                    // 10855856, 3005947, 2998011
Var
  iX, iY, C: Integer;

Begin
  Repeat
    CloseWindow;
    Wait(50);
    If FindAuburyText Then
    Begin
      Result := True;
      Break;
    End;
    iX := MSCX;
    iY := MSCY;
    If AtMine Then
    Begin
      Result := True;
      Exit;
    End;
    If FindColorSpiralTolerance(iX, iY, 2998011, MSX1, MSY1, MSX2, MSY2, 4)
    Or FindColorSpiralTolerance(iX, iY, 1888494, MSX1, MSY1, MSX2, MSY2, 4) Then
    Begin
      MMouse(iX, iY, 0, 0);
      Wait(100);
      If IsupTextMulti('Talk','bury','alk-to') Then
      Begin
        Status('Aubury Found..Right Clicking now.');
        Mouse(iX, iY, 0, 0, False);
        Result := ChooseOption(iX, iY, 'eleport');
        If Result Then Exit;
      End;
    End;
    C := C + 1;
  Until C > 5;
  Wait(500);

  If Not LoggedIn Then Exit;
End;

Function OpenDoor: Boolean;

Var
  x, y: Integer;
Begin
  ColorToleranceSpeed(2);
  If FindObj(x, y, 'oor', 4813698, 19) Then
  Begin
    GetMousePos(x, y);
    Wait(100);
    If IsUpText('pen') Then
    Begin
      Mouse(x, y, 0, 0, True);
      Result := True;
      WriteLn('Door Found and Opened');
      Wait(50);
      FFlag(0);
    End
    Else Result := IsUpText('lose');
  End;
  ColorToleranceSpeed(1);
End;

Function ToBank: Boolean;

Var
   iX, iY, DoorMark, C: Integer;
   AngleVar : Extended;

Begin
  MarkTime(DoorMark);
  SetRun(True);
  Repeat
    Mouse(680, 30, 4, 4, True);
    Wait(100);
    If FlagDistance < 40 Then
    Begin
      Mouse(MMCX, MMCY, 4, 4, True);
      OpenDoor;
      Wait(3000);
      FFlag(0);
      OpenDoor;
    End
    Else
    Begin
//      Wait(7000);
      Wait(6000);
      FFlag(0);
      Break;
    End;
    If TimeFromMark(DoorMark) > 240000 Then
    Begin
      LogOut;
      Players[CurrentPlayer].Loc := 'DoorMark > 240000';
    End;
    If Not LoggedIn Then Break;
  Until False;

  If Not LoggedIn Then Exit;
  C := 0;
  Repeat
    C := C + 1;
    If FindDTMRotated(BankDTM, iX, iY, MMX1, MMY1, MMX2, MMY2, -1.0, 2.0, 1, AngleVar) Then
    Begin
      Result := True;
      Mouse(iX, iY + 1, 0, 0, True);
      Wait(3000);
      FFlag(0);
      Break;
    End
    Else
    Begin
      If C > 19 Then
      Begin
        LogOut;
        Players[CurrentPlayer].Loc := 'ToBank2';
        WriteLn('Bank not found');
        Break;
      End;
    End;
    MakeCompass('N');
    Wait(1000);
  Until C > 20;
End;


Function ToAubury: Boolean;

Var
  x, y, AubMark: Integer;
  Angle: Extended;

Begin

  If Not Players[CurrentPlayer].Boolean2 Then
  Begin
    HighestBrightness;
    Players[CurrentPlayer].Boolean2 := True;
    //SetRun(True);
  End;
  SetRun(False);
  If Not LoggedIn Then Exit;
  Mouse(663, 142, 6, 6, True);
  Wait(15000+Random(4000));
  FFlag(0);
  MarkTime(AubMark);
  Repeat
    If FindDTMRotated(AuburyDTM, x, y, MMX1, MMY1, MMX2, MMY2,
       -Radians(35), Radians(35), 0.05, Angle) Then
    Begin
      Mouse(x, y, 0, 0, True);
      GetMousePos(x, y);
      Wait(100);
      FFlag(0);
      Result := True;
      If LoggedIn Then Players[CurrentPlayer].Loc := 'Aubury';
      Exit;
    End;
  Until TimeFromMark(AubMark) > 60000;
End;

Function ToMine: Boolean;

Var
   zMark, iX, iY: Integer;
Begin
  MarkTime(zMark);
  Repeat
    FindNormalRandomsTimeEx;
    If (TimeFromMark(zMark) > 240000) Then
    Begin
      WriteLn('Aubury Took too long..logging');
      LogOut;
      Players[CurrentPlayer].Loc := 'AuburyNF';
    End;
    If Random(10) = 1 Then OpenDoor;
    If SpotAubury Then
    Begin
      FFlag(0);
      Wait(4000);
    End
    Else
    Begin
      Wait(100);
      ChooseOption(iX, iY, 'ancel');
    End;

    If Not LoggedIn Then Break;
  Until AtMine;

  Result := True;
  If LoggedIn Then Players[CurrentPlayer].Loc := 'Mine';
End;

Function MyOpenBank: Boolean;

Var
   C, iX, iY: Integer;
   Angle: Extended;

Begin
  Repeat
    C := C + 1;
    If OpenVarrockEastBank Then
    Begin
      Result := True;
      Exit;
    End;
    OpenBankGlass('veb',False,False);
    FFlag(0);
    Wait(2000);
    If BankScreen Or PinScreen Then
    Begin
      Result := True;
      If PinScreen Then InPin(Players[CurrentPlayer].String1);
      Exit;
    End;
    If FindDTMRotated(BankDTM, iX, iY, MMX1, MMY1, MMX2, MMY2, -1.0, 2.0, 0.05, Angle) Then
    Begin
      Mouse(iX, iY, 0, 0, True);
      Wait(3000);
      FFlag(0);
    End
  //  If OpenBankQuiet('veb') Then Result := True;
    If PinScreen Then InPin(Players[CurrentPlayer].String1);
  Until (C > 4);
End;


Function BankStuff: Boolean;

Var
  RuneEss, PureEss: Integer;
Begin
  If Not BankScreen Then Exit;
  RuneEss := BitmapFromString(8, 12, 'z78DA8DCD3112C3200C44D1' +
       '2BE1B02B9B1288B9FF91222315149107EFCCAFF4B08037BB584F0' +
       'E0E6F9143D724EBAC5F79BE0F1BABF7DDCEB25374B3925858BCC1' +
       '3BBC78E82AA1DBB07EBFAAC8DA3D3130BC1B8A191DFD8F8A6C424' +
       '57515D945E1C685D35564973FA23DD4D48ED5ABACDB560092CED4' +
       'BB9DF73F7ACE7D1F');
  PureEss := BitmapFromString(11, 10, 'z78DAA5CF490E03211003C' +
       '02FB1B56D8E0CCBFF9F1492CC012962B2B5251F4B6E451616192B' +
       'ABC8CEA62CC771F6A120AFA638D39594B213841C342F27151536A' +
       '6994110F214A59DB9D1783032FCE39018E8CCF474BF693434B48F' +
       '9C555B1CBAF98A185050BED0963DE8B8DFA3DF689BEF90E1670EA' +
       '4994F9C65D5D38159B736596763AB5D3A362C5B46B46AF5D4AE57' +
       'BD3837C02891A6');
  RuneEssenceMined := RuneEssenceMined + CountItemBmpTol(RuneEss, 15);
  PureEssenceMined := PureEssenceMined + CountItemBmpTol(PureEss, 15);
  ReportVars[1] := ReportVars[1] + 1;
  ReportVars[0] := CountItemBmpTol(RuneEss, 15) + CountItemBmpTol(PureEss, 15);
  Players[CurrentPlayer].Integer1 := Players[CurrentPlayer].Integer1 + CountItemBmpTol(PureEss, 15) + CountItemBmpTol(RuneEss, 15);
  ClickAllItemsBmpTolWait('All', RuneEss, 15, 1500);
  ClickAllItemsBmpTolWait('All', PureEss, 15, 1500);
  If EquipPick Then Deposit(1, 28, 2)
  Else Deposit(2, 28, 2);
  FreeBitMap(RuneEss);
  FreeBitMap(PureEss);
  If BankScreen Then CloseBank;
  Players[CurrentPlayer].Banked := Players[CurrentPlayer].Banked + 1;
  Banks := Banks + 1;
  Result := True;
End;

Procedure PlayerReport;

Var
  Active: String;
  I:Integer;

Begin
  For I  :=  0 to HowManyPlayers - 1 Do
   Begin
     If Players[i].Active=True Then Active := 'T' Else Active := 'F';
     WriteLn( (IntToStr(I))+' : '+Players[i].nick+ ' = '+
     Active+ +'; Loc = '+Players[i].Loc+'; Banked: '+IntToStr(Players[i].Integer1)
     +' Ess; M lvl:'+IntToStr(Players[i].Level[15]));
   End;
End;

Procedure CurrentPlayerReport;

Begin
  WriteLn('----------------------------------------------')
  WriteLn(Players[CurrentPlayer].Name+'.');
  WriteLn('Mined ' + IntToStr(Players[CurrentPlayer].Integer1) + ' Essence.');
  WriteLn('Mining level is ' + IntToStr(Players[CurrentPlayer].Level[15]));
  WriteLn('Location is ' + Players[CurrentPlayer].Loc+ '.');
  WriteLn('----------------------------------------------')
End;

Procedure ProgressReport;

Begin
  WriteLn('----------------------------------------------')
  WriteLn('')
  WriteLn('Essence Miner by Wizzup?.')
  WriteLn('Version: '+VersionNumber)
  WriteLn('')
  If RuneEssenceMined > 0 Then WriteLn('Rune Essence Mined and Banked : '+IntToStr(RuneEssenceMined)+'.');
  If PureEssenceMined > 0 Then WriteLn('Pure Essence Mined and Banked : '+IntToStr(PureEssenceMined)+'.');
  If Abyss > 0 Then WriteLn('Solved '+IntToStr(Abyss)+' Abyssal Random Events.');
  If NOAbyss > 0 Then WriteLn('Missed '+IntToStr(NoAbyss)+' Abyssal Random Events.');
  Writeln('Worked for '+ TimeRunning);
  WriteLn('')
  WriteLn('----------------------------------------------')
  WriteLn('')
  PlayerReport;
  CurrentPlayerReport;
  SRLRandomsReport;
End;

Procedure ClearVars;

Var
  I : Integer;
Begin
  For I := 1 To 19 Do
  ReportVars[i] := 0;
End;

Procedure DoChats;

Begin
  SetChat('On', 1);
  SetChat('On', 1);
  SetChat('Friends', 2);
  SetChat('Friends', 2);
  SetChat('Friends', 3);
  SetChat('Friends', 3);
End;

Procedure RandomGameTab;

Var
   A: Integer;
Begin
  A := Random(10) + 1;
  If A = 4 Then
  Begin
    GameTab(2);
    HoverSkill('mining', False);
  End
  Else GameTab(a);
  GameTab(4);
End;

Procedure SetupScript;

Begin
  ClearDebug;
  ActivateClient;
  Wait(100);
  SetupSRL;
  SetupSRLMining;
  AuburyDTM := DTMFromString('78DA63AC666260C86140016FDF3230FC07D28' +
       'C40FC1F08188B816AD420724C486AB8A06A4080B18308353544A8' +
       '6920AC0600A21C11F8');

  BankDTM:= DTMFromString('78DA636C666260486140016FDEBC61F80FA41' +
       '981F83F1030B603D5E4A0AA79FB96814103AA060418EB816AB251' +
       'D57CFD8AAA0600B6210EA4');

 // SetupSRLAutoResponder;
  DeclarePlayers;
  MouseSpeed := 5;
  Rcmaster := YourRCMASTER;
  RcLoc := 'Bank';
  ScriptID := '51';
  ClearVars;
  SRLID := YourSRLstatsID;
  SRLPassword := YourSRLstatsPASS;
  CurrentPlayer := StartPlayer;
  LoginPlayer;
  Wait(1000);
  DoChats;
  EquipPick := Players[CurrentPlayer].Boolean1;
  AuburyText := CreateBitmapMaskFromText('isthine', upchars);
  BenMouse := True;
  HighestAngle;
  MakeCompass('N');
  GetAllLevels;
End;

Function ToEssence: Boolean;

Begin
  If FindEssence(X, Y) Then
  Begin
    Mouse(X, Y, 0, 0, True);
    Wait(10);
    FFlag(0);
    Result := True;
  End
  Else
  Begin
    RunToPortal;
  End;
End;

begin
  ActivateClient;
  SetupScript;
  Repeat
    MakeCompass('N');
    If Players[CurrentPlayer].Loc = 'Bank' Then
    Begin
      Aubs := 0;
      ToAubury;
    End;

    If Players[CurrentPlayer].Loc = 'Aubury' Then
    Begin
      SetRun(True);
      ToMine;
    End;

    If Players[CurrentPlayer].Loc = 'Mine' Then
    Begin
      Wait(500);
      If InAbyss Then
      Begin
        GuessAbyssRandom;
        BoredHuman;
      End;
      Wait(1000);
      FindNormalRandoms;
      SymbolAccuracy := 0.4;
      Position := GetPositionInMine;
      WriteLn('Our position is '+ Position+'.');
      ToEssence;
      MarkTime(IdleMark);
      MarkTime(MiningMark);
      Repeat
        If Not LoggedIn Then Break
        If PortalBool Then Break;

        If TimeFromMark(IdleMark) > (40000+Random(5000)) Then
        Begin
          Status('Gametabs to avoid logging out.');
          RandomGametab;
          GameTab(4);
          MarkTime(IdleMark);
        End;
        FindNormalRandomsTimeEx;
        If FindFight Then
        Begin
          RunToPortal;
          WriteLn('Going to Portal, FindFight.');
          Break;
        End;

        Wait(50);
      Until ((InvFull) Or (TimeFromMark(MiningMark) > 1000 * 60 * MinutesPerLoad));

      If Not PortalBool Then
      Begin
        MarkTime(iMark);
        Repeat
          If Not LoggedIn Then Break;
          If (TimeFromMark(iMark) > 120000) Then
          Begin
            WriteLn('Portal Took too long..logging');
            LogOut;
            Players[CurrentPlayer].Loc := 'Portal';
          End;
          If ToPortal Then
          Begin
            FFlag(0);
            Wait(3000);
          End
          Else Wait(100);
        Until Not AtMine;
      End;

      WriteLn('Through The portal');
      Wait(2000 + Random(500));
      MakeCompass('N');
      SymbolAccuracy := 0.8;
      PortalBool := False;
      If LoggedIn Then Players[CurrentPlayer].Loc := 'ToBank';
      If InventoryCount <> 28 Then
      Begin
        Players[CurrentPlayer].Loc := 'Aubury';
        If Aubs <> 0 Then WriteLn(IntToStr(Aubs) + ' Aubs');
        Aubs := Aubs + 1;
      End
      Else Aubs := 0;
      If Aubs > 9 Then
      Begin
        LogOut;
        //TerminateScript;
        WriteLn('9 times and still no ess. stopping player');
        Players[CurrentPlayer].Loc := 'TooManyAubs';
      End;
    End;

    If Players[CurrentPlayer].Loc = 'ToBank' Then
    Begin
      Wait(500);
      ToBank;
      MyOpenBank;
      BankStuff;
      If LoggedIn Then Players[CurrentPlayer].Loc := 'Bank';
    End;

    ProgressReport;
    If ( LoggedIn And (Players[CurrentPlayer].Banked Mod Loads = 0 ) And (Players[CurrentPlayer].Banked <> 0) ) Then
    Begin
      MarkTime(MyMark);
      SetChat('off',1);
      Repeat
        FindNormalRandomsTimeEx;
        Wait(10);
        If TimeFromMark(MyMark) > 240000 Then Begin Logout; Break; End;
      Until Not LoggedIn;
      Wait(1000);
      NextPlayer(True);
      EquipPick := Players[CurrentPlayer].Boolean1;
      DoChats;
      SetRun(True);
      FindPickHeadColor;
      GetAllLevels;
    End;

    If Not LoggedIn Then
    Begin
      NextPlayer(False);
      DoChats;
      EquipPick := Players[CurrentPlayer].Boolean1;
      SetRun(True);
      FindPickHeadColor;
      GetAllLevels;
    End;
  Until False;
  FreeDTM(BankDTM);
end.program New;
begin
end.


and the error is
Line 53: [Error] (15817:12): Unknown identifier 'BOOLEAN1' in script
 
Runescape Gamblingrunescape gambling
Back
Top