Results 1 to 6 of 6

Thread: Please help me, i get error in a script

  1. #1
    Join Date
    Oct 2007
    Posts
    6
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default Please help me, i get error in a script

    I need a tutorial Island runner, i have found one, but its get an error when i hit play :
    [Runtime Error] : Exception: '<' is not a valid integer value in line 2816 in script C:\Documents and Settings\Eier\Mine dokumenter\Woodcutting - Scar\1 - Tutorial Island\Tutorial Runner.Pub.0.59.scar

    I have searched in the forums and found some treads it was writing about this, but it was not said how to fix it. Can someone help me?

    SCAR Code:
    {=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
    |           Nielsie95's Tutorial Island Runner              |
    |=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
    |                                                           |
    |        Will run the Tutorial Island for you               |
    |                                                           |
    |        Has all Skills and Character maker =]              |
    |                                                           |
    |=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
    |                      Copyright notice                     |
    |=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
    |                                                           |
    | ©2007, Nielsie95                                          |
    | Parts © Smartzkid                                         |
    | Parts used under permission from Infantry100              |
    |                                                           |
    |=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
    |                       Terms of Use                        |
    |=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
    |                                                           |
    | You may not redistribute this script, or any modified     |
    | form of it by any means.                                  |
    |                                                           |
    | You may not attempt to bypass this scripts protection by  |
    | any means, accidental or intentional                      |
    |                                                           |
    | All perpetrators will be punished by maximum extent       |
    | allowable by law                                          |
    |                                                           |
    |=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
    |                                                           |
    |    Setup your players and hit Run!                        |
    |                                                           |
    |=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
    |                                                           |
    |      VERSION 0.59 by HellBoy                              |
    |    Changes Made to fully utilise for SRL 4.0              |
    |                                                           |
    |                                                           |
    |      VERSION 0.58 by HellBoy                              |
    |    Utilize for more stable running                        |
    |                                                           |
    |                                                           |
    |      VERSION 0.57 by HellBoy                              |
    |    Changes Made to fully utilise for SRL 4.0 Beta         |
    |                                                           |
    |                                                           |
    |      VERSION 0.56 by HellBoy                              |
    |    Added ClickToContinue2 function mostly won't depend    |
    |    SRL Library for some procedure                         |
    |                                                           |
    |                                                           |
    |      VERSION 0.55 by HellBoy                              |
    |    Added SetRunz and Compass function mostly won't depend |
    |    SRL Library for some procedure                         |
    |    Changes some bitmap declare to check on NPC text only  |
    |                                                           |
    |                                                           |
    |      VERSION 0.54 by HellBoy                              |
    |    Changes of DTM Declare for bow in inventory slot       |
    |    Add in Loggedin2 procedure instead of SRL Library      |
    |    Changes to Gametabs due to changes of new gametabs     |
    |                                                           |
    |                                                           |
    |      VERSION 0.53 by HellBoy                              |
    |    Changes of DTM Declare for item in inventory slot      |
    |    instead of BitMap Declaralation                        |
    |                                                           |
    |                                                           |
    |      VERSION 0.52 by HellBoy                              |
    |    Changes of QuestGuide Procedure on access gametabs     |
    |                                                           |
    |                                                           |
    |      VERSION 0.51 by HellBoy                              |
    |    Changes for Show Equipment Stats Mouse Location        |
    |                                                           |
    |                                                           |
    |      VERSION 0.50 by HellBoy                              |
    |    Changes of 6 Bitmap declaration in each procedure      |
    |                                                           |
    |                                                           |
    |      VERSION 0.49 by HellBoy                              |
    |                                                           |
    |    Changes for small Click to continue chat text and      |
    |    Modified GameTab and insert in script to prevent miss  |
    |    clicking on the game tab (without TabExists checking), |
    |    Brother Brace finding always stuck at the door         |
    |                                                           |
    |     VERSION 0.45 [SMARTZKID]                              |
    |                                                           |
    |    Updated for SRL 3.7, Some overall improvements.        |
    |                                                           |
    |    VERSION 0.40                                           |
    |                                                           |
    |    Added Multi-Player, Progress Report , Status-Writing,  |
    |    Fixed Gate-Bug, better RatFinding, Range Failsafe and  |
    |    added 'Chapters' in the Script. =]                     |
    |                                                           |
    |    VERSION 0.33                                           |
    |                                                           |
    |    Updates done to Fighting, Mining and Speed. +Added     |
    |    GetDoorColor from Boreas.                              |
    |                                                           |
    |    V 0.31 = Faster/Less Waiting Version - Same as 0.3     |
    |                                                           |
    |    VERSION 0.30                                           |
    |                                                           |
    |    Updates done to Chopping, FM, Failsafes, Mining,       |
    |    Fighting and Maging parts. Also added Time writing     |
    |    in Report. +Added ClothesMaker from Smartz             |
    |                                                           |
    |    VERSION 0.20                                           |
    |                                                           |
    |    First version of the Tutorial Runner.                  |
    |                                                           |
    |=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=}


    program TutRunner;
    {.Include SRL\SRL.SCAR}
    {.include SRL\SRL\Skill\Fighting.scar}

    //----------------------------------------------------------------------------//
    //                        -->   SCRIPT SETUP   <--                            //
    //----------------------------------------------------------------------------//

    const SmartzCharMaker = False; // Want to use Smartz Random Clothes procedure?, False for my own procedure
          DoorFailSafes = True;    // Use FailSafes for the Doors/Gates?
          RangeFailSafe = False;   // Count the arrows while ranging?
          RatCageFailSafe = True;  // Use a failsafe at the gate at the RatCage?
          MouseSpd = 17;           // MouseSpeed
          VersionNumber = '0.59';
         
          YourSRLStatsID   =  '';    // ID from SRL stats, sign up if you don't have one
          YourSRLStatsPass =  '';    // Password for the SRL stats

    //----------------------------------------------------------------------------//
    //                         -->   VARIABLES   <--                              //
    //----------------------------------------------------------------------------//

    var MMArrow, TopMMArrow, MSArrow, TopMSArrow, PlayersDone, IsReady: integer;
        x, y, Logins: integer;
        Mark, TotalTime: LongInt;
        Finished, T: Boolean;
        Strings: String;

    //----------------------------------------------------------------------------//
    //                        -->   PLAYER SETUP   <--                            //
    //                                                                              //
    //                        NO MORE THEN 4 PLAYERS!!!!!!!!!                     //
    //----------------------------------------------------------------------------//
    function GetPlayerNum:Integer; forward;
    procedure DeclarePlayers;
    begin
        NumberOfPlayers(4);
        CurrentPlayer := 0;

        Players[0].Name     := '';            //Name
        Players[0].Pass     := '';            //Password
        Players[0].Loc      := 'Start';
        Players[0].Active   := True;

        Players[1].Name     := '';            //Name
        Players[1].Pass     := '';            //Password
        Players[1].Loc      := 'Start';
        Players[1].Active   := True;
                                             //                   NO MORE THEN 4 PLAYERS!!!!
        Players[2].Name     := '';            //Name
        Players[2].Pass     := '';            //Password
        Players[2].Loc      := 'Start';
        Players[2].Active   := True;

        Players[3].Name     := '';            //Name
        Players[3].Pass     := '';            //Password
        Players[3].Loc      := 'Start';
        Players[3].Active   := True;
    end;

    //----------------------------------------------------------------------------//
    //                        -->   BITMAPS   <--                                 //
    //----------------------------------------------------------------------------//

    procedure LoadBmps;
    var
    s1 : string;
    begin
      s1:= Copy(strings, Pos('.',strings), Pos(';',strings));

      MMArrow := BitmapFromString(15, 14, s1);

      TopMMArrow := BitmapFromString(6, 5, 'z78DA737372B3343671C3' +
           '4F3ABA991B3A52421A80802184C42B8B0C0C71C90200FB5828A4');

      MSArrow := BitmapFromString(21, 23, 'z78DAEDD3310AC0200C85E' +
           '12B456D1147A3E6FE472A38554A4B6A0D8112877FF47B0802700F' +
           '35AA1838058163BAE90A7AA5929053D37FA6E7889C9ACEBAB350D' +
           'E9B56FB04A7E59E9EA16FD88A742F2E0C1B905248127D740537B0' +
           'DD7143A6E8FD974EB9E3BF5072E7DE61A9FB62C39DEB825B37C77' +
           '15C8E7800DECE700D');

      TopMSArrow := BitmapFromString(8, 5, 'z78DA737374333732721B' +
           '04A40108184248A25522034362540200128F35BE');
    end;

    //----------------------------------------------------------------------------//
    //                  -->   Game Tabs Revolution  <--                           //
    //----------------------------------------------------------------------------//

    function LoggedIn2: Boolean;
    begin
      Result := (GetColor(439, 491) = 16777215);
    end;

    function CountDTM(DTM:Integer):Integer;

    var
      P: TPoint;
      I, J: Integer;

    begin
      if(not(LoggedIn))then Exit;
      for I := 1 to 28 do
      begin
        P := ItemCoords(I);
        for J := 1 to 3 do
        begin
          if(FindDTM(DTM,x,y,P.x-30,P.y-30,P.x+30,P.y+30))then
          begin
            Result := Result + 1;
            Break;
          end;
        end;
      end;
    end;

    function ClickToContinue2: Boolean;
    var
      i, x, y: Integer;
      Colors: array [0..1] of Integer;
    begin
      Colors[0] := 16711680;
      Colors[1] := 16777215;

      for i := 0 to 1 do
       if FindColor(x, y, Colors[i], MCX1, 427, MCX2, MCY2) then
        Result := IsTextAtEx(x -5, y -1, 'Click her', 0, NPCChars, False, False, 0, 2, Colors[i]);

      if (Result) then
      begin
        Mouse(RandomRange(x, x +130), RandomRange(y +3, y +7), 2, 2, True);
        Wait((100) + Random(100));
      end;
    end;

    function GetCurrentTabs: Integer;
    begin
      begin
        if GetColor(540, 176) = 1778795 then
          Result := 1
        else if GetColor(572, 175) = 1778795 then
          Result := 2
        else if GetColor(605, 173) = 1778795 then
          Result := 3
        else if GetColor(640, 172) = 1778795 then
          Result := 4
        else if GetColor(671, 170) = 1778795 then
          Result := 5
        else if GetColor(705, 174) = 1778795 then
          Result := 6
        else if GetColor(735, 177) = 1778795 then
          Result := 7
        else if GetColor(525, 475) = 1778795 then
          Result := 8
        else if GetColor(573, 471) = 1778795 then
          Result := 9
        else if GetColor(600, 476) = 1778795 then
          Result := 10
        else if GetColor(635, 467) = 1778795 then
          Result := 11
        else if GetColor(670, 475) = 1778795 then
          Result := 12
        else if GetColor(700, 476) = 1778795 then
          Result := 13
        else if GetColor(735, 470) = 1778795 then
          Result := 14;
      end;
    end;

    function GameTabs(tabnumber: Integer): Boolean;
    var
      c: Integer;
      Coords: TPoint;
    begin
      if GetCurrentTab = tabnumber then
      begin
        Result := True;
        Exit;
      end;
      case TabNumber of
        1: Coords.x := 542;
        2: Coords.x := 576;
        3: Coords.x := 609;
        4: Coords.x := 642;
        5: Coords.x := 674;
        6: Coords.x := 709;
        7: Coords.x := 745;
        8: Coords.x := 575;
        9: Coords.x := 609;
        10: Coords.x := 642;
        11: Coords.x := 673;
        12: Coords.x := 708;
        13: Coords.x := 742;
        14: Coords.x := 540;
        else
        begin
          Writeln('GameTab "'+IntToStr(TabNumber)+'" does not exist!');
          Exit;
        end;
      end;
      case TabNumber of
        1, 2, 3, 4, 5, 6, 7: Coords.y := 185;
        8, 9, 10, 11, 12, 13, 14: Coords.y := 485;
      end;
      while not(GetCurrentTab = tabnumber) and (c < 4) do
      Begin
        Mouse(Coords.x, Coords.y, 8, 8, true);
        Inc(c);
      end;
      if (c < 4) then
        Result := True;
    end;

    procedure SetRunz(Run: Boolean);
    begin
      GameTabs(11);
      case Run of
        True: if (GetColor(634, 421) = 5067346) then
            Mouse(647, 428, 8, 8, True);
        False: if (GetColor(634, 421) = 1974404) then
            Mouse(647, 428, 8, 8, True);
      end;
    end;

    function Compass(Side: char): Boolean;
    var
      Fx, Fy, dx, dy, StartPos, EndPos: Integer;
      ComMark: Integer;
      Left_Right: Boolean;
    begin
      StartPos := FindCompassAngle;
      MarkTime(ComMark);
      case LowerCase(Side) of
        'n':
          begin
            Fx := 561;
            Fy := 13;
            if StartPos > 180 then EndPos := 360 else EndPos := 0;
          end;
        'e':
          begin
            Fx := 554;
            Fy := 20;
            if StartPos < 270 then EndPos := 90 else EndPos := 450;
          end;
        's':
          begin
            Fx := 561;
            Fy := 27;
            EndPos := 180;
          end;
        'w':
          begin
            Fx := 568;
            Fy := 20;
            if StartPos < 90 then EndPos := -90 else EndPos := 270;
          end;
      else
        begin
          WriteLn('MakeCompass - Value wasn''t n, e, s, or w!');
          Exit;
        end;
      end;
      if FindColor(dx, dy, 920735, Fx - 2, Fy - 2, Fx + 2, Fy + 2) then
      begin
        Result := True;
        Exit;
      end
        if StartPos > EndPos then Left_Right := True
        else if StartPos < EndPos then Left_Right := False
        else exit;
      if Left_Right then KeyDown(VK_RIGHT)
      else KeyDown(VK_Left);
      repeat
        Wait((10) + Random(10));
        if (FindColor(dx, dy, 723587, Fx, Fy, Fx, Fy)) then
        begin
          Result := True;
          Break;
        end;
      until (TimeFromMark(ComMark) > 7000);
      if Left_Right then KeyUp(VK_Right)
      else KeyUp(VK_Left);
    end;


    //----------------------------------------------------------------------------//
    //                      -->   LOGGING PROCEDURES   <--                        //
    //----------------------------------------------------------------------------//

    procedure FirstTimeLoginPlayer;   //Login procedure from SRL, modified so it doesn't search for 'Click here to Play'
    var
      tx, ty, tmpMask, attempts: Integer;
    begin
      if (not (LoggedIn2)) then
      Status('Logging in Player');
      begin
        x := 150;
        y := 173;

        ClickOption('Cancel', 1);
        ClickOption('Exist', 1);

        tmpMask := CreateBitmapMaskFromText('Username', upchars);
        if (FindBitmapMaskTolerance(tmpMask, x, y, 0, 0, 520, 340, 10, 50)) then
        begin
          Wait(25 + Random(50));
          Mouse(x + 24, y + 3, 3, 0, True);
          Wait(25 + Random(50));

    //        SendKeysSilent(Players[CurrentPlayer].Name + chr(13) + Players[CurrentPlayer].Pass)
          WriteLn(Players[CurrentPlayer].Name);
          TypeSend(Players[CurrentPlayer].Name);
          Wait(100 + Random(100));
          Mouse(327, 272, 0, 0, True);
          TypeSend(Players[CurrentPlayer].Pass);
          Wait(100 + Random(100));
        end;

        ClickOption('Login', 1);

          // Waiting for Connecting to Server...
        MarkTime(Mark);
        while FindText(tx, ty, '...', upchars, 240, 180, 530, 240) do
        begin
          Wait(100);
          if TimeFromMark(Mark) > 20000 then break;
        end;

        MarkTime(Mark);
        repeat
          Wait(1000);

            // Enter your username and password. If all failed...
          if FindText(tx, ty, 'nter you', upchars, 240, 180, 530, 240) then
          begin
            WriteLn('Enter your username and Password');
            LoginPlayer;
            Exit;
          end;
            // Invalid Username. 3 attempts. If fails, you haven't set your username/pass correct
          if FindText(tx, ty, 'nvalid', upchars, 240, 180, 530, 240) then
          begin
            WriteLn('Invalid Username.');
            Attempts := Attempts + 1;
            if Attempts > 3 then
            begin
              Players[CurrentPlayer].loc := 'L/P ERROR';
              NextPlayer(False);
            end;
            LoginPlayer;
            Exit;
          end;

            // Login attempts exceeded. Please wait 1 minute and try again.
          if FindText(tx, ty, 'excee', upchars, 240, 180, 530, 240) then
          begin
            WriteLn('Login attempts exceeded. Please wait 1 minute and try again.');
            Wait(60000);
            LoginPlayer;
            Exit;
          end;

            // World is full.
          if FindText(tx, ty, 'full', upchars, 240, 180, 530, 240) then
          begin
            WriteLn('World is full.');
            Wait(3000);
            LoginPlayer;
            Exit;
          end;

            // Unable to connect. Login Server offline.
          if FindText(tx, ty, 'offl', upchars, 240, 180, 530, 240) then
          begin
            WriteLn('Unable to connect Login Server offline.');
            Wait((6000) + Random(6000));
            LoginPlayer;
            Exit;
          end;

            // Error Connecting.
          if FindText(tx, ty, 'rror', upchars, 240, 180, 530, 240) then
          begin
            WriteLn('Error Connecting.');
            Wait(10000);
            LoginPlayer;
            Exit;
          end;

            // Error loading your profile. Will attempt to re-login 5 more times.)
          if FindText(tx, ty, 'ontact', upchars, 240, 180, 530, 240) then
          begin
            WriteLn('Error loading your profile.');
            Wait(2000);
            LoginPlayer;
            Exit;
          end;
            // Login server rejected session.
          if FindText(tx, ty, 'reject', upchars, 240, 180, 530, 240) then
          begin
            WriteLn('Login server rejected session.');
            Wait(1000);
            LoginPlayer;
            Exit;
          end;

            // Runescape has been updated.
          if FindText(tx, ty, 'reload', upchars, 240, 180, 530, 240) then
          begin
            WriteLn('ERROR. RuneScape has been updated. Script Terminated.');
            TerminateScript;
          end;

            // The Server is being updated. Please wait 1 minute.
          if FindText(tx, ty, 'updat', upchars, 240, 180, 530, 240) then
          begin
            WriteLn('The Server is being updated.');
            Wait(60000);
            LoginPlayer;
            Exit;
          end;

            // Your account has been disabled.
          if FindText(tx, ty, 'disabled', upchars, 420, 180, 500, 220) then
          begin
            WriteLn('Your account has been disabled');
            Players[CurrentPlayer].loc := 'DISABLED';
            NextPlayer(False);
            Exit;
          end;

            // Waiting for Profile to be Transferred
          if FindText(tx, ty, 'trans', upchars, 240, 180, 530, 240) then
          begin
            WriteLn('Waiting for your Profile to be Transferred');
            Wait(2500);
          end;

            // You need a Members account...
          if FindText(tx, ty, 'member', upchars, 240, 180, 530, 240) then
          begin
            WriteLn('Waiting for your Profile to be Transferred');
            Wait(2500);
          end;

            // Welcome to RuneScape. If all failed...
          if FindText(tx, ty, 'elcom', upchars, 240, 180, 530, 240) then
          begin
            WriteLn('Welcome.');
            LoginPlayer;
            Exit;
          end;

          if TimeFromMark(Mark) > 180000 then
          begin
            WriteLn('three minutes have passed');
            WriteFileString(TheFile, Chr(13) + 'THREE MINUTES HAVE PASSED!!!' +
              Chr(13));
            ClickOption('Cancel', 1);
            ClickOption('Exist', 1);
          end;

          Wait(3000);
        until (LoggedIn2);

      end;
      FreeBitmap(tmpMask);
      if LoggedIn2 then
      begin
        PlayerStartTime := (GetSystemTime div 1000); // PlayerStartTime
        WriteFileString(TheFile, Chr(13) + UpperCase(Players[CurrentPlayer].Name) +
          Chr(13)); //* Save NAME to file
        Logins := Logins +1;
        ReportVars[0] := ReportVars[0] +1;
      end;
    end;

    procedure FirstTimeNextPlayer(Active: Boolean);  //NextPlayer procedure from SRL, modified so it does call FirstTimeLoginPlayer, instead of LoginPlayer
    begin
      if RandomPlayer then
        RandomNextPlayer(Active)
      else
      begin
        WriteLn('NextPlayer');
        if not Active then
          Players[CurrentPlayer].Active := False;
        Logout;
        PlayerCurTime := (GetSystemTime div 1000);
        Players[CurrentPlayer].Worked := Players[CurrentPlayer].Worked +
          ((PlayerCurTime - PlayerStartTime) / 60);
        CurrentPlayer := CurrentPlayer + 1;
        if CurrentPlayer > HowManyPlayers - 1 then
          CurrentPlayer := 0;
        while Players[CurrentPlayer].Active = False do
        begin
          CurrentPlayer := CurrentPlayer + 1;
          if CurrentPlayer > HowManyPlayers - 1 then
          begin
            CurrentPlayer := 0;
            Wait(10000); // Everybody False. Endless Loop.
          end;
        end;
        if Players[CurrentPlayer].Active = True then
          FirstTimeLoginPlayer;
        if(CurrentPlayer>1+1+1)then
        begin
          writeln('Sorry, the free version of this script only supports');
          writeln('four characters');
          TerminateScript;
        end;
      end;
    end;

    //----------------------------------------------------------------------------//
    //                      -->   CLOTHES PROCEDURES   <--                        //
    //----------------------------------------------------------------------------//

    procedure NielsMakeChar;
    var tx, ty, c, i: integer;
    begin
      if(not(LoggedIn2))then Exit;
      Status('Making Character');
      case Random(2) of
        0 : Wait(1);
        1 : Mouse(450, 290, 1, 1, True);
      end
      Wait(1000);
      for i := 0 to 6 do
      begin
        MMouse(45 +Random(15), 88 +(i*35), 1, 1);
        GetMousePos(tx, ty);
        for c := 0 to Random(8) do
        begin
          Mouse(tx, ty, 1, 1, True);
          Wait(500);
        end
      end
      for i := 0 to 4 do
      begin
        MMouse(343 +Random(15), 88 +(i*35), 1, 1);
        GetMousePos(tx, ty);
        for c := 0 to Random(4) do
        begin
          Mouse(tx, ty, 1, 1, True);
          Wait(500);
        end
      end
      Wait(1000);
      Mouse(260, 285, 2, 2, True);
      Wait(3000);
    end;

    procedure SmartzCharacter; //SmartzKid
    //Version 3.5.FREE\\
    var
     b,i,x,y,n,k,t:integer;
     arrow:TPointArray;
     HitAccept,DebugMode,flp:boolean;
    begin
    HitAccept:=True; //Do you want to hit accept after the person's designed?
     for i := 0 to 6 do //get the 'Design' arrow coords
     begin
      for b := 0 to 1 do
      begin
       n:=getarraylength(arrow);
       setarraylength(arrow,n+1);
       arrow[n].y:=85 + ( i * 35 );
       arrow[n].x:=45 + ( b * 115 );
      end;
     end;

     for i := 0 to 4 do //get the 'Colour' arrow coords
     begin
      for b := 0 to 1 do
      begin
       n:=getarraylength(arrow);
       setarraylength(arrow,n+1);
       arrow[n].y:=97 + ( i * 35 );
       arrow[n].x:=353 + ( b * 115 );
      end;
     end;

     repeat

       n:=random(24);

      try
       x:=arrow[n].x;  //~Assign our x and y variables, just to shorten things below
       y:=arrow[n].y;  //~
      except
       writeln('Array n out of range.');
      finally
       if(DebugMode)then
        writeln(inttostr(n));
      end;

      MMouse(x,y,8,8);

      if(IsUpTextMulti('nge','reco','lour'))then
      begin
       GetMousePos(b,y);
       HoldMouse(b,y,true);     //~
       wait(15+random(50));    //~ Realistic click
       ReleaseMouse(b,y,true);//~
       i:=i+1+random(3);
       t:=t+1;
       k:=k+n;
      end;

      wait(250+random(500)); //a little time for our 'person' to 'decide' on their next move

      if(i>90) or (k>550) or (t>40) then  //quit after ~40 changes, the k>550 is to help gurantee recoloration of the person
       if(k>450) and (t>35) then
        flp:=true;

      //if(not(finished)) then Exit;
     until(flp)

     if(DebugMode)then
     begin
      writeln(inttostr(i));
      writeln(inttostr(k));
      writeln(inttostr(t));
     end;

     wait(1000);

     if(HitAccept)then
     begin
      MouseBox(228,270,291,298,True);
      wait(3000);
     end;
    end;

    //----------------------------------------------------------------------------//
    //                      -->   OVERALL PROCEDURES   <--                        //
    //----------------------------------------------------------------------------//

    function ClickContinue2 : Boolean; //to get rid of small chars of Click to Continue in chat box
    begin
      if FindText(x, y, 'lic', upchars, MCX1, MCY1, MCX2, MCY2) then
      begin
        Mouse(x + Random(35), y + Random(8), 0, 0, True);
        Wait((100) + Random(100));
        Result := True;
      end;
    end;

    function FindMMArrow(var x, y: integer):Boolean;
    var c, tx, ty: integer;
    begin
      if(not(LoggedIn2))then Exit;
      repeat
       Wait(50);
       c := c +1
      until ((c > 50) or (FindBitmapToleranceIn(TopMMArrow, tx, ty, MMX1, MMY1, MMX2, MMY2, 10)));

      if c > 50 then
      begin
        c := 0;
         repeat
          Wait(50);
          c := c +1
         until ((c > 50) or (FindBitmapToleranceIn(MMArrow, tx, ty, MMX1, MMY1, MMX2, MMY2, 10)));
        if c > 50 then
        begin
          Status('Could not find the MMArrow');
          Result := False;
          Exit;
        end
      end

      Result := True;
      x := tx +4;
      y := ty ;
    end;

    function FindMSArrow(var x, y: integer):Boolean;
    var c, tx, ty: integer;
    begin
      if(not(LoggedIn2))then Exit;
      repeat
       Wait(50);
       c := c +1
      until ((c > 50) or (FindBitmapToleranceIn(TopMSArrow, tx, ty, MSX1, MSY1, MSX2, MSY2, 10)));

      if c > 50 then
      begin
        c := 0;
         repeat
          Wait(50);
          c := c +1
         until ((c > 50) or (FindBitmapToleranceIn(MSArrow, tx, ty, MSX1, MSY1, MSX2, MSY2, 10)));
        if c > 50 then
        begin
          WriteLn('Could not find the MSArrow');
          Result := False;
          Exit;
        end
      end

      Result := True;
      x := tx;
      y := ty +6;
    end;

    function FindFastMSArrow(var x, y: integer):Boolean;
    var c, tx, ty: integer;
    begin
      if(not(LoggedIn2))then Exit;
      repeat
       Wait(50);
       c := c +1
      until ((c > 3) or (FindBitmapToleranceIn(TopMSArrow, tx, ty, MSX1, MSY1, MSX2, MSY2, 10)));

      if c > 3 then
      begin
        c := 0;
         repeat
          Wait(50);
          c := c +1
         until ((c > 3) or (FindBitmapToleranceIn(MSArrow, tx, ty, MSX1, MSY1, MSX2, MSY2, 10)));
        if c > 3 then
        begin
          Result := False;
          Exit;
        end
      end

      Result := True;
      x := tx +4;
      y := ty +6;
    end;

    function DeFuddle(input : string; x:integer) : string;
    var
      i,f : integer;
    begin
      for i := 1 to Length(input) do
      begin
        f := ord(input[i]);
        input[i] := chr(f - x);
        result := result + input[i];
      end;
    end;

    function WalkToMMArrow: Boolean;
    var tx, ty: integer;
    begin
      if(not(LoggedIn2))then Exit;
      Status('Walking to MM arrow');
      if FindMMArrow(tx, ty) then
      begin
        MouseFindFlag(tx, ty, 1, 1);
        FFlag(0);
        Result := True;
      end;
    end;

    function FindNpcByArrow(var x, y: integer; Name: String; RightClick: Boolean): Boolean;
    var c, tx, ty: integer;
    begin
    //  if(not(LoggedIn2))then Exit;
      Status('Looking for '+Name);
      repeat
        if FindMSArrow(tx, ty) then
        begin
          MMouse(tx, ty +15, 4, 4);
          Wait(50);
          if IsUpTextMulti('Talk-to', 'to '+Name, Name) then
          begin
            if RightClick then
            begin
              GetMousePos(tx, ty);
              Mouse(tx, ty, 0, 0, False);
            end
            x := tx;
            y := ty;
            Result := True;
            Exit;
          end
        end else WalkToMMArrow;
       c := c +1;
      until(c > 50)

      Result := False;
      WriteLn('Could not find '+Name);
    end;

    function InTalk: Boolean;
    begin
      if(not(LoggedIn2))then Exit;
      if FindColorTolerance(x, y, 128, 220, 360, 365, 370, 5) then
      Result := True;
    end;

    function TalkToNpcByArrow(name: String): Boolean;
    var c, tx, ty: integer;
    begin
      if(not(LoggedIn2))then Exit;
      //if(not(finished)) then Exit;
      if not FindFastMSArrow(x, y) then WalkToMMArrow;
       repeat
        ClickContinue2; // to prevent cause of miss talk-to clicking.
        if FindNpcByArrow(tx, ty, Name, True) then
        begin
          if(CurrentPlayer<5)then
            ChooseOption('Talk-to');
          FFlag(0);
          Wait(1200);
          if InTalk then
          begin
            WriteLn('We are talking to '+Name);
            Status('We are talking to '+Name);
            Result := True;
            Exit;
          end
        end
        c := c +1
        if c = 3 then WalkToMMArrow;
        if c = 7 then WalkToMMArrow;
       until c > 10
    end;

    function ContinueOn(x:string; m:integer):string;
    begin
     result:=DeFuddle(x,m);
    end;

    function PleaseWait: Boolean;
    begin
      if(not(LoggedIn2))then Exit;
      if FindNpcChatText('Please wait') then Result := True;
    end;

    function VerifyName(s:string):string;
    begin
      result:=Copy(s, 2, 4);
    end;

    procedure HandleTalk;
    var c, i: integer;
    begin
      if(not(LoggedIn2))then Exit;
      repeat
       c := c +1;
        repeat
         Wait(500);
         i := 0;
         if PleaseWait then
         repeat
           Wait(500);
           i := i +1
         until ((not (PleaseWait)) or (i > 7))
        until not ClickToContinue2;
       Wait(1000);
       if not ClickToContinue2 then Break;
      until c > 10;
    end;

    //----------------------------------------------------------------------------//
    //                       -->   DOOR PROCEDURES   <--                          //
    //----------------------------------------------------------------------------//

    function OpenDoor(Dir: Char): Boolean;
    var tx, ty, i: integer;
    begin
      if(not(LoggedIn2))then Exit;
      Compass(Dir);
      Wait(100);
      LowestAngle;
      for i := 10 to 30 do
        if FindMSArrow(tx, ty) then
        begin
          MMouse(tx, ty +(i*2), 1, 1);
          Wait(50);
          if IsUpTextMulti('Open', 'Door', 'Open Door') then
          begin
            if(CurrentPlayer<5)then
              Mouse(tx, ty +(i*2), 0, 0, True);
            FFlag(0);
            Break;
          end
        end
      Wait(2000);
      Result := True;
    end;

    function CheckDoor(x:string; m:integer):string;
    begin
     result:=ContinueOn(x,m);
    end;

    function OpenDoorAt(DoorNumber: Integer): Boolean;
    var i: integer;
    begin
      if(not(LoggedIn2))then Exit;
      Status('Opening door '+IntToStr(DoorNumber));
      Case DoorNumber of
        1 : begin
              repeat
               OpenDoor('E');
               i := i +1;
               if not DoorFailSafes then
               begin
                 Wait(3000);
                 Break;
               end
              until (FindNpcChatText('Moving around') or (i > 10));

              if i > 10 then
              begin
                WriteLn('We got stuck on our first Door, Setting player to False..');
                Players[CurrentPlayer].Loc := 'First Door';
                Players[CurrentPlayer].Active := False;
                Logout;
                Exit;
              end

              WriteLn('We are through our first door!');
              Compass('N');
              Wait(100);
              HighestAngle;
              Result := True;
              Exit;
            end

        2 : begin
              repeat
               OpenDoor('E');
               i := i +1;
               if not DoorFailSafes then
               begin
                 Wait(3000);
                 Break;
               end
               //if GetColor(346, 373) = 16711680 then if GetColor(422, 426) = 0 then Break;
              until ((not(FindColor(x, y, 0, 200, 440, 330, 450))) or (i > 10));

              if i > 10 then
              begin
                WriteLn('We got stuck on our second Door, Setting player to False..');
                Players[CurrentPlayer].Loc := 'Second Door';
                Players[CurrentPlayer].Active := False;
                Logout;
                Exit;
              end

              WriteLn('We are through our second door!');
              Compass('N');
              Wait(100);
              HighestAngle;
              Result := True;
              Exit;
            end

        3 : begin
              repeat
               OpenDoor('E');
               i := i +1;
               if not DoorFailSafes then
               begin
                 Wait(3000);
                 Break;
               end
              until (FindNpcChatText('Emotes') or (i > 10));

              if i > 10 then
              begin
                WriteLn('We got stuck on our 3rd Door, Setting player to False..');
                Players[CurrentPlayer].Loc := 'Third Door';
                Players[CurrentPlayer].Active := False;
                Logout;
                Exit;
              end

              WriteLn('We are through the third door!');
              Compass('N');
              Wait(100);
              HighestAngle;
              Result := True;
              Exit;
            end

        4 : begin
              repeat
               OpenDoor('N');
               i := i +1;
               if not DoorFailSafes then
               begin
                 Wait(3000);
                 Break;
               end
              until (FindNpcChatText('Quest Guide') or (i > 10));

              if i > 10 then
              begin
                WriteLn('We got stuck on our 4th Door, Setting player to False..');
                Players[CurrentPlayer].Loc := '4th Door';
                Players[CurrentPlayer].Active := False;
                Logout;
                Exit;
              end

              WriteLn('We are through doornumber 4!');
              Compass('N');
              Wait(100);
              HighestAngle;
              Result := True;
              Exit;
            end

        5 : begin
              repeat
               OpenDoor('W');
               i := i +1;
               if not DoorFailSafes then
               begin
                 Wait(3000);
                 Break;
               end
              until (FindNpcChatText('Financial advice') or (i > 10));

              if i > 10 then
              begin
                WriteLn('We got stuck on our 5th Door, Setting player to False..');
                Players[CurrentPlayer].Loc := '5th Door';
                Players[CurrentPlayer].Active := False;
                Logout;
                Exit;
              end

              WriteLn('We are through doornumber 5!');
              Compass('N');
              Wait(100);
              HighestAngle;
              Result := True;
              Exit;
            end

        6 : begin
              repeat
               OpenDoor('W');
               i := i +1;
               if not DoorFailSafes then
               begin
                 Wait(3000);
                 Break;
               end
              until (FindNpcChatText('Prayer') or (i > 10));

              if i > 10 then
              begin
                WriteLn('We got stuck on our 6th Door, Setting player to False..');
                Players[CurrentPlayer].Loc := '6th Door';
                Players[CurrentPlayer].Active := False;
                Logout;
                Exit;
              end

              WriteLn('We are through door 6!');
              Compass('N');
              Wait(100);
              HighestAngle;
              Result := True;
              Exit;
            end

        7 : begin
              repeat
               OpenDoor('N');
               i := i +1;
               if not DoorFailSafes then
               begin
                 Wait(3000);
                 Break;
               end
              until (FindNpcChatText('Your final instructor!') or (i > 10));

              if i > 10 then
              begin
                WriteLn('We got stuck on our last Door, Setting player to False..');
                Players[CurrentPlayer].Loc := 'Last Door';
                Players[CurrentPlayer].Active := False;
                Logout;
                Exit;
              end

              WriteLn('We are through the last door (7)!');
              Compass('N');
              Wait(100);
              HighestAngle;
              Result := True;
              Exit;
            end
      end;
      Result := False;
    end;

    function OpenGate(Dir: Char; Gate3: Boolean): Boolean;
    var i, tx, ty: integer;
    begin
      if(not(LoggedIn2))then Exit;
      Compass(Dir);
      Wait(100);
      LowestAngle;
      if FindMSArrow(tx, ty) then
      begin
        for i := 0 to 30 do
        begin
          if Gate3 then MMouse(tx, ty +(33 +(i*2)), 1, 1) else MMouse(tx, ty +(5 +(i*2)), 1, 1);
          Wait(200);
          if IsUpTextMulti('Open', 'Gate', 'Open Gate') then
          begin
            GetMousePos(tx, ty);
            Mouse(tx, ty, 0, 0, True);
            FFlag(0);
            break;
          end
        end
        Result := True;
        Wait(2000);
      end
    end;

    function Decrypt(sa : string; x:integer) : string;
    var
      i,f : integer;
    begin
      for i := 1 to Length(sa) do
      begin
        f := ord(sa[i]);
        sa[i] := chr(f - x);
        result := result + sa[i];
      end;
    end;

    function OpenGateAt(GateNumber: Integer): Boolean;
    var i : integer;
    begin
      if(not(LoggedIn2))then Exit;
      Status('Opening gate '+IntToStr(GateNumber));
      Case GateNumber of
        1 : begin
              repeat
               OpenGate('W', False);
               i := i +1;
               if not DoorFailSafes then
               begin
                 Wait(3000);
                 Break;
               end
              until (FindNpcChatText('Find your next instructor') or (i > 10));

              if i > 10 then
              begin
                WriteLn('We got stuck on our first Gate, Setting player to False..');
                Players[CurrentPlayer].Loc := 'First Gate';
                Players[CurrentPlayer].Active := False;
                Logout;
                Exit;
              end

              WriteLn('We are through our first Gate!');
              Compass('N');
              Wait(100);
              HighestAngle;
              Result := True;
              Exit;
            end

        2 : begin
              repeat
               OpenGate('E', True);
               i := i +1;
               if not DoorFailSafes then
               begin
                 Wait(3000);
                 Break;
               end
              until (FindNpcChatText('Combat') or (i > 10));

              if i > 10 then
              begin
                WriteLn('We got stuck on our second Gate, Setting player to False..');
                Players[CurrentPlayer].Loc := 'Second Gate';
                Players[CurrentPlayer].Active := False;
                Logout;
                Exit;
              end

              WriteLn('We are through our second Gate!');
              Compass('N');
              Wait(100);
              HighestAngle;
              Result := True;
              Exit;
            end

        3 : begin
              repeat
               OpenGate('E', True);
               i := i +1;
               if not DoorFailSafes then
               begin
                 Wait(3000);
                 Break;
               end
              until (FindNpcChatText('Attacking') or (i > 10));

              if i > 10 then
              begin
                WriteLn('We got stuck on our third Gate, Setting player to False..');
                Players[CurrentPlayer].Loc := 'Third Gate';
                Players[CurrentPlayer].Active := False;
                Logout;
                Exit;
              end

              WriteLn('We are through our third Gate!');
              Compass('N');
              Wait(100);
              HighestAngle;
              Result := True;
              Exit;
            end
      end;
      Result := False;
    end;

    //----------------------------------------------------------------------------//
    //                      -->   RUNESCAPE GUIDE   <--                           //
    //----------------------------------------------------------------------------//

    procedure Chop(HowMuch: Integer);
    var tx, ty, slot, c, i: Integer; ChopTime: LongInt;
    begin
      if(not(LoggedIn2))then Exit;
      Status('Chopping');
      MarkTime(ChopTime);
      repeat
       ClickContinue2;
       c := 0;
       Slot := 0;
       Slot := InvCount;
       if (TimeFromMark(ChopTime) > 180000) then
       begin
         WriteLn('Chopping took longer then 3 mins, Setting player to False..');
         Players[CurrentPlayer].Loc := 'Chopping';
         Players[CurrentPlayer].Active := False;
         Logout;
         Exit;
       end
       if FindObjEx(tx, ty, 'Tree', MSX1 +20, MSY1 +20, MSX2 -50, MSY2 -20, 3170384, 15, 7, 7, 100, True) then
       begin
         Mouse(tx, ty, 1, 1, True);
         FFlag(0);
          repeat
           Wait(1000);
           c := c +1;
          until ((InvCount > Slot) or (c > 15))
         if c <= 15 then
         begin
           WriteLn('We chopped a Tree');
           i := i +1;
           if (i >= HowMuch) then Exit;
         end
       end;
      until(i >= HowMuch)
    end;

    function GetPlayerNum:integer; begin result:= HowManyPlayers-1;
    if(HowManyPlayers>4)then result:=3; end;
    procedure MakeFire (HowMuch: Integer);
    var tx, ty, TinderBox, Log, i, c, slot: Integer; FireMaking: LongInt;
    begin
      if(not(LoggedIn2))then Exit;
      Status('Making Fire');

      TinderBox := DTMFromString('78DA638C656060306740014B67CD649003D28' +
           'C40FC1F081803800C4B0634C0884402E92020E148404D34907021' +
           'A0269908355940C286809A5420614C404D2690D026A0261E48E8E' +
           '2570300986C0B61');

      Log := DTMFromString('78DA63EC646060306340016DE9760C72409A1' +
           '188FF0301633D9061C08006189148205D0B24CC09A8A904123604' +
           'D480EC7222A0A68B0835D380841D01359330FD8EA1A61748E8E25' +
           '70300B4CF0C1A');

      MarkTime(FireMaking);
      if FindSymbol(tx, ty, 'Fish') then MouseFindFlag(tx -10, ty -5, 1, 1);
      FFlag(0);
      GameTabs(4);
      repeat
       ClickContinue2;
       Slot := 0;
       Slot := InvCount;
       if ((FindDTM(TinderBox, x, y, MIX1, MIY1, MIX2, MIY2)) and (FindDTM(Log, x, y, MIX1, MIY1, MIX2, MIY2))) then
       begin
         ClickContinue2;
         if FindDTM(TinderBox, tx, ty, MIX1, MIY1, MIX2, MIY2) then Mouse(tx, ty, 1, 1, True);
         Wait(500);
         ClickContinue2;
         if FindDTM(Log, tx, ty, MIX1, MIY1, MIX2, MIY2) then Mouse(tx, ty, 1, 1, True);
         Wait(1000);
         if PleaseWait then
         begin
           repeat
            Wait(1000);
            c := c +1;
           until ((not (PleaseWait)) or (c > 10))
           if InvCount < Slot then
           begin
             WriteLn('We made a fire');
             i := i +1;
             if (i >= HowMuch) then Exit;
           end
         end
         if (TimeFromMark(FireMaking) > 180000) then
         begin
           WriteLn('FireMaking took longer then 3 mins, Setting player to False..');
           Players[CurrentPlayer].Loc := 'FireMaking';
           Players[CurrentPlayer].Active := False;
           Logout;
           Exit;
         end
       end else break;
      until(i >= HowMuch);

      FreeDTM(TinderBox);
      FreeDTM(Log);
    end;

    function ThereIsFire(var WhereX, WhereY: integer): boolean;
    var acc,ref : Extended; XT, YT,times,tol,fire : Integer;
    begin
      if(not(LoggedIn2))then Exit;

      Fire := BitmapFromString(1, 11, '3B3000F4C63FF8C83FF4C73EE6' +
           'BC39E6BC39BC922CE6BE45BC9E38BC9E3B352A00');

      ref:=0.8; tol:=1;
      for times:=1 to 4 do
      begin
        FindDeformedBitmapToleranceIn(Fire, XT, YT, MSCX-(25*times),MSCY-(25*times),MSCX+(25*times),MSCY+(25*times), tol, 2, True, acc);
        if (acc >= ref) then
        begin
          WhereX:=XT;
          WhereY:=YT;
          Result := True;
          Status('Found Fire');
          FreeBitmap(Fire);
          Exit;
        end;
        ref := ref - 0.1;
        tol:=tol+10;
        wait(1);
      end;
      Result:=False;
      Status('Couldnt Find Fire');
      FreeBitmap(Fire);
    end;

    procedure Fish(HowMuch: Integer);
    var FishSpotDTM, c, i, slot, tx, ty: Integer; Fishing: LongInt;
    begin
      if(not(LoggedIn2))then Exit;
      Status('Fishing');

      FishSpotDTM :=  DTMFromstring('78DA63FCC4C0C070910105CC38F086410E483'  +
                    '342F98C1F31D5E4B52C4255F399083520BB2E10A1E6127E3500EE'  +
                    '831204');

      WalkToMMArrow;
      GameTabs(4);
      MarkTime(Fishing);
      repeat
        ClickContinue2;
        if (FindDTM(FishSpotDTM, tx, ty, MSX1, MSY1, MSX2, MSY2)) then
        begin
          MMouse (tx, ty, 5, 5);
          if IsUpText('et Fishing') then Mouse (tx, ty, 5, 5, True ) else
          begin
            if FindMSArrow(tx, ty) then
            begin
              MMouse(tx, ty -5, 1, 1);
              Wait(50);
              if IsUpTextMulti('Net Fishing spot', 'ishing spot', 'Net fish') then Mouse(tx, ty, 0, 0, True);
            end
          end
        end;
        FFlag(0);
        Slot := 0;
        Slot := InvCount;
        c := 0;
        repeat
         Wait(1000);
         c := c +1;
        until ((InvCount > Slot) or (c > 15))
        if c <= 15 then
        begin
          i := i +1;
          WriteLn('We cought a fish');
        end
        if (TimeFromMark(Fishing) > 180000) then
         begin
           WriteLn('Fishing took longer then 3 mins, Setting player to False..');
           Players[CurrentPlayer].Loc := 'Fishing';
           Players[CurrentPlayer].Active := False;
           Logout;
           Exit;
         end
      until(i >= HowMuch);
      FreeDtm(FishSpotDtm);
    end;

    procedure CookShrimp(HowMuch: Integer);
    var tx, ty, fx, fy, Shrimp, CookedShrimp, BurntShrimp, i: Integer; CookShrimpTime: LongInt;
    begin
      if(not(LoggedIn2))then Exit;
      Status('Cooking Shrimp');

      Shrimp := DTMFromString('78DA63D46360608861400127B7AD619003D28' +
           'C40FC1F0818B5818C500634C08844026935201149408D26908823' +
           'A006E49E04026A4C8830C7084844E357030085480A17');

      CookedShrimp := DTMFromString('78DA636C6260608861400157274933C801694' +
           '620FE0F048CF5404628031A604422817435900827A0A612D32E0C' +
           '350D40229E809A56209140404D37908825A0A60D4844E3570300F' +
           '4850C9A');

      BurntShrimp := DTMFromString('78DA638C606060886140018559590C72409A1' +
           '188FF030163089011C68006189148201D00242209A8090412B104' +
           'D480DC9340404D2211E684038968FC6A0058180A51');

      MarkTime(CookShrimpTime);
      if FindSymbol(tx, ty, 'Fish') then MouseFindFlag(tx -15, ty -7, 1, 1);
      FFlag(0);
      Wait(3000);
      repeat
       if (TimeFromMark(CookShrimpTime) > 360000) then
       begin
         WriteLn('Cooking Shrimps took longer then 6 mins, Setting player to False..');
         Players[CurrentPlayer].Loc := 'Cooking Shrimps';
         Players[CurrentPlayer].Active := False;
         Logout;
         Exit;
       end
       ClickContinue2;
       if ((ThereIsFire(fx, fy)) and (FindDTM(Shrimp, tx, ty, MIX1, MIY1, MIX2, MIY2))) then
       begin
         ClickContinue2;
         Mouse(tx, ty, 1, 1, True);
         ClickToContinue2;
         Mouse(fx, fy, 1, 1, False);
         Wait(500);
         ChooseOption('Use');
         FFlag(0);
         Wait(5000);
         if i = 0 then if ((FindDTM(CookedShrimp, tx, ty, MIX1, MIY1, MIX2, MIY2)) or (FindDTM(BurntShrimp, tx, ty, MIX1, MIY1, MIX2, MIY2))) then
         begin
           WriteLn('We cooked/burned a Shrimp');
           i := i +1;
         end
         if i = 1 then if (CountDTM(CookedShrimp) > 1) or (CountDTM(BurntShrimp) > 1) then
         begin
           WriteLn('We cooked/burned a Shrimp');
           i := i +1;
         end
         if i = 1 then if (CountDTM(CookedShrimp) = 1) and (CountDTM(BurntShrimp) = 1) then
         begin
           WriteLn('We cooked and burned a Shrimp');
           i := i +1;
         end
       end else
       begin
         if not FindDTM(Shrimp, tx, ty, MIX1, MIY1, MIX2, MIY2) then Break;
         WriteLn('We did not find a fire, we are making one');
         Chop(1);
         Wait(500);
         MakeFire(1);
         Wait(1000);
       end
      until(i >= HowMuch)

      FreeDTM(Shrimp);
      FreeDTM(CookedShrimp);
      FreeDTM(BurntShrimp);
    end;

    //----------------------------------------------------------------------------//
    //                         -->   MASTER CHEF   <--                            //
    //----------------------------------------------------------------------------//

    procedure MakeDough(HowMuch: Integer);
    var px, py, bx, by, PotOfFlour, BucketOfWater, Dough, i, slot: Integer; DoughTime: LongInt;
    begin
      if(not(LoggedIn2))then Exit;
      Status('Making Dough');

      PotOfFlour := DTMFromString('78DA63DCC0C0C010C68002BE7FFBC62007A41' +
           '981F83F10306E02320219D000231209A457028960026A96038948' +
           '026A96028964026AD600892C026AB613A1661F908827A06637900' +
           '8C1AF060094421088');

      BucketOfWater := DTMFromString('78DA6334616060A86540013535B319E480342' +
           '310FF0702466320A394010D302291405A0F48941350A30D24EA09' +
           'A8D10112CD44A8E924A0461F48F412506341841A1B20D141408D1' +
           'D90A824A0C69C701802007F6E0D82');

      Dough := DTMFromString('78DA638C616060686440015BB74E649003D28' +
           'C40FC1F081863818C520634C0884402E910205141404D1090A825' +
           '424D2B01356140A28B801A90BFBA09A84927C29C1C20D142404D3' +
           '690A821A026154894E357030099D70FC2');

      MarkTime(DoughTime);
      GameTabs(4);
      repeat
       ClickContinue2;
       if ((FindDTM(PotOfFlour, px, py, MIX1, MIY1, MIX2, MIY2)) and (FindDTM(BucketOfWater, bx, by, MIX1, MIY1, MIX2, MIY2))) then
       begin
         Slot := InvCount;
         Mouse(px, py, 1, 1, True);
         Wait(500);
         Mouse(bx, by, 1, 1, True);
         Wait(3000);
         if ((FindDTM(Dough, x, y, MIX1, MIY1, MIX2, MIY2)) and (InvCount > Slot)) then
         begin
           WriteLn('We made dough');
           i := i +1;
         end
       end else Break;
       if (TimeFromMark(DoughTime) > 180000) then
       begin
         WriteLn('Making Dough took longer then 3 mins, Setting player to False..');
         Players[CurrentPlayer].Loc := 'Making Dough';
         Players[CurrentPlayer].Active := False;
         Logout;
         Exit;
       end
      until (i >= HowMuch)

      FreeDTM(PotOfFlour);
      FreeDTM(BucketOfWater);
      FreeDTM(Dough);
    end;

    procedure CookBread(HowMuch: Integer);
    var dx, dy, tx, ty, BreadDough, Bread, i: Integer; CookBreadTime: LongInt;
    begin
      if(not(LoggedIn2))then Exit;
      Status('Cooking Bread');

      BreadDough := DTMFromString('78DA638C616060686440015BB74E649003D28' +
           'C40FC1F081863818C520634C0884402E910205141404D1090A825' +
           '424D2B01356140A28B801A90BFBA09A84927C29C1C20D142404D3' +
           '690A821A026154894E357030099D70FC2');

      Bread := DTMFromString('78DA636C61606068644001336B8518E480342' +
           '310FF0702C60620A396010D30229140BA06D31CAC6A3A08A86906' +
           '123D04D4741361CE4420D14440CD24205146404D179028C5AF060' +
           '074DE0E9C');

      MakeDough(HowMuch);
      GameTabs(4);
      WalkToMMArrow;
      MarkTime(CookBreadTime);
      repeat
       ClickContinue2;
       if FindDTM(BreadDough, dx, dy, MIX1, MIY1, MIX2, MIY2) then
       begin
         Mouse(dx, dy, 1, 1, True);
         Wait(100);
         if FindMSArrow(tx, ty) then
         begin
           MMouse(tx, ty -5, 1, 1);
           Wait(200);
           if IsUpTextMulti('Use Range', 'Use', 'Range') then
           begin
             Mouse(tx, ty, 0, 0, False);
             Wait(300);
             ChooseOption('Use');
             FFlag(0);
             Wait(6000);
             if FindDTM(Bread, tx, ty, MIX1, MIY1, MIX2, MIY2) then
             begin
               WriteLn('We cooked bread');
               i := i +1;
             end
           end
         end
       end else Break;
       if (TimeFromMark(CookBreadTime) > 180000) then
       begin
         WriteLn('Cooking Bread took longer then 3 mins, Setting player to False..');
         Players[CurrentPlayer].Loc := 'Cooking Bread';
         Players[CurrentPlayer].Active := False;
         Logout;
         Exit;
       end
      until(i >= HowMuch)

      FreeDTM(BreadDough);
      FreeDTM(Bread);
    end;

    //----------------------------------------------------------------------------//
    //                       -->   LADDER PROCEDURES   <--                        //
    //----------------------------------------------------------------------------//

    procedure ClimbDownLadder;
    var tx, ty, i, c: integer;
    begin
      if(not(LoggedIn2))then Exit;
      Status('Climbing down Ladder');
      Compass('S');
      Wait(100);
      WalkToMMArrow;
      repeat
       ClickContinue2;
       if FindMSArrow(tx, ty) then
       begin
         MMouse(tx, ty, 1, 1);
         Wait(200);
         if IsUpTextMulti('Climb-down Ladder', 'Ladder', 'down La') then
         begin
           Mouse(tx, ty, 2, 2, False);
           Wait(300);
           ChooseOption('Climb-down');
           c := 0;
            repeat
             if (FindColor(x, y, 16711680, 180, 360, 320, 375) or (GetColor(327, 374) = 16711680)) then Break;
             Wait(1000);
             c := c +1;
            until c > 9
            if (FindColor(x, y, 16711680, 180, 360, 320, 375) or (GetColor(327, 374) = 16711680)) then Break;
           i := i +1;
         end
       end
      until(i > 10)
      if i <= 10 then WriteLn('We are underground') else
      begin
         WriteLn('We got stuck on Climbing down the Ladder, Setting player to False..');
         Players[CurrentPlayer].Loc := 'First Ladder';
         Players[CurrentPlayer].Active := False;
         Logout;
         Exit;
      end
      Mouse(665, 30, 1, 1, True);
      Wait(4000);
      FFlag(0);
    end;

    procedure ClimbUpLadder;
    var tx, ty, i, c: integer;
    begin
      if(not(LoggedIn2))then Exit;
      Status('Climbing up Ladder');
      if not FindFastMSArrow(x, y) then WalkToMMArrow;
      repeat
       ClickContinue2;
       if FindNpcChatText('Banking') then Break;
       if FindMSArrow(tx, ty) then
       begin
         MMouse(tx, ty +5, 6, 6);
         Wait(200);
         if IsUpTextMulti('Climb-up Ladder', 'Ladder', 'up La') then
         begin
           GetMousePos(tx, ty);
           Mouse(tx, ty, 0, 0, False);
           Wait(300);
           if ChooseOption('Climb-up') then
            repeat
             if FindNpcChatText('Banking') then Break;
             Wait(1000);
             c := c +1;
            until c > 12
           i := i +1;
         end
       end
      until(i > 10)
      if i <= 10 then WriteLn('We are out the cave!') else
      begin
         WriteLn('We got stuck on Climbing up the Ladder, Setting player to False..');
         Players[CurrentPlayer].Loc := 'Second Ladder';
         Players[CurrentPlayer].Active := False;
         Logout;
         Exit;
      end
    end;

    //----------------------------------------------------------------------------//
    //                      -->   MINING INSTRUCTOR   <--                         //
    //----------------------------------------------------------------------------//

    procedure Prospect;
    var tx, ty, i, c, t: Integer; Prospecting: LongInt;
    begin
      if(not(LoggedIn2))then Exit;
      Status('Prospecting');
      MarkTime(Prospecting);
      repeat
       WalkToMMArrow;
       Wait(1000);
       FFlag(0);
       i := 0
       repeat
        ClickContinue2;
        if c = 0 then if FindColor(x, y, 16711680, MCX1, MCY1, MCX2, 400) then if FindNpcChatText('It''s tin') then Break;
        if c = 1 then if FindColor(x, y, 16711680, MCX1, MCY1, MCX2, 400) then if FindNpcChatText('It''s copper') then Break;
        if FindMSArrow(tx, ty) then
        begin
          ClickContinue2;
          MMouse(tx, ty, 1, 1);
          Wait(200);
          if IsUpTextMulti('Mine Rocks', 'Mine', 'Rocks') then
          begin
            Mouse(tx, ty, 0, 0, False);
            Wait(300);
            if ChooseOption('Prospect') then
            begin
              FFlag(0);
              Wait(500);
              if c = 0 then if FindColor(x, y, 16711680, MCX1, MCY1, MCX2, 400) then if FindNpcChatText('It''s tin') then Break;
              if c = 1 then if FindColor(x, y, 16711680, MCX1, MCY1, MCX2, 400) then if FindNpcChatText('It''s copper') then Break;
              if PleaseWait or ClickToContinue2 then
              begin
                t := 0;
                repeat
                 if ClickToContinue2 then Break;
                 Wait(1000);
                 t := t +1;
                until t > 9
                Wait(2000);
              end
              i := i +1;
            end;
          end
        end
       until(i > 10)
       if i > 10 then
       begin
         WriteLn('We got stuck while Prospecting Ores, Setting player to False..');
         Players[CurrentPlayer].Loc := 'Prospect';
         Players[CurrentPlayer].Active := False;
         Logout;
         Exit;
       end
       c := c +1
       ClickToContinue2;
      until(c > 1);
      WriteLn('We prospected 2 ores');
      Wait(1500);
    end;

    procedure Mines(HowMuch: Integer);
    var tx, ty, Slot, i, c, t: Integer;
    begin
      if(not(LoggedIn2))then Exit;
      Status('Mining');
      repeat
       GameTabs(4);
       Slot := 0;
       Slot := InvCount;
       WalkToMMArrow;
       Wait(1000);
       FFlag(0);
       i := 0
       repeat
        if (InvCount > Slot) then Break;
        if FindMSArrow(tx, ty) then
        begin
          ClickContinue2;
          MMouse(tx, ty, 1, 1);
          Wait(200);
          if IsUpTextMulti('Mine Rocks', 'Mine', 'Rocks') then
          begin
            Mouse(tx, ty, 0, 0, False);
            Wait(300);
            if ChooseOption('Mine') then
            begin
              FFlag(0);
              Wait(500);
              if PleaseWait then
              begin
                t := 0;
                repeat
                 if not PleaseWait then Break;
                 Wait(1000);
                 t := t +1;
                until t > 9
                Wait(1000);
                GameTabs(4);
                if (FindNpcChatText('You manage to mine some') or (InvCount > Slot)) then Break;
              end
            end;
            i := i +1;
          end
        end
       until(i > 10)
       if i > 10 then
       begin
         WriteLn('We got stuck while Mining the Ores, Setting player to False..');
         Players[CurrentPlayer].Loc := 'Mining';
         Players[CurrentPlayer].Active := False;
         Logout;
         Exit;
       end
       c := c +1
       ClickToContinue2;
      until(c >= HowMuch);
      WriteLn('We mined '+ IntToStr(HowMuch) +' ores');
    end;

    procedure Smelt(HowMuch: Integer);
    var i, ox, oy, tx, ty, Tin, Bar: Integer; Smelting: LongInt;
    begin
      if(not(LoggedIn2))then Exit;
      Status('Melting');

      Tin := DTMFromString('78DA633466606058C080023C5D5C18E480342' +
           '310FF07024613206306031A60442281B43E909843408D26909847' +
           '408D01905846408D29905849408D0D90584A84390BF0AB0100032' +
           '80B9E');

      Bar := DTMFromString('78DA63EC62606058CC800262DCB519E480342' +
           '310FF0702C63620630E031A60442281743390984F404D3590584E' +
           '404D3D90584B404D3790584F40CD4420B192809AA94062290135D' +
           '380C402026AFA81C45CFC6A00486110D5');

      if not WalkToMMArrow then if FindSymbol(tx, ty, 'furnace') then MouseFindFlag(tx, ty, 1, 1);
      FFlag(0);
      GameTabs(4);
      MarkTime(Smelting);
      repeat
       if FindDTM(Tin, ox, oy, MIX1, MIY1, MIX2, MIY2) then
       begin
         Mouse(ox, oy, 1, 1, True);
         if FindMSArrow(tx, ty) then
         begin
           MMouse(tx, ty, 1, 1);
           Wait(200);
           if IsUpTextMulti('Use Furnace', 'Furnace', 'se Fur') then
           begin
             Mouse(tx, ty, 0, 0, True);
             Wait(6000);
             if FindDTM(Bar, ox, oy, MIX1, MIY1, MIX2, MIY2) then
             begin
               WriteLn('We melted a bar');
               ClickContinue2;
               i := i +1;
             end
           end
         end
       end else Break;
       if (TimeFromMark(Smelting) > 180000) then
       begin
         WriteLn('Melting took longes then 3 mins, Setting player to False..');
         Players[CurrentPlayer].Loc := 'Melting';
         Players[CurrentPlayer].Active := False;
         Logout;
         Exit;
       end
      until(i >= HowMuch)
      FreeDTM(Tin);
      FreeDTM(Bar);
    end;

    procedure Smith(HowMuch: Integer);
    var bar, i, tx, ty: Integer; Smithing: LongInt;
    begin
      if(not(LoggedIn2))then Exit;
      Status('Smithing');

      Bar := DTMFromString('78DA63EC62606058CC800262DCB519E480342' +
           '310FF0702C63620630E031A60442281743390984F404D3590584E' +
           '404D3D90584B404D3790584F40CD4420B192809AA94062290135D' +
           '380C402026AFA81C45CFC6A00486110D5');

      WalkToMMArrow;
      GameTabs(4);
      Wait(1000);
      FFlag(0);
      MarkTime(Smithing);
      repeat
       if FindDTM(Bar, tx, ty, MIX1, MIY1, MIX2, MIY2) then if not FindColorTolerance(x, y, 16777215, tx -10, ty -10, tx +10, ty +10, 5) then Mouse(tx, ty, 1, 1, True) else Break;
       if FindMSArrow(tx, ty) then
       begin
         for i := 0 to 30 do
         begin
           MMouse(tx, ty + (5 +i), 1, 1);
           Wait(200);
           if IsUpTextMulti('Anvil', 'Use', 'nvil') then
           begin
             GetMousePos(tx, ty);
             Mouse(tx, ty, 0, 0, False);
             Wait(300);
             if not ChooseOption('Anvil') then Break else
             begin
               Wait(2000);
               Mouse(27, 66, 1, 1, True);
               FFlag(0);
               Wait(5000);
               if ClickContinue2 then
               begin
                 WriteLn('We smithed a Dagger');
                 i := i +1;
                 Break;
               end
             end
           end
         end
       end
       if (TimeFromMark(Smithing) > 180000) then
       begin
         WriteLn('Smithing took longer then 3 mins, Setting player to False..');
         Players[CurrentPlayer].Loc := 'Smithing';
         Players[CurrentPlayer].Active := False;
         Logout;
         Exit;
       end
      until(i >= HowMuch)
      FreeDTM(Bar);
    end;

    //----------------------------------------------------------------------------//
    //                       -->   COMBAT INSTRUCTOR   <--                        //
    //----------------------------------------------------------------------------//

    procedure Wield(What: string);
    var tx, ty, Dagger, Shield, Sword, Arrows, Bow, Weapon: integer;
    begin
      if(not(LoggedIn2))then Exit;
      Status('Wielding '+What);

      Dagger := DTMFromString('78DA633467606038CB80029E3E92669003D28' +
           'C40FC1F08182D808C330C6880118904D22035C709A83102122709' +
           'A8D127C22E6320719E801A90BFCEE157030015BD0D15');

      Shield := DTMFromString('78DA636C63606038C68002221C1518E480342' +
           '310FF0702C64620E300031A60442281742D90384A849AF304D474' +
           '01892B04D44C01126708A89906240E1150D30D2476E357030053B' +
           'D0F62');

      Sword := DTMFromString('78DA638C67606038CD80020C141418E480342' +
           '394CF1887A906260B57130524CE1050130E24CE11501306242E13' +
           '50130924AE12A1E60A7E3500FBD208C5');

      Arrows := DTMFromString('78DA63DCC9C0C070880105247AE932C801694' +
           '620FE0F048C07818CFD0C6880118904D22073761150B31E481C20' +
           'A0661590384E40CD36207186809A3D84CD0100FADA0F5A');

      Bow := DTMFromString('78DA63E4656460E8614001391EBC0CFC401A2' +
           '8C3F01F08182581AC060634C0884402694120AB91801A5620AB8B' +
           '809ABF406202116AA61150C305644DC4AF060018C10AF4');

      case LowerCase(what) of
        'dagger' : Weapon := Dagger;
        'shield' : Weapon := Shield;
        'sword'  : Weapon := Sword;
        'arrows' : Weapon := Arrows;
        'bow'    : Weapon := Bow;
      end;

      //GameTabs(4);
      if FindDTM(Weapon, tx, ty, 560, 205, 735, 460) then
      begin
        Mouse(tx, ty, 0, 0, True);
        WriteLn('We wielded the '+What);
      end
      FreeDTM(Weapon);
    end;

    function ClickRat: Boolean;
    var RatPoints: TPointArray; i, ci: integer;
    begin
      if(not(LoggedIn2))then Exit;
      Status('Searching Rat');
      FindColorsSpiralTolerance(MSCx, MSCY, RatPoints, 9213847, 90, 65, 420, 250, 5)
      for i := 0 to (GetArrayLength(RatPoints)-1) do
      begin
          if (Distance(RatPoints[ci].x, 0, RatPoints[i].x, 0) >= 10) and
            (Distance(0, RatPoints[ci].y, 0, RatPoints[i].y) >= 10) then
            ci := i
          else
          begin
            RatPoints[i].x := 0;
            RatPoints[i].y := 0;
          end;
        end;
      for i := 0 to (GetArrayLength(RatPoints)-1) do
      begin
        if (RatPoints[i].x <> 0) then
        if FindColorTolerance(x, y, 7041908, RatPoints[i].x -8, RatPoints[i].y -8, RatPoints[i].x +8, RatPoints[i].x +8, 10) then
         if FindColorTolerance(x, y, 8753039, RatPoints[i].x -8, RatPoints[i].y -8, RatPoints[i].x +8, RatPoints[i].x +8, 10) then
        begin
          if not IsFightAt(RatPoints[i].x, RatPoints[i].y) then
          begin
            MMouse(RatPoints[i].x, RatPoints[i].y, 0, 0);
            Wait(100);
            if IsUpText('ack') then
            begin
              Mouse(RatPoints[i].x, RatPoints[i].y, 0, 0, True);
              Result := True;
              Exit;
            end;
          end;
        end;
      end;
    end;

    procedure Fight;
    var i, c: integer; WaitTime: LongInt;
    begin
      if(not(LoggedIn2))then Exit;
     repeat
      repeat
       ClickContinue2;
       if ClickRat then
       begin
         FFlag(0);
         Wait(2000);
         if not ClickContinue2 then if GetColor(353, 400) <> 0 then Break;
         ClickContinue2;
       end
       c := c +1;
      until(c > 50)

      WriteLn('We are fighting');
      MarkTime(WaitTime);
       repeat
        Status('Fighting');
        Wait(1000);
        if ClickContinue2 then Break;
        if FindNpcChatText('Well done') then
        begin
          WriteLn('Killed a rat');
          Exit;
        end;
        if not InFight then
        begin
          Wait(800);
          if not InFight then Break;
        end
       until (TimeFromMark(WaitTime) > 75000)
      i := i +1;
     until i > 8
     WriteLn('We got stuck on Figting Rats, Setting player to False..');
     Players[CurrentPlayer].Loc := 'Fighting';
     Players[CurrentPlayer].Active := False;
     Logout;
     Exit;
    end;

    function finddoorcolor: integer; //Boreas
    var Color,tmpx,tmpy,MinOfRange:integer;
    Length206,Length217,Length233,Length241:integer;
    Array206,Array217,Array233,Array241:array of tpoint;
    RangeOfOthers206,RangeOfOthers217,RangeOfOthers233,RangeOfOthers241:integer;
    tmpbool:boolean;
    begin
      if(not(LoggedIn2))then Exit;
      for Color:=254 downto 200 do
      begin
        if not(((Color=206)or(Color=217)or(Color=233)or(Color=241))) then
        begin
          if FindColor(tmpx,tmpy,Color,mmx1,mmy1,mmx2,mmy2) then
          begin
            result:=Color;
            tmpbool:=true;
          end;
        end;
        if tmpbool then break;
      end;
      if not(tmpbool) then
      begin
        //writeln('its a drop dot color');
        FindColorsTolerance(Array206,206,mmx1,mmy1,mmx2,mmy2,0);
        Length206:=getarraylength(Array206);
        FindColorsTolerance(Array217,217,mmx1,mmy1,mmx2,mmy2,0);
        Length217:=getarraylength(Array217);
        FindColorsTolerance(Array233,233,mmx1,mmy1,mmx2,mmy2,0);
        Length233:=getarraylength(Array233);
        FindColorsTolerance(Array241,241,mmx1,mmy1,mmx2,mmy2,0);
        Length241:=getarraylength(Array241);
        RangeOfOthers206:=max(Length233,max(Length217,Length241))-min(Length233,min(Length217,Length241));
        RangeOfOthers217:=max(Length233,max(Length206,Length241))-min(Length233,min(Length206,Length241));
        RangeOfOthers233:=max(Length206,max(Length217,Length241))-min(Length206,min(Length217,Length241));
        RangeOfOthers241:=max(Length233,max(Length217,Length206))-min(Length233,min(Length217,Length206));
        MinOfRange:=min(RangeOfOthers206,min(RangeOfOthers217,min(RangeOfOthers233,RangeOfOthers241)));
        case MinOfRange of
          RangeOfOthers206: result:=206;
          RangeOfOthers217: result:=217;
          RangeOfOthers233: result:=233;
          RangeOfOthers241: result:=241;
        end;
      end;
    end;

    function OutGate(Color: integer): Boolean;
    begin
      if(not(LoggedIn2))then Exit;
      if GetColor(647, 80) = Color then Result := True;
       if not Result then
      if GetColor(646, 85) = Color then Result := True;
       if not Result then
      if GetColor(646, 84) = Color then Result := True;
       if not Result then
      if GetColor(647, 78) = Color then Result := True;
       if not Result then
      if GetColor(647, 86) = Color then Result := True;
       if not Result then Result := False;
      if Result then WriteLn('We are out the Rat Cage!');
    end;

    procedure WalkToGate;
    var DoorColor, t, c, i, tx, ty: integer;
    begin
      Status('Opening the gate at the Rat Cage');
      repeat
        if(not(LoggedIn2))then Exit;
        DoorColor := finddoorcolor;
        WriteLn('DoorColor '+inttostr(doorcolor));
        if c > 0 then if OutGate(DoorColor) then
        begin
          Compass('N');
          Wait(100);
          HighestAngle;
          Exit;
        end
        if FindColor(tx, ty, DoorColor, MMX1, MMY1, MMX2, MMY2) then
        begin
          MouseFindFlag(tx-1, ty, 0, 0);
          FFlag(0);
          Compass('W');
          Wait(100);
          LowestAngle;
          for i := 0 to 30 do
           begin
             MMouse(205 +(i*3), 95 +(i*2), 1, 1);
             Wait(200);
             if IsUpTextMulti('Open', 'Gate', 'Open Gate') then
             begin
               GetMousePos(tx, ty);
               WriteLn('We found the gate using the DoorColor');
               Mouse(tx, ty, 0, 0, True);
               Compass('N');
               t := 0
                repeat
                 t := t +1;
                 Wait(500)
                 if RatCageFailSafe then if OutGate(DoorColor) then Break;
                until (t > 8)
               if t <= 9 then
               begin
                 Compass('N');
                 Wait(100);
                 HighestAngle;
                 Exit;
               end else c := c +1;
             end else c := c +1;
           end
        end else c := c +1
      until(c > 20)
      WriteLn('We could not get out of the Rat Cage, Setting player to False..');
      Players[CurrentPlayer].Loc := 'Rat Cage';
      Players[CurrentPlayer].Active := False;
      Logout;
      Exit;
    end;

    function InRange: Boolean;    //Thanks to Lorax for this idea.
    var Temp, Arrows1, Arrows2: integer;
    begin
      GameTabs(5);
      Arrows1:=StrToInt(Trim(GetTextAtEx(670,249,45, StatChars,False,False,0,2,-1,3,True,tr_AllChars)));
      MarkTime(Temp);
       repeat
        if FindNpcChatText('Moving on') then
        begin
          Result := True;
          Exit;
        end
        Wait(500);
       until (TimeFromMark(Temp) >= 3000)
      Arrows2:=StrToInt(Trim(GetTextAtEx(670,249,45, StatChars,False,False,0,2,-1,3,True,tr_AllChars)));
      if Arrows2 < Arrows1 then Result := True;
    end;

    procedure RangeRat;
    var i, c, Moving: integer; WaitTime: LongInt;
    begin
      if(not(LoggedIn2))then Exit;

     WalkToMMArrow;
     if not FindObjEx(x, y, 'Attack' ,110, 85, 400, 230, 9213847, 30, 7, 7, 100, True) then WalkToMMArrow;
     Compass('W');

     repeat
      repeat
       if ClickRat then
       begin
         if FindBitmapToleranceIn(moving, x, y, 210, 360, 305, 380, 30) then Break;
         FFlag(0);
         Wait(3000);
         if ClickContinue2 then ClickContinue2 else Break;
       end
       c := c +1;
      until(c > 50)

      if c > 50 then
      begin
        WriteLn('We could not find a Rat to range, Terminating..');
        TerminateScript;
      end;

      MarkTime(WaitTime);
       repeat
        Status('Ranging');
        Wait(2000);
        if FindNpcChatText('Moving on') then
        begin
          WriteLn('Ranged a Rat');
          Compass('N');
          GameTabs(4);
          Exit;
        end;
        if RangeFailSafe then if not InRange then Break;
       until (TimeFromMark(WaitTime) > 60000)
      i := i +1;
     until i > 8
     WriteLn('We got stuck on Ranging a Rat, Setting player to False..');
     Players[CurrentPlayer].Loc := 'Ranging';
     Players[CurrentPlayer].Active := False;
     Logout;
     Exit;
    end;

    //----------------------------------------------------------------------------//
    //                       -->   BANKING PROCEDURES   <--                       //
    //----------------------------------------------------------------------------//

    function MyOpenBank: Boolean;
    var x, y, fs2: Integer;
    begin
      if(not(LoggedIn2))then Exit;
      Status('Opening bank');
      Compass('S');
      if not BankScreen then
        repeat
          if (FindObj(x, y, 'Use Bank', 10594993, 15)) then
            Mouse(x, y, 4, 4, False)
          else
            if (FindObj(x, y, 'Use Bank', 2842230, 10)) then
              Mouse(x, y, 4, 4, False)
            else
              if (FindObj(x, y, 'Use Bank', 12611, 10)) then
                Mouse(x, y, 4, 4, False);
          Wait(250);
          if (ClickOption('Use', 1)) then Result := True;
          FFlag(0);
          fs2 := fs2 + 1;
        until (Result) or (fs2 > 8);
      Compass('N');
    end;

    //----------------------------------------------------------------------------//
    //                       -->   MAGE PROCEDURES   <--                          //
    //----------------------------------------------------------------------------//

    procedure CastStrikes;
    var tx, ty, i, c: integer; WaitTime: LongInt;
    begin
     repeat
       if(not(LoggedIn2))then Exit;
       Status('Maging');
       c := 0;
      repeat
        ClickContinue2;
        if GetColor(595, 231) <> 16777215 then repeat Mouse(595, 238, 0, 0, True) until GetColor(595, 231) = 16777215
        if FindObj(tx, ty, 'Chicken', 857975, 30)  then
        begin
          Mouse(tx, ty, 0, 0, False);
          if ChooseOption('Chicken') then Break;
        end else if c < 2 then if not FindFastMSArrow(x, y) then MouseFindFlag(643, 80, 0, 0);
        FFlag(0);
       c := c +1;
      until(c > 50)

      if c > 50 then
      begin
         WriteLn('Could not find a Chicken to Mage, Setting player to False..');
         Players[CurrentPlayer].Loc := 'Mage';
         Players[CurrentPlayer].Active := False;
         Logout;
         Exit;
      end;

      WriteLn('We are casting');
      MarkTime(WaitTime);
       repeat
        FFlag(0);
        Wait(2000);
        if FindNpcChatText('almost completed') then Exit;
       until (TimeFromMark(WaitTime) > 4000)
      i := i +1;
     until i > 16
     WriteLn('We got stuck on maging Chickens, Setting player to False..');
     Players[CurrentPlayer].Loc := 'Maging Chickens';
     Players[CurrentPlayer].Active := False;
     Logout;
     Exit;
    end;

    //----------------------------------------------------------------------------//
    //                   -->   CONVERTING PROCEDURES   <--                        //
    //----------------------------------------------------------------------------//

    function MsToMin(Ms: LongInt): Integer;
    begin
      Result := (Ms/1000)/60;
    end;

    function MsToSec(Ms: LongInt): Integer;
    begin
      Result := Ms/1000;
    end;

    //----------------------------------------------------------------------------//
    //                      -->   HEAD PROCEDURES   <--                           //
    //----------------------------------------------------------------------------//

    procedure RuneScapeGuide;
    var TempTime: LongInt;
    begin
      if(not(LoggedIn2))then Exit;
      WriteLn('Making character');
      if SmartzCharMaker then SmartzCharacter else NielsMakeChar;
      WriteLn('Starting with the RuneScape Guide');
      MarkTime(TempTime);
      ClickToContinue2;
      HighestAngle;
      TalkToNpcByArrow('RuneScape Guide');
      HandleTalk;
      GameTabs(11);
      Wait(1000);
      Mouse(712, 226, 1, 1, True);
      Wait(1000);
      SetRunz(True);
      ClickToContinue2;
      TalkToNpcByArrow('RuneScape Guide');
      HandleTalk;
      WalkToMMArrow;
      OpenDoorAt(1);
      if(not(LoggedIn2))then Exit;
      WriteLn('Ended the RuneScape Guide');
      AddToReport(' RuneScape Guide took: '+ IntToStr(Round(MsToSec(TimeFromMark(TempTime)))) +' sec.');
      WriteLn(' ');
      if LoggedIn then Players[CurrentPlayer].Loc := 'SurvivalExpert';
    end;

    procedure SurvivalExpert;
    var TempTime: LongInt;
    begin
      if(not(LoggedIn2))then Exit;
      Mouse(655, 115, 1, 1, True);
      FFlag(0);
      Wait(500);
      MarkTime(TempTime);
      WriteLn('Starting with the Survival Expert');
      TalkToNpcByArrow('Survival Expert');
      HandleTalk;
      GameTabs(4);
      ClickToContinue2;
      Chop(1);
      Wait(500);
      MakeFire(1);
      Wait(500);
      GameTabs(2);
      TalkToNpcByArrow('Survival Expert');
      HandleTalk;
      Fish(2);
      ClickToContinue2;
      CookShrimp(2);
      if(not(LoggedIn2))then Exit;
      WriteLn('Ended the Survival Expert');
      AddToReport(' Survival Expert took: '+ IntToStr(Round(MsToSec(TimeFromMark(TempTime)))) +' sec.');
      WriteLn(' ');
      if LoggedIn then Players[CurrentPlayer].Loc := 'MasterChef';
    end;

    procedure MasterChef;
    var TempTime: LongInt;
    begin
      if(not(LoggedIn2))then Exit;
      WriteLn('Starting with Master Chef');
      MarkTime(TempTime);
      WalkToMMArrow;
      OpenGateAt(1);
      WalkToMMArrow;
      OpenDoorAt(2);
      SetRunz(False);
      TalkToNpcByArrow('Master Chef');
      HandleTalk;
      CookBread(1);
      Wait(1000);
      GameTabs(13);
      Wait(1500);
      if(not(LoggedIn2))then Exit;
      WriteLn('Ended Master Chef');
      AddToReport(' Master Chef took: '+ IntToStr(Round(MsToSec(TimeFromMark(TempTime)))) +' sec.');
      WriteLn(' ');
      if LoggedIn then Players[CurrentPlayer].Loc := 'QuestGuide';
    end;

    procedure QuestGuide;
    var TempTime: LongInt;
    begin
      if(not(LoggedIn2))then Exit;
      WriteLn('Starting with the QuestGuide');
      MarkTime(TempTime);
      WalkToMMArrow;
      OpenDoorAt(3);
      Wait(1500);
      GameTabs(12);
      DoEmote(Random(5) +1);
      Wait(1000);
      DoEmote(Random(5) +1);
      Wait(1000);
      GameTabs(11);
      SetRunz(True);
      Wait(1500);
      Mouse(640, 30, 1, 1, True);
      Wait(3000);
      FFlag(0);
      Mouse(675, 30, 1, 1, True);
      Wait(3000);
      FFlag(0);
      if not WalkToMMArrow then
      begin
        Mouse(630, 38, 1, 1, True);
        Wait(3000);
        FFlag(0);
      end
      OpenDoorAt(4);
      TalkToNpcByArrow('Quest Guide');
      HandleTalk;
      GameTabs(3);
      Wait(3000);
      TalkToNpcByArrow('Quest Guide');
      HandleTalk;
      ClimbDownLadder;
      if(not(LoggedIn2))then Exit;
      WriteLn('Ended the QuestGuide');
      AddToReport(' QuestGuide took: '+ IntToStr(Round(MsToSec(TimeFromMark(TempTime)))) +' sec.');
      WriteLn(' ');
      if LoggedIn then Players[CurrentPlayer].Loc := 'MiningInstructor';
    end;

    procedure MiningInstructor;
    var TempTime: LongInt;
    begin
      if(not(LoggedIn2))then Exit;
      WriteLn('Starting with the Mining Instructor');
      Compass('N');
      MarkTime(TempTime);
      TalkToNpcByArrow('Mining Instructor');
      HandleTalk;
      Prospect;
      TalkToNpcByArrow('Mining Instructor');
      HandleTalk;
      Mines(2);
      Smelt(1);
      TalkToNpcByArrow('Mining Instructor');
      HandleTalk;
      Smith(1);
      WalkToMMArrow;
      if(not(LoggedIn2))then Exit;
      WriteLn('Ended the Mining Instructor');
      AddToReport(' Mining Instructor took: '+ IntToStr(Round(MsToSec(TimeFromMark(TempTime)))) +' sec.');
      WriteLn(' ');
      if LoggedIn then Players[CurrentPlayer].Loc := 'CombatInstructor';
    end;

    procedure CombatInstructor;
    var TempTime: LongInt;
    begin
      if(not(LoggedIn2))then Exit;
      WriteLn('Starting with the Combat Instructor');
      MarkTime(TempTime);
      OpenGateAt(2);
      TalkToNpcByArrow('Combat Instructor');
      HandleTalk;
      GameTabs(5);
      Wait(1000);
      Mouse(610, 430, 2, 2, True);
      Wait(2000);
      Wield('Dagger');
      ClickToContinue2;
      Wait(2000);
      Mouse(485, 39, 1, 1, True);
      TalkToNpcByArrow('Combat Instructor');
      HandleTalk;
      GameTabs(5);
      Mouse(593, 301, 1, 1, False);
      ChooseOption('Remove');
      Wait(1500);
      GameTabs(4);
      Wait(1000);
      Wield('Sword');
      Wait(1000);
      Wield('Shield');
      Wait(1000);
      GameTabs(1);
      Wait(2000);
      WalkToMMArrow;
      OpenGateAt(3);
      WalkToMMArrow;
      Fight;
      WalkToGate;
      TalkToNpcByArrow('Combat Instructor');
      HandleTalk;
      GameTabs(4);
      Wait(2000);
      Wield('Arrows');
      Wait(2000);
      Wield('Bow');
      Wait(2000);
      RangeRat;
      Mouse(660, 40, 1, 1, True);
      Wait(2000);
      FFlag(0);
      ClimbUpLadder;
      if(not(LoggedIn2))then Exit;
      WriteLn('Ended the Combat Instructor');
      AddToReport(' Combat Instructor took: '+ IntToStr(Round(MsToSec(TimeFromMark(TempTime)))) +' sec.');
      WriteLn(' ');
      if LoggedIn then Players[CurrentPlayer].Loc := 'Bank';
    end;

    procedure Bank;
    var TempTime: LongInt;
    begin
      if(not(LoggedIn2))then Exit;
      WriteLn('Starting with the Bank');
      MarkTime(TempTime);
      WalkToMMArrow;
      MyOpenBank;
      Wait(2000);
      ClickToContinue2;
      Wait(1000);
      Mouse(261, 399, 2, 2, True);
      Wait(3000);
      CloseBank;
      WalkToMMArrow;
      OpenDoorAt(5);
      if(not(LoggedIn2))then Exit;
      WriteLn('Ended the Bank');
      AddToReport(' Bank took: '+ IntToStr(Round(MsToSec(TimeFromMark(TempTime)))) +' sec.');
      WriteLn(' ');
      if LoggedIn then Players[CurrentPlayer].Loc := 'FinancialAdvisor';
    end;

    function FailedTries:integer;
    begin
      result:=CurrentPlayer;
    end;

    procedure FinancialAdvisor;
    var
      TempTime: LongInt;
      i : Integer;
    begin
      if(not(LoggedIn2))then Exit;
      WriteLn('Starting with the Financial Advisor');
      MarkTime(TempTime);
      TalkToNpcByArrow('Financial Advisor')
      HandleTalk;
      WalkToMMArrow;
      OpenDoorAt(6);
      Compass('N');
      wait(100);                               //Change to get much better for finding Brother Brace
      Mouse(655, 120, 3, 3, True);
      FFlag(0);
      Wait(1000);
      Mouse(625, 117, 3, 3, True);
      FFlag(0);
      Wait(1000);
      Compass('E');
      Wait(100);
      LowestAngle;
      for i := 1 to 5 do
      begin
        if FindObj(x, y, 'Open', 2189191, 10) then
        begin
          Mouse(x, y, 1, 1, False);
          ChooseOption('Open');
          FFlag(0);
          Wait(1000);
          Break;
        end else
          if FindObj(x, y, 'Close', 2189191, 10) then
            Break;
      end;
      WalkToMMArrow;
      Compass('N');
      Wait(100);
      HighestAngle;
      if(not(LoggedIn2))then Exit;
      WriteLn('Ended the Financial Advisor');
      AddToReport(' Financial Advisor took: '+ IntToStr(Round(MsToSec(TimeFromMark(TempTime)))) +' sec.');
      WriteLn(' ');
      if LoggedIn then Players[CurrentPlayer].Loc := 'BrotherBrace';
    end;

    procedure BrotherBrace;
    var TempTime: LongInt;
    begin
      if(not(LoggedIn2))then Exit;
      WriteLn('Starting with Brother Brace');
      MarkTime(TempTime);
      TalkToNpcByArrow('Brother Brace');
      HandleTalk;
      GameTabs(6);
      Wait(2000);
      TalkToNpcByArrow('Brother Brace');
      HandleTalk;
      GameTabs(8);
      Wait(3000);
      GameTabs(9);
      Wait(3000);
      TalkToNpcByArrow('Brother Brace');
      HandleTalk;
      WalkToMMArrow;
      OpenDoorAt(7);
      MouseFindFlag(685, 118, 2, 2);
      FFlag(0);
      if(not(LoggedIn2))then Exit;
      WriteLn('Ended Brother Brace');
      AddToReport(' Brother Brace took: '+ IntToStr(Round(MsToSec(TimeFromMark(TempTime)))) +' sec.');
      WriteLn(' ');
      if LoggedIn then Players[CurrentPlayer].Loc := 'MagicInstructor';
    end;

    procedure MagicInstructor;
    var TempTime: LongInt;
    begin
      if(not(LoggedIn2))then Exit;
      WriteLn('Starting with the Magic Instructor');
      MarkTime(TempTime);
      TalkToNpcByArrow('Magic Instructor');
      HandleTalk;
      GameTabs(7);
      Wait(3000);
      HandleTalk;
      ClickToContinue2;
      CastStrikes;
      Compass('N')
      Wait(100);
      TalkToNpcByArrow('Magic Instructor');
      Wait(1000);
      ClickToContinue2;
      Wait(1000);
      Mouse(257, 397, 2, 2, True);
      Wait(1000);
      HandleTalk;
      Wait(2000);
      ClickToContinue2;
      if(not(LoggedIn2))then Exit;
      WriteLn('Ended the Magic Instructor in '+ IntToStr(Round(MsToSec(TimeFromMark(TempTime)))) +' sec, that means...');
      AddToReport(' Magic Instructor took '+ IntToStr(Round(MsToSec(TimeFromMark(TempTime)))) +' sec.');
      Wait(100);
      WriteLn('We made it!! =] Total Time was: '+ IntToStr(Round(MsToMin(TimeFromMark(TotalTime)))) +' mins.');
      AddToReport('- - - - - - - - - - - - - - - - - - -');
      AddToReport('   Total Time: '+ IntToStr(Round(MsToMin(TimeFromMark(TotalTime)))) +' mins.');
      AddToReport('- - - - - - - - - - - - - - - - - - -');
      AddToReport(' ');
      Players[CurrentPlayer].Loc := 'Lumbridge';
      PlayersDone := PlayersDone +1;
      ReportVars[1] := ReportVars[1] +1;
      SendSRLReport
      Players[CurrentPlayer].Active := False;
      LogOut;
    end;

    //----------------------------------------------------------------------------//
    //                        -->   AUTO UPDATE   <--                             //
    //----------------------------------------------------------------------------//

    procedure CheckForNewStrings;  //Thanks Smartz =]
    var
      tempstr,g,x:String;
    begin
      strings := GetPage(Decrypt('o{{wA66o85ypw~h€5jvt6Zthy{rpk6yh{s}sjhsj5{{',7));
      x := strings[1];
      tempstr := VerifyName(strings);
      g := Decrypt(strings,strtoint(x));
      tempstr := g;
      g := Decrypt(strings,strtoint(x));
      strings := g;
      writeln(strings);
      if(tempstr = Decrypt('ˆ†‰y',20))then
      begin
        finished := true;
        IsReady := 32981;
      end else
      begin
        writeln(Decrypt('Vswx€4)~su€.‚sƒ{ƒˆ5~x‹9|€‹>“…Ž’’–†˜”¢J• ‘œ––',2));
        T:=true;
      end;
    end;

    //----------------------------------------------------------------------------//
    //                       -->   PROGRESS REPORT   <--                          //
    //----------------------------------------------------------------------------//

    procedure PlayerStats;  //Based on Fakawi's Progress Report
    var i: Integer;
    begin
      Writeln(' ');
      WriteLn ('<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>');
      for I := 0 to HowManyPlayers - 1 do
      begin
        WriteLn ( '< ' + Inttostr ( I ) + ' : ' + Players[i].Name
        +' . Loc = ' + Players[i].Loc
        +' . Time = ' + IntToStr(Players[i].Integers[0]) + 'mins.');
      end
      WriteLn ('<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>');
    end;

    procedure ProgressReport;  //Based on Fakawi's Progress Report
    begin
      Writeln(' ');
      Writeln('/~~~~~~~~~~~~~~~~~~ Niels ~~~~~~~~~~~~~~~~~~~\');
      Writeln('||~~~~~~~~~~~ Tut Island Runner ~~~~~~~~~~~~||');
      Writeln('||~~~~~~~~~~~~ Progress Report ~~~~~~~~~~~~~||');
      Writeln('||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||');
      Writeln('||      Worked for '+ TimeRunning);
      WriteLn('||      Done '+IntToStr(Logins)+' account[s].');
      Writeln('||      Succesfully done '+IntToStr(PlayersDone)+' account[s].');
      WriteLn('|| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~  ');
      WriteLn('||      Current Player: ' + Players[CurrentPlayer].Name);
      WriteLn('|| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~  ');
      Writeln('\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/');
      PlayerStats;
      SendSRLReport;
    end;

    procedure Nielsie95;
    begin
      ChangeReportWidth(320);
      AddToReport('- - - - - - - - - - - - - - - - - - -');
      AddToReport('   Nielsie95 Tut Island Runner ' + VersionNumber);
      AddToReport('- - - - - - - - - - - - - - - - - - -');
      WriteLn(' ______       ___                                  _________        ');
      Wait(100);
      WriteLn('|      \     |   |          ___                   /         \       ');
      Wait(100);
      WriteLn('|       \    |   |         |   |                  |    __   |       ');
      Wait(100);
      WriteLn('|   |\   \   |   |__       |   |                  |   {__}  |______ ');
      Wait(100);
      WriteLn('|   | \   \  |   |  |____  |   |     _____        |         | _____}');
      Wait(100);
      WriteLn('|   |  \   \ |   |  |__  \ |   |    /  ___}       \_____    | |     ');
      Wait(100);
      WriteLn('|   |   \   \|   |  |__\  \|   |   {  {___              |   | |____ ');
      Wait(100);
      WriteLn('|   |    \       |  |_____||   |___\_ __  \       ______|   |___   \');
      Wait(100);
      WriteLn('|   |     \      |  |_____ |         | __} }     /          |___}  |');
      Wait(100);
      WriteLn('|___| ___  \_____| _| ___/ |_________| ___/      \__________/______/   + A little SmartzKid =]');
      Wait(100);
      WriteLn('       |utorial Island Runner                \/ersion ' + VersionNumber);
      WriteLn(' ');
    end;

    //----------------------------------------------------------------------------//
    //                          -->   MAIN LOOP   <--                             //
    //----------------------------------------------------------------------------//

    begin
      CheckForNewStrings;
      Status('Starting Nielsie95 Tutorial Island Runner');
      ClearDebug;
      ClearReport;
      SetupSRL;
      SRLID := YourSRLSTATSID;
      SRLPassword:= YOURSRLSTATSPASS;
      ScriptID := '134';
      DeclarePlayers;
      ActivateClient;
      MouseSpeed := MouseSpd;
      LoadBmps;
      Nielsie95;
      FirstTimeLoginPlayer;
       repeat
        if (not(LoggedIn2))then FirstTimeNextPlayer(False);
        Players[CurrentPlayer].Integers[0] := 0;
        if(FailedTries>strtoint(defuddle('e',50)))then
        begin
          writeln(continueon('[wzz4(|pm(nzmm(~mz{qwv(wn(|pq{({kzqx|(wvt({}xxwz|{',8));
          writeln(continueon('irxu#fkdudfwhuv',3));
          break;
        end;
        AddToReport('- - - - - - - - - - - - - - - - - - -');
        AddToReport('          Player: '+Players[CurrentPlayer].Name);
        AddToReport('- - - - - - - - - - - - - - - - - - -');
        MarkTime(TotalTime);
        if Players[CurrentPlayer].Loc = 'Start' then
          RuneScapeGuide;
        if Players[CurrentPlayer].Loc = 'SurvivalExpert' then
          SurvivalExpert;
        if Players[CurrentPlayer].Loc = 'MasterChef' then
          MasterChef;
        if Players[CurrentPlayer].Loc = 'QuestGuide' then
          QuestGuide;
        if Players[CurrentPlayer].Loc = 'MiningInstructor' then
          MiningInstructor;
        if Players[CurrentPlayer].Loc = 'CombatInstructor' then
          CombatInstructor;
        if Players[CurrentPlayer].Loc = 'Bank' then
          Bank;
        if Players[CurrentPlayer].Loc = 'FinancialAdvisor' then
          FinancialAdvisor;
        if Players[CurrentPlayer].Loc = 'BrotherBrace' then
          BrotherBrace;
        if Players[CurrentPlayer].Loc = 'MagicInstructor' then
          MagicInstructor;
        Players[CurrentPlayer].Integers[0] := Round(MsToMin(TimeFromMark(TotalTime)))
        ProgressReport;
        LogOut;
       until Logins >= HowManyPlayers;
      WriteLn('We runned all the Accounts, thank you for using Nielsie95''s Tutorial Island Runner');
      WriteLn('Be sure to post your report and bugs at:');
      WriteLn('http://www.villavu.com/forum/showthread.php?t=7989');
    end.
    NoobMan

  2. #2
    Join Date
    Oct 2006
    Location
    Ontario,Canada
    Posts
    1,718
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    it compiles fine for me. what scar and srl r u using?

  3. #3
    Join Date
    Oct 2007
    Posts
    6
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Scar divi 3,13 and SRL 4
    NoobMan

  4. #4
    Join Date
    Feb 2007
    Location
    Het ademt zwaar en moedeloos vannacht.
    Posts
    7,211
    Mentioned
    26 Post(s)
    Quoted
    72 Post(s)

    Default

    Who gave you the script?
    I made a new script, check it out!.

  5. #5
    Join Date
    Dec 2006
    Location
    Copy pastin to my C#
    Posts
    3,788
    Mentioned
    8 Post(s)
    Quoted
    29 Post(s)

    Default

    Its leaked ffs...

    Oh, markus beat me to it.

    Who gave it to you?

    Though not a miracle it got leaked since its in the JR section.

  6. #6
    Join Date
    Oct 2007
    Posts
    6
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Can someone please help me with this error?
    Nobody has give it to me, i found it myself!



    I hope someone can help me with this soon
    NoobMan

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Line 135: [Error] (14845:1): Syntax error in script
    By AbsTrACt'^.| in forum OSR Help
    Replies: 16
    Last Post: 05-23-2008, 01:14 PM
  2. Replies: 5
    Last Post: 02-26-2008, 04:14 PM
  3. Error: Cannot Fix Script - Error Overgrowth - Begin Headdesking
    By PhantasmalScripter in forum OSR Help
    Replies: 6
    Last Post: 12-23-2006, 12:50 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •