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

error in wc script

  • Thread starter Thread starter Lordevan134
  • Start date Start date
L

Lordevan134

Guest
i have Scar 2.03, and SRL 360b, which is what it said i needed for these scripts, (ur sticky in Scar Runescape scripts)

Line 75: [Error] (18116:32): Identifier expected in script C:\Program Files\SCAR 2.03\Scripts\ChArM's Willow Raper v2.1.scar

what should i do???
 
Code:
{=========================================================================]
[                       ~ChArM's Willow Raper~                            ]
[                           ~Version: 2.1~                                ]
[=========================================================================]
|~Description:                                                            |
|   A macro that chops a full load of willows in Draynor,                 |
|   then banks it.                                                        |
|~Instructions:                                                           |
|   1. Set the Runescape brightness to V-bright, and your computer's      |
|       resolution to 32bit resolution.                                   |
|   2. Need SCAR version 2.0.3.                                           |
|   3. Need SRL version 3.5.                                              |
|   5. Setup Lines 60-64, and 70+                                         |
|   6. Start script in Draynor Bank.                                      |
|   7. Start with a axe in your first inventory slot or wielded.          |
|   8. Recomended to have extra axes near top of bank.                    |
|~Features:                                                               |
|  AutoResponder                                                          |
|  AntiBan                                                                |
|  Randoms (UpToDate With SRL)                                            |
|  AutoColor                                                              |
|  Multiple Players                                                       |
|  Awsome Ent and Axe Head Finding                                        |
[=========================================================================]
|~Version Info:                                                           |
|  v1.0 - First Release                                                   |
|  v1.1 - Updated Walking, and fixed little things.                       |
|  v1.2 - Fixed Lag                                                       |
|  v1.5 - Added Forms, Little Bug Fixes, Better Walking                   |
|  v2.0 - Completely rewrote script, removed powerchopping and forms      |
|         UPDATED EVERYTHING!                                             |
|  v2.1 - Fixed running from fights and Progress report, new ent finding, |
|         improved tree finding(2 ways), walking, and banking             |
[=========================================================================}

Program CharmWillowRaper;
{.Include SRL/SRL.Scar}
{.Include SRL/SRL/Skill/Woodcutting.Scar}

Const Ver= 'v2.1'; //Version #, DONT TOUCH!

//----------------------------------------------------------------------------//
//---> Variables                                                              //
//----------------------------------------------------------------------------//

Var
 BankDot1, BankDot2, BankDot3, AxeHandleDTM: Integer;
 LogMask, AxeHeadMask, BrokenAxeHeadMask, AxeMask: Integer;
 AxeHeadColor1, AxeHeadColor2, AxeHeadColor3: Integer;
 AxesBroke, HeadsFound: Integer;
 Chat, Name, ChatName: String;
 NoAxe, NoAxes: Boolean;
 ChopMark, CallibrateTime: LongInt;
 Loads, TotalWillows, TotalExp: Integer;

//----------------------------------------------------------------------------//
//---> Setup                                                                  //
//----------------------------------------------------------------------------//

Const WaitTime= 25; //Second to wait before clicking tree again used as a failsafe random extra 5 seconds is added on
Const DebugMode= 2;
Const RunDirection= 'E'; //Direction To Run Incase of a Fight?
Const UseAutoResponder= True; //Enable The Auto Responder?
Const MaxLoadTime= 10; //Max Time 1 Load Can Take In Minutes

//----------------------------------------------------------------------------//
//---> Setup Players                                                          //
//----------------------------------------------------------------------------//

Procedure DeclarePlayers;
Begin

     HowManyPlayers := 3;
     CurrentPlayer:= 0;
     NumberOfPlayers(HowManyPlayers);

     Players[0].Name     := '';
     Players[0].Pass     := '';
     Players[0].Nick     := '';     //3 Lowercase Letters of your username
     Players[0].Integer1 := 35;     //Loads For Player
     Players[0].Boolean1 := False;  //Equip Axe?
     Players[0].Active   := True;

     Players[1].Name     := '';
     Players[1].Pass     := '';
     Players[1].Nick     := '';
     Players[1].Integer1 := 35;
     Players[1].Boolean1 := True;
     Players[1].Active   := True;

     Players[2].Name     := '';
     Players[2].Pass     := '';
     Players[2].Nick     := '';
     Players[2].Integer1 := 35;
     Players[2].Boolean1 := False;
     Players[2].Active   := True;

End;

//----------------------------------------------------------------------------//
//---> Debug Procedure                                                        //
//----------------------------------------------------------------------------//

Procedure CharmDebug(Reason: String);
Begin
  Case (DebugMode) of
    1 : Status(Reason);
    2 : WriteLn(Reason);
    3 : DisguiseScar(Reason);
    4 : Exit;
  End;
End;

//----------------------------------------------------------------------------//
//---> Load DTMs                                                              //
//----------------------------------------------------------------------------//

Procedure LoadDTMs;
Begin

  BankDot1 := DTMFromString('78DA636C67626008664001FFFFFF67F80FA41' +  //By FT-Fwaki
       '921ECFF8CB54035DEA86AFEFC61621081AA0101C63A4C73B0AA09' +
       'C7AF06000153117B');

  BankDot2 := DTMFromString('78DA63EC60626008624001FFFFFF67F80FA41' +
       '921ECFF8C3540353EA86AFEFC61621081AA0101C63AA09A1022D4' +
       '44E057030001B5117D');

  BankDot3 := DTMFromString('78DA63EC60626008624001FFFFFF67F80FA41' +
       '921ECFF8CF540359EA86AFEFC61621081AA0101C63AA09A40026A' +
       '6A816A42F1AB010000781176');
       
  AxeHandleDTM := DTMFromString('78DA637465626078C48002CA2379191E02694' + //Stole From SRL
       '620FE0F048C0E40352F19D000231209A4ED806A3E1150E30454F3' +
       '86801A2FA09AEB04D47800D5DC23A0C616A8E61D01358E4035EF0' +
       '9A80185CF03FC6A00E1CD105C');

End;

//----------------------------------------------------------------------------//
//---> Load Bitmaps                                                           //
//----------------------------------------------------------------------------//

Procedure LoadBitmaps;
Begin

  LogMask := BitmapFromString(13, 10, 'z78DA33301805E40037BC8' +
       '0BAB6D0C2E5F451494998D02E5471010034299979');

  AxeMask := BitmapFromString(10, 10, 'z78DA7373230D18500028316' +
       '130E825353470A921DE3DE499409EDB480D25FCE10000B72C7CE1' +
       '');

  AxeHeadMask := BitmapFromString(12, 8, 'z78DA3330200CDC3080018900' +
       '972E62CC24D55E4C9594BB993C13C8733FB5DCE3860310AF92185' +
       'B008E3078E5');

  BrokenAxeHeadMask := BitmapFromString(9, 10, 'z78DA7373230D1890' +
       '05C8D34BAA2EE2D5E3F21131FEC56FCBE091A53C34007F307225');

End;

//----------------------------------------------------------------------------//
//---> Color Finding Functions                                                //
//----------------------------------------------------------------------------//

Function FindMMWaterColor: Integer;
Var
Tol, WX, WY, MMWater: Integer;
Begin

  MMWater := BitmapFromString(4, 4, 'z78DA3377B53474B234A7190' +
       '9002EDC1611');

 Repeat
  Begin
   If(not(LoggedIn))then Break;
   Tol:= Tol + 5;
    If(FindBitmapToleranceIn(MMWater, WX, WY, MMX1, MMY1, MMX2, MMY2, Tol))then
     Begin
      WaterColor:= GetColor(WX, WY);
      Result:= WaterColor;
     End
    End
 Until(Result > 0) or (Tol > 75);

  If(Result= 0)then
   Begin
    WriteLn('Could NOT Find MMWater Color, Please Restart Script!');
    Logout;
    //TerminateScript;
   End else
   Begin
    WriteLn('MMWaterColor - '+IntToStr(Result));
   End

 FreeBitmap(MMWater);

End;

//----------------------------------------------------------------------------//
//---> AntiBan                                                                //
//----------------------------------------------------------------------------//

Procedure RCExamine;
Begin
 MMouse(Random(MSX1), Random(MSY1), 3, 5);
  If(IsUpText('hop down')) or (IsUpText('alk here'))then
   Begin
    GetMousePos(x, y);
    Mouse(x, y, 2, 1, False);
    If(ChooseOption(x, y, 'Examine'))then
     Begin
      Exit;
     End else
    ChooseOption(x, y, 'Cancel');
   End
End;

//----------------------------------------------------------------------------//

Procedure WoodcuttingAntiBan;
Var
X: Integer;
Begin
  If(InvFull)then Exit;
  If(TimeFromMark(ChopMark) > 1000+Random(4000))then
   Begin
    Status('AntiBan');
    X:= Random(9)+1;
    ActivateClient;
    Case X of
      0 : RCExamine;
      1 : SleepAndMoveMouse(750+Random(2000));
      2 : SendArrowSilentWait(((Random(2)*2)), 1000+Random(200));
      3 : SendArrowSilentWait(((Random(2)*2) + 1), 200+Random(200));
      4 : SendArrowSilentWait(((Random(2)*2)), 200+Random(200));
      5 : SendArrowSilentWait(((Random(2)*2) + 1), 20+Random(20));
      6 : SendArrowSilentWait(((Random(2)*2)), 20+Random(20));
      7 : IdleTime(500, 500, 1.0);
      8 : begin GameTab(1+Random(7)) Wait(Random(300)) GameTab(4) end;
      9 : IdleTime(300, 200, 2.0);
    End
   //MarkTime(ChopMark);
   FindTalk;
   SendArrowSilentWait(0, 750+Random(500));
  End
End;

//----------------------------------------------------------------------------//
//---> GetChatMessage Function                                                //
//----------------------------------------------------------------------------//

Function GetChatMessage(Text: String): Boolean;
Var
TX, TY: Integer;
Chat: String;
Begin

  If(IsTextInAreaEx(40, 415, 130, 415, TX, TY, ':', 0, SmallChars, False, True, 0, 0, 0))then
   Begin
    Chat:= Lowercase(Trim(GetTextAtEx(TX + 8, 415, 0, SmallChars, False, False, 0, 1, 16711680, 40, False, TR_AllChars)));

     If(Pos(Text, Chat) <> 0)then
      Begin
       Result:= True;
      End

   End

End;

//----------------------------------------------------------------------------//
//---> GetChatName Function                                                   //
//----------------------------------------------------------------------------//

Function GetChatName(Name: String): Boolean;
Var
I: Integer;
Begin

  ChatName:= Lowercase(Trim(GetTextAtEx(21, 415, 0, SmallChars, False, False, 0, 0, 0, 50, False, TR_AllChars)));

  I:= Pos(':', ChatName);
  If(I <> 0)then
   Begin
     Delete(ChatName, I, I);
   End

  If(Pos(Name, ChatName) <> 0)then
   Begin
     Result:= True;
   End

End;

//----------------------------------------------------------------------------//
//---> AutoRespond Function                                                   //
//----------------------------------------------------------------------------//

Function AutoRespond: Boolean;
Var
Responce, Lvl: String;
RandomReply: Integer;
Begin

  OldLine:= TheLine;
  TheLine:= Lowercase(Trim(GetTextAtEx(20, 415, 0, SmallChars, False, False, 0, 1, 16711680, 40, False, TR_AllChars)));
  NewLine:= TheLine;

 If(GetChatName(Players[CurrentPlayer].Name))then
  Begin
   Exit;
  End

 If(OldLine=NewLine)then
  Begin
   Exit;
  End

  If(GetChatMessage(Players[CurrentPlayer].Name)) or (GetChatMessage(Players[CurrentPlayer].Nick))then
   Begin
     WriteLn(''+ChatName+': '+Chat);
     RandomReply:= Random(10)+1;
    Case (RandomReply) of
      0 : Responce:= ('?');
      1 : Responce:= ('what');
      2 : Responce:= ('yes');
      3 : Responce:= ('no');
      4 : Responce:= ('what do you want');
      5 : Responce:= ('me?');
      6 : Responce:= ('Yah?');
      7 : Responce:= ('who?');
      8 : Responce:= ('wha?');
      9 : Responce:= ('?');
      10 : Responce:= ('???');
    End
   TypeSend(Responce+' '+Name);
   Result:= True;
  End

  If(GetChatMessage('lol')) or (GetChatMessage('lmao')) or (GetChatMessage('rofl')) or (GetChatMessage('haha'))then
   Begin
    WriteLn(''+ChatName+': '+Chat);
    RandomReply:= Random(24)+1;
    Case (RandomReply) of
     0 : Responce:= ('hehe');
     1 : Responce:= ('lolol');
     2 : Responce:= ('lol');
     3 : Responce:= ('haha');
     4 : Responce:= ('hihi');
     5 : Responce:= ('ghehe');
     6 : Responce:= ('lmao');
     7 : Responce:= ('lmfao');
     8 : Responce:= ('rofls');
     9 : Responce:= ('fun');
     10 : Responce:= ('nice');
     11 : Responce:= ('lolz');
     12 : Responce:= ('yep');
     13 : Responce:= ('hola');
     14 : Responce:= ('wow');
     15 : Responce:= ('i bet');
     16 : Responce:= ('rofl');
     17 : Responce:= ('ghehehghehighhe');
     18 : Responce:= ('cool');
     19 : Responce:= ('...');
     20 : Responce:= ('???');
     21 : Responce:= ('wowzers');
     22 : Responce:= ('grrr...');
     23 : Responce:= ('rowr');
     24 : Responce:= ('lolololololol');
     25 : Responce:= ('ha ha ha!!!');
    End
   TypeSend(Responce);
   Result:= True;
  End


  If(GetChatMessage('wc')) or (GetChatMessage('woodcutting')) or (GetChatMessage('woodcuttin'))
   And
  (GetChatMessage('lvl')) or (GetChatMessage('level')) or (GetChatMessage('lvls')) or (GetChatMessage('levels'))then
   Begin
    WriteLn(''+ChatName+': '+Chat);
    Lvl:= IntToStr(GetSkillLevel('woodcutting'));
    RandomReply:= Random(5)+1;
     Case (RandomReply) of
      0 : Responce:= ('i''m lvl '+Lvl+' woodcuttin');
      1 : Responce:= ('level '+Lvl+' wc');
      2 : Responce:= ('lvl '+Lvl+' woodcut!');
      3 : Responce:= (+Lvl);
      4 : Responce:= ('i''m level '+lvl);
      5 : Responce:= (+Lvl+' here :P');
     End
    TypeSend(Responce);
    Result:= True;
   End

  If(GetChatMessage('wat')) or (GetChatMessage('what')) and (GetChatMessage('doin')) or (GetChatMessage('doing'))then
   Begin
   WriteLn(''+ChatName+': '+Chat);
   RandomReply:= Random(9)+1;
    Case RandomReply of
     0 : Responce:= ('not much');
     1 : Responce:= ('nothing');
     2 : Responce:= ('bored');
     3 : Responce:= ('aye?');
     4 : Responce:= ('emmm..nothin');
     5 : Responce:= ('nope');
     6 : Responce:= ('booo');
     7 : Responce:= ('no ty');
     8 : Responce:= ('what');
     9 : Responce:= ('....');
     10 : Responce:= ('nothin');
    End;
   TypeSend(Responce);
   Result:= True;
  End;

  If(GetChatMessage('hey')) or (GetChatMessage('hi')) or (GetChatMessage('hello')) or (GetChatMessage('wats up')) or (GetChatMessage('whats up')) or (GetChatMessage('yo'))then
   Begin
   WriteLn(''+ChatName+': '+Chat);
   RandomReply:= random(9)+1;
    Case RandomReply of
      0 : Responce:= ('ello');
      1 : Responce:= ('sup');
      2 : Responce:= ('yo');
      3 : Responce:= ('whats up everyone');
      4 : Responce:= ('whats up');
      5 : Responce:= ('welcome');
      6 : Responce:= ('allo allo');
      7 : Responce:= ('wat up');
      8 : Responce:= ('y0o');
      9 : Responce:= ('=P');
      10 : Responce:= ('what is up');
    End
   TypeSend(Responce);
   Result:= True;
  End

End;

//----------------------------------------------------------------------------//
//---> FindAxeHead Colors Function                                            //
//----------------------------------------------------------------------------//

Function CharmFindAxeHeadColors: Boolean;
Var
AX, AY: Integer;
Begin

 If(not(LoggedIn))then Exit;

 GameTab(4);

   If(FindBitmapMaskTolerance(AxeMask, AX, AY, MIX1, MIY1, MIX2, MIY2, 10, 5))then
    Begin
     AxeHeadColor1:= GetColor(AX + 5, AY + 3);
     AxeHeadColor2:= GetColor(AX + 7, AY + 2);
     AxeHeadColor3:= GetColor(AX, AY + 3);
     EquipAxe:= False;
     Result:= True;

    End else

   Begin

    GameTab(5);
    Wait(100+Random(75));

      If(FindBitmapMaskTolerance(AxeMask, AX, AY, MIX1, MIY1, MIX2, MIY2, 10, 5))then
       Begin
        AxeHeadColor1:= GetColor(AX + 5, AY + 3);
        AxeHeadColor2:= GetColor(AX + 7, AY + 2);
        AxeHeadColor3:= GetColor(AX, AY + 3);
        EquipAxe:= True;
        Result:= True;
       End
      GameTab(4);
     End

  If(Result= True)then
   Begin
    NoAxe:= False;
    WriteLn('Axe head colors - '+IntToStr(AxeHeadColor1)+', '+IntToStr(AxeHeadColor2)+ ', and '+IntToStr(AxeHeadColor3));
  End else
   Begin
    WriteLn('Could NOT Find Axe Colors!, Logging Out!');
    Players[CurrentPlayer].Loc:= 'No Axe';
    Logout;
 End

End;

//----------------------------------------------------------------------------//
//---> AttachHeadToHandle Function                                            //
//----------------------------------------------------------------------------//

Function CharmAttachHeadToHandle: Boolean;
Var
AX, AY: Integer;
Begin

 If(InvFull)then
   Begin
    If(FindBitmapMaskTolerance(LogMask, AX, AY, MIX1, MIY1, MIX2, MIY2, 20, 25))then
     Begin
      Mouse(AX, AY, 2, 3, False);
      ChooseOption(x, y, 'rop');
      Wait(500+Random(250));
     End
    End

 If(EquipAxe= True)then
  Begin
   GameTab(5);
   Wait(150+Random(75));
     If(FindDTM(AxeHandleDTM, AX, AY, MIX1, MIY1, MIX2, MIY2))then
      Begin
       Mouse(AX, AY, 3, 3, True);
       Wait(250+Random(175));
      End
   End

 GameTab(4);
 Wait(250+Random(175));

  If(FindBitmapMaskTolerance(AxeHeadMask, AX, AY, MIX1, MIY1, MIX2, MIY2, 20, 25))then
   Begin
    Mouse(AX, AY, 2, 3, True);
    Result:= True;
   End

  If(FindDTM(AxeHandleDTM, AX, AY, MIX1, MIY1, MIX2, MIY2))then
   Begin
    Mouse(AX, AY, 2, 3, True);
   End

  If(EquipAxe= True)then
   Begin
    Wait(Random(1000));
    If(FindBitmapMaskTolerance(AxeHeadMask, AX, AY, MIX1, MIY1, MIX2, MIY2, 20, 25))then
     Begin
      Mouse(AX, AY, 2, 3, True);
     End
   End

End;

//----------------------------------------------------------------------------//
//---> HandleFight                                                            //
//----------------------------------------------------------------------------//

Procedure HandleFight;
Begin

  RunAwayDirection(RunDirection);
  Wait(10000+Random(2000));
  RunBack;
  
  If(FindSymbol(x, y, 'fishing spot'))then
   Begin
    Mouse(x, y - 20, 5, 6, True);
    FindTalk;
    Flag;
   End
  
End;

//----------------------------------------------------------------------------//
//---> Axe Finding Function                                                   //
//----------------------------------------------------------------------------//

Function CharmFindAxeHead: Boolean;
Var
C, XH, YH, Chat, AxeHeadTxt: Integer;
Start: Boolean;
Begin

 If(not(LoggedIn))then Exit;
 
 AxeHeadTxt := BitmapFromString(30, 10, 'z78DA7373B334303170' +
       '0393A62EA62626E6839374437227320901A36E1E75333124A9265' +
       '04B3DA9EE84005C2663AAA4AE7A5CBAF0BB16530D729A21559C98' +
       '10C36F0E316E26DE6DF87D4DBC1B28B197BCF0C404F8639972715' +
       'AC435A9B98954F3013DD58547');

  {Chat:= CreateBitmapMaskFromText('ou do not have an axe', SmallChars);

  If(FindBitmapMaskTolerance(Chat, x, y, MCX1, MCY1, MCX2, MCY2, 10, 85))or
     (GetChatMessage('do not')) or (GetChatMessage('have axe'))then}

    If(EquipAxe= False)then
     Begin
      GameTab(4);
      Wait(50+Random(50));
      If(not(FindBitmapMaskTolerance(AxeMask, x, y, MIX1, MIY1, MIX2, MIY2, 20, 10)))then Start:= True;
     End
     
    If(EquipAxe= True)then
     Begin
      GameTab(5);
      Wait(50+Random(50));
      If(not(FindBitmapMaskTolerance(AxeMask, x, y, MIX1, MIY1, MIX2, MIY2, 20, 10)))then Start:= True;
     End

  If(Start= True)then
   Begin

 CharmDebug('Lost Axe Head, Finding..');
 HighestAngle;

   // If(FindBitmapMaskTolerance(AxeMask, x, y, MIX1, MIY1, MIX2, MIY2, 20, 10))then Exit;

    If(FindBitmapMaskTolerance(BrokenAxeHeadMask, XH, YH, MIX1, MIY1, MIX2, MIY2, 20, 25))then
     Begin
      AxesBroke:= AxesBroke + 1;
      CharmDebug('ENT Got Us, Broken Axe!');
      Players[CurrentPlayer].Loc:= 'Broken Axe';
      NoAxe:= True;
      Result:= False;
      Exit;
     End

  GameTab(4);
  Wait(2000+Random(100));

   If(InvFull)then
    Begin
     If(FindBitmapMaskTolerance(LogMask, XH, YH, MIX1, MIY1, MIX2, MIY2, 20, 25))then
      Begin
       Mouse(XH, YH, 0, 0, False);
       ChooseOption(x, y, 'rop');
      End
    End

    Repeat
     If(not(LoggedIn))then Break;
       C:= C + 1;
       XH:= Random(510) + 5;
       YH:= Random(330) + 5;
       If(FindObjectMulti(XH, YH, 'ake', 'Take', 'Tak', AxeHeadColor1, AxeHeadColor2, AxeHeadColor3, 5, 5, True, True))then
          Begin
            MMouse(XH, YH, 0, 0);
            Wait(100+Random(100));
            If(IsUpTextMulti('ake', 'Take', 'Tak'))then
             Begin
              GetMousePos(XH, YH);
              Mouse(XH, YH, 1, 1, False);
              Wait(Random(50));
              If(FindBitmapToleranceIn(AxeHeadTxt, x, y, MSX1, MSY1, MSX2, MSY2, 20))then
               Begin
                Mouse(x, y, 2, 2, True);
               End else
               Begin
                If(not(ChooseOption(x, y, 'axe head')))then ChooseOption(x, y, 'Take');
               End
             End
            Flag;
           Wait(750+Random(250));
          End
    Until(FindBitmapMaskTolerance(AxeHeadMask, XH, YH, MIX1, MIY1, MIX2, MIY2, 20, 25)) or (FindBitmapMaskTolerance(AxeMask, x, y, MIX1, MIY1, MIX2, MIY2, 20, 10)) or (C= 15);

    GameTab(4);
    
    If(not(FindBitmapMaskTolerance(AxeHeadMask, XH, YH, MIX1, MIY1, MIX2, MIY2, 20, 25))) or (not(FindBitmapMaskTolerance(AxeMask, x, y, MIX1, MIY1, MIX2, MIY2, 20, 10)))then
     Begin
      CharmDebug('Could NOT Find Head!');
      Players[CurrentPlayer].Loc:= 'Lost AxeHead';
      NoAxe:= True;
      Result:= False;
      Exit;
     End

    CharmDebug('Found Head!');
    HeadsFound:= HeadsFound + 1;

    CharmDebug('Attaching Head To Handle.');
    CharmAttachHeadToHandle;

    NoAxe:= False;
    Result:= True;
    
  End

 FreeBitmap(Chat);
 FreeBitmap(AxeHeadTxt);

End;

//----------------------------------------------------------------------------//
//---> Walking Procedures                                                     //
//----------------------------------------------------------------------------//

Procedure DraynorBankToWillowTrees;
Var
DX, DY: Integer;
Begin

 If(not(LoggedIn))then Exit;

 HighestAngle;
 PerfectNorth;
 
 Status('Bank->Willows');

 Players[CurrentPlayer].Loc:= 'Bank';
 
 SymbolAccuracy:= 0.4;

 If(not(FindSymbol(DX, DY, 'bank')))then
 Begin
 If(FindColorSpiralTolerance(DX, DY, WaterColor, MMX1, MMY1, MMX2, MMY2, 5))then
  Begin
   Mouse(DX + 25+Random(8), DY + 25+Random(20), 5, 8, True);
   Flag;
  End
 End else
 Begin
 If(FindSymbol(DX, DY, 'bank'))then
 Begin
  Mouse(DX - 30+Random(10), DY + 34+Random(7), 5, 8, True);
  Flag;
 End else
 Begin
  Players[CurrentPlayer].Loc:= 'Lost';
  Logout;
  Exit;
 End
 End
  
 SymbolAccuracy:= 0.6;

  If(FindSymbol(DX, DY, 'fishing spot'))then
   Begin
    If(Distance(MMCX, DX, MMCY, DY) > 250)then
     Begin
      Mouse(DX + 5+Random(6), DY - 15+Random(15), 2, 3, True);
      Flag;
     End
   End

  Players[CurrentPlayer].Loc:= 'Willows';
  
 SymbolAccuracy:= 0.8;

End;

//----------------------------------------------------------------------------//

Procedure WillowTreesToDraynorBank;
Var
DX, DY, F: Integer;
See: Boolean;
Begin

 If(not(LoggedIn))then Exit;

 PerfectNorth;
 
 Status('Willows->Bank');

 Players[CurrentPlayer].Loc := 'Willows';
 
 SymbolAccuracy:= 0.4;

 If(not(FindSymbol(DX, DY, 'bank')))then
  Begin
   If(FindSymbol(DX, DY, 'fishing spot'))then
    Begin
     Mouse(DX + 10, DY - 30+Random(6), 4, 5, True);
     FFlag(10);
    End
  End
    
  Repeat
    If(not(DTM3Flag(BankDot1, BankDot2, BankDot3, True)))then
     Begin
      If(not(FindSymbol(x, y, 'bank')))then
       Begin
        F:= F + 1;
       End else
       Begin
        See:= True;
        MouseFlag(x, y, 2, 4);
        DTM3Flag(BankDot1, BankDot2, BankDot3, True);
        Flag;
        Players[CurrentPlayer].Loc:= 'Bank';
      end
    End else
    Begin
      See:= True;
      Wait(500+Random(1000));
      Flag;
      Players[CurrentPlayer].Loc:= 'Bank';
    End
  Until(See= True) or (F > 3);

  If(F > 3)then
   Begin
    Players[CurrentPlayer].Loc:= 'Lost';
    Logout;
    Exit;
   End

  Players[CurrentPlayer].Loc := 'Bank';
  
 SymbolAccuracy:= 0.8;

End;

//----------------------------------------------------------------------------//
//---> Ent Handleing Function                                                 //
//----------------------------------------------------------------------------//

Function CharmEnt(ex, ey: Integer): Boolean;
Var
Xe, Ye: Integer;
Begin

 Status('FindEnt');

 If(FindColorSpiralTolerance(Xe, Ye, 5535856, ex - 20, ey - 20, ex + 20, ey + 20, 12))then
  Begin
   MMouse(Xe, Ye, 5, 5);
   Wait(100+Random(50));
  End else
  Begin
   Exit;
  End

 If(IsUpTextMulti('hop down Will', 'down Willow', 'own Wil')) or (IsUpTextMulti('illow', 'low', 'Will'))then
   Begin
    If(FindColorSpiralTolerance(Xe, Ye, 383705, 1, 1, 180, 39, 20))or
       (FindColorSpiralTolerance(Xe, Ye, 65535, 1, 1, 200, 40, 20))or
        (FindColorTolerance(Xe, Ye, 55769, 85, 15, 115, 15, 20))then
      Begin
        EntsAvoided:= EntsAvoided + 1;
        Result:= True;
      End else
        Result:= False;
        Exit;

  End

End;

//----------------------------------------------------------------------------//
//---> CharmFindObjWillow Function                                            //
//----------------------------------------------------------------------------//

Function CharmFindObjWillow(var cx, cy: Integer; color1, color2, color3, tolerance: Integer): Boolean;
Var
  x, y, a, c, i, x1, y1, x2, y2 : Integer;
Begin
  if (FindMSColorTol(x, y, color1, tolerance)) or
    (FindMSColorTol(x, y, color2, tolerance)) or
    (FindMSColorTol(x, y, color3, tolerance)) then
 Begin
    x1 := 245;
    y1 := 165;
    x2 := 277;
    y2 := 185;
    Repeat
      If (not (Loggedin)) Then
        break;
      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, 5, 5);
              GetMousePos(x, y);
              cx:= x;
              cy:= y;
              Wait(100+Random(50));
              If(IsUpTextMulti('hop down Will', 'down Willow', 'own Wil')) or (IsUpTextMulti('illow', 'low', 'Will')) Then
                Begin
                 If(FindColorTolerance(X, Y, 55769, 85, 15, 115, 15, 20))then
                  Begin
                   CharmDebug('Found Ent!');
                   Mouse(MMCX, MMCY, 5, 5, True);
                   Wait(10000+Random(5000));
                   FindNormalRandoms;
                   EntsAvoided:= EntsAvoided + 1;
                   Break;
                   Result:= False;
                  End else
                  Begin
                  Result := True;
                  Break;
                 End
                End;
            End;
         End;
      If (a = 4) Then
        a := 0;
    Until (x2 > 515) or (Result= True);
  End;
End;

//----------------------------------------------------------------------------//
//---> FindWillowDeformed Function                                            //
//----------------------------------------------------------------------------//
       
Function FindWillowDeformed(Var ObjX, ObjY: Integer): Boolean;
Var
Acc, Ref: Extended;
TX, TY, Times, Tol, WillowTree: Integer;
Begin

 WillowTree := BitmapFromString(2, 6, '18180E303016304016283' +
       '01648502C30382160682C304013585044484832485024485039');

 Ref:= 0.9;
 Tol:= 0;

  For Times := 1 to 20 do
   Begin
    FindTalk;
    Wait(50+Random(100));
    Try
     FindDeformedBitmapToleranceIn(WillowTree, TX, TY, MSX1 + 50, MSY1 + 50, MSX2 - 50, MSY2 - 50, Tol, 2, True, Acc);
    except
      Result:= False;
    End
    If(Acc >= Ref)then
     Begin
      MMouse(TX + Random(10), TY, 3, 3);
      If(IsUpTextMulti('hop down Will', 'down Willow', 'own Wil')) or (IsUpTextMulti('illow', 'low', 'Will'))then
       Begin
        If(FindColorTolerance(X, Y, 55769, 85, 15, 115, 15, 20))then
         Begin
          CharmDebug('Found Ent!');
          Result:= False;
          Mouse(MMCX, MMCY, 5, 5, True);
          Wait(Random(5000));
          FindNormalRandoms;
          EntsAvoided:= EntsAvoided + 1;
          Exit;
         End
        ObjX:= TX;
        ObjY:= TY;
        Result:= True;
        Exit;
       End
     End
  //If Times mod 2 = 0 then //5
   //Begin
    Ref:= Ref - 0.1; //Ref:= Ref - 0.05;
    Tol:= Tol + 10; //Tol:= Tol + 7;
    Wait(Random(50));
   //End
  //Wait(1);
 End
 //Wait(1);
 FreeBitmap(WillowTree);
End;

//----------------------------------------------------------------------------//
//---> Chop Willows Function                                                  //
//----------------------------------------------------------------------------//

Function ChopWillows: Boolean;
Var
CX, CY, TempColor: Integer;
Begin

 If(not(LoggedIn))then Exit;
 
 Status('Chopping');

  //If(FindWillowDeformed(CX, CY))then
  If(CharmFindObjWillow(CX, CY, 5535856, 6328448, 3301456, 15))then
   Begin
   
   TempColor:= GetColor(CX, CY);
   
    //If(not(CharmEnt(CX, CY)))then
    If(IsUpTextMulti('hop down Will', 'down Willow', 'own Wil')) or (IsUpTextMulti('illow', 'low', 'Will')) Then
      Begin
       If(Random(20) < 15)then
         Begin
           Mouse(CX, CY, 2, 2, True);
           Result:= True;
         End
        Else
         Begin
           Mouse(CX, CY, 2, 3, False);
           If(ChooseOption(x, y, 'hop down'))then
           Result:= True;
         End
      End

    If(FlagPresent)then
     Begin
      Flag;
     End

   Wait(200-Random(50));

   Status('CheckAxe');
   CharmFindAxeHead;

   If(Result= True)then
   Begin
   
   MarkTime(ChopMark);
    Repeat

     If(not(LoggedIn))then Break;
     
     Status('FindRandoms->Nest->Axe');
     CharmFindAxeHead;
     FindNormalRandoms;
     Wait(Random(50));
     FindBirdsNest;

     If(NoAxe)then Break;
     If(InvFull)then Break;

     WoodcuttingAntiban;
     
     If(UseAutoResponder)then Status('AutoRespond') AutoRespond;

      If(CharmEnt(CX, CY))then
       Begin
        CharmDebug('Found Ent!');
        Mouse(MMCX, MMCY, 5, 5, True);
        FindTalk;
        Wait(10000+Random(5000));
        FindNormalRandoms;
        Exit;
       End

      Status('FindFight');
      If(FindFight)then
       Begin
        Status('Found Fight');
        HandleFight;
        Exit;
       End

     Status('FindRandoms');
     FindTalk;

    Until(TimeFromMark(ChopMark) >= (WaitTime*1000+Random(5000))) or (not(FindColor(CX, CY, TempColor, CX - 10, CY - 10, CX + 10, CY + 10)));
    
  End

 End

End;

//----------------------------------------------------------------------------//
//---> OpenBank Function                                                      //
//----------------------------------------------------------------------------//

Function CharmOpenBank: Boolean;
Var
BX, BY, Tries: Integer;
Begin

 Repeat

  If(FindObjectMulti(BX, BY, 'e Bank', 'Use Ba', 'ooth', 2842230, 3421241, 605778, 10, 5, True, True))then

    MMouse(BX, BY, 2, 2);

   If(IsUpTextMulti('e Bank', 'Use Ba', 'ooth'))then
     Begin
      Mouse(BX, BY, 4, 7, False);
      Wait(10+Random(50));
      If(ChooseOption(x, y, 'uickly'))then
      Begin
       MarkTime(Mark);
        Repeat
          Wait(10+Random(5));
          If(TimeFromMark(Mark) > 20000)then
           Begin
            Result:= False;
            Exit;
           End
        Until(BankScreen);
       If(BankScreen)then
        Begin
         Result:= True;
         Exit;
        End
      End
     End
    Else
    Begin
     Wait(1);
     Tries:= Tries + 1;
    End;
  Until(Tries > 10);

End;

//----------------------------------------------------------------------------//
//---> CountLogs Procedure                                                    //
//----------------------------------------------------------------------------//

Procedure CountLogs;
Var
WillowCount, WillowExp: Integer;
Begin

 GameTab(4);

 WillowCount:= CountItemBmpMaskTol(LogMask, 20, 10);
 TotalWillows:= TotalWillows + WillowCount;

 Players[CurrentPlayer].Integer2:= Players[CurrentPlayer].Integer2 + WillowCount;
 
 WillowExp:= (WillowCount*(125/2));

 Players[CurrentPlayer].Integer3:= Players[CurrentPlayer].Integer3 + Round(WillowExp);

 TotalExp:= TotalExp + Round(WillowExp);

End;

//----------------------------------------------------------------------------//
//---> Banking Procedure                                                      //
//----------------------------------------------------------------------------//

Procedure BankWillows;
Begin

 If(not(LoggedIn))then Exit;
 
 Status('Banking');

 CountLogs;
 
 If(FlagPresent)then Wait(500+Random(2000));
 
 HighestAngle;
 
 MarkTime(Mark);
 Repeat

  If(CharmOpenBank)then Break;
  If(OpenBankQuiet('db'))then Break;
 
 Until(BankScreen) or (TimeFromMark(Mark) > 90000);
 
 If(TimeFromMark(Mark) > 90000)then
  Begin
   Players[CurrentPlayer].Loc:= 'Lost';
   Logout;
   Exit;
  End

 If(BankScreen)then
  Begin
   If(NoAxe= True)then
     Begin
      ClickAllItemsColorWait('All', 65536, 500+Random(100));
      FixBank;
      Wait(Random(250)+300);
      
     If(FindBitmapMaskTolerance(AxeMask, x, y, MSX1, MSY1, MSX2, MSY2, 20, 10))then
       Begin
        Mouse(x, y, 1, 1, True);
       End else
       Begin
        Players[CurrentPlayer].Loc:= 'No Axes';
        NoAxes:= True;
       End

     Wait(Random(250)+50);
       
     End else
     Begin
       If(EquipAxe= False)then
        Begin
         Deposit(2, 28, 2);
         Wait(100+Random(50));
         Deposit(3, 28, 2);
        End else
       If(EquipAxe= True)then
        Begin
         ClickAllItemsColorWait('All', 65536, 500+Random(100));
         Wait(Random(250)+300);
        End
     End

     Repeat
      If(not(LoggedIn))then Break;
      CloseBank;
     Until(not(BankScreen));

     If(NoAxe= True)then
      Begin
       CharmFindAxeHeadColors;
       Wait(Random(300)+250);
      If(EquipAxe= True)then
       GameTab(4);
       If(FindBitmapMaskTolerance(AxeMask, x, y, MIX1, MIY1, MIX2, MIY2, 20, 10))then
        Begin
         Mouse(x, y, 5, 5, True);
        End
       NoAxe:= False;
      End
      
     Loads:= Loads + 1;
     Banks:= Banks + 1;
     Players[CurrentPlayer].Banked:= Players[CurrentPlayer].Banked + 1;

   End

End;

//----------------------------------------------------------------------------//
//---> Progress Report                                                        //
//----------------------------------------------------------------------------//

Procedure PlayerStats;
Var
Active: String;
I: Integer;
Begin

  If(Players[CurrentPlayer].Active= True)then
   Begin
    Active:= 'True';
   End else
   Begin
    Active:= 'False';
   End

  WriteLn('|-----------------------------------------------------|');
  Writeln('  Name         : '+Players[CurrentPlayer].Name);
  Writeln('  Number       : '+IntToStr(CurrentPlayer));
  Writeln('  Active       : '+Active);
  Writeln('  Location     : '+Players[CurrentPlayer].Loc);
  Writeln('  Chopped      : '+IntToStr(Players[CurrentPlayer].Integer2)+' willow[s].');
  Writeln('  Gained       : '+IntToStr(Players[CurrentPlayer].Integer3)+' exp.');
  Writeln('  Worked       : '+IntToStr(Players[CurrentPlayer].Worked)+' mins.');
  WriteLn('|-----------------------------------------------------|');

  For I:= 0 to HowManyPlayers - 1 do
   Begin

    If(Players[I].Active= True)then Active:= 'T' else Active:= 'F';

    WriteLn(' '+IntToStr(I)+' : '+Players[I].Name+' = '+Active+' - '
    +'B '+IntToStr(Players[I].Banked)+' time[s], '
    +'C '+IntToStr(Players[I].Integer2)+' log[s], '
    +'G '+IntToStr(Players[I].Integer3)+' exp., '
    +'L '+Players[I].Loc);
   End

  WriteLn('\<--------------------------------------------------->/');

End;

//----------------------------------------------------------------------------//

Procedure ProgressReport;
Begin
  ClearDebug;
  WriteLn('/<--------------------------------------------------->\');
  WriteLn('| -> Willow Raper '+Ver+' > Prog Report < By - ChArMz <- |');
  Writeln('\<--------------------------------------------------->/');
  WriteLn('  Worked for '+TimeRunning+'.');
  WriteLn('  Banked '+IntToStr(Banks)+' Total Load[s].');
  WriteLn('  Chopped '+IntToStr(TotalWillows)+' Total Willow[s].');
  WriteLn('  Gained '+IntToStr(TotalExp)+' Total Exp.');
  If(HeadsFound > 0)then
    WriteLn('  Found Axe Head '+IntToStr(HeadsFound)+' Time[s].');
  If(AxesBroke > 0)then
    WriteLn('  Broke '+IntToStr(AxesBroke)+' Axe[s].');
  SRLRandomsReport;
  PlayerStats;
End;

//----------------------------------------------------------------------------//
//--->  Callibration Procedure                                                //
//----------------------------------------------------------------------------//

Procedure Callibrate;
Var
CX, CY: Integer;
Begin

 If(not(LoggedIn))then Exit;
 
 Status('Callibrating');

   If(FindSymbol(CX, CY, 'fishing spot'))then
     Begin
      If(Distance(MMCX, CX, MMCY, CY) > 45)then
       Begin
        Mouse(CX +Random(5), CY - 10+Random(10), 4, 6, True);
        Flag;
        CharmDebug('Callibrated by Fishing Symbol.');
       End
     End

  If(WeAreDead) or (FindSymbol(CX, CY, 'water source'))then
   Begin
    Players[CurrentPlayer].Loc:= 'Lumbridge';
    Logout;
   End

End;

//----------------------------------------------------------------------------//
//---> Setup Procedure                                                        //
//----------------------------------------------------------------------------//

Procedure Setup;
Begin

  SetupSRL;
  LoadBitmaps;
  LoadDTMs;
  DeclarePlayers;

  MouseSpeed:= 10-Random(5);

  ActivateClient;

 If(not(LoggedIn))then LoginPlayer;

 If(LoggedIn)then
  Begin
   EquipAxe:= Players[CurrentPlayer].Boolean1;
   NickNameBMP:= CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
   CharmFindAxeHeadColors;
   FindMMWaterColor;
   FindTalk;
  End

End;

//----------------------------------------------------------------------------//
//---> Main Loop                                                              //
//----------------------------------------------------------------------------//

Begin

 Setup;

 Repeat

   SetRun(True);

   DraynorBankToWillowTrees;

   MarkTime(CallibrateTime);
   MarkTime(Mark);
    Repeat
     If(not(LoggedIn))then Break;
     If(TimeFromMark(CallibrateTime) >= (240000+Random(60000)))then
      Begin
       Callibrate;
       MarkTime(CallibrateTime);
      End
      Wait(Random(50));
     ChopWillows;
    Until(InvFull) or (InvCount= 28) or (NoAxe) or (TimeFromMark(Mark) >= MaxLoadTime*60000);
    
   Wait(Random(50));

   SetRun(False);

   WillowTreesToDraynorBank;

   BankWillows;
   Wait(Random(50));
   ProgressReport;

  If(LoggedIn) and (Loads >= Players[CurrentPlayer].Integer1) or (NoAxes)then
   Begin
    Logout;
     If(Random(5)= 1)then
      Begin
       Wait(1 * 60000 +Random(5 * 60000));
       End else
      Begin
       Wait(1 * 60000 +Random(2 * 60000));
      End
      NextPlayer(True);
      EquipAxe:= Players[CurrentPlayer].Boolean1;
      NickNameBMP:= CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
      CharmFindAxeHeadColors;
      FindMMWaterColor;
      FindTalk;
      Loads:= 0;
    End
  If(not(LoggedIn))then
   Begin
    If(Random(5)= 1)then
      Begin
       Wait(1 * 60000 +Random(5 * 60000));
       End else
      Begin
       Wait(1 * 60000 +Random(2 * 60000));
      End
      NextPlayer(False);
      EquipAxe:= Players[CurrentPlayer].Boolean1;
      NickNameBMP:= CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
      CharmFindAxeHeadColors;
      FindMMWaterColor;
      FindTalk;
      Loads:= 0;
   End

  Until(False);

End.
 
Make sure you have updated SRL, open up SCAR go to File then you should see Download SRL, make sure you wait for that to finish downloading, restart SCAR and see if that works, if it dose not make sure you have the updated SCAR 3.11 you can find that at http://freddy1990.com/scar.php Happy scripting! If you have anymore problems feel free to ask.
 
Make sure you have updated SRL, open up SCAR go to File then you should see Download SRL, make sure you wait for that to finish downloading, restart SCAR and see if that works, if it dose not make sure you have the updated SCAR 3.11 you can find that at http://freddy1990.com/scar.php Happy scripting! If you have anymore problems feel free to ask.

Wrong. . . You have to use Scar 2.03 with this script.

You did something wrong in the DeclarePlayers procedure. Post what you have there (you can block out passwords).
 
i have THE SAME!!! problem with THE SAME! script on THE SAME! line!! and im using the right scar and srl for the script..i get that exact error aswel!!::
Line 75: [Error] (18116:32): Identifier expected in script C:\Program Files\SCAR 2.03\Scripts\ChArM's Willow Raper v2.1.scar
 
Runescape Gamblingrunescape gambling
Back
Top