mc_teo
2009-06-26 23:52:25
How Long have You Played Runescape?
3 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
I started with VB.NET and have a working knowledge of VB, C/C++, Perl, Python, PHP, Pascal.
Are you a member of any other communities?
Not many, aciidforum i suppose, but i havent been on there in ages.
Tell us about yourself…
Please show us one (or multiple) of your scripts.
3 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
I started with VB.NET and have a working knowledge of VB, C/C++, Perl, Python, PHP, Pascal.
Are you a member of any other communities?
Not many, aciidforum i suppose, but i havent been on there in ages.
Tell us about yourself…
From: mc_teo
I am 16 yo, live in Ireland. I'm a very logical person. Maths, and Science are my favourite subjects. I love programming, esp. games because they give me a chance to try out maths, physics and logic, all in one place.
I have spent the bones of the last week on the IRC channel… its very tiring… hah…
I dont really like talking about my self to a box, so I'll go now…
Please show us one (or multiple) of your scripts.
{===================================================================]
[ The HoneyComber ]
[ ]
[ NAME : The HoneComber ]
[ WRITER : mc_teo ]
[ DESCRIPTION : Collects and Banks Honeycomb. ]
[ AUTOCOLOR : Yes ]
[ SRL Used : 4.00 Revision #35 ]
[ SCAR Used : 3.20d ]
[ Version : 1.0 ]
[ ]
[ More Scripts can be found at, ]
[ [url]www.villavu.com[/url] ]
[===================================================================]
[ Instructions. ]
[===================================================================]
[ 1. USE Runescape with Low Detail, Very Bright. ]
[ 2. Set your Screen to 32 bit TRUE colour. ]
[ 3. Setup lines 44-46, with your name, pass and nick. ]
[ 6. Have a bottle of insect repellant in first inventory section. ]
[ 7. Start in Catherby's Bank, Logged out or Logged in. ]
[===================================================================]
[ Credits ]
[===================================================================]
[ All at SRL-Forums/Villavu who answered my many questions, ]
[ and all at #SRL for putting up with me for a while now. ]
[===================================================================}
program HoneyComber;
{.include SRL\SRL.scar}
var
x, y, totalTime, HC_Banked:integer;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer:= 0;
Players[0].Name := ''; //UserName goes here
Players[0].Pass := ''; //Password goes here
Players[0].Nick := ''; //Put three/four letters from middle of username here
Players[0].Integers[0] := 10 //Master Tolerance, change if theres any problem with colour-finding.
Players[0].Integers[1] := 20 //How many loads of HoneyComb to bank before next player
Players[0].Loc := 'Bank'; //Current location, can be 'Bank' or 'Hive'
Players[0].Active := true; //If you want this player to be used
{
Players[1].Name := ''; //UserName goes here
Players[1].Pass := ''; //Password goes here
Players[1].Nick := ''; //Put three letters from middle of username here
Players[1].Integers[0] := 10 //Master Tolerance, change if theres any problem with colour-finding.
Players[1].Integers[1] := 20 //How many loads of HoneyComb to bank before next player
Players[1].Loc := 'Bank'; //Current location, can be 'Bank' or 'Hive'
Players[1].Active := true; //If you want this player to be used
Players[2].Name := ''; //UserName goes here
Players[2].Pass := ''; //Password goes here
Players[2].Nick := ''; //Put three letters from middle of username here
Players[2].Integers[0] := 10 //Master Tolerance, change if theres any problem with colour-finding.
Players[2].Integers[1] := 20 //How many loads of HoneyComb to bank before next player
Players[2].Loc := 'Bank'; //Current location, can be 'Bank' or 'Hive'
Players[2].Active := true; //If you want this player to be used
}
end;
{*******************************************************************************
*************** Please don't touch anything after this **********************
***************** unless you super 1337 and making it better ****************
*******************************************************************************}
procedure ProgressReport;
var
minutes: Extended;
time, seconds: Integer;
begin
time := TimeFromMark(totalTime);
minutes := time / 60000;
seconds := Round(DecRet(minutes) * 100);
ClearDebug;
WriteLn(Padr(' |*******************************************', 45)+'|');
WriteLn(Padr(' | HoneyComber by mc_teo ', 45)+'|');
WriteLn(Padr(' |___________________________________________', 45)+'|');
WriteLn(Padr(' | Total Time Running: ' + IntToStr(Floor(minutes))+':'+IntToStr(seconds), 45)+'|');
WriteLn(Padr(' | Loads To Bank: ' + IntToStr(HC_Banked) , 45)+'|');
WriteLn(Padr(' | HoneyComb Colected: ' + IntToStr((HC_Banked)*27), 45)+'|');
WriteLn(Padr(' | Money-wise, thats ' + IntToStr(((HC_Banked)*27)*112)+' Gold Coins!', 45)+'|');
WriteLn(Padr(' |___________________________________________', 45)+'|');
end;
procedure AntiBan;
begin
if(not(LoggedIn))then
LoginPlayer;
case Random(15) of
0: begin
HoverSkill('Random', false);
wait(2453+Random(432));
end;
1: RandomRClick;
2: PickUpMouse;
3: RandomMovement;
4: begin
MakeCompass('N');
wait(10+random(5));
MakeCompass('E');
wait(10+random(5));
MakeCompass('N');
end;
5: begin
SetAngle(false);
wait(10+random(10));
SetAngle(true);
end;
end;
end;
function CheckRepellant:boolean;
var
insect:integer;
begin
insect := BitmapFromString(16, 7, 'beNpjYPRwMEFGDAyM5vZGE9p' +
'ameVYgGwDBQW4OEQETbFzupVHsBMcAUXgaiBagAxna0MPO6hizwJ7' +
'3zKngGo3/0oXIMM21sTQWwuiBa4ewnbNsvEudgQqC6pzhyCgLqAJQ' +
'C0WYYYQiyDqgQz3XFugYqCCkEbPsBYvCAKygVYAtdgnmFlFGZkF60' +
'N0ARVD3ABUE9Hmg4yAgkAXAq3esXbt3EkTIeqBIkBnAE2L7vH/iwr' +
'ev3378O6dM0ePAtXPnjCBAQAZzWQH');
if (FindBitmapToleranceIn(insect, x, y, MIx1, MIy1, MIx2, MIy2, 10)) then
result := true;
FreeBitmap(insect)
end;
procedure HoneyComber;
var
color:TIntegerArray;
text:TStringArray;
begin
color := [9606046, 13224400, 14869221];
text := ['ake', 'rom', 'eehive'];
repeat
if FindObjCustom(x, y, text, color, Players[CurrentPlayer].Integers[0]) then
begin
Mouse(x, y, 5, 5, false);
Wait(500 + random(250));
ChooseOption('honey');
ProgressReport;
Wait(500+random(250));
end;
until(InvFull);
end;
procedure Bank;
begin
repeat
MakeCompass(IntToStr(RandomRange(340, 380)));
if (BankScreen) then
CloseBank;
if(FindObj(x, y, 'ooth', 5798280, Players[CurrentPlayer].Integers[0])) then
begin
Mouse(x, y, 4, 4, false);
ChooseOption('uickly');
Wait(1000+random(250));
Deposit(2, 28, true);
if StrToInt(TimeRunning) > 20000 then
Inc(HC_Banked);
CloseBank;
end;
until(not InvFull);
ProgressReport;
if(HC_Banked >= Players[CurrentPlayer].Integers[1]) then
begin
RandomNextPlayer(True);
HC_Banked := 0;
end;
end;
procedure WaitForFlag;
var
T:integer;
begin
MarkTime(T);
repeat
Wait(2000+random(150));
until((FlagDistance < 15) or (TimeFromMark(T) > 20000));
end;
procedure HiveToTree;
begin
SymbolAccuracy := 0.4;
if FindSymbol(x, y, 'Tree') then
begin
Mouse(x, y, 4, 4, true);
SetRun(True);
Wait(20000+random(3000));
end;
Players[CurrentPlayer].Loc := 'Tree';
end;
procedure Travel; //This was originally two procedures
var //But I updated it to be dynamic
Dir, Dest :String;
TimeFailSafe,BankDTM,I:Integer;
angle:extended;
begin
MarkTime(TimeFailSafe);
SetRun(true);
if Players[CurrentPlayer].Loc = 'Bank' then
begin
SymbolAccuracy := 0.6;
Dir := '100';
Dest := 'Tree';
end else
begin
SymbolAccuracy := 0.6;
Dir := '280';
Dest := 'Bank';
end;
Status(Players[CurrentPlayer].Loc + ' to ' + Dest);
BankDTM := DTMFromString('78DA632C606260B06500034608C570E6E8510' +
'67E28FF3F10305600D5E830A080929C1C143D8CC1403571A86A3A' +
'AA0C51D58402D5B8A3AA692AB04155130254A34BC09C34A01A255' +
'43535516EA86ADA816A4C50D5B4161AA0AAC901AA09C6EF2F00CB' +
'D21412');
repeat
MakeCompass(Dir);
Mouse(MMCx, (MMy1+15), 3, 3, true);
WaitForFlag;
if ((TimeFromMark(TimeFailsafe) > 60000) or (I > 10)) then
break;
Inc(I);
if( Dest = 'Bank') then
if (FindDTMRotated(BankDTM, x, y, MMx1, MMy1, MMx2, MMy2, 0, 360, 10, angle)) then
Break;
until(FindSymbol(x, y, Dest));
if(I > 10) then
begin
WriteLn(Players[CurrentPlayer].Name + ' is Lost');
Players[CurrentPlayer].Loc := 'Lost';
RandomNextPlayer(False);
end;
I := 0;
FreeDTM(BankDTM);
FindSymbol(x, y, Dest);
Mouse(x, y, 3, 3, true);
WaitForFlag;
Players[CurrentPlayer].Loc := Dest;
SetRun(False);
AntiBan;
If FindNormalRandoms Then
If Not LoggedIn Then
NextPlayer(True);
end;
procedure TreeToHive;
begin
MakeCompass('n');
x := MMCx;
y := MMCy;
if FindColorSpiralTolerance(x, y, 469464, MMx1, MMy1, MMx2, MMy2, Players[CurrentPlayer].Integers[0]) then
begin
Mouse(x, (y-15), 3, 3, true);
Wait(20000+random(3000));
Players[CurrentPlayer].Loc := 'Hive';
end;
end;
procedure Setup;
begin
SetupSRL;
try
DeclarePlayers;
except
Writeln('You did not Declare Players correctly, check your DeclarePlayers setup.');
TerminateScript;
end;
ActivateClient;
if(not LoggedIn) then
LoginPlayer;
Wait(2000+random(250));
MarkTime(totalTime);
if not CheckRepellant then
begin
WriteLn('ERROR: No Insect Repellant Found');
WriteLn('Soloution: Get some in the building just north of the bank');
TerminateScript;
end;
ProgressReport;
end;
procedure MainLoop;
begin
if Players[CurrentPlayer].Loc = 'Bank' then
begin
Status('Banking...');
Bank;
Travel
end;
if (Players[CurrentPlayer].Loc = 'Tree') and (not InvFull) then
begin
Status('Tree To Hive');
TreeToHive
end;
if Players[CurrentPlayer].Loc = 'Hive' then
begin
Status('HoneyCombing...');
HoneyComber;
Status('Hive To Tree');
HiveToTree;
end;
if (Players[CurrentPlayer].Loc = 'Tree') and (InvFull) then
begin
Status('TreeToBank');
Travel;
end;
end;
begin
Setup;
repeat
MainLoop;
until(AllPlayersInactive);
end.