SCAR Code:
{ __ __ __ __
/\ \/\ \ /\ \/\ \
\ \ \_\ \ \ \ \_\ \
\ \ _ \ \ \ _ \
\ \ \ \ \ \ \ \ \ \
\ \_\ \_\ \ \_\ \_\
\/_/\/_/ \/_/\/_/
____ __ __
/\ _`\ /\ \ /\ \__ __
\ \ \L\ \_ __ ___ \_\ \ __ __ ___\ \ ,_\/\_\ ___ ___
\ \ ,__/\`'__\/ __`\ /'_` \/\ \/\ \ /'___\ \ \/\/\ \ / __`\ /' _ `\
\ \ \/\ \ \//\ \L\ \/\ \L\ \ \ \_\ \/\ \__/\ \ \_\ \ \/\ \L\ \/\ \/\ \
\ \_\ \ \_\\ \____/\ \___,_\ \____/\ \____\\ \__\\ \_\ \____/\ \_\ \_\
\/_/ \/_/ \/___/ \/__,_ /\/___/ \/____/ \/__/ \/_/\/___/ \/_/\/_/}
program OakBankerandCutter;
{.Include SRL/SRL.Scar}
const
StartPlayer = 0;
OakColor = 7383972;
OakColor2 = 6530458;
HowManyMinutes = 5; //how many mins to get a fill load
YourSRLID = '';
YourSRLIDPASS = '';
var
X, Y, Logins: integer;
Time, Time2: integer;
function WalkToBank1: boolean; forward;
function WalkToBank2: boolean; forward;
function OpenBankDTM: boolean; forward;
function WalkToOak: boolean; forward;
Procedure FindOak; forward;
Procedure WalkToBank; forward;
function TreeGone: boolean; forward;
procedure TreeIsGone; forward;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
CurrentPlayer := StartPlayer;
NumberOfPlayers(HowManyPlayers); // set arraylength
Players[0].Name := 'bow of crust';
Players[0].Pass := 'harry52369';
Players[0].Nick := '';
Players[0].Active := True;
Players[0].Integers[0] := 5; //Loads?
Players[0].Integers[1] := 0; //let this
Players[0].Integers[2] := 0; //let this
Players[0].Integers[3] := 0; //let this
{Players[1].Name :='';
Players[1].Pass :='';
Players[1].Nick :='';
Players[1].Active:=True;
Players[1].Integers[0]:=5;//Loads?
Players[1].Integers[1]:=0;//let this
Players[1].Integers[2]:=0;//let this
Players[1].Integers[3]:=0;//let this
Players[2].Name :='';
Players[2].Pass :='';
Players[2].Nick :='';
Players[2].Active:=True;
Players[2].Integers[0]:=5;//Loads?
Players[2].Integers[1]:=0;//let this
Players[2].Integers[2]:=0;//let this
Players[2].Integers[3]:=0;//let this
Players[3].Name :='';
Players[3].Pass :='';
Players[3].Nick :='';
Players[3].Active:=True;
Players[3].Integers[0]:=5;//Loads?
Players[3].Integers[1]:=0;//let this
Players[3].Integers[2]:=0;//let this
Players[3].Integers[3]:=0;//let this}
end;
{==============================]
Function:FindClickNpc
by:Hermpie
Info:you could use it like this,
NPCFindNClick(Color1,Color2,'uptext1','uptext2','rade',InFight,False,10);
[==============================}
Procedure GetLevel(Skill: string; Option: boolean);
begin
if not LoggedIn then Exit;
if (Option = True) then
begin
GameTab(2);
Players[CurrentPlayer].Integers[1] := 0;
Players[CurrentPlayer].Integers[1] := GetSkillLevel(Skill);
end else
begin
GameTab(2);
Players[CurrentPlayer].Integers[2] := 0;
Players[CurrentPlayer].Integers[2] := GetSkillLevel(Skill);
end;
GameTab(4)
end;
function HandleFight:boolean;
begin
if FindFight then
begin
WalkToBank;
FindNormalRandoms;
WalkToOak;
Result:=true;
FindOak;
end;
end;
function GetAxe: boolean;
var
Axe: integer;
begin
WalkToBank;
OpenBankDTM;
DepositAll;
Axe := DTMFromString('78DA636C6664601003622080900C0CB5A5250' +
'CFFA1FCFF40C0580264E9C0646100550F631990A54D404D3990A5' +
'41404D0590A546404D1590A540845D3244D82549404D25227CF0F' +
'A5D91809A12C2FE0200E4860D2E');
if (FindDTM(Axe, X, Y, MSX1, MSY1, MSX2, MSY2)) then
begin
WriteLn('New Axe Found!');
wait(50);
MMouse(X, Y, 0, 0);
wait(50);
if IsUpText('axe') then
begin
wait(50);
Mouse(X, Y, 0, 0, True);
Result := True;
WriteLn('Took New Axe From Bank');
wait(50);
CloseBank;
Wait(500);
GameTab(4);
Wait(500);
if (FindDTM(Axe, X, Y, MIX1, MIY1, MIX2, MIY2)) then
begin
wait(50);
Mouse(X, Y, 0, 0, True)
wait(50);
OpenBankDtm;
Wait(500);
Depositall;
wait(50);
CloseBank;
wait(500);
WalkToOak;
end else logout;
end else
begin
WriteLn('Did NOT find New Axe, logging out');
Result := False;
logout;
end;
FreeDTM(Axe);
GameTab(4);
end;
end;
procedure Check;
begin
if FindBlackChatMessage('do not have an axe') then
begin
WriteLn('You Do NOT got an axe with your wcing level to use, getting new one');
GetAxe;
end;
if FindBlackChatMessage('level of 15') then
begin
WriteLn('your player Haves wcing level -15, logging out');
logout;
end;
end;
Procedure FindOak;
var
TMT,b: Integer;
begin
TMT := 0;
Check;
if (TreeGone = False) then exit;
repeat
TMT := TMT + 1
B := GetSystemTime
if FindObjCustom(X, Y, ['Oak', 'ak'], [OakColor, OakColor2], 10) then
begin
Wait(50+random(20));
Mouse(X, Y, 1, 1, False);
Wait(50+random(20));
if ChooseOption('hop') then
begin
WriteLn('Found Oak');
Break;
end;
end;
until (TMT > 10)
end;
{*******************************************************************************
Procedure TRef(symbol1, symbol2, symbol3:integer; NextPlayer:Boolean);
by: Hobbit
Decription: Uses Triangles made with mm symbols to check positions
Boolean: True - If reference symbols not found it switches to the next
player.
False - If reference symbols not found it leave current player
logged in.
*******************************************************************************}
function FindEntDTM: boolean;
var
Ent: integer;
begin
Ent := DTMFromString('78DA63EC626260886400034608C5F0E70F138' +
'30894FF1F0818EB106A98A06AF48305E06AC07A416A9C51D5A839' +
'70A1AA01D9A587DF1C003C790B25');
if (DTMRotated(Ent, X, Y, MMX1, MMY1, MMX2, MSY2)) then Result := True else Result := False;
FreeDTM(Ent);
if result then writeln('Found Ent');
end;
procedure Ent;
var
Pizza: integer;
begin
pizza := 0;
if FindEntDTM then
begin
MarkTime(Pizza);
repeat
Wait(500);
FindEntDTM;
wait(10)
until (FindEntDTM = False) or (TimeFromMark(Pizza) > 60000)
end;
pizza := 0;
end;
function TreeGone: boolean;
var
TreeStump: integer;
begin
TreeStump := DTMFromString('78DA638C656260F061644006F5E99E0CFC401' +
'A24FA1F0818416A4250D5746439C0D580006304A69A552D01A86A' +
'C2816AFC51D52CAEF3C554E38DAA66469907AA9A00A01A4F54350' +
'B6A7C50D58460FA0BC33D89403581A86A8A23CD50D52401D5F8A2' +
'AA49F2D14355130F54138C3F7C00ADE517F8');
if (DTMRotated(TreeStump, X, Y, MSX1, MSY1, MSX2, MSY2)) then Result:=True else Result:=False;
FreeDTM(TreeStump);
end;
procedure TreeIsGone;
var
Pizza: integer;
begin
pizza := 0;
if TreeGone then
begin
MarkTime(Pizza);
repeat
Wait(450);
TreeGone;
wait(10);
until (TreeGone = False) or (TimeFromMark(Pizza) > 10000)
end;
pizza := 0;
end;
function WalkToOak: boolean;
var
ToOak: integer;
begin
RunControl(True);
ToOak := DTMFromString('78DA636C676260086200034608C55018ABC4F' +
'01FCAFF0F048CB5403521A86A145CB8192491F88C3D4035C104D4' +
'80CC714055236EC88AAAA60DA84687803973806AECF1AB010093A' +
'C0D63');
if (DTMRotated(ToOak, X, Y, MMX1, MMY1, MMX2, MMY2)) then
begin
Result := True;
WriteLn('Found ToOak DTM.');
MouseFlag(x, y, 0, 0);
end else
begin
Result := False;
WriteLn('Could NOT Find ToOak DTM');
end;
FreeDTM(ToOak);
end;
function WalkToBank1: boolean;
var
ToBank: integer;
begin
ToBank := DTMFromString('78DA630C616260F06740017FFE30314802694' +
'620FE0F048C2035C1A86ADEBE6580AB0101C650A01A77DCE68000' +
'00E97D0C08');
if (DTMRotated(ToBank, X, Y, MMX1, MMY1, MMX2, MMY2)) then
begin
Result := True;
WriteLn('Found ToBank DTM.');
MouseFlag(x + 5, y, 3, 3);
end else
begin
Result := False;
WriteLn('Could NOT Find ToBank DTM');
end;
FreeDTM(ToBank);
end;
function WalkToBank2: boolean;
var
ToBank2: integer;
begin
ToBank2 := DTMFromString('78DA634C66626008644001C9B1310CFF81342' +
'310FF0702C614A09A02881C23548D7C000B8324129FB118A8269F' +
'809A74A09A18026A72816A3C08A86906AA8926A0A609A8C682809' +
'A3EFC6A407E0700034B144F');
if (DTMRotated(ToBank2, X, Y, MMX1, MMY1, MMX2, MMY2)) then
begin
Result := True;
WriteLn('Found ToBank2 DTM.');
MouseFlag(x, y, 0, 0);
end else
begin
Result := False;
WriteLn('Could NOT Find ToBank2 DTM');
end;
FreeDTM(ToBank2);
end;
Procedure WalkToBank;
Begin
RunControl(True);
if WalkToBank1 then else if WalkToBank2 then WalkToBank else logout;
end;
function OpenBankDTM: boolean;
var
Bank: integer;
begin
Bank := DTMFromString('78DA63BCC9C0C0B094010524C707338800694' +
'6289FF10690588FAA262B251E55CD2D203107554D64B037AA9A47' +
'986A826CB950D53C00126B08A8390724A6A1AA8976E5465573064' +
'8AC2360CE5920B108554D82070FAA9ABB40E20001739E00897602' +
'6A9E018942026A406E7E8D16CEFEBC7035FF8100003F971FE1');
if (DTMRotated(Bank, X, Y, MSX1, MSY1, MSX2, MSY2)) then
begin
WriteLn('Found Bank DTM.');
Wait(50);
Mouse(X ,Y,0,0, False);
Wait(50);
if ChooseOption('uickly') then
begin
Wait(1000 + random(500));
if Bankscreen then
begin
Writeln('opened the bank')
Result := True;
end else
if OpenBankFast('db') then Result := true else
begin
logout;
Result := False;
end;
end;
end else
begin
if openBankFast('db') then
begin
WriteLn('Found Bank DTM');
Result := True;
end else
WriteLn('Could NOT Find Bank DTM');
Result := False;
end;
FreeDTM(Bank);
end;
procedure WoodCutOak;
var
MaxTime: integer;
begin
if invfull then exit;
if WalkToOak then else logout;
ClickToContinue;
Marktime(Time);
Maxtime := HowManyMinutes * 60000;
repeat
TreeIsGone;
FindOak;
if FindNormalRandoms then FindOak;
FindNormalRandoms;
Check;
MarkTime(time2)
repeat
wait(10);
HandleFight;
FindTalk;
until (invfull) or (TimeFromMark(Time2) > 30000+random(5000)) or(TimeFromMark(Time) > MaxTime) or TreeGone or ClickToContinue or findtalk;
Wait(10);
until (invfull) or (TimeFromMark(Time) > MaxTime);
end;
procedure Setup;
begin
DeclarePlayers;
MouseSpeed := 15;
ActivateClient;
SRLID := YourSRLID;
SRLPassword := YourSRLIDPASS;
end;
procedure SetUpClient;
begin
LoginPlayer;
Logins := Logins + 1;
Wait(1000);
Setangle(true);
MakeCompass('N');
GetLevel('WoodCutting', True);
end;
begin
SetUpSRL;
Setup;
repeat
SetUpClient;
repeat
WoodCutOak;
WalkToBank;
GetLevel('WoodCutting', False);
OpenBankDTm;
Depositall;
until (false)
until (false)
end.
My Bone Burrier dtm for opening bank in fally west bank -.-
SCAR Code:
Program LumbyAIO;
{.Include SRl/SRl.Scar}
Var
X, Y:integer;
StairColor, SpinDoorColor, SpinWheelColor, ChickenColor, ChickenColor2, ChickenColor3, MMBankerColor:integer;
Stairs, SecStairs, SpinDoor, Load, SpinStair: Integer;
Function ACStair: Integer;
Var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
Begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.00, 0.00);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 602954, MSX1, MSY1, MSX2, MSY2, 0);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 4.04) and (X <= 4.08) and (Y >= 3.82) and (Y <= 3.86) and (Z >= 0.77) and (Z <= 0.81) then
begin
Result := arC[i];
StairColor:=Result;
Writeln('StairColor = ' + IntToStr(arC[i]));
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function ACSpinDoor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
H, S, L: Extended;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 2376802, MSX1, MSY1, MSX2, MSY2, 0);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToHSL(arC[i], H, S, L);
if (H >= 8.58) and (H <= 8.62) and (S >= 46.25) and (S <= 46.29) and (L >= 26.25) and (L <= 26.29) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 7.40) and (X <= 7.44) and (Y >= 6.84) and (Y <= 6.88) and (Z >= 2.58) and (Z <= 2.62) then
begin
Result := arC[i];
SpinDoorColor:=Result;
Writeln('SpindDoorColor = ' + IntToStr(arC[i]));
Break;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function ACSpinWheel: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
H, S, L: Extended;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 13224400, MSX1, MSY1, MSX2, MSY2, 22);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToHSL(arC[i], H, S, L);
if (H >= 0.00) and (H <= 0.02) and (S >= 6.31) and (S <= 7.22) and (L >= 75.47) and (L <= 84.53) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 50.06) and (X <= 64.74) and (Y >= 51.45) and (Y <= 67.32) and (Z >= 54.84) and (Z <= 72.53) then
begin
Result := arC[i];
SpinWheelColor:=Result;
Writeln('SpinWheelColor = ' + IntToStr(arC[i]));
Break;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function ACChicken: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.92, 0.25);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 731741, MSX1, MSY1, MSX2, MSY2, 5);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 4.04) and (X <= 6.98) and (Y >= 3.82) and (Y <= 4.09) and (Z >= 0.77) and (Z <= 0.85) then
begin
Result := arC[i];
ChickenColor:=Result;
Writeln('ChickenColor = ' + IntToStr(arC[i]));
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function ACChicken2: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.00, 0.00);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 8299448, MSX1, MSY1, MSX2, MSY2, 0);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 36.61) and (X <= 36.65) and (Y >= 37.87) and (Y <= 37.91) and (Z >= 25.10) and (Z <= 25.14) then
begin
Result := arC[i];
ChickenColor2:=Result;
Writeln('ChickenColor2 = ' + IntToStr(arC[i]));
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function ACChicken3: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.00, 0.00);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 2308426, MSX1, MSY1, MSX2, MSY2, 0);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 4.57) and (X <= 4.61) and (Y >= 4.48) and (Y <= 4.52) and (Z >= 2.20) and (Z <= 2.24) then
begin
Result := arC[i];
ChickenColor3:=Result;
Writeln('ChickenColor3 = ' + IntToStr(arC[i]));
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function ACMMBanker: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
H, S, L: Extended;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MMCX, MMCY, arP, 195836, MMX1, MMY1, MMX2, MMY2, 0);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
if (rs_OnMinimap(arP[i].x, arP[i].y)) then
begin
ColorToHSL(arC[i], H, S, L);
if (H >= 16.65) and (H <= 16.69) and (S >= 98.41) and (S <= 98.45) and (L >= 49.78) and (L <= 49.82) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 74.95) and (X <= 74.99) and (Y >= 90.30) and (Y <= 90.34) and (Z >= 13.52) and (Z <= 13.56) then
begin
Result := arC[i];
MMBankerColor:=Result;
Writeln('MMBankerColor = ' + IntToStr(arC[i]));
Break;
end;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
// By Hermpie
Procedure HWait;
Begin
Wait(50 + Random(25));
End;
// By Hermpie
Procedure HLogout;
Begin
LogOut;
Exit;
End;
// By Hermpie
Procedure LDTM(TheDTM:Integer );
Begin
If (TheDTM = Stairs) then
Stairs := DTMFromString('78DA637CCFC8C06008C44000211918DC9DEC1' +
'844A0FCFF40C07809C85284C9A2029828E37E204B18D51C3B2B2B' +
'B83960F18940D60B06FCE64C05B2BC09D8C5CCC4C0F01ABF3900E' +
'D0E0BE3');
If (TheDTM = secStairs) then
SecStairs := DTMFromString('78DA637CC9C0C050C000068C108AC1D7948B4' +
'112CAFF0F048C37818C6654351ECEF6703560F13740A21D554D80' +
'8F07AA9ADD402211558DBF9727AA9A1D987661A80900B26A50D58' +
'0008A9AAD40E23801358B81443901355781842901351A40963701' +
'35B781C45CFC6A0072FC1607');
If (TheDTM = Load) then
Load := DTMFromString('78DA63B467646058C400068C108AE1FFFFFF7' +
'03E90FD9F910BC85A835B0D9806A99941404D3711E67413614E1B' +
'90B58C801A7E206B010135EA40D642026A9280ACC504D4D411B60' +
'B00B81F2B60');
If (TheDTM = SpinStair) then
SpinStair := DTMFromString('78DA637CCBC0C0708A010C18211483BF19178' +
'32494FF1F0818BD81ACBFA86A6000C667BC0D243419F1ABE90012' +
'F70898B318484C25A0E63E90B88B2AE6EA6005773358FC3790B88' +
'FAAC6D7D31555CD1B20F112558DA78B03AA1A5620EB1C7E350038' +
'41153A');
End;
// By Hermpie
Function MSRotated(DTM: Integer; DTMOption,DTmUptext: String; Left:boolean):boolean;
Var
MaxTime:Integer;
Begin
MarkTime(MaxTime);
Repeat
If DTMRotated(DTM,X,Y,MSX1,MSY1,MSX2,MSY2) Then
Begin
MMouse(X, Y, 0, 0);
HWait;
IF IsUpText(DTMUptext) then
begin
Mouse(X, Y, 0, 0, Left);
If Left = True Then Exit;
Hwait;
Result:=True;
If (Not(ChooseOption(DTMOption))) Then HLogout Else Exit;
end else
If DTM = Stairs then
begin
ACStair;
If FindColorSpiral(X, Y, StairColor, MSX1, MSY1, MSX2, MSY2) Then
begin
Mouse(X,Y,0,0,false);
Hwait;
If Chooseoption('aircase') then exit else logout;
end;
end;
End else
Writeln('DTM '+inttostr(DTM)+'Is NOT Found');
Until (TimeFromMark(MaxTime)>5000);
End;
//By Hermpie
Function MMRotated (DTM: Integer):Boolean;
begin
If DTMRotated(DTM,X,Y,MMX1,MMY1,MMX2,MMY2) Then
Begin
MouseFlag(X, Y, 0, 0);
Flag;
Flag;
Result:=True;
End;
end;
// By Hermpie
Procedure LoadingPW;
Var
MaxTime:Integer;
Begin
LDTM(Load);
MarkTime(Maxtime);
Repeat
If ((FindDTM(Load,X,Y,0,0,150,40))) Then Break;
Wait(1);
Until TimeFromMark(MaxTime)>5000;
Repeat
If (not(FindDTM(Load,X,Y,0,0,150,40))) Then Exit;
Wait(1);
Until TimeFromMark(MaxTime)>3000;
Wait(1000+random(1000));
FreeDTm(Load);
End;
Function HOpenDoor(Color:Integer):Boolean;
Begin
Flag;
if FindColorspiral(X, Y, Color, MSX1,MSY1,MSX2,MSY2)then
mmouse(x,y,0,0);
Hwait;
if IsUpText('pen') then
begin
Mouse(x,y,0,0,True);
Flag;
Writeln('Door Was Closed, Door opened!');
end else
if IsUpText('lose') then Writeln('Door Was Open') else Hlogout;
end;
//Walks From Everywhere In Lumbridge To Everywhere In Lumbridge.
////////////Location List\\\\\\\\\\
// 1 = The Bank NOTE: \\
// 2 = The Castle Path \\
// 3 = The Shop \\
// 4 = Spinning wheel \\
// 5 = The Cows \\
// 6 = The Chickens \\
// 7 = The GraveYard (Yew) \\
// 8 = Behind The Castle (Yew) \\
// 9 = Add one \\
// 10 = Add one \\
// 11 = Add one \\
// 12 = Add one \\
// 13 = Add one \\
/////////////////\\\\\\\\\\\\\\\\\\
// By Hermpie
Procedure Walk(FLoc,TLoc:Integer);
Begin
FindRoadColor;
If (FLoc = 1) And (TLoc = 2) Then
Begin
RadialRoadWalk(RoadColor, 330, 380, 60, 3, 3);
Flag;
Wait(750 + Random(250));
Flag;
LDtm(Stairs)
MsRotated(Stairs,'own','aircase',True);
FreeDtm(Stairs)
LoadingPW;
LDtm(SecStairs)
MsRotated(secStairs,'own','aircase',False);
FreeDtm(SecStairs)
LoadingPW;
MakeCompass('E');
End;
If (FLoc = 1) And (TLoc = 4) Then
Begin
FindRoadColor;
RadialRoadWalk(RoadColor, 225, 135, 70, 0, 0);
Flag;
Wait(1000);
Flag;
ACStair;
If FindColorSpiral(X,Y,StairColor,MSX1,MSY1,MSX2,MSY2) then Mouse(x,y,0,0,true) else Logout;
LoadingPW;
Wait(1000);
FindRoadColor;
RadialRoadWalk(RoadColor, 320, 450, 32, 0+1, 0+1);
Flag;
Wait(1000);
Flag;
ACSpinDoor;
HOpendoor(SpinDoorColor);
end;
If (FLoc = 2) And (TLoc = 3) Then//From The Castle Path To The shop.
Begin
End;
If (FLoc = 2) And (TLoc = 4) Then//From The Castle Path To The Goblins.
Begin
End;
If (FLoc = 2) And (TLoc = 5) Then//From The Castle Path To The Cows.
Begin
End;
If (FLoc = 2) And (TLoc = 6) Then//From The Castle Path To The Chickens .
Begin
End;
If (FLoc = 2) And (TLoc = 7) Then//From The Castle Path To The GraveYard(Yew).
Begin
End;
//NOTE THIS DOESN'T START AT THE CASTLE PATH
If (FLoc = 1) And (TLoc = 8) Then//From The BANK To Behind The Castle(Yew).
Begin
RadialRoadWalk(RoadColor, 340, 380, 60, 0, 3);
Flag;
Wait(750 + Random(250));
Flag;
LDtm(Stairs)
MsRotated(Stairs,'own','aircase',True);
FreeDtm(Stairs)
LoadingPW;
LDtm(SecStairs)
MsRotated(secStairs,'own','aircase',False);
FreeDtm(SecStairs)
End;
If (FLoc = 2) And (TLoc = 1) Then
Begin
End;
If (FLoc = 2) And (TLoc = 10) Then
Begin
End;
If (FLoc = 3) And (TLoc = 2) Then
Begin
End;
If (FLoc = 4) And (TLoc = 1) Then
Begin
ACSpinDoor
HOpenDoor(SpinDoorColor);
FindRoaDColor;
RadialRoadWalk(RoadColor, 230, 160, 50, 0, 0);
Flag;
Wait(750 + Random(250));
Flag;
LDTM(SpinStair);
MsRotated(SpinStair,'limb-up','aircase',False);
FreeDTM(SpinStair);
LoadingPW;
Wait(2000);
ACMMBanker;
if FindColor(X, Y ,MMBankerColor, MMX1, MMY1, MMX2, MMY2) then
Begin
MouseFlag(X,Y+5,0,0);
writeln('Found and Clicked MMBanker');
End else
Hlogout;
End;
If (FLoc = 5) And (TLoc = 2) Then
Begin
End;
If (FLoc = 6) And (TLoc = 2) Then
Begin
End;
If (FLoc = 7) And (TLoc = 2) Then
Begin
End;
If (FLoc = 8) And (TLoc = 2) Then
Begin
End;
If (FLoc = 9) And (TLoc = 2) Then
Begin
End;
If (FLoc = 10) And (TLoc = 2) Then
Begin
End;
End;
// By Timer
Function Kill(MonsterName, Option: String; Colors: TIntegerArray; Tolerance, TimeOutTime: Integer): Boolean;
Var
MTPA: TPointArray;
MonsterUpText, ChooseText: String;
F, I, I2, TimeOut,
UpTo, ToLong: Integer;
Begin
I := Pos(' ', MonsterName);
MonsterUpText := Copy(MonsterName, 2, (I - 2));
I := Pos(' ', MonsterName);
ChooseText := Copy(Option, 2, (I - 2));
UpTo := High(Colors);
For F := 0 To UpTo Do
Begin
If FindDead Or FindNormalRandoms Then Exit;
FindColorsSpiralTolerance(MMCX, MMCY, MTPA, Colors[F], MSX1, MSY1, MSX2, MSY2, Tolerance);
I2 := High(MTPA);
For I := 0 To I2 Do
Begin
If FindDead Or FindNormalRandoms Then Exit;
MMouse(MTPA[I].x, MTPA[I].y, 2, 2);
Wait(50 + Random(50));
If FindDead Or FindNormalRandoms Then Exit;
If IsUpText(MonsterUpText) Then
Begin
If (Option <> '') Then
Begin
If FindDead Or FindNormalRandoms Then Exit;
Mouse(MTPA[I].x, MTPA[I].y, 0, 0, False);
Wait(50 + Random(50));
ChooseOption(Option);
Result := True;
Break;
End Else
Begin
If FindDead Or FindNormalRandoms Then Exit;
Mouse(MTPA[I].x, MTPA[I].y, 0, 0, True);
If FindDead Or FindNormalRandoms Then Exit;
Result := True;
Break;
End;
End Else
Result := False;
End;
If Result Then
Break;
End;
If FlagPresent Then
Begin
MarkTime(TimeOut);
Repeat
If FindDead Or FindNormalRandoms Then Exit;
Wait(100 + Random(20));
If Not FlagPresent Then
Break;
If TimeFromMark(TimeOut) >= 10000 Then
Break;
Until Not LoggedIn;
End;
Wait(2000 + Random(500));
If FindColorSpiral(x, y, 65280, 240, 140, 290, 175) Then
Result := True;
MarkTime(ToLong);
Repeat
Wait(1000 + Random(500));
If FindDead Or FindNormalRandoms Then Exit;
Until(Not FindColorSpiral(x, y, 65280, 240, 140, 290, 175) Or (TimeFromMark(ToLong) > TimeOutTime));
End;
//By Hermpie
Procedure OpenLBBank;
Var
LBBank, MaxTime: Integer;
Begin
LBBank := DTMFromString('78DA6364666460A86100034608C530BBA78C4' +
'104CAFF0F048C77818C7A543551CEDC703560712620AB95801A0D' +
'20AB8B801A7F20AB8F809A3B40A20D554D459A0BAA1A4620AB9B8' +
'01A4D206B0201357E40D614FC6A0078471512');
If DTMRotated(LBBank,X,Y,MSX1,MSY1,MSX2,MSY2) Then
Begin
HWait;
Mouse(X, Y, 5, 5, False);
HWait;
If (Not(ChooseOption('uickly'))) Then HLogout Else WriteLN('Opened The Bank');
MarkTime(MaxTime);
Repeat
Wait(10);
Until(BankScreen) Or (PinScreen) Or (TimeFromMark(Maxtime) > 5000);
HWait;
If (Not(PinScreen)) Or (Not(BankScreen)) Then HLogout;
HWait;
If PinScreen then InPin('0000');
MaxTime:=0;
MarkTime(MaxTime);
Repeat
Wait(10);
Until BankScreen Or (TimeFromMark(MaxTime)> 5000);
If (TimeFromMark(MaxTime)> 5000) Then HLogout;
If (Not(BankScreen)) then If PinScreen then InPin('0000');
FreeDTM(LBBank);
end else
begin
Writeln('Bank On MainScreen NOT Found');
HLogout;
FreeDTM(LBBank);
end;
end;
Procedure Perform;
Begin
end;
// By Hermpie
Procedure SetUp;
Begin
ActivateClient;
Wait(1000);
MakeCompass('N');
SetAngle(True);
Setrun(True);
GameTab(4);
End;
Begin
SetUpSRL;
SetUp;
Walk(1,4);
Walk(4,1);
End.
and my best script ever