Well, I've spent alot of time on this now, and think it's somewhat ready to be released.
Features:
Antiban (Some)
Failsafes (Some)
Supports almost all cooking
And that's about it, for now..
Bugs:
Please inform me, so I can fix them ^^
Future:
More failsafes
User suggestions
Polishing
Usage:
Place your character by the fire in the Rogue's Den in Burthope
Put whatever you're cooking in the first row and first slot of your bank
Type in your information
Run
Code:
{ Welcome to Shadowmarkus' Rogues Den Cooker!
Place your character by the fire in Rogues Den (Burthope)
Declare players
Run
}
program RoguesDen_Cooker;
{$I SRL/SRL/misc/SMART.simba}
{$I SRL/SRL.simba}
const
//Smart Setup
SmartWorld = 16;
Members = True;
SignedClient = True;
HighDetail = False;
var
tri: integer;
procedure SetupPlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //Your login name/email
Players[0].Pass := ''; // Your password
Players[0].Active := True;
Players[0].Nick := ''; // 3-4 letters from your ingame name
end;
procedure ProgressReport;
begin
ClearDebug;
WriteLn('Shadowmarkus Rogues Den Cooker');
WriteLn('--------------------------------------');
WriteLn('Script Ran For: ' + TimeRunning);
// WriteLn('Experience gained' + IntToStr(exp));
WriteLn('--------------------------------------');
end;
procedure DoWithdraw;
begin
if (bankscreen) then
begin
MouseBox(38, 92, 71, 117, Mouse_Right);
WaitOptionMulti(['ithdraw-All', 'w-A'], RandomRange(250, 500));
end;
end;
procedure AntiBan;
begin
if (not (LoggedIn)) then
Exit;
case random(5000) of
0: SleepAndMoveMouse(1232 + random(857));
45:
begin
HoverSkill('cooking', False);
GameTab(tab_inv);
end;
3: MMouse(random(250), random(250), 10, 10);
4: PickUpMouse;
5: ExamineInv;
5:
begin
GameTab(1 + Random(12));
wait(1000 + random(1000));
GameTab(tab_inv);
end;
end;
end;
procedure Findbanker;
var
FindBankerTimer, x, y: integer;
tri: integer;
begin
if FindObj(x, y, 'ened',3299902, 15) then
begin
Mouse(x, y, 5, 5, False);
ChooseOption('ank');
end;
MarkTime(FindBankerTimer);
repeat
until (bankscreen) or (TimeFromMark(FindBankerTimer) > 1000)
if (TimeFromMark(FindBankerTimer) > 2500) then
if (tri < 5) then
begin
inc(tri);
if FindSymbol(x, y, 'Bank') then
begin
Mouse(x, y, 0, 0, Mouse_Left);
end;
Findbanker;
if (tri > 5) then
begin
writeln('Failed banking five times, IQuit');
TerminateScript;
end;
end;
deposit(1, 28, true);
DoWithdraw;
while CloseBank do
begin
MouseSpeed := (MouseSpeed + RandomRange(-1, +3));
end;
end;
procedure Cook;
var
x, y, d, c, b, SlotCol, DTM, i, xx, yy: integer;
FoodCol: TIntegerArray;
aFound: Extended;
a: TInvenItem;
begin //burnt color at end
FoodCol := [1860553, 1661107, 8804991, 3289909];
DTM :=
DTMFromString('mWAAAAHicY2FgYNBkZGBgB+JSINYAYgkg/ggUFwLSYUD8ZZ8HQ3yoJ0NGjD9DWpQfgyRQDhkzomEQAACSbwfK');
if existsitem(1) then
MouseItem(1, Mouse_Left);
marktime(d);
repeat
until (FindDTMRotated(DTM, xx, yy, MSX1, MSY1, MSX2, MSY2, -Pi / 2, Pi / 2, Pi
/ 30, aFound)) or (TimeFromMark(d) > 5000)
if (TimeFromMark(d) > 5000) then
begin
if FindSymbol(x, y, 'Bank') then
begin
Mouse(x, y, 0, 0, Mouse_Left);
end;
cook;
end;
Mouse(xx, yy, 0, 0, Mouse_right);
ChooseOption('ire');
marktime(b);
repeat
until (FindColorTolerance(xx, yy, 2070783, MCX1, MCY1, MCX2, MCY2, 15) or
(TimeFromMark(b) > 5000))
if (TimeFromMark(b) > 5000) then
begin
Cook;
end;
wait(1600 + RandomRange(150, 250));
MouseBox(235, 403, 283, 453, 1);
a := GetInven(28);
SlotCol := GetColor(a.CenterPoint.x, a.CenterPoint.y - 3);
writeln(SlotCol);
markTime(c);
repeat
AntiBan;
if LevelUp then
begin
ClickContinue(true, true);
end;
until (not FindColorTolerance(xx, yy, SlotCol, 692, 431, 715, 451, 15) or
(TimeFromMark(c) > 68000))
FreeDTM(DTM);
end;
procedure MainLoop;
var
TimesToRepeat: integer;
begin
repeat
tri := 0;
inc(TimesToRepeat);
Findbanker;
Cook;
FindNormalRandoms;
ProgressReport;
until (TimesToRepeat > 99)
end;
begin
Smart_Server := SmartWorld;
Smart_Members := Members;
Smart_Signed := SignedClient;
Smart_SuperDetail := HighDetail;
SetupSRL;
SetupPlayers;
ActivateClient;
SetAngle(SRL_ANGLE_High);
if not LoggedIn then
LogInPlayer;
MainLoop;
end.