hellsfire
2007-08-07 03:41:22
{.Script Info:
# ScriptName = Squig 4.06
# Author = Squigglyo
# Description = Include Created by Squigglyo
# Version = 4.06
# Date = 26 / 09 / 05
# Comments = Created To handle random events
also does alot Of other things.
Check the manual out. Any questions
pm me, me user is Squigglyo at www.kaitnieks.com/scr
/Script Info}
{= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ]
Squig
Version 4.06
by Squigglyo
[= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ]
Huge thanks To Benland100 who has contributed his password saver And
FindTextArcSpiral among other things
Special Thanks:
poppa68 = > Huge help getting bitmaps And broken picks And axes For V2
Odie5583 = > Some Of my original procedures are based loosly on
his in Osi
Akumara = > My box solver is based loosly on his BoxBreaker2 just
reprogrammed
piv = > Contributed his gas finder
pups = > Contributed his maze detector
Stupid3ooo = > Allowed me To use his Frog Solver
Zup = > Helped update MouseC
KnightStreak = > Allowed me to use his Dr. Ford Solver
VG_Kobra = > Got me pictures of the Evil Bob random event
jiakhang = > Helped fix up the GasFinding procedures
Driger1592 = > Updated SetChat for me among other various things.
Goldec = > Looked thru Squig for me
People who suggested things And got them put into Squig.
JayJay = > Bank/Drop Item Color
SilentWolf = > Faster FindObject Procedure
Qwerty = > Easy Map Walking, Random Talker, Faster DropAll
Monkie = > Drop Item by Name
The Saint = > FindObjectIn
Abyssal = > WorkedFor, ClearDebug
Moparisthebest = > DepositAll2
Theino = > MapFlaggingH
Freddy1990 = > MouseR, MouseBox, DragFromTo
Smitty = > MapCompass('R');
Version 2 Testers:
BrokenSkateboard
Version 3 Testers:
Sdouble
Philodespotos = >Special thanks To Phil, he has helped test alot
Mysteryman
Milk
JayJay
Seifer225
Quilto33
Hemnet
Abyssal
Deadlydragon
Version 4 Testers/ProofReaders:
Idiota
MoparistheBest
Bebemycat2
Pwnd
xxKanexx
Abyssal = > Returning Tester, Yay for Abyssal
Driger1592
[= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = }
{Squig should only be downloaded on Kaitnieks' forum Or using Scar}
{No other site has my permission To have it on their site}
{But since i cannot patrol the internet, If you Do download
Squig from somewhere Else, by careful.}
{To learn how To use it, use the guide that is found
here http://www.kaitnieks.com/scr/showthread.php?p=31137#post31137}
{You are not allowed To edit And/Or change this in
any way. You are not allowed To take any piece(s)
from/out Of Squig, all parts must be left in And the
only way To use it's procedures is To include Squig
in your script(s). All procedures And/Or functions
in Squig were created by Squigglyo. All items in
this script are Copyrighted To Squigglyo. This
script may not be sold, traded, exchanged,
And / Or distributed unless you have been
given direct written consent To Do so by me And me only.}
{= = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Versions
Version 1.0, First Release
Version 1.1, Bank Opener
Version 2.0, Alot Of new procedures, including a Box opener
Also updated alot Of things including Global variables
And a Lamp Decider.
Version 2.1, Added a ScreenShot Taker, And all random events
will be screenshotted And placed in the script folder.
Version 2.2, Updated the Coding, Updated MouseC, Added ClickHuman
Added BuyItemColor And SellItemColor
Version 2.2.1, Updated some things
Version 2.2.2, Updated the Find Text random event finder Procedure
And the login Procedure.
Version 2.3, Updated all text finding procedures And the MapFlagging Procedure
Version 2.4, Updated the Mapflagging Procedure again
Version 2.4.1, Updated all procedures that look For text.
Version 2.4.2, Updated the random event talked a little bit.
Version 3.0, Fixed the random event talker, added all the other random events
i missed, updated the sendkeyshuman2 Procedure, added the GetStat
Procedure, added the randomtalk Procedure, added a disease,
poison And fight checker, updated the fightfound Procedure,
slotfilled Function added, itemcount Function added, fullbag
Function added, dropitemcolor Procedure added, bankitemcolor
Procedure added, Death checker, Axefound added, pickfound added,
findgas added, findnets added, mapcolor Function added, mapwalk
Procedure added, dropitemname added, emote Procedure updated.
FindObjectIn Added, DragItem Added And alot Of other things
updated.
Version 3.1, Fixed a little bug in FindObject where it didnt wait long enough
To check the text. Fixed a little bug in the FindFight Procedure,
fixed a bug where the dropitem Procedure would drink beer,
And, fixed a bug in the FullBag Function.
Version 3.2, Added documentation, Updated some stuff, Added Dist,
FlagPresent Added, GetHp Added, DropItem2 Added, MapFlaggingR
Added, FlagPresent Added, MapCompass Added, ClickText Added
Version 3.3, Updated procedures that use Istextat2 To IsTextAtEx,
Added MapFlaggingH, Added MapFlaggingHR, Added WorkedFor,
Added DepositAll2, Added FindGasArea, Added ClearDebug,
Updated the RandomTalk Procedure To include 2 things about
Farming.
Version 4.0, IsTextUp Updated, MouseC Updated, WorkedFor Fixed, OpenBag Updated,
OpenCombat Updated, OpenQuests Updated, OpenStats Updated,
OpenEquip Updated, OpenPrayer Updated, OpenMagic Updated,
OpenFriends Updated, OpenIgnore Updated, Logout Updated,
OpenOptions Updated, OpenControls Updated, OpenMusic Updated,
SetChat Updated, LogIn Updated, IsTextAt3 Added, IsTextIn3 Added,
KillScript Added, LogOutFor Added, FindDtmIn Added, IDHerbs Added,
UseItemWith Added, Enchant Added, LowAlch Added, HighAlch Added,
FletchAll Added, ThieveNPC Added, WaitR Added, FindColorM Added,
Smelt Added, CannonBalls Added, UseSpecial Added, Smith Added,
FindFish Added, FindTree Added, EntFound Altered, FindRange Added,
IsTextInString Added, RandomLogout Added, DropAllRow Added,
DropAllCol Added, DepositAllRow Added, DepositAllCol, MineRock Added,
OpenChest Added, FindTextArcSpiral Added, PassSaver Added, Enter Added,
CheckSkill Added, BankTop Added, BankBottom Added, Updated all bitmaps
LampPresent Added, BoxPresent Added, FindBob Added, FindForester Added,
SolveFord Added, FindQuiz Added, SolveFrog Added, FindCerters Added, IsBank Added
Version 4.01, Updated the MineRock procedure to handle the new rocks out at the time.
Version 4.02, Fixed a small big in DropItem
Version 4.03, Small update in GetStat, and bug fix in IsBank
Version 4.04, Fixed a small problem with the MineRock and FindObjectIn procedures
Added 'R' to Mapcompass
Version 4.05, Fixed FletchAll
Version 4.06, Updated FindObject and FindObjectIn, fixed all procedures that used Dtms
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = }
Var
//Variables used for character sets and times
chrChatChars, chrCharsNormal, GSquigTime, gSquigTime2 : Integer;
//Variables left unchanged For functionality For older scripts
YellowTextTotal, AttacksTotal, TotalBoxes, FordTotal, TotalFrogs : Integer;
TotalLamps, TotalEnts, AxeTotal, PickTotal, PlantTotal, GasTotal : Integer;
BankID : Integer;
User, Pass, Direction, LampSkill : String;
randomtalked, fightfound, tradeb, screenshots, checkford, CheckForester : Boolean;
checktext, checkfights, checkboxes, checklamps, checkmods, CheckCerters : Boolean;
checkplant, checkmime, checkmaze, runback, checkquiz, CheckFrog : Boolean;
CheckBob : Boolean;
//Variables For the pass saver
AccessCode, CName, CPass: String;
User2, Pass2: Array Of String;
UID: Integer;
V: TVariantArray;
Main: TForm;
Label1: TLabel;
Names: TComboBox;
Button1, Button2, ButtonDelete: TButton;
Const
{S1, S2, S3 And S4 are the size Of the actual game, Starting at the top right
And finishing in the bottom left before they reach the inventory Or chat}
S1 = 5;
S2 = 5;
S3 = 515;
S4 = 340;
{M1, M2, M3 And M4 are the minimap}
M1 = 565;
M2 = 5;
M3 = 725;
M4 = 160;
{I1, I2, I3 And I4 are the inventory}
I1 = 560;
I2 = 210;
I3 = 740;
I4 = 460;
{C1, C2, C3 And C4 are the chat log}
c1 = 1;
c2 = 340;
c3 = 495;
c4 = 455;
{GameCenterA And GameCenterB are the middle Of the game}
GameCenterA = 257;
GameCenterB = 168;
{MapCenterA And MapCenterB are the middle Of the minimap}
MapCenterA = 647;
MapCenterB = 83;
gSquigMessage = 'Squig 4.06 - Created by Squigglyo';
{^^^^^^^^^^^^^^^^^ CLEARDEBUG ^^^^^^^^^^^^^^^^^^}
{This will clear the area where text appears in scar}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure ClearDebug;
Var
i : Integer;
Begin
i:= 0;
Repeat
writeln('');
i:= i + 1;
Until(i= 15);
End;
{^^^^^^^^^^^^^^^^^ FLAGPRESENT ^^^^^^^^^^^^^^^^}
{Returns true If the flag is in the minimap And false If it isnt}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function FlagPresent : Boolean;
Var
a, b, runescapeflag, runescapeflag2 : Integer;
Begin
result:= false;
runescapeflag := BitmapFromstring(7, 7,
'000000000000000000000000000000000000FF0000000000000000' +
'000000000000000000FF0000FF0000000000000000000000000000' +
'FF0000FF0000FF0000000000000000000000FF0000FF0000FF0000' +
'FF0000000000000000FF0000FF0000FF0000FF0000FF0000000000' +
'FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000' +
'FF0000FF0000FF0000FF0000');
runescapeflag2 := BitmapFromstring(2, 4,
'C656045D3311C656045D3311C656045D3311C656045D3311');
If(findbitmapin(runescapeflag, a, b, 555, 5, 735, 160))
Or(findbitmapin(runescapeflag2, a, b, 555, 5, 735, 160))Then
Begin
wait(50);
If(findbitmapin(runescapeflag, a, b, 555, 5, 735, 160))
Or(findbitmapin(runescapeflag2, a, b, 555, 5, 735, 160))Then
result:=true;
End;
FreeBitmap(runescapeflag);
FreeBitmap(runescapeflag2);
End;
{^^^^^^^^^^^^^^^^^ MAPFLAGGING ^^^^^^^^^^^^^^^^^}
{Waits Until the Runescape Flag is not in the minimap}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure MapFlagging;
Var
color1, color2, color3, x1 : Integer;
Begin
x1:= 0;
If(flagpresent=false)Then
exit;
Repeat
wait(100);
x1:= x1 + 1;
If(FlagPresent=False)Then
wait(1000);
If(FlagPresent=False)Then
Begin
color1:= getcolor(70, 185);
color2:= getcolor(436, 68);
color3:= getcolor(45, 52);
wait(500);
If(getcolor(45, 52) = color3)Or(getcolor(70, 185) = color1)
Or(getcolor(436, 68) = color2)Then
If(flagPresent=False)Then
break;
End;
Until(x1= 150);
End;
{^^^^^^^^^^^^^^^^^ MAPCOMPASS ^^^^^^^^^^^^^^^^^}
{Moves the minimap compass To the desired Direction (N, E, S, W)}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure MapCompass(Compass : String);
Var
a : Extended;
Begin
Compass:= Uppercase(Compass);
If(Compass = 'R')Or(Compass = 'RANDOM')Then
begin
SendArrowSilentWait(3, random(5500) + 500);
exit;
End;
End;
begin
End.
Function IsTextAt3(x, y : Integer; S : String; Tolerance : Integer) : Boolean;
Begin
result:= IsTextAtEx(x, y, S, Tolerance, ChrCharsNormal, True, False, 0, 1, -1);
If(result=False)Then
result:= IsTextAtEx(x - 2, y - 2, S, Tolerance, ChrCharsNormal, True, False, 0, 1, -1);
If(Result=false)Then
result:= IsTextAtEx(x, y - 2, S, Tolerance, ChrCharsNormal, True, False, 0, 1, -1);
If(Result=False)Then
result:= IsTextAtEx(x - 2, y, S, Tolerance, ChrCharsNormal, True, False, 0, 1, -1);
End;
{^^^^^^^^^^^^^^^^^ CHECKCHATMSG ^^^^^^^^^^^^^^^}
{Checks the last sentence in the chat box and returns true if it
matchets the one its looking for}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function CheckChatMsg(Text: String) : Boolean;
Begin
Result:= IsTextAtEx(20, 415, Text, 40, ChrChatChars, False, True, 0, 1, 0);
End;
{^^^^^^^^^^^^^^^^^ ISTEXTIN3 ^^^^^^^^^^^^^^^^^^}
{Works just like IsTextInArea but is more acurate,
and uses IsTextinAreaEx}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function IsTextIn3(x1, y1, x2, y2 : Integer; Var x, y : integer; S : String) : Boolean;
Begin
result:= IsTextInAreaEx(x1 , y1, x2, y2, x, y, S, 100, ChrCharsNormal, True, True, 0, 1, -1);
End;
{^^^^^^^^^^^^^^^^^ ISTEXTUP ^^^^^^^^^^^^^^^^^^^}
{Returns true If the text is found at 9, 9}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function IsTextUp(text : String) : Boolean;
Begin
If(IsTextAt3(9, 9, text, 100))Then
result:= true
Else
result:= false;
End;
{^^^^^^^^^^^^^^^^^ CLICKHUMAN ^^^^^^^^^^^^^^^^^}
{Clicks the mouse like a human would}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure ClickHuman(x, y : Integer; left : Boolean);
Begin
holdmouse(x, y, left);
wait(random(20) + 15);
releasemouse(x, y, left);
End;
{^^^^^^^^^^^^^^^^^^ DIST ^^^^^^^^^^^^^^^^^}
{Returns the amount Of pixels between a1, b1 And a2, b2}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function Dist(a1, b1, a2, b2 : Integer) : Integer;
Var
aa, bb : Extended;
Begin
If(a1>a2)Then
aa:= (a1 - a2) * (a1 - a2)
Else
aa:= (a2 - a1) * (a2 - a1);
If(b1>b2)Then
bb:= (b1 - b2) * (b1 - b2)
Else
bb:= (b2 - b1) * (b2 - b1);
result:= trunc(Sqrt(aa + bb)) + 1;
End;
{^^^^^^^^^^^^^^^^^ MOUSEC ^^^^^^^^^^^^^^^^^}
{Moves the mouse To the location given by x And y
Left clicks If click is 1, right clicks If its 2, 0 For no click.}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure MouseC(x, y, click : Integer);
// New MouseC with the help of Zup
Var
a, b : Integer;
step : Extended;
Begin
step:= 5;
GetMousePos(a, b);
Repeat
If(Dist(a, b, x, y)<100)Then
Begin
If(not(Dist(a, b, x, y)= 1))Then
step:= step - (10 / Dist(a, b, x, y));
End;
If(step<1)Then
step:= 1;
a:= a + Round((x - a) / step);
b:= b + Round((y - b) / step);
MoveMouseSmoothEx(a, b, 1, 6, 15, 20, 20);
wait(9 + random(4));
Until(Dist(a, b, x, y)= 1);
wait(random(19) + 7);
Case click Of
1 : Clickhuman(a, b, true);
2 : Clickhuman(a, b, false);
End;
End;
{^^^^^^^^^^^^^^^^^ MOUSER ^^^^^^^^^^^^^^^^^}
{Moves the mouse To the location given by x + random(x2)
And y + random(y2). Left clicks If click is 1,
right clicks If its 2, 0 For no click.}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure MouseR(x, y, xx, yy, click : Integer);
Begin
MouseC(x + random(xx), y + random(yy), click);
End;
{^^^^^^^^^^^^^^^^^ MOUSEBOX ^^^^^^^^^^^^^^^}
{Moves the mouse inside the location given by x1, y1, x2, y2
Left clicks If click is 1, right clicks If its 2, 0 For no click.}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure MouseBox(x1, y1, x2, y2, click : Integer);
Var
xx, yy : Integer;
Begin
if(x1 < x2)then
xx:= x1 + random(x2 - x1)
else
xx:= x1 - random(x1 - x2);
if(y1 < y2)then
yy:= y1 + random(y2 - y1)
else
yy:= y1 - random(y1 - y2);
MouseC(xx, yy, click);
End;
{^^^^^^^^^^^^^^^^^ CLICKTEXT ^^^^^^^^^^^^^^^^^^}
{Looks For text inside the given area And If found, clicks on it}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function ClickText(text : String; x1, y1, x2, y2 : Integer; left : Boolean) : Boolean;
Var
a, b : Integer;
Begin
result:= false;
If(IsTextIn3(x1, y1, x2, y2, a, b, Text))Then
Begin
If(left= true)Then
MouseC(a + random(3), b + random(2) + 4, 1)
Else
MouseC(a + random(3), b + random(2) + 4, 2);
result:= true;
End;
End;
{^^^^^^^^^^^^^^^^^ TIMERUNNINGMILI ^^^^^^^^^^^^^^^^^}
{Returns the number Of miliseconds the script has been running}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function TimeRunningMili : Integer;
Begin
result:= GetSystemtime - GSquigTime;
End;
{^^^^^^^^^^^^^^^^^ TIMERUNNINGSEC ^^^^^^^^^^^^^^^^^}
{Returns the number Of seconds the script has been running}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function TimeRunningSec : Integer;
Begin
result:= (GetSystemtime - GSquigTime) / 1000;
End;
{^^^^^^^^^^^^^^^^^ TIMERUNNINGMIN ^^^^^^^^^^^^^^^^^}
{Returns the number Of minits the script has been running}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function TimeRunningMin : Integer;
Begin
result:= ((GetSystemtime - GSquigTime) / 1000) / 60;
End;
{^^^^^^^^^^^^^^^^^ TIMERUNNINGHOUR ^^^^^^^^^^^^^^^^^}
{Returns the number Of hours the script has been running}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function TimeRunningHour : Integer;
Begin
result:= (((GetSystemTime - GSquigTime) / 1000) / 60) / 60;
End;
{^^^^^^^^^^^^^^^^^ WORKEDFOR ^^^^^^^^^^^^^^^^^^^}
{Returns the amount Of time the script has been running For}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function WorkedFor : String;
Var
int1, int2, int3 : Integer;
str1, str2, str3 : String;
Begin
int1:= TimeRunningHour;
int2:= TimeRunningMin;
int3:= TimeRunningSec;
While(int2>59)Do
int2:= int2 - 60;
While(int3>59)Do
int3:= int3 - 60;
If(int1<10)Then
str1:= '0' + inttostr(int1 )
Else
str1:= inttostr(int1);
If(int2<10)Then
str2:= '0' + inttostr(int2)
Else
str2:= inttostr(int2);
If(int3<10)Then
str3:= '0' + inttostr(int3)
Else
str3:= inttostr(int3);
result:= ('Worked For: ' + str1 + ':' + str2 + ':' + str3);
End;
{^^^^^^^^^^^^^^^^^ SELLITEMCOLOR ^^^^^^^^^^^^^^^^^^^}
{Sells an item that has the color in it defined by ItemColor,
Sells the amount defined by Ammount (1, 5, 10 Or 0 For all),
And the item name needs To match the variable defined as Name}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure SellItemColor(ItemColor, Ammount : Integer; name : String);
Var
a, b, x1, y1, x2, y2, txt1, col : Integer;
Begin
x1:= 570;
y1:= 210;
x2:= 610;
y2:= 245;
col:= 1;
If(findcolor(a, b, ItemColor, 555, 200, 735, 465))Then
Repeat
txt1:= 40;
If(findcolor(a, b, ItemColor, x1, y1, x2, y2))Then
Begin
MouseC(a + random(3), b + random(3), 0);
While(IsTextAt3(9, 9, 'Value', 100))Do
Begin
txt1:= txt1 + 1;
If(istextat3(txt1, 7, name, 100))
Or(txt1= 130)Then
break;
End;
If(txt1<>130)Then
Begin
MouseC(a, b, 2);
wait(random(300) + 600);
If(ammount= 1)Then
ClickText('1', I1, I2, I3, I4, true);
If(ammount= 5)Then
ClickText('5', I1, I2, I3, I4, true);
If(ammount<>1)And(ammount<>5)Then
ClickText('10', I1, I2, I3, I4, true);
Exit;
End;
End;
If(col= 1)Or(col= 3)Or(col= 7)Or(col= 4)Or(col= 5)Then
Begin
y1:= y1 + 35;
y2:= y2 + 35;
End
Else If(col= 6)Then
Begin
y1:= y1 + 45;
y2:= y2 + 45;
End
Else If(col= 2)Then
Begin
y1:= y1 + 40;
y2:= y2 + 40;
End;
col:= col + 1;
wait(random(100) + 50);
If(col= 8)Then
Begin
x1:= x1 + 40;
x2:= x2 + 40;
y1:= 210;
y2:= 245;
col:= 1;
End;
wait(random(100) + 100);
Until(x1>720);
End;
{^^^^^^^^^^^^^^^^^ BUYITEMCOLOR ^^^^^^^^^^^^^^^^^^^^}
{Buys an item that has the color in it defined by ItemColor,
Buys the amount defined by Ammount (1, 5, 10 Or 0 For all),
And the item name needs To match the variable defined as Name}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure BuyItemColor(ItemColor, ammount : Integer; name : String);
Var
a, b, x1, y1, x2, y2, txt1 : Integer;
Begin
x1:= 75;
y1:= 60;
x2:= 110;
y2:= 100;
If(findcolor(a, b, ItemColor, 75, 60, 475, 290))Then
Repeat
txt1:= 40
If(findcolor(a, b, ItemColor, x1, y1, x2, y2))Then
Begin
MouseC(a + random(3), b + random(3), 0);
While(istextat3(9, 9, 'Value', 100))Do
Begin
txt1:= txt1 + 1;
If(istextat3(txt1, 9, name, 100))
Or(txt1= 130)Then
break;
End;
If(txt1<>130)Then
Begin
MouseC(a, b, 2);
wait(random(300) + 600);
If(ammount= 1)Then
ClickText('1', I1, I2, I3, I4, true);
If(ammount= 5)Then
ClickText('5', I1, I2, I3, I4, true);
If(ammount<>1)And(ammount<>5)Then
ClickText('10', I1, I2, I3, I4, true);
Exit;
End;
End;
x1:= x1 + 50;
x2:= x2 + 50;
wait(random(100) + 50);
If(x1>445)Then
Begin
x1:= 75;
x2:= 110;
y1:= y1 + 55;
y2:= y2 + 55;
End;
Until(y1>290)
End;
{^^^^^^^^^^^^^^^^^ LAMPPRESENT ^^^^^^^^^^^^^^^^^}
{Returns true if you have a lamp in your bag}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
function LampPresent : Boolean;
Var
bmpTheLamp, a, b : Integer;
begin
bmpTheLamp := BitmapFromstring(29, 8,
'000000000000000000000000000000000000000000000000000000' +
'000000000000000000000000000000939212A7A516000000000000' +
'000000000000000000000000000000000000000000000000000000' +
'000000000000000000000000000000D4D21C000000000000000000' +
'000000000000000000000000000000000000B9B716C0BF19B3B116' +
'A7A5169D9C12939212000000000000000000000000000000000000' +
'000000000000000000000000000000000000D1CF19C0BF19C0BF19' +
'C0BF19C0BF19000000000000000000000000000000BBB916B3B116' +
'B0AE16ACAB169D9C129392128D8B1276750E000000000000000000' +
'000000000000000000000000000000000000000000D1CF19C0BF19' +
'B0AE16B6B416BEBC19C6C519C6C519D1CF19CCCA19C9C719C6C519' +
'C6C519C0BF19BBB916B6B416ACAB16A4A2129A981293921286840E' +
'7A790E6B6A095D5C09A7A516000000000000000000000000000000' +
'000000000000000000000000000000CCCA19CCCA19CECC19C6C519' +
'C3C219C0BF19BEBC19BBB916B9B716B6B416B3B116A9A816A4A212' +
'9D9C12979612908F1282810E9A9812B0AE1689880E000000000000' +
'000000000000000000000000000000000000000000000000D4D21C' +
'CECC19CCCA19C0BF19BEBC19BBB916B6B416B3B116B0AE16A9A816' +
'A4A212A19F129A981289880E86840E8D8B129392129D9C12B9B716' +
'666509000000000000000000000000000000000000000000000000' +
'000000000000000000CCCA19CCCA19BBB916B9B716B6B416B3B116' +
'B0AE16A9A816A4A2129D9C1297961282810E7A790E86840E000000' +
'000000000000C3C219A9A816000000000000000000000000000000' +
'000000000000000000000000000000CCCA19CCCA19C0BF19B9B716' +
'B3B116B0AE16ACAB16A7A516A19F129A98128D8B127A790E76750E' +
'000000000000C3C219B6B416A7A516000000000000');
If(FindBitmaptolerancein(bmpTheLamp, a, b, 560, 215, 730, 455, 20))Or
FindBitmaptolerancein(bmpTheLamp, a, b, 95, 65, 440, 255, 20)Then
Result:= true;
FreeBitmap(bmpTheLamp);
end;
{^^^^^^^^^^^^^^^^^ TAKESCREENSHOT ^^^^^^^^^^^^^^^^^^}
{Takes a screenshot Of the runescape client And saves it in the script
folder, the name Of the file is defined in the reason variable And
the number variable}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeScreenShot(reason:String; number:Integer);
Begin
If(screenshots= true)Then
Begin
SaveScreenshot(apppath + 'scripts\' + reason + inttostr(number) + '.bmp');
writeln('Screenshot taken: ' + reason + ' #' + inttostr(number));
End;
End;
{^^^^^^^^^^^^^^^^^ OPENEQUIP ^^^^^^^^^^^^^^^^^^^^^^^}
{Opens the Equipment tab}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure OpenEquip;
Begin
If(getcolor(680, 173) = 5531511)Then
MouseC(random(10) + 675, random(10) + 175, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFSWORD ^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your weapon}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffSword;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 580, random(10) + 300, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFHELM ^^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your helmet}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffHelm;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 640, random(10) + 215, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFCAPE ^^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your cape}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffCape;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 595, random(10) + 255, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFNECKLACE ^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your necklace}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffNecklace;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 640, random(10) + 255, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFARROWS ^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your arrows}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffArrows;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 680, random(10) + 255, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFBODY ^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your body armor}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffBody;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 650, random(10) + 300, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFSHIELD ^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your shield}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffShield;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 695, random(10) + 300, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFLEGS ^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your leg armor}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffLegs;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 635, random(10) + 335, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFGLOVES ^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your gloves}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffGloves;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 580, random(10) + 375, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFBOOTS ^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your boots}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffBoots;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 640, random(10) + 375, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFRING ^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your ring}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffRing;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 695, random(10) + 375, 1);
End;
{^^^^^^^^^^^^^^^^^ WEARINGRING ^^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And returns true If your wearing
a ring And false If your not}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function WearingRing : Boolean;
Begin
OpenEquip;
wait(random(300) + 300);
If(getcolor(705, 384)<>2304814)Then
Result:= true
Else
result:= false;
End;
{^^^^^^^^^^^^^^^^^ SENDKEYSHUMAN ^^^^^^^^^^^^^^^^^^}
{Types in whatever is in the variable text at the speed a human does}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure SendKeysHuman(text:String);
Var
a1 : Integer;
Begin
a1:= 1;
Repeat
wait(random(220) + 15);
sendkeys(copy(text, a1, 1));
a1:= a1 + 1;
Until a1 > length(text);
End;
{^^^^^^^^^^^^^^^^^ SENDKEYSHUMAN2 ^^^^^^^^^^^^^^^^^}
{Types whatever is in the vaariable text at the speed a human does
And also has the chance To make human-like mistakes}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure SendKeysHuman2(text:String);
Var
a1, a2, a3 : Integer;
char1, char2 : String;
mistake : Boolean;
Begin
a1:= 1;
a3:= random(4) + 1
mistake:= false;
Repeat
a2:= random(50);
If(a2<>5)Or(mistake= true)Then
Begin
wait(random(220) + 15);
sendkeys(copy(text, a1, 1));
End
Else
Begin
mistake:= true;
char1:= (copy(text, a1, 1));
char1:= Lowercase(char1);
char2:= char1;
a2:= random(2);
If(a2= 0)Then
Case char1 Of
'`' : char2:= '`';
'1' : char2:= '`';
'2' : char2:= '1';
'3' : char2:= '2';
'4' : char2:= '3';
'5' : char2:= '4';
'6' : char2:= '5';
'7' : char2:= '6';
'8' : char2:= '7';
'9' : char2:= '8';
'0' : char2:= '9';
'-' : char2:= '0';
'=' : char2:= '-';
'~' : char2:= '~';
'!' : char2:= '~';
'@' : char2:= '!';
'#' : char2:= '@';
'$' : char2:= '#';
'%' : char2:= '$';
'^' : char2:= '%';
'&' : char2:= '^';
'*' : char2:= '&';
'(' : char2:= '*';
')' : char2:= '(';
'_' : char2:= ')';
'+' : char2:= '_';
'q' : char2:= 'q';
'w' : char2:= 'q';
'e' : char2:= 'w';
'r' : char2:= 'e';
't' : char2:= 'r';
'y' : char2:= 't';
'u' : char2:= 'y';
'i' : char2:= 'u';
'o' : char2:= 'i';
'p' : char2:= 'o';
'[' : char2:= 'p';
'{' : char2:= 'P';
']' : char2:= '[';
'}' : char2:= '{';
'\' : char2:= ']';
'|' : char2:= '}';
'a' : char2:= 'a';
's' : char2:= 'a';
'd' : char2:= 's';
'f' : char2:= 'd';
'g' : char2:= 'f';
'h' : char2:= 'g';
'j' : char2:= 'h';
'k' : char2:= 'j';
'l' : char2:= 'k';
';' : char2:= 'l';
':' : char2:= 'L';
chr(39) : char2:= ';';
'"' : char2:= ':';
'z' : char2:= 'z';
'x' : char2:= 'z';
'c' : char2:= 'x';
'v' : char2:= 'c';
'b' : char2:= 'v';
'n' : char2:= 'b';
'm' : char2:= 'n';
',' : char2:= 'm';
'<' : char2:= 'M';
'.' : char2:= ',';
'>' : char2:= '<';
' / ' : char2:= '.';
'?' : char2:= '>';
End;
If(a2= 1)Then
Case char1 Of
'`' : char2:= '1';
'1' : char2:= '2';
'2' : char2:= '3';
'3' : char2:= '4';
'4' : char2:= '5';
'5' : char2:= '6';
'6' : char2:= '7';
'7' : char2:= '8';
'8' : char2:= '9';
'9' : char2:= '0';
'0' : char2:= '-';
'-' : char2:= '=';
'=' : char2:= '=';
'~' : char2:= '!';
'!' : char2:= '@';
'@' : char2:= '#';
'#' : char2:= '$';
'$' : char2:= '%';
'%' : char2:= '^';
'^' : char2:= '&';
'&' : char2:= '*';
'*' : char2:= '(';
'(' : char2:= ')';
')' : char2:= '_';
'_' : char2:= '+';
'+' : char2:= '+';
'q' : char2:= 'w';
'w' : char2:= 'e';
'e' : char2:= 'r';
'r' : char2:= 't';
't' : char2:= 'y';
'y' : char2:= 'u';
'u' : char2:= 'i';
'i' : char2:= 'o';
'o' : char2:= 'p';
'p' : char2:= '[';
'[' : char2:= ']';
'{' : char2:= '}';
']' : char2:= '\';
'}' : char2:= '|';
'\' : char2:= '\';
'|' : char2:= '|';
'a' : char2:= 's';
's' : char2:= 'd';
'd' : char2:= 'f';
'f' : char2:= 'g';
'g' : char2:= 'h';
'h' : char2:= 'j';
'j' : char2:= 'k';
'k' : char2:= 'l';
'l' : char2:= ';';
';' : char2:= chr(39);
':' : char2:= '"';
chr(39) : char2:= chr(39);
'"' : char2:= '"';
'z' : char2:= 'x';
'x' : char2:= 'c';
'c' : char2:= 'v';
'v' : char2:= 'b';
'b' : char2:= 'n';
'n' : char2:= 'm';
'm' : char2:= ',';
', ' : char2:= '.';
'<' : char2:= '>';
'.' : char2:= '/';
'>' : char2:= '?';
'/' : char2:= '/';
'?' : char2:= '?';
End;
sendkeys(char2);
End;
a1:= a1 + 1;
Until a1 > length(text);
End;
{^^^^^^^^^^^^^^^^^ RANDOM1 ^^^^^^^^^^^^^^^^^^^^^^^^}
{Used in the random talking Procedure}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function Random1 : String;
Var
a : Integer;
Begin
a:= random(4) + 1;
Case a Of
1 : result:= 'man,';
2 : result:= 'jeez,';
3 : result:= 'woo,';
4 : result:= 'cmon,';
End;
End;
{^^^^^^^^^^^^^^^^^ RANDOMARMOR ^^^^^^^^^^^^^^^^^^^^}
{Used in the random talking Procedure, returns a random piece Of
armor Or a weapon}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function RandomArmor : String;
Var
a : Integer;
Begin
a:= random(77) + 1;
Case a Of
1 : result:= 'bronze armor';
2 : result:= 'iron armor';
3 : result:= 'steel armor';
4 : result:= 'mithril armor';
5 : result:= 'adamite armor';
6 : result:= 'adam armor';
7 : result:= 'adamantite armor';
8 : result:= 'rune armor';
9 : result:= 'dragon armor';
10 : result:= 'drag armor';
11 : result:= 'barrow armor';
12 : result:= 'green dragon';
13 : result:= 'green drag';
14 : result:= 'green ranger';
15 : result:= 'blue dragon';
16 : result:= 'blue drag';
17 : result:= 'blue ranger';
18 : result:= 'red dragon';
19 : result:= 'red drag';
20 : result:= 'red ranger';
21 : result:= 'black dragon';
22 : result:= 'black drag';
23 : result:= 'black ranger';
24 : result:= 'splitbark armor';
25 : result:= 'trimmed armor';
26 : result:= 'god armor';
27 : result:= 'guthix armor';
28 : result:= 'sara armor';
29 : result:= 'saradomin armor';
30 : result:= 'zammy armor';
31 : result:= 'zamarok armor';
32 : result:= 'black trimmed armor';
33 : result:= 'adam trimmed armor';
34 : result:= 'rune trimmed armor';
35 : result:= 'gold trimmed armor';
36 : result:= 'mystic robes';
37 : result:= 'ahrim armor';
38 : result:= 'dharok armor';
39 : result:= 'guthan armor';
40 : result:= 'karil armor';
41 : result:= 'torag armor';
42 : result:= 'verac armor';
43 : result:= 'bronze weapons';
44 : result:= 'iron weapons';
45 : result:= 'steel weapons';
46 : result:= 'mithril weapons';
47 : result:= 'mith weapons';
48 : result:= 'adam weapons';
49 : result:= 'adamantite weapons';
50 : result:= 'rune weapons';
51 : result:= 'dragon weapons';
52 : result:= 'crystal shields';
53 : result:= 'crystal bows';
54 : result:= 'longbows';
55 : result:= 'shortbows';
56 : result:= 'oak longbows';
57 : result:= 'oak shortbows';
58 : result:= 'willow shortbows';
59 : result:= 'willow longbows';
60 : result:= 'maple longbows';
61 : result:= 'maple shortbows';
62 : result:= 'yew longbows';
63 : result:= 'yew shortbows';
64 : result:= 'magic longbows';
65 : result:= 'magic shortbows';
66 : result:= 'staffs';
67 : result:= 'battlestaffs';
68 : result:= 'mystic staffs';
69 : result:= 'cannons';
70 : result:= 'ahrims staff';
71 : result:= 'dharoks greataxe';
72 : result:= 'guthans warspear';
73 : result:= 'crossbows';
74 : result:= 'karils crossbows';
75 : result:= 'torags hammers';
76 : result:= 'veracs flail';
77 : result:= 'gilded armor';
End;
End;
{^^^^^^^^^^^^^^^^^ RANDOMRARE ^^^^^^^^^^^^^^^^^^^^^}
{Used in the random talking Procedure, returns a random rare item}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function RandomRare : String;
Var
a : Integer;
Begin
a:= random(56) + 1;
Case a Of
1 : result:= 'pumpkins';
2 : result:= 'christmas crackers';
3 : result:= 'crackers';
4 : result:= 'phats';
5 : result:= 'party hats';
6 : result:= 'red phats';
7 : result:= 'red partyhats';
8 : result:= 'yellow phats';
9 : result:= 'yellow partyhats';
10 : result:= 'white phats';
11 : result:= 'white partyhats';
12 : result:= 'green phats';
13 : result:= 'green partyhats';
14 : result:= 'blue phats';
15 : result:= 'blue partyhats';
16 : result:= 'purple partyhats';
17 : result:= 'purple phats';
18 : result:= 'easter eggs';
19 : result:= 'red masks';
20 : result:= 'blue masks';
21 : result:= 'green masks';
22 : result:= 'santa hats';
23 : result:= 'santas';
24 : result:= 'dragon spears';
25 : result:= 'dragon meduim helmets';
26 : result:= 'dragon meds';
27 : result:= 'dragon helms';
28 : result:= 'dragon shields';
29 : result:= 'dragon squares';
30 : result:= 'dragon chains';
31 : result:= 'dragon chainbodys';
32 : result:= 'dragon legs';
33 : result:= 'dragon platelegs';
34 : result:= 'white berets';
35 : result:= 'blue berets';
36 : result:= 'black berets';
37 : result:= 'highwayman masks';
38 : result:= 'red headbands';
39 : result:= 'black headbands';
40 : result:= 'brown headbands';
41 : result:= 'dragon items';
42 : result:= 'masks';
43 : result:= 'berets';
44 : result:= 'headbands';
45 : result:= 'cavaliers';
46 : result:= 'brown cavaliers';
47 : result:= 'black cavaliers';
48 : result:= 'tan cavaliers';
49 : result:= 'pirate hats';
50 : result:= 'robins';
51 : result:= 'robin hood hats';
52 : result:= 'mage boots';
53 : result:= 'ranger boots';
54 : result:= 'disk Of returnings';
55 : result:= 'disks';
56 : result:= 'half wines';
57 : result:= 'magic seeds';
End;
End;
{^^^^^^^^^^^^^^^^^ RANDOMSKILL ^^^^^^^^^^^^^^^^^^^^}
{Used in the random talking Procedure, returns a random skill
along with some other words that work create a sentence}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function RandomSkill : String;
Var
a, b : Integer;
Begin
b:= random(35) + 1;
Case b Of
1 : result:= 'attack';
2 : result:= 'strength';
3 : result:= 'defense';
4 : result:= 'range';
5 : result:= 'prayer';
6 : result:= 'magic';
7 : result:= 'runecrafting';
8 : result:= 'hitpoint';
9 : result:= 'agility';
10 : result:= 'herblore';
11 : result:= 'thieving';
12 : result:= 'crafting';
13 : result:= 'fletching';
14 : result:= 'slayer';
15 : result:= 'mining';
16 : result:= 'smithing';
17 : result:= 'fishing';
18 : result:= 'cooking';
19 : result:= 'firemaking';
20 : result:= 'woodcutting';
21 : result:= 'atk';
22 : result:= 'str';
23 : result:= 'def';
24 : result:= 'mage';
25 : result:= 'rc';
26 : result:= 'hp';
27 : result:= 'herb';
28 : result:= 'thiev';
29 : result:= 'craft';
30 : result:= 'fletch';
31 : result:= 'smith';
32 : result:= 'fish';
33 : result:= 'cook';
34 : result:= 'fire';
35 : result:= 'wc';
36 : result:= 'farming';
End;
Case b Of
5, 8, 9, 26 : a:= random(2) + 1;
Else
a:= random(3) + 1;
End;
Case a Of
1 : result:= result + ' levels?';
2 : result:= result + ' lvs?';
3 : result:= random1 + ' ' + result;
End;
If(a= 3)Then
Begin
a:= random(7) + 1;
Case a Of
1 : result:= result + ' is boring!';
2 : result:= result + ' is the best';
3 : result:= result + ' is my favourite skill';
4 : result:= result + ' takes ages To train';
5 : result:= result + ' makes me so much money';
6 : result:= result + ' needs an update';
7 : result:= result + ' is too easy';
End;
End;
End;
{^^^^^^^^^^^^^^^^^ RANDOMMONSTER ^^^^^^^^^^^^^^^^^^}
{Used in the random talking Procedure, returns a random monster}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function RandomMonster : String;
Var
a : Integer;
Begin
a:= random(30) + 1;
Case a Of
1 : result:= 'chickens';
2 : result:= 'green dragons';
3 : result:= 'blue dragons';
4 : result:= 'red dragons';
5 : result:= 'black dragons';
6 : result:= 'king black dragons';
7 : result:= 'kalphites';
8 : result:= 'kalphite queens';
9 : result:= 'demons';
10 : result:= 'dragons';
11 : result:= 'metal dragons';
12 : result:= 'bronze dragons';
13 : result:= 'iron dragons';
14 : result:= 'steel dragons';
15 : result:= 'black demons';
16 : result:= 'greater demons';
17 : result:= 'lesser demons';
18 : result:= 'golems';
19 : result:= 'tree spirits';
20 : result:= 'shades';
21 : result:= 'moss giants';
22 : result:= 'giants';
23 : result:= 'hill giants';
24 : result:= 'wolfs';
25 : result:= 'baby dragons';
26 : result:= 'spiders';
27 : result:= 'rats';
28 : result:= 'zombies';
29 : result:= 'goblins';
30 : result:= 'scorpions';
End;
End;
{^^^^^^^^^^^^^^^^^ RANDOMTALK ^^^^^^^^^^^^^^^^^^^^^}
{Returns a random sentence}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function RandomTalk: String;
Var
a, b : Integer;
Begin
b:= random(5) + 1;
If(b= 1)Then
result:= randomskill;
If(b= 2)Then
Begin
a:= random(10) + 1;
Case a Of
1 : result:= 'I love ' + randomarmor;
2 : result:= 'I hate ' + randomarmor;
3 : result:= randomarmor + ' are so cool';
4 : result:= randomarmor + ' are stupid';
5 : result:= 'I have tons Of ' + randomarmor;
6 : result:= 'I think ' + randomarmor + ' look the best';
7 : result:= 'I think ' + randomarmor + ' look the worst';
8 : result:= randomarmor + ' costs too much';
9 : result:= randomarmor + ' is too cheap';
10 : result:= 'I can afford tons Of ' + randomarmor;
End;
End;
If(b= 3)Then
Begin
a:= random(10) + 1;
Case a Of
1 : result:= 'I love ' + randomrare;
2 : result:= 'I hate ' + randomrare;
3 : result:= randomrare + ' look the coolest';
4 : result:= randomrare + ' look the worst';
5 : result:= randomrare + ' are hard To find';
6 : result:= randomrare + ' are way too expensive';
7 : result:= randomrare + ' are too cheap';
8 : result:= 'I wonder how much ' + randomrare + ' alch For';
9 : result:= 'I wonder how many ' + randomrare + ' there are';
10 : result:= 'i wish i had tons Of ' + randomrare;
End;
End;
If(b= 4)Then
Begin
a:= random(8) + 1;
Case a Of
1 : result:= randommonster + ' look cool';
2 : result:= randommonster + ' look weak';
3 : result:= randommonster + ' are easy';
4 : result:= randommonster + ' are a good way To make money';
5 : result:= randommonster + ' should be harder';
6 : result:= randommonster + ' need To be easier';
7 : result:= randommonster + ' are the best To train on';
8 : result:= randommonster + ' are the worst To train on';
End;
End;
If(b= 5)Then
Begin
a:= random(6) + 1;
Case a Of
1 : result:= ':)';
2 : result:= ':(';
3 : result:= '=)';
4 : result:= '=(';
5 : result:= ';)';
6 : result:= ';(';
End;
End;
End;
{^^^^^^^^^^^^^^^^^ WAITR ^^^^^^^^^^^^^^^^^^^^^^^^^^}
{This Procedure will wait a random number Of miliseconds seconds}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure WaitR(number, RandomNumber : Integer);
Begin
wait(number + random(RandomNumber) + 1);
End;
{^^^^^^^^^^^^^^^^^ SETCHAT ^^^^^^^^^^^^^^^^^^^^^^^^}
{If applicable, turns off the Public chat, private chat And trade options}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure SetChat;
Var
x, y : integer;
Begin
If(GetColor(46, 488)<>255)then
Begin
repeat
MouseC(random(15)+20, random(10)+480, 1);
WaitR(150,100);
until(FindColor(x,y,255,45,487,47,489))
end;
If(GetColor(175, 486)<>255)then
Begin
repeat
MouseC(random(15)+150, random(10)+480, 1);
WaitR(150,100);
until(FindColor(x,y,255,174,485,176,487))
end;
If(GetColor(315, 488)<>255)then
Begin
repeat
MouseC(random(15)+290, random(10)+480, 1);
WaitR(150,100);
until(FindColor(x,y,255,314,487,316,489))
end;
End;
{^^^^^^^^^^^^^^^^^ LOGOUT ^^^^^^^^^^^^^^^^^^^^^^^^^}
{Logs your character out}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure LogOut;
Begin
If(getcolor( 632, 483) = 4543586)Then
MouseC(random(10) + 635, random(10) + 475, 1);
wait(random(300) + 500);
MouseC(random(30) + 600, random(5) + 370, 1);
End;
{^^^^^^^^^^^^^^^^^ OPENBAG ^^^^^^^^^^^^^^^^^^^^^^^^}
{Opens your inventory}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure OpenBag;
Begin
If(getcolor(634, 174) = 5531511)Then
MouseC(random(10) + 635, random(10) + 175, 1);
End;
{^^^^^^^^^^^^^^^^^ OPENCONTROLS ^^^^^^^^^^^^^^^^^^^}
{Opens the controls panel}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure OpenControls;
Begin
If(getcolor(704, 483) = 4543586)Then
MouseC(random(10) + 700, random(10) + 470, 1);
End;
{^^^^^^^^^^^^^^^^^ SETRUNON ^^^^^^^^^^^^^^^^^^^^^^^}
{Turns run on}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure SetRunOn;
Begin
OpenControls;
MouseC(random(10) + 615, random(10) + 275, 1);
wait(random(200) + 200);
End;
{^^^^^^^^^^^^^^^^^ SETRUNOFF ^^^^^^^^^^^^^^^^^^^^^^}
{Turns run off}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure SetRunOff;
Begin
OpenControls;
MouseC(random(10) + 565, random(10) + 275, 1);
wait(random(100) + 250);
End;
{^^^^^^^^^^^^^^^^^ TALKTORAND ^^^^^^^^^^^^^^^^^^^^^}
{Handles Talking To a random event}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TalkToRand;
Var
c : Integer;
Begin
Repeat
wait(1);
c:= c + 1;
If(c=2750)Then
exit;
Until(getcolor(234, 441)= 16711680);
YellowTextTotal:= YellowTextTotal + 1;
TakeScreenShot('Talked To Random', YellowTextTotal);
Status('Talking To Random Event');
Repeat
If(getcolor(232, 443)= 16711680)Then
Begin
MouseC(253 + random(20), 442 + random(3), 1);
wait(2000 + random(1000));
randomtalked:= true;
End;
wait(1);
c:= c + 1;
If(c= 5000)Then
exit;
Until(GetColor(240, 434)= 0);
End;
{^^^^^^^^^^^^^^^^^ DISEASED ^^^^^^^^^^^^^^^^^^^^^^^}
{Returns true If your character is diseased And false is it isnt}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function Diseased : Boolean;
Var
a, b : Integer;
Begin
result:= false;
wait(1);
If(findcolorspiral(a, b, 1226748, 215, 115, 330, 185))Then
result:= true;
End;
{^^^^^^^^^^^^^^^^^ POISONED ^^^^^^^^^^^^^^^^^^^^^^^}
{Returns true If your character is poisoned And false is it isnt}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function Poisoned : Boolean;
Var
a, b : Integer;
Begin
result:= false;
wait(1);
If(findcolorspiral(a, b, 49152, 215, 115, 330, 185))Then
result:= true;
End;
{^^^^^^^^^^^^^^^^^ INFIGHT ^^^^^^^^^^^^^^^^^^^^^^^^}
{Returns true If your character is in a fight And false is it isnt}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function InFight : Boolean;
Var
a, b : Integer;
Begin
result:= false;
wait(1);
If(findcolorspiral(a, b, 16728128, 215, 115, 330, 185))
Or(findcolorspiral(a, b, 192, 215, 115, 330, 185))Then
If(Poisoned= false)And(diseased= false)Then
result:= true;
End;
{^^^^^^^^^^^^^^^^^ FINDFIGHT ^^^^^^^^^^^^^^^^^^^^^^}
{Checks To see If you are in a fight, And If so you will run away}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure FindFight;
Var
leaveloop, placecheck, a, b, d, c : Integer;
Begin
d:= 0;
c:= 0;
If(Findcolorspiral(a, b, 65280, 215, 115, 330, 185))Then
wait(1000);
If(FindColorSpiral(a, b, 65280, 215, 115, 330, 185))Then
Begin
Repeat
If(c= 100)Then
Begin
wait(1);
c:= 0;
End;
c:= c + 1;
d:= d + 1;
If(diseased= true)Or(Poisoned= true)Then
exit;
Until(d= 4000)Or(InFight= true);
AttacksTotal:= AttacksTotal + 1;
TakeScreenShot('Fight Found', AttacksTotal);
SetRunon;
wait(random(10) + 50);
a:= 0;
Case Direction Of
'NE','' :
Repeat
a:= a + 3;
MouseC(random(5) + 680 - a, random(5) + 35 + a, 1);
wait(random(200) + 300);
Until(flagpresent=true);
'N' :
Repeat
a:= a + 3;
MouseC(random(5) + 640, random(5) + 20 + a, 1);
wait(random(200) + 300);
Until(flagpresent=true);
'NW' :
Repeat
a:= a + 3;
MouseC(random(5) + 620 + a, random(5) + 25 + a, 1);
wait(random(200) + 300);
Until(flagpresent=true);
'W' :
Repeat
a:= a + 3;
MouseC(random(5) + 600 + a, random(5) + 85, 1);
wait(random(200) + 300);
Until(flagpresent=true);
'SW' :
Repeat
a:= a + 3;
MouseC(random(5) + 620 + a, random(5) + 130 - a, 1);
wait(random(200) + 300);
Until(flagpresent=true);
'S' :
Repeat
a:= a + 3;
MouseC(random(5) + 645, random(5) + 145 - a, 1);
wait(random(200) + 300);
Until(flagpresent=true);
'SE' :
Repeat
a:= a + 3;
MouseC(random(5) + 688 - a, random(5) + 124 - a, 1);
wait(random(200) + 300);
Until(flagpresent=true);
'E' :
Repeat
a:= a + 3;
MouseC(random(5) + 703 - a, random(5) + 74, 1);
wait(random(200) + 300);
Until(flagpresent=true);
End;
wait(100);
MapFlagging;
wait(random(1000) + 1000);
If(RunBack=true)Then
Case Direction Of
'NE' :
Repeat
a:= a + 3;
MouseC(random(5) + 620 + a, random(5) + 130 - a, 1);
wait(random(200) + 300);
Until(FlagPresent);
'E' :
Repeat
a:= a + 3;
MouseC(random(5) + 600 + a, random(5) + 85, 1);
wait(random(200) + 300);
Until(FlagPresent);
'SE' :
Repeat
a:= a + 3;
MouseC(random(5) + 620 + a, random(5) + 25 + a, 1);
wait(random(200) + 300);
Until(FlagPresent);
'S' :
Repeat
a:= a + 3;
MouseC(random(5) + 640, random(5) + 20 + a, 1);
wait(random(200) + 300);
Until(FlagPresent);
'SW' :
Repeat
a:= a + 3;
MouseC(random(5) + 680 - a, random(5) + 35 + a, 1);
wait(random(200) + 300);
Until(FlagPresent);
'W' :
Repeat
a:= a + 3;
MouseC(random(5) + 703 - a, random(5) + 74, 1);
wait(random(200) + 300);
Until(FlagPresent);
'NW' :
Repeat
a:= a + 3;
MouseC(random(5) + 688 - a, random(5) + 124 - a, 1);
wait(random(200) + 300);
Until(FlagPresent);
'N' :
Repeat
a:= a + 3;
MouseC(random(5) + 645, random(5) + 145 - a, 1);
wait(random(200) + 300);
Until(FlagPresent);
End;
SetRunOff;
wait(random(200)+300);
OpenBag;
leaveloop:= 0;
fightfound:= true;
Repeat
placecheck:= getcolor(27, 36);
wait(100);
If(getcolor(27, 36) = placecheck)Then
Leaveloop:= 1;
Until(Leaveloop= 1);
End;
End;
{^^^^^^^^^^^^^^^^^ FINDTEXT ^^^^^^^^^^^^^^^^^^^^^^^}
{Checks For Yellow text, And If some are found it will look For a random
event To talk too}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure FindText;
Var
counter, a, b, a1, b1, c, d : Integer;
Begin
counter:= 0
If(findcolor(a, b, 65535, 10, 20, 515, 338))
Or(Istextat3(185, 36, 'The Bank', 100))Then
wait(200)
If(findcolor(a, b, 65535, 10, 20, 515, 338))
And(Istextat3(185, 36, 'The Bank', 100)= false)Then
Begin
Repeat
counter:= counter + 2 + random(1);
MoveMouseSmoothEx(a + counter, b + 15 + random(3), 1, 6, 15, 20, 20);
wait(1)
If(istextat3(9, 9, 'Talk', 100))Then
Begin
getmousepos(a1, b1);
MouseC(a1, b1, 2);
Repeat
wait(random(100) + 200);
Until(findcolor(a, b, 0, a1 - 30, b1 - 30, a1 + 30, b1 + 30));
If(IsTextIn3(S1, S2, S3, S4, c, d, 'Talk'))Then
Begin
MouseC(c + random(10), d + random(3), 1);
MapFlagging;
TalkToRand;
exit;
End;
End;
Until(counter>= 150);
End;
End;
{^^^^^^^^^^^^^^^^^ LOGGEDIN ^^^^^^^^^^^^^^^^^^^^^^^}
{Returns true If you are logged in And false If your not}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function LoggedIn:Boolean;
Begin
result:= true;
If(getcolor(249, 99)= 2071708)And
(getcolor(637,50)=4872025)And
(getcolor(547,383)=4212289)And
(getcolor(356,47)=6115406)And
(IsTextUp('Walk')=false)Then
result:= false;
End;
{^^^^^^^^^^^^^^^^^ CHECKINTRO ^^^^^^^^^^^^^^^^^^^^^}
{Checks For the intro screen And closes it If it finds it}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure CheckIntro;
Begin
If(Getcolor(595, 25) <> 8239317)Then
exit;
MouseBox(435, 307, 590, 360, 1);
repeat
wait(random(300) + 500);
until(getcolor(648, 83) = 16777215);
End;
{^^^^^^^^^^^^^^^^^ KILLSCRIPT ^^^^^^^^^^^^^^^^^^^^^}
{This Procedure will enter a continues loop, making the script which
is running stop}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure KillScript;
Begin
Repeat
Status('Script Killed, please restart');
wait(500);
Status('Script Killed, please restart.');
wait(500);
Status('Script Killed, please restart..');
wait(500);
Status('Script Killed, please restart…');
wait(500);
Until(false);
End;
{^^^^^^^^^^^^^^^^^ LOGIN ^^^^^^^^^^^^^^^^^^^^^^^}
{Logs your character in If your logged out}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure LogIn;
var
x : integer;
Begin
If(loggedin= false)Then
Begin
if(Istextat3(309, 241, 'Welcome',100))then
begin
MouseC(random(5) + 465, random(5) + 275, 1);
wait(random(500) + 1000);
end;
MouseC(random(20) + 370, random(3) + 251, 1);
wait(random(100) + 100);
sendkeyshuman(User);
wait(random(30)+120);
sendkeyshuman(chr(13));
wait(random(100) + 100);
sendkeyshuman(Pass);
MouseC(random(10) + 255, random(20) + 305, 1);
Repeat
wait(100);
x:= x + 1;
if(x = 100)Then
begin
writeln('Error logging in');
KillScript;
end;
Until(getcolor(602, 20)= 8041938);
End;
wait(random(300) + 500);
CheckIntro;
End;
{^^^^^^^^^^^^^^^^^ LOGOUTFOR ^^^^^^^^^^^^^^^^^^^^^^}
{This procedure will log you out for the amount of minits given}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure LogOutFor(Minutes : Integer);
Var
x : integer;
Begin
Logout;
Minutes:= Minutes + random(Minutes / 10);
writeln('Logging out for ' + inttostr(Minutes) + ' minuets');
Minutes:= (Minutes * 60) * 1000;
repeat
x:= x + random(300) + 1000;
wait(x);
until(x > Minutes);
writeln('Logging back in');
Login;
End;
{^^^^^^^^^^^^^^^^^ CHECKFORMODS ^^^^^^^^^^^^^^^^^^^}
{Looks For a mod Or admin And If it finds one, you will get logged out}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure CheckForMods;
Var
a, b, bmpModCrown, bmpStaffCrown : Integer;
Begin
bmpModcrown := BitmapFromstring(13, 11,
'979797000000000000000000000000000000979797000000000000' +
'000000000000000000979797E0E0E0979797000000000000000000' +
'E0E0E0A2A2A2979797000000000000000000E0E0E0979797E0E0E0' +
'979797000000000000000000E0E0E0A2A2A2979797000000000000' +
'000000E0E0E0979797E0E0E0A2A2A2979797000000E0E0E0A2A2A2' +
'A2A2A2A2A2A2979797000000E0E0E0A2A2A2979797E0E0E0A2A2A2' +
'979797000000E0E0E0A2A2A2A2A2A2A2A2A2979797000000E0E0E0' +
'A2A2A2979797000000E0E0E0A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2' +
'A2A2A2A2A2A2A2A2A2A2A2A2979797000000000000E0E0E0A2A2A2' +
'A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2979797' +
'000000000000000000E0E0E0sA2A2A2000000000000A2A2A2000000' +
'000000A2A2A2979797000000000000000000000000E0E0E0A2A2A2' +
'000000A2A2A2000000A2A2A2000000A2A2A2979797000000000000' +
'000000000000E0E0E0A2A2A2000000A2A2A2000000A2A2A2000000' +
'A2A2A2979797000000000000000000000000979797979797979797' +
'979797979797979797979797979797979797000000000000');
bmpStaffcrown := BitmapFromstring(13, 11,
'D69E21000000000000000000000000000000D69E21000000000000' +
'000000000000000000D69E21FFFF84D69E21000000000000000000' +
'FFFF84F7FF08D69E21000000000000000000FFFF84D69E21FFFF84' +
'D69E21000000000000000000FFFF84F7FF08D69E21000000000000' +
'000000FFFF84D69E21FFFF84F7FF08D69E21000000FFFF84F7FF08' +
'F7FF08F7FF08D69E21000000FFFF84F7FF08D69E21FFFF84F7FF08' +
'D69E21000000FFFF84F7FF08F7FF08F7FF08D69E21000000FFFF84' +
'F7FF08D69E21000000FFFF84F7FF08F7FF08F7FF08F7FF08F7FF08' +
'F7FF08F7FF08F7FF08F7FF08D69E21000000000000FFFF84F7FF08' +
'F7FF08F7FF08F7FF08F7FF08F7FF08F7FF08F7FF08F7FF08D69E21' +
'000000000000000000FFFF84F7FF08000000000000F7FF08000000' +
'000000F7FF08D69E21000000000000000000000000FFFF84F7FF08' +
'000000F7FF08000000F7FF08000000F7FF08D69E21000000000000' +
'000000000000FFFF84F7FF08000000F7FF08000000F7FF08000000' +
'F7FF08D69E21000000000000000000000000D69E21D69E21D69E21' +
'D69E21D69E21D69E21D69E21D69E21D69E21000000000000');
If (findbitmaptolerancein(bmpStaffcrown, a, b, 1, 345, 110, 430, 50))
Or(findbitmaptolerancein(bmpModcrown, a, b, 1, 345, 110, 430, 50))Then
Begin
TakeScreenShot('Staff Found', 1);
writeln('Staff / Mod Found, logged out And will log in later');
a:= 0;
LogOutFor(15);
End;
FreeBitmap(bmpStaffCrown);
FreeBitmap(bmpModCrown);
End;
{^^^^^^^^^^^^^^^^^ GETQUESTION ^^^^^^^^^^^^^^^^^^^^}
{Used with the box breaker}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function GetQuestion : Integer;
Begin
result:= 0 ;
If(istextat3(194, 260, 'Which shape is Y', 100))Then
result:= 1; // Color Yellow
If(istextat3(200, 260, 'Which shape is B', 100))Then
resul
i need help geting this to thive transfer text above into a include .txt file and down lode the file below. i need help geting this to thiv:redface:
# ScriptName = Squig 4.06
# Author = Squigglyo
# Description = Include Created by Squigglyo
# Version = 4.06
# Date = 26 / 09 / 05
# Comments = Created To handle random events
also does alot Of other things.
Check the manual out. Any questions
pm me, me user is Squigglyo at www.kaitnieks.com/scr
/Script Info}
{= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ]
Squig
Version 4.06
by Squigglyo
[= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ]
Huge thanks To Benland100 who has contributed his password saver And
FindTextArcSpiral among other things
Special Thanks:
poppa68 = > Huge help getting bitmaps And broken picks And axes For V2
Odie5583 = > Some Of my original procedures are based loosly on
his in Osi
Akumara = > My box solver is based loosly on his BoxBreaker2 just
reprogrammed
piv = > Contributed his gas finder
pups = > Contributed his maze detector
Stupid3ooo = > Allowed me To use his Frog Solver
Zup = > Helped update MouseC
KnightStreak = > Allowed me to use his Dr. Ford Solver
VG_Kobra = > Got me pictures of the Evil Bob random event
jiakhang = > Helped fix up the GasFinding procedures
Driger1592 = > Updated SetChat for me among other various things.
Goldec = > Looked thru Squig for me
People who suggested things And got them put into Squig.
JayJay = > Bank/Drop Item Color
SilentWolf = > Faster FindObject Procedure
Qwerty = > Easy Map Walking, Random Talker, Faster DropAll
Monkie = > Drop Item by Name
The Saint = > FindObjectIn
Abyssal = > WorkedFor, ClearDebug
Moparisthebest = > DepositAll2
Theino = > MapFlaggingH
Freddy1990 = > MouseR, MouseBox, DragFromTo
Smitty = > MapCompass('R');
Version 2 Testers:
BrokenSkateboard
Version 3 Testers:
Sdouble
Philodespotos = >Special thanks To Phil, he has helped test alot
Mysteryman
Milk
JayJay
Seifer225
Quilto33
Hemnet
Abyssal
Deadlydragon
Version 4 Testers/ProofReaders:
Idiota
MoparistheBest
Bebemycat2
Pwnd
xxKanexx
Abyssal = > Returning Tester, Yay for Abyssal
Driger1592
[= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = }
{Squig should only be downloaded on Kaitnieks' forum Or using Scar}
{No other site has my permission To have it on their site}
{But since i cannot patrol the internet, If you Do download
Squig from somewhere Else, by careful.}
{To learn how To use it, use the guide that is found
here http://www.kaitnieks.com/scr/showthread.php?p=31137#post31137}
{You are not allowed To edit And/Or change this in
any way. You are not allowed To take any piece(s)
from/out Of Squig, all parts must be left in And the
only way To use it's procedures is To include Squig
in your script(s). All procedures And/Or functions
in Squig were created by Squigglyo. All items in
this script are Copyrighted To Squigglyo. This
script may not be sold, traded, exchanged,
And / Or distributed unless you have been
given direct written consent To Do so by me And me only.}
{= = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Versions
Version 1.0, First Release
Version 1.1, Bank Opener
Version 2.0, Alot Of new procedures, including a Box opener
Also updated alot Of things including Global variables
And a Lamp Decider.
Version 2.1, Added a ScreenShot Taker, And all random events
will be screenshotted And placed in the script folder.
Version 2.2, Updated the Coding, Updated MouseC, Added ClickHuman
Added BuyItemColor And SellItemColor
Version 2.2.1, Updated some things
Version 2.2.2, Updated the Find Text random event finder Procedure
And the login Procedure.
Version 2.3, Updated all text finding procedures And the MapFlagging Procedure
Version 2.4, Updated the Mapflagging Procedure again
Version 2.4.1, Updated all procedures that look For text.
Version 2.4.2, Updated the random event talked a little bit.
Version 3.0, Fixed the random event talker, added all the other random events
i missed, updated the sendkeyshuman2 Procedure, added the GetStat
Procedure, added the randomtalk Procedure, added a disease,
poison And fight checker, updated the fightfound Procedure,
slotfilled Function added, itemcount Function added, fullbag
Function added, dropitemcolor Procedure added, bankitemcolor
Procedure added, Death checker, Axefound added, pickfound added,
findgas added, findnets added, mapcolor Function added, mapwalk
Procedure added, dropitemname added, emote Procedure updated.
FindObjectIn Added, DragItem Added And alot Of other things
updated.
Version 3.1, Fixed a little bug in FindObject where it didnt wait long enough
To check the text. Fixed a little bug in the FindFight Procedure,
fixed a bug where the dropitem Procedure would drink beer,
And, fixed a bug in the FullBag Function.
Version 3.2, Added documentation, Updated some stuff, Added Dist,
FlagPresent Added, GetHp Added, DropItem2 Added, MapFlaggingR
Added, FlagPresent Added, MapCompass Added, ClickText Added
Version 3.3, Updated procedures that use Istextat2 To IsTextAtEx,
Added MapFlaggingH, Added MapFlaggingHR, Added WorkedFor,
Added DepositAll2, Added FindGasArea, Added ClearDebug,
Updated the RandomTalk Procedure To include 2 things about
Farming.
Version 4.0, IsTextUp Updated, MouseC Updated, WorkedFor Fixed, OpenBag Updated,
OpenCombat Updated, OpenQuests Updated, OpenStats Updated,
OpenEquip Updated, OpenPrayer Updated, OpenMagic Updated,
OpenFriends Updated, OpenIgnore Updated, Logout Updated,
OpenOptions Updated, OpenControls Updated, OpenMusic Updated,
SetChat Updated, LogIn Updated, IsTextAt3 Added, IsTextIn3 Added,
KillScript Added, LogOutFor Added, FindDtmIn Added, IDHerbs Added,
UseItemWith Added, Enchant Added, LowAlch Added, HighAlch Added,
FletchAll Added, ThieveNPC Added, WaitR Added, FindColorM Added,
Smelt Added, CannonBalls Added, UseSpecial Added, Smith Added,
FindFish Added, FindTree Added, EntFound Altered, FindRange Added,
IsTextInString Added, RandomLogout Added, DropAllRow Added,
DropAllCol Added, DepositAllRow Added, DepositAllCol, MineRock Added,
OpenChest Added, FindTextArcSpiral Added, PassSaver Added, Enter Added,
CheckSkill Added, BankTop Added, BankBottom Added, Updated all bitmaps
LampPresent Added, BoxPresent Added, FindBob Added, FindForester Added,
SolveFord Added, FindQuiz Added, SolveFrog Added, FindCerters Added, IsBank Added
Version 4.01, Updated the MineRock procedure to handle the new rocks out at the time.
Version 4.02, Fixed a small big in DropItem
Version 4.03, Small update in GetStat, and bug fix in IsBank
Version 4.04, Fixed a small problem with the MineRock and FindObjectIn procedures
Added 'R' to Mapcompass
Version 4.05, Fixed FletchAll
Version 4.06, Updated FindObject and FindObjectIn, fixed all procedures that used Dtms
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = }
Var
//Variables used for character sets and times
chrChatChars, chrCharsNormal, GSquigTime, gSquigTime2 : Integer;
//Variables left unchanged For functionality For older scripts
YellowTextTotal, AttacksTotal, TotalBoxes, FordTotal, TotalFrogs : Integer;
TotalLamps, TotalEnts, AxeTotal, PickTotal, PlantTotal, GasTotal : Integer;
BankID : Integer;
User, Pass, Direction, LampSkill : String;
randomtalked, fightfound, tradeb, screenshots, checkford, CheckForester : Boolean;
checktext, checkfights, checkboxes, checklamps, checkmods, CheckCerters : Boolean;
checkplant, checkmime, checkmaze, runback, checkquiz, CheckFrog : Boolean;
CheckBob : Boolean;
//Variables For the pass saver
AccessCode, CName, CPass: String;
User2, Pass2: Array Of String;
UID: Integer;
V: TVariantArray;
Main: TForm;
Label1: TLabel;
Names: TComboBox;
Button1, Button2, ButtonDelete: TButton;
Const
{S1, S2, S3 And S4 are the size Of the actual game, Starting at the top right
And finishing in the bottom left before they reach the inventory Or chat}
S1 = 5;
S2 = 5;
S3 = 515;
S4 = 340;
{M1, M2, M3 And M4 are the minimap}
M1 = 565;
M2 = 5;
M3 = 725;
M4 = 160;
{I1, I2, I3 And I4 are the inventory}
I1 = 560;
I2 = 210;
I3 = 740;
I4 = 460;
{C1, C2, C3 And C4 are the chat log}
c1 = 1;
c2 = 340;
c3 = 495;
c4 = 455;
{GameCenterA And GameCenterB are the middle Of the game}
GameCenterA = 257;
GameCenterB = 168;
{MapCenterA And MapCenterB are the middle Of the minimap}
MapCenterA = 647;
MapCenterB = 83;
gSquigMessage = 'Squig 4.06 - Created by Squigglyo';
{^^^^^^^^^^^^^^^^^ CLEARDEBUG ^^^^^^^^^^^^^^^^^^}
{This will clear the area where text appears in scar}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure ClearDebug;
Var
i : Integer;
Begin
i:= 0;
Repeat
writeln('');
i:= i + 1;
Until(i= 15);
End;
{^^^^^^^^^^^^^^^^^ FLAGPRESENT ^^^^^^^^^^^^^^^^}
{Returns true If the flag is in the minimap And false If it isnt}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function FlagPresent : Boolean;
Var
a, b, runescapeflag, runescapeflag2 : Integer;
Begin
result:= false;
runescapeflag := BitmapFromstring(7, 7,
'000000000000000000000000000000000000FF0000000000000000' +
'000000000000000000FF0000FF0000000000000000000000000000' +
'FF0000FF0000FF0000000000000000000000FF0000FF0000FF0000' +
'FF0000000000000000FF0000FF0000FF0000FF0000FF0000000000' +
'FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000' +
'FF0000FF0000FF0000FF0000');
runescapeflag2 := BitmapFromstring(2, 4,
'C656045D3311C656045D3311C656045D3311C656045D3311');
If(findbitmapin(runescapeflag, a, b, 555, 5, 735, 160))
Or(findbitmapin(runescapeflag2, a, b, 555, 5, 735, 160))Then
Begin
wait(50);
If(findbitmapin(runescapeflag, a, b, 555, 5, 735, 160))
Or(findbitmapin(runescapeflag2, a, b, 555, 5, 735, 160))Then
result:=true;
End;
FreeBitmap(runescapeflag);
FreeBitmap(runescapeflag2);
End;
{^^^^^^^^^^^^^^^^^ MAPFLAGGING ^^^^^^^^^^^^^^^^^}
{Waits Until the Runescape Flag is not in the minimap}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure MapFlagging;
Var
color1, color2, color3, x1 : Integer;
Begin
x1:= 0;
If(flagpresent=false)Then
exit;
Repeat
wait(100);
x1:= x1 + 1;
If(FlagPresent=False)Then
wait(1000);
If(FlagPresent=False)Then
Begin
color1:= getcolor(70, 185);
color2:= getcolor(436, 68);
color3:= getcolor(45, 52);
wait(500);
If(getcolor(45, 52) = color3)Or(getcolor(70, 185) = color1)
Or(getcolor(436, 68) = color2)Then
If(flagPresent=False)Then
break;
End;
Until(x1= 150);
End;
{^^^^^^^^^^^^^^^^^ MAPCOMPASS ^^^^^^^^^^^^^^^^^}
{Moves the minimap compass To the desired Direction (N, E, S, W)}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure MapCompass(Compass : String);
Var
a : Extended;
Begin
Compass:= Uppercase(Compass);
If(Compass = 'R')Or(Compass = 'RANDOM')Then
begin
SendArrowSilentWait(3, random(5500) + 500);
exit;
End;
End;
begin
End.
Function IsTextAt3(x, y : Integer; S : String; Tolerance : Integer) : Boolean;
Begin
result:= IsTextAtEx(x, y, S, Tolerance, ChrCharsNormal, True, False, 0, 1, -1);
If(result=False)Then
result:= IsTextAtEx(x - 2, y - 2, S, Tolerance, ChrCharsNormal, True, False, 0, 1, -1);
If(Result=false)Then
result:= IsTextAtEx(x, y - 2, S, Tolerance, ChrCharsNormal, True, False, 0, 1, -1);
If(Result=False)Then
result:= IsTextAtEx(x - 2, y, S, Tolerance, ChrCharsNormal, True, False, 0, 1, -1);
End;
{^^^^^^^^^^^^^^^^^ CHECKCHATMSG ^^^^^^^^^^^^^^^}
{Checks the last sentence in the chat box and returns true if it
matchets the one its looking for}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function CheckChatMsg(Text: String) : Boolean;
Begin
Result:= IsTextAtEx(20, 415, Text, 40, ChrChatChars, False, True, 0, 1, 0);
End;
{^^^^^^^^^^^^^^^^^ ISTEXTIN3 ^^^^^^^^^^^^^^^^^^}
{Works just like IsTextInArea but is more acurate,
and uses IsTextinAreaEx}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function IsTextIn3(x1, y1, x2, y2 : Integer; Var x, y : integer; S : String) : Boolean;
Begin
result:= IsTextInAreaEx(x1 , y1, x2, y2, x, y, S, 100, ChrCharsNormal, True, True, 0, 1, -1);
End;
{^^^^^^^^^^^^^^^^^ ISTEXTUP ^^^^^^^^^^^^^^^^^^^}
{Returns true If the text is found at 9, 9}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function IsTextUp(text : String) : Boolean;
Begin
If(IsTextAt3(9, 9, text, 100))Then
result:= true
Else
result:= false;
End;
{^^^^^^^^^^^^^^^^^ CLICKHUMAN ^^^^^^^^^^^^^^^^^}
{Clicks the mouse like a human would}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure ClickHuman(x, y : Integer; left : Boolean);
Begin
holdmouse(x, y, left);
wait(random(20) + 15);
releasemouse(x, y, left);
End;
{^^^^^^^^^^^^^^^^^^ DIST ^^^^^^^^^^^^^^^^^}
{Returns the amount Of pixels between a1, b1 And a2, b2}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function Dist(a1, b1, a2, b2 : Integer) : Integer;
Var
aa, bb : Extended;
Begin
If(a1>a2)Then
aa:= (a1 - a2) * (a1 - a2)
Else
aa:= (a2 - a1) * (a2 - a1);
If(b1>b2)Then
bb:= (b1 - b2) * (b1 - b2)
Else
bb:= (b2 - b1) * (b2 - b1);
result:= trunc(Sqrt(aa + bb)) + 1;
End;
{^^^^^^^^^^^^^^^^^ MOUSEC ^^^^^^^^^^^^^^^^^}
{Moves the mouse To the location given by x And y
Left clicks If click is 1, right clicks If its 2, 0 For no click.}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure MouseC(x, y, click : Integer);
// New MouseC with the help of Zup
Var
a, b : Integer;
step : Extended;
Begin
step:= 5;
GetMousePos(a, b);
Repeat
If(Dist(a, b, x, y)<100)Then
Begin
If(not(Dist(a, b, x, y)= 1))Then
step:= step - (10 / Dist(a, b, x, y));
End;
If(step<1)Then
step:= 1;
a:= a + Round((x - a) / step);
b:= b + Round((y - b) / step);
MoveMouseSmoothEx(a, b, 1, 6, 15, 20, 20);
wait(9 + random(4));
Until(Dist(a, b, x, y)= 1);
wait(random(19) + 7);
Case click Of
1 : Clickhuman(a, b, true);
2 : Clickhuman(a, b, false);
End;
End;
{^^^^^^^^^^^^^^^^^ MOUSER ^^^^^^^^^^^^^^^^^}
{Moves the mouse To the location given by x + random(x2)
And y + random(y2). Left clicks If click is 1,
right clicks If its 2, 0 For no click.}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure MouseR(x, y, xx, yy, click : Integer);
Begin
MouseC(x + random(xx), y + random(yy), click);
End;
{^^^^^^^^^^^^^^^^^ MOUSEBOX ^^^^^^^^^^^^^^^}
{Moves the mouse inside the location given by x1, y1, x2, y2
Left clicks If click is 1, right clicks If its 2, 0 For no click.}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure MouseBox(x1, y1, x2, y2, click : Integer);
Var
xx, yy : Integer;
Begin
if(x1 < x2)then
xx:= x1 + random(x2 - x1)
else
xx:= x1 - random(x1 - x2);
if(y1 < y2)then
yy:= y1 + random(y2 - y1)
else
yy:= y1 - random(y1 - y2);
MouseC(xx, yy, click);
End;
{^^^^^^^^^^^^^^^^^ CLICKTEXT ^^^^^^^^^^^^^^^^^^}
{Looks For text inside the given area And If found, clicks on it}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function ClickText(text : String; x1, y1, x2, y2 : Integer; left : Boolean) : Boolean;
Var
a, b : Integer;
Begin
result:= false;
If(IsTextIn3(x1, y1, x2, y2, a, b, Text))Then
Begin
If(left= true)Then
MouseC(a + random(3), b + random(2) + 4, 1)
Else
MouseC(a + random(3), b + random(2) + 4, 2);
result:= true;
End;
End;
{^^^^^^^^^^^^^^^^^ TIMERUNNINGMILI ^^^^^^^^^^^^^^^^^}
{Returns the number Of miliseconds the script has been running}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function TimeRunningMili : Integer;
Begin
result:= GetSystemtime - GSquigTime;
End;
{^^^^^^^^^^^^^^^^^ TIMERUNNINGSEC ^^^^^^^^^^^^^^^^^}
{Returns the number Of seconds the script has been running}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function TimeRunningSec : Integer;
Begin
result:= (GetSystemtime - GSquigTime) / 1000;
End;
{^^^^^^^^^^^^^^^^^ TIMERUNNINGMIN ^^^^^^^^^^^^^^^^^}
{Returns the number Of minits the script has been running}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function TimeRunningMin : Integer;
Begin
result:= ((GetSystemtime - GSquigTime) / 1000) / 60;
End;
{^^^^^^^^^^^^^^^^^ TIMERUNNINGHOUR ^^^^^^^^^^^^^^^^^}
{Returns the number Of hours the script has been running}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function TimeRunningHour : Integer;
Begin
result:= (((GetSystemTime - GSquigTime) / 1000) / 60) / 60;
End;
{^^^^^^^^^^^^^^^^^ WORKEDFOR ^^^^^^^^^^^^^^^^^^^}
{Returns the amount Of time the script has been running For}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function WorkedFor : String;
Var
int1, int2, int3 : Integer;
str1, str2, str3 : String;
Begin
int1:= TimeRunningHour;
int2:= TimeRunningMin;
int3:= TimeRunningSec;
While(int2>59)Do
int2:= int2 - 60;
While(int3>59)Do
int3:= int3 - 60;
If(int1<10)Then
str1:= '0' + inttostr(int1 )
Else
str1:= inttostr(int1);
If(int2<10)Then
str2:= '0' + inttostr(int2)
Else
str2:= inttostr(int2);
If(int3<10)Then
str3:= '0' + inttostr(int3)
Else
str3:= inttostr(int3);
result:= ('Worked For: ' + str1 + ':' + str2 + ':' + str3);
End;
{^^^^^^^^^^^^^^^^^ SELLITEMCOLOR ^^^^^^^^^^^^^^^^^^^}
{Sells an item that has the color in it defined by ItemColor,
Sells the amount defined by Ammount (1, 5, 10 Or 0 For all),
And the item name needs To match the variable defined as Name}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure SellItemColor(ItemColor, Ammount : Integer; name : String);
Var
a, b, x1, y1, x2, y2, txt1, col : Integer;
Begin
x1:= 570;
y1:= 210;
x2:= 610;
y2:= 245;
col:= 1;
If(findcolor(a, b, ItemColor, 555, 200, 735, 465))Then
Repeat
txt1:= 40;
If(findcolor(a, b, ItemColor, x1, y1, x2, y2))Then
Begin
MouseC(a + random(3), b + random(3), 0);
While(IsTextAt3(9, 9, 'Value', 100))Do
Begin
txt1:= txt1 + 1;
If(istextat3(txt1, 7, name, 100))
Or(txt1= 130)Then
break;
End;
If(txt1<>130)Then
Begin
MouseC(a, b, 2);
wait(random(300) + 600);
If(ammount= 1)Then
ClickText('1', I1, I2, I3, I4, true);
If(ammount= 5)Then
ClickText('5', I1, I2, I3, I4, true);
If(ammount<>1)And(ammount<>5)Then
ClickText('10', I1, I2, I3, I4, true);
Exit;
End;
End;
If(col= 1)Or(col= 3)Or(col= 7)Or(col= 4)Or(col= 5)Then
Begin
y1:= y1 + 35;
y2:= y2 + 35;
End
Else If(col= 6)Then
Begin
y1:= y1 + 45;
y2:= y2 + 45;
End
Else If(col= 2)Then
Begin
y1:= y1 + 40;
y2:= y2 + 40;
End;
col:= col + 1;
wait(random(100) + 50);
If(col= 8)Then
Begin
x1:= x1 + 40;
x2:= x2 + 40;
y1:= 210;
y2:= 245;
col:= 1;
End;
wait(random(100) + 100);
Until(x1>720);
End;
{^^^^^^^^^^^^^^^^^ BUYITEMCOLOR ^^^^^^^^^^^^^^^^^^^^}
{Buys an item that has the color in it defined by ItemColor,
Buys the amount defined by Ammount (1, 5, 10 Or 0 For all),
And the item name needs To match the variable defined as Name}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure BuyItemColor(ItemColor, ammount : Integer; name : String);
Var
a, b, x1, y1, x2, y2, txt1 : Integer;
Begin
x1:= 75;
y1:= 60;
x2:= 110;
y2:= 100;
If(findcolor(a, b, ItemColor, 75, 60, 475, 290))Then
Repeat
txt1:= 40
If(findcolor(a, b, ItemColor, x1, y1, x2, y2))Then
Begin
MouseC(a + random(3), b + random(3), 0);
While(istextat3(9, 9, 'Value', 100))Do
Begin
txt1:= txt1 + 1;
If(istextat3(txt1, 9, name, 100))
Or(txt1= 130)Then
break;
End;
If(txt1<>130)Then
Begin
MouseC(a, b, 2);
wait(random(300) + 600);
If(ammount= 1)Then
ClickText('1', I1, I2, I3, I4, true);
If(ammount= 5)Then
ClickText('5', I1, I2, I3, I4, true);
If(ammount<>1)And(ammount<>5)Then
ClickText('10', I1, I2, I3, I4, true);
Exit;
End;
End;
x1:= x1 + 50;
x2:= x2 + 50;
wait(random(100) + 50);
If(x1>445)Then
Begin
x1:= 75;
x2:= 110;
y1:= y1 + 55;
y2:= y2 + 55;
End;
Until(y1>290)
End;
{^^^^^^^^^^^^^^^^^ LAMPPRESENT ^^^^^^^^^^^^^^^^^}
{Returns true if you have a lamp in your bag}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
function LampPresent : Boolean;
Var
bmpTheLamp, a, b : Integer;
begin
bmpTheLamp := BitmapFromstring(29, 8,
'000000000000000000000000000000000000000000000000000000' +
'000000000000000000000000000000939212A7A516000000000000' +
'000000000000000000000000000000000000000000000000000000' +
'000000000000000000000000000000D4D21C000000000000000000' +
'000000000000000000000000000000000000B9B716C0BF19B3B116' +
'A7A5169D9C12939212000000000000000000000000000000000000' +
'000000000000000000000000000000000000D1CF19C0BF19C0BF19' +
'C0BF19C0BF19000000000000000000000000000000BBB916B3B116' +
'B0AE16ACAB169D9C129392128D8B1276750E000000000000000000' +
'000000000000000000000000000000000000000000D1CF19C0BF19' +
'B0AE16B6B416BEBC19C6C519C6C519D1CF19CCCA19C9C719C6C519' +
'C6C519C0BF19BBB916B6B416ACAB16A4A2129A981293921286840E' +
'7A790E6B6A095D5C09A7A516000000000000000000000000000000' +
'000000000000000000000000000000CCCA19CCCA19CECC19C6C519' +
'C3C219C0BF19BEBC19BBB916B9B716B6B416B3B116A9A816A4A212' +
'9D9C12979612908F1282810E9A9812B0AE1689880E000000000000' +
'000000000000000000000000000000000000000000000000D4D21C' +
'CECC19CCCA19C0BF19BEBC19BBB916B6B416B3B116B0AE16A9A816' +
'A4A212A19F129A981289880E86840E8D8B129392129D9C12B9B716' +
'666509000000000000000000000000000000000000000000000000' +
'000000000000000000CCCA19CCCA19BBB916B9B716B6B416B3B116' +
'B0AE16A9A816A4A2129D9C1297961282810E7A790E86840E000000' +
'000000000000C3C219A9A816000000000000000000000000000000' +
'000000000000000000000000000000CCCA19CCCA19C0BF19B9B716' +
'B3B116B0AE16ACAB16A7A516A19F129A98128D8B127A790E76750E' +
'000000000000C3C219B6B416A7A516000000000000');
If(FindBitmaptolerancein(bmpTheLamp, a, b, 560, 215, 730, 455, 20))Or
FindBitmaptolerancein(bmpTheLamp, a, b, 95, 65, 440, 255, 20)Then
Result:= true;
FreeBitmap(bmpTheLamp);
end;
{^^^^^^^^^^^^^^^^^ TAKESCREENSHOT ^^^^^^^^^^^^^^^^^^}
{Takes a screenshot Of the runescape client And saves it in the script
folder, the name Of the file is defined in the reason variable And
the number variable}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeScreenShot(reason:String; number:Integer);
Begin
If(screenshots= true)Then
Begin
SaveScreenshot(apppath + 'scripts\' + reason + inttostr(number) + '.bmp');
writeln('Screenshot taken: ' + reason + ' #' + inttostr(number));
End;
End;
{^^^^^^^^^^^^^^^^^ OPENEQUIP ^^^^^^^^^^^^^^^^^^^^^^^}
{Opens the Equipment tab}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure OpenEquip;
Begin
If(getcolor(680, 173) = 5531511)Then
MouseC(random(10) + 675, random(10) + 175, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFSWORD ^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your weapon}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffSword;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 580, random(10) + 300, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFHELM ^^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your helmet}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffHelm;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 640, random(10) + 215, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFCAPE ^^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your cape}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffCape;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 595, random(10) + 255, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFNECKLACE ^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your necklace}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffNecklace;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 640, random(10) + 255, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFARROWS ^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your arrows}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffArrows;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 680, random(10) + 255, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFBODY ^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your body armor}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffBody;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 650, random(10) + 300, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFSHIELD ^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your shield}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffShield;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 695, random(10) + 300, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFLEGS ^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your leg armor}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffLegs;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 635, random(10) + 335, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFGLOVES ^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your gloves}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffGloves;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 580, random(10) + 375, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFBOOTS ^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your boots}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffBoots;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 640, random(10) + 375, 1);
End;
{^^^^^^^^^^^^^^^^^ TAKEOFFRING ^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And unequips your ring}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TakeOffRing;
Begin
OpenEquip;
wait(random(300) + 300);
MouseC(random(10) + 695, random(10) + 375, 1);
End;
{^^^^^^^^^^^^^^^^^ WEARINGRING ^^^^^^^^^^^^^^^^^^^^}
{Opens the equipment tab If needed And returns true If your wearing
a ring And false If your not}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function WearingRing : Boolean;
Begin
OpenEquip;
wait(random(300) + 300);
If(getcolor(705, 384)<>2304814)Then
Result:= true
Else
result:= false;
End;
{^^^^^^^^^^^^^^^^^ SENDKEYSHUMAN ^^^^^^^^^^^^^^^^^^}
{Types in whatever is in the variable text at the speed a human does}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure SendKeysHuman(text:String);
Var
a1 : Integer;
Begin
a1:= 1;
Repeat
wait(random(220) + 15);
sendkeys(copy(text, a1, 1));
a1:= a1 + 1;
Until a1 > length(text);
End;
{^^^^^^^^^^^^^^^^^ SENDKEYSHUMAN2 ^^^^^^^^^^^^^^^^^}
{Types whatever is in the vaariable text at the speed a human does
And also has the chance To make human-like mistakes}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure SendKeysHuman2(text:String);
Var
a1, a2, a3 : Integer;
char1, char2 : String;
mistake : Boolean;
Begin
a1:= 1;
a3:= random(4) + 1
mistake:= false;
Repeat
a2:= random(50);
If(a2<>5)Or(mistake= true)Then
Begin
wait(random(220) + 15);
sendkeys(copy(text, a1, 1));
End
Else
Begin
mistake:= true;
char1:= (copy(text, a1, 1));
char1:= Lowercase(char1);
char2:= char1;
a2:= random(2);
If(a2= 0)Then
Case char1 Of
'`' : char2:= '`';
'1' : char2:= '`';
'2' : char2:= '1';
'3' : char2:= '2';
'4' : char2:= '3';
'5' : char2:= '4';
'6' : char2:= '5';
'7' : char2:= '6';
'8' : char2:= '7';
'9' : char2:= '8';
'0' : char2:= '9';
'-' : char2:= '0';
'=' : char2:= '-';
'~' : char2:= '~';
'!' : char2:= '~';
'@' : char2:= '!';
'#' : char2:= '@';
'$' : char2:= '#';
'%' : char2:= '$';
'^' : char2:= '%';
'&' : char2:= '^';
'*' : char2:= '&';
'(' : char2:= '*';
')' : char2:= '(';
'_' : char2:= ')';
'+' : char2:= '_';
'q' : char2:= 'q';
'w' : char2:= 'q';
'e' : char2:= 'w';
'r' : char2:= 'e';
't' : char2:= 'r';
'y' : char2:= 't';
'u' : char2:= 'y';
'i' : char2:= 'u';
'o' : char2:= 'i';
'p' : char2:= 'o';
'[' : char2:= 'p';
'{' : char2:= 'P';
']' : char2:= '[';
'}' : char2:= '{';
'\' : char2:= ']';
'|' : char2:= '}';
'a' : char2:= 'a';
's' : char2:= 'a';
'd' : char2:= 's';
'f' : char2:= 'd';
'g' : char2:= 'f';
'h' : char2:= 'g';
'j' : char2:= 'h';
'k' : char2:= 'j';
'l' : char2:= 'k';
';' : char2:= 'l';
':' : char2:= 'L';
chr(39) : char2:= ';';
'"' : char2:= ':';
'z' : char2:= 'z';
'x' : char2:= 'z';
'c' : char2:= 'x';
'v' : char2:= 'c';
'b' : char2:= 'v';
'n' : char2:= 'b';
'm' : char2:= 'n';
',' : char2:= 'm';
'<' : char2:= 'M';
'.' : char2:= ',';
'>' : char2:= '<';
' / ' : char2:= '.';
'?' : char2:= '>';
End;
If(a2= 1)Then
Case char1 Of
'`' : char2:= '1';
'1' : char2:= '2';
'2' : char2:= '3';
'3' : char2:= '4';
'4' : char2:= '5';
'5' : char2:= '6';
'6' : char2:= '7';
'7' : char2:= '8';
'8' : char2:= '9';
'9' : char2:= '0';
'0' : char2:= '-';
'-' : char2:= '=';
'=' : char2:= '=';
'~' : char2:= '!';
'!' : char2:= '@';
'@' : char2:= '#';
'#' : char2:= '$';
'$' : char2:= '%';
'%' : char2:= '^';
'^' : char2:= '&';
'&' : char2:= '*';
'*' : char2:= '(';
'(' : char2:= ')';
')' : char2:= '_';
'_' : char2:= '+';
'+' : char2:= '+';
'q' : char2:= 'w';
'w' : char2:= 'e';
'e' : char2:= 'r';
'r' : char2:= 't';
't' : char2:= 'y';
'y' : char2:= 'u';
'u' : char2:= 'i';
'i' : char2:= 'o';
'o' : char2:= 'p';
'p' : char2:= '[';
'[' : char2:= ']';
'{' : char2:= '}';
']' : char2:= '\';
'}' : char2:= '|';
'\' : char2:= '\';
'|' : char2:= '|';
'a' : char2:= 's';
's' : char2:= 'd';
'd' : char2:= 'f';
'f' : char2:= 'g';
'g' : char2:= 'h';
'h' : char2:= 'j';
'j' : char2:= 'k';
'k' : char2:= 'l';
'l' : char2:= ';';
';' : char2:= chr(39);
':' : char2:= '"';
chr(39) : char2:= chr(39);
'"' : char2:= '"';
'z' : char2:= 'x';
'x' : char2:= 'c';
'c' : char2:= 'v';
'v' : char2:= 'b';
'b' : char2:= 'n';
'n' : char2:= 'm';
'm' : char2:= ',';
', ' : char2:= '.';
'<' : char2:= '>';
'.' : char2:= '/';
'>' : char2:= '?';
'/' : char2:= '/';
'?' : char2:= '?';
End;
sendkeys(char2);
End;
a1:= a1 + 1;
Until a1 > length(text);
End;
{^^^^^^^^^^^^^^^^^ RANDOM1 ^^^^^^^^^^^^^^^^^^^^^^^^}
{Used in the random talking Procedure}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function Random1 : String;
Var
a : Integer;
Begin
a:= random(4) + 1;
Case a Of
1 : result:= 'man,';
2 : result:= 'jeez,';
3 : result:= 'woo,';
4 : result:= 'cmon,';
End;
End;
{^^^^^^^^^^^^^^^^^ RANDOMARMOR ^^^^^^^^^^^^^^^^^^^^}
{Used in the random talking Procedure, returns a random piece Of
armor Or a weapon}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function RandomArmor : String;
Var
a : Integer;
Begin
a:= random(77) + 1;
Case a Of
1 : result:= 'bronze armor';
2 : result:= 'iron armor';
3 : result:= 'steel armor';
4 : result:= 'mithril armor';
5 : result:= 'adamite armor';
6 : result:= 'adam armor';
7 : result:= 'adamantite armor';
8 : result:= 'rune armor';
9 : result:= 'dragon armor';
10 : result:= 'drag armor';
11 : result:= 'barrow armor';
12 : result:= 'green dragon';
13 : result:= 'green drag';
14 : result:= 'green ranger';
15 : result:= 'blue dragon';
16 : result:= 'blue drag';
17 : result:= 'blue ranger';
18 : result:= 'red dragon';
19 : result:= 'red drag';
20 : result:= 'red ranger';
21 : result:= 'black dragon';
22 : result:= 'black drag';
23 : result:= 'black ranger';
24 : result:= 'splitbark armor';
25 : result:= 'trimmed armor';
26 : result:= 'god armor';
27 : result:= 'guthix armor';
28 : result:= 'sara armor';
29 : result:= 'saradomin armor';
30 : result:= 'zammy armor';
31 : result:= 'zamarok armor';
32 : result:= 'black trimmed armor';
33 : result:= 'adam trimmed armor';
34 : result:= 'rune trimmed armor';
35 : result:= 'gold trimmed armor';
36 : result:= 'mystic robes';
37 : result:= 'ahrim armor';
38 : result:= 'dharok armor';
39 : result:= 'guthan armor';
40 : result:= 'karil armor';
41 : result:= 'torag armor';
42 : result:= 'verac armor';
43 : result:= 'bronze weapons';
44 : result:= 'iron weapons';
45 : result:= 'steel weapons';
46 : result:= 'mithril weapons';
47 : result:= 'mith weapons';
48 : result:= 'adam weapons';
49 : result:= 'adamantite weapons';
50 : result:= 'rune weapons';
51 : result:= 'dragon weapons';
52 : result:= 'crystal shields';
53 : result:= 'crystal bows';
54 : result:= 'longbows';
55 : result:= 'shortbows';
56 : result:= 'oak longbows';
57 : result:= 'oak shortbows';
58 : result:= 'willow shortbows';
59 : result:= 'willow longbows';
60 : result:= 'maple longbows';
61 : result:= 'maple shortbows';
62 : result:= 'yew longbows';
63 : result:= 'yew shortbows';
64 : result:= 'magic longbows';
65 : result:= 'magic shortbows';
66 : result:= 'staffs';
67 : result:= 'battlestaffs';
68 : result:= 'mystic staffs';
69 : result:= 'cannons';
70 : result:= 'ahrims staff';
71 : result:= 'dharoks greataxe';
72 : result:= 'guthans warspear';
73 : result:= 'crossbows';
74 : result:= 'karils crossbows';
75 : result:= 'torags hammers';
76 : result:= 'veracs flail';
77 : result:= 'gilded armor';
End;
End;
{^^^^^^^^^^^^^^^^^ RANDOMRARE ^^^^^^^^^^^^^^^^^^^^^}
{Used in the random talking Procedure, returns a random rare item}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function RandomRare : String;
Var
a : Integer;
Begin
a:= random(56) + 1;
Case a Of
1 : result:= 'pumpkins';
2 : result:= 'christmas crackers';
3 : result:= 'crackers';
4 : result:= 'phats';
5 : result:= 'party hats';
6 : result:= 'red phats';
7 : result:= 'red partyhats';
8 : result:= 'yellow phats';
9 : result:= 'yellow partyhats';
10 : result:= 'white phats';
11 : result:= 'white partyhats';
12 : result:= 'green phats';
13 : result:= 'green partyhats';
14 : result:= 'blue phats';
15 : result:= 'blue partyhats';
16 : result:= 'purple partyhats';
17 : result:= 'purple phats';
18 : result:= 'easter eggs';
19 : result:= 'red masks';
20 : result:= 'blue masks';
21 : result:= 'green masks';
22 : result:= 'santa hats';
23 : result:= 'santas';
24 : result:= 'dragon spears';
25 : result:= 'dragon meduim helmets';
26 : result:= 'dragon meds';
27 : result:= 'dragon helms';
28 : result:= 'dragon shields';
29 : result:= 'dragon squares';
30 : result:= 'dragon chains';
31 : result:= 'dragon chainbodys';
32 : result:= 'dragon legs';
33 : result:= 'dragon platelegs';
34 : result:= 'white berets';
35 : result:= 'blue berets';
36 : result:= 'black berets';
37 : result:= 'highwayman masks';
38 : result:= 'red headbands';
39 : result:= 'black headbands';
40 : result:= 'brown headbands';
41 : result:= 'dragon items';
42 : result:= 'masks';
43 : result:= 'berets';
44 : result:= 'headbands';
45 : result:= 'cavaliers';
46 : result:= 'brown cavaliers';
47 : result:= 'black cavaliers';
48 : result:= 'tan cavaliers';
49 : result:= 'pirate hats';
50 : result:= 'robins';
51 : result:= 'robin hood hats';
52 : result:= 'mage boots';
53 : result:= 'ranger boots';
54 : result:= 'disk Of returnings';
55 : result:= 'disks';
56 : result:= 'half wines';
57 : result:= 'magic seeds';
End;
End;
{^^^^^^^^^^^^^^^^^ RANDOMSKILL ^^^^^^^^^^^^^^^^^^^^}
{Used in the random talking Procedure, returns a random skill
along with some other words that work create a sentence}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function RandomSkill : String;
Var
a, b : Integer;
Begin
b:= random(35) + 1;
Case b Of
1 : result:= 'attack';
2 : result:= 'strength';
3 : result:= 'defense';
4 : result:= 'range';
5 : result:= 'prayer';
6 : result:= 'magic';
7 : result:= 'runecrafting';
8 : result:= 'hitpoint';
9 : result:= 'agility';
10 : result:= 'herblore';
11 : result:= 'thieving';
12 : result:= 'crafting';
13 : result:= 'fletching';
14 : result:= 'slayer';
15 : result:= 'mining';
16 : result:= 'smithing';
17 : result:= 'fishing';
18 : result:= 'cooking';
19 : result:= 'firemaking';
20 : result:= 'woodcutting';
21 : result:= 'atk';
22 : result:= 'str';
23 : result:= 'def';
24 : result:= 'mage';
25 : result:= 'rc';
26 : result:= 'hp';
27 : result:= 'herb';
28 : result:= 'thiev';
29 : result:= 'craft';
30 : result:= 'fletch';
31 : result:= 'smith';
32 : result:= 'fish';
33 : result:= 'cook';
34 : result:= 'fire';
35 : result:= 'wc';
36 : result:= 'farming';
End;
Case b Of
5, 8, 9, 26 : a:= random(2) + 1;
Else
a:= random(3) + 1;
End;
Case a Of
1 : result:= result + ' levels?';
2 : result:= result + ' lvs?';
3 : result:= random1 + ' ' + result;
End;
If(a= 3)Then
Begin
a:= random(7) + 1;
Case a Of
1 : result:= result + ' is boring!';
2 : result:= result + ' is the best';
3 : result:= result + ' is my favourite skill';
4 : result:= result + ' takes ages To train';
5 : result:= result + ' makes me so much money';
6 : result:= result + ' needs an update';
7 : result:= result + ' is too easy';
End;
End;
End;
{^^^^^^^^^^^^^^^^^ RANDOMMONSTER ^^^^^^^^^^^^^^^^^^}
{Used in the random talking Procedure, returns a random monster}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function RandomMonster : String;
Var
a : Integer;
Begin
a:= random(30) + 1;
Case a Of
1 : result:= 'chickens';
2 : result:= 'green dragons';
3 : result:= 'blue dragons';
4 : result:= 'red dragons';
5 : result:= 'black dragons';
6 : result:= 'king black dragons';
7 : result:= 'kalphites';
8 : result:= 'kalphite queens';
9 : result:= 'demons';
10 : result:= 'dragons';
11 : result:= 'metal dragons';
12 : result:= 'bronze dragons';
13 : result:= 'iron dragons';
14 : result:= 'steel dragons';
15 : result:= 'black demons';
16 : result:= 'greater demons';
17 : result:= 'lesser demons';
18 : result:= 'golems';
19 : result:= 'tree spirits';
20 : result:= 'shades';
21 : result:= 'moss giants';
22 : result:= 'giants';
23 : result:= 'hill giants';
24 : result:= 'wolfs';
25 : result:= 'baby dragons';
26 : result:= 'spiders';
27 : result:= 'rats';
28 : result:= 'zombies';
29 : result:= 'goblins';
30 : result:= 'scorpions';
End;
End;
{^^^^^^^^^^^^^^^^^ RANDOMTALK ^^^^^^^^^^^^^^^^^^^^^}
{Returns a random sentence}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function RandomTalk: String;
Var
a, b : Integer;
Begin
b:= random(5) + 1;
If(b= 1)Then
result:= randomskill;
If(b= 2)Then
Begin
a:= random(10) + 1;
Case a Of
1 : result:= 'I love ' + randomarmor;
2 : result:= 'I hate ' + randomarmor;
3 : result:= randomarmor + ' are so cool';
4 : result:= randomarmor + ' are stupid';
5 : result:= 'I have tons Of ' + randomarmor;
6 : result:= 'I think ' + randomarmor + ' look the best';
7 : result:= 'I think ' + randomarmor + ' look the worst';
8 : result:= randomarmor + ' costs too much';
9 : result:= randomarmor + ' is too cheap';
10 : result:= 'I can afford tons Of ' + randomarmor;
End;
End;
If(b= 3)Then
Begin
a:= random(10) + 1;
Case a Of
1 : result:= 'I love ' + randomrare;
2 : result:= 'I hate ' + randomrare;
3 : result:= randomrare + ' look the coolest';
4 : result:= randomrare + ' look the worst';
5 : result:= randomrare + ' are hard To find';
6 : result:= randomrare + ' are way too expensive';
7 : result:= randomrare + ' are too cheap';
8 : result:= 'I wonder how much ' + randomrare + ' alch For';
9 : result:= 'I wonder how many ' + randomrare + ' there are';
10 : result:= 'i wish i had tons Of ' + randomrare;
End;
End;
If(b= 4)Then
Begin
a:= random(8) + 1;
Case a Of
1 : result:= randommonster + ' look cool';
2 : result:= randommonster + ' look weak';
3 : result:= randommonster + ' are easy';
4 : result:= randommonster + ' are a good way To make money';
5 : result:= randommonster + ' should be harder';
6 : result:= randommonster + ' need To be easier';
7 : result:= randommonster + ' are the best To train on';
8 : result:= randommonster + ' are the worst To train on';
End;
End;
If(b= 5)Then
Begin
a:= random(6) + 1;
Case a Of
1 : result:= ':)';
2 : result:= ':(';
3 : result:= '=)';
4 : result:= '=(';
5 : result:= ';)';
6 : result:= ';(';
End;
End;
End;
{^^^^^^^^^^^^^^^^^ WAITR ^^^^^^^^^^^^^^^^^^^^^^^^^^}
{This Procedure will wait a random number Of miliseconds seconds}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure WaitR(number, RandomNumber : Integer);
Begin
wait(number + random(RandomNumber) + 1);
End;
{^^^^^^^^^^^^^^^^^ SETCHAT ^^^^^^^^^^^^^^^^^^^^^^^^}
{If applicable, turns off the Public chat, private chat And trade options}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure SetChat;
Var
x, y : integer;
Begin
If(GetColor(46, 488)<>255)then
Begin
repeat
MouseC(random(15)+20, random(10)+480, 1);
WaitR(150,100);
until(FindColor(x,y,255,45,487,47,489))
end;
If(GetColor(175, 486)<>255)then
Begin
repeat
MouseC(random(15)+150, random(10)+480, 1);
WaitR(150,100);
until(FindColor(x,y,255,174,485,176,487))
end;
If(GetColor(315, 488)<>255)then
Begin
repeat
MouseC(random(15)+290, random(10)+480, 1);
WaitR(150,100);
until(FindColor(x,y,255,314,487,316,489))
end;
End;
{^^^^^^^^^^^^^^^^^ LOGOUT ^^^^^^^^^^^^^^^^^^^^^^^^^}
{Logs your character out}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure LogOut;
Begin
If(getcolor( 632, 483) = 4543586)Then
MouseC(random(10) + 635, random(10) + 475, 1);
wait(random(300) + 500);
MouseC(random(30) + 600, random(5) + 370, 1);
End;
{^^^^^^^^^^^^^^^^^ OPENBAG ^^^^^^^^^^^^^^^^^^^^^^^^}
{Opens your inventory}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure OpenBag;
Begin
If(getcolor(634, 174) = 5531511)Then
MouseC(random(10) + 635, random(10) + 175, 1);
End;
{^^^^^^^^^^^^^^^^^ OPENCONTROLS ^^^^^^^^^^^^^^^^^^^}
{Opens the controls panel}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure OpenControls;
Begin
If(getcolor(704, 483) = 4543586)Then
MouseC(random(10) + 700, random(10) + 470, 1);
End;
{^^^^^^^^^^^^^^^^^ SETRUNON ^^^^^^^^^^^^^^^^^^^^^^^}
{Turns run on}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure SetRunOn;
Begin
OpenControls;
MouseC(random(10) + 615, random(10) + 275, 1);
wait(random(200) + 200);
End;
{^^^^^^^^^^^^^^^^^ SETRUNOFF ^^^^^^^^^^^^^^^^^^^^^^}
{Turns run off}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure SetRunOff;
Begin
OpenControls;
MouseC(random(10) + 565, random(10) + 275, 1);
wait(random(100) + 250);
End;
{^^^^^^^^^^^^^^^^^ TALKTORAND ^^^^^^^^^^^^^^^^^^^^^}
{Handles Talking To a random event}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure TalkToRand;
Var
c : Integer;
Begin
Repeat
wait(1);
c:= c + 1;
If(c=2750)Then
exit;
Until(getcolor(234, 441)= 16711680);
YellowTextTotal:= YellowTextTotal + 1;
TakeScreenShot('Talked To Random', YellowTextTotal);
Status('Talking To Random Event');
Repeat
If(getcolor(232, 443)= 16711680)Then
Begin
MouseC(253 + random(20), 442 + random(3), 1);
wait(2000 + random(1000));
randomtalked:= true;
End;
wait(1);
c:= c + 1;
If(c= 5000)Then
exit;
Until(GetColor(240, 434)= 0);
End;
{^^^^^^^^^^^^^^^^^ DISEASED ^^^^^^^^^^^^^^^^^^^^^^^}
{Returns true If your character is diseased And false is it isnt}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function Diseased : Boolean;
Var
a, b : Integer;
Begin
result:= false;
wait(1);
If(findcolorspiral(a, b, 1226748, 215, 115, 330, 185))Then
result:= true;
End;
{^^^^^^^^^^^^^^^^^ POISONED ^^^^^^^^^^^^^^^^^^^^^^^}
{Returns true If your character is poisoned And false is it isnt}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function Poisoned : Boolean;
Var
a, b : Integer;
Begin
result:= false;
wait(1);
If(findcolorspiral(a, b, 49152, 215, 115, 330, 185))Then
result:= true;
End;
{^^^^^^^^^^^^^^^^^ INFIGHT ^^^^^^^^^^^^^^^^^^^^^^^^}
{Returns true If your character is in a fight And false is it isnt}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function InFight : Boolean;
Var
a, b : Integer;
Begin
result:= false;
wait(1);
If(findcolorspiral(a, b, 16728128, 215, 115, 330, 185))
Or(findcolorspiral(a, b, 192, 215, 115, 330, 185))Then
If(Poisoned= false)And(diseased= false)Then
result:= true;
End;
{^^^^^^^^^^^^^^^^^ FINDFIGHT ^^^^^^^^^^^^^^^^^^^^^^}
{Checks To see If you are in a fight, And If so you will run away}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure FindFight;
Var
leaveloop, placecheck, a, b, d, c : Integer;
Begin
d:= 0;
c:= 0;
If(Findcolorspiral(a, b, 65280, 215, 115, 330, 185))Then
wait(1000);
If(FindColorSpiral(a, b, 65280, 215, 115, 330, 185))Then
Begin
Repeat
If(c= 100)Then
Begin
wait(1);
c:= 0;
End;
c:= c + 1;
d:= d + 1;
If(diseased= true)Or(Poisoned= true)Then
exit;
Until(d= 4000)Or(InFight= true);
AttacksTotal:= AttacksTotal + 1;
TakeScreenShot('Fight Found', AttacksTotal);
SetRunon;
wait(random(10) + 50);
a:= 0;
Case Direction Of
'NE','' :
Repeat
a:= a + 3;
MouseC(random(5) + 680 - a, random(5) + 35 + a, 1);
wait(random(200) + 300);
Until(flagpresent=true);
'N' :
Repeat
a:= a + 3;
MouseC(random(5) + 640, random(5) + 20 + a, 1);
wait(random(200) + 300);
Until(flagpresent=true);
'NW' :
Repeat
a:= a + 3;
MouseC(random(5) + 620 + a, random(5) + 25 + a, 1);
wait(random(200) + 300);
Until(flagpresent=true);
'W' :
Repeat
a:= a + 3;
MouseC(random(5) + 600 + a, random(5) + 85, 1);
wait(random(200) + 300);
Until(flagpresent=true);
'SW' :
Repeat
a:= a + 3;
MouseC(random(5) + 620 + a, random(5) + 130 - a, 1);
wait(random(200) + 300);
Until(flagpresent=true);
'S' :
Repeat
a:= a + 3;
MouseC(random(5) + 645, random(5) + 145 - a, 1);
wait(random(200) + 300);
Until(flagpresent=true);
'SE' :
Repeat
a:= a + 3;
MouseC(random(5) + 688 - a, random(5) + 124 - a, 1);
wait(random(200) + 300);
Until(flagpresent=true);
'E' :
Repeat
a:= a + 3;
MouseC(random(5) + 703 - a, random(5) + 74, 1);
wait(random(200) + 300);
Until(flagpresent=true);
End;
wait(100);
MapFlagging;
wait(random(1000) + 1000);
If(RunBack=true)Then
Case Direction Of
'NE' :
Repeat
a:= a + 3;
MouseC(random(5) + 620 + a, random(5) + 130 - a, 1);
wait(random(200) + 300);
Until(FlagPresent);
'E' :
Repeat
a:= a + 3;
MouseC(random(5) + 600 + a, random(5) + 85, 1);
wait(random(200) + 300);
Until(FlagPresent);
'SE' :
Repeat
a:= a + 3;
MouseC(random(5) + 620 + a, random(5) + 25 + a, 1);
wait(random(200) + 300);
Until(FlagPresent);
'S' :
Repeat
a:= a + 3;
MouseC(random(5) + 640, random(5) + 20 + a, 1);
wait(random(200) + 300);
Until(FlagPresent);
'SW' :
Repeat
a:= a + 3;
MouseC(random(5) + 680 - a, random(5) + 35 + a, 1);
wait(random(200) + 300);
Until(FlagPresent);
'W' :
Repeat
a:= a + 3;
MouseC(random(5) + 703 - a, random(5) + 74, 1);
wait(random(200) + 300);
Until(FlagPresent);
'NW' :
Repeat
a:= a + 3;
MouseC(random(5) + 688 - a, random(5) + 124 - a, 1);
wait(random(200) + 300);
Until(FlagPresent);
'N' :
Repeat
a:= a + 3;
MouseC(random(5) + 645, random(5) + 145 - a, 1);
wait(random(200) + 300);
Until(FlagPresent);
End;
SetRunOff;
wait(random(200)+300);
OpenBag;
leaveloop:= 0;
fightfound:= true;
Repeat
placecheck:= getcolor(27, 36);
wait(100);
If(getcolor(27, 36) = placecheck)Then
Leaveloop:= 1;
Until(Leaveloop= 1);
End;
End;
{^^^^^^^^^^^^^^^^^ FINDTEXT ^^^^^^^^^^^^^^^^^^^^^^^}
{Checks For Yellow text, And If some are found it will look For a random
event To talk too}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure FindText;
Var
counter, a, b, a1, b1, c, d : Integer;
Begin
counter:= 0
If(findcolor(a, b, 65535, 10, 20, 515, 338))
Or(Istextat3(185, 36, 'The Bank', 100))Then
wait(200)
If(findcolor(a, b, 65535, 10, 20, 515, 338))
And(Istextat3(185, 36, 'The Bank', 100)= false)Then
Begin
Repeat
counter:= counter + 2 + random(1);
MoveMouseSmoothEx(a + counter, b + 15 + random(3), 1, 6, 15, 20, 20);
wait(1)
If(istextat3(9, 9, 'Talk', 100))Then
Begin
getmousepos(a1, b1);
MouseC(a1, b1, 2);
Repeat
wait(random(100) + 200);
Until(findcolor(a, b, 0, a1 - 30, b1 - 30, a1 + 30, b1 + 30));
If(IsTextIn3(S1, S2, S3, S4, c, d, 'Talk'))Then
Begin
MouseC(c + random(10), d + random(3), 1);
MapFlagging;
TalkToRand;
exit;
End;
End;
Until(counter>= 150);
End;
End;
{^^^^^^^^^^^^^^^^^ LOGGEDIN ^^^^^^^^^^^^^^^^^^^^^^^}
{Returns true If you are logged in And false If your not}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function LoggedIn:Boolean;
Begin
result:= true;
If(getcolor(249, 99)= 2071708)And
(getcolor(637,50)=4872025)And
(getcolor(547,383)=4212289)And
(getcolor(356,47)=6115406)And
(IsTextUp('Walk')=false)Then
result:= false;
End;
{^^^^^^^^^^^^^^^^^ CHECKINTRO ^^^^^^^^^^^^^^^^^^^^^}
{Checks For the intro screen And closes it If it finds it}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure CheckIntro;
Begin
If(Getcolor(595, 25) <> 8239317)Then
exit;
MouseBox(435, 307, 590, 360, 1);
repeat
wait(random(300) + 500);
until(getcolor(648, 83) = 16777215);
End;
{^^^^^^^^^^^^^^^^^ KILLSCRIPT ^^^^^^^^^^^^^^^^^^^^^}
{This Procedure will enter a continues loop, making the script which
is running stop}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure KillScript;
Begin
Repeat
Status('Script Killed, please restart');
wait(500);
Status('Script Killed, please restart.');
wait(500);
Status('Script Killed, please restart..');
wait(500);
Status('Script Killed, please restart…');
wait(500);
Until(false);
End;
{^^^^^^^^^^^^^^^^^ LOGIN ^^^^^^^^^^^^^^^^^^^^^^^}
{Logs your character in If your logged out}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure LogIn;
var
x : integer;
Begin
If(loggedin= false)Then
Begin
if(Istextat3(309, 241, 'Welcome',100))then
begin
MouseC(random(5) + 465, random(5) + 275, 1);
wait(random(500) + 1000);
end;
MouseC(random(20) + 370, random(3) + 251, 1);
wait(random(100) + 100);
sendkeyshuman(User);
wait(random(30)+120);
sendkeyshuman(chr(13));
wait(random(100) + 100);
sendkeyshuman(Pass);
MouseC(random(10) + 255, random(20) + 305, 1);
Repeat
wait(100);
x:= x + 1;
if(x = 100)Then
begin
writeln('Error logging in');
KillScript;
end;
Until(getcolor(602, 20)= 8041938);
End;
wait(random(300) + 500);
CheckIntro;
End;
{^^^^^^^^^^^^^^^^^ LOGOUTFOR ^^^^^^^^^^^^^^^^^^^^^^}
{This procedure will log you out for the amount of minits given}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure LogOutFor(Minutes : Integer);
Var
x : integer;
Begin
Logout;
Minutes:= Minutes + random(Minutes / 10);
writeln('Logging out for ' + inttostr(Minutes) + ' minuets');
Minutes:= (Minutes * 60) * 1000;
repeat
x:= x + random(300) + 1000;
wait(x);
until(x > Minutes);
writeln('Logging back in');
Login;
End;
{^^^^^^^^^^^^^^^^^ CHECKFORMODS ^^^^^^^^^^^^^^^^^^^}
{Looks For a mod Or admin And If it finds one, you will get logged out}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure CheckForMods;
Var
a, b, bmpModCrown, bmpStaffCrown : Integer;
Begin
bmpModcrown := BitmapFromstring(13, 11,
'979797000000000000000000000000000000979797000000000000' +
'000000000000000000979797E0E0E0979797000000000000000000' +
'E0E0E0A2A2A2979797000000000000000000E0E0E0979797E0E0E0' +
'979797000000000000000000E0E0E0A2A2A2979797000000000000' +
'000000E0E0E0979797E0E0E0A2A2A2979797000000E0E0E0A2A2A2' +
'A2A2A2A2A2A2979797000000E0E0E0A2A2A2979797E0E0E0A2A2A2' +
'979797000000E0E0E0A2A2A2A2A2A2A2A2A2979797000000E0E0E0' +
'A2A2A2979797000000E0E0E0A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2' +
'A2A2A2A2A2A2A2A2A2A2A2A2979797000000000000E0E0E0A2A2A2' +
'A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2979797' +
'000000000000000000E0E0E0sA2A2A2000000000000A2A2A2000000' +
'000000A2A2A2979797000000000000000000000000E0E0E0A2A2A2' +
'000000A2A2A2000000A2A2A2000000A2A2A2979797000000000000' +
'000000000000E0E0E0A2A2A2000000A2A2A2000000A2A2A2000000' +
'A2A2A2979797000000000000000000000000979797979797979797' +
'979797979797979797979797979797979797000000000000');
bmpStaffcrown := BitmapFromstring(13, 11,
'D69E21000000000000000000000000000000D69E21000000000000' +
'000000000000000000D69E21FFFF84D69E21000000000000000000' +
'FFFF84F7FF08D69E21000000000000000000FFFF84D69E21FFFF84' +
'D69E21000000000000000000FFFF84F7FF08D69E21000000000000' +
'000000FFFF84D69E21FFFF84F7FF08D69E21000000FFFF84F7FF08' +
'F7FF08F7FF08D69E21000000FFFF84F7FF08D69E21FFFF84F7FF08' +
'D69E21000000FFFF84F7FF08F7FF08F7FF08D69E21000000FFFF84' +
'F7FF08D69E21000000FFFF84F7FF08F7FF08F7FF08F7FF08F7FF08' +
'F7FF08F7FF08F7FF08F7FF08D69E21000000000000FFFF84F7FF08' +
'F7FF08F7FF08F7FF08F7FF08F7FF08F7FF08F7FF08F7FF08D69E21' +
'000000000000000000FFFF84F7FF08000000000000F7FF08000000' +
'000000F7FF08D69E21000000000000000000000000FFFF84F7FF08' +
'000000F7FF08000000F7FF08000000F7FF08D69E21000000000000' +
'000000000000FFFF84F7FF08000000F7FF08000000F7FF08000000' +
'F7FF08D69E21000000000000000000000000D69E21D69E21D69E21' +
'D69E21D69E21D69E21D69E21D69E21D69E21000000000000');
If (findbitmaptolerancein(bmpStaffcrown, a, b, 1, 345, 110, 430, 50))
Or(findbitmaptolerancein(bmpModcrown, a, b, 1, 345, 110, 430, 50))Then
Begin
TakeScreenShot('Staff Found', 1);
writeln('Staff / Mod Found, logged out And will log in later');
a:= 0;
LogOutFor(15);
End;
FreeBitmap(bmpStaffCrown);
FreeBitmap(bmpModCrown);
End;
{^^^^^^^^^^^^^^^^^ GETQUESTION ^^^^^^^^^^^^^^^^^^^^}
{Used with the box breaker}
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Function GetQuestion : Integer;
Begin
result:= 0 ;
If(istextat3(194, 260, 'Which shape is Y', 100))Then
result:= 1; // Color Yellow
If(istextat3(200, 260, 'Which shape is B', 100))Then
resul
i need help geting this to thive transfer text above into a include .txt file and down lode the file below. i need help geting this to thiv:redface:
tags . And eurostylz its outdated thread why did you bother digging it out?