PDA

View Full Version : Error in PowerChopper script



AlexandrSN
11-01-2006, 11:12 PM
Hi!
Help me please with PowerChopper. When I run it, it gives and error: "Unknown identifier 'c0' ".
What's the problem?
Help, please.

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

Junior
11-01-2006, 11:49 PM
Dont use this. As I can tell its outdated by the includes. Find something else thats up to date.
Sorry for the inconvience.
~jR

AlexandrSN
11-01-2006, 11:58 PM
Sorry for the inconvience.

That's OK. No problem.
Excuse, could you tell me abou this errors:
Unknown identifier 'FindBirdsNest'
Unknown identifier 'FindEnt'
Unknown identifier 'FindHead'
Unknown identifier 'DropAllLogs'
Unknown identifier 'FindAxeHeadColor

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

Junior
11-02-2006, 03:05 AM
That means it cant find the procedures. Those are SRL procedures and you dont have SRL.
Ill give you the download link in a second.

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

CamHart
11-02-2006, 03:36 AM
This is for scripting help, are you looking to edit the script, or just to get autoing?

AlexandrSN
11-02-2006, 07:54 AM
are you looking to edit the script, or just to get autoing?

I want get autoing and I want to learn scar scripting too, but almost all scripts, what I have downloaded don't work. So I must solve first this problem.

AlexandrSN
11-02-2006, 07:57 AM
EDIT: Heres the link
http://www.villu-reborn.com/showthread.php?t=3410
After you install SRL correctly those errors wont appear anymore.

Thanks. I'll try.
In fact, I already downloaded from this link, but I try one more time.

AlexandrSN
11-02-2006, 02:26 PM
One more error. What's it means: "Invalid number of parameters"? How to fix this one?
Help, please.

Sumilion
11-02-2006, 03:18 PM
well, Mouse needs 5 parameters, the x and y coords of where it must click, the random changes in x and y and left or right click, so it would look something like this :

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

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

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

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

AlexandrSN
11-06-2006, 03:08 PM
Bump!

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

Pentti
11-06-2006, 08:04 PM
That's OK. No problem.
Excuse, could you tell me abou this errors:
Unknown identifier 'FindBirdsNest'
Unknown identifier 'FindEnt'
Unknown identifier 'FindHead'
Unknown identifier 'DropAllLogs'
Unknown identifier 'FindAxeHeadColor

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

if these errors comes when you are using that powecutter, the problem is in include SSI2 or you don't even have that include. Or you may have and old version of SSI2 include. I have SSI2 version 1.8 you may need to download it for makig script work.

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

here is SSI2 1.8 got it stright from starblaster.

argh uploading isnt woking so here lol:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

function GetSymbolColor(name:string):integer;//Thank you SCAR 2.0 for making this much easier, work in progress
var
Bitmap,Color,c:integer;
acc:extended;
begin
if(lowercase(name)='bank')then
begin
Bitmap := BitmapFromString(15, 5, 'z78DA33B434B4343473B' +
'100421364D2D9D2C9C9D4C4CDCDD5D1CCD0C2D5DCC5D00299 ED04' +
'8226C824B25E43B0998664990C213175116F32B2F9C824B2F 9A4B' +
'A1997F9B842865493890F734C9301ACE46928');
Color:=6417151;
end;
if(lowercase(name)='mining spot')or(lowercase(name)='mining site')then
begin
Bitmap := BitmapFromString(15, 5, 'z78DA95D03B0EC430' +
'0804D02B610C832931D9DCFF48894293C8DAD5464853F0790 5342' +
'91A67A46FF43BA31914AE602183A9E5686799A64E3C04BA4C FA43' +
'7E98439C770971257CB09F934B8E089F2FE43287A2F534166 629A' +
'1121D03DB5BB94C0B1D9D811E2DEF66ED94BCF6BFC97753A3 3BF3' +
'7ABBCAEB9F0FD413672D');
Color:=4219541;
end;
if(lowercase(name)='transportation')then
begin
Bitmap := BitmapFromString(15, 5, 'z78DA33303534347074353' +
'4B73032219E34763173348592A62E666E66A6C8B20660330D 904C' +
'86A841D6858BC454896C3EA6C9C498899FC465B291A3B1939 10B3' +
'124A69910715C269317CEC866229B0C00B3496273');
Color:=2650848;
end;
if(lowercase(name)='magic shop')then
begin
Bitmap := BitmapFromString(15, 5, 'z78DA95D0510A80300806' +
'E02B9906B6C77F3AEF7FA4A0066DABC17A1111FD1469A74CC 5C46' +
'0D6C60875CEA17288D63CE08C771D02A09BA5CBA499DC99AD 3CFA' +
'EB72041B97B9D9C83F6F2ECE69C3D71F46F9EE5C979D155AF DBAA' +
'5BBFF312D915399C927AF756C82');
Color:=1714669;
end;
if(lowercase(name)='water source')or(lowercase(name)='water')then
begin
Bitmap := BitmapFromString(15, 5, 'z78DAA5CF410A80300C44' +
'D12B25B6A964E9907AFF2329CC42A5448A12F874111EA9A89 C830' +
'A438C6DB646B7A51BF6C27A75F3C8F659D16BE665F68F7C37 B121' +
'3AF8162D2DE2FDF21999E628B3DFE4C7DF1339BB9CE601EA0 F684' +
'0');
Color:=14497281;
end;
if(lowercase(name)='furnace')then
begin
Bitmap := BitmapFromString(15, 5, 'z78DA333034004247472763' +
'47130869E4686C6C64626266E46CE0E66A616666608C8B84A 881A' +
'8B770B434B6809A60608880044CB6B434333072B570333230 84B1' +
'07BDC934080D62485C26030023CF61C9');
Color:=222952;
end;
if(lowercase(name)='anvil')then
begin
Bitmap := BitmapFromString(15, 5, 'z78DA95CF510AC0300803D02B' +
'A59DE0F2D9F6FE771A2CFB10CAC4FE04117C443434D8E4C2E A4A8' +
'7DFCE8B06FB369AF38C025E139B5C7194EA106F73B9D2991C 187D' +
'3773F92F2BE6A91CBFD05CE9FC00C9DB6164');
Color:=4012591;
end;
if(lowercase(name)='rare trees')or(lowercase(name)='tree')then
begin
Bitmap := BitmapFromString(15, 5, 'z78DA33303400424757270' +
'B4757086960686209128390E6F84833470B20696C618E6E02 0262' +
'33D99C0C9238938976391269E16A69614192C96012EC6B288 9C34' +
'CFC26639A0F516FE46CE80267BB9AB919B8426C4136133934 00AC' +
'8C5FC9');
Color:=96513;
end;
if(lowercase(name)='fishing spot')or(lowercase(name)='fish')then
begin
Bitmap := BitmapFromString(15, 5, 'z78DA8DCE410E80300844D12B4D5BA' +
'9BAA404EE7F2413675343AA6EFE82D217D061682636ACCCAD A779' +
'045B641F117987CDAFB84D2479D67257B28A0EFD90B9C9F9B B3FD' +
'FF02EC337F347B39977D83F37AFFEA2D76EDEA4543DE870B2 922F' +
'BB6B6878');
Color:=16743189;
end;
FindDeformedBitmapToleranceIn(Bitmap,x,y,570,5,725 ,160,70,0,True,acc);
if(acc>SymbolAccuracy)then
begin
repeat
c:=c+5;
if(FindColorTolerance(x,y,Color,x,y,x+15,y+5,c))th en
result:=GetColor(x,y);
until(result>0)or(c>70);
end;
FreeBitmap(Bitmap);
end;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

procedure LoadStatBmps;//Odie5533's procedure from OSi
begin
s0 := BitmapFromString(5, 8,
'000000FFFFFFFFFFFFFFFFFF000000FFFFFF0000000000000 00000' +
'FFFFFFFFFFFF000000000000000000FFFFFFFFFFFF0000000 00000' +
'000000FFFFFFFFFFFF000000000000000000FFFFFFFFFFFF0 00000' +
'000000000000FFFFFFFFFFFF000000000000000000FFFFFF0 00000' +
'FFFFFFFFFFFFFFFFFF000000');
s1 := BitmapFromString(3, 8,
'000000FFFFFF000000FFFFFFFFFFFF000000000000FFFFFF0 00000' +
'000000FFFFFF000000000000FFFFFF000000000000FFFFFF0 00000' +
'000000FFFFFF000000FFFFFFFFFFFFFFFFFF');
s2 := BitmapFromString(5, 8,
'000000FFFFFFFFFFFFFFFFFF000000FFFFFF0000000000000 00000' +
'FFFFFF000000000000000000000000FFFFFF0000000000000 00000' +
'FFFFFF000000000000000000FFFFFF000000000000000000F FFFFF' +
'000000000000000000FFFFFF000000000000000000000000F FFFFF' +
'FFFFFFFFFFFFFFFFFFFFFFFF');
s3 := BitmapFromString(4, 8,
'000000FFFFFFFFFFFF000000FFFFFF000000000000FFFFFF0 00000' +
'000000000000FFFFFF000000FFFFFFFFFFFF0000000000000 00000' +
'000000FFFFFF000000000000000000FFFFFFFFFFFF0000000 00000' +
'FFFFFF000000FFFFFFFFFFFF000000');
s4 := BitmapFromString(4, 8,
'FFFFFF000000000000000000FFFFFF000000000000000000F FFFFF' +
'000000000000000000FFFFFF000000FFFFFF000000FFFFFF0 00000' +
'FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000F FFFFF' +
'000000000000000000FFFFFF000000');
s5 := BitmapFromString(4, 8,
'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000F FFFFF' +
'000000000000000000FFFFFFFFFFFFFFFFFF0000000000000 00000' +
'000000FFFFFF000000000000000000FFFFFFFFFFFF0000000 00000' +
'FFFFFF000000FFFFFFFFFFFF000000');
s6 := BitmapFromString(5, 8,
'000000000000FFFFFFFFFFFF000000000000FFFFFF0000000 00000' +
'FFFFFFFFFFFF000000000000000000000000FFFFFF000000F FFFFF' +
'FFFFFF000000FFFFFFFFFFFF000000000000FFFFFFFFFFFF0 00000' +
'000000000000FFFFFFFFFFFF000000000000000000FFFFFF0 00000' +
'FFFFFFFFFFFFFFFFFF000000');
s7 := BitmapFromString(4, 8,
'FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000FFFFFF0 00000' +
'000000FFFFFF000000000000000000FFFFFF000000000000F FFFFF' +
'000000000000000000FFFFFF000000000000FFFFFF0000000 00000' +
'000000FFFFFF000000000000000000');
s8 := BitmapFromString(5, 8,
'000000FFFFFFFFFFFFFFFFFF000000FFFFFF0000000000000 00000' +
'FFFFFFFFFFFF000000000000000000FFFFFF000000FFFFFFF FFFFF' +
'FFFFFF000000FFFFFF000000000000000000FFFFFFFFFFFF0 00000' +
'000000000000FFFFFFFFFFFF000000000000000000FFFFFF0 00000' +
'FFFFFFFFFFFFFFFFFF000000');
s9 := BitmapFromString(5, 8,
'000000FFFFFFFFFFFFFFFFFF000000FFFFFF0000000000000 00000' +
'FFFFFFFFFFFF000000000000000000FFFFFF000000FFFFFF0 00000' +
'000000FFFFFF000000000000FFFFFFFFFFFFFFFFFF0000000 00000' +
'000000000000FFFFFF000000000000000000000000FFFFFF0 00000' +
'000000000000000000FFFFFF');
end;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

//GENERAL RANDOMS

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

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

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

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

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

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

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

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

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

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

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

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

//MINING

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

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

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

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

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

//FISHING

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

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

//WOODCUTTING

function FindAxeHeadColor:boolean;
var
bmpAxe:integer;
begin
bmpAxe:= BitmapFromString(15, 11, 'z78DA95935B8EC3200C45B704F6B5' +
'81CF06C2FE97541753898822CDC4D2FD0073FC0C32DFCCE1F 3C55' +
'D511018183EFF552768420B39B16868A9CB1D5AAE5A623C45 3C66' +
'B293AB046326C9C624A52F59924433C18D5B0815E66775949 3AEF' +
'C07F9926ACC97EA37DBC75B27BB6EB1344584ECAF389099B2 45CA' +
'DA859E648B5AB800DCB94341662F88594386AE4C3FF94176A 6F77' +
'6C9962E2A5418D4A9F3C5CA8AC895ABC75A6B39911F535BC8 279D' +
'51066DEAA8E5EF64BF5D759EAF5DF26CF9C35CD53DE73EA82 2B49' +
'DB9EFF39CBE77C6B3DD9833E7037932F73F45B9314DFE98EC CE74' +
'5DB7F7481EB45D1FFD5F2B1DB76FD953CBEA');
if(FindItemBmpTol(bmpAxe,75))then
begin
Result:=true;
AxeHeadColor:=GetColor(x+9,y+4);
end else
Writeln('Could not find axe head color!');
FreeBitmap(bmpAxe);
end;

function FindAxe:boolean;
var
c,bmpAxeHead,bmpAxeHandle:integer;
begin
bmpAxeHead := BitmapFromString(12, 8, 'z78DA9591410EC3200C04BF64AF97E' +
'21C6968FFFFA42685484E29510BD21C8C19ADE5746325D225 653F' +
'1A79EA218BDD3B27F5F6CB9E265AB95A0132D5A54E9DC1107 BE01' +
'055BA654867B0B968399CA301D85F7B06336EFCC513F313AE 6E0B' +
'562D5F3C6F436312AB60F6CF195B7E3C404DDDF6A7E73451F 40CA' +
'9C6ADF52904DBBDDEEFD83FE30B09BB7676');
bmpAxeHandle := BitmapFromString(16, 27, 'z78DA9595511283200C44AFA440A2' +
'FDD45AEF7FA4524367C0B021B6336907F5256C9648296D714 F474' +
'A7125CEBFA1C46BBD44B52EF7EBA7A6DF6796D87000A19345 F3AF' +
'15612E0BADD321B1C9822A47B9D4D59A1FF720F9EE7CBD17B 4237' +
'54FCD97FF710AF98BAA1AEC42EDD4C5777450E745E4077C47 CD7C' +
'5268F91D8247992AD7A0728FDB41DF1B3746E29BE66EB27D8 E34D' +
'9E519337B21EFF4EE56EEA781AB2ECD1F9ED0862C95039F43 D799' +
'B1904FFAFCC9B4E5D5B5D35394C5748EAD3952DEC36F2A379 519F' +
'41474D9D6BCD3535B6D4DAE2B07E7C87E53F87B3A980066CD 9D37' +
'91AD393A2F0E87AF81F32494287C5ED2D175A3D6C1A14921D BCAB' +
'8E7894DE6374DD88DAE095FF399D3B072704ED14C4064FD3E 1A4C' +
'6F5B998D797EEE467BB654FC57E4736EB2B8DCE2C8F805915 426A' +
'2');
Result:=True;
if(FindItemBmpTol(bmpAxeHandle,50))or(NewChatMsg(' need an axe'))then
begin
Result:=False;
Wait(2000+random(100));
if(FindBitmapSpiralTolerance(Ore,x,y,559,210,735,4 60,25))then
begin
Mouse(x,y,5,5,false);
ChooseOption('Drop');
end;
repeat
c:=c+1;
if(FindItemBmpTol(bmpAxeHead,50))and(FindItemBmpTo l(bmpAxeHandle,25))then
begin
Result:=true;
Break;
end;
if(FindObj('Take',AxeHeadColor,0))then
begin
Mouse(x,y,1,1,true);
Flag;
wait(1000+random(100));
end
else if(PickUpItems)then
ItemGrab;
until(c>=10);
if(FindItemBmpTol(bmpAxeHead,50))and(FindItemBmpTo l(bmpAxeHandle,50))then
begin
ClickItemBmpTol(bmpAxeHead,50,true);
ClickItemBmpTol(bmpAxeHandle,50,true);
Attaches:=Attaches+1;
end;
end;
FreeBitmap(bmpAxeHead);
FreeBitmap(bmpAxeHandle);
end;

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

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

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

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

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

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

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

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

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

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

procedure LoadSSIBmps;
begin
Ore := BitmapFromString(8, 11,
'564D42564D42564D42564D42564D42564D420000010000015 64D42' +
'564D42564D42544A3B544A3B0000013D312254442F564D425 64D42' +
'564D42564D420000012D2518443827584731564D42544A3B5 44A3B' +
'564D42000001201B124034257A6346564D42544A3B4D44385 64D42' +
'000001483B297D6547806748564D42564D42544A3B564D420 00001' +
'7D6547806748000001564D42564D42544A3B544A3B544A3B0 00001' +
'000001302020000001000001000001000001000001544A3B3 02020' +
'3020202D2518382D1E403425483B2951412D000001544A3B5 44A3B' +
'5847315C4A345E4D366552395E4D360000013020200000015 C4A34' +
'5E4D3665523968543B655239000001302020000001');
Lamp := BitmapFromString(6, 6,
'81800E79780E84830E00000100000100000179780E75740E0 00001' +
'000001C3C118B5B3156E6D0E5252090000013020200000010 00001' +
'696809484709000001302020544A3B3020200000010000013 02020' +
'302020544A3B564D42302020302020302020544A3B544A3B5 64D42' +
'');
PickHandle := BitmapFromString(15, 27,
'564D41595145564D41544A3C544A3C595145564D41564D415 64D41' +
'564D41595145000001000001544A3C4F4538544A3C5951455 64D41' +
'544A3C544A3C544A3C5951455951455951455951450000012 F2000' +
'362400000001544A3C564D41544A3C544A3C564D41564D415 64D41' +
'5951455951455951450000012F20002F20003624000000013 02020' +
'564D41544A3C544A3C595145564D41595145564D415951455 95145' +
'0000012F2000362400362400000001302020564D41564D415 64D41' +
'564D41564D41544A3C544A3C544A3C0000012F20002F20003 62400' +
'362400000001302020544A3C544A3C544A3C544A3C544A3C5 44A3C' +
'544A3C544A3C0000012F20003624003624003624000000013 02020' +
'544A3C564D41564D41564D41544A3C564D41564D410000012 F2000' +
'2F2000362400362400000001302020302020564D41564D415 64D41' +
'595145564D41564D41564D410000012F20003624003624000 00001' +
'302020302020544A3C544A3C544A3C544A3C595145544A3C5 44A3C' +
'0000012F2000362400362400362400000001302020564D415 64D41' +
'544A3C544A3C544A3C564D41544A3C4F45380000012F20003 62400' +
'362400000001302020302020564D41564D41544A3C544A3C5 95145' +
'595145564D410000012F20003624003624003624000000013 02020' +
'564D41564D41544A3C544A3C564D41564D415951455951450 00001' +
'2F20002F20002F2000000001302020302020564D41564D415 44A3C' +
'564D41564D41544A3C564D410000012F20002F20002F20003 62400' +
'000001302020564D41544A3C544A3C544A3C595145544A3C5 44A3C' +
'564D410000012F20002F20002F20000000013020203020205 44A3C' +
'544A3C564D41564D41595145544A3C544A3C0000012F20002 F2000' +
'2F2000000001302020302020595145544A3C564D415951455 95145' +
'595145564D41564D410000012F20002F20002F20000000013 02020' +
'595145595145564D41564D415951455951455951455951450 00001' +
'2F20002F20002F20000000013020203020205951455951455 95145' +
'595145564D41564D41564D41564D410000012F20002F20002 F2000' +
'000001302020564D41595145595145595145595145564D415 64D41' +
'544A3C0000012F20002F20002F20000000013020203020205 64D41' +
'595145595145544A3C544A3C564D41595145564D410000012 F2000' +
'2F20002F2000000001302020544A3C564D415951455951455 44A3C' +
'544A3C564D41564D41564D410000012F20002F20000000013 02020' +
'302020544A3C564D41595145595145564D41544A3C544A3C4 F4538' +
'000001271B002F20002F2000000001302020595145544A3C5 64D41' +
'595145595145595145544A3C544A3C544A3C0000011D15002 71B00' +
'000001302020302020595145544A3C564D415951455951455 95145' +
'564D41564D41564D410000011D15001D15000000013020205 95145' +
'544A3C544A3C564D415951455951455951455951455951455 44A3C' +
'0000011D15001D1500000001302020564D415951455951455 95145' +
'595145564D41595145595145564D41544A3C564D410000010 00001' +
'302020302020595145595145595145595145544A3C564D415 95145' +
'544A3C544A3C4F4538564D41595145302020302020564D415 95145' +
'564D41564D41564D41544A3C544A3C564D41544A3C544A3C5 44A3C' +
'');
PickHead := BitmapFromString(6, 5,
'2E1F002E1F00352400000001483E33483E331D1400261A002 E1F00' +
'352400000001483E331D14001D1400261A002E1F000000013 02020' +
'0000010000010000010000013020203020203020203020203 02020' +
'302020302020483E33');
PickAxe := BitmapFromString(30, 14,
'564D42564D42544A3B4D4438544A3B564D42564D42544A3B4 D4438' +
'544A3B544A3B544A3B544A3B544A3B0000010000010000010 00001' +
'544A3B564D42564D42564D42564D42564D42564D42544A3B5 44A3B' +
'564D42544A3B564D42564D42544A3B544A3B4D4438564D425 64D42' +
'544A3B544A3B564D42564D42544A3B4D44384D44380000012 F2000' +
'2F20003625003D2900000001564D42564D42564D42564D425 64D42' +
'564D42564D42544A3B564D42544A3B564D42544A3B4D44385 44A3B' +
'564D42564D420000010000010000010000010000010000010 00001' +
'000001000001392D1B44341E4D3B225441270000013020205 64D42' +
'544A3B564D42564D42564D42564D42564D42544A3B544A3B5 64D42' +
'4D44384D4438564D42000001000001392D1B3429183429183 42918' +
'34291834291834291834291834291834291840311E44341E4 D3B22' +
'000001302020544A3B544A3B564D42564D42564D42564D425 64D42' +
'544A3B544A3B564D42544A3B000001000001392D1B392D1B3 92D1B' +
'3429183429183429183429183429183429183429183429181 E1500' +
'271B005441274D3B22000001000001564D42544A3B564D425 64D42' +
'564D42564D42564D42564D42544A3B564D42000001392D1B3 92D1B' +
'392D1B392D1B392D1B3429183429183429183429183429183 42918' +
'3429181E1500271B002F2000513E254D3B2248382044341E0 00001' +
'000001544A3B544A3B564D42564D42564D42544A3B544A3B5 64D42' +
'544A3B0000010000010000010000010000010000010000010 00001' +
'0000010000010000010000011E15002F20002F20004D3B224 D3B22' +
'48382044341E40311E44341E000001000001564D42564D425 64D42' +
'544A3B544A3B564D42544A3B4D44383020203020203020203 02020' +
'3020203020203020203020203020200000011E1500271B002 F2000' +
'2F20004D3B224D3B2248382044341E40311E392D1B40311E4 4341E' +
'000001000001564D42564D42544A3B564D42544A3B544A3B4 D4438' +
'544A3B544A3B544A3B544A3B544A3B4D4438544A3B544A3B0 00001' +
'1E15002F20002F20002F200000000100000100000144341E4 0311E' +
'392D1B342918392D1B40311E44341E000001564D42544A3B5 64D42' +
'564D42564D42564D42544A3B544A3B564D42564D42564D425 44A3B' +
'564D420000011E1500271B002F20002F20000000013020203 02020' +
'302020000001000001000001392D1B2F2515342918392D1B0 00001' +
'302020564D42564D42564D42564D42544A3B544A3B564D425 64D42' +
'564D424D44384D4438564D420000011E15002F20002F20000 00001' +
'302020302020544A3B544A3B544A3B3020203020200000010 00001' +
'0000012F2515392D1B000001544A3B564D42564D42564D425 44A3B' +
'544A3B544A3B564D42564D42544A3B544A3B0000011E15002 F2000' +
'2F20002F2000000001302020544A3B544A3B544A3B564D425 64D42' +
'544A3B544A3B30202030202000000100000140311E0000015 64D42' +
'544A3B544A3B564D42564D42544A3B544A3B544A3B564D425 64D42' +
'0000011E15002F20002F2000000001302020302020544A3B5 44A3B' +
'564D42564D42564D42544A3B4D4438544A3B564D42564D423 02020' +
'000001302020302020544A3B544A3B544A3B4D4438544A3B5 44A3B' +
'544A3B544A3B0000011E15002F20002F20002F20000000013 02020' +
'4D44384D4438544A3B544A3B564D42564D42564D42544A3B5 44A3B' +
'544A3B544A3B544A3B564D42302020544A3B');
PickAxeSteel := BitmapFromString(30, 14,
'564D42564D42544A3B4D4438544A3B564D42564D42544A3B4 D4438' +
'544A3B544A3B544A3B544A3B544A3B0000010000010000010 00001' +
'544A3B564D42564D42564D42564D42564D42564D42544A3B5 44A3B' +
'564D42544A3B564D42564D42544A3B544A3B4D4438564D425 64D42' +
'544A3B544A3B564D42564D42544A3B4D44384D44380000012 D1E00' +
'2D1E003423003A2700000001564D42564D42564D42564D425 64D42' +
'564D42564D42544A3B564D42544A3B564D42544A3B4D44385 44A3B' +
'564D42564D420000010000010000010000010000010000010 00001' +
'0000010000015C5656686060756D6C8278780000013020205 64D42' +
'544A3B564D42564D42564D42564D42564D42544A3B544A3B5 64D42' +
'4D44384D4438564D420000010000015953535953535953535 95353' +
'595353595353595353595353595353575151615A596A62627 56D6C' +
'000001302020544A3B544A3B564D42564D42564D42564D425 64D42' +
'544A3B544A3B564D42544A3B0000010000015C56565953535 75151' +
'5751515751515751515751515751515751515751515751511 C1400' +
'251900827878756D6C000001000001564D42544A3B564D425 64D42' +
'564D42564D42564D42564D42544A3B564D42000001615A595 F5858' +
'5C5656595353575151575151544E4E544E4E544E4E544E4E5 44E4E' +
'544E4E1C14002519002D1E007D7474756D6C6E67676A62620 00001' +
'000001544A3B544A3B564D42564D42564D42544A3B544A3B5 64D42' +
'544A3B0000010000010000010000010000010000010000010 00001' +
'0000010000010000010000011C14002D1E002D1E007970707 56D6C' +
'6E67676A6262635D5C6A6262000001000001564D42564D425 64D42' +
'544A3B544A3B564D42544A3B4D44383020203020203020203 02020' +
'3020203020203020203020203020200000011C14002519002 D1E00' +
'2D1E007B7272756D6C6E67676A6262635D5C5F5858635D5C6 86060' +
'000001000001564D42564D42544A3B564D42544A3B544A3B4 D4438' +
'544A3B544A3B544A3B544A3B544A3B4D4438544A3B544A3B0 00001' +
'1C14002D1E002D1E002D1E000000010000010000016860606 35D5C' +
'5F58585751515C5656615A59665E5E000001564D42544A3B5 64D42' +
'564D42564D42564D42544A3B544A3B564D42564D42564D425 44A3B' +
'564D420000011C14002519002D1E002D1E000000013020203 02020' +
'302020000001000001000001595353524B4B544E4E5953530 00001' +
'302020564D42564D42564D42564D42544A3B544A3B564D425 64D42' +
'564D424D44384D4438564D420000011C14002D1E002D1E000 00001' +
'302020302020544A3B544A3B544A3B3020203020200000010 00001' +
'0000014D47465F5858000001544A3B564D42564D42564D425 44A3B' +
'544A3B544A3B564D42564D42544A3B544A3B0000011C14002 D1E00' +
'2D1E002D1E00000001302020544A3B544A3B544A3B564D425 64D42' +
'544A3B544A3B302020302020000001000001665E5E0000015 64D42' +
'544A3B544A3B564D42564D42544A3B544A3B544A3B564D425 64D42' +
'0000011C14002D1E002D1E00000001302020302020544A3B5 44A3B' +
'564D42564D42564D42544A3B4D4438544A3B564D42564D423 02020' +
'000001302020302020544A3B544A3B544A3B4D4438544A3B5 44A3B' +
'544A3B544A3B0000011C14002D1E002D1E002D1E000000013 02020' +
'4D44384D4438544A3B544A3B564D42564D42564D42544A3B5 44A3B' +
'544A3B544A3B544A3B564D42302020544A3B');
FrogSpot := DTMFromString('78DA63AC606260B06100030E2006F2184AF 36' +
'2C07C4620FE0F048CDD405167881A56A8B8555D3A033F940D 565B' +
'0254A349404D12508D037E35000D030BB3');
Frog := BitmapFromString(30, 2, 'z78DA73727274B534B23000012' +
'74747270B47E249645DB84C808A836D4126C9144732131749 8C9B' +
'5154426CC160633119C355982EC4A51E00B445523B');
bmpFreakyForester := BitmapFromString(106, 2, 'z78DAA552410AC0' +
'3008FBD23618B8A3C2FEFFA531BA4346D406DA8394D8468DB 1ED3' +
'DE11EE67A34F885F7B8FCB47DC4817F59C07B36442A3C41C2 EFEB' +
'E0F8CBB63C2BB1EF61D215E3BADAF437C9221BEC455295AA2 4B57' +
'846A57FE2A9365EB1252FD163E4C0C48DC456EAAC7812676F A75B' +
'F21E5499F00B0E54F6B8C2D96BD8EBD0D7D555AD781E9D382 154');
bmpLeaveTheArea := BitmapFromString(89, 2, 'z78DA3330000127474' +
'7270B4708690011717274B534422631C5514490F522994691 9944' +
'881343E2D74B65B7417C8DC926DA765C61881C92C4A8C1296 EE96' +
'86A610821718910E3779CA18AE46B5CA6511EF294A4075AA7 0A02' +
'E9019324C29DE4C5387E35C4EB820000EEBEF642');
bmpPheasantMeat := BitmapFromString(14, 7, 'z78DA7D915B8EC6200' +
'885B7A4DC79ACD5EE7F497FA7C74968E6A2093127F0014799 221C' +
'2A72F090E7DDBE4EB7C3C428C4A71F88D0B9D17D11A1B8DA6 5678' +
'CD0E8502A67D34484C45399469C7A31B96AA3519935DFD9A6 8DEC' +
'91E12FCE3DCA9B13A98BDB5F34E83624C9BDD9B074F76E4B4 F5ED' +
'4EC9271EBA72ACD4D331DFFD04826E5EEDED468A17BB0262D E454' +
'0EF49FB4CAC40C9B862A102AB3D090593D79F9838D3021AA2 EEB2' +
'CBFCCF970B0FB76E3F1163F654D3AD166C2BDE25292F137B3 EEF5' +
'01384D7A16');
bmpNet := BitmapFromString(30, 5, 'z78DA7592510E83300C43AF1492' +
'14FA3B98B8FF9116EAA6B8A06D9A153985BC782DEE1FDBCB4 BFDE' +
'B6E55AECF52AA57F3F8559354173BD0450D7F95223E9CF415 DD2D' +
'CF37474C4CE1475D75E7B799EBA17D3A949DB2069DB2F2496 69BF' +
'95FBE5CCED5F53C13540AEDB350DFB4B90B6F84F7C45754B1 0B74' +
'6246B644CB73911BFBC89369793B4CEC5420EC6CA3BB41710 66C7' +
'0A6549BDF34999BC339A36E84F5996A72A27B6F947BA14617 247D' +
'6E102F27F3608B8733320CAD8ABBB70561BF873AFD9BF1BCA 8FCB' +
'B0337A1F9942439BC2368D7BA8A9FCF7BAE0773F63B8F9C1B 27F2' +
'ECF5204F5A70B2FE00E57BB5C0');
bmpCage := BitmapFromString(10, 27, 'z78DA95945B8EC3200C45B704' +
'F8957E0219F6BFA4B1B05B9949130D8D743EF0A9E3D657A4A 49F9' +
'C6E488C2716276285164F0AE59A92F3CC63E56DCFD9E7EA03 16F8' +
'B0956325E6D2DE3D17F3D15F2865A463D78FDCF01BC01F3E7 6BEF' +
'A9480DFDCF59D04AF1D736185BEEF2FDCF5078C0F77FD49D6 D5EE' +
'FB91BB3E1F481F763CD2B99C18AF66F48D8D413DCB4643429 22A5' +
'9320F6C5ABDE38BB33E271393A7E244CD8730FFE8A99DDBDE 050B' +
'16E902FA84AA14AE5CEDBB04D8B10B72D76906EB949EBD304 FAC5' +
'A1FEBEF2787241EE678F6E23CE6CCAA99D6DF27998ED13718 E789' +
'CEFC15E6D83FE03DE784B6BB388F3B560DD960A6413EADF7B 42D8' +
'777B963D5FF6423CCF365E3CFD908F3C46CC49B73C9CC3367 4220' +
'157D8CD77BF82E575F6EFEC9E76E7E33CFEA2F16B15827');
bmpRod := BitmapFromString(17, 7, 'z78DA75924192C5200844AF8440' +
'8359263ADEFF489FAFC914D664A08AC553BB0B10A65D19B3D 237C' +
'A7FD5AA822A488C6AE63E30A8C769DFB9351075BDA4C6ABA4 0F47' +
'C15D835675BD148A5B1F7250958B97D6ABDAE63BF97653D1D 156C' +
'589AFB4688B9C2E5AA44953E7F1DAC580844B89D3DBFD2F79 B8D5' +
'C8C34A24E3C259B4446417A912B1B9088C7ACCB03DEE558CA 92FB' +
'E881013D38BCBEAA8C1629AD9A570E79EF54D3466A82EFA3B ABC9' +
'33C92EFEE3B10E673B235347B78BCA90B175E1385EBB983CE BAF9' +
'AB7EFCD2572791962EA6B479BFE85F6FCA86DE3936792F53F 03E2' +
'9337');
bmpFlyRod := BitmapFromString(18, 9, 'z78DA8D934B8EC4300844AF4' +
'44C81EDA53FE3FB1F699810B570BB5B1A47F202121E55104C 808B' +
'008DBB282652BCE9EF5C3969D3868CF48A2C59347509D3948 54CC' +
'5E3675649AA548F7B4D1CC4481142458DD52205575A446736 C699' +
'923D8F0AA7DCF746C972C9957A6AA979BCB0269A99458D453 C764' +
'5311B291BEBD0E2DA853130B63AD91C99CAA6B3C46ACFB737 0599' +
'B1671FDF4E8A8AF92D8285C585ED3CD92EC32805D37CEB5CD E667' +
'4F710956E8A0EC774AAA8481308F8872BD78DE2B30E8A36BD F73B' +
'FFF20D3AB4BB6FA676F1B25C412EAAB03ABE5743E8D38C9C1 2957' +
'ED884836834B6BEBBC992D8F3574AE8E19BA238A993F8505C 916F' +
'C23DA333EB9D780FE77F1477DB23BF361FC994');
bmpHarpoon := BitmapFromString(10, 10, 'z78DA8D514B8EC53008BB5' +
'208189C65D2B4F73FD2CB3CBA48D51969585851843F804D33 25DC' +
'A6D51DCB4FC91BFFD3134768280F56D67CFB7075DD15E20C0 4586' +
'215355A3422467476CAFA353F7CE080C3DD307124574B2D69 FB74' +
'BC59D5BBF7252B103DB5694387C1BC62A0DFEE665DC7CD3A6 9B43' +
'B61737101ECB2EB31EF57E1E1751144AB0C865F4E67F6D858 8077' +
'CE7C677F333692DD5D245365DABD3331B7B4EB706DA24C40A F42E' +
'912126FEE7D9DEF8C893B6B9F42A5CE3A7FE1EE0A7DDD98EF 6C7F' +
'A5DDB91FF2B77B29');
end;

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

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

AlexandrSN
11-08-2006, 02:37 PM
yohojo8,
thank you VERY much!
Maybe all problems with downloaded scripts cunfused by Includes. I hope SSI2 is the last thing, which has to be updated.

lardmaster
11-08-2006, 09:34 PM
listen, you are trying to use a powerchopper that is old and doesnt work, if you want, i will send you a very good powerchopper with no bugs by PM.