need help with ess miner

Discussion in 'Scar/Simba Help' started by Jawarrior, Jan 1, 2009.

need help with ess miner
  1. Unread #1 - Jan 1, 2009 at 3:06 PM
  2. Jawarrior
    Joined:
    Dec 31, 2008
    Posts:
    4
    Referrals:
    0
    Sythe Gold:
    0

    Jawarrior Newcomer

    need help with ess miner

    here it is


    --------------------------------------------------------------------------
    program EssMiner;
    {.include SRL/SRL.scar}
    {.include SRL/SRL/Skill/Mining.scar}
    {.include SRL/SRL/misc/trade.scar}

    {

    FOR SRL 4.

    "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;
    NumOfPlayers = 8;
    MinutesPerLoad = 5;
    Loads = 10;
    VersionNumber = '1.16';
    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
    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
    NumberOfPlayers(NumOfPlayers);
    CurrentPlayer := StartPlayer;

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

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

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

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

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

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

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

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

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

    Function FindAuburyText: Boolean; // FindTalk by Renax, but adepted.
    var
    ExitCond, NoMoreYellow: Boolean;
    Yint, Xmin, diff, difflast, Xmax, XmidRec, Xmid, x, y: 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 12 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;
    11: If SolveChatRandom Then Result := True;
    12: ClickToContinue;
    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) = 65536 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, MSX1, MSY1, MSX2, MSY2, Tol) Then
    Begin
    ChosenColor := WeirdColors;
    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('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.X;
    iY := EssencePoint.Y;
    If FindColorSpiralTolerance(iX, iY, 9539996, MSX1, MSY1, MSX2, MSY2, Tolerance) Then
    Begin
    If Distance(iX, iY, EssencePoint.X, EssencePoint.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.X;
    Result.Y := Result.Y + TPA.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, 65536, 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;

    Var
    x, y: Integer;

    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('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].Booleans[1] Then
    Begin
    HighestBrightness;
    Players[CurrentPlayer].Booleans[1] := 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: 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('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].Strings[0]);
    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].Strings[0]);
    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].Integers[0] := Players[CurrentPlayer].Integers[0] + CountItemBmpTol(PureEss, 15) + CountItemBmpTol(RuneEss, 15);
    ClickAllItemsBmpTolWait(RuneEss, 'All', 15, 1500);
    ClickAllItemsBmpTolWait(PureEss, 'All', 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.Active=True Then Active := 'T' Else Active := 'F';
    WriteLn( (IntToStr(I))+' : '+Players.nick+ ' = '+
    Active+ +'; Loc = '+Players.Loc+'; Banked: '+IntToStr(Players.Integers[0])
    +' Ess; M lvl:'+IntToStr(Players.Level[15]));
    End;
    End;

    Procedure CurrentPlayerReport;

    Begin
    WriteLn('----------------------------------------------')
    WriteLn(Players[CurrentPlayer].Name+'.');
    WriteLn('Mined ' + IntToStr(Players[CurrentPlayer].Integers[0]) + ' 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 := 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;
    SetupMining;
    AuburyDTM := DTMFromString('78DA63AC666260C86140016FDF3230FC07D28' +
    'C40FC1F08188B816AD420724C486AB8A06A4080B18308353544A8' +
    '6920AC0600A21C11F8');

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

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

    Function ToEssence: Boolean;

    Var
    x, y: Integer;

    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 InvCount <> 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].Booleans[0];
    DoChats;
    SetRun(True);
    FindPickHeadColor;
    GetAllLevels;
    End;

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






    *This is the message i get

    Failed when compiling
    Line 189: [Error] (17602:4): Unknown identifier 'IsUpTextMulti' in script C:\Users\Jesse\Desktop\Rune Essence Miner\SRL Essence Miner SRL4 #6.scar
     
  3. Unread #2 - Jan 1, 2009 at 5:14 PM
  4. kingstun
    Joined:
    Dec 31, 2008
    Posts:
    40
    Referrals:
    0
    Sythe Gold:
    0

    kingstun Member

    need help with ess miner

    The script is out dated.
    If you want a proper script use Wizzup?'s Ess Miner.
     
< Reading text from a different game client. | My Script isnt WORKING... >

Users viewing this thread
1 guest


 
 
Adblock breaks this site