mat_de_b
2011-06-01 06:17:31
Description
Makes urns south of Varrock East Bank about 600 urns an hour.
The only non random problem is a door that shuts at random intervals. The script uses reflection to find out its state and then uses find obj to open the door. It has a 100% success rate so far.
Features
- Make any urn
- EXP/hour or Cash/hour you choose which you want the most of
- Members or non members (will make urns appropriately)
- Reflection walking
Unfortunately
- There are very few fail safes :S I can put them in but I didn't need them and it was running fine
- No antiban… All the time you're waiting making anything you mouse just stays still unless you level up.
I have run this for multiple stretches I think a couple of hours each. Unfortunately urns don't sell as well as I thought on the GE. However this does make you around 30K or more an hour if you have a high crafting level.
Yeah so if you could check this out, perhaps run it yourselves it would be appreciated.
Thanks, Dom
Makes urns south of Varrock East Bank about 600 urns an hour.
The only non random problem is a door that shuts at random intervals. The script uses reflection to find out its state and then uses find obj to open the door. It has a 100% success rate so far.
Features
- Make any urn
- EXP/hour or Cash/hour you choose which you want the most of
- Members or non members (will make urns appropriately)
- Reflection walking
Unfortunately
- There are very few fail safes :S I can put them in but I didn't need them and it was running fine
- No antiban… All the time you're waiting making anything you mouse just stays still unless you level up.
program UrnMaker;
{$DEFINE SMART}
{$I srl\srl.scar}
{$i reflection\reflection.simba}
Var
x, y, LoadsDone ,BreakLoads, WaitTime, Oven, Tol, Wheel, BreakTime, DoorCol,
Banker, PlayersLevel, EXPGained, EXPGain : Integer;
procedure DeclarePlayers;
begin
Banker := 4272696 ;
DoorCol:= 2440260 ;
Wheel := 8158337 ;
Oven := 1524643 ;
Tol := 4 ;
HowManyPlayers := 1;
CurrentPlayer := 0;
NumberOfPlayers(HowManyPlayers);
with Players[0] do
begin
Name := '';
Pass := '';
Nick := '';
BoxRewards := ['mote', 'ostume', 'XP', 'Gem', 'ithril', 'oal'];
Active := True;
Booleans[0] := True ; // True -Take Breaks, False- Don't
Booleans[1] := True ; // If you have membership put true
Booleans[2] := False ; // True = Max Cash/hour----False = Max Exp/Hour
Integers[0] := 4001 ; // how much clay in Bank (how many you want Done)
Integers[1] := 30 ; // Break length in minutes (use a 2:1 work:break ratio, 14 urns takes just over 3 minutes)
Integers[2] := 20 ; // Number of Invo's till break
Integers[3] := 56 ; // Crafting level
end;
end;
procedure ProgressReport;
begin
writeLn('======================');
writeLn('= de Bs Fountain User =');
writeLn('----------------------');
WriteLn(' Players Level = '+IntToStr(Players[CurrentPlayer].Integers[3]));
writeLn(' Urns made = '+IntToStr(LoadsDone));
writeLn(' EXP made = '+IntToStr(EXPGained));
WriteLn(' Total Time Running = '+TimeRunning);
WriteLn(' Next Break In '+IntToStr((Players[CurrentPlayer].Integers[2]) - BreakLoads)+' Inventories');
writeLn('----------------------');
writeLn('======================');
end;
Procedure DomsLogout;
Begin
If HowManyPlayers = 1 Then
Begin
Logout;
ProgressReport;
WriteLn('Broke or finished work');
TerminateScript;
End else
Begin
ProgressReport;
NextPlayer(True);
WriteLn('Broke or finished work');
WriteLn('Switching Player');
End;
End;
Procedure Cooking;
Begin
Mouse(90, 430, 10,10, true);
Wait(1200+Random(100));
End;
Procedure Fishing;
Begin
Mouse(193, 430, 10,10, true);
Wait(1200+Random(100));
End;
Procedure Mining;
Begin
Mouse(302, 430, 10,10, true);
Wait(1200+Random(100));
End;
Procedure Smelting;
Begin
Mouse(408, 430, 10,10, true);
Wait(1200+Random(100));
End;
Procedure Woodcutting;
Begin
Mouse(478, 430, 10,10, true);
Wait(1200+Random(100));
End;
Procedure Prayer;
Begin
MoveMouse(497, 424);
Wait(1000+Random(100));
Mouse(427, 430, 10,10, true);
Wait(1200+Random(100));
End;
Procedure Slot1;
Begin
Mouse(100, 430, 10,10, true);
Wait(200+Random(100));
End;
Procedure Slot2;
Begin
Mouse(220, 430, 10,10, true);
Wait(200+Random(100));
End;
Procedure Slot3;
Begin
Mouse(340, 430, 10,10, true);
Wait(200+Random(100));
End;
Procedure Slot4;
Begin
Mouse(470, 430, 10,10, true);
Wait(200+Random(100));
End;
Procedure Slot5;
Begin
MoveMouse(496, 430);
Wait(2000+Random(100));
Mouse(420, 430, 10,10, true);
Wait(200+Random(100));
End;
Procedure Prayer2;
Begin
Mouse(258, 430, 10,10, true);
Wait(200+Random(100));
End;
Procedure Prayer3;
Begin
Mouse(343, 430, 10,10, true);
Wait(200+Random(100));
End;
Procedure MakeUrns;
Var Tries, WaitLength : integer;
Begin
FindNormalRandoms;
FindNonInventoryRandoms;
WriteLn('Making Urns');
WaitLength := 0
Tries := 0
EXPGain := 0
Repeat
FindObj(x, y, 'otter', Wheel, Tol);
Wait(1000);
Tries := Tries + 1
Until(FindObj(x, y, 'otter', Wheel, Tol) or (Tries = 5));
If Tries = 5 Then DomsLogout;
InvMouse(5,1);
FindObj(x, y, 'otter', Wheel, Tol);
Mouse(x, y, 0, 0, True);
Wait(2000+Random(500));
Mouse(135, 430, 10, 10, True);
Wait(1000+Random(100));
Case PlayersLevel of
1: Begin
Smelting;
Slot1;
EXPGain := (286/10)
End;
2..3: Begin
Cooking;
Slot1;
EXPGain := 30
End;
4..11: Begin
WoodCutting;
Slot1;
EXPGain := (385/10)
End;
12..14: Begin
Cooking;
Slot2;
EXPGain := 40
End;
15..16: Begin
Fishing;
Slot2;
EXPGain := 50
End;
17..25: Begin
Mining;
Slot2;
EXPGain := 53
End;
26..31: Begin
Prayer;
Prayer2;
EXPGain := (625/10)
End;
32..34: Begin
Mining;
Slot3;
EXPGain := 68
End;
35: Begin
Smelting;
Slot3;
EXPGain := 70
End;
36..41: Begin
Cooking;
Slot3;
EXPGain := (714/10)
End;
42..43: Begin
Fishing;
Slot3;
EXPGain := 78
End;
44..48: Begin
Woodcutting;
Slot3;
EXPGain := 80
End;
49..50: Begin
Smelting;
Slot4;
EXPGain := (846/10)
End;
51..52: Begin
Cooking;
Slot4;
EXPGain := (908/10)
End;
53..58: Begin
Fishing;
Slot4;
EXPGain := 92
End;
59..60: Begin
Mining;
Slot5;
EXPGain := 95
End;
61: Begin
Woodcutting;
Slot4;
EXPGain := 92
End;
62..75: Begin
Prayer;
Slot3;
EXPGain := 100
End;
76..80: Begin
Fishing;
Slot5;
EXPGain := 120
End;
81..99: Begin
Cooking;
Slot5;
EXPGain := 130
End;
End;
Repeat
Wait(500);
WaitLength := WaitLength +500
FindNormalRandoms;
FindNonInventoryRandoms;
If ClickContinue(False,False) Then
Begin
ClickToContinue;
WaitLength := WaitLength -500
Players[CurrentPlayer].Integers[3] := Players[CurrentPlayer].Integers[3] +1
End;
Until(WaitLength = 18500);
End;
Procedure FireUrns;
Var Tries, WaitLength : integer;
Begin
FindNormalRandoms;
FindNonInventoryRandoms;
WriteLn('Firing Urns');
WaitLength := 0
Tries := 0
MakeCompass('S');
Repeat
FindObj(x, y, 'ottery', Oven, Tol);
Wait(1000);
Tries := Tries + 1
Until(FindObj(x, y, 'ottery', Oven, Tol) or (Tries = 5));
If Tries = 5 Then DomsLogout;
InvMouse(5,1);
FindObj(x, y, 'ottery', Oven, Tol);
Mouse(x, y, 0, 0, True);
Wait(2000+Random(500));
MouseBox(283, 449,240, 401,1);
Repeat
Wait(500);
WaitLength := WaitLength +500
FindNormalRandoms;
FindNonInventoryRandoms;
If ClickContinue(False,False) Then
Begin
ClickToContinue;
WaitLength := WaitLength -500
Players[CurrentPlayer].Integers[3] := Players[CurrentPlayer].Integers[3] +1
End;
Until(WaitLength = 51500);
End;
Procedure OpenDoor;
var Door: TRSObject;
Begin
WriteLn('Checking Door State');
Door := GetWallObjectAt(Point(3259, 3400));
If Door = NULL_RSOBJECT Then
Begin
WriteLn('Door Is Open');
End
Else
Begin
WriteLn('Seems to be a door in the way');
MakeCompass('W');
Wait(800+Random(100));
FindObj(x, y, 'oor', DoorCol, Tol);
Mouse(x, y, 0, 0, True);
MakeCompass('N');
WriteLn('Door Is Open');
Wait(1000+Random(200));
End;
End;
function ToTheRoom: TPointArray;
begin
SetLength(Result, 3);
Result[0] := Point(3255, 3421);
Result[1] := Point(3259, 3408);
Result[2] := Point(3259, 3399);
end;
function ToTheBank: TPointArray;
begin
SetLength(Result, 3);
Result[0] := Point(3259, 3399);
Result[1] := Point(3259, 3408);
Result[2] := Point(3255, 3421);
end;
Procedure WalkToBank;
Begin
FindNormalRandoms;
FindNonInventoryRandoms;
WriteLn('Walking to the bank');
OpenDoor;
MakeCompass('N');
WalkPath(ToTheBank);
End;
Procedure WalkToRoom;
Begin
FindNormalRandoms;
FindNonInventoryRandoms;
WriteLn('Walking to the room');
MakeCompass('N');
WalkPath(ToTheRoom);
OpenDoor;
End;
Procedure OpenBanker;
Begin
FindNormalRandoms;
FindNonInventoryRandoms;
Repeat
R_OpenBankBooth('veb');
Wait(1000);
Until(R_Bankscreen);
End;
Procedure WithdrawClay;
Begin
FindNormalRandoms;
FindNonInventoryRandoms;
If Not Bankscreen then
Begin
WriteLn('opening Bank');
OpenBanker;
Wait(1000+Random(100));
End;
Repeat
R_WithdrawItem(1761,0);
Until(R_InvFull);
End;
Procedure DepositUrns;
Begin
FindNormalRandoms;
FindNonInventoryRandoms;
If Not Bankscreen then
Begin
WriteLn('opening Bank');
OpenBanker;
Wait(1000+Random(100));
End;
WriteLn('Depositing Urns');
Repeat
R_DepositAll(True);
Until(R_InvEmpty);
End;
Procedure CheckEXP;
Begin
EXPGained := EXPGained + EXPGain
EXPGain := 0
End;
Procedure CheckLevel;
Begin
If (Players[CurrentPlayer].Booleans[3]) And (Players[CurrentPlayer].Booleans[1]) Then
Begin
If (Players[CurrentPlayer].Integers[3]) >= 51 Then PlayersLevel := 51 ;
If (Players[CurrentPlayer].Integers[3]) <= 51 Then PlayersLevel := (Players[CurrentPlayer].Integers[3]);
End;
If (Players[CurrentPlayer].Booleans[3]) And (Players[CurrentPlayer].Booleans[1]) = False Then
Begin
If (Players[CurrentPlayer].Integers[3]) >= 36 Then PlayersLevel := 36 ;
If (Players[CurrentPlayer].Integers[3]) <= 36 Then PlayersLevel := (Players[CurrentPlayer].Integers[3]);
End;
If Not (Players[CurrentPlayer].Booleans[3]) And (Players[CurrentPlayer].Booleans[1]) Then
Begin
PlayersLevel := (Players[CurrentPlayer].Integers[3]);
End;
If Not(Players[CurrentPlayer].Booleans[3]) And Not(Players[CurrentPlayer].Booleans[1]) Then
Begin
If (Players[CurrentPlayer].Integers[3]) >= 44 Then PlayersLevel := 44 ;
If (Players[CurrentPlayer].Integers[3]) <= 44 Then PlayersLevel := (Players[CurrentPlayer].Integers[3]);
End;
End;
Procedure Setup;
Begin
Smart_Server := 24;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
WriteLn('SRL Setup');
DeclarePlayers;
LogInPlayer;
Wait(3000);
MakeCompass('N');
setRun(True);
SetAngle(True);
FindNormalRandoms;
FindNonInventoryRandoms;
LoadsDone := 0 ;
BreakLoads := 0 ;
EXPGained := 0 ;
End;
Procedure TakeABreak;
Begin
If (Players[CurrentPlayer].Booleans[0]) And (BreakLoads >= (Players[CurrentPlayer].Integers[2])) Then
Begin
BreakTime := ((Players[CurrentPlayer].Integers[1])*1000*60+(RandomRange(10,30)*1000*60));
ProgressReport;
Logout;
WriteLn('Waiting for '+IntToStr(WaitTime/1000/60)+' Minutes');
Wait(WaitTime);
LogInPlayer;
BreakLoads := 0 ;
Wait(3000);
FindNormalRandoms;
FindNonInventoryRandoms;
End;
End;
begin
Setup;
CheckLevel;
Repeat
WithdrawClay;
WalkToRoom;
MakeUrns;
FireUrns;
WalkToBank
DepositUrns;
LoadsDone := LoadsDone +14;
BreakLoads := BreakLoads +1;
CheckEXP;
CheckLevel;
ProgressReport;
TakeABreak;
Until (LoadsDone = (Players[CurrentPlayer].Integers[0]));
ProgressReport;
DomsLogout;
end.I have run this for multiple stretches I think a couple of hours each. Unfortunately urns don't sell as well as I thought on the GE. However this does make you around 30K or more an hour if you have a high crafting level.
Yeah so if you could check this out, perhaps run it yourselves it would be appreciated.
Thanks, Dom