New to scar plz help

Discussion in 'Scar/Simba Help' started by n3w d00d, Aug 12, 2007.

New to scar plz help
  1. Unread #1 - Aug 12, 2007 at 7:07 PM
  2. n3w d00d
    Referrals:
    0

    n3w d00d Guest

    New to scar plz help

    Hello, I have downloaded SCAR Divi CDE.
    I need help on how to use a script, like copy paste it in scar then run it on runescape. this is the script i am currently trying to use.

    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('78DA636C67626008664001FFFFFF67F80FA 41' + //By FT-Fwaki
    '921ECFF8CB54035DEA86AFEFC61621081AA0101C63A4C73B0 AA09' +
    'C7AF06000153117B');
    
    BankDot2 := DTMFromString('78DA63EC60626008624001FFFFFF67F80FA 41' +
    '921ECFF8C3540353EA86AFEFC61621081AA0101C63AA09A10 22D4' +
    '44E057030001B5117D');
    
    BankDot3 := DTMFromString('78DA63EC60626008624001FFFFFF67F80FA 41' +
    '921ECFF8CF540359EA86AFEFC61621081AA0101C63AA09A40 026A' +
    '6A816A42F1AB010000781176');
    
    AxeHandleDTM := DTMFromString('78DA637465626078C48002CA2379191E026 94' + //Stole From SRL
    '620FE0F048C0E40352F19D000231209A4ED806A3E1150E304 54F3' +
    '86801A2FA09AEB04D47800D5DC23A0C616A8E61D01358E403 5EF0' +
    '9A80185CF03FC6A00E1CD105C');
    
    End;
    
    //----------------------------------------------------------------------------//
    //---> Load Bitmaps //
    //----------------------------------------------------------------------------//
    
    Procedure LoadBitmaps;
    Begin
    
    LogMask := BitmapFromString(13, 10, 'z78DA33301805E40037BC8' +
    '0BAB6D0C2E5F451494998D02E5471010034299979');
    
    AxeMask := BitmapFromString(10, 10, 'z78DA7373230D18500028316' +
    '130E825353470A921DE3DE499409EDB480D25FCE10000B72C 7CE1' +
    '');
    
    AxeHeadMask := BitmapFromString(12, 8, 'z78DA3330200CDC3080018900' +
    '972E62CC24D55E4C9594BB993C13C8733FB5DCE3860310AF9 2185' +
    'B008E3078E5');
    
    BrokenAxeHeadMask := BitmapFromString(9, 10, 'z78DA7373230D1890' +
    '05C8D34BAA2EE2D5E3F21131FEC56FCBE091A53C34007F307 225');
    
    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' +
    '0393A62EA62626E6839374437227320901A36E1E75333124A 9265' +
    '04B3DA9EE84005C2663AAA4AE7A5CBAF0BB16530D729A2155 9C98' +
    '10C36F0E316E26DE6DF87D4DBC1B28B197BCF0C404F863997 2715' +
    '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' +
    '01648502C30382160682C3040135850444848324850244850 39');
    
    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.
    ________________________________
    that is the script i am trying to use, i hav e copied it in SCAR Divi CDE, now how do i use it on runescape. i put the target icon on runescape, but nothing happened.
    I am trying to use a Willow cutter/banker.

    --------------------------
    Please Help me.
    I would really love to learn how to use scripts and in the future help people with them, and soon i will start making my own scripts. Ok tyvm. please help
     
  3. Unread #2 - Aug 12, 2007 at 7:29 PM
  4. Town
    Joined:
    Jan 21, 2007
    Posts:
    3,776
    Referrals:
    3
    Sythe Gold:
    5

    Town Grand Master
    Scar Programmers

    New to scar plz help

    Follow the instructions written in the script, then press play. No scripts will work right now because the SRL is not working. Go to www.srl-forums.com to download the updated SRL when it comes out.
     
< Very confused, please help! | I need help with DontPanic's Flax Picker... >

Users viewing this thread
1 guest


 
 
Adblock breaks this site