SRL Archive - News and General

error compiling again but differnt script


ownage ftw

2008-02-01 18:17:11

Line 432: [Hint] (10411:1): Variable 'OLDMS' never used in script C:\Program Files\SCAR 3.12\includes\SRL/SRL/Core/AntiRandoms/AntiRandoms.scar
Line 80: [Error] (12544:12): Unknown identifier 'INTEGER1' in script


{=========================================================================]
[ ~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 := 'ts3458';
Players[0].Pass := '';
Players[0].Nick := 'ts3'; //3 Lowercase Letters of your username
Players[0].Integer1 := 35; //Loads For Player
Players[0].Boolean1 := False; //Equip Axe?
Players[0].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.

bullzeye95

2008-02-01 18:19:00

This is a very old script. It won't work anymore.

ownage ftw

2008-02-01 18:21:51

:( is there any other scripts?

Heavenzeyez1

2008-02-01 18:24:41

You should check here:->
http://www.srl-forums.com/forum/free-all-scripts-f268.html
Eerik.

IEatJ00erBaybees

2008-02-01 19:39:47

| 2. Need SCAR version 2.0.3. |
| 3. Need SRL version 3.5. |


Stop leeching and READ.

nielsie95

2008-02-02 04:45:03

Closed.