Results 1 to 16 of 16

Thread: Error in PowerChopper script

  1. #1
    Join Date
    Nov 2006
    Posts
    28
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default Error in PowerChopper script

    Hi!
    Help me please with PowerChopper. When I run it, it gives and error: "Unknown identifier 'c0' ".
    What's the problem?
    Help, please.

    P.S. I uploaded PowerChopper, which I trying to use.

  2. #2
    Join Date
    Jul 2006
    Location
    NY
    Posts
    371
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Dont use this. As I can tell its outdated by the includes. Find something else thats up to date.
    Sorry for the inconvience.
    ~jR

  3. #3
    Join Date
    Nov 2006
    Posts
    28
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by Junior View Post
    Sorry for the inconvience.
    That's OK. No problem.
    Excuse, could you tell me abou this errors:
    Unknown identifier 'FindBirdsNest'
    Unknown identifier 'FindEnt'
    Unknown identifier 'FindHead'
    Unknown identifier 'DropAllLogs'
    Unknown identifier 'FindAxeHeadColor

    What's wrong with this?
    I'm using SSI2 version: 1.6, BoxBreaker2 V1.1, BoxBreaker v1.31, OSi v4.011, SRL v3.5. Is that OK or there is something better? Tell me please and upload, if you can.
    Thanks.

  4. #4
    Join Date
    Jul 2006
    Location
    NY
    Posts
    371
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    That means it cant find the procedures. Those are SRL procedures and you dont have SRL.
    Ill give you the download link in a second.

    EDIT: Heres the link
    http://www.villu-reborn.com/showthread.php?t=3410
    After you install SRL correctly those errors wont appear anymore.

  5. #5
    Join Date
    Oct 2006
    Posts
    119
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    This is for scripting help, are you looking to edit the script, or just to get autoing?

  6. #6
    Join Date
    Nov 2006
    Posts
    28
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by CamHart View Post
    are you looking to edit the script, or just to get autoing?
    I want get autoing and I want to learn scar scripting too, but almost all scripts, what I have downloaded don't work. So I must solve first this problem.

  7. #7
    Join Date
    Nov 2006
    Posts
    28
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by Junior View Post
    EDIT: Heres the link
    http://www.villu-reborn.com/showthread.php?t=3410
    After you install SRL correctly those errors wont appear anymore.
    Thanks. I'll try.
    In fact, I already downloaded from this link, but I try one more time.

  8. #8
    Join Date
    Nov 2006
    Posts
    28
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    One more error. What's it means: "Invalid number of parameters"? How to fix this one?
    Help, please.

  9. #9
    Join Date
    Jun 2006
    Location
    The Netherlands
    Posts
    2,984
    Mentioned
    3 Post(s)
    Quoted
    1 Post(s)

    Default

    well, Mouse needs 5 parameters, the x and y coords of where it must click, the random changes in x and y and left or right click, so it would look something like this :

    Mouse(X, Y, 5, 5, true);

    But if you have Mouse(X, Y, 55, true);
    then there are 4 parameters so the number of parameters is invalid. This is just an example, i don't know if you have a problem with Mouse or with something else.

  10. #10
    Join Date
    Nov 2006
    Posts
    28
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Excuse me,
    tell me please, what kind of problem this is: "Line 170: [Hint] (178:43): Variable 'NEWLINE' ' if script has only 95 lines?
    And more error:
    " Unknown identifier 'FindObjEx' ".
    " Unknown identifier 'New Line' "
    " Unknown identifier 'x' "
    " Unknown identifier 'x' " if line is " if(FindColorSpiral(x,y,16711680,5,345,510,465))and (not(GetColor(20,434)=0))then "
    As I said, I have SRl v350. Why this error then comes up?
    Help, please.

    P.S. Sorry guys, but I really need your help to lear Pascal in scar and solve errors myself in future.

  11. #11
    Join Date
    Nov 2006
    Posts
    28
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Bump!

  12. #12
    Join Date
    Feb 2006
    Location
    Tracy/Davis, California
    Posts
    12,631
    Mentioned
    135 Post(s)
    Quoted
    418 Post(s)

    Default

    please don't double post or bump......
    this is starblaster really old powerchopper written with some old include.
    i doubt it works too well (because runescape got updated a lot) but i bet if someone converted to srl it would be fine
    id just look for another woodcutting script written with SRL

  13. #13
    Join Date
    Jun 2006
    Location
    USA
    Posts
    1,828
    Mentioned
    1 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by AlexandrSN View Post
    That's OK. No problem.
    Excuse, could you tell me abou this errors:
    Unknown identifier 'FindBirdsNest'
    Unknown identifier 'FindEnt'
    Unknown identifier 'FindHead'
    Unknown identifier 'DropAllLogs'
    Unknown identifier 'FindAxeHeadColor

    What's wrong with this?
    I'm using SSI2 version: 1.6, BoxBreaker2 V1.1, BoxBreaker v1.31, OSi v4.011, SRL v3.5. Is that OK or there is something better? Tell me please and upload, if you can.
    Thanks.
    if these errors comes when you are using that powecutter, the problem is in include SSI2 or you don't even have that include. Or you may have and old version of SSI2 include. I have SSI2 version 1.8 you may need to download it for makig script work.

  14. #14
    Join Date
    Feb 2006
    Location
    Tracy/Davis, California
    Posts
    12,631
    Mentioned
    135 Post(s)
    Quoted
    418 Post(s)

    Default

    I dont think the latest version of SSI2 is availble for downlaod anywhere. only palce to get it is from other beople i belive.
    and like i said. there should be a few good powerchoppers somehwere in the free scritps form. Star just posted those scritps to be nice and let scripts tweak them a bit to work with the new rs.

    here is SSI2 1.8 got it stright from starblaster.

    argh uploading isnt woking so here lol:

    SCAR Code:
    {========================================================================]
    [                       Stupid3ooo's Scripting and                       ]
    [                   Random Event Protection Include II                   ]
    [                             version: 1.8                               ]
    [========================================================================]
    | This is must be put in the same folder as the script it is included    |
    | with. This is mainly used for my own functionality and use, but feel   |
    | free to use it if you want. Be sure to check for updates on this and   |
    | other scripts by Stupid3ooo.                                           |
    [=========================================================================]
    [ *Be sure to open SSI2.txt for more options.                             ]
    [ *For general SCAR help go to:                                           ]
    |     [url]http://www.kaitnieks.com/files/SCARGUIDE/SCARGUIDE.htm[/url]              ]
    [ Thanks to, RS Cheating community                                        ]
    [ *PLEASE POST ANY BUGS/HELP IN THE FORUMS OR E-MAIL                      ]
    [   [email]RSTradeMonkey@hotmail.com[/email], or [email]Stupid3ooo@gmail.com[/email]                    ]
    [ If you like pwease donate to me :) at:                                  ]
    [   [url]http://www.stupid3ooo.co.nr[/url]                                           ]
    [=========================================================================}


    const
    //=//===========================Setup================================\\=\\
    PermUser='';                          //Sets username for all Stupid3ooo scripts.
    PermPass='';                          //Sets password for all Stupid3ooo scripts.
    PermScarScape=false;                  //Sets Scarscape for all Stupid3ooo scripts.
    smooth=true;                          //If you want human-like mouse movements.
    movespeed= 30;                        // 1 - 30 : slow - fast
    movewait= 50;                         //Wait in ms after the mouse has moved.
    movewaitran= 50;                      //Random amount to wait after the mouse has moved.
    clicktiming= 100;                     //Wait in ms after the mouse has clicked.
    clicktimingran= 100;                  //Random amount to wait after the mouse has clicked.
    TypeSendTime= 50;                     //Wait between each letter when typing.
    TypeSendRan= 50;                      //Random amount to wait between each letter when typing.
    r= 2;                                 //How random the mouse clicks are 0-3 are best.
    MaskName= 'Document 1 - Microsof...'; //Name you want scar to be disguised as.
    CheckHpFirst= true;                   //If you want the script to look at the hp and see that it's been lowered before it runs away from a fight.
    GasTolerance= 15;                     //Tolerance to find gas color.
    PickUpItems= true;                    //If you want to pick up random items after losing a pick to try to find it.
    Debug=false;                          //If set to true it will show messages and windows that are used for debugging purposes.
    UsePivGas=false;                      //If you want to use piv's GasCheck(x,y); in all instances my FindGas(x,y); are used.
    SymbolAccuracy= 0.5;                  //How accurate it must be, in %, to find symbols or icons on the minimap.
    LoginAfterMod= 15;                    //How many minutes to wait to log back in after the script sees a mod(0 ends the script).
    LogTimeOut= false;                    //If you want to let Runescape timeout instead of actually logging out for anit-ban.
    KillScriptTime= 0;                    //Used in the preset AntiBan; procedure to kill the script after chosen hours, leave as 0 to not kill the script.
    Screenshots= true;                    //If you want the script to save screenshots of random events.
    SolveForester= false;                 //If you want the scrip to atempt to solve the forester, false if you want it to log out.
    LampChoice= 'hitpoints';              //What stat you want to choose for the FindNormalRandoms procedure when solving a lamp.
    // *To set your own chat phrases press ctrl+f and type in: RandomChat; then replace everything then phrases in ''.
    //=\\================================================================//=\\

    var
      x,y,s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,logs,attaches,lamps,fights,talks,LoginTry,
      lamp,PickAxe,PickAxeSteel,hc1,hc2,  hc3,hc4,hc5,PickHandle,PickHead,Ore,
      orecolor1,orecolor2,orecolor3,orecolor,  GasColor,UpChars,ChatChars,StatChars,
      CWindow,LogOutMark,RandomChatMark,RotateMark,KillScriptMark,LeaveScreenMark,
      bmpLeaveTheArea,bmpFreakyForester,bmpPheasantMeat,Frog,FrogSpot,Frogs,
      Foresters,Doctors,bmpNet,bmpCage,bmpRod,bmpFlyRod,bmpHarpoon,
      FishingEquipmentColor,AxeHeadColor,Certers:integer;
      Username,Password,SetCamera,FishingEquipmentName:string;
      ST:LongInt;
      ScarScape,LogsOut,Chats,Rotates:Boolean;

    //============================================================================\\
    //===========Taken from Library (C)2004 Alex aka PPLSUQBAWLZ==================\\
    //============================================================================\\

    // /////////////////////////// //
    // Moves the mouse.            //
    // /////////////////////////// //
    Procedure MMouse(mousex,mousey,ranx,rany:integer);
    var  randx, randy:integer;
    begin
         randx:=mousex+random(ranx); randy:=mousey+random(rany);
         if(smooth)then MoveMouseSmoothEx(randx+1,randy, 2, 4, movespeed, 20, 10)
         else MoveMouse(randx,randy);
         sleep(movewait+random(movewaitran));
    end;

    // /////////////////////////// //
    // Moves then clicks mouse.    //
    // /////////////////////////// //
    Procedure Mouse(mousex,mousey,ranx,rany:integer; left:boolean);
    var a,b,c:integer;
    begin
         if(smooth)then
         begin
              MMouse(mousex,mousey,ranx,rany);
              GetMousePos(b,c);
              HoldMouse(b+1,c,left);
              repeat
                    wait(10+random(40));
                    a:=a+1;
              until(a>4);
              GetMousePos(b,c);
              ReleaseMouse(b,c,left);
         end;
         if(not smooth)then
         begin
              MMouse(mousex,mousey,ranx,rany);
              GetMousePos(b,c);
              clickmouse(b,c,left);
         end;
         wait(clicktiming+random(clicktimingran));
    end;

    // /////////////////////////// //
    // Waits while flag exists.    //
    // /////////////////////////// //
    Procedure Flag;
    var flagimage,timeout:integer;
    begin

         flagimage := BitmapFromString(2, 2,'FF00005D3311C656045D3311');
         timeout:=0
         repeat
          timeout:=timeout+1;
               wait(250);
         until(not findbitmapin( flagimage, x, y, 570, 5, 725, 162)) or (timeout > 120);
         freebitmap(flagimage);
    end;

    // /////////////////////////// //
    // T/F depending on flag exist.//
    // /////////////////////////// //
    Function FlagPresent:boolean;
    var flagimage:integer;
    begin
         flagimage := BitmapFromString(2, 2,'FF00005D3311C656045D3311');
         if(findbitmapin( flagimage, x, y, 570, 5, 725, 162))then result:=true;
         freebitmap(flagimage);
    end;

    // /////////////////////////// //
    // Switches between tabs.      //
    // /////////////////////////// //
    procedure GameTab(tabnumber:Integer);
    begin
     case tabnumber of
      1:if(GetColor(559,179)=5531511)then Mouse(559,186,5,5,true);
      2:if(GetColor(591,176)=5531511)then Mouse(585,186,5,5,true);
      3:if(GetColor(618,176)=5531511)then Mouse(614,186,5,5,true);
      4:if(GetColor(636,174)=5531511)then Mouse(650,186,5,5,true);
      5:if(GetColor(682,174)=5531511)then Mouse(683,186,5,5,true);
      6:if(GetColor(683,175)=5531511)then Mouse(711,186,5,5,true);
      7:if(GetColor(734,177)=5531511)then Mouse(738,186,5,5,true);
      8:if(GetColor(705,495)=5531511)then Mouse(710,480,5,5,true);
     end;
    end;

    // /////////////////////////// //
    // Sends text human-like.      //
    // /////////////////////////// //
    Procedure TypeSend(text:string);
    var  LoadNumber:Integer;
    begin
         LoadNumber:=1;
         repeat
               SendKeysSilent(StrGet(Text, loadnumber));
               LoadNumber:=LoadNumber+1;
               Wait(TypeSendTime+random(TypeSendRan));
         until(LoadNumber>Length(text));
    end;

    Procedure DisguiseScar(disguise:string);
    var application:tapplication;
        Self: TForm;
    begin
        Application:= GetApplication;
        Application.Title:= disguise;
        Self:= GetSelf;
        Self.Caption:= disguise;
    end;

    // /////////////////////////// //
    // Counts your inventory.      //
    // /////////////////////////// //
    function InventoryCount:integer;
    var used,i,e:integer;
    begin
         e:=0; i:=0; used:=0;
         GameTab(4);
         while(i < 6) do
         begin
              if (i = 5) and (e < 8) then
              begin
                   i:= 0; e:= e + 1;
              end;
              if (FindColor(x,y,65536,(571+47*i),(215+36*e),(601+47*i),(245+36*e)))then used:=used+1;
         i:= i + 1;
         end;
         result:=used;
    end;

    //============================================================================\\
    //===========================SSI Procedures===================================\\
    //============================================================================\\

    procedure SetRun(run:Boolean);//From Si.scar
    begin
      GameTab(8);
      case run of
        True: if(GetColor(640,275)=5334129)then Mouse(620,265,5,5,true);
        False:if(GetColor(581,250)=5334129)then Mouse(580,265,5,5,true);
      end;
    end;

    procedure ChatsOff;//from Si.scar
    var
      x, y, setx, sety, i: Integer;
    begin
      for i:=0 to 2 do
      begin
        setx:= 55 + (i*135);
        sety:= 490;
        while(FindColor(x,y,16776960,setx-10,sety-10,setx+10,sety+10))do
          Mouse(x,y,5,5,true)
        while(FindColor(x,y,65280,setx-10,sety-10,setx+10,sety+10))do
          Mouse(x,y,5,5,true)
        while(FindColor(x,y,65535,setx-10,sety-10,setx+10,sety+10))do
          Mouse(x,y,5,5,true)
      end;
    end;

    function BankScreen:Boolean;//From Si.scar
    begin
      result:=IsTextAtEx(185,34,'The Bank of',30,UpChars,True,False,0,0,-1)
    end;

    {function LoggedIn:boolean;
    var
      LoggedinBMP : integer;
    begin
      LoggedinBMP := BitmapFromString(6, 10, 'z78DA73737573757371' +
           '03930638801BAA1A43201C5583430D2E120046214F91');
    if(FindBitmapSpiralTolerance(LoggedinBMP, x, y, 625, 464, 650, 490, 10))then
      Result := true;
    FreeBitmap(LoggedinBMP);
    end;  }


    function LoggedIn : Boolean;
    begin
      if (GetColor(646, 482) = 16645886) then
        Result := True;
    end;

    procedure Logout;
    var
      c:integer;
    begin
      if(LogTimeOut)then
      begin
        Wait(90000);
      end
      else if(LoggedIn)then
      begin
        Mouse(645,485,3,3,true);
        Wait(100+random(100));
        Mouse(635,375,4,4,true);
        while(LoggedIn)and(c<10)do
        begin
          c:=c+1;
          Wait(500+random(100));
        end;
      end;
    end;

    function Option(s:string):boolean;
    begin
      result:=false;
      if(IsTextAt2(9,9,s,100))then
        result:=true;
    end;

    function Option2(s:string):boolean;
    var
      tempx,tempy:integer;
    begin
      result:=false;
      if(IsTextInAreaEx(0,0,515,25,tempx,tempy,s,100,UpChars,True,False,0,1,-1))then
        result:=true;
    end;

    function GetOption:string;
    begin
    result:=GetTextAtEx(8,7,130,UpChars,True,False,0,1,-1,40,False,tr_AlphaNumericChars);
    end;

    function FindText(txt:string;font,xs,ys,xe,ye:integer):boolean;
    var
      s:integer;
    begin
      s:=CreateBitmapMaskFromText(txt,font);
      if(FindBitmapMaskTolerance(s,x,y,xs,ys,xe,ye,10,85))then
        result:=true;
      FreeBitmap(s);
    end;

    function ClickText(txt:string;font,xs,ys,xe,ye:integer;left:boolean):boolean;
    var
      s:integer;
    begin
      s:=CreateBitmapMaskFromText(txt,font);
      if(FindBitmapMaskTolerance(s,x,y,xs,ys,xe,ye,10,85))then
      begin
        Mouse(x+10,y+3,r,r,left);
        Result:=true;
      end;
      FreeBitmap(s);
    end;

    function FindTextFont(txt:string;font:integer):boolean;
    var s:integer;
    begin
    s:=CreateBitmapMaskFromText(txt,font);
    if(FindBitmapMaskTolerance(s,x,y,0,0,760,500,10,85))then
      result:=true;
    FreeBitmap(s);
    end;

    function ClickTextFont(txt:string;font:integer;left:boolean):boolean;
    begin
    if(FindTextFont(txt,font))then
      begin
      Mouse(x+10,y+3,r,r,left);
      result:=true;
      end;
    end;

    function FindMSText(txt:string):boolean;//Bold(2)
    begin
    if(FindBitmapMaskTolerance(CreateBitmapMaskFromText(txt,UpChars),x,y,3,3,515,338,10,85))then
      result:=true;
    end;

    function ClickMSText(txt:string;left:boolean):boolean;//Bold(2)
    begin
    if(FindMSText(txt))then
      begin
      Mouse(x+10,y+3,r,r,true);
      result:=true;
      end;
    end;

    function FindChatText(txt:string):boolean;//Chat(1)
    begin
    if(FindBitmapMaskTolerance(CreateBitmapMaskFromText(txt,ChatChars),x,y,9,348,479,433,10,85))then
      result:=true;
    end;

    function NewChatMsg(txt:string):boolean;
    begin
    if(FindBitmapMaskTolerance(CreateBitmapMaskFromText(txt,ChatChars),x,y,17,410,495,452,10,85))then
      result:=true;
    end;

    function GetNewChatMsg:string;
    begin
    result:=GetTextAtEx(21,415,0,ChatChars,False,True,0,0,-1,70,False,tr_NormalChars);
    end;

    function FindInventoryText(txt:string):boolean;////Small(3)
    begin
    if(FindBitmapMaskTolerance(CreateBitmapMaskFromText(txt,StatChars),x,y,553,206,742,465,10,85))then
      result:=true;
    end;

    function FindMMColor(color:integer):boolean;
    begin
    if(FindColor(x,y,color,573,8,723,158))then
      result:=true;
    end;

    function FindMMColorTol(color,tol:integer):boolean;
    begin
    if(FindColorTolerance(x,y,color,573,8,723,158,tol))then
      result:=true;
    end;

    procedure ClickMMColor(color:integer);
    begin
    if(FindColor(x,y,color,573,8,723,158))then
      Mouse(x,y,r,r,true);
    end;

    procedure ClickMMColorTol(color,tol:integer);
    begin
    if(FindColorTolerance(x,y,color,573,8,723,158,tol))then
      Mouse(x,y,r,r,true);
    end;

    function FindMSColor(color:integer):boolean;
    begin
    if(FindColor(x,y,color,3,3,515,338))then
      result:=true;
    end;

    function FindMSColorTol(color,tol:integer):boolean;
    begin
    if(FindColorTolerance(x,y,color,3,3,515,338,tol))then
      result:=true;
    end;

    procedure ClickMSColor(color:integer;left:boolean);
    begin
    if(FindColor(x,y,color,3,3,515,338))then
      Mouse(x,y,r,r,left);
    end;

    procedure ClickMSColorTol(color,tol:integer;left:boolean);
    begin
    if(FindColorTolerance(x,y,color,3,3,515,338,tol))then
      Mouse(x,y,r,r,left);
    end;

    function FindMSDtm(dtm:integer):boolean;
    begin
    if(FindDtm(dtm,x,y,3,3,515,338))then
      result:=true;
    end;

    function FindMMDtm(dtm:integer):boolean;
    begin
    if(FindDtm(dtm,x,y,573,8,723,158))then
      result:=true;
    end;

    procedure MouseFindFlag(ax,ay,xmod,ymod:integer);
    var
      xx,yy:integer;
    begin
      if(not(FlagPresent))then
      begin
        xx:=ax;
        yy:=ay;
        repeat
        xx:=xx+xmod;
        yy:=yy+ymod;
        Mouse(xx,yy,r,r,true);
        until(FlagPresent)or(xx<570)or(xx>725)or(yy<5)or(yy>160)
      end;
    end;

    procedure WalkAsideColorTol(Color:integer;MoveDir,HugSide:string;Tol:integer);//Useful for mapwalking along rivers and mountains
    var
      c,xs,xe,ys,ye,xm,ym:integer;
    begin
      xs:=573;
      ys:=8;
      xe:=723;
      ye:=158;
      while(c<150)do
      begin
        c:=c+5;
        if(Lowercase(MoveDir)='n')or(Lowercase(MoveDir)='north')then
        begin
          ye:=ye-5;
          ym:=3;
        end;
        if(Lowercase(MoveDir)='e')or(Lowercase(MoveDir)='east')then
        begin
          xs:=xs+5;
          xm:=-3;
        end;
        if(Lowercase(MoveDir)='s')or(Lowercase(MoveDir)='south')then
        begin
          ys:=ys+5;
          ym:=-3;
        end;
        if(Lowercase(MoveDir)='w')or(Lowercase(MoveDir)='west')then
        begin
          xe:=xe-5;
          xm:=3;
        end;
        if(not(FindColorTolerance(x,y,color,xs,ys,xe,ye,tol)))then
        begin
          if(Lowercase(MoveDir)='n')or(Lowercase(MoveDir)='north')then
            ye:=ye+10;
          if(Lowercase(MoveDir)='e')or(Lowercase(MoveDir)='east')then
            xs:=xs-10;
          if(Lowercase(MoveDir)='s')or(Lowercase(MoveDir)='south')then
            ys:=ys-10;
          if(Lowercase(MoveDir)='w')or(Lowercase(MoveDir)='west')then
            xe:=xe+10;
          break;
        end;
      end;
      c:=0;
      while(c<150)do
      begin
        c:=c+5;
        if(Lowercase(HugSide)='n')or(Lowercase(HugSide)='north')then
          ye:=ye-5;
        if(Lowercase(HugSide)='e')or(Lowercase(HugSide)='east')then
          xs:=xs+5;
        if(Lowercase(HugSide)='s')or(Lowercase(HugSide)='south')then
          ys:=ys+5;
        if(Lowercase(HugSide)='w')or(Lowercase(HugSide)='west')then
          xe:=xe-5;
        if(not(FindColorTolerance(x,y,color,xs,ys,xe,ye,tol)))then
        begin
          if(Lowercase(HugSide)='n')or(Lowercase(HugSide)='north')then
            MouseFindFlag(xs+xm*3,ys+ym*3,xm,3);
          if(Lowercase(HugSide)='e')or(Lowercase(HugSide)='east')then
            MouseFindFlag(xs+xm*3,ys+ym*3,-3,ym);
          if(Lowercase(HugSide)='s')or(Lowercase(HugSide)='south')then
            MouseFindFlag(xs+xm*3,ys+ym*3,xm,-3);
          if(Lowercase(HugSide)='w')or(Lowercase(HugSide)='west')then
            MouseFindFlag(xs-xm*3,ys+ym*3,xm+3,ym);
          break;
        end;
      end;
    end;

    procedure WalkAsideColor(Color:integer;MoveDir,HugSide:string);//Useful for mapwalking along rivers and mountains
    begin
    WalkAsideColorTol(Color,MoveDir,HugSide,0);
    end;

    function FindBitmapsProgressiveTol(bmp1,bmp2,bmp3,bmp4,bmp5,tolmax,step,xs,ys,xe,ye:integer):boolean;
    var
      c:integer;
    begin
    while(c<tolmax)do
    begin
      c:=c+step;
      if(bmp1>0)then
      begin
        if(FindBitmapSpiralTolerance(bmp1,x,y,xs,ys,xe,ye,c))then
        begin
          result:=true;
          break;
        end;
      end;
      if(bmp2>0)then
      begin
        if(FindBitmapSpiralTolerance(bmp2,x,y,xs,ys,xe,ye,c))then
        begin
          result:=true;
          break;
        end;
      end;
      if(bmp3>0)then
      begin
        if(FindBitmapSpiralTolerance(bmp3,x,y,xs,ys,xe,ye,c))then
        begin
          result:=true;
          break;
        end;
      end;
      if(bmp4>0)then
      begin
        if(FindBitmapSpiralTolerance(bmp4,x,y,xs,ys,xe,ye,c))then
        begin
          result:=true;
          break;
        end;
      end;
      if(bmp5>0)then
      begin
        if(FindBitmapSpiralTolerance(bmp5,x,y,xs,ys,xe,ye,c))then
        begin
          result:=true;
          break;
        end;
      end;
    end;
    end;

    function GetSymbolColor(name:string):integer;//Thank you SCAR 2.0 for making this much easier, work in progress
    var
      Bitmap,Color,c:integer;
      acc:extended;
    begin
      if(lowercase(name)='bank')then
      begin
        Bitmap := BitmapFromString(15, 5, 'z78DA33B434B4343473B' +
           '100421364D2D9D2C9C9D4C4CDCDD5D1CCD0C2D5DCC5D00299ED04' +
           '8226C824B25E43B0998664990C213175116F32B2F9C824B2F9A4B' +
           'A1997F9B842865493890F734C9301ACE46928');
        Color:=6417151;
      end;
      if(lowercase(name)='mining spot')or(lowercase(name)='mining site')then
      begin
        Bitmap := BitmapFromString(15, 5, 'z78DA95D03B0EC430' +
             '0804D02B610C832931D9DCFF48894293C8DAD5464853F07905342' +
             '91A67A46FF43BA31914AE602183A9E5686799A64E3C04BA4CFA43' +
             '7E98439C770971257CB09F934B8E089F2FE43287A2F534166629A' +
             '1121D03DB5BB94C0B1D9D811E2DEF66ED94BCF6BFC97753A33BF3' +
             '7ABBCAEB9F0FD413672D');
        Color:=4219541;
      end;
      if(lowercase(name)='transportation')then
      begin
        Bitmap := BitmapFromString(15, 5, 'z78DA33303534347074353' +
             '4B73032219E34763173348592A62E666E66A6C8B20660330D904C' +
             '86A841D6858BC454896C3EA6C9C498899FC465B291A3B193910B3' +
             '124A69910715C269317CEC866229B0C00B3496273');
        Color:=2650848;
      end;
      if(lowercase(name)='magic shop')then
      begin
        Bitmap := BitmapFromString(15, 5, 'z78DA95D0510A80300806' +
             'E02B9906B6C77F3AEF7FA4A0066DABC17A1111FD1469A74CC5C46' +
             '0D6C60875CEA17288D63CE08C771D02A09BA5CBA499DC99AD3CFA' +
             'EB72041B97B9D9C83F6F2ECE69C3D71F46F9EE5C979D155AFDBAA' +
             '5BBFF312D915399C927AF756C82');
        Color:=1714669;
      end;
      if(lowercase(name)='water source')or(lowercase(name)='water')then
      begin
        Bitmap := BitmapFromString(15, 5, 'z78DAA5CF410A80300C44' +
             'D12B25B6A964E9907AFF2329CC42A5448A12F874111EA9A89C830' +
             'A438C6DB646B7A51BF6C27A75F3C8F659D16BE665F68F7C37B121' +
             '3AF8162D2DE2FDF21999E628B3DFE4C7DF1339BB9CE601EA0F684' +
             '0');
        Color:=14497281;
      end;
      if(lowercase(name)='furnace')then
      begin
        Bitmap := BitmapFromString(15, 5, 'z78DA333034004247472763' +
             '47130869E4686C6C64626266E46CE0E66A616666608C8B84A881A' +
             '8B770B434B6809A60608880044CB6B434333072B57033323084B1' +
             '07BDC934080D62485C26030023CF61C9');
        Color:=222952;
      end;
      if(lowercase(name)='anvil')then
      begin
        Bitmap := BitmapFromString(15, 5, 'z78DA95CF510AC0300803D02B' +
             'A59DE0F2D9F6FE771A2CFB10CAC4FE04117C443434D8E4C2EA4A8' +
             '7DFCE8B06FB369AF38C025E139B5C7194EA106F73B9D2991C187D' +
             '3773F92F2BE6A91CBFD05CE9FC00C9DB6164');
        Color:=4012591;
      end;
      if(lowercase(name)='rare trees')or(lowercase(name)='tree')then
      begin
        Bitmap := BitmapFromString(15, 5, 'z78DA33303400424757270' +
             'B4757086960686209128390E6F84833470B20696C618E6E020262' +
             '33D99C0C9238938976391269E16A69614192C96012EC6B2889C34' +
             'CFC26639A0F516FE46CE80267BB9AB919B8426C413613393400AC' +
             '8C5FC9');
        Color:=96513;
      end;
      if(lowercase(name)='fishing spot')or(lowercase(name)='fish')then
      begin
        Bitmap  := BitmapFromString(15, 5, 'z78DA8DCE410E80300844D12B4D5BA' +
             '9BAA404EE7F2413675343AA6EFE82D217D061682636ACCCADA779' +
             '045B641F117987CDAFB84D2479D67257B28A0EFD90B9C9F9BB3FD' +
             'FF02EC337F347B39977D83F37AFFEA2D76EDEA4543DE870B2922F' +
             'BB6B6878');
        Color:=16743189;
      end;
      FindDeformedBitmapToleranceIn(Bitmap,x,y,570,5,725,160,70,0,True,acc);
      if(acc>SymbolAccuracy)then
      begin
        repeat
        c:=c+5;
        if(FindColorTolerance(x,y,Color,x,y,x+15,y+5,c))then
          result:=GetColor(x,y);
        until(result>0)or(c>70);
      end;
      FreeBitmap(Bitmap);
    end;

    function FindSymbol(name:string):boolean;
    begin
      if(GetSymbolColor(Lowercase(name))>0)then
        Result:=true;
    end;

    procedure FindSymbolColorIfNeeded(SymbolName:string;TerminateIfNotFound:boolean;var Color:integer);
    begin
      if(Color=0)then
      begin
        Color:=GetSymbolColor(SymbolName);
        if(Color>0)then
        begin
          writeln(SymbolName+': '+inttostr(Color));
        end else if(TerminateIfNotFound)then
        begin
          WriteLn('Could not find '+SymbolName+' color please restart the script and/or choose your own colors.');
          TerminateScript;
        end;
      end;
    end;

    function ChooseOption(txt:string):boolean;
    var
      s,cancel,x1,y1,x2,y2,LeftCorner,RightCorner:integer;
    begin
      LeftCorner := BitmapFromString(4, 4, 'z78DA33753135313137C5' +
             '411A600064715CEA914500CACE13F0');
      RightCorner := BitmapFromString(4, 4, 'z78DA33753135313137' +
             'C5200D30002E35F8C501C9C013F0');
      s:=CreateBitmapMaskFromText(txt,UpChars);
      cancel:=CreateBitmapMaskFromText('Cancel',UpChars);
      if(FindBitmap(LeftCorner,x1,y1))and(FindBitmap(RightCorner,x2,y2))then
      begin
        if(FindBitmapMaskTolerance(s,x,y,x1,y1,x2,502,10,85))then
        begin
          Result:=True;
          Mouse(x+10+random(5),y+3,7,3,true);
        end else if(FindBitmapMaskTolerance(cancel,x,y,x1,y1,x2,502,10,85))then
          Mouse(x+10+random(5),y+3,7,3,true);
      end;
      FreeBitmap(LeftCorner);
      FreeBitmap(RightCorner);
      FreeBitmap(s);
      FreeBitmap(cancel);
    end;

    function CountItemColor(color:integer):integer;//based of PPLSUQBAWLZ's InventoryCount
    var
      used,i,e:integer;
    begin
    e:=0; i:=0; used:=0;
    GameTab(4);
    while(i < 6) do
     begin
     if (i = 5) and (e < 8) then
     begin
       i:= 0; e:= e + 1;
     end;
     if(FindColor(x,y,color,(570+39*i),(214+35*e),(609+39*i),(249+35*e)))then used:=used+1;
       i:= i + 1;
     end;
    result:=used;
    end;

    function CountItemColorTol(color,tol:integer):integer;//based off PPLSUQBAWLZ's InventoryCount
    var
      used,i,e:integer;
    begin
    e:=0; i:=0; used:=0;
    GameTab(4);
    while(i < 6) do
    begin
      if (i = 5) and (e < 8) then
      begin
       i:= 0;
       e:= e + 1;
      end;
      if(FindColorTolerance(x,y,color,(570+39*i),(214+35*e),(609+39*i),(249+35*e),tol))then
        used:=used+1;
      i:= i + 1;
    end;
    result:=used;
    end;

    function CountItemBmpTol(bmp,tol:integer):integer;//based of PPLSUQBAWLZ's InventoryCount
    var
      used,i,e:integer;
    begin
    e:=0; i:=0; used:=0;
    GameTab(4);
    while(i < 6) do
    begin
      if (i = 5) and (e < 8) then
      begin
       i:= 0;
       e:= e + 1;
      end;
      if(FindBitmapSpiralTolerance(bmp,x,y,(570+39*i),(214+35*e),(609+39*i),(249+35*e),tol))then
        used:=used+1;
      if(i=4)and(e=7)then
        break;
      i:= i + 1;
    end;
    result:=used;
    end;

    function CountItemName(name:string):integer;//based off PPLSUQBAWLZ's InventoryCount
    var
      c,i,e:integer;
    begin
    e:=0; i:=0;
    GameTab(4);
    while(i < 6) do
     begin
     if (i = 5) and (e < 8) then
     begin
       i:= 0; e:= e + 1;
     end;
     if(FindColor(x,y,65536,(570+39*i),(214+35*e),(609+39*i),(249+35*e)))then
     begin
       MMouse(x,y,r,r);
       if(Option(name))then
         c:=c+1;
     end;
     i:= i + 1;
     end;
    result:=c;
    end;

    function FindItemColor(color:integer):boolean;
    begin
    GameTab(4);
    if(FindColor(x,y,color,554,205,743,465))then
      result:=true;
    end;

    function FindItemColorTol(color,tol:integer):boolean;
    begin
    GameTab(4);
    if(FindColorTolerance(x,y,color,554,205,743,465,tol))then
      result:=true;
    end;

    function FindItemBmpTol(bmp,tol:integer):boolean;
    begin
    GameTab(4);
    if(FindBitmapSpiralTolerance(bmp,x,y,554,205,743,465,tol))then
      result:=true;
    end;

    function FindItemName(name:string):boolean;//based off PPLSUQBAWLZ's InventoryCount
    var
      i,e:integer;
    begin
    e:=0;
    i:=0;
    GameTab(4);
    while(i < 6) do
     begin
     if (i = 5) and (e < 8) then
     begin
       i:= 0; e:= e + 1;
     end;
     if(FindColor(x,y,65536,(571+47*i),(215+36*e),(601+47*i),(245+36*e)))then
     begin
       MMouse(x,y,r,r);
       if(Option(name))then
       begin
         result:=true;
         break;
       end;
     end;
     i:= i + 1;
     end;
    end;

    procedure ClickItemColor(color:integer;left:boolean);
    begin
    if(FindItemColor(color))then
      Mouse(x,y,r,r,left);
    end;

    procedure ClickItemColorTol(color,tol:integer;left:boolean);
    begin
    if(FindItemColorTol(color,tol))then
      Mouse(x,y,r,r,left);
    end;

    procedure ClickItemName(name:string;left:boolean);
    begin
    if(FindItemName(name))then
      Mouse(x,y,r,r,left);
    end;

    procedure ClickItemBmpTol(bmp,tol:integer;left:boolean);
    begin
    if(FindItemBmpTol(bmp,tol))then
      Mouse(x,y,r,r,left);
    end;

    procedure ClickAllItemsColorTolWait(option:string;color,tol,waitnum:integer);//based off PPLSUQBAWLZ's InventoryCount
    var
      i,e:integer;
    begin
    e:=0; i:=0;
    GameTab(4);
    while(i < 6) do
     begin
     if (i = 5) and (e < 8) then
     begin
       i:= 0; e:= e + 1;
     end;
     if(FindColorTolerance(x,y,color,(570+39*i),(214+35*e),(609+39*i),(249+35*e),tol))then
     begin
       if(not(option=''))then
       begin
         Mouse(x,y,r,r,false);
         ChooseOption(option);
       end
       else
         Mouse(x,y,r,r,true);
       wait(waitnum);
     end;
     i:= i + 1;
     end;
    end;

    procedure ClickAllItemsColorWait(option:string;color,waitnum:integer);//based off PPLSUQBAWLZ's InventoryCount
    var
      i,e:integer;
    begin
    e:=0; i:=0;
    GameTab(4);
    while(i < 6) do
     begin
     if (i = 5) and (e < 8) then
     begin
       i:= 0; e:= e + 1;
     end;
     if(FindColor(x,y,color,(570+39*i),(214+35*e),(609+39*i),(249+35*e)))then
     begin
       if(not(option=''))then
       begin
         Mouse(x,y,r,r,false);
         ChooseOption(option);
       end
       else
         Mouse(x,y,r,r,true);
       wait(waitnum);
     end;
     i:= i + 1;
     end;
    end;

    procedure ClickAllItemsBmpTolWait(optionx:string;bmp,tol,waitnum:integer);//based off PPLSUQBAWLZ's InventoryCount
    var
      i,e:integer;
    begin
    e:=0; i:=0;
    GameTab(4);
    while(i < 6) do
     begin
     if (i = 5) and (e < 8) then
     begin
       i:= 0; e:= e + 1;
     end;
     if(FindBitmapSpiralTolerance(bmp,x,y,(570+39*i),(214+35*e),(609+39*i),(249+35*e),tol))then
     begin
       MMouse(x,y,r,r);
       if(not(optionx=''))then
       begin
         Mouse(x,y,r,r,false);
         ChooseOption(optionx);
       end
       else
         Mouse(x,y,r,r,true);
       wait(waitnum);
     end;
     if(i=4)and(e=7)then break;
     i:= i + 1;
     end;
    end;

    procedure ClickAllItemsNameWait(optionx,name:string;waitnum:integer);//based off PPLSUQBAWLZ's InventoryCount
    var
      i,e:integer;
    begin
    e:=0; i:=0;
    GameTab(4);
    while(i < 6) do
     begin
     if (i = 5) and (e < 8) then
     begin
       i:= 0; e:= e + 1;
     end;
     if(FindColor(x,y,65536,(570+39*i),(214+35*e),(609+39*i),(249+35*e)))then
     begin
       MMouse(x,y,r,r);
       if(Option(name))then
       begin
         if(not(optionx=''))then
         begin
           Mouse(x,y,r,r,false);
           ChooseOption(optionx);
         end
         else
           Mouse(x,y,r,r,true);
         wait(waitnum);
       end;
     end;
     i:= i + 1;
     end;
    end;

    procedure ClickAllItemsColor(option:string;color:integer);
    begin
    ClickAllItemsColorWait(option,color,0);
    end;

    procedure ClickAllItemsName(option,name:string);
    begin
    ClickAllItemsNameWait(option,name,0);
    end;

    procedure ClickAllItemsBmpTol(option:string;bmp,tol:integer);
    begin
    ClickAllItemsBmpTolWait(option,bmp,tol,0);
    end;

    procedure ClickAllItemsColorTol(option,name:string;color,tol:integer);
    begin
    ClickAllItemsColorTolWait(option,color,tol,0);
    end;

    function FindObjRay(txt:string;xmod,ymod:integer):boolean;
    var
      mx,my:integer;
    begin
    if(not(Option(txt)))then
    begin
      MMouse(257,169,10,10);
      GetMousePos(mx,my);
      repeat
      mx:=mx+xmod;
      my:=my+ymod;
      MoveMouseSmooth(mx,my);
      wait(10+random(10));
      if(Option(txt))then
      begin
        GetMousePos(x,y);
        Result:=True;
        break;
      end;
      until(mx<=3+xmod)or(mx>=515)or(my<=3+ymod)or(my>=338)
    end;
    end;

    function FindObj(text:string;color,tolerance:integer):boolean;
    var
      a,c,i,x1,y1,x2,y2:integer;
    begin
      if(FindMSColorTol(color,tolerance))then
      begin
        x1:=245;
        y1:=165;
        x2:=277;
        y2:=185;
        repeat
        a:=a+1;
        if(a=1)then
          c:=c+1;
        if(a=3)then
          c:=c+1;
        for i:=1 to c do
        begin
          if(a=1)then
          begin
            x1:=x1+30;
            x2:=x2+30;
          end;
          if(a=2)then
          begin
            y1:=y1-20;
            y2:=y2-20;
          end;
          if(a=3)then
          begin
            x1:=x1-30;
            x2:=x2-30;
          end;
          if(a=4)then
          begin
            y1:=y1+20;
            y2:=y2+20;
          end;
          if(x1=485)and(x2=517)then
            x2:=x2-2;
          if(y1=325)and(y2=345)then
            y2:=y2-7;
          if(x2>515)then
            Break;
          if(FindColorTolerance(x,y,color,x1,y1,x2,y2,tolerance))then
          begin
            MMouse(x,y,r,r);
            if(Option(text))then
            begin
              Result:=true;
              Break;
            end;
          end;
        end;
        if(a=4)then
          a:=0;
        until(x2>515)or(Result=true)
      end;
    end;

    function FindObj2(text:string;color,tolerance:integer):boolean;
    var
      a,c,i,x1,y1,x2,y2:integer;
    begin
      if(FindMSColorTol(color,tolerance))then
      begin
        x1:=245;
        y1:=165;
        x2:=277;
        y2:=185;
        repeat
        a:=a+1;
        if(a=1)then
          c:=c+1;
        if(a=3)then
          c:=c+1;
        for i:=1 to c do
        begin
          if(a=1)then
          begin
            x1:=x1+30;
            x2:=x2+30;
          end;
          if(a=2)then
          begin
            y1:=y1-20;
            y2:=y2-20;
          end;
          if(a=3)then
          begin
            x1:=x1-30;
            x2:=x2-30;
          end;
          if(a=4)then
          begin
            y1:=y1+20;
            y2:=y2+20;
          end;
          if(x1=485)and(x2=517)then
            x2:=x2-2;
          if(y1=325)and(y2=345)then
            y2:=y2-7;
          if(x2>515)then
            Break;
          if(FindColorTolerance(x,y,color,x1,y1,x2,y2,tolerance))then
          begin
            MMouse(x,y,r,r);
            if(Option2(text))then
            begin
              Result:=true;
              Break;
            end;
          end;
        end;
        if(a=4)then
          a:=0;
        until(x2>515)or(Result=true)
      end;
    end;

    function FindObjDtm(text:string;dtm:integer):boolean;
    var
      a,c,i,x1,y1,x2,y2:integer;
    begin
      if(FindMSDtm(Dtm))then
      begin
        x1:=245;
        y1:=165;
        x2:=277;
        y2:=185;
        repeat
        a:=a+1;
        if(a=1)then
          c:=c+1;
        if(a=3)then
          c:=c+1;
        for i:=1 to c do
        begin
          if(a=1)then
          begin
            x1:=x1+30;
            x2:=x2+30;
          end;
          if(a=2)then
          begin
            y1:=y1-20;
            y2:=y2-20;
          end;
          if(a=3)then
          begin
            x1:=x1-30;
            x2:=x2-30;
          end;
          if(a=4)then
          begin
            y1:=y1+20;
            y2:=y2+20;
          end;
          if(x1=485)and(x2=517)then
            x2:=x2-2;
          if(y1=325)and(y2=345)then
            y2:=y2-7;
          if(x2>515)then
            Break;
          if(FindDtm(dtm,x,y,x1,y1,x2,y2))then
          begin
            MMouse(x,y,r,r);
            if(Option(text))then
            begin
              Result:=true;
              Break;
            end;
          end;
        end;
        if(a=4)then
          a:=0;
        until(x2>515)or(Result=true)
      end;
    end;

    function FindObjMulti(text:string;color1,color2,color3,tolerance:integer):boolean;
    var
      a,c,i,x1,y1,x2,y2:integer;
    begin
      if(FindMSColorTol(color1,tolerance))or
      (FindMSColorTol(color2,tolerance))or
      (FindMSColorTol(color3,tolerance))then
      begin
        x1:=245;
        y1:=165;
        x2:=277;
        y2:=185;
        repeat
        a:=a+1;
        if(a=1)then
          c:=c+1;
        if(a=3)then
          c:=c+1;
        for i:=1 to c do
        begin
          if(a=1)then
          begin
            x1:=x1+30;
            x2:=x2+30;
          end;
          if(a=2)then
          begin
            y1:=y1-20;
            y2:=y2-20;
          end;
          if(a=3)then
          begin
            x1:=x1-30;
            x2:=x2-30;
          end;
          if(a=4)then
          begin
            y1:=y1+20;
            y2:=y2+20;
          end;
          if(x1=485)and(x2=517)then
            x2:=x2-2;
          if(y1=325)and(y2=345)then
            y2:=y2-7;
          if(x2>515)then
            Break;
          if(FindColorTolerance(x,y,color1,x1,y1,x2,y2,tolerance))or
          (FindColorTolerance(x,y,color2,x1,y1,x2,y2,tolerance))or
          (FindColorTolerance(x,y,color3,x1,y1,x2,y2,tolerance))then
          begin
            MMouse(x,y,r,r);
            if(Option(text))then
            begin
              Result:=true;
              Break;
            end;
          end;
        end;
        if(a=4)then
          a:=0;
        until(x2>515)or(Result=true)
      end;
    end;

    procedure LoadStatBmps;//Odie5533's procedure from OSi
    begin
    s0 := BitmapFromString(5, 8,
           '000000FFFFFFFFFFFFFFFFFF000000FFFFFF000000000000000000' +
           'FFFFFFFFFFFF000000000000000000FFFFFFFFFFFF000000000000' +
           '000000FFFFFFFFFFFF000000000000000000FFFFFFFFFFFF000000' +
           '000000000000FFFFFFFFFFFF000000000000000000FFFFFF000000' +
           'FFFFFFFFFFFFFFFFFF000000');
    s1 := BitmapFromString(3, 8,
           '000000FFFFFF000000FFFFFFFFFFFF000000000000FFFFFF000000' +
           '000000FFFFFF000000000000FFFFFF000000000000FFFFFF000000' +
           '000000FFFFFF000000FFFFFFFFFFFFFFFFFF');
    s2 := BitmapFromString(5, 8,
           '000000FFFFFFFFFFFFFFFFFF000000FFFFFF000000000000000000' +
           'FFFFFF000000000000000000000000FFFFFF000000000000000000' +
           'FFFFFF000000000000000000FFFFFF000000000000000000FFFFFF' +
           '000000000000000000FFFFFF000000000000000000000000FFFFFF' +
           'FFFFFFFFFFFFFFFFFFFFFFFF');
    s3 := BitmapFromString(4, 8,
           '000000FFFFFFFFFFFF000000FFFFFF000000000000FFFFFF000000' +
           '000000000000FFFFFF000000FFFFFFFFFFFF000000000000000000' +
           '000000FFFFFF000000000000000000FFFFFFFFFFFF000000000000' +
           'FFFFFF000000FFFFFFFFFFFF000000');
    s4 := BitmapFromString(4, 8,
           'FFFFFF000000000000000000FFFFFF000000000000000000FFFFFF' +
           '000000000000000000FFFFFF000000FFFFFF000000FFFFFF000000' +
           'FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFF' +
           '000000000000000000FFFFFF000000');
    s5 := BitmapFromString(4, 8,
           'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000FFFFFF' +
           '000000000000000000FFFFFFFFFFFFFFFFFF000000000000000000' +
           '000000FFFFFF000000000000000000FFFFFFFFFFFF000000000000' +
           'FFFFFF000000FFFFFFFFFFFF000000');
    s6 := BitmapFromString(5, 8,
           '000000000000FFFFFFFFFFFF000000000000FFFFFF000000000000' +
           'FFFFFFFFFFFF000000000000000000000000FFFFFF000000FFFFFF' +
           'FFFFFF000000FFFFFFFFFFFF000000000000FFFFFFFFFFFF000000' +
           '000000000000FFFFFFFFFFFF000000000000000000FFFFFF000000' +
           'FFFFFFFFFFFFFFFFFF000000');
    s7 := BitmapFromString(4, 8,
           'FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000FFFFFF000000' +
           '000000FFFFFF000000000000000000FFFFFF000000000000FFFFFF' +
           '000000000000000000FFFFFF000000000000FFFFFF000000000000' +
           '000000FFFFFF000000000000000000');
    s8 := BitmapFromString(5, 8,
           '000000FFFFFFFFFFFFFFFFFF000000FFFFFF000000000000000000' +
           'FFFFFFFFFFFF000000000000000000FFFFFF000000FFFFFFFFFFFF' +
           'FFFFFF000000FFFFFF000000000000000000FFFFFFFFFFFF000000' +
           '000000000000FFFFFFFFFFFF000000000000000000FFFFFF000000' +
           'FFFFFFFFFFFFFFFFFF000000');
    s9 := BitmapFromString(5, 8,
           '000000FFFFFFFFFFFFFFFFFF000000FFFFFF000000000000000000' +
           'FFFFFFFFFFFF000000000000000000FFFFFF000000FFFFFF000000' +
           '000000FFFFFF000000000000FFFFFFFFFFFFFFFFFF000000000000' +
           '000000000000FFFFFF000000000000000000000000FFFFFF000000' +
           '000000000000000000FFFFFF');
    end;

    Function GetStatFor(stat:string; bottom:integer):integer;//Odie5533's procedure from OSi
    var
      ox,oy,ox2,oy2,col,row:integer;
    begin
    if(s0=0)then
    LoadStatBmps;
    if(not (GetColor(592,175)=2763390))then
    begin
    Mouse(577,178,10,10,true);
    end;
    if(stat='attack')or(stat='strength')or(stat='defense')or(stat='ranged')or(stat='prayer')or(stat='magic')or(stat='rc')then
    col:=1
    if(stat='hp')or(stat='agility')or(stat='herb')or(stat='thieve')or(stat='craft')or(stat='fletch')then
    col:=2
    if(stat='mine')or(stat='smith')or(stat='fish')or(stat='cook')or(stat='fire')or(stat='wc')then
    col:=3
    if(stat='attack')or(stat='hp')or(stat='mine')then
    row:=1
    if(stat='strength')or(stat='agility')or(stat='smith')then
    row:=2
    if(stat='defense')or(stat='herb')or(stat='fish')then
    row:=3
    if(stat='range')or(stat='thieve')or(stat='cook')then
    row:=4
    if(stat='prayer')or(stat='craft')or(stat='fire')then
    row:=5
    if(stat='magic')or(stat='fletch')or(stat='wc')then
    row:=6
    if(stat='rc')then
    row:=7
    if(bottom=0)then
    begin
    ox:=520+(col*64);
    oy:=179+(row*31);
    end;
    if(bottom=1)then
    begin
    ox:=532+(col*64);
    oy:=191+(row*31);
    end;
    ox2:=ox+9
    oy2:=oy+9
    if(FindBitmapMaskTolerance(s1,x,y,ox,oy,ox2,oy2,10,240))then
    Result:=10
    if(FindBitmapMaskTolerance(s2,x,y,ox,oy,ox2,oy2,10,240))then
    Result:=20
    if(FindBitmapMaskTolerance(s3,x,y,ox,oy,ox2,oy2,10,240))then
    Result:=30
    if(FindBitmapMaskTolerance(s4,x,y,ox,oy,ox2,oy2,10,240))then
    Result:=40
    if(FindBitmapMaskTolerance(s5,x,y,ox,oy,ox2,oy2,10,240))then
    Result:=50
    if(FindBitmapMaskTolerance(s6,x,y,ox,oy,ox2,oy2,10,240))then
    Result:=60
    if(FindBitmapMaskTolerance(s7,x,y,ox,oy,ox2,oy2,10,240))then
    Result:=70
    if(FindBitmapMaskTolerance(s8,x,y,ox,oy,ox2,oy2,10,240))then
    Result:=80
    if(FindBitmapMaskTolerance(s9,x,y,ox,oy,ox2,oy2,10,240))then
    Result:=90
    ox:=ox+6
    ox2:=ox+9
    if(FindBitmapMaskTolerance(s0,x,y,ox,oy,ox2,oy2,10,240))then
    Result:=Result+0
    if(FindBitmapMaskTolerance(s1,x,y,ox,oy,ox2,oy2,10,240))then
    Result:=Result+1
    if(FindBitmapMaskTolerance(s2,x,y,ox,oy,ox2,oy2,10,240))then
    Result:=Result+2
    if(FindBitmapMaskTolerance(s3,x,y,ox,oy,ox2,oy2,10,240))then
    Result:=Result+3
    if(FindBitmapMaskTolerance(s4,x,y,ox,oy,ox2,oy2,10,240))then
    Result:=Result+4
    if(FindBitmapMaskTolerance(s5,x,y,ox,oy,ox2,oy2,10,240))then
    Result:=Result+5
    if(FindBitmapMaskTolerance(s6,x,y,ox,oy,ox2,oy2,10,240))then
    Result:=Result+6
    if(FindBitmapMaskTolerance(s7,x,y,ox,oy,ox2,oy2,10,240))then
    Result:=Result+7
    if(FindBitmapMaskTolerance(s8,x,y,ox,oy,ox2,oy2,10,240))then
    Result:=Result+8
    if(FindBitmapMaskTolerance(s9,x,y,ox,oy,ox2,oy2,10,240))then
    Result:=Result+9
    end;

    Function GetHp:integer;//Odie5533's procedure from OSi
    var
      Hp1,Hp2:integer;
    begin
    Hp1:=(GetStatFor('hp',0))
    Hp2:=(GetStatFor('hp',1))
    if(Hp1>0)and(Hp2>0)then
    Result:=round((Hp1/Hp2)*100);
    end;

    Function InventoryFull:boolean;
    begin
    if(InventoryCount>=28)then
      result:=true;
    end;

    procedure FindTextSpiral(txt: String; dx,dy: Integer; SpiralSize: Integer; step, SpiralWait: Integer);  // By OhDearUrDead, Edited By Khain
    var
      px, py, qx, qy: Integer;
      FoundText: Boolean;
    begin
       FoundText:= false;
       px:= dx; py:= dy; qx:= dx; qy:= dy;
       x:= dx;
       y:= dy;
       MoveMouseSmooth(x,y);
       repeat
       Spiralwait:= Spiralwait+random(50);
         MoveMouse(x,y)
         px:= px + 20; py:= py + 20;
         qx:= qx - 20; qy:= qy - 20;
         repeat
           getmousepos(x,y)
           x:= x + step;
           MoveMouseSmooth(x,y);
           Wait(SpiralWait);
           if(IsTextAt2(9,9,txt,100))then FoundText:= true;
         Until(x >= px)or(FoundText);
         if(FoundText)then Break;
         repeat
           getmousepos(x,y)
           y:= y + step;
           MoveMouseSmooth(x,y);
           Wait(SpiralWait);
           if(IsTextAt2(9,9,txt,100))then FoundText:= true;
         Until(y >= py)or(FoundText);
         if(FoundText)then Break;
         repeat
           getmousepos(x,y)
           x:= x - step;
           MoveMouseSmooth(x,y);
           Wait(SpiralWait);
           if(IsTextAt2(9,9,txt,100))then FoundText:= true;
         Until(qx >= x)or(FoundText);
         if(FoundText)then Break;
         repeat
           getmousepos(x,y)
           y:= y - step;
           MoveMouseSmooth(x,y);
           Wait(SpiralWait);
           if(IsTextAt2(9,9,txt,100))then FoundText:= true;
         Until(qy >= y)or(FoundText);
       Until(px > dx + SpiralSize)or(FoundText);
    end;

    procedure RoadWalkTol(RColor:integer;Dir:string;Tol:integer);
    var
      c:integer;
    begin
      Uppercase(Dir);
      if(Dir='S')then
      begin
        repeat
        c:=c+5;
        if(FindColorTolerance(x,y,RColor,565,160-c,725,160,Tol))then
        begin
          MouseFindFlag(x,y-10,0,-1);
          Flag;
          Break;
        end;
        until(c>=100)
      end;
      if(Dir='SE')then
      begin
        repeat
        c:=c+5;
        if(FindColorTolerance(x,y,RColor,725-c,160-c,725,160,Tol))then
        begin
          MouseFindFlag(x,y-10,-1,-1);
          Flag;
          Break;end;
        until(c>=100)
      end;
      if(Dir='SW')then
      begin
        repeat
        c:=c+5;
        if(FindColorTolerance(x,y,RColor,565,160-c,565+c,160,Tol))then
        begin
          MouseFindFlag(x,y-10,1,-1);
          Flag;
          Break;
        end;
        until(c>=100)
      end;
      if(Dir='N')then
      begin
        repeat
        c:=c+5;
        if(FindColorTolerance(x,y,RColor,565,5,725,5+c,Tol))then
        begin
          MouseFindFlag(x,y+10,0,1);
          Flag;
          Break;
        end;
        until(c>=100)
      end;
      if(Dir='NE')then
      begin
        repeat
        c:=c+5;
        if(FindColorTolerance(x,y,RColor,725-c,5,725,5+c,Tol))then
        begin
          MouseFindFlag(x,y+10,-1,1);
          Flag;
          Break;
        end;
        until(c>=100)
      end;
      if(Dir='NW')then
      begin
        repeat
        c:=c+5;
        if(FindColorTolerance(x,y,RColor,565,5,565+c,5+c,Tol))then
        begin
          MouseFindFlag(x,y+10,1,1);
          Flag;
          Break;
        end;
        until(c>=100)
      end;
      if(Dir='E')then
      begin
        repeat
        c:=c+5;
        if(FindColorTolerance(x,y,RColor,725-c,5,725,160,Tol))then
        begin
          MouseFindFlag(x-10,y,-1,0);
          Flag;
          Break;
        end;
        until(c>=100)
      end;
      if(Dir='W')then
      begin
        repeat
        c:=c+5;
        if(FindColorTolerance(x,y,RColor,565,5,565+c,160,Tol))then
        begin
          MouseFindFlag(x+10,y,1,0);
          Flag;
          Break;
        end;
        until(c>=100)
      end;
    end;

    procedure RoadWalk(RColor:integer;Dir:string);
    begin
    RoadWalkTol(RColor,Dir,0);
    end;

    procedure SetFightMode(oFightMode:integer);
    begin
      if(GetColor(559,179)=5531511)then
       Mouse(548,176,10,15,true);
      wait(200+random(50));
      if(oFightMode=1)and(not (GetColor(565,282)=2303647))then
      Mouse(569,271,55,15,true);
      if(oFightMode=2)and(not (GetColor(565,323)=2303647))then
      Mouse(569,311,55,15,true);
      if(oFightMode=3)and(not (GetColor(565,367)=2303647))then
      Mouse(569,352,55,15,true);
      if(oFightMode=4)and(not (GetColor(565,411)=2303647))then
      Mouse(571,403,55,15,true);
      GameTab(4);
    end;

    procedure RunAwayDirection(direction:string);
    var
      RunBackx,RunBacky:integer;
    begin
    x:=0;y:=0;
    if(Uppercase(direction)='N')then y:=-50;
    if(Uppercase(direction)='E')then x:=50;
    if(Uppercase(direction)='S')then y:=50;
    if(Uppercase(direction)='W')then x:=-50;
    RunBackx:=x+648;
    RunBacky:=y+83;
    MouseFindFlag(x+648,y+83,1,1);
    SetRun(true);
    Flag;
    x:=RunBackx;y:=RunBacky;
    end;

    procedure RunBack;
    begin
    MouseFindFlag((648-x)+648,(83-y)+83,1,1);
    SetRun(true);
    Flag;
    end;

    procedure Face(direction:string);
    var
      CAngle:extended;
    begin
      if(not(ScarScape))then
      begin
        if(uppercase(direction)='N')then
          CAngle:=6.3;
        if(uppercase(direction)='E')then
          CAngle:=4.85;
        if(uppercase(direction)='S')then
          CAngle:=3.3;
        if(uppercase(direction)='W')then
          CAngle:=1.6;
        if(not((DetectRS2MinimapCompassAngle>(CAngle-0.1))and
        (DetectRS2MinimapCompassAngle<(CAngle+0.1))))or
        ((uppercase(direction)='N')and(DetectRS2MinimapCompassAngle<0.2))then
        begin
          repeat
          SendArrowSilentWait(1,100+random(10));
          until(DetectRS2MinimapCompassAngle>(CAngle-0.1))and
          (DetectRS2MinimapCompassAngle<(CAngle+0.1))or
          ((uppercase(direction)='N')and(DetectRS2MinimapCompassAngle<0.2))
        end;
      end;
    end;

    procedure OpenBank;
    var
      c:Integer;
    begin
    if(FindObj('Use Bank',539728,10))then
    begin
      Mouse(x,y,1,1,false);
      if(ChooseOption('quickly'))then
      begin
        Flag;
        repeat
        Wait(100);
        c:=c+1
        until(BankScreen)or(c>=50)
      end;
    end;
    end;

    procedure Deposit(slot, toslot, thetype:integer);//Fixed from PPLSUQBAWLZ's Deposit in library
    var
      slotnumber,col,row:integer;
    begin
    if(BankScreen)then
    begin
      slotnumber:=slot;
      while(slotnumber<toslot)do
      begin
        if((slotnumber mod 4)=0)then col:=3
        else col:=(slotnumber mod 4)-1;
        row:=(slotnumber-1)/4;
        if (FindColor(x,y,65536,(571+47*col),(215+36*row),(601+47*col),(245+36*row)))then
        begin
          if(thetype=1)then mouse(x,y,5,5,true);
          if(thetype=2)then
          begin
            mouse(x,y,5,5,false);
            if(ChooseOption('All'))then
              wait(1000+random(100));
          end;
        end;
        slotnumber:=slotnumber+1;
      end;
    end;
    end;

    procedure Withdraw(Col,Row,Amount:integer);//Based off Odie5533's procedure from OSi v4.0
    var
      rx,ry:integer;
    begin
    rx:=35+(col*47);
    ry:=27+(row*38);
    if(BankScreen)then
    begin
      if(Amount=1)then
      begin
        Mouse(rx,ry,r,r,true);
      end
      else
    begin
      Mouse(rx,ry,r,r,false);
      if(Amount=1)or(Amount=5)or(Amount=10)or(Amount=0)then
      begin
        if(Amount=5)then
          ChooseOption('Withdraw 5');
        if(Amount=10)then
          ChooseOption('Withdraw 10');
        if(Amount=0)then
          ChooseOption('Withdraw All');
      end
      else
      begin
        ChooseOption('Withdraw X');
        wait(1000+random(100));
        TypeSend(inttostr(Amount)+chr(13));
      end;
    end;
    end;
    end;

    procedure FlagAtColor(color:integer);
    var
      c:integer;
    begin
      repeat
      c:=c+1;
      Wait(500+random(100));
      if(c=120)or(c=240)or(c=360)or(c=480)and(not(FlagPresent))then
        ClickMMColor(color);
      until(FindColor(x,y,color,618,54,678,113))or(c>600)
      Flag;
    end;

    procedure MarkTime(var TimeMarker:integer);
    begin
     TimeMarker:=GetSystemTime;
    end;

    function TimeFromMark(var TimeMarker:integer):integer;
    begin
     result:=GetSystemTime-TimeMarker;
    end;

    procedure ToBankers(var BankColor:integer;MouseAdjustX,MouseAdjustY:integer);//Find the specified bank color and clicks the nearest yellow dots to get closer to the bankers.
    var
      c,ax,ay:integer;
    begin
      if(FindMMColor(BankColor))then
      begin
        while c<30 do
        begin
          c:=c+5;
          if(FindMMColor(BankColor))then
          begin
            if(FindColorSpiralTolerance(ax,ay,195836,x-c,y-c,x+c,y+c,10))then
            begin
              x:=ax;
              y:=ay;
              break;
            end;
          end;
        end;
        MouseFindFlag(x,y,MouseAdjustX,MouseAdjustY);
        Flag;
        wait(1000+random(100));
      end;
    end;

    function TimeRunning:string;//modified from Phalanx's script
    var
      RHours,Minutes,Seconds,RMinutes,RSeconds:LongInt;
      Time:string;
    begin
      Seconds:=(GetSystemTime-ST) div 1000;
      Minutes:=Seconds div 60;
      RHours:=Minutes div 60;
      Time:=inttostr(Seconds)+' Seconds';
      if Minutes<>0 then
      begin
        RSeconds:=Seconds Mod (Minutes*60);
        Time:=inttostr(Minutes)+' Minutes and '+inttostr(RSeconds)+' Seconds';
      end;
      if RHours<>0 then
      begin
        RMinutes:=Minutes Mod (RHours*60);
        RSeconds:=Seconds Mod (Minutes*60);
        Time:=inttostr(RHours)+' Hours, '+inttostr(RMinutes)+
        ' Minutes and '+inttostr(RSeconds)+' Seconds';
      end;
      Result:=Time;
    end;

    procedure ItemGrab;
    begin
      GameTab(4);
      if(FindColor(x,y,241,565,5,725,160))then
      begin
        Mouse(x,y,1,1,true);
        Flag;
        Wait(100+random(100));
        FindTextSpiral('Take',258,169,50,5,10+random(10));
        GetMousePos(x,y);
        Mouse(x,y,0,0,true);
        Wait(1000+random(100));
      end;
    end;

    function FindOreColors(refrencecolor,tolerance1,tolerance2:integer):boolean;
    var
      c,a,i,ax,ay:integer;
    begin
      if(FindObj('Mine',refrencecolor,tolerance1))then
      begin
        ax:=x;
        ay:=y;
        repeat
        a:=a+1;
        if(a=1)then
          c:=c+1;
        if(a=3)then
          c:=c+1;
        for i:=1 to c do
        begin
          if(a=1)then
            ax:=ax+1;
          if(a=2)then
            ay:=ay-1;
          if(a=3)then
            ax:=ax-1;
          if(a=4)then
            ay:=ay+1;
          if(SimilarColors((GetColor(ax,ay)),refrencecolor,tolerance2))then
          begin
            if(OreColor1=0)then
            begin
              OreColor1:=(GetColor(ax,ay));
            end else if(OreColor2=0)and(not((GetColor(ax,ay))=OreColor1))then
            begin
              OreColor2:=(GetColor(ax,ay));
            end else if(OreColor3=0)and(not((GetColor(ax,ay))=OreColor1))and
            (not((GetColor(ax,ay))=OreColor2))then
              OreColor3:=(GetColor(ax,ay));
          end;
        end;
        if(a=4)then
          a:=0;
        until(c>100)or(Result=true)
      end;
      if(orecolor1>0)and(orecolor2>0)and(orecolor3>0)then
      begin
        result:=true;
        writeln('OreColors... '+inttostr(orecolor1)+' '+inttostr(orecolor2)+' '+inttostr(orecolor3));
      end;
    end;

    procedure SetRandomOreColor;
    Var color:integer;
    begin
    Color:=1+Random(3);
    case Color of
      1: begin OreColor:=OreColor1; end;
      2: begin OreColor:=OreColor2; end;
      3: begin OreColor:=OreColor3; end;
    end;
    end;

    procedure DisplayWindow(xs,ys,xe,ye,WindowLength,WindowHeight:integer);
    var
      DebugCanvas,ClientCanvas:TCanvas;
    begin
    DisplayDebugImgWindow(WindowLength,WindowHeight);
    DebugCanvas:= GetDebugCanvas;
    ClientCanvas:= GetClientCanvas;
    CopyCanvas(ClientCanvas,DebugCanvas,xs,ys,xe,ye,0,0,WindowLength,WindowHeight);
    end;

    //============================================================================\\
    //============================RANDOM PROTECTION===============================\\
    //============================================================================\\

    //GENERAL RANDOMS

    procedure CloseWindow;
    begin
    if(FindBitmapMaskTolerance(CWindow,x,y,400,3,515,100,0,85))then
      Mouse(x+10,y+3,5,1,true);
    if(FindColor(x,y,255,265,13,531,55))and(GetColor(494,334)=16777215)then
      Mouse(501,317,r,r,true);
    end;

    procedure LoginIfNeeded;//A stupid3ooo procedure based off many others
    var
      WorldIsFull,c,cc:integer;
    begin
    WorldIsFull := BitmapFromString(78, 3, 'z78DAAD53410E83300C' +
           'FB12E00CB12308E5FF4F9AD45CD2A58E1A04070BB5C60DB6ABAAB' +
           'A2CDAD01E7B9743CE0F34ECD2F55520775CC78EA3D1FFD6BDDAB3' +
           '6F07FC139780E180BF01B80CFDAEC7815A9BAAC35C2165E67F5AE' +
           '6DF50F9B24922E6D9D15CC854C6378C93F88C0A6779E79BE67CA6' +
           '86AC335D2EA64C903590F5E7DD4CA333F1B656FDAC36CA3B5FD02' +
           '4EEC59E4C65EA6ED08CF35D6726328DFA2F649AB6FD07A49338F5' +
           '');
    if(not(LoggedIn))then
    begin
      Logs:=Logs+1;
      ClickTextFont('Cancel',UpChars,true);
      ClickTextFont('Exist',UpChars,true);
      if(ClickTextFont('Username',UpChars,true))then
        begin
        TypeSend(Username);
        Mouse(327,272,r,r,true);
        TypeSend(Password);
        end;
      ClickTextFont('Login',UpChars,true);
      repeat
      c:=c+1
      wait(100+random(100));
      if(FindBitmap(WorldIsFull,x,y))then
      begin
        while(FindBitmap(WorldIsFull,x,y))or(cc<25)do
        begin
          cc:=cc+1;
          Mouse(300,322,20,5,true);
          wait(500+random(100));
        end;
      end;
      until(LoggedIn)or(c>=600)or((FindColor(x,y,255,265,13,531,55))and(GetColor(494,334)=16777215))
      c:=0;
      repeat
      c:=c+1;
      wait(100+random(100));
      until(FindBitmapMaskTolerance(CWindow,x,y,3,3,515,338,0,85))or(c>100)or
      ((FindColor(x,y,255,265,13,531,55))and(GetColor(494,334)=16777215))
      CloseWindow;
      if(not(LoggedIn))then
      begin
        LoginTry:=LoginTry+1;
        if(IsTextInAreaEx(208,174,560,298,x,y,'updated',100,UpChars,False,True,0,1,-1))then
        begin
          writeln('Runescape was updated.');
          TerminateScript;
        end;
        if(LoginTry=5)then
        begin
          Writeln('Connection lost, or other error.');
          TerminateScript;
        end;
      end
      else
        LoginTry:=0;
    end;
    FreeBitmap(WorldIsFull);
    end;

    function FindFight:boolean;
    begin
      if(FindColor(x,y,65280,217,129,297,209))then
      begin
        if(CheckHpFirst=true)then
        begin
          GameTab(2);
          Wait(500+random(100));
          if(GetHp<100)then
          begin
            if(Screenshots)then
              SaveScreenShot('Fight Random - Stupid3ooo - '+TimeRunning+'.bmp');
            Result:=true;
            Fights:=Fights+1;
          end;
        end
        else
        begin
          if(Screenshots)then
            SaveScreenShot('Fight Random - Stupid3ooo - '+TimeRunning+'.bmp');
          Result:=true;
          Fights:=Fights+1;
        end;
        GameTab(4);
      end;
    end;

    function TalkToRand:boolean;
    var
      c:integer;
    begin
      repeat
      c:=c+1;
      if(FindColor(x,y,16711680,5,345,510,465))and(not(GetColor(20,434)=0))then
        begin
          Result:=true;
          Mouse(x,y,50,2,true);
          wait(500+random(500));
        end;
      if(FindColor(x,y,16777215,5,345,510,465))and(not(GetColor(20,434)=0))then
        begin
          Result:=true;
          GetMousePos(x,y);
          Mouse(x,y,50,2,true);
          wait(500+random(500));
        end;
      until(GetColor(20,434)=0)or(c>=20)
    end;

    function FindTalk:boolean;
    var
      mx,my:integer;
    begin
      if(FindColor(mx,my,65535,3,3,515,338))then//Find close
      begin
        MMouse(mx,my+15,1,1);
        repeat
        if(IsTextAt2(9,9,'Talk',100))then
        begin
          Mouse(mx,my+15,1,1,false);
          if(ChooseOption('Talk'))then
          begin
            if(Screenshots)then
              SaveScreenShot('Talking Random - Stupid3ooo - '+TimeRunning+'.bmp');
            Flag;
            wait(500+random(500));
            TalkToRand;
            Talks:=Talks+1;
            Result:=true;
            Break;
          end;
        end;
        MoveMouseSmooth(mx,my+15);
        mx:=mx+5;
        wait(10+random(10));
        until(mx>=515);
        if(mx>=515)then MoveMouseSmooth(mx+random(5),my+15);
      end;
    end;

    function FindLamp(skill:string):boolean;
    var
      ac,ar,col,row:integer;
    begin
      GameTab(4);
      if(Lowercase(skill)='strength')then begin col:=1;row:=1;end;
      if(Lowercase(skill)='attack')then begin col:=1;row:=2;end;
      if(Lowercase(skill)='ranged')or(Lowercase(skill)='ranging')then begin col:=1;row:=3;end;
      if(Lowercase(skill)='magic')then begin col:=1;row:=4;end;
      if(Lowercase(skill)='defence')then begin col:=1;row:=5;end;
      if(Lowercase(skill)='hitpoints')then begin col:=1;row:=6;end;
      if(Lowercase(skill)='prayer')then begin col:=1;row:=7;end;
      if(Lowercase(skill)='agility')then begin col:=2;row:=1;end;
      if(Lowercase(skill)='herblore')then begin col:=2;row:=2;end;
      if(Lowercase(skill)='thieving')then begin col:=2;row:=3;end;
      if(Lowercase(skill)='crafting')then begin col:=2;row:=4;end;
      if(Lowercase(skill)='runecraft')or(Lowercase(skill)='runecrafting')then begin col:=2;row:=5;end;
      if(Lowercase(skill)='slayer')then begin col:=2;row:=6;end;
      if(Lowercase(skill)='farming')then begin col:=2;row:=7;end;
      if(Lowercase(skill)='mining')then begin col:=3;row:=1;end;
      if(Lowercase(skill)='smithing')then begin col:=3;row:=2;end;
      if(Lowercase(skill)='fishing')then begin col:=3;row:=3;end;
      if(Lowercase(skill)='cooking')then begin col:=3;row:=4;end;
      if(Lowercase(skill)='firemaking')then begin col:=3;row:=5;end;
      if(Lowercase(skill)='woodcutting')then begin col:=3;row:=6;end;
      if(Lowercase(skill)='fletching')then begin col:=3;row:=7;end;
      If(FindBitmapSpiralTolerance(Lamp,x,y,550,200,745,465,25))then
      begin
        Result:=true;
        if(Screenshots)then
          SaveScreenShot('Lamp Random - Stupid3ooo - '+TimeRunning+'.bmp');
        ac:=116+(row*36);
        ar:=124+(col*32);
        Lamps:=Lamps+1;
        Mouse(x,y,1,1,true);
        Wait(500+random(100));
        Mouse(ac,ar,12,12,true);
        Wait(500+random(100))
        Mouse(242,256,1,1,true);
        wait(1000+random(500))
      end;
    end;

    procedure FindMiscRandoms;
    var
      ax,ay:integer;
      RandomChatList: array[0..40] of string;
    begin
      if(LoggedIn)then
      begin
        if(FindColor(ax,ay,786423,10,350,150,433))or
        (FindColor(ax,ay,10658466,10,350,150,433))then
        begin
          RandomChatList[1]:= 'g2g';
          RandomChatList[2]:= 'sry bye';
          RandomChatList[3]:= 'dinner time';
          RandomChatList[4]:= 'one sec';
          RandomChatList[5]:= 'afk';
          RandomChatList[6]:= 'brb';
          TypeSend(RandomChatList[random(6)]+chr(13));
          if(Screenshots)then
            SaveScreenShot('Found a mod - Stupid3ooo - '+TimeRunning+'.bmp');
          LogOut;
          writeln('UHOH, A MOD!!!');
          if(LoginAfterMod=0)then
          begin
            TerminateScript;
          end else
          begin
            Wait(LoginAfterMod*60000);
            LoginIfNeeded;
          end;
        end;
        if(GetColor(30,418)=0)and(GetColor(72,429)=0)then
        begin
          if(Screenshots)then
            SaveScreenShot('Oh dear you died - Stupid3ooo - '+TimeRunning+'.bmp');
          LogOut;
          writeln('Oh dear, you are dead!');
          TerminateScript;
        end;
        if(FindColor(ax,ay,11503238,10,350,479,433))then
        begin
          if(Screenshots)then
            SaveScreenShot('Mime Random - Stupid3ooo - '+TimeRunning+'.bmp');
          LogOut;
          writeln('Mime Found');
          TerminateScript;
        end;
        if(FindColortolerance(ax,ay,15395562,129,34,129,34,4))and(FindColortolerance(ax,ay,15395562,378,39,378,39,4))then//by Ghost
        begin
          if(Screenshots)then
            SaveScreenShot('Maze Random - Stupid3ooo - '+TimeRunning+'.bmp');
          LogOut;
          WriteLn('Found a Maze!');
          TerminateScript;
        end;
        if(FindText('Answer',ChatChars,17,355,300,434)) then //From RSCI
        begin;
          WriteLn('Found a Quiz, logging out')
          TerminateScript;
        end;
        if(FindColorTolerance(ax, ay, 4936133, 35, 355, 110, 425, 5))Then //From RSCI
        begin
          writeln('Found Evil bob, logging out');
          TerminateScript;
        end;
      end;
    end;

    function FindForester:boolean;//A Stupid3ooo procedure
    var
      c:integer;
    begin
      if(FindBitmap(bmpFreakyForester,x,y))then
      begin
        if(Screenshots)then
          SaveScreenShot('Freaky Forester Random - Stupid3ooo  '+TimeRunning+'.bmp');
        if(SolveForester)then
        begin
          repeat
          if(FindObj('Attack',4344603,20))then
          begin
            Mouse(x,y,r,r,false);
            ChooseOption('Attack');
            Flag;
            Wait(5000+random(1000));
          end;
          if(not(FindItemBmpTol(bmpPheasantMeat,30)))then
          begin
            if(FindObj('Take',3763101,25))then
            begin
              Mouse(x,y,r,r,false);
              ChooseOption('Take');
              Flag;
              Wait(2000+random(500));
            end;
          end;
          if(FindItemBmpTol(bmpPheasantMeat,30))then
          begin
            Mouse(x,y,r,r,true);
            if(FindObj('Use Raw pheasant with Freaky',14869221,20))then
            begin
              Mouse(x,y,r,r,true);
              Flag;
              Wait(1000+random(500));
              if(FindBitmap(bmpLeaveTheArea,x,y))then
              begin
                MouseFindFlag(690,83,-1,1);
                Flag;
                for c:=1 to 10 do
                begin
                  Wait(100+random(10));
                  if(FindObj('Enter',12514550,20))then
                  begin
                    Mouse(x,y,r,r,false);
                    ChooseOption('Enter');
                    Wait(10000+random(1000));
                    if(FindBitmap(bmpFreakyForester,x,y))then
                    begin
                      writeln('Chose the wrong pheasant :(');
                      TerminateScript;
                    end else
                    begin
                      Result:=true;
                      Foresters:=Foresters+1;
                    end;
                    Break;
                  end;
                end;
              end;
            end;
          end;
          until(Result=true)
        end else
        begin
          Writeln('Found Forester, logging out');
          LogOut;
          TerminateScript;
        end;
      end;
    end;

    function FindFrog:boolean;//A Stupid3ooo procedure
    var
      tx,ty,a,c,cc,CrownColor,i,x1,y1,x2,y2:integer;
    begin
      if(FindBitmap(Frog,x,y))or(not(getcolor(650, 185) = 4902398))then
      begin
        if(Screenshots)then
          SaveScreenShot('Frog Random - Stupid3ooo - '+TimeRunning+'.bmp');
        if(FindMMDtm(FrogSpot))then
        begin
          Mouse(x,y,r,r,true);
          Flag;
        end;
        x1:=245;
        y1:=165;
        x2:=277;
        y2:=185;
        repeat
        a:=a+1;
        if(a=1)then
          c:=c+1;
        if(a=3)then
          c:=c+1;
        for i:=1 to c do
        begin
          if(a=1)then
          begin
            x1:=x1+30;
            x2:=x2+30;
          end;
          if(a=2)then
          begin
            y1:=y1-20;
            y2:=y2-20;
          end;
          if(a=3)then
          begin
            x1:=x1-30;
            x2:=x2-30;
          end;
          if(a=4)then
          begin
            y1:=y1+20;
            y2:=y2+20;
          end;
          if(x1=485)and(x2=517)then
            x2:=x2-2;
          if(y1=325)and(y2=345)then
            y2:=y2-7;
          if(x1>515)then
            Break;
          if(FindColorTolerance(x,y,1077773,x1,y1,x2,y2,20))then
          begin
            MMouse(x,y,r,r);
            if(Option('Talk'))then
            begin
              for cc:=1 to 20 do
              begin
                if(FindColorTolerance(tx,ty,3460859,x-20,y-20,x+20,y+20,cc))then
                begin
                  CrownColor:=GetColor(tx,ty);
                  Break;
                end;
              end;
              if(FindColor(tx,ty,CrownColor,x-20,y-20,x+20,y+20))and
              (not(FindColoredAreaTolerance(tx,tx,2965499,x-25,y-25,x+25,y+25,4,20)))then
              begin
                Mouse(x,y,r,r,false);
                ChooseOption('Talk');
                Flag;
                Wait(2000+random(1000));
                TalkToRand;
                Mouse(256,401,r,r,true);
                Wait(5000+random(1000));
                TalkToRand;
                Result:=true;
                Frogs:=Frogs+1;
                Break;
              end;
            end;
          end;
        end;
        if(a=4)then
          a:=0;
        until(x2>515)or(Result=true)
      end;
    end;

    function FindDoctor:boolean;//Edited version of knightstreak's EyeTest, all credit goes to knightstreak
    var
      c,i,backgroundcolor : integer;
      firstfinger, secondfinger, thirdfinger, fourthfinger : boolean;
    begin
      if(not(getcolor(650, 185) = 4902398))then
      begin
        backgroundcolor:=Getcolor(10,10);
        repeat
        c:=c+1;
        Wait(10);
        if(not(getcolor(143, 94) = backgroundcolor))then
          firstfinger:=true;
        if(not(getcolor(302,41) = backgroundcolor))then
          secondfinger:=true;
        if(not(getcolor(409,75) = backgroundcolor))then
          thirdfinger:=true;
        if(not(getcolor(415,101) = backgroundcolor))then
          fourthfinger:=true;
        until(c>1000)or(firstfinger)and(secondfinger)and
        (thirdfinger)and(fourthfinger)
        if(firstfinger = true)and(secondfinger = false)and(thirdfinger = false)and(fourthfinger = false)then
          Mouse(99, 299,3,3,true);
        if(firstfinger=true) and (secondfinger=true) and (thirdfinger=false) and (fourthfinger=false)then
          Mouse(153,300,3,3,true);
        if(firstfinger=true) and (secondfinger=false) and (thirdfinger=false) and (fourthfinger=true)then
          Mouse(211, 304,3,3,true);
        if(firstfinger=false) and (secondfinger=true) and (thirdfinger=true) and (fourthfinger=false)then
          Mouse(265, 300,3,3,true);
        if(firstfinger=false) and (secondfinger=false) and (thirdfinger=false) and (fourthfinger=true)then
          Mouse(320, 306,3,3,true);
        if(firstfinger=true) and (secondfinger=true) and (thirdfinger=true) and (fourthfinger=false)then
          Mouse(374, 298,3,3,true);
        if(firstfinger=true) and (secondfinger=true) and (thirdfinger=true) and (fourthfinger=true)then
          Mouse(431,299,3,3,true);
        For i := 0 to 5 do
        Begin
          if(getcolor(241,445) = 16711680)or(getcolor(241,445) = 16777215)then
          begin
            Doctors:=Doctors+1;
            Result:=true;
            Mouse(241,445,3,3,true);
            wait(1500 + random(500));
          end;
        end;
      end;
    end;

    function FindCerter:boolean;//Repeatedly talks to the Certer and it'll eventually go away, If this does not work you can count the number of background pixles and if it's greater than a certain number it's either a sword, helmet or ammy.
    var
      c:integer;
    begin
      if(FindTalk)then
      begin
        if(getcolor(359, 37) = 8168120)Or(getcolor(163, 167) = 1922399)Or(getcolor(89, 51) = 879691)Then //From RSCI
        begin
          repeat
          c:=c+1;
          if(FindColor(x,y,65535,555,150,643,171))then
            Mouse(478,10,r,r,true);
          if(FindObj('Talk',7039859,15))then
          begin
            Mouse(x,y,r,r,false);
            ChooseOption('Talk');
            TalkToRand;
            Flag;
            Wait(500+random(100));
            if(FindColor(x,y,65535,555,150,643,171))then
              Mouse(478,10,r,r,true);
          end else
            Break;
          until(c>1000)
          if(c<1000)then
          begin
            Certers:=Certers+1;
            Result:=true;
          end;
        end;
      end;
    end;

    procedure FindNormalRandoms;
    begin
    LoginIfNeeded;
    CloseWindow;
    ChatsOff;
    FindLamp('hitpoints');
    FindMiscRandoms;
    FindTalk;
    FindForester;
    FindFrog;
    FindCerter;
    end;

    //MINING

    function FindPickHeadColor:boolean;
    begin
      GameTab(4);
      if(FindBitmapSpiralTolerance(PickAxe,x,y,546,198,745,468,100))or
      (FindBitmapSpiralTolerance(PickAxeSteel,x,y,546,198,745,468,100))then
        Result:=True;
      if(Result=false)then
      begin
        if(not(GetColor(681,173)=2763390))then
        begin
          Mouse(679,180,5,5,true);
          wait(200+random(100)+random(100))
        end;
        if(FindBitmapSpiralTolerance(PickAxe,x,y,546,198,745,468,100))or
        (FindBitmapSpiralTolerance(PickAxeSteel,x,y,546,198,745,468,100))then
          Result:=True;
      end;
      if(Result=false)then
      begin
        writeln('');
        writeln('ERROR! cannot find pick in screen, please put pick in inventory or your equip page and restart the script!');
        writeln('');
        Result:=False;
      end;
      if(Result=true)then
      begin
        hc1:=GetColor(x+6,y+3);
        hc2:=GetColor(x+18,y+7);
        hc3:=GetColor(x+20,y+6);
        hc4:=GetColor(x+19,y+6);
        hc5:=GetColor(x+16,y+5);
      end;
      writeln('Pick head colors... '+inttostr(hc1)+' '+inttostr(hc2)+' '+inttostr(hc3)+' '+inttostr(hc4)+' '+inttostr(hc5));
    end;

    function FindPick:boolean;
    var
      c:integer;
    begin
      GameTab(4);
      Result:=True;
      if(FindBitmapSpiralTolerance(PickHandle,x,y,550,200,745,465,30))or
        (GetColor(485,414)=0)and(GetColor(227,376)=0)then
      begin
        Wait(2000+random(100));
        Result:=False;
        if(FindBitmapSpiralTolerance(Ore,x,y,559,210,735,460,25))then
        begin
          Mouse(x,y,5,5,false);
          ChooseOption('Drop');
        end;
        repeat
        c:=c+1;
        if(FindBitmapSpiralTolerance(PickHead,x,y,550,200,745,465,50))and
        (FindItemBmpTol(PickHandle,25))then
        begin
          Result:=true;
          break;
        end;
        if(FindMSColor(hc1))or
        (FindMSColor(hc2))or
        (FindMSColor(hc3))or
        (FindMSColor(hc4))or
        (FindMSColor(hc5))then
        begin
          Mouse(x,y,1,1,true);
          Flag;
          wait(1000+random(100));
        end
        else if(PickUpItems)then
          ItemGrab;
        until(c>=10);
        if(FindItemBmpTol(PickHead,50))and(FindItemBmpTol(PickHandle,50))then
        begin
          ClickItemBmpTol(PickHead,50,true);
          ClickItemBmpTol(PickHandle,50,true);
          Attaches := Attaches + 1;
        end;
      end;
    end;

    function FindRockBounds(var xstart,ystart,sx,sy:integer):boolean;
    var
      xs,ys,currenty,currentx,ax,ay,similarcount,
      color,counter,dircount:integer;
      found:boolean;
      dir:string;
    begin
    ys:=338;
    xs:=515;
    if(FindColor(sx,sy,OreColor1,sx-40,sy-40,sx+40,sy+40))or
      (FindColor(sx,sy,OreColor2,sx-40,sy-40,sx+40,sy+40))or
      (FindColor(sx,sy,OreColor3,sx-40,sy-40,sx+40,sy+40))then
    begin
      repeat
      dircount:=dircount+1;
      if(dircount=1)then dir:='north east';
      if(dircount=2)then dir:='north west';
      if(dircount=3)then dir:='west south';
      repeat
      counter:=counter+1;
      found:=false;
      similarcount:=0;
      if(dir='north east')then ax:=sx+counter;
      if(dir='north east')then ay:=sy;
      if(dir='north west')then ax:=sx-counter;
      if(dir='north west')then ay:=sy;
      if(dir='west south')then ax:=sx;
      if(dir='west south')then ay:=sy+counter;
      repeat
      similarcount:=similarcount+1;
      if(dir='north east')or(dir='north west')then ay:=ay-1;
      if(dir='west south')then ax:=ax-1;
      color:=GetColor(ax,ay);
      if(similarcolors(OreColor1,color,10)=true)or
        (similarcolors(OreColor2,color,10)=true)or
        (similarcolors(OreColor3,color,10)=true)then
      begin
        found:=true;
        similarcount:=0;
      end;
      until(similarcount=10)
      if(found=true)then
      begin
        if(dir='north east')or(dir='north west')then
        begin
          currenty:=ay+10;
          if(currenty<ys)then
            ys:=currenty;
        end;
        if(dir='west south')then
        begin
          currentx:=ax+10;
          if(currentx<xs)then
            xs:=currentx;
        end;
      end;
      until(counter>=40)
      counter:=0;
      until(dircount=3)
      xstart:=xs;
      ystart:=ys;
    end;
    if(xstart>0)and(ystart>0)then
      result:=true;
    end;

    function GasCheck(gx,gy:integer):boolean;//Made by piv
    var
      clientcanvas,gascanvas1,gascanvas2:tcanvas;
      x,y,count:integer;
    begin
    if(FindColortolerance(x,y,8296866,gx-20,gy-20,gx+20,gy+20,20))then
    begin
      gascanvas1:=getbitmapcanvas(bitmapfromstring(40,40,''));
      gascanvas2:=getbitmapcanvas(bitmapfromstring(40,40,''));
      clientcanvas:=getclientcanvas;
      copycanvas(clientcanvas,gascanvas1,gx-20,gy-20,gx+20,gy+20,0,0,40,40);
      wait(100);
      copycanvas(clientcanvas,gascanvas2,gx-20,gy-20,gx+20,gy+20,0,0,40,40);
      count:=0;
      for y:=1 to 40 do
        for x:=1 to 40 do
          if((gascanvas1.pixels[x,y])<>(gascanvas2.pixels[x,y]))then
            count:=count+1;
      writeln(inttostr(trunc(((count)/1024)*100))+'% change.');
      if(count>300)then //if more than 15% change
        result:=true;
    end;
    end;

    function FindGas(fx,fy:integer):boolean;//fx,fy are the coordinates of the found ore color
    var
      c,findx,findy,gx1,gy1,gx2,gy2:integer;
    begin
    if(UsePivGas)then
    begin
      GasCheck(fx,fy);
    end
    else
    begin
    if(Debug)then DisplayWindow(fx-30,fy-30,fx+30,fy+30,160,160);
    if(FindColorTolerance(gx1,gy1,GasColor,fx-30,fy-30,fx+30,fx+30,GasTolerance))then//Find ore close
    begin
      if(Debug)then writeln('Found gas color in area.');
      if(FindRockBounds(findx,findy,fx,fy))then
      begin
        if(Debug)then writeln('Found rock bounds.');
        if(Debug)then DisplayWindow(findx-20,findy-20,findx+20,findy+20,160,160);
        findx:=findx+20;
        findy:=findy+10;
        repeat
        wait(1);
        c:=c+1;
        until(c>1000)or(FindColorTolerance(gx1,gy1,GasColor,findx-20,findy-20,findx+20,findy+20,30))
        wait(100);
        c:=0;
        repeat
        wait(1);
        c:=c+1;
        until(c>1000)or(FindColorTolerance(gx2,gy2,GasColor,findx-20,findy-20,findx+20,findy+20,30))
        if(not(gx1=gx2))or(not(gy1=gy2))then
        begin
          if(Debug)then WriteLn('Gas color is moving, moving away from rock.');
          if(Debug)then DisplayWindow(gx2-10,gy2-10,gx2+10,gy2+10,160,160);
          MouseFindFlag(648,78,1,1);
          Flag;
          result:=true;
        end;
      end
      else if(Debug)then
        writeln('Gas color was not over a rock.');
    end
    else if(Debug)then
      DisplayWindow(fx-30,fy-30,fx+30,fy+30,160,160);
    end;
    end;

    //FISHING

    function FindFishingEquipmentColor:boolean;//Net, Lobster Cage, Fishing Rod, Fly Fishing Rod, Harpoon
    var c,GetX,GetY:integer;
    begin
      while c<200 do
      begin
        c:=c+10;
        if(FindItemBmpTol(bmpNet,c))then
        begin
          GetX:=x+8;
          GetY:=y+3;
          FishingEquipmentName:='Small fishing';
        end;
        if(FindItemBmpTol(bmpCage,c))then
        begin
          GetX:=x+4;
          GetY:=y+4;
          FishingEquipmentName:='Lobster pot';
        end;
        if(FindItemBmpTol(bmpRod,c))then
        begin
          GetX:=x+13;
          GetY:=y+3;
          FishingEquipmentName:='Fishing rod';
        end;
        if(FindItemBmpTol(bmpFlyRod,c))then
        begin
          GetX:=x+11;
          GetY:=y+5;
          FishingEquipmentName:='Fly fishing rod';
        end;
        if(FindItemBmpTol(bmpHarpoon,c))then
        begin
          GetX:=x+3;
          GetY:=y+4;
          FishingEquipmentName:='Harpoon';
        end;
        if(GetX>0)and(GetY>0)then
          FishingEquipmentColor:=GetColor(GetX,GetY);
        if(FishingEquipmentColor>0)then
        begin
          Result:=true;
          WriteLn('Fishing equipment color... '+inttostr(FishingEquipmentColor));
          WriteLn('Fishing equipment name... '+FishingEquipmentName);
          Break;
        end;
      end;
    end;

    function FindFishingEquipment:boolean;
    var
      c:integer;
    begin
      GameTab(4);
      Result:=True;
      if(not(FindItemColor(FishingEquipmentColor)))then
      begin
        Wait(2000+random(100));
        Result:=False;
        repeat
        c:=c+1;
        if(FindItemColor(FishingEquipmentColor))then
        begin
          Result:=true;
          break;
        end;
        if(FindObj2(FishingEquipmentName,FishingEquipmentColor,5))then
        begin
          Mouse(x,y,1,1,true);
          Flag;
          wait(1000+random(100));
        end
        else if(PickUpItems)then
          ItemGrab;
        until(c>=10);
      end;
    end;

    //WOODCUTTING

    function FindAxeHeadColor:boolean;
    var
      bmpAxe:integer;
    begin
      bmpAxe:= BitmapFromString(15, 11, 'z78DA95935B8EC3200C45B704F6B5' +
           '81CF06C2FE97541753898822CDC4D2FD0073FC0C32DFCCE1F3C55' +
           'D511018183EFF552768420B39B16868A9CB1D5AAE5A623C453C66' +
           'B293AB046326C9C624A52F59924433C18D5B0815E667759493AEF' +
           'C07F9926ACC97EA37DBC75B27BB6EB1344584ECAF389099B245CA' +
           'DA859E648B5AB800DCB94341662F88594386AE4C3FF94176A6F77' +
           '6C9962E2A5418D4A9F3C5CA8AC895ABC75A6B39911F535BC8279D' +
           '51066DEAA8E5EF64BF5D759EAF5DF26CF9C35CD53DE73EA822B49' +
           'DB9EFF39CBE77C6B3DD9833E7037932F73F45B9314DFE98ECCE74' +
           '5DB7F7481EB45D1FFD5F2B1DB76FD953CBEA');
      if(FindItemBmpTol(bmpAxe,75))then
      begin
        Result:=true;
        AxeHeadColor:=GetColor(x+9,y+4);
      end else
        Writeln('Could not find axe head color!');
      FreeBitmap(bmpAxe);
    end;

    function FindAxe:boolean;
    var
      c,bmpAxeHead,bmpAxeHandle:integer;
    begin
      bmpAxeHead := BitmapFromString(12, 8, 'z78DA9591410EC3200C04BF64AF97E' +
           '21C6968FFFFA42685484E29510BD21C8C19ADE5746325D225653F' +
           '1A79EA218BDD3B27F5F6CB9E265AB95A0132D5A54E9DC1107BE01' +
           '055BA654867B0B968399CA301D85F7B06336EFCC513F313AE6E0B' +
           '562D5F3C6F436312AB60F6CF195B7E3C404DDDF6A7E73451F40CA' +
           '9C6ADF52904DBBDDEEFD83FE30B09BB7676');
      bmpAxeHandle := BitmapFromString(16, 27, 'z78DA9595511283200C44AFA440A2' +
           'FDD45AEF7FA4524367C0B021B6336907F5256C9648296D714F474' +
           'A7125CEBFA1C46BBD44B52EF7EBA7A6DF6796D87000A19345F3AF' +
           '15612E0BADD321B1C9822A47B9D4D59A1FF720F9EE7CBD17B4237' +
           '54FCD97FF710AF98BAA1AEC42EDD4C5777450E745E4077C47CD7C' +
           '5268F91D8247992AD7A0728FDB41DF1B3746E29BE66EB27D8E34D' +
           '9E519337B21EFF4EE56EEA781AB2ECD1F9ED0862C95039F43D799' +
           'B1904FFAFCC9B4E5D5B5D35394C5748EAD3952DEC36F2A379519F' +
           '41474D9D6BCD3535B6D4DAE2B07E7C87E53F87B3A980066CD9D37' +
           '91AD393A2F0E87AF81F32494287C5ED2D175A3D6C1A14921DBCAB' +
           '8E7894DE6374DD88DAE095FF399D3B072704ED14C4064FD3E1A4C' +
           '6F5B998D797EEE467BB654FC57E4736EB2B8DCE2C8F805915426A' +
           '2');
      Result:=True;
      if(FindItemBmpTol(bmpAxeHandle,50))or(NewChatMsg('need an axe'))then
      begin
        Result:=False;
        Wait(2000+random(100));
        if(FindBitmapSpiralTolerance(Ore,x,y,559,210,735,460,25))then
        begin
          Mouse(x,y,5,5,false);
          ChooseOption('Drop');
        end;
        repeat
        c:=c+1;
        if(FindItemBmpTol(bmpAxeHead,50))and(FindItemBmpTol(bmpAxeHandle,25))then
        begin
          Result:=true;
          Break;
        end;
        if(FindObj('Take',AxeHeadColor,0))then
        begin
          Mouse(x,y,1,1,true);
          Flag;
          wait(1000+random(100));
        end
        else if(PickUpItems)then
          ItemGrab;
        until(c>=10);
        if(FindItemBmpTol(bmpAxeHead,50))and(FindItemBmpTol(bmpAxeHandle,50))then
        begin
          ClickItemBmpTol(bmpAxeHead,50,true);
          ClickItemBmpTol(bmpAxeHandle,50,true);
          Attaches:=Attaches+1;
        end;
      end;
      FreeBitmap(bmpAxeHead);
      FreeBitmap(bmpAxeHandle);
    end;

    function FindEnt(TreeColor:integer):boolean;
    begin
      if(not(Option('Chop')))then
        FindObj('Chop',TreeColor,0);
      if(Option('Chop'))then
      begin
        if(FindColorTolerance(x,y,383705,9,9,233,24,20))then
        begin
          GetMousePos(x,y);
          Mouse(x,y,r,r,false);
          if(FindText('Chop down',UpChars,x,y,x+100,y+50))then
          begin
            if(FindColor(x,y,65535,x+70,y,x+100,y+10))then
            begin
              ChooseOption('Walk here');
              Flag;
              WriteLn('Found ent! Waiting for it to go away');
              Wait(25000+random(5000));
              Result:=true;
            end;
          end else
            ChooseOption('Cancel');
        end;
      end;
    end;

    //============================================================================\\
    //============================ANTI BAN PROTECTION=============================\\
    //============================================================================\\

    procedure LogOutEvery(hours,forxmins:integer);
    var
      Mark:integer;
    begin
      if((TimeFromMark(LogOutMark)/1000)/3600>=hours)then
      begin
        MarkTime(LogOutMark);
        MMouse(random(500),-10,r,r);
        LogOut;
        writeln('Logging out and comming back in about '+inttostr(forxmins)+' min(s)');
        MarkTime(Mark);
        repeat
        MMouse(0,0,100,100);
        wait(90000+random(1000));
        wait(15+random(15)+random(15))
        until(TimeFromMark(Mark)>=forxmins)
        wait(random(30000)+random(30000));
        LoginIfNeeded;
      end;
    end;

    procedure RandomChat;
    var
      RandomChatList: array[0..40] of string;
    begin
    RandomChatList[0]:= 'hi all';
    RandomChatList[1]:= 'yay';
    RandomChatList[2]:= 'owned';
    RandomChatList[3]:= 'kk';
    RandomChatList[4]:= 'lol';
    RandomChatList[5]:= 'boring';
    RandomChatList[6]:= 'oh yeah';
    RandomChatList[7]:= 'sigh';
    RandomChatList[8]:= 'lvls?';
    RandomChatList[9]:= 'how is everyone';
    RandomChatList[10]:= 'im tired';
    RandomChatList[11]:= 'okay';
    RandomChatList[12]:= 'omg';
    RandomChatList[13]:= 'be quiet';
    RandomChatList[14]:= 'woot';
    RandomChatList[15]:= 'hey everyone';
    RandomChatList[16]:= 'heh';
    RandomChatList[17]:= 'yawn';
    RandomChatList[18]:= 'moo';
    RandomChatList[19]:= 'excellent';
    RandomChatList[20]:= 'doof';
    RandomChatList[21]:= 'crazy';
    RandomChatList[22]:= 'hmm';
    RandomChatList[23]:= 'yawn';
    RandomChatList[24]:= 'go away';
    RandomChatList[25]:= 'stop it';
    RandomChatList[26]:= 'thanks';
    RandomChatList[27]:= 'i love you';
    RandomChatList[28]:= 'noobs';
    RandomChatList[29]:= 'argh';
    RandomChatList[30]:= 'rofl';
    RandomChatList[31]:= 'yawn';
    RandomChatList[32]:= 'whats up';
    RandomChatList[34]:= 'almost leveled';
    RandomChatList[35]:= 'lvl';
    RandomChatList[36]:= 'brb';
    RandomChatList[37]:= 'owned';
    RandomChatList[38]:= '...';
    RandomChatList[39]:= 'levels?';
    RandomChatList[40]:= 'youre cool';
    TypeSend(RandomChatList[random(40)]+chr(13));
    While(not(GetColor(55,488)=255))do
      Mouse(55,488,r,r,true);
    end;

    procedure RandomChatEvery(mins:integer);
    begin
      if((TimeFromMark(RandomChatMark)/1000)/60>=mins)then
      begin
        MarkTime(RandomChatMark);
        RandomChat;
      end;
    end;

    procedure RotateEvery(mins:integer);
    begin
      if(not(ScarScape))then
      begin
        if((TimeFromMark(RotateMark)/1000)/60>=mins)then
        begin
          MarkTime(RotateMark);
          SendArrowSilentWait(random(4),500+random(500));
          SendArrowSilentWait(random(4),500+random(500));
          Face(SetCamera);
          SendArrowSilentWait(0,1400+random(100));
        end;
      end;
    end;

    procedure LeaveScreenEvery(mins:integer);
    var
      rx,ry,a:integer;
    begin
      if((TimeFromMark(LeaveScreenMark)/1000)/60>=mins)then
      begin
        MarkTime(LeaveScreenMark);
        rx:=Random(763);
        ry:=Random(500);
        a:=Random(3);
        if(a=0)then
        begin
          MoveMouseSmooth(0-random(10),ry);
          Wait(100+Random(2000));
        end;
        if(a=1)then
        begin
          MoveMouseSmooth(763+random(10),ry);
          Wait(100+Random(2000));
        end;
        if(a=2)then
        begin
          MoveMouseSmooth(rx,502+random(10));
          Wait(100+Random(2000));
        end;
        if(a=3)then
        begin
          MoveMouseSmooth(rx,0-random(10));
          Wait(100+Random(2000));
        end;
        MMouse(3,3,515,338);
      end;
    end;

    procedure KillScript(hours:integer);
    begin
      if((TimeFromMark(KillScriptMark)/1000)/3600>=hours)then
      begin
        writeln('Stopping script at '+inttostr(hours)+' hours');
        MMouse(random(500),-10,r,r);
        TerminateScript;
      end;
    end;

    procedure AntiBan;
    begin
    if(LogsOut)then
      LogOutEvery(2+random(2),5+random(5));
    if(Chats)then
      RandomChatEvery(10+random(5));
    if(Rotates)then
      RotateEvery(20+random(10));
    LeaveScreenEvery(5+random(5));
    if(KillScriptTime>0)then
      KillScript(KillScriptTime);
    end;

    //============================================================================\\
    //================================Load SSI====================================\\
    //============================================================================\\

    procedure LoadSSIBmps;
    begin
    Ore := BitmapFromString(8, 11,
           '564D42564D42564D42564D42564D42564D42000001000001564D42' +
           '564D42564D42544A3B544A3B0000013D312254442F564D42564D42' +
           '564D42564D420000012D2518443827584731564D42544A3B544A3B' +
           '564D42000001201B124034257A6346564D42544A3B4D4438564D42' +
           '000001483B297D6547806748564D42564D42544A3B564D42000001' +
           '7D6547806748000001564D42564D42544A3B544A3B544A3B000001' +
           '000001302020000001000001000001000001000001544A3B302020' +
           '3020202D2518382D1E403425483B2951412D000001544A3B544A3B' +
           '5847315C4A345E4D366552395E4D360000013020200000015C4A34' +
           '5E4D3665523968543B655239000001302020000001');
    Lamp := BitmapFromString(6, 6,
           '81800E79780E84830E00000100000100000179780E75740E000001' +
           '000001C3C118B5B3156E6D0E525209000001302020000001000001' +
           '696809484709000001302020544A3B302020000001000001302020' +
           '302020544A3B564D42302020302020302020544A3B544A3B564D42' +
           '');
    PickHandle := BitmapFromString(15, 27,
           '564D41595145564D41544A3C544A3C595145564D41564D41564D41' +
           '564D41595145000001000001544A3C4F4538544A3C595145564D41' +
           '544A3C544A3C544A3C5951455951455951455951450000012F2000' +
           '362400000001544A3C564D41544A3C544A3C564D41564D41564D41' +
           '5951455951455951450000012F20002F2000362400000001302020' +
           '564D41544A3C544A3C595145564D41595145564D41595145595145' +
           '0000012F2000362400362400000001302020564D41564D41564D41' +
           '564D41564D41544A3C544A3C544A3C0000012F20002F2000362400' +
           '362400000001302020544A3C544A3C544A3C544A3C544A3C544A3C' +
           '544A3C544A3C0000012F2000362400362400362400000001302020' +
           '544A3C564D41564D41564D41544A3C564D41564D410000012F2000' +
           '2F2000362400362400000001302020302020564D41564D41564D41' +
           '595145564D41564D41564D410000012F2000362400362400000001' +
           '302020302020544A3C544A3C544A3C544A3C595145544A3C544A3C' +
           '0000012F2000362400362400362400000001302020564D41564D41' +
           '544A3C544A3C544A3C564D41544A3C4F45380000012F2000362400' +
           '362400000001302020302020564D41564D41544A3C544A3C595145' +
           '595145564D410000012F2000362400362400362400000001302020' +
           '564D41564D41544A3C544A3C564D41564D41595145595145000001' +
           '2F20002F20002F2000000001302020302020564D41564D41544A3C' +
           '564D41564D41544A3C564D410000012F20002F20002F2000362400' +
           '000001302020564D41544A3C544A3C544A3C595145544A3C544A3C' +
           '564D410000012F20002F20002F2000000001302020302020544A3C' +
           '544A3C564D41564D41595145544A3C544A3C0000012F20002F2000' +
           '2F2000000001302020302020595145544A3C564D41595145595145' +
           '595145564D41564D410000012F20002F20002F2000000001302020' +
           '595145595145564D41564D41595145595145595145595145000001' +
           '2F20002F20002F2000000001302020302020595145595145595145' +
           '595145564D41564D41564D41564D410000012F20002F20002F2000' +
           '000001302020564D41595145595145595145595145564D41564D41' +
           '544A3C0000012F20002F20002F2000000001302020302020564D41' +
           '595145595145544A3C544A3C564D41595145564D410000012F2000' +
           '2F20002F2000000001302020544A3C564D41595145595145544A3C' +
           '544A3C564D41564D41564D410000012F20002F2000000001302020' +
           '302020544A3C564D41595145595145564D41544A3C544A3C4F4538' +
           '000001271B002F20002F2000000001302020595145544A3C564D41' +
           '595145595145595145544A3C544A3C544A3C0000011D1500271B00' +
           '000001302020302020595145544A3C564D41595145595145595145' +
           '564D41564D41564D410000011D15001D1500000001302020595145' +
           '544A3C544A3C564D41595145595145595145595145595145544A3C' +
           '0000011D15001D1500000001302020564D41595145595145595145' +
           '595145564D41595145595145564D41544A3C564D41000001000001' +
           '302020302020595145595145595145595145544A3C564D41595145' +
           '544A3C544A3C4F4538564D41595145302020302020564D41595145' +
           '564D41564D41564D41544A3C544A3C564D41544A3C544A3C544A3C' +
           '');
    PickHead := BitmapFromString(6, 5,
           '2E1F002E1F00352400000001483E33483E331D1400261A002E1F00' +
           '352400000001483E331D14001D1400261A002E1F00000001302020' +
           '000001000001000001000001302020302020302020302020302020' +
           '302020302020483E33');
    PickAxe := BitmapFromString(30, 14,
           '564D42564D42544A3B4D4438544A3B564D42564D42544A3B4D4438' +
           '544A3B544A3B544A3B544A3B544A3B000001000001000001000001' +
           '544A3B564D42564D42564D42564D42564D42564D42544A3B544A3B' +
           '564D42544A3B564D42564D42544A3B544A3B4D4438564D42564D42' +
           '544A3B544A3B564D42564D42544A3B4D44384D44380000012F2000' +
           '2F20003625003D2900000001564D42564D42564D42564D42564D42' +
           '564D42564D42544A3B564D42544A3B564D42544A3B4D4438544A3B' +
           '564D42564D42000001000001000001000001000001000001000001' +
           '000001000001392D1B44341E4D3B22544127000001302020564D42' +
           '544A3B564D42564D42564D42564D42564D42544A3B544A3B564D42' +
           '4D44384D4438564D42000001000001392D1B342918342918342918' +
           '34291834291834291834291834291834291840311E44341E4D3B22' +
           '000001302020544A3B544A3B564D42564D42564D42564D42564D42' +
           '544A3B544A3B564D42544A3B000001000001392D1B392D1B392D1B' +
           '3429183429183429183429183429183429183429183429181E1500' +
           '271B005441274D3B22000001000001564D42544A3B564D42564D42' +
           '564D42564D42564D42564D42544A3B564D42000001392D1B392D1B' +
           '392D1B392D1B392D1B342918342918342918342918342918342918' +
           '3429181E1500271B002F2000513E254D3B2248382044341E000001' +
           '000001544A3B544A3B564D42564D42564D42544A3B544A3B564D42' +
           '544A3B000001000001000001000001000001000001000001000001' +
           '0000010000010000010000011E15002F20002F20004D3B224D3B22' +
           '48382044341E40311E44341E000001000001564D42564D42564D42' +
           '544A3B544A3B564D42544A3B4D4438302020302020302020302020' +
           '3020203020203020203020203020200000011E1500271B002F2000' +
           '2F20004D3B224D3B2248382044341E40311E392D1B40311E44341E' +
           '000001000001564D42564D42544A3B564D42544A3B544A3B4D4438' +
           '544A3B544A3B544A3B544A3B544A3B4D4438544A3B544A3B000001' +
           '1E15002F20002F20002F200000000100000100000144341E40311E' +
           '392D1B342918392D1B40311E44341E000001564D42544A3B564D42' +
           '564D42564D42564D42544A3B544A3B564D42564D42564D42544A3B' +
           '564D420000011E1500271B002F20002F2000000001302020302020' +
           '302020000001000001000001392D1B2F2515342918392D1B000001' +
           '302020564D42564D42564D42564D42544A3B544A3B564D42564D42' +
           '564D424D44384D4438564D420000011E15002F20002F2000000001' +
           '302020302020544A3B544A3B544A3B302020302020000001000001' +
           '0000012F2515392D1B000001544A3B564D42564D42564D42544A3B' +
           '544A3B544A3B564D42564D42544A3B544A3B0000011E15002F2000' +
           '2F20002F2000000001302020544A3B544A3B544A3B564D42564D42' +
           '544A3B544A3B30202030202000000100000140311E000001564D42' +
           '544A3B544A3B564D42564D42544A3B544A3B544A3B564D42564D42' +
           '0000011E15002F20002F2000000001302020302020544A3B544A3B' +
           '564D42564D42564D42544A3B4D4438544A3B564D42564D42302020' +
           '000001302020302020544A3B544A3B544A3B4D4438544A3B544A3B' +
           '544A3B544A3B0000011E15002F20002F20002F2000000001302020' +
           '4D44384D4438544A3B544A3B564D42564D42564D42544A3B544A3B' +
           '544A3B544A3B544A3B564D42302020544A3B');
    PickAxeSteel := BitmapFromString(30, 14,
           '564D42564D42544A3B4D4438544A3B564D42564D42544A3B4D4438' +
           '544A3B544A3B544A3B544A3B544A3B000001000001000001000001' +
           '544A3B564D42564D42564D42564D42564D42564D42544A3B544A3B' +
           '564D42544A3B564D42564D42544A3B544A3B4D4438564D42564D42' +
           '544A3B544A3B564D42564D42544A3B4D44384D44380000012D1E00' +
           '2D1E003423003A2700000001564D42564D42564D42564D42564D42' +
           '564D42564D42544A3B564D42544A3B564D42544A3B4D4438544A3B' +
           '564D42564D42000001000001000001000001000001000001000001' +
           '0000010000015C5656686060756D6C827878000001302020564D42' +
           '544A3B564D42564D42564D42564D42564D42544A3B544A3B564D42' +
           '4D44384D4438564D42000001000001595353595353595353595353' +
           '595353595353595353595353595353575151615A596A6262756D6C' +
           '000001302020544A3B544A3B564D42564D42564D42564D42564D42' +
           '544A3B544A3B564D42544A3B0000010000015C5656595353575151' +
           '5751515751515751515751515751515751515751515751511C1400' +
           '251900827878756D6C000001000001564D42544A3B564D42564D42' +
           '564D42564D42564D42564D42544A3B564D42000001615A595F5858' +
           '5C5656595353575151575151544E4E544E4E544E4E544E4E544E4E' +
           '544E4E1C14002519002D1E007D7474756D6C6E67676A6262000001' +
           '000001544A3B544A3B564D42564D42564D42544A3B544A3B564D42' +
           '544A3B000001000001000001000001000001000001000001000001' +
           '0000010000010000010000011C14002D1E002D1E00797070756D6C' +
           '6E67676A6262635D5C6A6262000001000001564D42564D42564D42' +
           '544A3B544A3B564D42544A3B4D4438302020302020302020302020' +
           '3020203020203020203020203020200000011C14002519002D1E00' +
           '2D1E007B7272756D6C6E67676A6262635D5C5F5858635D5C686060' +
           '000001000001564D42564D42544A3B564D42544A3B544A3B4D4438' +
           '544A3B544A3B544A3B544A3B544A3B4D4438544A3B544A3B000001' +
           '1C14002D1E002D1E002D1E00000001000001000001686060635D5C' +
           '5F58585751515C5656615A59665E5E000001564D42544A3B564D42' +
           '564D42564D42564D42544A3B544A3B564D42564D42564D42544A3B' +
           '564D420000011C14002519002D1E002D1E00000001302020302020' +
           '302020000001000001000001595353524B4B544E4E595353000001' +
           '302020564D42564D42564D42564D42544A3B544A3B564D42564D42' +
           '564D424D44384D4438564D420000011C14002D1E002D1E00000001' +
           '302020302020544A3B544A3B544A3B302020302020000001000001' +
           '0000014D47465F5858000001544A3B564D42564D42564D42544A3B' +
           '544A3B544A3B564D42564D42544A3B544A3B0000011C14002D1E00' +
           '2D1E002D1E00000001302020544A3B544A3B544A3B564D42564D42' +
           '544A3B544A3B302020302020000001000001665E5E000001564D42' +
           '544A3B544A3B564D42564D42544A3B544A3B544A3B564D42564D42' +
           '0000011C14002D1E002D1E00000001302020302020544A3B544A3B' +
           '564D42564D42564D42544A3B4D4438544A3B564D42564D42302020' +
           '000001302020302020544A3B544A3B544A3B4D4438544A3B544A3B' +
           '544A3B544A3B0000011C14002D1E002D1E002D1E00000001302020' +
           '4D44384D4438544A3B544A3B564D42564D42564D42544A3B544A3B' +
           '544A3B544A3B544A3B564D42302020544A3B');
    FrogSpot := DTMFromString('78DA63AC606260B06100030E2006F2184AF36' +
         '2C07C4620FE0F048CDD405167881A56A8B8555D3A033F940D565B' +
         '0254A349404D12508D037E35000D030BB3');
    Frog := BitmapFromString(30, 2, 'z78DA73727274B534B23000012' +
         '74747270B47E249645DB84C808A836D4126C91447321317498C9B' +
         '5154426CC160633119C355982EC4A51E00B445523B');
    bmpFreakyForester := BitmapFromString(106, 2, 'z78DAA552410AC0' +
           '3008FBD23618B8A3C2FEFFA531BA4346D406DA8394D8468DB1ED3' +
           'DE11EE67A34F885F7B8FCB47DC4817F59C07B36442A3C41C2EFEB' +
           'E0F8CBB63C2BB1EF61D215E3BADAF437C9221BEC455295AA24B57' +
           '846A57FE2A9365EB1252FD163E4C0C48DC456EAAC7812676FA75B' +
           'F21E5499F00B0E54F6B8C2D96BD8EBD0D7D555AD781E9D382154');
    bmpLeaveTheArea := BitmapFromString(89, 2, 'z78DA3330000127474' +
         '7270B4708690011717274B534422631C5514490F5229946919944' +
         '881343E2D74B65B7417C8DC926DA765C61881C92C4A8C1296EE96' +
         '86A610821718910E3779CA18AE46B5CA6511EF294A4075AA70A02' +
         'E9019324C29DE4C5387E35C4EB820000EEBEF642');
    bmpPheasantMeat := BitmapFromString(14, 7, 'z78DA7D915B8EC6200' +
         '885B7A4DC79ACD5EE7F497FA7C74968E6A2093127F0014799221C' +
         '2A72F090E7DDBE4EB7C3C428C4A71F88D0B9D17D11A1B8DA65678' +
         'CD0E8502A67D34484C45399469C7A31B96AA3519935DFD9A68DEC' +
         '91E12FCE3DCA9B13A98BDB5F34E83624C9BDD9B074F76E4B4F5ED' +
         '4EC9271EBA72ACD4D331DFFD04826E5EEDED468A17BB0262DE454' +
         '0EF49FB4CAC40C9B862A102AB3D090593D79F9838D3021AA2EEB2' +
         'CBFCCF970B0FB76E3F1163F654D3AD166C2BDE25292F137B3EEF5' +
         '01384D7A16');
    bmpNet := BitmapFromString(30, 5, 'z78DA7592510E83300C43AF1492' +
           '14FA3B98B8FF9116EAA6B8A06D9A153985BC782DEE1FDBCB4BFDE' +
           'B6E55AECF52AA57F3F8559354173BD0450D7F95223E9CF415DD2D' +
           'CF37474C4CE1475D75E7B799EBA17D3A949DB2069DB2F249669BF' +
           '95FBE5CCED5F53C13540AEDB350DFB4B90B6F84F7C45754B10B74' +
           '6246B644CB73911BFBC89369793B4CEC5420EC6CA3BB4171066C7' +
           '0A6549BDF34999BC339A36E84F5996A72A27B6F947BA14617247D' +
           '6E102F27F3608B8733320CAD8ABBB70561BF873AFD9BF1BCA8FCB' +
           'B0337A1F9942439BC2368D7BA8A9FCF7BAE0773F63B8F9C1B27F2' +
           'ECF5204F5A70B2FE00E57BB5C0');
    bmpCage := BitmapFromString(10, 27, 'z78DA95945B8EC3200C45B704' +
           'F8957E0219F6BFA4B1B05B9949130D8D743EF0A9E3D657A4A49F9' +
           'C6E488C2716276285164F0AE59A92F3CC63E56DCFD9E7EA0316F8' +
           'B0956325E6D2DE3D17F3D15F2865A463D78FDCF01BC01F3E76BEF' +
           'A9480DFDCF59D04AF1D736185BEEF2FDCF5078C0F77FD49D6D5EE' +
           'FB91BB3E1F481F763CD2B99C18AF66F48D8D413DCB464342922A5' +
           '9320F6C5ABDE38BB33E271393A7E244CD8730FFE8A99DDBDE050B' +
           '16E902FA84AA14AE5CEDBB04D8B10B72D76906EB949EBD304FAC5' +
           'A1FEBEF2787241EE678F6E23CE6CCAA99D6DF27998ED13718E789' +
           'CEFC15E6D83FE03DE784B6BB388F3B560DD960A6413EADF7B42D8' +
           '777B963D5FF6423CCF365E3CFD908F3C46CC49B73C9CC33674220' +
           '157D8CD77BF82E575F6EFEC9E76E7E33CFEA2F16B15827');
    bmpRod := BitmapFromString(17, 7, 'z78DA75924192C5200844AF8440' +
           '8359263ADEFF489FAFC914D664A08AC553BB0B10A65D19B3D237C' +
           'A7FD5AA822A488C6AE63E30A8C769DFB9351075BDA4C6ABA40F47' +
           'C15D835675BD148A5B1F7250958B97D6ABDAE63BF97653D1D156C' +
           '589AFB4688B9C2E5AA44953E7F1DAC580844B89D3DBFD2F79B8D5' +
           'C8C34A24E3C259B4446417A912B1B9088C7ACCB03DEE558CA92FB' +
           'E881013D38BCBEAA8C1629AD9A570E79EF54D3466A82EFA3BABC9' +
           '33C92EFEE3B10E673B235347B78BCA90B175E1385EBB983CEBAF9' +
           'AB7EFCD2572791962EA6B479BFE85F6FCA86DE3936792F53F03E2' +
           '9337');
    bmpFlyRod := BitmapFromString(18, 9, 'z78DA8D934B8EC4300844AF4' +
           '44C81EDA53FE3FB1F699810B570BB5B1A47F202121E55104C808B' +
           '008DBB282652BCE9EF5C3969D3868CF48A2C59347509D394854CC' +
           '5E3675649AA548F7B4D1CC4481142458DD52205575A446736C699' +
           '923D8F0AA7DCF746C972C9957A6AA979BCB0269A99458D453C764' +
           '5311B291BEBD0E2DA853130B63AD91C99CAA6B3C46ACFB7370599' +
           'B1671FDF4E8A8AF92D8285C585ED3CD92EC32805D37CEB5CDE667' +
           '4F710956E8A0EC774AAA8481308F8872BD78DE2B30E8A36BDF73B' +
           'FFF20D3AB4BB6FA676F1B25C412EAAB03ABE5743E8D38C9C12957' +
           'ED884836834B6BEBBC992D8F3574AE8E19BA238A993F8505C916F' +
           'C23DA333EB9D780FE77F1477DB23BF361FC994');
    bmpHarpoon := BitmapFromString(10, 10, 'z78DA8D514B8EC53008BB5' +
           '208189C65D2B4F73FD2CB3CBA48D51969585851843F804D3325DC' +
           'A6D51DCB4FC91BFFD3134768280F56D67CFB7075DD15E20C04586' +
           '215355A3422467476CAFA353F7CE080C3DD307124574B2D69FB74' +
           'BC59D5BBF7252B103DB5694387C1BC62A0DFEE665DC7CD3A69B43' +
           'B61737101ECB2EB31EF57E1E1751144AB0C865F4E67F6D8588077' +
           'CE7C677F333692DD5D245365DABD3331B7B4EB706DA24C40AF42E' +
           '912126FEE7D9DEF8C893B6B9F42A5CE3A7FE1EE0A7DDD98EF6C7F' +
           'A5DDB91FF2B77B29');
    end;

    procedure PrepClient;
    begin
      LoginIfNeeded;
      ChatsOff;
      if(not(ScarScape))then
      begin
        Face(SetCamera);
        SendArrowSilentWait(0,1400+random(100));
      end;
    end;

    procedure SetupSSI;
    begin
    Username:=PermUser;
    Password:=PermPass;
    ScarScape:=PermScarScape;
    LoadChars('');
    DisguiseScar(MaskName);
    UpChars:= LoadChars2(AppPath + 'CharsRS22\');
    ChatChars:= LoadChars2(AppPath + 'CharsChat2\');
    StatChars:= LoadChars2(AppPath + 'CharsChat2\fontsmall\');
    CWindow := BitmapFromString(66, 8, 'z78DA33304000372460' +
           '800170890F1420C63DB473333D4D264664342E06CACCE11117D4F' +
           '2C5E08C0BFC251BA61A4ACCA145BE20C66DD4F205EDFC4EAD928D' +
           '76BA06BF083DE382F8D432506963A04488610FCE5C408C69F87D3' +
           '454E28276651D754B636A95F994E76E5AD49E002F369293');
    MarkTime(LogOutMark);
    MarkTime(RandomChatMark);
    MarkTime(RotateMark);
    MarkTime(KillScriptMark);
    MarkTime(LeaveScreenMark);
    GasColor:=8100004;//Reference color of gas.
    LoadSSIBmps;
    ST:=GetSystemTime;
    SetMouseMode(false);
    if(SetCamera='')then
      SetCamera:='N';
    end;

  15. #15
    Join Date
    Nov 2006
    Posts
    28
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    yohojo8,
    thank you VERY much!
    Maybe all problems with downloaded scripts cunfused by Includes. I hope SSI2 is the last thing, which has to be updated.

  16. #16
    Join Date
    Sep 2006
    Location
    Scripter's Heaven
    Posts
    455
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    listen, you are trying to use a powerchopper that is old and doesnt work, if you want, i will send you a very good powerchopper with no bugs by PM.

    And check out my pascal interpreter!
    <R0b0t1> No, really, I went to a bar and picked up a transvestite.

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. Replies: 5
    Last Post: 02-26-2008, 04:14 PM
  2. My First Script, A PowerChopper!(no bank)
    By HyperSecret in forum First Scripts
    Replies: 4
    Last Post: 10-07-2007, 07:21 AM
  3. First script(powerchopper) help
    By Macho Man67 in forum OSR Help
    Replies: 4
    Last Post: 04-17-2007, 03:56 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
  •