SRL Archive - Outdated / Broken

[SRL 5] SafeSwitcher 0.17


WT-Fakawi

2007-11-04 17:29:21

SafeCracker/ SafeSwitcher

by

WT-Fakawi

0.17

UPDATED 12-12-12!




This script will Crack Safes down in the cellar of Burthorpe Pub. It will bank the Gems at Benedict. It can now use a Stethoscope if you can buy it from Martin (npc with thieving skillcape…in the same room) Have lobster in your upper Bank Page. Use a Games Necklace to transport yourself to the Buthorpe Games Room.

Stand near the safes FACING SOUTH! I deliberately programmed it for the upper two safes, since these are usually not taken by other bots.

Some features:
  • Cracks Safes, autoeats and banks Gems.
  • Enhanced Bendict finding.
  • Can use Stethoscope if requirement are met @ Martin.
  • Ultra cautious script. Clean clicks. In case of ANY trouble it will log you out. No fooling around with member accounts.



Enjoy, and post some progress.

Bobarkinator

2007-11-04 17:31:36

Woot first post!

Didn't you say you were going to release this like 3 weeks ago :p

Anyways, as always, great coding. I have no members account to test, but I can still learn from your coding :)

HyperSecret

2007-11-04 17:41:37

very nice, same as bob dont have a members account (right now atleast) but will definantly read and learn from it but once i get members will definantly use

Timer

2007-11-04 17:57:01

Whoa! You've done it again Fakawi! I'd Love To Test But My Only Member Is My Main :( , and My Computer Laggggssssss Like Heck ( thats why I'm not #1 on srl stats user! lol :p ), I look over the script though, and it looks like pwnage! Itsss soooooooo (h) :)

P.S. I've always wondered what this was, I say it in your sig and searched 4 it ( long time ago ) and couldn't find it…

Narcle

2007-11-04 19:45:15

Zomg a NEW theiver! Time to level my thieve. Must try.

WT-Fakawi

2007-12-03 14:28:07

Had a good run…..Thieving 86 now :)


<============== - Progress Report ===============>
Worked for 5 Hours, 57 Minutes and 1 Seconds
Banked 37 Times
Cracked 2495 Safes
Failed 986 Safes
Ate 329 Food
Banked 308 Sapphires
Banked 202 Emeralds
Banked 100 Rubies
Banked 21 Diamonds
**********************************************

Hugolord

2007-12-03 15:47:02

I jsut love when you say this, looks like you have a real passion when witting your scripts =):

* Ultra cautious script. Clean clicks. In case of ANY trouble it will log you out. No fooling around with member accounts.

the scar noob

2007-12-03 16:00:44

From: hugolord
I jsut love when you say this, looks like you have a real passion when witting your scripts =):

* Ultra cautious script. Clean clicks. In case of ANY trouble it will log you out. No fooling around with member accounts.


Yes indeed, I have the same feeling. Also, I really don't kn ow how he mannage over and over again making perfect "slights" of bitmaps that always work:D

Sorry WT-Fakawi, but I can't test this script, because I don't have access to any me mber account.

Good luck with further progress of the script:),

-Tsn.

pwnaz0r

2007-12-03 18:38:24

<============== - Progress Report ===============>
Worked for 3 Hours, 39 Minutes and 51 Seconds
Banked 30 Times
Cracked 865 Safes
Failed 746 Safes
Ate 302 Food
Banked 109 Sapphires
Banked 78 Emeralds
Banked 49 Rubies
Banked 4 Diamonds
**********************************************

I like it, went from 54 to 58 :D

t3hl33tn00b

2007-12-03 19:17:36

definatly running this tonight :D but does anyone know what we are able to get from the chest?

Ejjman

2007-12-03 21:50:06

Now…

Need an Edgeville Smither with the Varrock Achievement quest done.

Then I"ll have…

Fighter
Smither
Thiever.

:)

Thanks Fawki.

EDIT: lvl 46 theiving lol. fastest from 46-50 anyone? Thanks.
EDIT2: hah. 52 I mean :D lol.

WT-Fakawi

2007-12-04 02:36:03

From: t3hl33tn00b
definatly running this tonight :D but does anyone know what we are able to get from the chest?
Uncut Gems. Use sapph necklace to telly to Burthorpe Gamesroom, then go down the cellar in the pub outside the Gamesroom.

Harry

2007-12-04 17:46:36

Love you <3 What level do you need of theif to use?

Ejjman

2007-12-07 22:02:22

Fawk, can I have stethoscope in inveotroy?

WT-Fakawi

2007-12-08 12:46:19

From: Ejjman1
Fawk, can I have stethoscope in inveotroy?


yes you can, but it will bank it :)

WT-Fakawi

2007-12-18 06:52:08

Thought I'd let you all know….I just hit Thieving - 90 with this script :) only 500k to 91 *yawn*

Stats not all correct but give a general impression….

My "Main" hit Crafting-79 just cutting gems :)

BobboHobbo

2007-12-18 06:58:25

Nice fawki! Ill be catching maybe in a few years time :)

twixster

2007-12-22 14:40:19

what thieving level do you need to start this?

Sp0rky

2007-12-23 11:26:19

50.

And fawaki, if you ever run out of membership, I'll buy some some >_>

Timer

2007-12-26 09:43:37

Umm…
* Ultra cautious script. Clean clicks. In case of ANY trouble it will log you out. No fooling around with member accounts.

Does that mean its safe for my Main?:rolleyes:

the scar noob

2007-12-28 15:28:15

I want to try this out now, do you think it'll still work?

Which thieving level do I must have btw?

-Tsn.

EDIT: Can someone show me with a pic or something, were this is?;)

-Tsn.

Nvm my main is only 38agility :(

WT-Fakawi

2007-12-28 17:18:32

You need to go to the burthorpe gamesroom. Use an enchanted sapphire necklace. Walk to the pub south. and enter the trapdoor. Sample the brown outline color of the safe. My Player is thieving-93 now :)

mastaraymond

2007-12-28 17:19:49

From: WT-Fakawi
You need to go to the burthorpe gamesroom. Use an enchanted sapphire necklace. Walk to the pub south. and enter the trapdoor. Sample the brown outline color of the safe. My Player is thieving-93 now :)


What are you going to do when it reaches 99? Sell him? :p

WT-Fakawi

2007-12-28 17:27:39

erm. no. I am just pushing it to see if it is possible with SRL. Not sure if there are others like me around doing the same these days, but 99 can be done. I have 7.5 mil XP, I need 13 mil. I am number 3200 thieving.

If ever I proven SRL is safe, it is on this Player :)

mastaraymond

2007-12-28 17:32:14

From: WT-Fakawi
erm. no. I am just pushing it to see if it is possible with SRL. Not sure if there are others like me around doing the same these days, but 99 can be done. I have 7.5 mil XP, I need 13 mil. I am number 3200 thieving.

If ever I proven SRL is safe, it is on this Player :)


I guess you already proved its safe, never some somebody get such high levels. I just was wondering what you would do with it :p, seems pretty useless to me, 99 thieving.. Except it proves, how safe SRL is, and will be if you use it right.

Bobarkinator

2007-12-28 18:10:34

From: mastaraymond
I guess you already proved its safe, never some somebody get such high levels. I just was wondering what you would do with it :p, seems pretty useless to me, 99 thieving.. Except it proves, how safe SRL is, and will be if you use it right.


Your "except" is Fakawi's point ;) I'm might go down this same rode Fakawi, it sounds very challenging and very rewarding when achieved.

the scar noob

2008-01-02 05:52:10

From: WT-Fakawi
erm. no. I am just pushing it to see if it is possible with SRL. Not sure if there are others like me around doing the same these days, but 99 can be done. I have 7.5 mil XP, I need 13 mil. I am number 3200 thieving.

If ever I proven SRL is safe, it is on this Player :)


Thanks fakawi for the info:)
The same day I posted, I tele'd to the games room.. and got stuck:p
I begged a lot of ppl to show me were it was, when I finally arrived, I saw that my thieving lvl is to low to use the script:p

Thanks anyways, I'm going to use your Bird Hunter now, I just found out were to use it, western of the Tree Gnome Stronghold;)

-Tsn.

the scar noob

2008-01-14 17:30:46

Hehe, I've finally tested it out;) Here's a proggy:

<============== - Progress Report ===============>
Worked for 27 Minutes and 32 Seconds
Banked 5 Times
Cracked 80 Safes
Failed 86 Safes
Ate 60 Food
Banked 13 Sapphires
Banked 7 Emeralds
Banked 13 Rubies
Banked 0 Diamonds
**********************************************
Name : ** *****
Number : 0
Worked for : 0 minutes.
Active : True
**********************************************
0 : ** ***** = T. TH 53. W : 0 min.
**********************************************


5 Sapphires
2 Emeralds
1 Rubies
0 Diamonds

5 Sapphires
2 Emeralds
1 Rubies
0 Diamonds
Couldnt Find Bank
Successfully executed


/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\
| SRL 4 Randoms Report |
| www.srl-forums.com |
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
| Talks : 1 |
| Sandwiches : 1 |
\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/


Nice, too bad it couldn't find the bank after 5 banks :)

Btw, by using your scripts I gained from lvl 38 > 53 Thieving atm ;) (1 lvl gained while using the safecracker, the others by MFT;))

-Tsn.

Swift

2008-01-18 13:59:59

From: mastaraymond
I guess you already proved its safe, never some somebody get such high levels. I just was wondering what you would do with it :p, seems pretty useless to me, 99 thieving.. Except it proves, how safe SRL is, and will be if you use it right.



That's not true. I'm currently 92/99 fletching. All autoed :p.
(Check my sig)

R0b0t1

2008-02-17 14:09:56

Which GameTab is 4? Because mine always crashes and says inv screen not open.


Sigh…

Its when it needs to eat… IT doesn't switch to invy or w/e.

Swift

2008-02-18 08:52:44

Have you fixed your gametabs?

Check this post, Robot:
http://www.villavu.com/forum/showthread.php?t=25836

R0b0t1

2008-02-18 14:20:59

If that fixes it, I will love you eternally.

Bobarkinator

2008-02-18 14:25:43

It does.

R0b0t1

2008-02-18 14:56:01

Okay, I promised.


I love you Swift!

Swift

2008-02-18 15:02:29

But, will it be eternal?

R0b0t1

2008-02-21 18:38:16

Yes. Yes… I promised that too.



But does anyone know how Fawki can get those 5 hour runs? I can only get it to run for a max of 40 mins :(

Harry

2008-02-29 17:54:28

Line 186, i changed to CountItems and I still get errors :(

Wizzup?

2008-02-29 18:13:48

{.Script Info:
# ScriptName = Safe Cracker
# Author = WT-Fakawi
# Description = Cracks Safe. Banks gems.
# Version = 0.22
# Date = Sun. Nov 4, 2007.
# Comments = SRL 4 Rev #6.
/Script Info}
//----------------------------------------------------------------------------//
// *
// * NAME : Safe Cracker
// * WRITER : WT-Fakawi
// * CATEGORY : Collecting/Banking
// * DESCRIPTION : Cracks safes and banks Gems.
// * USAGE : Sample the Safe Color, the brown outline color! LINE 32
// * Start near Benedict, Face Down. Make Sure BankSymbol
// * is uncovered.
// * AUTOCOLOR : NO.
// * NOTES : SRL 4 Rev #6
//----------------------------------------------------------------------------//
// 1. USE the DEFAULT Runescape Client with Low Detail, Very Bright.
// 2. Set your Screen to 32 bit TRUE color.
// 3. Find yourself a quiet World.
// 4. Position your char near Benedict at Burthorpe Pub's cellar
// 5. HAVE FOOD (LOBSTER/SALMON) VISIBLE IN UPPER BANK PAGE
//----------------------------------------------------------------------------//

program SafeCracker;
{.include SRL/SRL.scar}

// SAMPLE THE BROWN OUTLINE OF THE SAFE
Const SafeColor = 2897976;
// SAMPLE THE BROWN OUTLINE OF THE SAFE



Const TheFood = 'lobster'; // two choices for now: 'lobster' and 'salmon'

Const VersionNumber = '0.21';
const RemoteMaster = ''; //<- fill in the Nickname of the RC master
const MySRLID = ''; //<- Your SRLID. Leave blank if you dont have one.
const MySRLPassword = ''; //<- Your SRL Password here if you want to have yout stats logged

var
Sapphires, Emeralds, Rubies, Diamonds,
Fails, Cracks, NewFails, OldFails, NewCracks, OldCracks, Ate, OAte, NAte,
MMCrackSafe, MMCrackSafe2, MMCrackSafe3, LSx, LSy, Start, Emergency, Food,
Dumx, Dumy, FoodHeals, FoodLeft, Damage :Integer;


//----------------------------------------------------------------------------//

Procedure DeclarePlayers;
begin
NumberOfPlayers(1);
CurrentPlayer := 0;

Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Active := True;
end;

//----------------------------------------------------------------------------//

Procedure Down;

Begin
KeyDown(VK_DOWN);
Wait(2500 + Random(1000));
KeyUp(VK_DOWN);
End;

//----------------------------------------------------------------------------//

Procedure Up;

Begin
KeyDown(VK_UP);
Wait(2500 + Random(1000));
KeyUp(VK_UP);
End;

//----------------------------------------------------------------------------//

Function ClickColorSpiral(CenterX, CenterY, Color, Xoff, Yoff, Pause:Integer):Boolean;
begin
if FindColorSpiral(CenterX, CenterY, Color, MMX1, MMY1, MMX2, MMY2) Then
begin
MFF(CenterX + Xoff, CenterY + Yoff, 1, -1);
Wait(Pause);
FFlag(0);
FindNormalRandoms;
Result:=True;
end;
end;

//----------------------------------------------------------------------------//

procedure PlayerStats;

var Active: string;
var i: Integer;
begin
writeln('**********************************************');
writeln('Name : '+ Players[CurrentPlayer].Name);
writeln('Number : '+ inttostr(CurrentPlayer));
writeln('Worked for : '+ inttostr(Players[CurrentPlayer].Worked)+' minutes.');
if Players[CurrentPlayer].Active=True then Active:='True' else Active:='False';
writeln('Active : '+ Active);
writeln('**********************************************');

for i := 0 to HowManyPlayers-1 do
begin
if Players[i].Active=True then Active:='T' else Active:='F';
writeln( (inttostr(i))+' : '+Players[i].name + ' = '+Active
+'. '
+'TH '+inttostr(Players[i].level[11])+'. '
+'W : '+IntToStr(Players[i].Worked)+' min. ');
end;
writeln('**********************************************');
end;

//----------------------------------------------------------------------------//

procedure ProgressReport;
begin
begin
WriteLn(' ');
WriteLn('<============== - Progress Report ===============>');
writeln('Worked for '+ TimeRunning);
writeln('Banked '+ IntToStr(Banks)+ ' Times');
writeln('Cracked '+ IntToStr(Cracks)+ ' Safes');
writeln('Failed '+ IntToStr(Fails)+ ' Safes');
writeln('Ate '+ IntToStr(Ate)+ ' Food');
writeln('Banked '+ IntToStr(Sapphires)+ ' Sapphires');
writeln('Banked '+ IntToStr(Emeralds)+ ' Emeralds');
writeln('Banked '+ IntToStr(Rubies)+ ' Rubies');
writeln('Banked '+ IntToStr(Diamonds)+ ' Diamonds');

PlayerStats;
Writeln(' ');
end;
end;

procedure LoadCSBitmaps;
begin
MMCrackSafe := BitmapFromString(4, 6, 'beNpz5YxxRSAGIsCX50/' +
'gCKEXAIWlEE0=');
MMCrackSafe2 := BitmapFromString(1, 21, 'beNpjYICAzlQBUhFIG' +
'wACahDf');
MMCrackSafe3 := BitmapFromString(1, 28, 'beNpLFehMFXj69h0DD' +
'AC5ZCC4dqBRnQAywhlZ');
end;

//----------------------------------------------------------------------------//

procedure SetFood(WhatFood:String);
begin
case WhatFood of
'lobster':
Begin
Food := BitmapFromString(11, 14, 'z78DA33302016B86100038' +
'A017E7388B105971AE25DE8860350E20B4A4C202F6C87BA09D48A' +
'477A9A406A9A21553D000D2CBE45');
FoodHeals := 12;
End;
'salmon':
Begin
Food := BitmapFromString2(False, 'a0AA9478DACDD04B0A80300' +
'C04D02B4D3F69B3556BEF7F2433D92808A29482593C0A69261000' +
'68D1802E467625EF7457DA8B5902FF1464332A15D9CEAE078826B' +
'E6B306B64B7A646A553CF4C2A66587D00E85E9850D7E4195BEE99' +
'B3B7FCFF56FDB1C66F3532F5BEBEE61FA70');
FoodHeals := 9;
End
end
end;

//----------------------------------------------------------------------------//

Function HaveFood(var Lx, Ly:Integer): Boolean;
var Dx, Dy:integer;
begin
GameTab(4);
FoodLeft := CountItems(Food, 'bmp',[20]);//CountItemBmpTol(Food,20);
if FindBitmapMaskTolerance(Food,Dx, Dy, MIX1, MIY1, MIX2, MIY2, 30, 30) then
begin
Lx := Dx;
Ly := Dy;
Result := True;
end
else Result := False;
end;

//----------------------------------------------------------------------------//

procedure Quit(reason:String);
begin
Logout;
writeln(reason);
TerminateScript;
end;

//----------------------------------------------------------------------------//

function CountItemCol(Col: Integer): Integer;
var
i, x, y: Integer;
TB: Tbox;
begin
for i := 1 to 28 do
begin
TB := InvBox(i);
if ExistsItem(i) then
if FindColorTolerance(x, y, Col, TB.x1, TB.y1, TB.x2, TB.y2, 20) then
Inc(Result);
end;
end;

//----------------------------------------------------------------------------//

Procedure CountLoot;
var
Sb, Eb, Rb, Db: Integer;

begin

Sb := CountItemCol(9573906);
Eb := CountItemCol(1477648);
Rb := CountItemCol(858746);
Db := CountItemCol(11776948);

writeln(' ');
writeln(IntToStr(Sb) + ' Sapphires' );
writeln(IntToStr(Eb) + ' Emeralds' );
writeln(IntToStr(Rb) + ' Rubies' );
writeln(IntToStr(Db) + ' Diamonds' );
end;

//----------------------------------------------------------------------------//

function FlagFTWait:Boolean;
var FlagMark: Integer;
begin
MarkTime(FlagMark);
if not FlagPresent then
begin
Result := False;
Exit;
end
else
begin
repeat
FTWait(1);
if not(Loggedin) then break;
until ( (not FlagPresent) or (TimeFromMark(FlagMark) > 6000) ); // waits until flag is gone or 6 seconds.
Result := True;
Wait(250);
end;
end;

//----------------------------------------------------------------------------//

Function ToSafe:Boolean;
var
Gx, Gy:Integer;
begin
MakeCompass('N');
Gx := 711;
Gy := 100;
if FindBitmapSpiralTolerance(MMCrackSafe3, Gx, Gy, MMx1, MMy1, MMX2, MMY2, 20) then
begin
Writeln('bitmap found');
MFF(Gx, Gy , 0, 10);
FFlag(0);
FTWait(4);
Result := True;
end
else
begin
MFF(693 + Random(4), 90 + Random(4), 0, 1);
FFlag(0);
FTWait(4);
Result := True;
end;
end;

//----------------------------------------------------------------------------//

Function ClickSafe:Boolean;
var
x, y :integer;
begin
x := LSx;
y := LSy;
if FindColorSpiralTolerance(x, y, SafeColor, MSx1, MSy1, MSx2, MSy2, 2) then
begin
MMouse(x, y, 5, 10);
GetMousePos(x, y);
Wait(100);
if isUpText('safe') then
begin
LSx := x;
LSy := y;
Mouse(x, y, 0, 0, True);
Result := True;
end
else Result := False;
end
end;


// -------------------------------------------------------------------------- //

Function ClickBankSymbol:Boolean;
var
CalX, CalY: Integer;
begin
If FindColor(CALx, CALy, BankColor, MMX1, MMY1, MMX2, MMY2) then
begin
if rs_OnMiniMap(CALx, CALy) then
begin
Result := True;
MFF(CALx, CALy, 1, 1);
FFlag(0);
FindTalk;
Result := True;
end
else
Result := False;
end;
end;

//----------------------------------------------------------------------------//

Function FindBenedict:Boolean;
var Dmx, Dmy, Ax, Ay, x, STime, ETime,TTime: integer;
Benedict :array[1..4] of integer;
Rotated:Boolean;
begin
STime := GetSystemTime;
Benedict[1] := 5535101;
Benedict[2] := 5666942;
Benedict[3] := 5337722;
Benedict[4] := 1123111;
repeat
for x := 1 to 4 do
begin
if not LoggedIn then Exit;
Ax := MSCx - 20 + Random(20);
Ay := MScy - 20 + Random(20);
ETime := GetSystemTime;
Wait(100);
if FindColorSpiralTolerance(Ax, Ay, Benedict[x], MSX1, MSY1, MSX2, MSY2, 5) then
begin
MMouse(Ax, Ay, 4, 4);
GetMousePos(Ax, Ay);
Wait(100);
if FindColorTolerance(Dmx, Dmy, 318168, 42, 8, 120, 21, 50) then // Yellow
begin
if IsUpText('mer') then
begin
Mouse(Ax, Ay, 0, 0, False);
if Chooseoption('Bank') then
begin
FFlag(0);
TTime := GetSystemTime;
Repeat
Wait(1000);
Until BankScreen or (GetSystemTime - TTime > 15000)
if BankScreen then
begin
Result := True;
Exit;
end
else Break;
end
end;
end;
end;
end;
Wait(100);
if ETime-STime > 10000 then
begin
if not Rotated then
begin
ClickBankSymbol;
MakeCompass('W');
Rotated := True;
end;
end;
x := 1;
until(ETime-STime > 20000);
Result := False;
end;

//----------------------------------------------------------------------------//

Function ToBank:Boolean;
begin
if ClickBankSymbol then
begin
Result := True;
Exit;
end
else
begin
MFF(600 + Random(4), 88 + Random(4), -1, 0);
if ClickBankSymbol then
begin
Result := True;
Exit;
end
else
Result := False;
end
end;

//----------------------------------------------------------------------------//

Function WaitSafe:Boolean;
var
OBCM, NBCM: String;
TimeOut:Integer;
begin
FFlag(0);
FTWait(4);
TimeOut := GetSystemTime;
OBCM:= GetBlackChatMessage;
if Pos('start', OBCM) <> 0 then
begin
repeat
NBCM := GetBlackChatMessage;
Wait(100);
if OBCM <> NBCM then
begin
if Pos('loot', NBCM) <> 0 then
begin
Result:= True;
Inc(Cracks);
FTWait(2 + Random(4));
Exit;
end;
if Pos('slip', NBCM) <> 0 then
begin
Result:= False;
Inc(Fails);
{ if FindColorTolerance(x, y, 1386542, 215, 183, 268, 214, 2) then
begin
MMouse(x, y, 0, 0);
if IsUpText('2 more') then
begin
Mouse(x, y, 0, 0, False);
if ChooseOption('Search') then
begin
DT := GetsystemTime;
repeat
FtWait(1);
DisArm := GetBlackChatMessage;
if GetSystemTime - DT > 5000 then break;
until (pos('disarm', DisArm ) <> 0);
end;
end
end; }
Exit;
end;
end;
until GetSystemTime - TimeOut > 12000;
end;
end;

//----------------------------------------------------------------------------//

Function Bank:Boolean;
var Dx, Dy:integer;
begin
Fixbank;
NewCracks := Cracks;
Reportvars[0] := NewCracks - OldCracks;
OldCracks := Cracks;

NewFails := Fails;
Reportvars[1] := NewFails - OldFails;
OldFails := Fails;

NAte := Ate;
Reportvars[2] := NAte - OAte;
OAte := Ate;

Reportvars[3] := CountItemCol(9573906);
Reportvars[4] := CountItemCol(1477648);
Reportvars[5] := CountItemCol(858746);
Reportvars[6] := CountItemCol(11776948);
Sapphires := Sapphires + Reportvars[3];
Emeralds := Emeralds + Reportvars[4];
Rubies := Rubies + Reportvars[5];
Diamonds := Diamonds + Reportvars[6];


SRLRandomsReport;

DepositAll;
ProgressReport;
if FindBitmapMaskTolerance(Food,Dx, Dy, MSX1, MSY1, MSX2, MSY2, 20, 20) then
begin
Mouse(Dx, Dy, 4, 4, False);
ChooseOption('10');
Inc(Banks);
Reportvars[0] := 1;
Result := True;
CloseBank;
end
else
begin
writeln('cant find food');
Result := False;
end;
end;

//----------------------------------------------------------------------------//

procedure RunAwayEx;
begin
Runto('N', False);
FTWait(8);
Logout;
Terminatescript;
end;

//----------------------------------------------------------------------------//


Function CheckAndRestoreHealth: Boolean;
var Lx, Ly, HPAmount, HPLevel:Integer;
begin
GameTab(2);
HPAmount := GetSkillInfo('hitpoints', True); //GetSkillAmount('hitpoints');
HPLevel := GetSkillInfo('hitpoints', False); //GetSkillLevel('hitpoints');
Damage := HPLevel - HPAmount;
Status('Damage = ' + IntToStr(Damage));
Result := True;
if Damage >= FoodHeals then
begin
if HaveFood(Lx,Ly) then
begin
Mouse(Lx , Ly , 4, 4, True);
Inc(Ate);
FTWait(4);
FindInventoryRandoms;
CountLoot;
CheckAndRestoreHealth;
end
else
Result := False;
end;
if Damage > 30 then RunawayEx;
end;

//----------------------------------------------------------------------------//

procedure Setup;
var
i:Integer;
begin
ClearDebug;
SetupSRL;
LoadCSBitmaps;
DeclarePlayers;
if MySRLID <> '' then
begin
SRLID := MySRLID;
SRLPassword := MySRLPassword;
end;
for I := 0 to 19 do
ReportVars[I] := 0;

ReportVars[12] := 1;
ScriptID := '299';

LoginPlayer;
SetChat('On',1);
SetRun(True);
MouseSpeed := 40;
Start := GetSystemTime;
SymbolAccuracy := 0.6;
GameTab(4);
BankColor := GetSymbolColor(DumX, DumY, 'bank')
Writeln('BankColor := ' +IntToStr(BankColor));
if (BankColor = 0) then
begin
Writeln('ERROR: Couldnt find colors. Exiting...');
Terminatescript;
end;
SetFood(TheFood);
Down;
end;

//----------------------------------------------------------------------------//

begin
Setup;
FixChat;
if not FindBenedict then Quit('Couldnt find Benedict');
if not Bank then Quit('No food at Bank');
repeat
GetAllLevels;
ToSafe;
repeat
if not LoggedIn then Exit;
if ClickSafe then if WaitSafe then
Start := GetSystemTime;
Emergency := GetSystemTime;
if Emergency - Start > 50000 then // if for 50 secs no pickpocket then break
Break;
FindNonInventoryRandoms;
if not CheckAndRestoreHealth then break;
if (GetTimeRunning mod 30000) < 1500 then
begin
FindInventoryRandoms;
if InvFull or (not HaveFood(Dumx, Dumy)) then break;
ProgressReport;
CountLoot;
end;
FTWait(1);
until false; // DID I WRITE THIS? :)
if not ToBank then Quit('Couldnt Find Bank');
if not FindBenedict then Quit('Couldnt find Benedict');
if not Bank then Quit('No food at Bank');
MakeCompass('N');
Start := GetSystemTime;
until false

end.

This should work. Took me 1 minute and 43 seconds…

Timer

2008-02-29 19:25:43

L33T skillz!

lol, safe 4 my Main?

Harry

2008-03-01 10:09:41

<3 Wizzup?, thanks for the update :) Post proggy soon…

<============== - Progress Report ===============>
Worked for 2 Minutes and 23 Seconds
Banked 1 Times
Cracked 5 Safes
Failed 7 Safes
Ate 3 Food
Banked 0 Sapphires
Banked 2 Emeralds
Banked 25 Rubies
Banked 0 Diamonds
**********************************************
Name : Zezima
Number : 0
Worked for : 0 minutes.
Active : True
**********************************************
0 : Zezima = T. TH 99. W : 0 min.
**********************************************

Not as good as it was before, Fakawi's MM safe BMP is messed up, it always blind clicks.

Wizzup?

2008-03-01 11:04:54

From: Hy71194
<3 Wizzup?, thanks for the update :) Post proggy soon…


Not as good as it was before, Fakawi's MM safe BMP is messed up, it always blind clicks.

The MM bitmap?
If it just misses the MS safe, you should set the const color…

Harry

2008-03-01 11:07:23

From: Wizzup?
The MM bitmap?
If it just misses the MS safe, you should set the const color…


Main screen's works fine, finds and clicks it all right.

I just changed it to WriteLn('Blind'); when it was coord walking, and it ALWAYS said blind, so his MiniMap BMP is messed up. :)

Wizzup?

2008-03-01 12:37:04

From: Hy71194
Main screen's works fine, finds and clicks it all right.

I just changed it to WriteLn('Blind'); when it was coord walking, and it ALWAYS said blind, so his MiniMap BMP is messed up. :)


Okay, it's not coord walking though.
The bitmap is simple, 1 slice of the MM's black and a few brown pixels.

Harry

2008-03-01 12:39:57

Well, it is mostly coord walking, as there is no point of origin to use as reference.

Mjordan

2008-09-25 21:05:45

Hmm still up to standard for a 'main' account ?

Laur€ns

2008-09-26 15:45:52

From: Mjordan
Hmm still up to standard for a 'main' account ?


No… 03/01/2008.. That's like 9 months old. You can watch the Rev (in this case #6).. Kthxbye.

[Edit]Kthxbye is not ment to be mean.[/Edit]

Bobarkinator

2008-09-26 16:05:00

From: Laur€ns
No… 03/01/2008.. That's like 9 months old. You can watch the Rev (in this case #6).. Kthxbye.


I wouldn't necessarily treat someone who has 65% more longevity than me like that. Maybe the Kthxbye was just a joke but most of the time it's an insult. MJordan has been part of this community a long time, he is a very respectable as well as reputable member of this community. Always treat other people with caution.

Mjordan

2008-09-26 16:20:52

From: Laur€ns;471443
No… 03/01/2008.. That's like 9 months old. You can watch the Rev (in this case #6).. Kthxbye.

Wow hott stuff, who are you? Sorry you know so much more then me since I've only been around umm… at least 3 or more years longer then you. I'd take no offence if you gave a legit answer and bashed me for something wrong or idiotic I did. But seeing as that wasn't the case, you just made a fool of yourself. Good job! …Kthxbye. ;)


I wouldn't necessarily treat someone who has 65% more longevity than me like that. Maybe the Kthxbye was just a joke but most of the time it's an insult. MJordan has been part of this community a long time, he is a very respectable as well as reputable member of this community. Always treat other people with caution.
Thankyou Bob. Glad to see your still around checking up on things even though you don't post as much now-a-days. :D


Now I guess I'll ask my question more thoroughly since I've discovered there are people here that aren't on the brightest side. Yes I have read the thread, and yes I have looked at the dates of release and last post. But would you still recommend this for use after fixed up a tad? Or is it just an artifact that was great while it lasted but is better for learning purposes now? (mainly speaking to Fakawi or anyone else of formidable intelligence)

Pixelate

2008-09-27 12:27:25

Taking a quick look at that, it doesnt actually look that bad if you patch it up. Change a few functions etc and it would be really good. I think anyway, i dont have the 'formiaddable intelligence' like Fawki does XD but if someone does revamp it, i would love to know

WT-Fakawi

2008-09-27 14:01:00

you will probably need to change the route to the safe since the sliced mm bitmap of the safe position won't work anymore. jagex changed it.
For the rest it is a nice spot to auto. Little annoying random and only diehard cooks :) Script still works fine I guess.

sry for quick answer but send from iPhone.

Laur€ns

2008-09-27 14:19:06

Jeez, Bobarkinator, it was not ment hateful or offensive in anyway.. And if you are here for so long, then you should know Rev#6 is old, as the top-scroll-thingy says:
Welcome to the SRL-Forums…SRL Revision #27 has been released…! Join the official SRL IRC channel


21 revisions difference is pretty much?

WT-Fakawi

2008-09-27 14:25:49

on topic please laurens. No fighting @ SRL and certainly not in my thread.

Pixelate

2008-09-27 14:57:21

Wow Lauren you do not know when to shut up do you? He was just asking if it was updateable, or whether it was a long gone script that couldnt be updated. You didnt anwser nicely, or even anwser his question, did you just post it to piss him off? It looks like it.

And Fawki, sorry for this post if you think it is fighing

Bobarkinator

2008-09-27 18:31:36

From: Laur€ns
Jeez, Bobarkinator, it was not ment hateful or offensive in anyway.. And if you are here for so long, then you should know Rev#6 is old, as the top-scroll-thingy says:


21 revisions difference is pretty much?


Yes, but you have to take into account MJordan's activity. He hasn't been around in a long time.

I do apologize for flaming you.

Mjordan

2008-09-28 14:55:31

Ah all this over me, I feel special :p
Lol but who cares just be quiet and leave it alone Lauren, and I won't say another word about it.

But alright thanks Fakawi I might try fixing this up for a little project to get me back into the swing of things.

WT-Fakawi

2009-12-20 15:22:04

Major BUMP

<============== - Progress Report ===============>
Worked for 1 Hours, 55 Minutes and 32 Seconds
Banked 13 Times
Cracked 543 Safes
Failed 173 Safes
Ate 68 Lobsters
Banked 78 Sapphires
Banked 58 Emeralds
Banked 30 Rubies
Banked 8 Diamonds
**********************************************
0 : = T. TH 98. W : 0 min.
**********************************************

<============== - Progress Report ===============>
Worked for 3 Hours, 59 Minutes and 0 Seconds
Banked 31 Times
Cracked 875 Safes
Failed 709 Safes
Ate 244 Lobsters
Banked 79 Sapphires
Banked 69 Emeralds
Banked 31 Rubies
Banked 5 Diamonds
**********************************************
1 : = T. TH 59. W : 0 min.
**********************************************




Thought you'd like to know. I will release the update of this old script once UpText works again. For now, I was forced to use dirty methods to keep it running….but the old engine is still fine :)


And yes, the highest one is almost twice as efficient and eats 3 times less lobsters.

Dervish

2009-12-20 16:01:13

Aw need member :<.

Sweet anyways Fakawi ! Love when you have free time on your hands ;).

Griff

2009-12-20 17:12:33

I was about to come and say, what moron gravedug this? Oops…
Ontopic, nothing like some spare time for a little bit of scripting ;)

Town

2009-12-20 18:40:34

Your success rate in 2 hours was twice as effective as it was in 4 hours. Is your AI written so well that it has its own attention span?

mormonman

2009-12-20 19:18:36

From: Town
Your success rate in 2 hours was twice as effective as it was in 4 hours. Is your AI written so well that it has its own attention span?


nope, one just has 98 theiving and the other has 59…

noidea

2009-12-20 22:21:20

From: WT-Fakawi
Thought you'd like to know. I will release the update of this old script once UpText works again. For now, I was forced to use dirty methods to keep it running….but the old engine is still fine :)


And yes, the highest one is almost twice as efficient and eats 3 times less lobsters.


A fawki style script :)

WT-Fakawi

2010-01-10 04:35:29

Reupped and updated. You can now wield a Stethoscope. The only reason it couldnt do that before was……. I didn't know about this RS-feature!! :)

It will only work with Lobsters. I didnt care to update the salmonmask.
You can wield a stethoscope in Invent spot 1 (upper left) if you meet Martins requirements.

This script has been around for almost two years. No bans on this one. Use with care, don't overnight and don't overdo. It is always very crowded at Benedict's cooking spot. Find yourself a quiet world.

Timer

2010-01-10 05:00:52

Horraayyy!!!

Gu3st...

2010-01-10 05:02:32

I'll use this, thanks Fawki :)

Sir R. M8gic1an

2010-01-10 06:11:27

Updated thread title :)

~RM

WT-Fakawi

2010-01-10 06:51:33

You might want to replace ClickMouse with Mouse. I changed it for release because I dont recall which one was detactable: Mouse of ClickMouse. Anyway… I have used Mouse over the years.

marpis

2010-01-10 07:20:38

You should add a Profit/Hour to proggy :rolleyes:

Sir R. M8gic1an

2010-01-10 07:28:38

From: WT-Fakawi
You might want to replace ClickMouse with Mouse. I changed it for release because I dont recall which one was detactable: Mouse of ClickMouse. Anyway… I have used Mouse over the years.


ClickMouse is the more detectable one. Mouse is the SRL one ;)

~RM

WT-Fakawi

2010-01-10 09:37:18

ghehe. I "release" a script and I mess up, lol :)

EDIT: BTW: The Minimap Safe finding can be done in a much more efficient way. I am rather cluymbsy with TPA's, and haven't been able to make a 100% WallColor finder. The Safe Wall surroundings are always visible from the MiniMap, so a simple count will tell where the safes are.

HyperSecret

2010-01-11 09:58:15

I am down there already going for 99 cooking. I will download this when I get home and start running it after every 5k fish cooked or so.

Thanks!

WT-Fakawi

2010-01-11 11:20:51

From: HyperSecret
I am down there already going for 99 cooking. I will download this when I get home and start running it after every 5k fish cooked or so.

Thanks!


be sure to replace ClickMouse with Mouse….ermmmmm.

Sabzi

2010-01-11 14:40:35

From: WT-Fakawi
haven't been able to make a 100% WallColor finder.


Nielsie95 got one. When I used it, it was great. But I don't know how much runescape have changed since then.

After almost half an hour of searching I found it. I remembered it as a thread :duh:.

http://www.villavu.com/forum/showpost.php?p=567641&postcount=17

Main

2010-01-11 22:41:41

case any one got lazy. Here is one with clickmouse swapped with mouse
//----------------------------------------------------------------------------//
// *
// * NAME : Safe Cracker
// * WRITER : WT-Fakawi
// * CATEGORY : Collecting/Banking
// * DESCRIPTION : Cracks safes and banks Gems. USES STETHOSCOPE IF WIELDED!!!
// * USAGE : Sample the Safe Color, the brown outline color! LINE 32
// * Start near Benedict, Face Down. Make Sure BankSymbol
// * is uncovered.
// * AUTOCOLOR : NO.
// * NOTES : SRL 4
// * DATE : rereleased @ 10-01-2010
//----------------------------------------------------------------------------//
// 1. USE the DEFAULT Runescape Client with Low Detail, Very Bright.
// 2. Set your Screen to 32 bit TRUE color.
// 3. Find yourself a quiet World.
// 4. Position your char near Benedict at Burthorpe Pub's cellar
// 5. Buy a Stethoscope @ Martin to increase chances.
// --- If you can't, set Stethoscope to False (Line 34)
// 6. Have Lostera visible in upper bankslot
//-------------------------------------------------------------- --------------//

program SafeCracker;
//{.include SRL/SRL/Misc/Smart.scar}
{.include SRL/SRL.scar}

// SAMPLE THE BROWN OUTLINE OF THE SAFE
Const SafeColor = 3092530; // <- replace this number with the current safe color!!!!
// SAMPLE THE BROWN OUTLINE OF THE SAFE



Const TheFood = 'lobster'; // one choices for now: 'lobster'
Const Stethoscope = True; // Buy a Stethoscope @ Martin for better cracking!!!
Const VersionNumber = '0.35';
const RemoteMaster = ''; //<- fill in the Nickname of the RC master
const MySRLID = ''; //<- Your SRLID. Leave blank if you dont have one.
const MySRLPassword = ''; //<- Your SRL Password here if you want to have yout stats logged
const FawkiDebug = False;

var
Sapphires, Emeralds, Rubies, Diamonds, Fails,Cracks, Ate,
MMCrackSafe3, Start, Emergency, Food, Dumx, Dumy, FoodHeals, FoodLeft,
Damage, HPAmount, HPLevel, ThievingLevel, CrackSafeDTM,StethosMask :Integer;

//----------------------------------------------------------------------------//

Procedure DeclarePlayers;
begin
NumberOfPlayers(1);
CurrentPlayer := 0;

Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Active := True;
end;

//----------------------------------------------------------------------------//

Procedure WTDown;

Begin
KeyDown(VK_DOWN);
Wait(2500 + Random(1000));
KeyUp(VK_DOWN);
End;

//----------------------------------------------------------------------------//

Procedure WTUp;

Begin
KeyDown(VK_UP);
Wait(2500 + Random(1000));
KeyUp(VK_UP);
End;

//----------------------------------------------------------------------------//

procedure ProgressReport;
begin
begin
writeln(' ');
writeln('<============== - Progress Report ===============>');
writeln('Worked for '+ TimeRunning);
writeln('Thieving Level '+ IntToStr(ThievingLevel));
writeln('Gained '+ IntToStr(Cracks * 70)+ ' Xp');
writeln('Banked '+ IntToStr(Banks)+ ' Times');
writeln('Cracked '+ IntToStr(Cracks)+ ' Safes');
writeln('Failed '+ IntToStr(Fails)+ ' Safes');
writeln('Ate '+ IntToStr(Ate)+ ' ' + TheFood + 's');
writeln('Banked '+ IntToStr(Sapphires)+ ' Sapphires');
writeln('Banked '+ IntToStr(Emeralds)+ ' Emeralds');
writeln('Banked '+ IntToStr(Rubies)+ ' Rubies');
writeln('Banked '+ IntToStr(Diamonds)+ ' Diamonds');
writeln(' ');
end;
end;

//----------------------------------------------------------------------------//

procedure LoadCSBitmaps;
begin
MMCrackSafe3 := BitmapFromString(20, 1, 'beNp79fzlKwTycpCH' +
'I8LiAKnkJgE=');
CrackSafeDTM := DTMFromString('78DA635CC8C4C010C500068C108A21CC4B85E' +
'13F94FF1F08181700D584A3AA79F9EA398311129F7131116AE663' +
'AAF172904755B3840835B389B06B05116A961361D71CC26A00431' +
'71DC8');

StethosMask := BitmapFromString(28, 22, 'beNrF1UEKACAIBED//' +
'2mDDhFpWqviHiMnkCwiODxDeVlaonw4KbIqBNlbOczahQBbDUrh11' +
'RB9xTjbhu1vEVdlAGaFuxA3HxvV6PZu7Oi7UVmxRS7hZGHUR2clK/' +
'BnU0nA3D+yzU=');

end;

//----------------------------------------------------------------------------//

Function HaveStethos:Boolean;
var
x,y:Integer;
begin
Result := FindBitMapMaskTolerance(StethosMask, x, y, MIx1, MIy1, Mix2, MIy2, 50, 50);
end;

//----------------------------------------------------------------------------//

Function ClickStethos:Boolean;
var
x,y:Integer;
begin
if FindBitMapMaskTolerance(StethosMask, x, y, MIx1, MIy1, Mix2, MIy2, 50, 50) then
begin
MoveMouse((x + 14) - Random(14) + Random(14),(y + 14) - Random(14) + Random(14));
GetMousePos(x,y);
Mouse(x, y,0,0, True);
Result := True;
end
end;

//----------------------------------------------------------------------------//

procedure SetFood(WhatFood:String);
begin
case WhatFood of
'lobster':
Begin
Food := BitmapFromString(10, 13, 'beNpjYMAD/v//j5WNJ' +
'oIpBRGEADwm45HFJUW5LC41BL1DqizWEMAeLABkblmn');
FoodHeals := 12;
End;
'salmon':
Begin
Food := BitmapFromString2(False, 'a0AA9478DACDD04B0A80300' + // = old bitmap; needs to be updated!
'C04D02B4D3F69B3556BEF7F2433D92808A29482593C0A69261000' +
'68D1802E467625EF7457DA8B5902FF1464332A15D9CEAE078826B' +
'E6B306B64B7A646A553CF4C2A66587D00E85E9850D7E4195BEE99' +
'B3B7FCFF56FDB1C66F3532F5BEBEE61FA70');
FoodHeals := 9;
End;
end;
end;

//----------------------------------------------------------------------------//

Function HaveFood(var Lx, Ly:Integer): Boolean;
var Dx, Dy:integer;
begin
if FawkiDebug then writeln('into HaveFood');
GameTab(tab_Inv);
FoodLeft := CountItems('mask', Food, [20]);
if FawkiDebug then writeln('food left =' + IntToStr(FoodLeft));
if FindBitmapMaskTolerance(Food,Dx, Dy, MIX1, MIY1, MIX2, MIY2, 20, 20) then
begin
if FawkiDebug then writeln('Found Food Bitmapmask');
Lx := Dx;
Ly := Dy;
Result := True;
end
else
begin
Result := False;
if FawkiDebug then writeln('NOT Found Food Bitmapmask');
end;
end;

//----------------------------------------------------------------------------//

procedure Quit(reason:String);
begin
Logout;
writeln(reason);
TerminateScript;
end;

//----------------------------------------------------------------------------//

function CountItemCol(Col: Integer): Integer;
var
i, x, y: Integer;
TB: Tbox;
begin
for i := 1 to 28 do
begin
TB := InvBox(i);
if ExistsItem(i) then
if FindColorTolerance(x, y, Col, TB.x1, TB.y1, TB.x2, TB.y2, 20) then
Inc(Result);
end;
end;

//----------------------------------------------------------------------------//

Procedure CountLoot;
var
Sb, Eb, Rb, Db:Integer;
begin

Sb := CountItemCol(9573906);
Eb := CountItemCol(1477648);
Rb := CountItemCol(858746);
Db := CountItemCol(11776948);

if Fawkidebug then writeln(' ');
if Fawkidebug then writeln(IntToStr(Sb) + ' Sapphires' );
if Fawkidebug then writeln(IntToStr(Eb) + ' Emeralds' );
if Fawkidebug then writeln(IntToStr(Rb) + ' Rubies' );
if Fawkidebug then writeln(IntToStr(Db) + ' Diamonds' );
end;

//----------------------------------------------------------------------------//
// Waits and performs FindRandoms. I call this procedure as much as possible!!!
//----------------------------------------------------------------------------//

procedure FTWait(myLen:Integer);
var mywait: Integer;
begin
for mywait := 1 to myLen do
begin
Wait(100 + Random(100));
FindNormalRandoms;
end
end;

//----------------------------------------------------------------------------//
// Walks to the Safe spot. Uses a DTMRotated. If not found uses blind click.
//----------------------------------------------------------------------------//

Function ToSafe:Boolean;
var
Gx, Gy:Integer;
Calx, Caly:Integer;
WhichAngle: Extended;
begin
MakeCompass('N');
Gx := 711;
Gy := 100;

if FindDtmRotated(CrackSafeDTM, CALx, CALy, 679, 85, 696, 105, -pi/4, pi/4, 0.1,
WhichAngle) then
begin
if rs_OnMiniMap(CALx, CALy) then
begin
if FawkiDebug then writeln('FindDtmRotated returded True');
MFF(CALx, CALy , 0, 10);
FFlag(0);
FTWait(4);
Result := True;
Exit;
end;
end
else
begin
if FawkiDebug then writeln('FindDtmRotated returded False');
end;

if FindBitmapSpiralTolerance(MMCrackSafe3, Gx, Gy, MMCx, MMy1, MMX2, MMY2, 20) then
begin
if FawkiDebug then writeln('MMCrackSafe3 bitmap found');
MFF(Gx + 10, Gy , 0, 10);
FFlag(0);
FTWait(4);
Result := True;
Exit;
end
else
begin
if FawkiDebug then writeln('bitmap not found. Blind click.');
MFF(683 + Random(4), 100 + Random(4), 0, 1);
FFlag(0);
Wait(500 + Random(250));
Result := True;
end;
end;

//----------------------------------------------------------------------------//
// Temp UpText checker. Looks for 'l' bitmap. If not found looks for uptext (when fixed)
//----------------------------------------------------------------------------//

Function IsSafeUptext:Boolean;
var
SingleL,x,y: Integer;
Begin
SingleL := BitmapFromString(2, 10, 'beNq7cpn/3nUgErh3g+kKiA' +
'0kIWwIyX3rCiOM5LsLkkWQACnKIkY=');

if FindBitmapToleranceIn(SingleL,x,y,MSx1,MSy1, 200,23,50) then
begin
Result := True;
if FawkiDebug then writeln('bitmap L found');
FreeBitmap(SingleL);
Exit;
End;

if FindColorTolerance(x, y, 14212624, 42, 8, 220, 21, 50) then // Blue
begin
FTwait(1);
if IsTextInAreaEx(7, 7, 160, 20, Dumx, Dumy, 'safe', 100, upchars, True, True, 0, 2, -1) then
begin
Result := True;
if FawkiDebug then writeln('safeuptext found');
FreeBitmap(SingleL);
Exit;
end;
End;
FreeBitmap(SingleL);
Result := False;
End;

//----------------------------------------------------------------------------//
// Clicks on Safe using Spiral. Wont move the mouse is uptext is stil there. Humanlike
//----------------------------------------------------------------------------//

Function ClickSafe:Boolean;
var
x, y :integer;
begin
if IsSafeUptext then
begin
if FawkiDebug then writeln('safeuptext found');
GetMousePos(x, y);
Mouse(x, y,0,0, True);
FTWait(5);
Result := True;
Exit;
end
else
begin
if FindColorSpiralTolerance(x, y, SafeColor, MSx1, MSy1, MSx2, MSy2, 0) then
begin
if FawkiDebug then writeln('SafeColor found');
MMouse(x, y, 0, 0);
GetMousePos(x, y);
FTWait(5);
if IsSafeUptext then
begin
if FawkiDebug then writeln('safeuptext found');
MMouse(x, y, 4, 4);
GetMousePos(x, y);
Mouse(x, y,0,0, True);
Result := True;
end
else
begin
if FawkiDebug then writeln('safeuptext not found');
Result := False;
end;
end;
end;
end;

//----------------------------------------------------------------------------//
// Clicks on Safe using MiddleOfTPA. Wont move the mouse is uptext is stil there.
//----------------------------------------------------------------------------//

Function ClickSafeTPA:Boolean;
var
x, y :integer;
TPP: Tpoint;
TheSafe:TpointArray;

begin
if IsSafeUptext then
begin
if FawkiDebug then writeln('safeuptext found');
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
Result := True;
FTWait(5);
Exit;
end;
if FindColorsSpiralTolerance(MSCx, MSCy, TheSafe, SafeColor, 200, 90, 290 ,160, 0) then
begin
if FawkiDebug then writeln('SafeTPA found');
TPP := MiddleTPA(TheSafe);
MMouse(TPP.x, TPP.y, 0, 0);
if FawkiDebug then writeln('Pointing to Middle TPA');
GetMousePos(x, y);
FTWait(5);
if IsSafeUptext then
begin
if FawkiDebug then writeln('safeuptext found');
MMouse(x, y, 4, 4);
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
Result := True;
end
else
begin
Result := False;
if FawkiDebug then writeln('SafeTPA not found');
end;
end
end;

// -------------------------------------------------------------------------- //

Function ClickBankSymbol:Boolean;
var
CalX, CalY: Integer;
begin
If FindColor(CALx, CALy, BankColor, MMX1, MMY1, MMX2, MMY2) then
begin
if rs_OnMiniMap(CALx, CALy) then
begin
Result := True;
MFF(CALx, CALy, 1, 1);
FFlag(0);
FTWait(1);
Result := True;
end
else
Result := False;
end;
end;

//----------------------------------------------------------------------------//
// Persisten Benedict Finder. Rotates Cam if Ben is not found and tries again
//----------------------------------------------------------------------------//

Function FindBenedict:Boolean;
var {Dmx, Dmy, }Ax, Ay, x, STime, ETime,TTime, Dumx, Dumy: integer;
Benedict :array[1..4] of integer;
RW, RS:Boolean;
begin
STime := GetSystemTime;
Benedict[1] := 1453619;
Benedict[2] := 2312273;
Benedict[3] := 2114122;
Benedict[4] := 1319469;
repeat
for x := 1 to 4 do
begin
if not LoggedIn then Exit;
// Ax := MSCx - (MSCx - MSx1) + Random(MSCx - MSx1);
// Ay := MScy - (MSCY - MSy1) + Random((MSCY - MSy1));
Ax := MSCx;
Ay := MScy;
ETime := GetSystemTime;
FTWait(4);
if FindColorSpiralTolerance(Ax, Ay, Benedict[x], MSx1, MSy1, MSx2, MSy2, 5) then
begin
MMouse(Ax, Ay, 2, 2);
GetMousePos(Ax, Ay);
FTwait(4);
if FindColorTolerance(Dumx, Dumy, 118992, 42, 8, 120, 21, 50) then // Yellow
begin
FTwait(4);
if IsTextInAreaEx(7, 7, 160, 20, Dumx, Dumy, 'mer', 100, upchars, True,
True, 0, 2, -1) then
begin
Mouse(Ax, Ay,0,0, False);
if Chooseoption('Bank') then
begin
TTime := GetSystemTime;
Repeat
Wait(1000);
Until BankScreen or (GetSystemTime - TTime > 15000)
if BankScreen then
begin
Result := True;
Exit;
end
else Break;
end
end;
end;
end;
end;
Wait(100);
if ETime-STime > 10000 then // After 10 seconds face West
begin
if not RW then
begin
ClickBankSymbol;
MakeCompass('W');
RW := True;
x := 1;
end;
end;
if ETime-STime > 25000 then // After 25 seconds face South
begin
if not RS then
begin
ClickBankSymbol;
MakeCompass('S');
WTDown;
RS := True;
x := 1;
end;
end;
until(ETime-STime > 40000);
Result := False;
end;

//----------------------------------------------------------------------------//

Function ToBank:Boolean;
begin
if ClickBankSymbol then
begin
Result := True;
Exit;
end
else
begin
MFF(600 + Random(4), 88 + Random(4), -1, 0);
FFlag(10);
if ClickBankSymbol then
begin
Result := True;
Exit;
end
else
Result := False;
end
end;

//----------------------------------------------------------------------------//
// Temp SmallChar Reader. Can be replaced if SRL-GetBlackChatMessage works again.
//----------------------------------------------------------------------------//

function WT2GetChatBoxText: string; // temp Smallchars Reader
begin
Result:= GetTextAtEx(14, 443, 0, SmallChars, False, False, 0, 1, 0, 80, False, tr_AllChars);
end;

//----------------------------------------------------------------------------//

Function WaitSafe:Boolean;
var
OBCM, NBCM: String;
TimeOut:Integer;
begin
FFlag(0);
FTWait(12);
OBCM:= WT2GetChatBoxText;
if FawkiDebug then writeln('OBCMgetblackchatmessage = ' + OBCM);
if Pos('start', OBCM) <> 0 then
begin
FTWait(12);
TimeOut := GetSystemTime;
repeat
NBCM := WT2GetChatBoxText;
if FawkiDebug then writeln('NBCM getblackchatmessage = ' + NBCM);
FTWait(2);
if OBCM <> NBCM then
begin
if Pos('slip', NBCM) <> 0 then
begin
Result:= False;
Inc(Fails);
Exit;
end;
if Pos('loot', NBCM) <> 0 then
begin
Result:= True;
Inc(Cracks);
Exit;
end;
end;
if Random(25) = 1 then
begin
IdleTime(2500, 2500, 0.6);
FindNormalRandoms;
End;
until GetSystemTime - TimeOut > 8000;
end;
end;

//----------------------------------------------------------------------------//
// Banks and withdraws 10 Lobsters. Unless you Thieving level = above 90
// leave it at 10 lobsters.
// If you have a stethoscope (buy from Martin nearby) it will keep this in invent
//----------------------------------------------------------------------------//

Function Bank:Boolean;
var
Dx, Dy:integer;
var
Sb, Eb, Rb, Db:Integer;

begin
Fixbank;
Sb := CountItemCol(9573906);
Eb := CountItemCol(1477648);
Rb := CountItemCol(858746);
Db := CountItemCol(11776948);

Sapphires := Sb + Sapphires;
Emeralds := Eb + Emeralds;
Rubies := Rb + Rubies;
Diamonds := Db + Diamonds;
if HaveStethos = True then Deposit(2,28, True) else DepositAll;
ProgressReport;
FTWait(10);
if FindBitmapMaskTolerance(Food,Dx, Dy, MSX1, MSY1, MSX2, MSY2, 20, 20) then
begin
Mouse(Dx, Dy, 4, 4, False);
ChooseOption('10');
Inc(Banks);
Reportvars[0] := 1;
Result := True;
CloseBank;
end
else
begin
if FawkiDebug then writeln('cant find food');
Result := False;
end;
end;

//----------------------------------------------------------------------------//
// No more damagable creatures in runescape...but still....you never know :)
//----------------------------------------------------------------------------//

procedure RunAway2;
begin
RunAway('N', False, 2, 6000);
FTWait(8);
Logout;
Terminatescript;
end;

//----------------------------------------------------------------------------//
// Checks HP and will eat if damage is more then foodvalue.
//----------------------------------------------------------------------------//

Function CheckAndRestoreHealth: Boolean;
var
Lx, Ly:Integer;
var
HPColor: String;
begin
HPAmount:= GetMMlevels( 'hp', hpcolor);
Damage := HPLevel - HPAmount;
if FawkiDebug then writeln('CheckAndRestoreHealth: Damage = ' + IntToStr(Damage));
Result := True;
if Damage >= FoodHeals then
begin
if HaveFood(Lx,Ly) then
begin
Mouse(Lx + Random(4), Ly + Random(4),0,0, True);
Inc(Ate);
FTWait(12);
CountLoot;
end
else
Result := False;
end;
if Damage > 30 then Runaway2;
end;

//----------------------------------------------------------------------------//

procedure Setup;
var
i:Integer;
begin
ClearDebug;
SetupSRL;
Smart_Server := 51;
LoadCSBitmaps;
DeclarePlayers;
if MySRLID <> '' then
begin
SRLID := MySRLID;
SRLPassword := MySRLPassword;
end;
for I := 0 to 19 do
ReportVars[I] := 0;

ReportVars[12] := 1;
ScriptID := '299';
GraphicsSet := True;
LoginPlayer;
FTWait(4);
SetRun(True);
MouseSpeed := 30;
Start := GetSystemTime;
SymbolAccuracy := 0.6;
HPLevel := GetSkillInfo('hitpoints', False);
ThievingLevel := GetSkillLevel('thieving');
BankColor := GetSymbolColor(DumX, DumY, 'bank')
if FawkiDebug then writeln('BankColor := ' +IntToStr(BankColor));
if (BankColor = 0) then
begin
writeln('ERROR: Couldnt find BankColor. Exiting...');
Terminatescript;
end;
SetFood(TheFood);
WTDown;
end;

//----------------------------------------------------------------------------//

begin
// SmartsetupEx(51, true, true, false);
// SetTargetDC(SmartGetDC);
Setup;
FixChat;
HPAmount := GetSkillInfo('hitpoints', True);
if not FindBenedict then Quit('Couldnt find Benedict');
if not Bank then Quit('No food at Bank');
repeat
ClickNorth(False);
ToSafe;
Start := GetSystemTime;
repeat
if not LoggedIn then Exit;
if Stethoscope then if HaveStethos then ClickStethos;
if ClickSafe then if WaitSafe then Start := GetSystemTime;
if Stethoscope then if HaveStethos then ClickStethos;
if ClickSafeTPA then if WaitSafe then Start := GetSystemTime;
if InvFull then Break;
Emergency := GetSystemTime;
if Emergency - Start > 50000 then // if for 50 secs no safes then break
begin
Start := GetSystemTime;
Break;
end;
if not CheckAndRestoreHealth then break;
if (GetTimeRunning mod 60000) < 1500 then
begin
if InvFull or (not HaveFood(Dumx, Dumy)) then break;
ProgressReport;
CountLoot;
IdleTime(2500, 2500, 0.6);
end;
FTWait(1);
until false; // DID I WRITE THIS? :)
if not ToBank then Quit('Couldnt Find Bank');
if not FindBenedict then Quit('Couldnt find Benedict');
if not Bank then Quit('No food at Bank');
MakeCompass('N');
Start := GetSystemTime;
ProgressReport;
until false
end.
Just quote my quote and copy and past.


Bugs:
If the script starts while the character is already damaged, with the scope on true, it some times tries to use the scope on lobster.. (Procedure error I guess?)

Also it gets stuck by north wall (maybe add make compass to fix that).

Suggestions:
Make it tries again while being damaged, lots of real players do this.

WT-Fakawi

2010-01-12 03:44:00

From: Main_Ftw

Bugs:
If the script starts while the character is already damaged, with the scope on true, it some times tries to use the scope on lobster.. (Procedure error I guess?)

Also it gets stuck by north wall (maybe add make compass to fix that).

Suggestions:
Make it tries again while being damaged, lots of real players do this.


Yes you cant start damaged I guess. Panic!
while Damaged use scope on Lobster….hm… yes thats probably right. Never thought of that.
Get stuck north: Yes, I know that. I need a solid proc to determine the safewall on the minimap and click accordingly. Is not difficult I guess…if only knew how.
in ToSafe; you might want to replace this: MFF(683 + Random(4), 100 + Random(4), 0, 1); with this: MFF(683 + Random(4), 98 + Random(4), 0, 1);


Thanks for your comments.

The Claw

2010-01-12 06:02:35

- Added the bit in ToSafe mentioned above
- Line 360 of the version posted by Main_Ftw, MMouse(x, y, 4, 4); changed to MMouse(x, y, 0, 0);, as after checking uptext before every click it would move the mouse a tiny bit, then click - just something annoying that could be detected, imo.
- Line 354 changed randomness from 0,0 to 4,4. I think what was happening was it would move the mouse to the exact colour found, then move it randomly a bit before clicking. Now it moves it to the spot with randomness, and doesnt move it before clicking.
- Put if not CheckAndRestoreHealth then break; above the StethoScope Click in main loop so it wouldnt use stethoscope on lobsters if it needed to eat.

Safe object finding could use some work, especially when theres people around - if someone is at the safe the mouse moves to, the uptext is different and it doesnt right click. Tried using a right click and ChooseOption but it appears to be broken and cbf coming up with a solution atm.

<============== - Progress Report ===============>
Worked for 15 Minutes and 14 Seconds
Thieving Level 60
Gained 4270 Xp
Banked 1 Times
Cracked 61 Safes
Failed 11 Safes
Ate 11 lobsters
Banked 5 Sapphires
Banked 8 Emeralds
Banked 4 Rubies
Banked 0 Diamonds


56k of loot, minus the 3k of lobbies = 212k gp/hour, approx 17k thieving xp/hour at lvl 60 with a stethoscope. Not bad overall :p

//----------------------------------------------------------------------------//
// *
// * NAME : Safe Cracker
// * WRITER : WT-Fakawi
// * CATEGORY : Collecting/Banking
// * DESCRIPTION : Cracks safes and banks Gems. USES STETHOSCOPE IF WIELDED!!!
// * USAGE : Sample the Safe Color, the brown outline color! LINE 32
// * Start near Benedict, Face Down. Make Sure BankSymbol
// * is uncovered.
// * AUTOCOLOR : NO.
// * NOTES : SRL 4
// * DATE : rereleased @ 10-01-2010
//----------------------------------------------------------------------------//
// 1. USE the DEFAULT Runescape Client with Low Detail, Very Bright.
// 2. Set your Screen to 32 bit TRUE color.
// 3. Find yourself a quiet World.
// 4. Position your char near Benedict at Burthorpe Pub's cellar
// 5. Buy a Stethoscope @ Martin to increase chances.
// --- If you can't, set Stethoscope to False (Line 34)
// 6. Have Lostera visible in upper bankslot
//-------------------------------------------------------------- --------------//

program SafeCracker;
//{.include SRL/SRL/Misc/Smart.scar}
{.include SRL/SRL.scar}

// SAMPLE THE BROWN OUTLINE OF THE SAFE
Const SafeColor = 3026480; // <- replace this number with the current safe color!!!!
// SAMPLE THE BROWN OUTLINE OF THE SAFE



Const TheFood = 'lobster'; // one choices for now: 'lobster'
Const Stethoscope = True; // Buy a Stethoscope @ Martin for better cracking!!!
Const VersionNumber = '0.35';
const RemoteMaster = ''; //<- fill in the Nickname of the RC master
const MySRLID = ''; //<- Your SRLID. Leave blank if you dont have one.
const MySRLPassword = ''; //<- Your SRL Password here if you want to have yout stats logged
const FawkiDebug = False;

var
Sapphires, Emeralds, Rubies, Diamonds, Fails,Cracks, Ate,
MMCrackSafe3, Start, Emergency, Food, Dumx, Dumy, FoodHeals, FoodLeft,
Damage, HPAmount, HPLevel, ThievingLevel, CrackSafeDTM,StethosMask :Integer;

//----------------------------------------------------------------------------//

Procedure DeclarePlayers;
begin
NumberOfPlayers(1);
CurrentPlayer := 0;

Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Active := True;
end;

//----------------------------------------------------------------------------//

Procedure WTDown;

Begin
KeyDown(VK_DOWN);
Wait(2500 + Random(1000));
KeyUp(VK_DOWN);
End;

//----------------------------------------------------------------------------//

Procedure WTUp;

Begin
KeyDown(VK_UP);
Wait(2500 + Random(1000));
KeyUp(VK_UP);
End;

//----------------------------------------------------------------------------//

procedure ProgressReport;
begin
begin
writeln(' ');
writeln('<============== - Progress Report ===============>');
writeln('Worked for '+ TimeRunning);
writeln('Thieving Level '+ IntToStr(ThievingLevel));
writeln('Gained '+ IntToStr(Cracks * 70)+ ' Xp');
writeln('Banked '+ IntToStr(Banks)+ ' Times');
writeln('Cracked '+ IntToStr(Cracks)+ ' Safes');
writeln('Failed '+ IntToStr(Fails)+ ' Safes');
writeln('Ate '+ IntToStr(Ate)+ ' ' + TheFood + 's');
writeln('Banked '+ IntToStr(Sapphires)+ ' Sapphires');
writeln('Banked '+ IntToStr(Emeralds)+ ' Emeralds');
writeln('Banked '+ IntToStr(Rubies)+ ' Rubies');
writeln('Banked '+ IntToStr(Diamonds)+ ' Diamonds');
writeln(' ');
end;
end;

//----------------------------------------------------------------------------//

procedure LoadCSBitmaps;
begin
MMCrackSafe3 := BitmapFromString(20, 1, 'beNp79fzlKwTycpCH' +
'I8LiAKnkJgE=');
CrackSafeDTM := DTMFromString('78DA635CC8C4C010C500068C108A21CC4B85E' +
'13F94FF1F08181700D584A3AA79F9EA398311129F7131116AE663' +
'AAF172904755B3840835B389B06B05116A961361D71CC26A00431' +
'71DC8');

StethosMask := BitmapFromString(28, 22, 'beNrF1UEKACAIBED//' +
'2mDDhFpWqviHiMnkCwiODxDeVlaonw4KbIqBNlbOczahQBbDUrh11' +
'RB9xTjbhu1vEVdlAGaFuxA3HxvV6PZu7Oi7UVmxRS7hZGHUR2clK/' +
'BnU0nA3D+yzU=');

end;

//----------------------------------------------------------------------------//

Function HaveStethos:Boolean;
var
x,y:Integer;
begin
Result := FindBitMapMaskTolerance(StethosMask, x, y, MIx1, MIy1, Mix2, MIy2, 50, 50);
end;

//----------------------------------------------------------------------------//

Function ClickStethos:Boolean;
var
x,y:Integer;
begin
if FindBitMapMaskTolerance(StethosMask, x, y, MIx1, MIy1, Mix2, MIy2, 50, 50) then
begin
MoveMouse((x + 14) - Random(14) + Random(14),(y + 14) - Random(14) + Random(14));
GetMousePos(x,y);
Mouse(x, y,0,0, True);
Result := True;
end
end;

//----------------------------------------------------------------------------//

procedure SetFood(WhatFood:String);
begin
case WhatFood of
'lobster':
Begin
Food := BitmapFromString(10, 13, 'beNpjYMAD/v//j5WNJ' +
'oIpBRGEADwm45HFJUW5LC41BL1DqizWEMAeLABkblmn');
FoodHeals := 12;
End;
'salmon':
Begin
Food := BitmapFromString2(False, 'a0AA9478DACDD04B0A80300' + // = old bitmap; needs to be updated!
'C04D02B4D3F69B3556BEF7F2433D92808A29482593C0A69261000' +
'68D1802E467625EF7457DA8B5902FF1464332A15D9CEAE078826B' +
'E6B306B64B7A646A553CF4C2A66587D00E85E9850D7E4195BEE99' +
'B3B7FCFF56FDB1C66F3532F5BEBEE61FA70');
FoodHeals := 9;
End;
end;
end;

//----------------------------------------------------------------------------//

Function HaveFood(var Lx, Ly:Integer): Boolean;
var Dx, Dy:integer;
begin
if FawkiDebug then writeln('into HaveFood');
GameTab(tab_Inv);
FoodLeft := CountItems('mask', Food, [20]);
if FawkiDebug then writeln('food left =' + IntToStr(FoodLeft));
if FindBitmapMaskTolerance(Food,Dx, Dy, MIX1, MIY1, MIX2, MIY2, 20, 20) then
begin
if FawkiDebug then writeln('Found Food Bitmapmask');
Lx := Dx;
Ly := Dy;
Result := True;
end
else
begin
Result := False;
if FawkiDebug then writeln('NOT Found Food Bitmapmask');
end;
end;

//----------------------------------------------------------------------------//

procedure Quit(reason:String);
begin
Logout;
writeln(reason);
TerminateScript;
end;

//----------------------------------------------------------------------------//

function CountItemCol(Col: Integer): Integer;
var
i, x, y: Integer;
TB: Tbox;
begin
for i := 1 to 28 do
begin
TB := InvBox(i);
if ExistsItem(i) then
if FindColorTolerance(x, y, Col, TB.x1, TB.y1, TB.x2, TB.y2, 20) then
Inc(Result);
end;
end;

//----------------------------------------------------------------------------//

Procedure CountLoot;
var
Sb, Eb, Rb, Db:Integer;
begin

Sb := CountItemCol(9573906);
Eb := CountItemCol(1477648);
Rb := CountItemCol(858746);
Db := CountItemCol(11776948);

if Fawkidebug then writeln(' ');
if Fawkidebug then writeln(IntToStr(Sb) + ' Sapphires' );
if Fawkidebug then writeln(IntToStr(Eb) + ' Emeralds' );
if Fawkidebug then writeln(IntToStr(Rb) + ' Rubies' );
if Fawkidebug then writeln(IntToStr(Db) + ' Diamonds' );
end;

//----------------------------------------------------------------------------//
// Waits and performs FindRandoms. I call this procedure as much as possible!!!
//----------------------------------------------------------------------------//

procedure FTWait(myLen:Integer);
var mywait: Integer;
begin
for mywait := 0 to myLen do
begin
Wait(100 + Random(100));
FindNormalRandoms;
end
end;

//----------------------------------------------------------------------------//
// Walks to the Safe spot. Uses a DTMRotated. If not found uses blind click.
//----------------------------------------------------------------------------//

Function ToSafe:Boolean;
var
Gx, Gy:Integer;
Calx, Caly:Integer;
WhichAngle: Extended;
begin
MakeCompass('N');
Gx := 711;
Gy := 100;

if FindDtmRotated(CrackSafeDTM, CALx, CALy, 679, 85, 696, 105, -pi/4, pi/4, 0.1,
WhichAngle) then
begin
if rs_OnMiniMap(CALx, CALy) then
begin
if FawkiDebug then writeln('FindDtmRotated returded True');
MFF(CALx, CALy , 0, 10);
FFlag(0);
FTWait(4);
Result := True;
Exit;
end;
end
else
begin
if FawkiDebug then writeln('FindDtmRotated returded False');
end;

if FindBitmapSpiralTolerance(MMCrackSafe3, Gx, Gy, MMCx, MMy1, MMX2, MMY2, 20) then
begin
if FawkiDebug then writeln('MMCrackSafe3 bitmap found');
MFF(Gx + 10, Gy , 0, 10);
FFlag(0);
FTWait(4);
Result := True;
Exit;
end
else
begin
if FawkiDebug then writeln('bitmap not found. Blind click.');
MFF(683 + Random(4), 98 + Random(4), 0, 1);
FFlag(0);
Wait(500 + Random(250));
Result := True;
end;
end;

//----------------------------------------------------------------------------//
// Temp UpText checker. Looks for 'l' bitmap. If not found looks for uptext (when fixed)
//----------------------------------------------------------------------------//

Function IsSafeUptext:Boolean;
var
SingleL,x,y: Integer;
Begin
SingleL := BitmapFromString(2, 10, 'beNq7cpn/3nUgErh3g+kKiA' +
'0kIWwIyX3rCiOM5LsLkkWQACnKIkY=');

if FindBitmapToleranceIn(SingleL,x,y,MSx1,MSy1, 200,23,50) then
begin
Result := True;
if FawkiDebug then writeln('bitmap L found');
FreeBitmap(SingleL);
Exit;
End;

if FindColorTolerance(x, y, 14212624, 42, 8, 220, 21, 50) then // Blue
begin
FTwait(1);
if IsTextInAreaEx(7, 7, 160, 20, Dumx, Dumy, 'safe', 100, upchars, True, True, 0, 2, -1) then
begin
Result := True;
if FawkiDebug then writeln('safeuptext found');
FreeBitmap(SingleL);
Exit;
end;
End;
FreeBitmap(SingleL);
Result := False;
End;

//----------------------------------------------------------------------------//
// Clicks on Safe using Spiral. Wont move the mouse is uptext is stil there. Humanlike
//----------------------------------------------------------------------------//

Function ClickSafe:Boolean;
var
x, y :integer;
begin
if IsSafeUptext then
begin
if FawkiDebug then writeln('safeuptext found');
GetMousePos(x, y);
Mouse(x, y,0,0, True);
FTWait(5);
Result := True;
Exit;
end
else
begin
if FindColorSpiralTolerance(x, y, SafeColor, MSx1, MSy1, MSx2, MSy2, 0) then
begin
if FawkiDebug then writeln('SafeColor found');
MMouse(x, y, 4, 4);
GetMousePos(x, y);
FTWait(5);
if IsSafeUptext then
begin
if FawkiDebug then writeln('safeuptext found');
MMouse(x, y, 0, 0);
GetMousePos(x, y);
Mouse(x, y,0,0, True);
Result := True;
end
else
begin
if FawkiDebug then writeln('safeuptext not found');
Result := False;
end;
end;
end;
end;

//----------------------------------------------------------------------------//
// Clicks on Safe using MiddleOfTPA. Wont move the mouse is uptext is stil there.
//----------------------------------------------------------------------------//

Function ClickSafeTPA:Boolean;
var
x, y :integer;
TPP: Tpoint;
TheSafe:TpointArray;

begin
if IsSafeUptext then
begin
if FawkiDebug then writeln('safeuptext found');
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
Result := True;
FTWait(5);
Exit;
end;
if FindColorsSpiralTolerance(MSCx, MSCy, TheSafe, SafeColor, 200, 90, 290 ,160, 0) then
begin
if FawkiDebug then writeln('SafeTPA found');
TPP := MiddleTPA(TheSafe);
MMouse(TPP.x, TPP.y, 0, 0);
if FawkiDebug then writeln('Pointing to Middle TPA');
GetMousePos(x, y);
FTWait(5);
if IsSafeUptext then
begin
if FawkiDebug then writeln('safeuptext found');
MMouse(x, y, 4, 4);
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
Result := True;
end
else
begin
Result := False;
if FawkiDebug then writeln('SafeTPA not found');
end;
end
end;

// -------------------------------------------------------------------------- //

Function ClickBankSymbol:Boolean;
var
CalX, CalY: Integer;
begin
If FindColor(CALx, CALy, BankColor, MMX1, MMY1, MMX2, MMY2) then
begin
if rs_OnMiniMap(CALx, CALy) then
begin
Result := True;
MFF(CALx, CALy, 1, 1);
FFlag(0);
FTWait(1);
Result := True;
end
else
Result := False;
end;
end;

//----------------------------------------------------------------------------//
// Persisten Benedict Finder. Rotates Cam if Ben is not found and tries again
//----------------------------------------------------------------------------//

Function FindBenedict:Boolean;
var {Dmx, Dmy, }Ax, Ay, x, STime, ETime,TTime, Dumx, Dumy: integer;
Benedict :array[1..4] of integer;
RW, RS:Boolean;
begin
STime := GetSystemTime;
Benedict[1] := 1453619;
Benedict[2] := 2312273;
Benedict[3] := 2114122;
Benedict[4] := 1319469;
repeat
for x := 1 to 4 do
begin
if not LoggedIn then Exit;
// Ax := MSCx - (MSCx - MSx1) + Random(MSCx - MSx1);
// Ay := MScy - (MSCY - MSy1) + Random((MSCY - MSy1));
Ax := MSCx;
Ay := MScy;
ETime := GetSystemTime;
FTWait(4);
if FindColorSpiralTolerance(Ax, Ay, Benedict[x], MSx1, MSy1, MSx2, MSy2, 5) then
begin
MMouse(Ax, Ay, 2, 2);
GetMousePos(Ax, Ay);
FTwait(4);
if FindColorTolerance(Dumx, Dumy, 118992, 42, 8, 120, 21, 50) then // Yellow
begin
FTwait(4);
if IsTextInAreaEx(7, 7, 160, 20, Dumx, Dumy, 'mer', 100, upchars, True,
True, 0, 2, -1) then
begin
Mouse(Ax, Ay,0,0, False);
if Chooseoption('Bank') then
begin
TTime := GetSystemTime;
Repeat
Wait(1000);
Until BankScreen or (GetSystemTime - TTime > 15000)
if BankScreen then
begin
Result := True;
Exit;
end
else Break;
end
end;
end;
end;
end;
Wait(100);
if ETime-STime > 10000 then // After 10 seconds face West
begin
if not RW then
begin
ClickBankSymbol;
MakeCompass('W');
RW := True;
x := 1;
end;
end;
if ETime-STime > 25000 then // After 25 seconds face South
begin
if not RS then
begin
ClickBankSymbol;
MakeCompass('S');
WTDown;
RS := True;
x := 1;
end;
end;
until(ETime-STime > 40000);
Result := False;
end;

//----------------------------------------------------------------------------//

Function ToBank:Boolean;
begin
if ClickBankSymbol then
begin
Result := True;
Exit;
end
else
begin
MFF(600 + Random(4), 88 + Random(4), -1, 0);
FFlag(10);
if ClickBankSymbol then
begin
Result := True;
Exit;
end
else
Result := False;
end
end;

//----------------------------------------------------------------------------//
// Temp SmallChar Reader. Can be replaced if SRL-GetBlackChatMessage works again.
//----------------------------------------------------------------------------//

function WT2GetChatBoxText: string; // temp Smallchars Reader
begin
Result:= GetTextAtEx(14, 443, 0, SmallChars, False, False, 0, 1, 0, 80, False, tr_AllChars);
end;

//----------------------------------------------------------------------------//

Function WaitSafe:Boolean;
var
OBCM, NBCM: String;
TimeOut:Integer;
begin
FFlag(0);
FTWait(12);
OBCM:= WT2GetChatBoxText;
if FawkiDebug then writeln('OBCMgetblackchatmessage = ' + OBCM);
if Pos('start', OBCM) <> 0 then
begin
FTWait(12);
TimeOut := GetSystemTime;
repeat
NBCM := WT2GetChatBoxText;
if FawkiDebug then writeln('NBCM getblackchatmessage = ' + NBCM);
FTWait(2);
if OBCM <> NBCM then
begin
if Pos('slip', NBCM) <> 0 then
begin
Result:= False;
Inc(Fails);
Exit;
end;
if Pos('loot', NBCM) <> 0 then
begin
Result:= True;
Inc(Cracks);
Exit;
end;
end;
if Random(25) = 1 then
begin
IdleTime(2500, 2500, 0.6);
FindNormalRandoms;
End;
until GetSystemTime - TimeOut > 8000;
end;
end;

//----------------------------------------------------------------------------//
// Banks and withdraws 10 Lobsters. Unless you Thieving level = above 90
// leave it at 10 lobsters.
// If you have a stethoscope (buy from Martin nearby) it will keep this in invent
//----------------------------------------------------------------------------//

Function Bank:Boolean;
var
Dx, Dy:integer;
var
Sb, Eb, Rb, Db:Integer;

begin
Fixbank;
Sb := CountItemCol(9573906);
Eb := CountItemCol(1477648);
Rb := CountItemCol(858746);
Db := CountItemCol(11776948);

Sapphires := Sb + Sapphires;
Emeralds := Eb + Emeralds;
Rubies := Rb + Rubies;
Diamonds := Db + Diamonds;
if HaveStethos = True then Deposit(2,28, True) else DepositAll;
ProgressReport;
FTWait(10);
if FindBitmapMaskTolerance(Food,Dx, Dy, MSX1, MSY1, MSX2, MSY2, 20, 20) then
begin
Mouse(Dx, Dy, 4, 4, False);
ChooseOption('10');
Inc(Banks);
Reportvars[0] := 1;
Result := True;
CloseBank;
end
else
begin
if FawkiDebug then writeln('cant find food');
Result := False;
end;
end;

//----------------------------------------------------------------------------//
// No more damagable creatures in runescape...but still....you never know :)
//----------------------------------------------------------------------------//

procedure RunAway2;
begin
RunAway('N', False, 2, 6000);
FTWait(8);
Logout;
Terminatescript;
end;

//----------------------------------------------------------------------------//
// Checks HP and will eat if damage is more then foodvalue.
//----------------------------------------------------------------------------//

Function CheckAndRestoreHealth: Boolean;
var
Lx, Ly:Integer;
var
HPColor: String;
begin
HPAmount:= GetMMlevels( 'hp', hpcolor);
Damage := HPLevel - HPAmount;
if FawkiDebug then writeln('CheckAndRestoreHealth: Damage = ' + IntToStr(Damage));
Result := True;
if Damage >= FoodHeals then
begin
if HaveFood(Lx,Ly) then
begin
{ MMouse(Lx + Random(4), Ly + Random(4),0,0);
GetMousePos(Lx, Ly);
if IsUpText('se') then
Mouse(Lx, Ly, 0, 0, True);
Mouse(Lx, Ly, 0, 0, True);}
Mouse(Lx + Random(4), Ly + Random(4),0,0, True);
Inc(Ate);
FTWait(12);
CountLoot;
end
else
Result := False;
end;
if Damage > 30 then Runaway2;
end;

//----------------------------------------------------------------------------//

procedure Setup;
var
i:Integer;
begin
ClearDebug;
SetupSRL;
Smart_Server := 111;
Smart_Signed := False;
Smart_Members := True;
LoadCSBitmaps;
DeclarePlayers;
if MySRLID <> '' then
begin
SRLID := MySRLID;
SRLPassword := MySRLPassword;
end;
for I := 0 to 19 do
ReportVars[I] := 0;

ReportVars[12] := 1;
ScriptID := '299';
GraphicsSet := True;
LoginPlayer;
FTWait(4);
SetRun(True);
MouseSpeed := 30;
Start := GetSystemTime;
SymbolAccuracy := 0.6;
HPLevel := GetSkillInfo('hitpoints', False);
ThievingLevel := GetSkillLevel('thieving');
BankColor := GetSymbolColor(DumX, DumY, 'bank')
if FawkiDebug then writeln('BankColor := ' +IntToStr(BankColor));
if (BankColor = 0) then
begin
writeln('ERROR: Couldnt find BankColor. Exiting...');
Terminatescript;
end;
SetFood(TheFood);
WTDown;
end;

//----------------------------------------------------------------------------//

begin
// SmartsetupEx(51, true, true, false);
// SetTargetDC(SmartGetDC);
Setup;
FixChat;
HPAmount := GetSkillInfo('hitpoints', True);
if not FindBenedict then Quit('Couldnt find Benedict');
if not Bank then Quit('No food at Bank');
repeat
ClickNorth(False);
ToSafe;
Start := GetSystemTime;
repeat
if not LoggedIn then Exit;
if Stethoscope then if HaveStethos then ClickStethos;
if ClickSafe then if WaitSafe then Start := GetSystemTime;
if not CheckAndRestoreHealth then break;
if Stethoscope then if HaveStethos then ClickStethos;
if ClickSafeTPA then if WaitSafe then Start := GetSystemTime;
if InvFull then Break;
Emergency := GetSystemTime;
if Emergency - Start > 50000 then // if for 50 secs no safes then break
begin
Start := GetSystemTime;
Break;
end;

if (GetTimeRunning mod 60000) < 1500 then
begin
if InvFull or (not HaveFood(Dumx, Dumy)) then break;
ProgressReport;
CountLoot;
IdleTime(2500, 2500, 0.6);
end;
FTWait(1);
until false; // DID I WRITE THIS? :)
if not ToBank then Quit('Couldnt Find Bank');
if not FindBenedict then Quit('Couldnt find Benedict');
if not Bank then Quit('No food at Bank');
MakeCompass('N');
Start := GetSystemTime;
ProgressReport;
until false
end.

NCDS

2010-01-12 14:48:47

Just somethign I randomly skimmed over and noticed but, I don't sdee how what I commented out is necesarry at all:

Function ClickSafe:Boolean;
var
x, y :integer;
begin
if IsSafeUptext then
begin
if FawkiDebug then writeln('safeuptext found');
GetMousePos(x, y);
Mouse(x, y,0,0, True);
FTWait(5);
Result := True;
Exit;
end
else
begin
if FindColorSpiralTolerance(x, y, SafeColor, MSx1, MSy1, MSx2, MSy2, 0) then
begin
if FawkiDebug then writeln('SafeColor found');
MMouse(x, y, 4, 4);
GetMousePos(x, y);
FTWait(5);
if IsSafeUptext then
begin
if FawkiDebug then writeln('safeuptext found');
{ MMouse(x, y, 0, 0);
GetMousePos(x, y);}
Mouse(x, y,0,0, True);
Result := True;
end
else
begin
if FawkiDebug then writeln('safeuptext not found');
Result := False;
end;
end;
end;
end;

All that would do is move the mouse to the same coords it is already at, and then return the same x,y values as the previous GetMousePos(); or perhaps I've over looked something?

WT-Fakawi

2010-01-12 16:19:07

From: NCDS
or perhaps I've over looked something?
Nope. You are right… I think. Useless it is :)

I am very cautious with the mouse. Depsite the fact I don't know for sure Jagex tracks Mouse Movements, I still hate to see the Mouse jump from one pos to another without being preceeded by a proper move.

One of the things in scripts that make me happy is seeing the Mouse moving just as I would have moved it.


From: The Claw
- Added the bit in ToSafe mentioned above
- Line 360 of the version posted by Main_Ftw, MMouse(x, y, 4, 4); changed to MMouse(x, y, 0, 0);, as after checking uptext before every click it would move the mouse a tiny bit, then click - just something annoying that could be detected, imo.
- Line 354 changed randomness from 0,0 to 4,4. I think what was happening was it would move the mouse to the exact colour found, then move it randomly a bit before clicking. Now it moves it to the spot with randomness, and doesnt move it before clicking.
- Put if not CheckAndRestoreHealth then break; above the StethoScope Click in main loop so it wouldnt use stethoscope on lobsters if it needed to eat.

Safe object finding could use some work, especially when theres people around - if someone is at the safe the mouse moves to, the uptext is different and it doesnt right click. Tried using a right click and ChooseOption but it appears to be broken and cbf coming up with a solution atm.



56k of loot, minus the 3k of lobbies = 212k gp/hour, approx 17k thieving xp/hour at lvl 60 with a stethoscope. Not bad overall :p


Thank you for your valuable info. A true Master :) I have taken over your thoughts and adjustments. And yes, profit is very reasonable indeed.

Specific: Line 360. The tiny mouse movement that bothered me! You found it! Wonderful.
Line 354. Yes better indeed!
Yes Stethoscope solved! Without ever knowing its existence. ;)

Safe Object finding. I haven't encountered problems with Legits getting in the way. But this version does not rely on UpText at all (because it was broken) but a mere small bitmap of the blue letter "l". (wall). Rightclick it doenst. ChooseOption is broken….sometimes. I rely on stupid sliced bitmaps of the text. They always work :) (I hate it when things dont work because scar blah)

Profit?

[FONT="Courier New"]<============== - Progress Report ===============>
Worked for 1 Hours, 17 Minutes and 0 Seconds
Banked 8 Times
Cracked 440 Safes
Failed 108 Safes
Ate 58 Food
Banked 50 Sapphires
Banked 34 Emeralds
Banked 15 Rubies
Banked 2 Diamonds


<============== - Progress Report ===============>
Worked for 55 Minutes and 1 Seconds
Banked 7 Times
Cracked 218 Safes
Failed 184 Safes
Ate 61 Food
Banked 94 Sapphires
Banked 54 Emeralds
Banked 45 Rubies
Banked 9 Diamonds

<============== - Progress Report ===============>
Worked for 1 Hours, 20 Minutes and 0 Seconds
Banked 6 Times
Cracked 464 Safes
Failed 155 Safes
Ate 50 Food
Banked 59 Sapphires
Banked 32 Emeralds
Banked 27 Rubies
Banked 2 Diamonds


<============== - Progress Report ===============>
Worked for 1 Hours, 55 Minutes and 32 Seconds
Banked 13 Times
Cracked 543 Safes
Failed 173 Safes
Ate 68 Food
Banked 78 Sapphires
Banked 58 Emeralds
Banked 30 Rubies
Banked 8 Diamonds

<============== - Progress Report ===============>
Worked for 3 Hours, 59 Minutes and 0 Seconds
Banked 31 Times
Cracked 875 Safes
Failed 709 Safes
Ate 244 Food
Banked 79 Sapphires
Banked 69 Emeralds
Banked 31 Rubies
Banked 5 Diamonds

<============== - Progress Report ===============>
Worked for 3 Hours, 42 Minutes and 14 Seconds
Banked 23 Times
Cracked 953 Safes
Failed 645 Safes
Ate 220 lobsters
Banked 105 Sapphires
Banked 54 Emeralds
Banked 41 Rubies
Banked 7 Diamonds

<============== - Progress Report ===============>
Worked for 2 Hours, 56 Minutes and 0 Seconds
Banked 22 Times
Cracked 703 Safes
Failed 494 Safes
Ate 173 lobsters
Banked 73 Sapphires
Banked 50 Emeralds
Banked 30 Rubies
Banked 4 Diamonds


<============== - Progress Report ===============>
Worked for 3 Hours, 29 Minutes and 32 Seconds
Banked 22 Times
Cracked 941 Safes
Failed 599 Safes
Ate 204 lobsters
Banked 89 Sapphires
Banked 63 Emeralds
Banked 29 Rubies
Banked 6 Diamonds

<============== - Progress Report ===============>
Worked for 2 Hours, 19 Minutes and 0 Seconds
Banked 14 Times
Cracked 564 Safes
Failed 361 Safes
Ate 122 lobsters
Banked 57 Sapphires
Banked 30 Emeralds
Banked 20 Rubies
Banked 8 Diamonds


<============== - Progress Report ===============>
Worked for 1 Hours, 50 Minutes and 22 Seconds
Banked 12 Times
Cracked 497 Safes
Failed 314 Safes
Ate 104 lobsters
Banked 40 Sapphires
Banked 34 Emeralds
Banked 20 Rubies
Banked 2 Diamonds

<============== - Progress Report ===============>
Worked for 45 Minutes and 0 Seconds
Banked 5 Times
Cracked 195 Safes
Failed 128 Safes
Ate 39 lobsters
Banked 19 Sapphires
Banked 19 Emeralds
Banked 7 Rubies
Banked 5 Diamonds

<============== - Progress Report ===============>
Worked for 3 Hours, 40 Minutes and 19 Seconds
Gained 69090 Xp
Banked 23 Times
Cracked 987 Safes
Failed 397 Safes
Ate 221 lobsters
Banked 143 Sapphires
Banked 90 Emeralds
Banked 48 Rubies
Banked 4 Diamonds


<============== - Progress Report ===============>
Worked for 3 Hours, 23 Minutes and 53 Seconds
Gained 93800 Xp
Banked 16 Times
Cracked 1340 Safes
Failed 50 Safes
Ate 68 lobsters
Banked 153 Sapphires
Banked 88 Emeralds
Banked 50 Rubies
Banked 11 Diamonds


<============== - Progress Report ===============>
Worked for 2 Hours, 37 Minutes and 1 Seconds
Gained 71960 Xp
Banked 12 Times
Cracked 1028 Safes
Failed 44 Safes
Ate 57 lobsters
Banked 87 Sapphires
Banked 78 Emeralds
Banked 40 Rubies
Banked 4 Diamonds

<============== - Progress Report ===============>
Worked for 40 Minutes and 15 Seconds
Gained 10710 Xp
Banked 5 Times
Cracked 153 Safes
Failed 51 Safes
Ate 40 lobsters
Banked 26 Sapphires
Banked 12 Emeralds
Banked 14 Rubies
Banked 3 Diamonds


<============== - Progress Report ===============>
Worked for 2 Hours, 8 Minutes and 57 Seconds
Gained 54320 Xp
Banked 11 Times
Cracked 776 Safes
Failed 77 Safes
Ate 51 lobsters
Banked 84 Sapphires
Banked 57 Emeralds
Banked 29 Rubies
Banked 5 Diamonds[/FONT]

Wanted

2010-01-12 16:22:45

Using GetMousePos is always good practice

The Claw

2010-01-13 06:23:05

- About it running north, there was something called "spinning blades" which was in the top left corner, must of had the same colour as the safe because it clicked it, ran north, and I had to manually click it back to the safe. A consequence of using the "l" as uptext I guess.
- Needs a check to make it not keep trying to theive when its got some food left and invent is full…probably a bug thats come up lately, I doubt you would of left it like this :p
- Doesnt seem to be depositing or counting gems.
- It would also benefit from a calibration back to the safespot (lol) if its not there each thieve, just in case.

All these are easy fixes, would do em but don't have time right now. I get the feeling none of this would of come up if SCAR was working as it should - very solid script overall.

NCDS: Yeah, I think I left that in there when I was messing with that part of the script. My bad..:p

From: WT-Fakawi
Thank you for your valuable info. A true Master :) I have taken over your thoughts and adjustments. And yes, profit is very reasonable indeed.

Specific: Line 360. The tiny mouse movement that bothered me! You found it! Wonderful.
Line 354. Yes better indeed!
Yes Stethoscope solved! Without ever knowing its existence. ;)


You're the master for coding such a logical and fluent script to work on :sasmokin:

Harry

2010-01-15 00:12:25

Function ClickStethos:Boolean;
var
x,y:Integer;
begin
if FindBitMapMaskTolerance(StethosMask, x, y, MIx1, MIy1, Mix2, MIy2, 50, 50) then
begin
MoveMouse((x + 14) - Random(14) + Random(14),(y + 14) - Random(14) + Random(14));
GetMousePos(x,y);
ClickMouse(x, y, True);
Result := True;
end
end;
Ok, why are we using ancient procedures that we KNOW are detected by Jagex in the script? :(

Feel free to correct me, it still surprises me.

I cleaned out all the commands that look unsafe to me.. here's the version.
//----------------------------------------------------------------------------//
// *
// * NAME : Safe Cracker
// * WRITER : WT-Fakawi
// * CATEGORY : Collecting/Banking
// * DESCRIPTION : Cracks safes and banks Gems. USES STETHOSCOPE IF WIELDED!!!
// * USAGE : Sample the Safe Color, the brown outline color! LINE 32
// * Start near Benedict, Face Down. Make Sure BankSymbol
// * is uncovered.
// * AUTOCOLOR : NO.
// * NOTES : SRL 4
// * DATE : rereleased @ 10-01-2010
//----------------------------------------------------------------------------//
// 1. USE the DEFAULT Runescape Client with Low Detail, Very Bright.
// 2. Set your Screen to 32 bit TRUE color.
// 3. Find yourself a quiet World.
// 4. Position your char near Benedict at Burthorpe Pub's cellar
// 5. Buy a Stethoscope @ Martin to increase chances.
// --- If you can't, set Stethoscope to False (Line 34)
// 6. Have Lostera visible in upper bankslot
//-------------------------------------------------------------- --------------//

program SafeCracker;
//{.include SRL/SRL/Misc/Smart.scar}
{.include SRL/SRL.scar}

// SAMPLE THE BROWN OUTLINE OF THE SAFE
Const SafeColor = 2182252; // <- replace this number with the current safe color!!!!
// SAMPLE THE BROWN OUTLINE OF THE SAFE



Const TheFood = 'lobster'; // one choices for now: 'lobster'
Const Stethoscope = True; // Buy a Stethoscope @ Martin for better cracking!!!
Const VersionNumber = '0.35';
const RemoteMaster = ''; //<- fill in the Nickname of the RC master
const MySRLID = ''; //<- Your SRLID. Leave blank if you dont have one.
const MySRLPassword = ''; //<- Your SRL Password here if you want to have yout stats logged
const FawkiDebug = False;

var
Sapphires, Emeralds, Rubies, Diamonds, Fails,Cracks, Ate,
MMCrackSafe3, Start, Emergency, Food, Dumx, Dumy, FoodHeals, FoodLeft,
Damage, HPAmount, HPLevel, ThievingLevel, CrackSafeDTM,StethosMask :Integer;

//----------------------------------------------------------------------------//

Procedure DeclarePlayers;
begin
NumberOfPlayers(1);
CurrentPlayer := 0;

Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Active := True;
end;

//----------------------------------------------------------------------------//

Procedure WTDown;

Begin
KeyDown(VK_DOWN);
Wait(2500 + Random(1000));
KeyUp(VK_DOWN);
End;

//----------------------------------------------------------------------------//

Procedure WTUp;

Begin
KeyDown(VK_UP);
Wait(2500 + Random(1000));
KeyUp(VK_UP);
End;

//----------------------------------------------------------------------------//

procedure ProgressReport;
begin
begin
writeln(' ');
writeln('<============== - Progress Report ===============>');
writeln('Worked for '+ TimeRunning);
writeln('Thieving Level '+ IntToStr(ThievingLevel));
writeln('Gained '+ IntToStr(Cracks * 70)+ ' Xp');
writeln('Banked '+ IntToStr(Banks)+ ' Times');
writeln('Cracked '+ IntToStr(Cracks)+ ' Safes');
writeln('Failed '+ IntToStr(Fails)+ ' Safes');
writeln('Ate '+ IntToStr(Ate)+ ' ' + TheFood + 's');
writeln('Banked '+ IntToStr(Sapphires)+ ' Sapphires');
writeln('Banked '+ IntToStr(Emeralds)+ ' Emeralds');
writeln('Banked '+ IntToStr(Rubies)+ ' Rubies');
writeln('Banked '+ IntToStr(Diamonds)+ ' Diamonds');
writeln(' ');
end;
end;

//----------------------------------------------------------------------------//

procedure LoadCSBitmaps;
begin
MMCrackSafe3 := BitmapFromString(20, 1, 'beNp79fzlKwTycpCH' +
'I8LiAKnkJgE=');
CrackSafeDTM := DTMFromString('78DA635CC8C4C010C500068C108A21CC4B85E' +
'13F94FF1F08181700D584A3AA79F9EA398311129F7131116AE663' +
'AAF172904755B3840835B389B06B05116A961361D71CC26A00431' +
'71DC8');

StethosMask := BitmapFromString(28, 22, 'beNrF1UEKACAIBED//' +
'2mDDhFpWqviHiMnkCwiODxDeVlaonw4KbIqBNlbOczahQBbDUrh11' +
'RB9xTjbhu1vEVdlAGaFuxA3HxvV6PZu7Oi7UVmxRS7hZGHUR2clK/' +
'BnU0nA3D+yzU=');

end;

//----------------------------------------------------------------------------//

Function HaveStethos:Boolean;
var
x,y:Integer;
begin
Result := FindBitMapMaskTolerance(StethosMask, x, y, MIx1, MIy1, Mix2, MIy2, 50, 50);
end;

//----------------------------------------------------------------------------//

Function ClickStethos:Boolean;
var
x,y:Integer;
begin
if FindBitMapMaskTolerance(StethosMask, x, y, MIx1, MIy1, Mix2, MIy2, 50, 50) then
begin
Mouse((x + 14) - Random(14) + Random(14),(y + 14) - Random(14) + Random(14));
Result := True;
end
end;

//----------------------------------------------------------------------------//

procedure SetFood(WhatFood:String);
begin
case WhatFood of
'lobster':
Begin
Food := BitmapFromString(10, 13, 'beNpjYMAD/v//j5WNJ' +
'oIpBRGEADwm45HFJUW5LC41BL1DqizWEMAeLABkblmn');
FoodHeals := 12;
End;
'salmon':
Begin
Food := BitmapFromString2(False, 'a0AA9478DACDD04B0A80300' + // = old bitmap; needs to be updated!
'C04D02B4D3F69B3556BEF7F2433D92808A29482593C0A69261000' +
'68D1802E467625EF7457DA8B5902FF1464332A15D9CEAE078826B' +
'E6B306B64B7A646A553CF4C2A66587D00E85E9850D7E4195BEE99' +
'B3B7FCFF56FDB1C66F3532F5BEBEE61FA70');
FoodHeals := 9;
End;
end;
end;

//----------------------------------------------------------------------------//

Function HaveFood(var Lx, Ly:Integer): Boolean;
var Dx, Dy:integer;
begin
if FawkiDebug then writeln('into HaveFood');
GameTab(tab_Inv);
FoodLeft := CountItems('mask', Food, [20]);
if FawkiDebug then writeln('food left =' + IntToStr(FoodLeft));
if FindBitmapMaskTolerance(Food,Dx, Dy, MIX1, MIY1, MIX2, MIY2, 20, 20) then
begin
if FawkiDebug then writeln('Found Food Bitmapmask');
Lx := Dx;
Ly := Dy;
Result := True;
end
else
begin
Result := False;
if FawkiDebug then writeln('NOT Found Food Bitmapmask');
end;
end;

//----------------------------------------------------------------------------//

procedure Quit(reason:String);
begin
Logout;
writeln(reason);
TerminateScript;
end;

//----------------------------------------------------------------------------//

function CountItemCol(Col: Integer): Integer;
var
i, x, y: Integer;
TB: Tbox;
begin
for i := 1 to 28 do
begin
TB := InvBox(i);
if ExistsItem(i) then
if FindColorTolerance(x, y, Col, TB.x1, TB.y1, TB.x2, TB.y2, 20) then
Inc(Result);
end;
end;

//----------------------------------------------------------------------------//

Procedure CountLoot;
var
Sb, Eb, Rb, Db:Integer;
begin

Sb := CountItemCol(9573906);
Eb := CountItemCol(1477648);
Rb := CountItemCol(858746);
Db := CountItemCol(11776948);

if Fawkidebug then writeln(' ');
if Fawkidebug then writeln(IntToStr(Sb) + ' Sapphires' );
if Fawkidebug then writeln(IntToStr(Eb) + ' Emeralds' );
if Fawkidebug then writeln(IntToStr(Rb) + ' Rubies' );
if Fawkidebug then writeln(IntToStr(Db) + ' Diamonds' );
end;

//----------------------------------------------------------------------------//
// Waits and performs FindRandoms. I call this procedure as much as possible!!!
//----------------------------------------------------------------------------//

procedure FTWait(myLen:Integer);
var mywait: Integer;
begin
for mywait := 1 to myLen do
begin
Wait(100 + Random(100));
FindNormalRandoms;
end
end;

//----------------------------------------------------------------------------//
// Walks to the Safe spot. Uses a DTMRotated. If not found uses blind click.
//----------------------------------------------------------------------------//

Function ToSafe:Boolean;
var
Gx, Gy:Integer;
Calx, Caly:Integer;
WhichAngle: Extended;
begin
MakeCompass('N');
Gx := 711;
Gy := 100;

if FindDtmRotated(CrackSafeDTM, CALx, CALy, 679, 85, 696, 105, -pi/4, pi/4, 0.1,
WhichAngle) then
begin
if rs_OnMiniMap(CALx, CALy) then
begin
if FawkiDebug then writeln('FindDtmRotated returded True');
MFF(CALx, CALy , 0, 10);
FFlag(0);
FTWait(4);
Result := True;
Exit;
end;
end
else
begin
if FawkiDebug then writeln('FindDtmRotated returded False');
end;

if FindBitmapSpiralTolerance(MMCrackSafe3, Gx, Gy, MMCx, MMy1, MMX2, MMY2, 20) then
begin
if FawkiDebug then writeln('MMCrackSafe3 bitmap found');
MFF(Gx + 10, Gy , 0, 10);
FFlag(0);
FTWait(4);
Result := True;
Exit;
end
else
begin
if FawkiDebug then writeln('bitmap not found. Blind click.');
MFF(683 + Random(4), 100 + Random(4), 0, 1);
FFlag(0);
Wait(500 + Random(250));
Result := True;
end;
end;

//----------------------------------------------------------------------------//
// Temp UpText checker. Looks for 'l' bitmap. If not found looks for uptext (when fixed)
//----------------------------------------------------------------------------//

Function IsSafeUptext:Boolean;
var
SingleL,x,y: Integer;
Begin
SingleL := BitmapFromString(2, 10, 'beNq7cpn/3nUgErh3g+kKiA' +
'0kIWwIyX3rCiOM5LsLkkWQACnKIkY=');

if FindBitmapToleranceIn(SingleL,x,y,MSx1,MSy1, 200,23,50) then
begin
Result := True;
if FawkiDebug then writeln('bitmap L found');
FreeBitmap(SingleL);
Exit;
End;

if FindColorTolerance(x, y, 14212624, 42, 8, 220, 21, 50) then // Blue
begin
FTwait(1);
if IsTextInAreaEx(7, 7, 160, 20, Dumx, Dumy, 'safe', 100, upchars, True, True, 0, 2, -1) then
begin
Result := True;
if FawkiDebug then writeln('safeuptext found');
FreeBitmap(SingleL);
Exit;
end;
End;
FreeBitmap(SingleL);
Result := False;
End;

//----------------------------------------------------------------------------//
// Clicks on Safe using Spiral. Wont move the mouse is uptext is stil there. Humanlike
//----------------------------------------------------------------------------//

Function ClickSafe:Boolean;
var
x, y :integer;
begin
if IsSafeUptext then
begin
if FawkiDebug then writeln('safeuptext found');
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
FTWait(5);
Result := True;
Exit;
end
else
begin
if FindColorSpiralTolerance(x, y, SafeColor, MSx1, MSy1, MSx2, MSy2, 0) then
begin
if FawkiDebug then writeln('SafeColor found');
MMouse(x, y, 0, 0);
GetMousePos(x, y);
FTWait(5);
if IsSafeUptext then
begin
if FawkiDebug then writeln('safeuptext found');
Mouse(x, y, 4, 4,true);
Result := True;
end
else
begin
if FawkiDebug then writeln('safeuptext not found');
Result := False;
end;
end;
end;
end;

//----------------------------------------------------------------------------//
// Clicks on Safe using MiddleOfTPA. Wont move the mouse is uptext is stil there.
//----------------------------------------------------------------------------//

Function ClickSafeTPA:Boolean;
var
x, y :integer;
TPP: Tpoint;
TheSafe:TpointArray;

begin
if IsSafeUptext then
begin
if FawkiDebug then writeln('safeuptext found');
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
Result := True;
FTWait(5);
Exit;
end;
if FindColorsSpiralTolerance(MSCx, MSCy, TheSafe, SafeColor, 200, 90, 290 ,160, 0) then
begin
if FawkiDebug then writeln('SafeTPA found');
TPP := MiddleTPA(TheSafe);
MMouse(TPP.x, TPP.y, 0, 0);
if FawkiDebug then writeln('Pointing to Middle TPA');
GetMousePos(x, y);
FTWait(5);
if IsSafeUptext then
begin
if FawkiDebug then writeln('safeuptext found');
MMouse(x, y, 4, 4);
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
Result := True;
end
else
begin
Result := False;
if FawkiDebug then writeln('SafeTPA not found');
end;
end
end;

// -------------------------------------------------------------------------- //

Function ClickBankSymbol:Boolean;
var
CalX, CalY: Integer;
begin
If FindColor(CALx, CALy, BankColor, MMX1, MMY1, MMX2, MMY2) then
begin
if rs_OnMiniMap(CALx, CALy) then
begin
Result := True;
MFF(CALx, CALy, 1, 1);
FFlag(0);
FTWait(1);
Result := True;
end
else
Result := False;
end;
end;

//----------------------------------------------------------------------------//
// Persisten Benedict Finder. Rotates Cam if Ben is not found and tries again
//----------------------------------------------------------------------------//

Function FindBenedict:Boolean;
var {Dmx, Dmy, }Ax, Ay, x, STime, ETime,TTime, Dumx, Dumy: integer;
Benedict :array[1..4] of integer;
RW, RS:Boolean;
begin
STime := GetSystemTime;
Benedict[1] := 1453619;
Benedict[2] := 2312273;
Benedict[3] := 2114122;
Benedict[4] := 1319469;
repeat
for x := 1 to 4 do
begin
if not LoggedIn then Exit;
// Ax := MSCx - (MSCx - MSx1) + Random(MSCx - MSx1);
// Ay := MScy - (MSCY - MSy1) + Random((MSCY - MSy1));
Ax := MSCx;
Ay := MScy;
ETime := GetSystemTime;
FTWait(4);
if FindColorSpiralTolerance(Ax, Ay, Benedict[x], MSx1, MSy1, MSx2, MSy2, 5) then
begin
MMouse(Ax, Ay, 2, 2);
GetMousePos(Ax, Ay);
FTwait(4);
if FindColorTolerance(Dumx, Dumy, 118992, 42, 8, 120, 21, 50) then // Yellow
begin
FTwait(4);
if IsTextInAreaEx(7, 7, 160, 20, Dumx, Dumy, 'mer', 100, upchars, True,
True, 0, 2, -1) then
begin
Mouse(Ax, Ay, 0,0, False);
if Chooseoption('Bank') then
begin
TTime := GetSystemTime;
Repeat
Wait(1000);
Until BankScreen or (GetSystemTime - TTime > 15000)
if BankScreen then
begin
Result := True;
Exit;
end
else Break;
end
end;
end;
end;
end;
Wait(100);
if ETime-STime > 10000 then // After 10 seconds face West
begin
if not RW then
begin
ClickBankSymbol;
MakeCompass('W');
RW := True;
x := 1;
end;
end;
if ETime-STime > 25000 then // After 25 seconds face South
begin
if not RS then
begin
ClickBankSymbol;
MakeCompass('S');
WTDown;
RS := True;
x := 1;
end;
end;
until(ETime-STime > 40000);
Result := False;
end;

//----------------------------------------------------------------------------//

Function ToBank:Boolean;
begin
if ClickBankSymbol then
begin
Result := True;
Exit;
end
else
begin
MFF(600 + Random(4), 88 + Random(4), -1, 0);
FFlag(10);
if ClickBankSymbol then
begin
Result := True;
Exit;
end
else
Result := False;
end
end;

//----------------------------------------------------------------------------//
// Temp SmallChar Reader. Can be replaced if SRL-GetBlackChatMessage works again.
//----------------------------------------------------------------------------//

function WT2GetChatBoxText: string; // temp Smallchars Reader
begin
Result:= GetTextAtEx(14, 443, 0, SmallChars, False, False, 0, 1, 0, 80, False, tr_AllChars);
end;

//----------------------------------------------------------------------------//

Function WaitSafe:Boolean;
var
OBCM, NBCM: String;
TimeOut:Integer;
begin
FFlag(0);
FTWait(12);
OBCM:= WT2GetChatBoxText;
if FawkiDebug then writeln('OBCMgetblackchatmessage = ' + OBCM);
if Pos('start', OBCM) <> 0 then
begin
FTWait(12);
TimeOut := GetSystemTime;
repeat
NBCM := WT2GetChatBoxText;
if FawkiDebug then writeln('NBCM getblackchatmessage = ' + NBCM);
FTWait(2);
if OBCM <> NBCM then
begin
if Pos('slip', NBCM) <> 0 then
begin
Result:= False;
Inc(Fails);
Exit;
end;
if Pos('loot', NBCM) <> 0 then
begin
Result:= True;
Inc(Cracks);
Exit;
end;
end;
if Random(25) = 1 then
begin
IdleTime(2500, 2500, 0.6);
FindNormalRandoms;
End;
until GetSystemTime - TimeOut > 8000;
end;
end;

//----------------------------------------------------------------------------//
// Banks and withdraws 10 Lobsters. Unless you Thieving level = above 90
// leave it at 10 lobsters.
// If you have a stethoscope (buy from Martin nearby) it will keep this in invent
//----------------------------------------------------------------------------//

Function Bank:Boolean;
var
Dx, Dy:integer;
var
Sb, Eb, Rb, Db:Integer;

begin
Fixbank;
Sb := CountItemCol(9573906);
Eb := CountItemCol(1477648);
Rb := CountItemCol(858746);
Db := CountItemCol(11776948);

Sapphires := Sb + Sapphires;
Emeralds := Eb + Emeralds;
Rubies := Rb + Rubies;
Diamonds := Db + Diamonds;
if HaveStethos = True then Deposit(2,28, True) else DepositAll;
ProgressReport;
FTWait(10);
if FindBitmapMaskTolerance(Food,Dx, Dy, MSX1, MSY1, MSX2, MSY2, 20, 20) then
begin
Mouse(Dx, Dy, 4, 4, False);
ChooseOption('10');
Inc(Banks);
Reportvars[0] := 1;
Result := True;
CloseBank;
end
else
begin
if FawkiDebug then writeln('cant find food');
Result := False;
end;
end;

//----------------------------------------------------------------------------//
// No more damagable creatures in runescape...but still....you never know :)
//----------------------------------------------------------------------------//

procedure RunAway2;
begin
RunAway('N', False, 2, 6000);
FTWait(8);
Logout;
Terminatescript;
end;

//----------------------------------------------------------------------------//
// Checks HP and will eat if damage is more then foodvalue.
//----------------------------------------------------------------------------//

Function CheckAndRestoreHealth: Boolean;
var
Lx, Ly:Integer;
var
HPColor: String;
begin
HPAmount:= GetMMlevels( 'hp', hpcolor);
Damage := HPLevel - HPAmount;
if FawkiDebug then writeln('CheckAndRestoreHealth: Damage = ' + IntToStr(Damage));
Result := True;
if Damage >= FoodHeals then
begin
if HaveFood(Lx,Ly) then
begin
Mouse(Lx + Random(4), Ly + Random(4), 0,0, True);
Inc(Ate);
FTWait(12);
CountLoot;
end
else
Result := False;
end;
if Damage > 30 then Runaway2;
end;

//----------------------------------------------------------------------------//

procedure Setup;
var
i:Integer;
begin
ClearDebug;
SetupSRL;
Smart_Server := 51;
LoadCSBitmaps;
DeclarePlayers;
if MySRLID <> '' then
begin
SRLID := MySRLID;
SRLPassword := MySRLPassword;
end;
for I := 0 to 19 do
ReportVars[I] := 0;

ReportVars[12] := 1;
ScriptID := '299';
GraphicsSet := True;
LoginPlayer;
FTWait(4);
SetRun(True);
MouseSpeed := 30;
Start := GetSystemTime;
SymbolAccuracy := 0.6;
HPLevel := GetSkillInfo('hitpoints', False);
ThievingLevel := GetSkillLevel('thieving');
BankColor := GetSymbolColor(DumX, DumY, 'bank')
if FawkiDebug then writeln('BankColor := ' +IntToStr(BankColor));
if (BankColor = 0) then
begin
writeln('ERROR: Couldnt find BankColor. Exiting...');
Terminatescript;
end;
SetFood(TheFood);
WTDown;
end;

//----------------------------------------------------------------------------//

begin
// SmartsetupEx(51, true, true, false);
// SetTargetDC(SmartGetDC);
Setup;
FixChat;
HPAmount := GetSkillInfo('hitpoints', True);
if not FindBenedict then Quit('Couldnt find Benedict');
if not Bank then Quit('No food at Bank');
repeat
ClickNorth(False);
ToSafe;
Start := GetSystemTime;
repeat
if not LoggedIn then Exit;
if Stethoscope then if HaveStethos then ClickStethos;
if ClickSafe then if WaitSafe then Start := GetSystemTime;
if Stethoscope then if HaveStethos then ClickStethos;
if ClickSafeTPA then if WaitSafe then Start := GetSystemTime;
if InvFull then Break;
Emergency := GetSystemTime;
if Emergency - Start > 50000 then // if for 50 secs no safes then break
begin
Start := GetSystemTime;
Break;
end;
if not CheckAndRestoreHealth then break;
if (GetTimeRunning mod 60000) < 1500 then
begin
if InvFull or (not HaveFood(Dumx, Dumy)) then break;
ProgressReport;
CountLoot;
IdleTime(2500, 2500, 0.6);
end;
FTWait(1);
until false; // DID I WRITE THIS? :)
if not ToBank then Quit('Couldnt Find Bank');
if not FindBenedict then Quit('Couldnt find Benedict');
if not Bank then Quit('No food at Bank');
MakeCompass('N');
Start := GetSystemTime;
ProgressReport;
until false
end.

HyperSecret

2010-01-15 01:12:57

From: WT-Fakawi
You might want to replace ClickMouse with Mouse. I changed it for release because I dont recall which one was detactable: Mouse of ClickMouse. Anyway… I have used Mouse over the years.


Harry, fyi. He already knows. Plus it was posted above also…

Geez, I need to get 50 thieving to do this.

Harry

2010-01-15 03:10:23

From: HyperSecret
Harry, fyi. He already knows. Plus it was posted above also…

Geez, I need to get 50 thieving to do this.

Oh, d'oh. My bad then :P

WT-Fakawi

2010-01-15 06:52:58

<============== - Progress Report ===============>
Worked for 3 Hours, 15 Minutes and 17 Seconds
Banked 15 Times
Cracked 1393 Safes
Failed 77 Safes
Ate 59 lobsters
Banked 158 Sapphires
Banked 95 Emeralds
Banked 52 Rubies
Banked 7 Diamonds


So on average this script scores 350k an hour. Thanks for the additions Claw!

BTW: line 136 should be:
Mouse((x + 14) - Random(14) + Random(14),(y + 14) - Random(14) + Random(14),0,0,True);

HyperSecret

2010-01-18 01:58:08

<============== - Progress Report ===============>
Worked for 10 Minutes and 53 Seconds
Thieving Level 50
Gained 1540 Xp
Banked 3 Times
Cracked 22 Safes
Failed 18 Safes
Ate 12 lobsters
Banked 5 Sapphires
Banked 6 Emeralds
Banked 2 Rubies
Banked 1 Diamonds

Just got 50 thieving and ran it before I am off to bed real quick. Works good.


<============== - Progress Report ===============>
Worked for 30 Minutes and 0 Seconds
Thieving Level 51
Gained 4130 Xp
Banked 4 Times
Cracked 59 Safes
Failed 53 Safes
Ate 42 lobsters
Banked 9 Sapphires
Banked 5 Emeralds
Banked 2 Rubies
Banked 0 Diamonds


<============== - Progress Report ===============>
Worked for 2 Hours, 40 Minutes and 40 Seconds
Thieving Level 52
Gained 34160 Xp
Banked 17 Times
Cracked 488 Safes
Failed 306 Safes
Ate 187 lobsters
Banked 69 Sapphires
Banked 39 Emeralds
Banked 29 Rubies
Banked 3 Diamonds

I have 890k worth of gems after running this for these 3 hours, very nice!


Another


<============== - Progress Report ===============>
Worked for 1 Hours, 8 Minutes and 4 Seconds
Thieving Level 55
Gained 12950 Xp
Banked 7 Times
Cracked 185 Safes
Failed 100 Safes
Ate 75 lobsters
Banked 27 Sapphires
Banked 29 Emeralds
Banked 12 Rubies
Banked 1 Diamonds

HyperSecret

2010-01-24 20:02:02

double post i know.

Fawki, how do you make you bitmaps? I tried making a bitmap for trout, salmon, swords and sharks. The way I use to make them doesn't seem to be working…

WT-Fakawi

2010-01-25 02:16:08

Hey thanks for the progressreports!

I make the bitmaps with photoshop. They are masks. The only reason I didn't implement was I didn't have them on my bank at the time :)

marpis

2010-02-01 09:12:32

That one Fawki's 55 min proggy has made 690k o_O
Dude you MUST add profit calculations to the proggy!

WhiteShadow

2010-02-05 01:00:29

My character's pretty weak..

<============== - Progress Report ===============>
Worked for 3 Hours, 15 Minutes and 54 Seconds
Thieving Level 51
Gained 25480 Xp
Banked 43 Times
Cracked 364 Safes
Failed 243 Safes
Ate 231 lobsters
Banked 84 Sapphires
Banked 50 Emeralds
Banked 33 Rubies
Banked 1 Diamonds

WT-Fakawi

2010-03-09 01:54:33

Not bad at all… :)

<============== - Progress Report ===============>
Worked for 4 Hours, 36 Minutes and 23 Seconds
Thieving Level 86
Gained 69510 Xp
Banked 23 Times
Cracked 993 Safes
Failed 160 Safes
Ate 207 lobsters
Banked 183 Sapphires
Banked 121 Emeralds
Banked 48 Rubies
Banked 6 Diamonds

HyperSecret

2010-03-09 02:40:59

From: WT-Fakawi
Not bad at all… :)

<============== - Progress Report ===============>
Worked for 4 Hours, 36 Minutes and 23 Seconds
Thieving Level 86
Gained 69510 Xp
Banked 23 Times
Cracked 993 Safes
Failed 160 Safes
Ate 207 lobsters
Banked 183 Sapphires
Banked 121 Emeralds
Banked 48 Rubies
Banked 6 Diamonds


Did you edit the script recently? Since the update my script has been not working, saying that the 'Emergency' line. I don't know where it is failing, I haven't really had time to look at it to fix it, just wondering if you made any edits.

Thanks

WT-Fakawi

2010-03-09 05:25:56

Yes it is the HP*10 I editted. I will upload once again :)

HyperSecret

2010-03-12 10:46:04

I believe mine was even broken before the major HP update and all those, hmm either way, i'll give it a try once you upload your most recent.

WT-Fakawi

2010-03-25 06:44:31

New Version 0.38 ….with better callibration. Can wield stethoscope. Runs smooth for at least 5 hours in a row!

marpis

2010-03-28 06:19:14

How much /hr does this make with 54 thieving?

WT-Fakawi

2010-03-28 11:13:39

not much. Costs a lot of lobsters too. Makes at thiev-54 approx. 100k / Hour. At 90+ it generates 500k / Hour. I just love to have 1000's of uncuts :) My latest Player I trained to thiev-90+ and he has generated over 50 mil within two months of membership by just this and the Masterfarmer.

Better value for money is the Masterfarmer.

Ejjman

2010-03-30 15:57:08

This script still up and running?

I can see that this is obviously good profit, but do you get good xp aswell? I've never really cracked the safe much besides like 2 or 3 times.

Timer

2010-03-30 15:58:10

Sure is.

WT-Fakawi

2010-03-30 16:12:24

From: Ejjman1
This script still up and running?

I can see that this is obviously good profit, but do you get good xp aswell? I've never really cracked the safe much besides like 2 or 3 times.


Yep. Still running!

HyperSecret

2010-04-07 20:09:04

Sorry I don't have any progress reports =(. I only use this while I study and am sitting right in front of my computer. I don't use SMART either, btw.

I also do all the walking/bank (for some reason it was messing up). So it cracks the safes and eats for me. Just so I don't over use it also.

I do however have my gems from level 70-72

= just over 4m in gems.

I am going to be using this a lot, as I already have been. Going to stack my gems until 80 and will update with another post at that time. Don't know when it will be though.

Thanks again!

Ejjman

2010-04-11 01:04:27

Fawki, I can't get this to run well for the life of me! It takes a few tries to finally get it working.

If there's someone on the south side already, it moves to the top, then tries finding the spot to click. It should flip the camera to south if it wants it do that. Maybe that function is broken in SRL though if you have that in there, I'm not quite sure though.

Also, might consider auto color on the thing :D I might just add it, but you do it soo much better than me.

BUT when i do get this running, it runs. I'm sitting at 75 theiving, with 5 mil worth of gems. Great script when it decides to work.

WT-Fakawi

2010-04-11 14:01:19

I never have any problems running it. But I always run it in downtime on quiet servers. I have noticed that with a stethoscope it can only use one slot when the other is occupied, and I got a report where the Player actually followed a familiair because it had the same color as the safe! This script runs smooth for me. Do you start at Benedict (Bank?) because that is where you need to place your Player :)


<============== - Progress Report ===============>
Worked for 2 Hours, 38 Minutes and 1 Seconds
Thieving Level ..
Gained 35280 Xp
Banked 16 Times
Cracked 504 Safes
Failed 146 Safes
Ate 158 lobsters
Banked 83 Sapphires
Banked 70 Emeralds
Banked 30 Rubies
Banked 6 Diamonds

<============== - Progress Report ===============>
Worked for 1 Hours, 45 Minutes and 0 Seconds
Thieving Level ..
Gained 25690 Xp
Banked 9 Times
Cracked 367 Safes
Failed 60 Safes
Ate 72 lobsters
Banked 72 Sapphires
Banked 45 Emeralds
Banked 20 Rubies
Banked 4 Diamonds


<============== - Progress Report ===============>
Worked for 2 Hours, 55 Minutes and 0 Seconds
Thieving Level ..
Gained 33600 Xp
Banked 26 Times
Cracked 480 Safes
Failed 109 Safes
Ate 146 lobsters
Banked 100 Sapphires
Banked 69 Emeralds
Banked 44 Rubies
Banked 4 Diamonds



<============== - Progress Report ===============>
Worked for 2 Hours, 45 Minutes and 4 Seconds
Thieving Level ..
Gained 43260 Xp
Banked 14 Times
Cracked 618 Safes
Failed 98 Safes
Ate 122 lobsters
Banked 104 Sapphires
Banked 70 Emeralds
Banked 46 Rubies
Banked 1 Diamonds


<============== - Progress Report ===============>
Worked for 5 Hours, 3 Minutes and 0 Seconds
Thieving Level ..
Gained 66010 Xp
Banked 30 Times
Cracked 943 Safes
Failed 183 Safes
Ate 241 lobsters
Banked 183 Sapphires
Banked 142 Emeralds
Banked 72 Rubies
Banked 16 Diamonds

<============== - Progress Report ===============>
Worked for 5 Hours, 29 Minutes and 54 Seconds
Thieving Level ..
Gained 73150 Xp
Banked 29 Times
Cracked 1045 Safes
Failed 190 Safes
Ate 224 lobsters
Banked 200 Sapphires
Banked 152 Emeralds
Banked 96 Rubies
Banked 9 Diamonds


<============== - Progress Report ===============>
Worked for 4 Hours, 54 Minutes and 1 Seconds
Thieving Level ..
Gained 72520 Xp
Banked 29 Times
Cracked 1036 Safes
Failed 140 Safes
Ate 200 lobsters
Banked 197 Sapphires
Banked 124 Emeralds
Banked 65 Rubies
Banked 12 Diamonds

<============== - Progress Report ===============>
Worked for 2 Hours, 57 Minutes and 1 Seconds
Thieving Level ..
Gained 34860 Xp
Banked 20 Times
Cracked 498 Safes
Failed 133 Safes
Ate 178 lobsters
Banked 90 Sapphires
Banked 66 Emeralds
Banked 38 Rubies
Banked 5 Diamonds

<============== - Progress Report ===============>
Worked for 4 Hours, 49 Minutes and 50 Seconds
Thieving Level ..
Gained 110180 Xp
Banked 23 Times
Cracked 1574 Safes
Failed 43 Safes
Ate 113 lobsters
Banked 170 Sapphires
Banked 115 Emeralds
Banked 69 Rubies
Banked 8 Diamonds

<============== - Progress Report ===============>
Worked for 5 Hours, 57 Minutes and 16 Seconds
Thieving Level ..
Gained 123200 Xp
Banked 26 Times
Cracked 1760 Safes
Failed 51 Safes
Ate 98 lobsters
Banked 241 Sapphires
Banked 170 Emeralds
Banked 97 Rubies
Banked 22 Diamonds


<============== - Progress Report ===============>
Worked for 5 Hours, 1 Seconds
Thieving Level ..
Gained 45640 Xp
Banked 51 Times
Cracked 652 Safes
Failed 215 Safes
Ate 246 lobsters
Banked 155 Sapphires
Banked 88 Emeralds
Banked 74 Rubies
Banked 10 Diamonds


<============== - Progress Report ===============>
Worked for 5 Hours, 59 Minutes and 0 Seconds
Thieving Level ..
Gained 95830 Xp
Banked 19 Times
Cracked 1369 Safes
Failed 579 Safes
Ate 294 lobsters
Banked 148 Sapphires
Banked 99 Emeralds
Banked 62 Rubies
Banked 8 Diamonds

Ejjman

2010-04-11 14:16:53

Wow, you have some good runs.

Well my main problem is SMART. When I run your scripts for some reason (go figure :P), SMART pops open, then closes, then 5 seconds later, pops open.

So, I let the player log in, and then I stop the script, thinking that I should be able to go grab the color and then run back to the bank.

Unfortunately, when I hit play again, the SMART window closes, and a new one opens. With smart in my script, this doesn't happen, and i can stop and run it, and it'll go to the same smart window. I can't figure out why this happens in your scripts.

But I'll keep trying to figure it out, because when this thing works, its excellent!

Sabzi

2010-04-11 16:01:26

I think Fakawi got the old style smart "management"(sorry haven't found a better word) or at least his MFT got that.
You don't need any SmartSetupEx or things like that, it's all in SRL.(hence the smart restart)
You only have to
  1. Include SMART
  2. Set the things up before SetupSRL Which contains:
    • Smart_Server
    • Smart_Signed
    • Smart_Members
    • and Smart_HighDetail or something like that, you don't need this.
As far as I know if you don't set up a world it will pop up two times in this way too. For this script members := True too obviously.

Ejjman

2010-04-11 16:39:44

From: Sabzi
I think Fakawi got the old style smart "management"(sorry haven't found a better word) or at least his MFT got that.
You don't need any SmartSetupEx or things like that, it's all in SRL.(hence the smart restart)
You only have to
  1. Include SMART
  2. Set the things up before SetupSRL Which contains:
    • Smart_Server
    • Smart_Signed
    • Smart_Members
    • and Smart_HighDetail or something like that, you don't need this.
As far as I know if you don't set up a world it will pop up two times in this way too. For this script members := True too obviously.


Fawki uses both methods in his script. I'll erase Ex and try with just what you said. I use Ex in my script, and it works perfectly fine, though.. quite strange.

fixed.

<============== - Progress Report ===============>
Worked for 7 Hours, 14 Minutes and 45 Seconds
Thieving Level 75
Gained 148050 Xp
Banked 50 Times
Cracked 2115 Safes
Failed 167 Safes
Ate 261 lobsters
Banked 249 Sapphires
Banked 183 Emeralds
Banked 102 Rubies
Banked 17 Diamonds

WT-Fakawi

2011-06-16 09:12:38

Mayor BUMP:

Reshaped the Safecracker for Simba. 5 minutes work :)

<============== - Progress Report ===============>
Worked for 4 Hours, 35 Minutes and 1 Seconds
Thieving Level xx
Gained 84000 Xp
Banked 17 Times
Cracked 1200 Safes
Failed 30 Safes
Ate 73 lobsters
Banked 153 Sapphires
Banked 127 Emeralds
Banked 67 Rubies
Banked 9 Diamonds

Anyone?

P.S. 5 works. 4 year old script. Wow!

Simtoon

2011-06-16 09:53:24

Nice Work!


Hmmm

Master Farmer seems more profitable than SafeCracker from that report :D

Nose Smasher

2011-06-22 00:35:00

No link? :( I used to love this script! :D

TomTuff

2011-06-22 01:35:06

I think only Fakawi and Narcle can say a script of his has worked for 4 years, only needing minor function updates

BraK

2011-06-22 01:55:26

Wizzup? he has the Ess miner. I'm sure most of the old Color Scripters have scripts that still work(minus upgrades)

~BraK

E: I know a few more that work but pointless to beat the horse.

WT-Fakawi

2012-09-23 06:19:29

Chests are seriously screwed. More than ever before. On all p2p there's at least three of them. I have come across many players named: dage10001, til dage50005. I stopped looking for a botfree world after 20 times hopping or so. Dagex000x is everywhere! Thats a large investment. Or is it total theft?

Anyone know about a copycat script from our friendly neighbours?

cause

2012-09-23 13:44:50

I don't know about neighbours but our SRL Junior member "Laakerules" made a fairly simplistic safecracker a few months ago, maybe he went and sold it? Unlikely IMO. Hopefully these bots are dealt with soon.

Mjordan

2012-09-23 13:59:56

From: WT-Fakawi
Chests are seriously screwed. More than ever before. On all p2p there's at least three of them. I have come across many players named: dage10001, til dage50005. I stopped looking for a botfree world after 20 times hopping or so. Dagex000x is everywhere! Thats a large investment. Or is it total theft?

Anyone know about a copycat script from our friendly neighbours?


That's somebody from powerbot or epicbot im almost certain.

WT-Fakawi

2012-12-11 04:29:10

Well, dage is almost gone everywhere. But there are still plenty of other skillcape bots there. in fact, that is about he only thing I see around there….bots with skillcapes. So decided to revive the old safecracker. I found out that there are no more diamonds coming from the safes: but if you attempt cracking two safes, your moyenne increases dramatically. Also, the safe now opens, but without rewards, only thiev XP. Took me a while to see that. Ow, it is compatible with stethoscope too.

So I made a safeswitcher based of the old 2007 (!) script. It divides it time between the two safes…works pretty solid. Anyone still needs this?

<============== - Progress Report ===============>
Worked for 5 Hours, 1 Minutes and 18 Seconds
Gained 133560 xp
Banked 14 Times
Cracked 1761 Safes
Failed 687 Safes
Ate 0 Food
Banked 194 Sapphires
Banked 135 Emeralds
Banked 61 Rubies
Banked 0 Diamonds

Le Jingle

2012-12-11 05:00:50

From: WT-Fakawi
Well, dage is almost gone everywhere. But there are still plenty of other skillcape bots there. in fact, that is about he only thing I see around there….bots with skillcapes. So decided to revive the old safecracker. I found out that there are no more diamonds coming from the safes: but if you attempt cracking two safes, your moyenne increases dramatically. Also, the safe now opens, but without rewards, only thiev XP. Took me a while to see that. Ow, it is compatible with stethoscope too.

So I made a safeswitcher based of the old 2007 (!) script. It divides it time between the two safes…works pretty solid. Anyone still needs this?

<============== - Progress Report ===============>
Worked for 5 Hours, 1 Minutes and 18 Seconds
Gained 133560 xp
Banked 14 Times
Cracked 1761 Safes
Failed 687 Safes
Ate 0 Food
Banked 194 Sapphires
Banked 135 Emeralds
Banked 61 Rubies
Banked 0 Diamonds


Is this your post # 6000?! if so, congrats!!! :)

On topic: looks like a nice revive of what appears to be an old script you made in scar :) I don't necessarily need it, but I'm not against you posting it either :p (I'm sure that keeping it also benefits you and your hard work and I totally understand/support that)

All in all, cool to see such an extensive script being used after a couple years.

Cheers,
Lj

Noob King

2012-12-11 16:14:26

From: WT-Fakawi
Well, dage is almost gone everywhere. But there are still plenty of other skillcape bots there. in fact, that is about he only thing I see around there….bots with skillcapes. So decided to revive the old safecracker. I found out that there are no more diamonds coming from the safes: but if you attempt cracking two safes, your moyenne increases dramatically. Also, the safe now opens, but without rewards, only thiev XP. Took me a while to see that. Ow, it is compatible with stethoscope too.

So I made a safeswitcher based of the old 2007 (!) script. It divides it time between the two safes…works pretty solid. Anyone still needs this?

<============== - Progress Report ===============>
Worked for 5 Hours, 1 Minutes and 18 Seconds
Gained 133560 xp
Banked 14 Times
Cracked 1761 Safes
Failed 687 Safes
Ate 0 Food
Banked 194 Sapphires
Banked 135 Emeralds
Banked 61 Rubies
Banked 0 Diamonds


Do you know if the stethoscope increases the success rate at all?

WT-Fakawi

2012-12-11 16:36:19

tip.it claims that simply carrying the stethos is enough to increase the succes rate. Since I run the script with two players, one with and one without stethos I can confrim this.

euphemism

2012-12-11 18:26:46

So, do you have any plans to release this script? Congrats on keeping it running for so long! (and the 6,000 posts!)

[XoL]

2012-12-13 12:23:23

This used to be a great source of income for newer members back in the day, probably will never use it but would be cool to look at if you do release.

WT-Fakawi

2012-12-13 14:50:12

As promised: new/old version of the safecracker. I renamed it safeswitcher since it switches for better profit.

Stand near the safes facing south!!!, have a lobbie in your inv and hit run :)

<============== - Progress Report ===============>
Worked for 4 Hours, 41 Minutes and 22 Seconds
Gained 125720 xp
Banked 14 Times
Cracked 1616 Safes
Failed 637 Safes
Ate 0 Food
Banked 185 Sapphires
Banked 130 Emeralds
Banked 71 Rubies
Banked 0 Diamonds

<============== - Progress Report ===============>
Worked for 5 Hours, 59 Minutes and 22 Seconds
Gained 163800 xp
Banked 18 Times
Cracked 2163 Safes
Failed 767 Safes
Ate 0 Food
Banked 250 Sapphires
Banked 159 Emeralds
Banked 85 Rubies
Banked 0 Diamonds

<============== - Progress Report ===============>
Worked for 5 Hours, 57 Minutes and 34 Seconds
Gained 160300 xp
Banked 17 Times
Cracked 2126 Safes
Failed 782 Safes
Ate 0 Food
Banked 206 Sapphires
Banked 166 Emeralds
Banked 76 Rubies
Banked 0 Diamonds

<============== - Progress Report ===============>
Worked for 6 Hours, 1 Minutes and 35 Seconds
Gained 163030 xp
Banked 18 Times
Cracked 2168 Safes
Failed 786 Safes
Ate 0 Food
Banked 216 Sapphires
Banked 162 Emeralds
Banked 90 Rubies
Banked 0 Diamonds

Mark

2012-12-13 15:23:01

On phone atm but still I can't be much happier I'm in the middle writing an other script and could do with this to bot in the meantime to get 90 thieving for those player ports.

Will downlaod later and let you how it goes.

Sin

2012-12-13 16:01:58

Awesome!!
Gonna modify up texts/SMART to run in a German world!

WT-Fakawi

2012-12-13 16:09:48

From: Shay
Awesome!!
Gonna modify up texts/SnARt to run in a German world!
Uptext ok, but more important the chattext!

Sin

2012-12-13 16:30:05

From: WT-Fakawi
Uptext ok, but more important the chattext!


Oh, by chat texts I assume you mean the BlackChatMessages?

I haven't seen the code yet, on my phone.

Justin

2012-12-13 23:27:44

From: Shay
Awesome!!
Gonna modify up texts/SMART to run in a German world!


If you need help msg me on skype, ill give you the code to import

RAM

2012-12-29 11:54:41

Snowy afternoon here, thought I'd pass the time and see how my "SRL Family" is doing…Glad to see everyone is very much active and surprised to see these Ol' but reliable scripts still chugging along…had a bit of a time locating the new location of Rogue's Den…

Equipped stethoscope in 1st slot, but haven't seen it use it… occasionally banks it, and does not always bank all gems…could use a "Pin procedure", and contemplating adding a procedure to cut gems into bolts as they are stack-able, but works very well as is…stopped it manually…

<============== - Progress Report ===============>
Worked for 2 Hours, 23 Minutes and 0 Seconds
Gained 38150 xp
Banked 6 Times
Cracked 503 Safes
Failed 243 Safes
Ate 11 Food
Banked 50 Sapphires
Banked 44 Emeralds
Banked 23 Rubies

Thanks Again Fawkster, It's a pleasure as always and your hard work (AS WELL AS EVERYONE ELSE'S) doesn't go unnoticed or unappreciated :)

~RAM

Gucci

2012-12-29 12:01:48

Nice job fakawi ill be using it later, was actually working on one of these for members but ill ditch that now ;)

RAM

2012-12-30 01:53:34

<============== - Progress Report ===============>
Worked for 3 Hours, 49 Minutes and 9 Seconds
Gained 61810 xp
Banked 9 Times
Cracked 809 Safes
Failed 345 Safes
Ate 10 Food
Banked 87 Sapphires
Banked 60 Emeralds
Banked 42 Rubies

WT-Fakawi

2012-12-30 05:16:01

From: RAM
<============== - Progress Report ===============>
Worked for 3 Hours, 49 Minutes and 9 Seconds
Gained 61810 xp
Banked 9 Times
Cracked 809 Safes
Failed 345 Safes
Ate 10 Food
Banked 87 Sapphires
Banked 60 Emeralds
Banked 42 Rubies


Muhahahaha! RAM! I read on tipit that having the stethos in your inv alone is enough. Might be why it doesnt bank. I havent tried..I dont meet the requirements :)

WT-Fakawi

2012-12-30 05:18:09

some of mine :)


<============== - Progress Report ===============>
Worked for 5 Hours, 59 Minutes and 1 Seconds
Gained 162260 xp
Banked 17 Times
Cracked 2186 Safes
Failed 808 Safes
Ate 0 Food
Banked 224 Sapphires
Banked 142 Emeralds
Banked 78 Rubies


<============== - Progress Report ===============>
Worked for 6 Hours, 3 Minutes and 30 Seconds
Gained 176645 xp
Banked 18 Times
Cracked 2173 Safes
Failed 688 Safes
Ate 0 Food
Banked 221 Sapphires
Banked 162 Emeralds
Banked 85 Rubies

<============== - Progress Report ===============>
Worked for 5 Hours, 59 Minutes and 1 Seconds
Gained 164150 xp
Banked 18 Times
Cracked 2200 Safes
Failed 771 Safes
Ate 0 Food
Banked 234 Sapphires
Banked 146 Emeralds
Banked 90 Rubies


<============== - Progress Report ===============>
Worked for 5 Hours, 13 Minutes and 36 Seconds
Gained 143780 xp
Banked 19 Times
Cracked 1837 Safes
Failed 690 Safes
Ate 0 Food
Banked 233 Sapphires
Banked 132 Emeralds
Banked 78 Rubies

<============== - Progress Report ===============>
Worked for 5 Hours, 48 Minutes and 31 Seconds
Gained 158970 xp
Banked 19 Times
Cracked 2097 Safes
Failed 693 Safes
Ate 0 Food
Banked 228 Sapphires
Banked 167 Emeralds
Banked 86 Rubies

<============== - Progress Report ===============>
Worked for 5 Hours, 58 Minutes and 30 Seconds
Gained 163590 xp
Banked 18 Times
Cracked 2187 Safes
Failed 721 Safes
Ate 0 Food
Banked 201 Sapphires
Banked 170 Emeralds
Banked 99 Rubies

<============== - Progress Report ===============>
Worked for 5 Hours, 30 Minutes and 1 Seconds
Gained 159180 xp
Banked 19 Times
Cracked 2073 Safes
Failed 644 Safes
Ate 0 Food
Banked 217 Sapphires
Banked 165 Emeralds
Banked 77 Rubies

<============== - Progress Report ===============>
Worked for 6 Hours, 30 Seconds
Gained 167160 xp
Banked 19 Times
Cracked 2274 Safes
Failed 671 Safes
Ate 0 Food
Banked 237 Sapphires
Banked 172 Emeralds
Banked 85 Rubies

RAM

2012-12-30 18:18:13

<============== - Progress Report ===============>
Worked for 5 Hours, 16 Minutes and 1 Seconds
Gained 85680 xp
Banked 12 Times
Cracked 805 Safes
Failed 300 Safes
Ate 11 Food
Banked 113 Sapphires
Banked 79 Emeralds
Banked 40 Rubies