Footy
2012-09-23 20:28:27
How Long have You Played Runescape?
7 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
PascalScript
Slowly learning Javascript
Are you a member of any other communities?
RSBuddy - Footy4102
Tell us about yourself…
Please show us one (or multiple) of your scripts.
7 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
PascalScript
Slowly learning Javascript
Are you a member of any other communities?
RSBuddy - Footy4102
Tell us about yourself…
From: Footy
My name is Nathan. I enjoy sports and learning new stuff( :p ). This is my second time applying, hopefully this time I will show I got what it takes to be a member, :D
The script I'm showing today is my NardahCooker. It is one of the newer scripts I've made. This script cooks most fish at the Nardah oven. The Procedure HumanMMouse is Flights, everything else is mine.
Please show us one (or multiple) of your scripts.
program NardahCooker;
{$DEFINE SMART}
{$i srl/srl.simba}
type TCookingRecord = record
FishDTM, CookedFishDTM, XPEarned:integer;
WhatFish:string;
end;
const
Row = 1; //Row of fish in bank
Column = 2; //Column of fish in bank
ToCook = 4800; //How many fish to cook
var
TRecord:TCookingRecord;
Cooked, Breaks, CookscreenDTM:integer;
procedure DeclarePlayers;
Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //Username Here!
Players[0].Pass := ''; //Password Here!
Players[0].Pin := ''; //Pin here!
Players[0].Active := True;
Players[0].Integers[0] := 4; //What fish here!
End;
procedure LoadDTM;
begin
CookScreenDTM := DTMFromString('mWAAAAHicY2FgYGhhZGDYB8SfgfgTkD+LEYKnQ/H/GfIMCzwFGB5s8GH4//8/gwhQDTJmRMMgAADfgw1x');
end;
procedure FreeTheDTMs;
begin
FreeDTMs([CookScreenDTM, TRecord.FishDTM, TRecord.CookedFishDTM]);
end;
procedure LoadTCookingRecordandDTMs;
begin
case (Players[CurrentPlayer].Integers[0]) of
1: begin
TRecord.WhatFish := 'Shrimp';
TRecord.XPEarned := 30;
TRecord.FishDTM := DTMFromString('m6wAAAHic42ZgYHBhYmBwAmJ3IA4E4hAgjgZiXyC2A+JQqDiIr8/IwKANxNZArArEZkCsBcQ2QKwDFQPJgdRNSxQBms5EFP7PQDxgJAEjAQA0iwey');
TRecord.CookedFishDTM := DTMFromString('m6wAAAHic42ZgYHBhYmBwAmJ3IA4E4hAgjgZiXyC2A+JQqDiIr8/IwKANxNZArArEZkCsBcQ2QKwDFQPJgdRNSxQBms5EFOZiIB4wkoCRAADVvQa9');
end;
2: begin
TRecord.WhatFish := 'Trout';
TRecord.XPEarned := 70;
TRecord.FishDTM := DTMFromString('mlwAAAHicY2dgYChhYmAoB+IcIK4D4jIouwGIjRgZGMwYIbQeEKsDsTUQqwBxf2cnUDcTVszFgBsw4sFQAADmMgZg');
TRecord.CookedFishDTM := DTMFromString('mwQAAAHic42RgYChlYmDIBeJiIG4C4iogzoTyq4E4D4iNGRkYDIHYEoi1gVgLiK2gbCMgtgbizNgooGlMeDEXA2HASASGAwBaCgdC');
end;
3: begin
TRecord.WhatFish := 'Salmon';
TRecord.XPEarned := 90;
TRecord.FishDTM := DTMFromString('mggAAAHicY2NgYJjPxMAwA4hnA/FKIF4ExJOB2IiRgcEAiK2AWBeINYDYEohnxIcAdTFhYC4G7IARB4YAAIsVBlg=');
TRecord.CookedFishDTM := DTMFromString('mrAAAAHic42BgYFjAxMCwGIhnAvF0KHsVEK8B4slAbMjIwGACxNaMELYWEOsAsRoQmwPxLktJoClMODEXA37ASADDAABDNQfQ');
end;
4: begin
Trecord.WhatFish := 'Tuna';
TRecord.XPEarned := 100;
TRecord.FishDTM := DTMFromString('mbQAAAHicY2VgYMhlYmBIAeJ8IC4C4jggtmFkYLAEYmcgNgFiFyDuaW8DqmZCwSIMmIARCwYDAJc0BQ8=');
TRecord.CookedFishDTM := DTMFromString('mWAAAAHicY2FgYGhhZGDYB8SfgfgTkD+LEYKnQ/H/GfIMCzwFGB5s8GH4//8/gwhQDTJmRMMgAADfgw1x');
end;
5: begin
TRecord.WhatFish := 'Lobster';
TRecord.XPEarned := 120;
TRecord.FishDTM := DTMFromString('mggAAAHicY2NgYDjLBMGXgXgPEB8C4itA7M/IwJAExK5AHAzEsUAcBsRRxtJAXUwYmIsBO2DEgSEAACAeB5Y=');
TRecord.CookedFishDTM := DTMFromString('mlwAAAHicY2dgYKhkYmBoAOJqIM4A4gIgrgPidiAuZWRgKATiViCuAOICIM4D4hwgnusrCtTNhBVzMeAGjHgwFAAAg9oHtw==');
end;
6: begin
TRecord.WhatFish := 'Swordfish';
TRecord.XPEarned := 140;
TRecord.FishDTM := DTMFromString('mggAAAHicY2NgYFjExMAwE4gnAfFKIF4NxLOB2JeRgSESiGOB2BuII6D0rJxFQF1MGJiLATtgxIEhAADzfAeI');
TRecord.CookedFishDTM := DTMFromString('mbQAAAHicY2VgYFjAxMAwE4hnAPFqKPZjZGCIBOIgRgg7HIjrI9uAqplQMBcDJmDEgsEAABCxBk8=');
end;
7: begin
TRecord.WhatFish := 'MonkFish';
TRecord.XPEarned := 160;
TRecord.FishDTM := DTMFromString('mggAAAHicY2NgYChlYmCoAuJmIM4A4hwgbgfiIEYGhmgg9mOEsGOAOBKIUz0sgLqYMDAXA3bAiANDAABScgXn');
TRecord.CookedFishDTM := DTMFromString('mlwAAAHicY2dgYChhYmAoBeIMIK4A4kYgbgHiWiAOYmRgiAXiQCD2hdJeQBwJxEEedkDdTFgxFwNuwIgHQwEADnIGng==');
end;
8: begin
TRecord.WhatFish := 'Shark';
TRecord.XPEarned := 200;
TRecord.FishDTM := DTMFromString('mlwAAAHicY2dgYHBnYmDwBOJwILYDYmcg9gfiECAuY2RgqAPiQiBuBuJsKG4B4sTYGKBuJqyYiwE3YMSDoQAA6MMGoQ==');
TRecord.CookedFishDTM := DTMFromString('mlwAAAHicY2dgYHBnYmDwBOJwILYDYmcg9gfiECAuY2RgqAPiQiBuBuJsKG4B4sTYGKBuJqxYkgE3YMSDoQAA7HQGsA==');
end;
9: begin
TRecord.WhatFish := 'Rocktail';
TRecord.XPEarned := 230;
TRecord.FishDTM := DTMFromString('mbQAAAHicY2VgYPBgYmCIAGI3IHYEYn8gDmNkYAgAYn8gjgFiTyCO6JwPVM2EgrkYMAEjFgwGAHS1BLw=');
TRecord.CookedFishDTM := DTMFromString('mbQAAAHicY2VgYPBgYmCIAGI3IHYEYn8gDmNkYAgAYn8gjgFiTyCO6JwPVM2EgjUYMAEjFgwGAHn7BNo=');
end;
end;
end;
procedure SetupStuff;
begin
SetupSRL;
DeclarePlayers;
Loginplayer;
wait(randomrange(500, 1000));
FindNormalRandoms;
wait(randomrange(500, 1000));
Clicknorth(SRL_ANGLE_HIGH);
end;
function WaitFlag(time:integer):boolean;
var
counter:integer;
begin
marktime(counter);
repeat
wait(randomrange(200, 400));
if FlagPresent then
begin
result := true;
exit;
end;
until(timefrommark(counter)) > time;
writeln('Flag didnt appear!');
Result := False;
end;
procedure MouseOffscreen;
var
w, h:integer;
begin
getclientdimensions(w, h);
case random(10) of
0..5: mmouse(randomrange(0, w), randomrange(-54, -60), 1, 1); //North
6: mmouse(w + randomrange(30, 50), randomrange(0, h), 2, 2); //East
7..8: mmouse(randomrange(0, w), h + randomrange(30, 50), 2, 2);//South
9: mmouse(0 - randomrange(10, 30), randomrange(0, h), 2, 2); //West
end;
end;
procedure Minibreaker;
begin
if not(loggedin) then
exit;
case random(150) of
1: begin
writeln('Taking a quick break! Be right back!');
MouseoffScreen;
wait(randomrange(30000, 100000));
writeln('Were back! Lets start cooking!');
inc(breaks);
end;
end;
end;
procedure Antiban;
begin
if not(loggedin) then
exit;
FindNormalRandoms;
case random(4000) of
1: begin writeln('Antiban: Short AFK'); MouseOffScreen; wait(randomrange(10000, 30000)); end;
2..5: begin writeln('Antiban: Checking skills'); Gametab(tab_stats) wait(randomrange(10000, 20000)); gametab(tab_Inv); wait(randomrange(100, 200)); end;
6..8: begin writeln('Antiban: Checking Fletching XP'); Gametab(tab_stats) wait(randomrange(200, 600)); HoverSkill('Fletching', false); wait(randomrange(2000, 10000)); Gametab(tab_Inv); wait(randomrange(200, 450)); end;
9..12: begin writeln('Antiban: Sleepandmovemouse'); sleepandmovemouse(randomrange(1000, 10000)); end;
14..15: begin writeln('Antiban: Checking whos online'); Gametab(tab_Friends); wait(randomrange(2000, 3000)); Gametab(tab_Inv); wait(randomrange(100, 200)); end;
16..17: begin writeln('Antban: Checking moneys'); if ismoneypouchopen then Exit else togglemoneypouch(true); wait(randomrange(1000, 5000)); togglemoneypouch(false); wait(randomrange(100, 600)); end;
18..19: begin writeln('Antiban: Checking XP Counter'); togglexpbar(true); wait(randomrange(600, 5000)); togglexpbar(false); wait(randomrange(700, 1500)); end;
end;
end;
procedure Proggy;
begin
if not(loggedin) then
exit;
FindNormalRandoms;
Cleardebug;
writeln('***************************************************');
Writeln(' Footys AIO Cooker');
Writeln('***************************************************');
Writeln('Time running = ' + (TimeRunning));
Writeln('We are Cooking ' + (TRecord.WhatFish) + '!');
Writeln('We have Cooked ' + IntToStr(Cooked) + ' Fish so far!!');
Writeln('We have Earned ' + IntToStr(TRecord.XPEarned * Cooked) + ' XP so far!');
Writeln('We are Cooking ' + IntToStr(round(3600000 * 1.0 / GetTimeRunning * Cooked)) + ' Fish per hour!');
Writeln('We are Earning ' + IntToStr(round(3600000 * 1.0 / GetTimeRunning * TRecord.XPEarned * Cooked)) + ' XP Per hour!');
Writeln('We have Taken ' + IntToStr(Breaks) + ' MiniBreaks so far!');
Writeln('Thanks for using Footys AIO Cooker!!! Please leave feedback on the script thread!');
Writeln('***************************************************');
end;
procedure HumanMMouse(eX, eY, rX, rY: Integer); //Procedure by Flight
var
randSpeed: extended;
X,Y,A,Dist,MP: integer;
begin
A := MouseSpeed;
GetMousePos(X, Y);
Dist := Distance(X, Y, eX, eY);
MP := Round(Dist/150);
if MP < 0 then
MP := 1;
randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
MMouse(RandomRange(eX-(A*MP), eX+(A*MP)), RandomRange(eY-(A*MP), eY+(A*MP)), 0, 0);
GetMousePos(X, Y);
MMouse(eX, eY, rX, rY);
MouseSpeed := A;
end;
function BankProcedure:boolean;
var
x, y:integer;
begin
if not loggedin then
exit;
if not bankscreen or pinscreen then
begin
writeln('We arent at the bank! Logging out!');
Logout;
FreeTheDTMs;
Terminatescript;
end;
if pinscreen then
inpin(Players[CurrentPlayer].Pin);
wait(randomrange(500, 1000));
DepositAll;
Withdraw(column - 1, row - 1, 28);
WaitFindDTM(x, y, TRecord.FishDTM, 1000);
repeat
closebank;
wait(randomrange(500, 1250));
until(not bankscreen);
if findDTM(TRecord.FishDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
Result := True else
Result := False;
end;
procedure BanktoOven;
var
BankTPA:TPointArray;
box:Tbox;
tmpCTS, counter, counter2, x, y, C:Integer;
Mouseoff:boolean;
begin
if not loggedin then
exit;
FindNormalRandoms;
colortolerancespeed(2);
SetColorSpeed2Modifiers(0.02, 0.51);
if Findcolorstolerance(BankTPA, 3568017, 399, 211, MSX2, MSY2, 16) then
writeln('We found possible colors for the oven') else
begin
writeln('We found no colors for the oven!');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
FreeTheDTMs;
Logout;
Exit;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Box := GetTPABounds(BankTPA);
Invmouse(randomrange(1, 13), mouse_move);
if waituptext('Use', 500) then
writeln('Found the fish in our inv!') else
begin
writeln('We didnt find the fish in our inv! Lets log out!');
Logout;
FreeTheDTMs;
Terminatescript;
end;
clickmouse2(mouse_left);
findnormalrandoms;
wait(randomrange(50, 250));
case random(2) of
0: begin
writeln('Mousebox this time');
MouseTBox(Box, Mouse_move);
end;
1: begin
writeln('HumanMMouse this time');
HumanMmouse(randomrange(box.x1, box.x2), randomrange(box.y1, box.y2), 2, 2);
end;
end;
if waituptextmulti(['lay', 'Clay', 'lay o', 'lay O'], 500) then
wait(randomrange(20, 120)) else
begin
findnormalrandoms;
writeln('We didnt find the oven uptext that time! Lets try again');
MouseTBox(Box, mouse_move);
if waituptextmulti(['lay', 'Clay', 'lay o', 'lay O'], 500) then
writeln('We found the uptext this time! Moving on!') else
begin
writeln('We didnt find the uptext the second time!');
Logout;
Exit;
end;
end;
clickmouse2(mouse_left);
if didredclick then
writeln('Red clicked!') else
begin
writeln('Red never clicked! Lets see if the cooking screen comes up!');
wait(randomrange(1500, 2500));
if DTMExists(CookScreenDTM) then
writeln('We are at the oven!') else
begin
writeln('We arent at the oven! Logging out!');
Logout;
Exit;
end;
end;
findnormalrandoms;
wait(randomrange(300, 700));
marktime(counter);
repeat
wait(randomrange(50, 200));
if timefrommark(counter) > 10000 then
begin
writeln('The CookScreenDTM Never showed!!');
Logout;
FreeTheDTMs;
Exit;
end;
until(findDTM(CookScreenDTM, x, y, MCX1, MCY1, MCX2, MCY2));
findnormalrandoms;
writeln('We found the cookscreen DTM!');
wait(randomrange(100, 400));
case random(2) of
0: Mousebox(246, 411, 277, 447, mouse_left);
1: begin
HumanMMouse(randomrange(246, 277), randomrange(411, 477), 2, 2);
wait(randomrange(15, 80));
clickmouse2(mouse_left);
end;
end;
findnormalrandoms;
if random(2) = 0 then
Mouseoff := True else
Mouseoff := False;
if Mouseoff then
MouseoffScreen;
marktime(counter2);
Minibreaker;
repeat
wait(randomrange(500, 2000));
if mouseoff then
wait(randomrange(50, 100)) else
case random(3) of
1: Sleepandmovemouse(randomrange(500, 2000));
end;
if not MouseOff then
antiban;
findnormalrandoms;
if not findDTM(TRecord.FishDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
if timefrommark(counter2) < 10000 then
begin
writeln('False positive!!');
Logout;
FreeTheDTMs;
Exit;
end;
writeln('Weve cooked all the fish! Lets bank!');
C := CountItems('DTM', TRecord.CookedFishDTM, []);
Cooked := Cooked + C;
exit;
end;
until(timefrommark(counter2) > 90000);
writeln('Something went wrong, we must have missclicked! Lets bank and try again!');
end;
procedure OventoBank;
var
BankTPA:TPointArray;
tmpCTS, counter, counter2, L, x, y, i:integer;
BankATPA:T2DPointArray;
TheResult:Boolean;
begin
if not loggedin then
exit;
colortolerancespeed(2);
SetColorSpeed2Modifiers(0.14, 1.08);
findnormalrandoms;
if findcolorstolerance(BankTPA, 6981788, 0, 82, 54, 123, 4) then
writeln('We found possible colors for the bank!') else
begin
writeln('We found no colors for the bank!');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Logout;
FreeTheDTMs;
Terminatescript;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
BankATPA := SplitTPAEx(BankTPA, 6, 4);
SortATPASize(BankATPA, true);
L := High(BankATPA);
marktime(counter);
for i := 0 to L do
begin
MiddleTPAEx(BankATPA[i], x, y);
mmouse(x, y, 5, 5);
if waituptext('Bank Uptext', 500) then
begin
writeln('We found the bank! Lets click on it!');
clickmouse2(mouse_left);;
break;
end;
if timefrommark(counter) > 5000 then
begin
writeln('We didnt find the bank! Logging out!');
Logout;
Terminatescript;
end;
end;
findnormalrandoms;
writeln('We clicked the bank!');
marktime(counter2);
repeat
wait(randomrange(50, 200));
if timefrommark(counter2) > 15000 then
begin
writeln('The bank never opened! Logging out!');
Logout;
FreeTheDTMs;
Terminatescript;
end;
until(Bankscreen or Pinscreen);
if pinscreen then
inpin(Players[CurrentPlayer].Pin);
wait(randomrange(1000, 2000));
writeln('Bank is opened');
BankProcedure;
end;
begin
SetupStuff;
DeclarePlayers;
LoadDTM;
LoadTCookingRecordandDTMs;
Minibreaker;
repeat
BanktoOven;
OventoBank;
Minibreaker;
Proggy;
until(cooked > ToCook);
Writeln('All fish have been cooked!');
FreeTheDTMs;
end.
