Simba Code:
program INSCrafter;
{$DEFINE SMART}
{$i SRL/srl.simba}
{$i sps/SPS.simba}
{$i srl/srl/misc/paintsmart.simba}
var
GoldBarDTM, GoldAmmyDTM, AmmyCraftDTM, Crafting_XP:integer;
Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0; // if you want to use the details which you enter below.
Players[0].Name := ''; // your player's name
Players[0].Pass := ''; // your player's password
Players[0].Pin := ''; // your player's bank pin
Players[0].BoxRewards := ['amp', 'owledg'];
Players[0].Active := True; // set to false if you don't want to use player 0
Players[0].LampSkill := SKILL_CRAFTING; // edit to any skill you want
end;
Procedure Start;
begin
ClearDebug;
Smart_Server := 0;
Smart_Members := False
Smart_Signed := True
Smart_SuperDetail := False
SetupSRL;
DeclarePlayers;
LoginPlayer;
end;
Procedure LoadDTMs;
begin
GoldBarDTM := DTMFromString('mbQAAAHicY2VgYFBnYWDQBmIzINYAYnkgnsPEwLAciGcD8WQgXgLE0R48QNVMDNdWyTEsbBBjsDXgYMAGGLFgMAAAJz4ICA==');
GoldAmmyDTM := DTMFromString('mbQAAAHicY2VgYAhiYWDwA+JwIA4DYl8gnsXEwDAPiqcD8TQgrqwXZDh+VIYhMoKHITaGl2HmdFEGbIARCwYDAMdSCj8=');
AmmyCraftDTM := DTMFromString('mggAAAHicY2NgYOBgYWDgBWJuIGYBYmYgZgfiDUwMDGuBeCsQb4KyVwPx9oPSDAvmiTFsXC/B8Oq5AsODu/IMO7dLMeACjDgwBAAALYUOMQ==');
end;
Procedure FreeDaDTMs;
begin
FreeDTM(GoldBarDTM);
FreeDTM(GoldAmmyDTM);
FreeDTM(AmmyCraftDTM);
end;
Procedure WalkToBank;
var
myPath:TPointArray;
begin
SPS_Setup(RUNESCAPE_SURFACE,['12_9']);
myPath := [Point(132, 318), Point(159, 330), Point(141, 367), Point(114, 397)];
SPS_WalkPath(myPath);
repeat
wait(300);
until(Not IsMoving);
end;
Procedure WalkToFurnace;
var
myPath:TPointArray;
begin
SPS_Setup(RUNESCAPE_SURFACE,['12_9']);
myPath := [Point(111, 396), Point(139, 383), Point(148, 345), Point(134, 320)];
SPS_WalkPath(myPath);
repeat
wait(300);
until(Not IsMoving);
end;
Function FindingBank(var x,y:Integer):boolean;
var
a:Integer;
TPA:TPointArray;
ATPA:T2DPointArray;
MP:TPoint;
tmpCTS:Integer;
Box,SearchArea:TBox;
begin
if not LoggedIn then Exit;
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.03,3.82);
SearchArea := IntToBox((MSCX - 200),(MSCY - 100),(MSCX),(MSCY + 150));
SMART_DrawBoxEx(True,SearchArea,clPurple);
FindColorsSpiralTolerance(MSCX,MSCY,TPA,10143726,MSCX -200,MSCY - 100 ,MSCX,MSCY + 150,9);
SortTPAFrom(TPA,point(MSCX,MSCY));
ATPA := TPAtoATPAEx(TPA,15,15);
for a := 0 to High(ATPA) do
begin
MP := MiddleTPA(ATPA[a]);
Box := IntToBox((MP.x - 20),(MP.y - 20),(MP.x + 20),(MP.y + 20));
SMART_DrawBoxEx(True,Box,clYellow);
MMouse(MP.x,MP.y,4,4);
if(WaitUpText('ooth',1000))then
begin
x := MP.x; y := MP.y;
Result := True
Mouse(x,y,1,1,1);
if(WaitFunc(@BankScreen,10,4000)) then
begin
DepositAll;
MouseBankSlot(1, mouse_Right);
WaitOption('ithdraw-All', 500)
SMART_ClearCanvas;
Exit;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2,0.2);
end;
Function FindFurnace(var x,y:Integer):boolean;
var
a:Integer;
TPA:TPointArray;
ATPA:T2DPointArray;
MP:TPoint;
tmpCTS:Integer;
Box,SearchArea:TBox;
begin
if not LoggedIn then Exit;
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.15,1.38);
SearchArea := IntToBox((MSCX - 200),(MSCY - 100),(MSCX),(MSCY + 150));
SMART_DrawBoxEx(True,SearchArea,clPurple);
FindColorsSpiralTolerance(MSCX,MSCY,TPA,3158066,MSCX -200,MSCY - 100 ,MSCX,MSCY + 150,9);
SortTPAFrom(TPA,point(MSCX,MSCY));
ATPA := TPAtoATPAEx(TPA,15,15);
for a := 0 to High(ATPA) do
begin
MP := MiddleTPA(ATPA[a]);
Box := IntToBox((MP.x - 20),(MP.y - 20),(MP.x + 20),(MP.y + 20));
SMART_DrawBoxEx(True,Box,clYellow);
MMouse(MP.x,MP.y,4,4);
if(WaitUpText('rnace',1000))then
begin
x := MP.x; y := MP.y;
Result := True
SMART_ClearCanvas;
Exit;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2,0.2);
end;
Procedure CraftDemAmmys;
var
x,y:integer;
TheRoad:TPointArray;
begin
SPS_Setup(RUNESCAPE_SURFACE,['12_8','12_9','12_10']);
TheRoad := [Point(111, 396), Point(139, 383), Point(148, 345), Point(134, 320)];
SPS_WalkPath(TheRoad);
InvMouse(1,1);
if (FindFurnace(x,y)) then
begin
If WaitColor(137, 228, 3358280, 0, 5000) then
Mouse(32490324, 329034, 5, 5, True);
end;
end;
Procedure ProgressReport;
var
XpH, AmmyCount, AmmysH:integer;
begin
XpH := round((Crafting_XP) / (GetTimeRunning / 360000.0));
AmmyCount := round((Crafting_XP) / (30));
AmmysH := round((AmmyCount) / (GetTimeRunning / 360000.0));
ClearDebug;
WriteLn('+-+-+-+-+-+-+ INS Crafter +-+-+-+-+-+-+');
WriteLn('Time Running' +TimeRunning);
WriteLn('XP Gained' +IntToStr(Crafting_XP));
WriteLn('XP Per Hour' +IntToStr(XpH));
WriteLn('Gold Ammys Crafted' +IntToStr(AmmyCount));
WriteLn('Gold Ammys/h' +IntToStr(AmmysH));
WriteLn('+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+');
end;
Procedure MainLoop;
var
x,y:integer;
begin
FindingBank(x,y);
Repeat
WalkToFurnace;
WalkToBank;
CraftDemAmmys;
until(AllPlayersInactive);
end;
begin
MainLoop;
end.