TomTuff
2009-08-06 23:44:23
How Long have You Played Runescape?
4 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
scar, a little Visual Basic, a little html
Are you a member of any other communities?
Sythe, rsbot
Tell us about yourself…
From: TomTuff
Hi, my name is Tom. I am 13. I play water polo for my high school team, and play runescape/bot during my freetime.
Please show us one (or multiple) of your scripts.
[LEFT]
program Bandits;
{.include srl/srl/misc/smart.scar}
{.include srl/srl.scar}
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
Players[0].strings[0] := ''; //tuna, lobster, monkfish, shark
end;
procedure TradeGuy;
var
x, y, T, FoodDTM: integer;
begin
FindNormalRandoms;
if FindSymbolIn(x, y, 'shop', 586, 27, 623, 65) then
begin
mouse(x, y, 4, 6, true);
wait(4000+random(250));
end
else
begin
Logout;
end;
if FindObjTPA(x, y, 14474464, 20, 2, 1, 1, 30, ['hop']) then
begin
mouse(x, y, 4, 6, false);
ChooseOption('Trade');
mouse(189, 69, 10, 4, true);
wait(900+random(200)); //for lag
Mouse(582, 227, 10, 10, false);
ChooseOption('sell 10');
Mouse(582, 227, 10, 10, false);
ChooseOption('sell 5');
Mouse(582, 227, 10, 10, false);
ChooseOption('sell 10');
Mouse(582, 227, 10, 10, false);
ChooseOption('sell 1');
end
else
begin
logout;
end;
case Players[CurrentPlayer].strings of
'shark' : FoodDTM:= DTMFromString('78DA6374636260C8674001532A93194480342' + //shark DTM
'310FF07024673A09A6A0634C08844026947A09A2A026ABC806A2A' +
'08A80902AA2921A0C60FA8268B801A0FA09A34026A1C806A9209A' +
'8B105AA4922A0C60AA8269708350DF8D5000088460D6A');
'monk' : FoodDTM := DTMFromString('78DA637466626058C680020A137D194480342' +
'310FF07024637A09A050C6880118904D24140357308A8F1C7B40B' + //monk DTM
'434D2850CD5A026ADC816AD61150630954B38A801A73A09A2504D' +
'4D801D52C24A0C69988F0B107AA598F5F0D0000080F7D');
'tuna' : FoodDTM := DTMFromString('78DA6374626260B8CE800266D455318800694' +
'620FE0F048C2E4035A718D000231209A43D806A2E1050E34BA49A' + //tuna DTM
'EB04D4B802D5DC25A0C606A8E6010135664035B708A8B106AAB94' +
'4408D3D50CD79FC6A00B52610BB');
'lobster' : FoodDTM := DTMFromString('78DA6374656260286440013B93C4C0342394C' +
'FE8055493C480061851D50401D5A41150E303545342408D27504D' + //lobster DTM
'2D0135F640351504D49801D5941350630D54934B408D0B504D0E7' +
'E3500F3B907BA');
end;
if (FindDTM(FoodDTM, x, y, 37, 92, 471, 288)) then
begin
Mouse(x, y, 8, 8, false);
ChooseOption('Buy 10');
Mouse(x, y, 8, 8, false);
ChooseOption('Buy 1');
Mouse(x, y, 8, 8, false);
ChooseOption('Buy 5');
Mouse(x, y, 8, 8, false);
ChooseOption('Buy 10');
end
else
begin
logout;
end;
if (FindObjTPA(x, y, 2448971, 15, 2, 1, 1, 15, ['alk'])) then
begin
mouse(x, y, 1, 1, true) mouse(320, 268, 4, 4, true)
end
else
begin
logout;
end;
Inc(t);
end;
procedure EatFood; //credit: waddo's dtm guide + NCDS for making it a case statment
var
FoodDTM, x, y: Integer;
begin
case Players[CurrentPlayer].strings of
'shark' : FoodDTM:= DTMFromString('78DA6374636260C8674001532A93194480342' + //shark DTM
'310FF07024673A09A6A0634C08844026947A09A2A026ABC806A2A' +
'08A80902AA2921A0C60FA8268B801A0FA09A34026A1C806A9209A' +
'8B105AA4922A0C60AA8269708350DF8D5000088460D6A');
'monk' : FoodDTM := DTMFromString('78DA637466626058C680020A137D194480342' +
'310FF07024637A09A050C6880118904D24140357308A8F1C7B40B' + //monk DTM
'434D2850CD5A026ADC816AD61150630954B38A801A73A09A2504D' +
'4D801D52C24A0C69988F0B107AA598F5F0D0000080F7D');
'tuna' : FoodDTM := DTMFromString('78DA6374626260B8CE800266D455318800694' +
'620FE0F048C2E4035A718D000231209A43D806A2E1050E34BA49A' + //tuna DTM
'EB04D4B802D5DC25A0C606A8E6010135664035B708A8B106AAB94' +
'4408D3D50CD79FC6A00B52610BB');
'lobster' : FoodDTM := DTMFromString('78DA6374656260286440013B93C4C0342394C' +
'FE8055493C480061851D50401D5A41150E303545342408D27504D' + //lobster DTM
'2D0135F640351504D49801D5941350630D54934B408D0B504D0E7' +
'E3500F3B907BA');
end;
if FindDTM(FoodDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
if Random(5) = 1 then
begin
Mouse(x, y, 4, 7, False);
ChooseOption('Eat');
end
else
Mouse(x, y, 4, 7, True);
end
else
TradeGuy;
FreeDTM(FoodDTM);
FindNormalRandoms;
end;
procedure AntiBan;
var
A, prob: integer; //shortened by all that is man
begin
if random(2000) < 3 then
begin
Inc(A);
prob := random(5);
case prob of
0: RandomRClick;
1: BoredHuman;
2: pickupmouse;
3: BoredHuman;
4: ExamineInv;
end;
end;
end;
function CheckHP: boolean; //credit for help: NCDS
var
Temp: string;
begin
if GetMMLevels('hp', temp) <> - 1 then
if (temp = 'orange') or (temp = 'red') then
begin
result := True;
EatFood;
end;
FindNormalRandoms;
end;
procedure proggy;
begin
end;
begin
ClearDebug;
SetupSRL;
DeclarePlayers;
LoginPlayer;
repeat
CheckHP;
AntiBan;
until (not (LoggedIn));
end.
program FM;
{.include srl/srl/misc/smart.scar}
{.Include SRL/SRL.scar}
{.Include SRL/SRL/skill/Firemaking.scar}
{.include srl/srl/misc/FindXp.scar}
var
x, y, B, BA, i, time, BeginXP, ddtmTolerance:Integer;
const
LogType = 'normal'; //valid: normal, oak, willow, maple, yew, magic
{please note that this is only used to tell you how much exp you gained}
{in the proggy}
procedure DeclarePlayers;
begin
HowManyPlayers := 1; //how many players are you going to be using? [leave at 1]
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := 'bushido red'; //username
Players[0].Pass := 'noheart'; //password
Players[0].Nick := 'ed'; //2-4 letters of the username (no caps)
Players[0].Pin := ''; //players bank pin, leave blank if none
Players[0].Active := True; //is this player active? True = yes, False = no.
end;
procedure FixCam;
begin
SetAngle(true);
MakeCompass('n');
end;
procedure GetFmXp;
begin
BeginXP := GetXP('firemaking');
end;
function BankDDTM: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..8] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 22;
dtmMainPoint.y := 20;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 5408144;
dtmMainPoint.Tolerance := 12;
dtmSubPoints[0].x := 22;
dtmSubPoints[0].y := 20;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 5408144;
dtmSubPoints[0].Tolerance := 12;
dtmSubPoints[1].x := 28;
dtmSubPoints[1].y := 19;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 15920111;
dtmSubPoints[1].Tolerance := 10;
dtmSubPoints[2].x := 29;
dtmSubPoints[2].y := 12;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 15920111;
dtmSubPoints[2].Tolerance := 10;
dtmSubPoints[3].x := 30;
dtmSubPoints[3].y := 8;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 15920111;
dtmSubPoints[3].Tolerance := 10;
dtmSubPoints[4].x := 34;
dtmSubPoints[4].y := 4;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 15658734;
dtmSubPoints[4].Tolerance := 10;
dtmSubPoints[5].x := 37;
dtmSubPoints[5].y := 3;
dtmSubPoints[5].AreaSize := 0;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := 15920111;
dtmSubPoints[5].Tolerance := 10;
dtmSubPoints[6].x := 24;
dtmSubPoints[6].y := 22;
dtmSubPoints[6].AreaSize := 0;
dtmSubPoints[6].AreaShape := 0;
dtmSubPoints[6].Color := 15920111;
dtmSubPoints[6].Tolerance := 10;
dtmSubPoints[7].x := 10;
dtmSubPoints[7].y := 20;
dtmSubPoints[7].AreaSize := 0;
dtmSubPoints[7].AreaShape := 0;
dtmSubPoints[7].Color := 15920111;
dtmSubPoints[7].Tolerance := 10;
dtmSubPoints[8].x := 17;
dtmSubPoints[8].y := 13;
dtmSubPoints[8].AreaSize := 0;
dtmSubPoints[8].AreaShape := 0;
dtmSubPoints[8].Color := 15920111;
dtmSubPoints[8].Tolerance := 10;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function RoadDDTM:Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..6] of TDTMPointDef;
TempTDTM: TDTM;
ACvar:integer;
begin
ACvar := FindVarrockRoadColor
dtmMainPoint.x := 669;
dtmMainPoint.y := 107;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := ACvar;
dtmMainPoint.Tolerance := ddtmTolerance;
dtmSubPoints[0].x := 669;
dtmSubPoints[0].y := 107;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := ACvar;
dtmSubPoints[0].Tolerance := ddtmTolerance;
dtmSubPoints[1].x := 679;
dtmSubPoints[1].y := 101;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := ACvar;
dtmSubPoints[1].Tolerance := ddtmTolerance;
dtmSubPoints[2].x := 661;
dtmSubPoints[2].y := 100;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := ACvar;
dtmSubPoints[2].Tolerance := ddtmTolerance;
dtmSubPoints[3].x := 662;
dtmSubPoints[3].y := 112;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := ACvar;
dtmSubPoints[3].Tolerance := ddtmTolerance;
dtmSubPoints[4].x := 677;
dtmSubPoints[4].y := 109;
dtmSubPoints[4].AreaSize := 1;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := ACvar;
dtmSubPoints[4].Tolerance := ddtmTolerance;
dtmSubPoints[5].x := 670;
dtmSubPoints[5].y := 111;
dtmSubPoints[5].AreaSize := 1;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := ACvar;
dtmSubPoints[5].Tolerance := ddtmTolerance;
dtmSubPoints[6].x := 668;
dtmSubPoints[6].y := 104;
dtmSubPoints[6].AreaSize := 1;
dtmSubPoints[6].AreaShape := 0;
dtmSubPoints[6].Color := ACvar;
dtmSubPoints[6].Tolerance := ddtmTolerance;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function Road2DDTM: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..6] of TDTMPointDef;
TempTDTM: TDTM;
ACVar:integer;
begin
ACVar := FindVarrockRoadColor;
dtmMainPoint.x := 2202;
dtmMainPoint.y := 254;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 8686990;
dtmMainPoint.Tolerance := 0;
dtmSubPoints[0].x := 2202;
dtmSubPoints[0].y := 254;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 8686990;
dtmSubPoints[0].Tolerance := 0;
dtmSubPoints[1].x := 2196;
dtmSubPoints[1].y := 249;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 8686990;
dtmSubPoints[1].Tolerance := 0;
dtmSubPoints[2].x := 2200;
dtmSubPoints[2].y := 257;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 8686990;
dtmSubPoints[2].Tolerance := 0;
dtmSubPoints[3].x := 2205;
dtmSubPoints[3].y := 260;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 8686990;
dtmSubPoints[3].Tolerance := 0;
dtmSubPoints[4].x := 2209;
dtmSubPoints[4].y := 256;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 4229513;
dtmSubPoints[4].Tolerance := 0;
dtmSubPoints[5].x := 2206;
dtmSubPoints[5].y := 249;
dtmSubPoints[5].AreaSize := 0;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := 8686990;
dtmSubPoints[5].Tolerance := 0;
dtmSubPoints[6].x := 2191;
dtmSubPoints[6].y := 251;
dtmSubPoints[6].AreaSize := 0;
dtmSubPoints[6].AreaShape := 0;
dtmSubPoints[6].Color := 8686990;
dtmSubPoints[6].Tolerance := 0;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
procedure Prog;
var
explog, totalXP, StartLevel, EndLevel, LvlsGained:integer;
begin
case LogType of
'normal' : explog := 40;
'oak' : explog := 60;
'willow' : explog := 90;
'maple' : explog := 135;
'yew' : explog := 203;
'magic' : explog := 304;
end;
startLevel := ConvertXpToLvl(BeginXP);
totalXP := (explog * B);
EndLevel := ConvertXpToLvl(BeginXP + totalXP);
LvlsGained := (endLevel - startLevel);
writeln('{TomTuffs Firemaker}');
writeln('{we ran for: ' + TimeRunning + '!}');
writeln('{we burnt ' + IntToStr(B) + ' ' + LogType + 's!}');
writeln('{we banked ' + IntToStr(BA) + ' Times!}')
writeln('{we gained ' + IntToStr(totalXP) + ' XP!}');
writeln('{beggining level: ' + IntToStr(startLevel) + '!}');
writeln('{ending level: ' + IntToStr(EndLevel) + '!}')
writeln('{we gained ' + inttostr(LvlsGained) + ' firemaking levels!}')
writeln('{TomTuffs Firemaker}');
end;
procedure ScriptTerminate;
begin
Logout;
Prog;
end;
procedure SetupFM;
begin
LoadFireMakingBitmaps;
SetupFiremaking;
end;
procedure antiban;
var
prob:integer;
begin
if random(20) < 3 then
prob := random(3);
case prob of
0:BoredHuman;
1: pickupmouse;
2: ExamineInv;
end;
FixCam;
end;
procedure BurnLog;
begin
FixCam;
GameTab(5);
if FindBitmapIn(LogMask,x,y,MIX1,MIY1,MIX2,MIY2) then
begin
Antiban;
mouse(x,y,4,4,true);
inc(B);
end
else
begin
writeln('could not find Log while burning, stopping script...');
ScriptTerminate;
end;
if FindBitmapIn(TinderBox,x,y,MIX1,MIY1,MIX2,MIY2) then
begin
antiban;
Mouse(x,y,4,4,true);
end;
LightWait;
FindNormalRandoms;
end;
procedure WalkToBurnPlace;
begin
FixCam;
if DTMRotated(RoadDDTM,x,y,654,94,679,120) then
begin
mouse(x,y,2,2,true);
writeln('walking to burning spot...');
end
else
begin
writeln('couldnt find RoadDDTM');
ScriptTerminate;
end;
time := 0;
marktime(time);
while time < 20000 do flag
end;
procedure WalkToBankSpot;
begin
FixCam;
mousebox(670,33,679,60,1);
if DTMRotated(Road2DDTM,x,y,654,78,679,92) then
begin
Antiban;
mouse(x,y,5,5,true);
time := 0;
marktime(time);
while time <8000 do flag;
end
else
begin
writeln('couldnt find road path, Terminating Script')
ScriptTerminate;
end;
if DTMRotated(BankDDTM,x,y,373,25,662,59) then
begin
Antiban;
mouse(x,y,1,1,true);
time := 0;
marktime(time);
while time <6000 do flag;
end
else
begin
Writeln('couldnt find bankspot, stopping script');
ScriptTerminate;
end;
end;
procedure Bank;
begin
FixCam;
FindNormalRandoms;
if FindBitmapIn(LogMask,x,y,MIX1,MIY1,MIX2,MIY2) then //lookin for logs
writeln('logs were found in inventory, walking to burn place)')
else
begin
OpenBankFast('vwb')
if BankScreen = true then
begin
inc(BA);
if(PinScreen)then inPin(players[CurrentPlayer].Pin);
FixBankTab;
FixBank;
Withdraw(1,2,27);
CloseBank;
end
else
begin
writeln('bankscreen not found, stopping....');
ScriptTerminate;
end;
end;
end;
begin;
cleardebug;
SetUpSRL;
SetupFM;
DeclarePlayers;
LoginPlayer;
GetFmXp;
repeat
if not(loggedin) then ScriptTerminate;
Bank;
WalkToBurnPlace;
for i := 0 to 26 do
BurnLog;
WalkToBankSpot;
until not(LoggedIn);
Prog;
SCriptTerminate;
end.
[/LEFT]