Jakkle
2011-05-14 10:56:53
How Long have You Played Runescape?
4 Year(s)
Are you affilated in anyway with Jagex LTD?
no
Were you Referred to SRL?
rogeruk
What is your general programming knowledge?
Pascal and HTML.
Are you a member of any other communities?
no
Tell us about yourself…
Please show us one (or multiple) of your scripts.
4 Year(s)
Are you affilated in anyway with Jagex LTD?
no
Were you Referred to SRL?
rogeruk
What is your general programming knowledge?
Pascal and HTML.
Are you a member of any other communities?
no
Tell us about yourself…
From: whacko999
Hi, I'm Whacko. I've been playing runescape since early 2007 and started using bot scripts around Aug 07, I got caught, banned, not good times lol. I built a small army of 11 bots and had a new main. I looked into scripting when it was colour, started doing a little then stopped as I was working alot and was doing loads in my life so I had no time for it. I played on and off on my new main over the years untill I got a 99 in wcing. At the begining of this year (2011) I looked to get back into botting and found powerbot witch was good untill they and every1 got hacked. I then came back to good old srl :) which i think is the best site by far. I've started to learn scripting since ive got back onto this site and im really enjoying doing it.
Interests:
Learning Computer Programing
Computing (XBOX360, PC).
Playing Poker.
Playing Football.
Please show us one (or multiple) of your scripts.
program F2P_RuneCrafter;
{$DEFINE SMART}
{$i srl\srl.scar}
{$i reflection\reflection.simba}
const
WORLD = 25;
MEMBERS = False;
SIGNED = True;
DETAIL = False;
MOUSE_SPEED = 14;
MOUSE_SPEED_RANDOMNESS = 8;
SWITCH_EVERY = 0; //))How many minutes to change player (Leave as 0 to disable)((
Var
Banked, RuneCraftingLevelStart, LoadsToDo, TLevels, TBanked, EssenceCount, TEssenceCount,
TRunesCount, RunesCount, Start, Every, SwitchChar: Integer;
EssenceIDs, KeepIDs, RunesIDs, TalismanIDs, TiaraIDs: TVariantArray;
TheItem : TInvItemArray;
SWITCH : Boolean;
Procedure DeclarePlayers;
Begin
HowManyPlayers := 3;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
With Players[0] Do
Begin
Name := '';
Pass := '';
Nick := '';
Active := True; // True or False ?
Pin := '';
Strings[0] := 'Tiara'; // 'Talisman', 'Tiara'.
Strings[1] := 'Air'; // 'Air', 'Water', 'Earth', 'Fire', 'Mind', 'Body'.
Integers[0] := 25; // How many loads you want the player to do.
BoxRewards := ['Xp'];
Skill := 'runecraft';
End;
With Players[1] Do
Begin
Name := '';
Pass := '';
Nick := '';
Active := False;
Pin := '';
Strings[0] := 'Talisman'; // 'Talisman', 'Tiara'.
Strings[1] := 'Air'; // 'Air', 'Water', 'Earth', 'Fire', 'Mind', 'Body'.
Integers[0] := 25; // How many loads you want the player to do.
BoxRewards := ['Xp'];
Skill := 'runecraft';
End;
With Players[2] Do
Begin
Name := '';
Pass := '';
Nick := '';
Active := False;
Pin := '';
Strings[0] := 'Talisman'; // 'Talisman', 'Tiara'.
Strings[1] := 'Earth'; // 'Air', 'Water', 'Earth', 'Fire', 'Mind', 'Body'.
Integers[0] := 25; // How many loads you want the player to do.
BoxRewards := ['Xp'];
Skill := 'runecraft';
End;
End;
///////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\
// DONT touch anything unless you know what your doing \\
//=======================================================\\
Function HaveTalismanEssence: Boolean;
Begin
If (Not (LoggedIn)) Then
Exit;
Result := FALSE;
If (R_ItemExistsEx(TalismanIDs, TheItem)) And (R_ItemExistsEx(EssenceIDs, TheItem)) Then
Result := True;
End;
Function HaveTiaraEssence: Boolean;
Var
TIDS: TIntegerArray;
Begin
If (Not (LoggedIn)) Then
Exit;
TIDS := [5527, 5549, 5533, 5543, 5539, 5547, 5535, 5537, 5545, 5529, 5541, 5531];
Result := FALSE;
If (R_ItemExistsEx(EssenceIDs, TheItem)) And (InIntArray(TIDS, GetEquippedIDAt(0))) Then
Result := True;
End;
Function HaveRunes: Boolean;
Begin
If (Not (LoggedIn)) Then
Exit;
Result := FALSE;
If (R_ItemExistsEx(RunesIDs, TheItem)) Then
Result := True;
End;
Function FindIf(What :String): Boolean;
Var
NPCSID: TVariantArray;
NPCs: TNPC;
Begin
If (Not (LoggedIn)) Then
Exit;
Result := False
R_FindRandoms;
Case Lowercase(What) of
'banker' : NPCSID := [496, 497, 553, 2759, 6200];
'music' : NPCSID := [5442, 8699, 8698, 8700, 8707];
end;
NPCs := GetNPCMulti(NPCSID);
If(NPCs.Name <> '')Then
Result := TRUE;
End;
Function FindIt(What :String): Boolean;
Var
ObjectID: TIntegerArray;
TheObject: TRSObject;
Begin
If (Not (LoggedIn)) Then
Exit;
Result := False
R_FindRandoms;
Case Lowercase(What) of
'portal' : ObjectID := [2468, 2469, 2467, 2465, 2466, 2470];
'alter' : ObjectID := [2481, 2482, 2480, 2478, 2479, 2483];
'rock' : ObjectID := [2455, 2456, 2454, 2452, 2453, 2457];
'random' : ObjectID := [38407, 35647, 35669, 21249, 43520, 43486];
end;
TheObject := GetObjectByIDEx(ObjectID, 0, 6);
If (TheObject.ID > 0) Then
Result := TRUE;
End;
Function ClickIt(What :String): Boolean;
Var
ObjectID: TIntegerArray;
TheObject: TRSObject;
MSPoint: TPoint;
Begin
If (Not (LoggedIn)) Then
Exit;
Result := FALSE;
R_FindRandoms;
Case Lowercase(What) of
'alter' : ObjectID := [2481, 2482, 2480, 2478, 2479, 2483];
'rock' : ObjectID := [2455, 2456, 2454, 2452, 2453, 2457];
end;
TheObject := GetObjectByIDEx(ObjectID, 0, 8);
If (TheObject.ID > 0) Then
Begin
MSPoint := TileToMS(TheObject.Tile, 1);
Mouse(MSPoint.X, MSPoint.Y - 10, 2, 2, TRUE);
Result := TRUE;
End;
TheObject := NULL_RSOBJECT;
End;
Function ClickPortal: Boolean;
Var
PortalIDs: TIntegerArray;
Portal: TRSObject;
MSPoint: TPoint;
Begin
If (Not (LoggedIn)) Then
Exit;
Result := FALSE;
R_FindRandoms;
PortalIDs := [2468, 2469, 2467, 2465, 2466, 2470];
Portal := GetObjectByIDEx(PortalIDs, 0, 8);
If(Portal.ID > 0)Then
Begin
MSPoint := TileToMS(Portal.Tile, 0);
Mouse(MSPoint.X, MSPoint.Y, 3, 3, TRUE);
Result := TRUE;
End;
Portal := NULL_RSOBJECT;
End;
Function DoISwitchChar: Boolean;
Begin
If (Not (LoggedIn)) Then
Exit;
Result := FALSE;
If (Banked >= LoadsToDo) Then
Begin
Writeln('Player has done all its loads!');
NextPlayer(FALSE);
Result := TRUE;
End;
If(SWITCH)Then
Begin
If(PlayersActive > 1)Then
Begin
If (TimeFromMark(Start) >= Every) Then
Begin
Writeln('Player has done its time!');
NextPlayer(TRUE);
Result := TRUE;
End;
End;
End;
End;
Procedure Antiban;
Begin
If (Not (LoggedIn)) Then
Exit;
R_FindRandoms;
Case Random(200) Of
150..155:
Begin
GameTab(RandomRange(tab_Combat, tab_Logout));
Wait(900 + Random(1000));
End;
110..115: PickUpMouse;
70..80:
Begin
MMouse(RandomRange(-100, 500), RandomRange(-100, 500), 100, 100);
Wait(RandomRange(200, 1000));
End;
40..42:
Begin
HoverSkill('Runecrafting', FALSE);
Wait(RandomRange(1000, 2000));
End;
1..5: SleepAndMoveMouse(1000 + Random(500));
End;
GameTab(tab_Inv);
R_FindRandoms;
End;
Procedure GoToAirRock;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
If (FindIf('banker')) Then
Begin
Writeln ('Walking to Air Rock');
R_findRandoms;
SetRun(TRUE);
R_WebWalk(Point(3170, 3428));
R_WebWalk(Point(3155, 3417));
R_WebWalk(Point(3143, 3413));
R_WebWalk(Point(3128, 3405));
Wait (2500 + Random(500));
R_findRandoms;
R_MakeCompass('N');
End;
If (Not (FindIt('rock'))) Then
Begin
Writeln ('Cant Find Air Rock, Going to Try Again');
Tries := 0;
Repeat
Wait (500 + Random(500));
R_WebWalk(Point(3126, 3403));
Wait (500 + Random(500));
FindIt('rock');
R_findRandoms;
Inc(Tries);
Until (FindIt('rock')) Or (Tries > 5);
Exit;
End;
End;
Procedure GoToEarthRock;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
If (FindIf('banker')) Then
Begin
Writeln ('Walking to Earth Rock');
R_findRandoms;
SetRun(TRUE);
R_WebWalk(Point(3262, 3428));
R_WebWalk(Point(3275, 3428));
Wait (2000 + Random(500));
R_WebWalk(Point(3279, 3440));
R_WebWalk(Point(3290, 3458));
R_MakeCompass('N');
R_WebWalk(Point(3305, 3472));
Wait (2500 + Random(500));
R_findRandoms;
End;
If (Not (FindIt('rock'))) Then
Begin
Writeln ('Cant Find Earth Rock, Going to Try Again');
Tries := 0;
Repeat
Wait (500 + Random(500));
R_WebWalk(Point(3307, 3475));
Wait (500 + Random(500));
R_findRandoms;
Inc(Tries);
Until (FindIt('rock')) Or (Tries > 5);
Exit;
End;
End;
Procedure GoToFireRock1;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
If (FindIf('banker')) Then
Begin
Writeln ('Walking to Fire Music');
R_findRandoms;
SetRun(TRUE);
R_WebWalk(Point(3279, 3180));
R_WebWalk(Point(3286, 3201));
R_WebWalk(Point(3291, 3213));
Wait (2000 + Random(1000));
SetAngle(True);
R_findRandoms;
End;
If (Not (FindIf('Music'))) Then
Begin
Writeln ('Cant Find Fire Music, Going to Try Again');
Tries := 0;
Repeat
Wait (500 + Random(500));
R_WebWalk(Point(3293, 3213));
Wait (500 + Random(500));
R_findRandoms;
Inc(Tries);
Until (FindIf('Music')) Or (Tries > 5);
Exit;
End;
End;
Procedure GoToFireRock2;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
If (FindIf('music')) Then
Begin
R_findRandoms;
Writeln ('Walking to Fire Rock');
R_WebWalk(Point(3302, 3236));
R_WebWalk(Point(3310, 3251));
R_WebWalk(Point(3313, 3254));
R_MakeCompass('N');
SetAngle(True);
R_findRandoms;
Wait (2500 + Random(500));
End;
If (Not (FindIt('rock'))) Then
Begin
Writeln ('Cant Find Fire Rock, Going to Try Again');
Tries := 0;
Repeat
Wait (500 + Random(500));
R_WebWalk(Point(3314, 3256));
Wait (500 + Random(500));
R_findRandoms;
Inc(Tries);
Until (FindIt('rock')) Or (Tries > 5);
Exit;
End;
End;
Procedure GoToWaterRock;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
If (FindIf('banker')) Then
Begin
Writeln ('Walking to Water Rock');
R_findRandoms;
SetRun(TRUE);
R_WebWalk(Point(3275, 3174));
Wait (1000 + Random(1000));
R_WebWalk(Point(3250, 3173));
R_WebWalk(Point(3241, 3169));
Wait (1000 + Random(1000));
R_WebWalk(Point(3226, 3162));
R_WebWalk(Point(3201, 3162));
R_WebWalk(Point(3186, 3162));
R_MakeCompass('N');
SetAngle(True);
R_findRandoms;
Wait (2500 + Random(500));
End;
If (Not (FindIt('rock'))) Then
Begin
Writeln ('Cant Find Water Rock, Going to Try Again');
Tries := 0;
Repeat
Wait (500 + Random(500));
R_WebWalk(Point(3185, 3165));
Wait (500 + Random(500));
R_findRandoms;
Inc(Tries);
Until (FindIt('rock')) Or (Tries > 5);
Exit;
End;
End;
Procedure GoToMindRock1;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
If (FindIf('banker')) Then
Begin
Writeln ('Walking to Music');
R_findRandoms;
SetRun(TRUE);
R_WebWalk(Point(2952, 3380));
Wait (1000 + Random(1000));
R_WebWalk(Point(2965, 3388));
Wait (1000 + Random(1000));
R_WebWalk(Point(2967, 3411));
Wait (2000 + Random(1000));
R_findRandoms;
End;
If (Not (FindIf('Music'))) Then
Begin
Writeln ('Cant Find Mind Music, Going to Try Again');
Tries := 0;
Repeat
Wait (500 + Random(500));
R_WebWalk(Point(2968, 3412));
Wait (500 + Random(500));
R_findRandoms;
Inc(Tries);
Until (FindIf('Music')) Or (Tries > 5);
Exit;
End;
End;
Procedure GoToMindRock2;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
If (FindIf('music')) Then
Begin
Writeln ('Walking to Mind Rock');
R_FindRandoms;
R_WebWalk(Point(2988, 3422));
Wait (1000 + Random(1000));
R_WebWalk(Point(2984, 3438));
Wait (1000 + Random(1000));
R_WebWalk(Point(2977, 3453));
Wait (1000 + Random(1000));
R_WebWalk(Point(2973, 3471));
Wait (1000 + Random(1000));
R_WebWalk(Point(2974, 3487));
Wait (1000 + Random(1000));
R_WebWalk(Point(2978, 3502));
Wait (1000 + Random(1000));
R_WebWalk(Point(2980, 3513));
Wait (2000 + Random(1000));
R_findRandoms;
R_MakeCompass('N');
SetAngle(True);
End;
If (Not (FindIt('rock'))) Then
Begin
Writeln ('Cant Find Mind Rock, Going to Try Again');
Tries := 0;
Repeat
Wait (500 + Random(500));
R_WebWalk(Point(2982, 3515));
Wait (500 + Random(500));
R_findRandoms;
Inc(Tries);
Until (FindIt('rock')) Or (Tries > 5);
Exit;
End;
End;
Procedure GoToBodyRock1;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
If (FindIf('banker')) Then
Begin
Writeln ('Walking to Music');
R_findRandoms;
R_WebWalk(Point(3082, 3503));
SetRun(TRUE);
Wait (1000 + Random(1000));
R_WebWalk(Point(3066, 3512));
Wait (1000 + Random(1000));
R_WebWalk(Point(3051, 3511));
Wait (1000 + Random(1000));
R_WebWalk(Point(3051, 3479));
Wait (1000 + Random(1000));
R_WebWalk(Point(3057, 3471));
Wait (2000 + Random(1000));
R_findRandoms;
End;
If (Not (FindIf('Music'))) Then
Begin
Writeln ('Cant Find Body Music, Going to Try Again');
Tries := 0;
Repeat
Wait (500 + Random(500));
R_WebWalk(Point(3057, 3471));
Wait (500 + Random(500));
R_findRandoms;
Inc(Tries);
Until (FindIf('Music')) Or (Tries > 5);
Exit;
End;
End;
Procedure GoToBodyRock2;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
If (FindIf('music')) Then
Begin
Writeln ('Walking to Mind Rock');
R_findRandoms;
R_WebWalk(Point(3050, 3456));
Wait (1000 + Random(1000));
R_WebWalk(Point(3051, 3447));
Wait (2000 + Random(1000));
R_findRandoms;
R_MakeCompass('N');
SetAngle(True);
End;
If (Not (FindIt('rock'))) Then
Begin
Writeln ('Cant Find Body Rock, Going to Try Again');
Tries := 0;
Repeat
Wait (500 + Random(500));
R_WebWalk(Point(3052, 3445));
Wait (500 + Random(500));
R_findRandoms;
Inc(Tries);
Until (FindIt('rock')) Or (Tries > 5);
Exit;
End;
End;
Procedure FindRock;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
Tries := 0;
If (FindIt('rock')) Then
Begin
Writeln ('Found ' + (Players[CurrentPlayer].Strings[1]) + ' Rock');
If (Players[CurrentPlayer].Strings[0] = 'Talisman') Then
Begin
Repeat
R_FindRandoms;
Wait (RandomRange(400, 800));
If (R_ItemExistsEx(TalismanIDs, TheItem)) Then
Begin
MouseItem(1, true);
Wait (RandomRange(400, 800));
End;
If (ClickIt ('rock')) Then
Begin
Writeln ('Clicked ' + (Players[CurrentPlayer].Strings[1]) + ' Rock');
Wait (RandomRange(2800, 3200));
End;
If (Players[CurrentPlayer].Strings[1] = 'Body') Then
Exit;
Inc(Tries);
Until (FindIt ('portal')) Or (Tries > 3);
Writeln ('We Are Inside The ' + (Players[CurrentPlayer].Strings[1]) + ' Temple');
Exit;
End;
If (Players[CurrentPlayer].Strings[0] = 'Tiara') Then
Begin
Repeat
R_FindRandoms;
Wait (RandomRange(400, 800));
ClickIt ('rock');
Wait (RandomRange(1000, 1500));
If (Players[CurrentPlayer].Strings[1] = 'Body') Then
Exit;
Inc(Tries);
Until (FindIt ('portal')) Or (Tries > 3);
Exit;
End;
End;
If (Not (FindIt('rock'))) Then
Logout;
End;
Procedure GoToAirAlter;
Begin
If (Not (LoggedIn)) Then
Exit;
Wait (500 + Random(500));
If (FindIt('alter')) Then
Exit;
If (Not (FindIt('alter'))) Then
Begin
Writeln ('Walking To Air Alter');
R_WebWalk(Point(2842, 4832));
End;
End;
Procedure GoToEarthAlter;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
Tries := 0;
Wait (500 + Random(500));
R_findRandoms;
If (FindIt('portal')) Then
Begin
Writeln ('Walking to Earth Alter');
Repeat
Wait (500 + Random(500));
R_WebWalk(Point(2657, 4839));
Wait (2500 + Random(500));
R_findRandoms;
Inc(Tries);
Until (FindIt ('alter')) Or (Tries > 5);
Exit;
End;
End;
Procedure GoToFireAlter;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
Tries := 0;
Wait (500 + Random(500));
R_findRandoms;
If (FindIt('portal')) Then
Begin
Writeln ('Walking to Earth Alter');
Repeat
Wait (500 + Random(500));
R_WebWalk(Point(2584, 4840));
Wait (2000 + Random(500));
R_findRandoms;
Inc(Tries);
Until (FindIt ('alter')) Or (Tries > 5);
Exit;
End;
End;
Procedure GoToWaterAlter;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
Tries := 0;
Wait (500 + Random(500));
R_findRandoms;
If (FindIt('portal')) Then
Begin
Writeln ('Walking to Water Alter');
Repeat
Wait (500 + Random(500));
R_WebWalk(Point(3486, 4834));
Wait (1500 + Random(500));
R_findRandoms;
Inc(Tries);
Until (FindIt('alter')) Or (Tries > 5);
Exit;
End;
End;
Procedure GoToMindAlter;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
Tries := 0;
Wait (500 + Random(500));
R_findRandoms;
If (FindIt('portal')) Then
Begin
Writeln ('Walking to Mind Alter');
Repeat
Wait (500 + Random(500));
R_WebWalk(Point(2786, 4839));
Wait (2000 + Random(500));
R_findRandoms;
Inc(Tries);
Until (FindIt('alter')) Or (Tries > 5);
Exit;
End;
End;
Procedure GoToBodyAlter;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
Tries := 0;
Wait (500 + Random(500));
R_findRandoms;
Begin
Writeln ('Walking to Body Alter');
Repeat
Wait (1000 + Random(500));
R_WebWalk(Point(2522, 4838));
Wait (500 + Random(500));
R_findRandoms;
Inc(Tries);
Until (FindIt('alter')) Or (Tries > 5);
Exit;
End;
End;
Procedure FindAlter;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
Tries := 0;
If (FindIt('alter')) Then
Begin
Writeln ('Found ' + (Players[CurrentPlayer].Strings[1]) + ' Alter');
Repeat
Wait (RandomRange(500, 800));
If (ClickIt ('alter')) Then
Begin
Writeln ('Clicked ' + (Players[CurrentPlayer].Strings[1]) + ' Alter');
Repeat
Wait (RandomRange(300, 800));
Antiban;
R_FindRandoms;
Wait (RandomRange(500, 800));
If (LevelUp) Then
Begin
Inc(TLevels);
Inc(Players[CurrentPlayer].Integers[2]);
End;
Inc(Tries);
Until (LevelUp) Or (Tries > 3);
End;
Inc(Tries);
Until (HaveRunes) Or (Tries > 5);
Writeln ('Got ' + (Players[CurrentPlayer].Strings[1]) + ' Runes');
Exit
End;
End;
Procedure GoToAirPortal;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
Tries := 0;
Wait (500 + Random(500));
If (HaveRunes) Then
Begin
Writeln ('Walking to Air Portal');
Repeat
R_WebWalk(Point(2842, 4828));
Wait (500 + Random(500));
R_findRandoms;
Inc(Tries);
Until (FindIt('portal')) Or (Tries > 5);
Exit;
End;
End;
Procedure GoToEarthPortal;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
Tries := 0;
Wait (500 + Random(500));
If (HaveRunes) Then
Begin
Writeln ('Walking to Earth Portal');
Repeat
R_WebWalk(Point(2656, 4828));
Wait (2500 + Random(1000));
R_findRandoms;
Inc(Tries);
Until (FindIt('portal')) Or (Tries > 5);
Exit;
End;
End;
Procedure GoToFirePortal;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
Tries := 0;
Wait (500 + Random(500));
If (HaveRunes) Then
Begin
Writeln ('Walking to Fire Portal');
Repeat
R_WebWalk(Point(2577, 4846));
Wait (2000 + Random(1000));
R_findRandoms;
Inc(Tries);
Until (FindIt('portal'));
Exit;
End;
End;
Procedure GoToWaterPortal;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
Tries := 0;
Wait (500 + Random(500));
If (HaveRunes) Then
Begin
Writeln ('Walking to Water Portal');
Repeat
R_WebWalk(Point(3495, 4832));
Wait (2000 + Random(500));
R_findRandoms;
Inc(Tries);
Until (FindIt('portal'));
Exit;
End;
End;
Procedure GoToMindPortal;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
Tries := 0;
Wait (500 + Random(500));
If (HaveRunes) Then
Begin
Writeln ('Walking to Mind Portal');
Repeat
R_WebWalk(Point(2793, 4828));
Wait (2000 + Random(500));
R_findRandoms;
Inc(Tries);
Until (FindIt('portal'));
Exit;
End;
End;
Procedure GoToBodyPortal;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
Tries := 0;
Wait (500 + Random(500));
If (HaveRunes) Then
Begin
Writeln ('Walking to Body Portal');
Repeat
R_WebWalk(Point(2522, 4833));
Wait (2000 + Random(500));
R_findRandoms;
Inc(Tries);
Until (FindIt('portal'));
Exit;
End;
End;
Procedure FindPortal;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
Tries := 0;
If (FindIt('Portal')) Then
Begin
Writeln ('Found ' + (Players[CurrentPlayer].Strings[1]) + ' Portal');
Repeat
R_FindRandoms;
Wait (1000 + Random(1000));
If (ClickPortal) Then
Begin
Writeln ('Clicked ' + (Players[CurrentPlayer].Strings[1]) + ' Portal');
Wait (500 + Random(500));
End;
Inc(Tries);
Until (FindIt('rock')) Or (Tries > 5);
If (FindIt('rock')) Then
Writeln ('We Are Outside The ' + (Players[CurrentPlayer].Strings[1]) + ' Temple');
Exit;
End;
If (Not (FindIt('rock'))) Then
Logout;
End;
Procedure GoToAirRest;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
Tries := 0;
If (FindIt('Rock')) Then
Begin
Writeln ('Walking to Air Rest');
Repeat
R_findRandoms;
R_WebWalk(Point(3143, 3412));
R_WebWalk(Point(3153, 3422));
Wait (1000 + Random(500));
R_FindRandoms;
Inc(Tries);
Until (FindIf('music')) Or (Tries > 5);
Exit;
End;
If (Not (FindIt('rock'))) Then
Begin
Writeln ('Not Teleported, Finding Air Portal Again');
GoToAirPortal;
FindPortal;
GoToAirRest;
End;
End;
Procedure GoToEarthRest;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
Tries := 0;
If (FindIt('Rock')) Then
Begin
Writeln ('Walking to Earth Rest');
Repeat
R_FindRandoms;
R_WebWalk(Point(3292, 3463));
R_WebWalk(Point(3290, 3455));
Wait (1000 + Random(500));
R_FindRandoms;
Inc(Tries);
Until (FindIf('music')) Or (Tries > 5);
Exit;
End;
If (Not (FindIt('rock'))) Then
Begin
Writeln ('Not Teleported, Finding Earth Portal Again');
GoToEarthPortal;
FindPortal;
GoToEarthRest;
End;
End;
Procedure GoToFireRest;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
Tries := 0;
If (FindIt('Rock')) Then
Begin
Writeln ('Walking to Fire Rest');
Repeat
R_FindRandoms;
R_WebWalk(Point(3304, 3238));
R_WebWalk(Point(3297, 3223));
R_WebWalk(Point(3292, 3212));
Wait (1000 + Random(500));
R_FindRandoms;
Inc(Tries);
Until (FindIf('music')) Or (Tries > 5);
Exit;
End;
If (Not (FindIt('rock'))) Then
Begin
Writeln ('Not Teleported, Finding Fire Portal Again');
GoToFirePortal;
FindPortal;
GoToFireRest;
End;
End;
Procedure GoToMindRest;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
Tries := 0;
If (FindIt('Rock')) Then
Begin
Writeln ('Walking to Earth Rest');
Repeat
R_FindRandoms;
R_WebWalk(Point(2976, 3492));
Wait (1000 + Random(500));
R_WebWalk(Point(2973, 3473));
Wait (1000 + Random(500));
R_WebWalk(Point(2976, 3450));
Wait (1000 + Random(500));
R_WebWalk(Point(2989, 3421));
Wait (1000 + Random(500));
R_WebWalk(Point(2968, 3408));
Wait (1000 + Random(500));
R_FindRandoms;
Inc(Tries);
Until (FindIf('music')) Or (Tries > 5);
Exit;
End;
If (Not (FindIt('rock'))) Then
Begin
Writeln ('Not Teleported, Finding Mind Portal Again');
GoToMindPortal;
FindPortal;
GoToMindRest;
End;
End;
Procedure GoToBodyRest;
Var
Tries: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
Tries := 0;
If (FindIt('Rock')) Then
Begin
Writeln ('Walking to Body Rest');
Repeat
R_FindRandoms;
R_WebWalk(Point(3047, 3456));
R_WebWalk(Point(3056, 3472));
Wait (1000 + Random(500));
R_FindRandoms;
Inc(Tries);
Until (FindIf('music')) Or (Tries > 5);
Exit;
End;
If (Not (FindIt('rock'))) Then
Begin
Writeln ('Not Teleported, Finding Body Portal Again');
GoToBodyPortal;
FindPortal;
GoToBodyRest;
End;
End;
Procedure FindMusic;
Var
MusicIDs: TVariantArray;
Energy: Integer;
NPCs: TNPC;
NPC_Tile: TPoint;
Begin
If (Not (LoggedIn)) Then
Exit;
Writeln ('Found ' + (Players[CurrentPlayer].Strings[1]) + ' Music');
MusicIDs := [5442, 8699, 8698, 8700, 8707];
R_Flag;
NPCs := GetNPCMulti(MusicIDs);
NPC_Tile := TileToMS(NPCs.Tile, NPCs.Height);
If(NPCs.Name <> '')Then
Begin
Mouse(NPC_Tile.x, NPC_Tile.y, 1, 1, FALSE);
If(WaitOptionMultiEx(['isten'], 'action', ClickLeft, 1000))Then
Begin
Writeln ('Clicked on Music');
Repeat
Wait (RandomRange(700, 1100));
Antiban;
R_GetMMLevels('run');
Energy := R_GetMMLevels('run');
Until(Energy >= 100);
Writeln ('Health is Full');
Exit;
End;
If (Not (Energy >= 100)) Then
FindMusic;
End;
End;
Procedure GoToAirBank;
Begin
If (Not (LoggedIn)) Then
Exit;
SetRun(TRUE);
Writeln ('Walking to Bank');
R_WebWalk(Point(3169, 3425));
Wait (1000 + Random(500));
R_WebWalk(Point(3186, 3429));
Wait (1000 + Random(500));
R_WebWalk(Point(3183, 3436));
If (FindIf('banker')) Then
Writeln ('Found Air banker');
Exit;
If (Not (FindIf('banker'))) Then
Begin
Writeln ('Cant Find Air banker');
Repeat
Wait (500 + Random(500));
R_WebWalk(Point(3184, 3438));
Wait (500 + Random(500));
R_findRandoms;
Until (FindIf('banker'));
Exit;
End;
End;
Procedure GoToEarthBank;
Begin
If (Not (LoggedIn)) Then
Exit;
SetRun(TRUE);
Writeln ('Walking to Bank');
R_WebWalk(Point(3281, 3428));
Wait (1000 + Random(500));
R_WebWalk(Point(3253, 3428));
Wait (1000 + Random(500));
R_WebWalk(Point(3254, 3418));
Wait (1000 + Random(500));
R_FindRandoms;
If (FindIf('banker')) Then
Writeln ('Found Earth banker');
Exit;
If (Not (FindIf('banker'))) Then
Begin
Writeln ('Cant Find Earth banker');
Repeat
Wait (500 + Random(500));
R_WebWalk(Point(3252, 3418));
Wait (500 + Random(500));
R_findRandoms;
Until (FindIf('banker'));
Exit;
End;
End;
Procedure GoToFireBank;
Begin
If (Not (LoggedIn)) Then
Exit;
R_FindRandoms;
SetRun(TRUE);
Writeln ('Walking to Bank');
R_WebWalk(Point(3284, 3199));
Wait (1000 + Random(500));
R_WebWalk(Point(3279, 3180));
Wait (1000 + Random(500));
R_WebWalk(Point(3269, 3167));
Wait (1000 + Random(500));
R_FindRandoms;
If (FindIf('banker')) Then
Writeln ('Found Fire banker');
Exit;
If (Not (FindIf('banker'))) Then
Begin
Writeln ('Cant Find Fire banker');
Repeat
Wait (500 + Random(500));
R_WebWalk(Point(3269, 3167));
Wait (500 + Random(500));
R_findRandoms;
Until (FindIf('banker'));
Exit;
End;
End;
Procedure GoToWaterBank;
Var
Energy: Integer;
Begin
If (Not (LoggedIn)) Then
Exit;
R_FindRandoms;
SetRun(TRUE);
Writeln ('Walking to Bank');
R_WebWalk(Point(3201, 3162))
Wait (1000 + Random(500));
R_WebWalk(Point(3226, 3162));
Wait (1000 + Random(500));
R_WebWalk(Point(3241, 3169));
Wait (1000 + Random(500));
R_WebWalk(Point(3255, 3173));
Wait (1000 + Random(1000));
R_WebWalk(Point(3276, 3176));
Wait (1000 + Random(1000));
R_WebWalk(Point(3269, 3167));
Wait (1000 + Random(1000));
Begin
Writeln('About to Rest');
R_Rest(100)
Repeat
R_FindRandoms;
Wait (1000 + Random(500));
Antiban;
R_GetMMLevels('run');
Energy := R_GetMMLevels('run');
Until(Energy >= 100);
Writeln ('Health is Full');
R_WebWalk(Point(3269, 3167));
End;
End;
Procedure GoToMindBank;
Begin
If (Not (LoggedIn)) Then
Exit;
R_FindRandoms;
SetRun(TRUE);
Writeln ('Walking to Bank');
R_WebWalk(Point(2964, 3383));
Wait (1000 + Random(500));
R_WebWalk(Point(2943, 3374));
Wait (1000 + Random(500));
R_WebWalk(Point(2947, 3366));
Wait (1000 + Random(500));
R_FindRandoms;
If (FindIf('banker')) Then
Writeln ('Found Mind banker');
Exit;
If (Not (FindIf('banker'))) Then
Begin
Writeln ('Cant Find Mind banker');
Repeat
Wait (500 + Random(500));
R_WebWalk(Point(2947, 3365));
Wait (500 + Random(500));
R_findRandoms;
Until (FindIf('banker'));
Exit;
End;
End;
Procedure GoToBodyBank;
Begin
If (Not (LoggedIn)) Then
Exit;
R_FindRandoms;
SetRun(TRUE);
Writeln ('Walking to Bank');
R_WebWalk(Point(3051, 3484));
Wait (1000 + Random(500));
R_WebWalk(Point(3052, 3512));
Wait (1000 + Random(500));
R_WebWalk(Point(3071, 3511));
Wait (1000 + Random(500));
R_WebWalk(Point(3082, 3503));
Wait (1000 + Random(500));
R_WebWalk(Point(3094, 3491));
Wait (1000 + Random(1000));
R_FindRandoms;
If (FindIf('banker')) Then
Writeln ('Found Body banker');
Exit;
If (Not (FindIf('banker'))) Then
Begin
Writeln ('Cant Find Body banker');
Repeat
Wait (500 + Random(500));
R_WebWalk(Point(3094, 3491));
Wait (500 + Random(500));
R_findRandoms;
Until (FindIf('banker'));
Exit;
End;
End;
Procedure BankRunes;
Var
Tries, EssenceID, MindTalisman, AirTalisman, EarthTalisman, FireTalisman,
WaterTalisman, BodyTalisman, EarthTiara, FireTiara, WaterTiara, AirTiara,
MindTiara, BodyTiara: Integer;
ID: TVariantArray;
NPCs: TNPC;
NPC_Tile: TPoint;
Begin
If (Not (LoggedIn)) Then
Exit;
R_FindRandoms;
R_MakeCompass('N');
SetAngle(True);
Writeln ('About to bank');
Tries := 0;
//Talisman
EarthTalisman := 1440;
FireTalisman := 1442;
WaterTalisman := 1444;
AirTalisman := 1438;
MindTalisman := 1448;
BodyTalisman := 1446;
//Tiara
EarthTiara := 5535;
FireTiara := 5537;
WaterTiara := 5531;
AirTiara := 5527;
MindTiara := 5529;
BodyTiara := 5533;
EssenceID := 1436;
ID := [496, 497, 553, 2759, 6200];
R_Flag;
NPCs := GetNPCMulti(ID);
NPC_Tile := TileToMS(NPCs.Tile, NPCs.Height);
If(NPCs.Name <> '')Then
Begin
Mouse(NPC_Tile.x, NPC_Tile.y, 0, 0, FALSE);
If(WaitOptionMultiEx(['ank'], 'action', ClickLeft, 1000))Then
Begin
Writeln ('Clicked Banker');
Repeat
R_FindRandoms;
Wait(500 + Random(500));
If (R_PinScreen) Then
InPin(Players[CurrentPlayer].Pin);
Inc(Tries);
Until (R_BankScreen) Or (Tries > 10);
If (Tries > 10) Then
BankRunes;
Wait(300 + Random(200));
If (R_BankScreen) Then
Begin
If (Players[CurrentPlayer].Strings[0] = 'Talisman') Then
Begin
RunesCount := GetItemStackSizeAt(2);
End;
If (Players[CurrentPlayer].Strings[0] = 'Tiara') Then
Begin
RunesCount := GetItemStackSizeAt(1);
End;
IncEx(TRunesCount, RunesCount);
IncEx(Players[CurrentPlayer].Integers[3], RunesCount);
R_DepositAllButEx(KeepIDs);
Writeln ('Deposited ' + (Players[CurrentPlayer].Strings[1]) + ' Runes');
Inc(TBanked);
Inc(Players[CurrentPlayer].Integers[1]);
End;
If (Players[CurrentPlayer].Strings[0] = 'Talisman') Then
Begin
If (Not(R_ItemExistsEx(TalismanIDs, TheItem))) Then
Begin
Writeln ('Withdrawing ' + (Players[CurrentPlayer].Strings[1]) + ' Talisman');
Case Players[CurrentPlayer].Strings[1] Of
'Air' : R_WithdrawItem(AirTalisman, 1);
'Water' : R_WithdrawItem(WaterTalisman, 1);
'Earth' : R_WithdrawItem(EarthTalisman, 1);
'Fire' : R_WithdrawItem(FireTalisman, 1);
'Mind' : R_WithdrawItem(MindTalisman, 1);
'Body' : R_WithdrawItem(BodyTalisman, 1);
End;
End;
If (Not(R_ItemExistsEx(EssenceIDs, TheItem))) Then
Begin
R_WithdrawItem(EssenceID, 27);
Writeln ('Got Essence');
EssenceCount := R_CountItem(EssenceID);
IncEx(TEssenceCount, EssenceCount);
IncEx(Players[CurrentPlayer].Integers[6], EssenceCount);
End;
End;
If (Players[CurrentPlayer].Strings[0] = 'Tiara') Then
Begin
If (Not(R_ItemExistsEx(EssenceIDs, TheItem))) Then
Begin
Writeln ('Withdrawing Essence');
R_WithdrawItem(EssenceID, 28);
Writeln ('Got Essence');
EssenceCount := R_CountItem(EssenceID);
IncEx(TEssenceCount, EssenceCount);
IncEx(Players[CurrentPlayer].Integers[6], EssenceCount);
End;
End;
Case Random(1) of
0 : CloseWindow;
End;
If (Not (R_ItemExistsEx(EssenceIDs, TheItem))) Then
Begin
Writeln ('No More Essence, Logging Out');
Logout;
End;
Writeln ('Finished Banking');
R_FindRandoms;
End;
Wait(300 + Random(300));
If (R_ItemExistsEx(RunesIDs, TheItem)) Then
BankRunes;
End;
End;
Procedure ProgressReport;
Var
I, RunesPerHour, RuneCraftingLevelNow : Integer;
Begin
RunesPerHour := ((RunesCount * 3600) / (GetTimeRunning / 1000));
RuneCraftingLevelNow := R_GetSkillLevel(Skill_RuneCrafting);
Players[CurrentPlayer].Integers[5] := RuneCraftingLevelNow;
SRLRandomsReport;
Writeln('[=====================================================]');
Writeln('[---------(Whacko999s: F2P RuneCrafter V1.10)---------]');
Writeln('[=====================================================]');
Writeln('[= Overall ');
Writeln('[= Running For ' + MsToTime(GetTimeRunning, Time_Formal));
Writeln('[= Banked ' + IntToStr(TBanked) + ' times.');
Writeln('[= Essence Used ' + IntToStr(TEssenceCount));
Writeln('[= Crafted ' + IntToStr(TRunesCount) + ' Runes.');
Writeln('[= Levels Gained ' + IntToStr(TLevels));
Writeln('[=====================================================]');
For i := 0 To High(Players) Do
Begin
RunesPerHour := 0;
If(PlayerWorked(i) > 0)Then
Begin
RunesPerHour := ((Players[i].Integers[3] * 3600) / (PlayerWorked(i) / 1000));
Writeln('[= Player ' + IntToStr(i));
Writeln('[= Crafting ' + (Players[CurrentPlayer].Strings[0]) + ' Runes.');
Writeln('[= Active ' + BoolToStr(Players[i].Active));
Writeln('[= Worked ' + MsToTime(PlayerWorked(i), Time_Formal));
Writeln('[= Start RC Level: ' + IntToStr(Players[i].Integers[4]));
Writeln('[= Current RC Level: ' + IntToStr(Players[i].Integers[5]));
Writeln('[= Levels Gained ' + IntToStr(Players[i].Integers[2]));
Writeln('[= Loads ' + IntToStr(Players[i].Integers[1]));
Writeln('[= Essence Used ' + IntToStr(Players[i].Integers[6]));
Writeln('[= ' + (Players[CurrentPlayer].Strings[0]) + ' Runes Crafted ' + IntToStr(Players[i].Integers[3]));
Writeln('[= ' + (Players[CurrentPlayer].Strings[0]) + ' Runes Crafted Per Hour ' + IntToStr(RunesPerHour));
Writeln('[=====================================================]');
End;
End;
End;
Procedure EarthLoop;
Begin
Banked := Players[CurrentPlayer].Integers[1];
GoToEarthRock;
FindRock;
GoToEarthAlter;
FindAlter;
GoToEarthPortal;
FindPortal;
GoToEarthRest;
FindMusic;
GoToEarthBank;
BankRunes;
ProgressReport;
Writeln(IntToStr(Players[CurrentPlayer].Integers[1]) + '/' + IntToStr(LoadsToDo));
End;
Procedure FireLoop;
Begin
Banked := Players[CurrentPlayer].Integers[1];
GoToFireRock1;
FindMusic;
GoToFireRock2;
FindRock;
GoToFireAlter;
FindAlter;
GoToFirePortal;
FindPortal;
GoToFireRest;
FindMusic;
GoToFireBank;
BankRunes;
ProgressReport;
Writeln(IntToStr(Players[CurrentPlayer].Integers[1]) + '/' + IntToStr(LoadsToDo));
End;
Procedure WaterLoop;
Begin
Banked := Players[CurrentPlayer].Integers[1];
GoToWaterRock;
FindRock;
GoToWaterAlter;
FindAlter;
GoToWaterPortal;
FindPortal;
GoToWaterBank;
BankRunes;
ProgressReport;
Writeln(IntToStr(Players[CurrentPlayer].Integers[1]) + '/' + IntToStr(LoadsToDo));
End;
Procedure AirLoop;
Begin
Banked := Players[CurrentPlayer].Integers[1];
GoToAirRock;
FindRock;
GoToAirAlter;
FindAlter;
GoToAirPortal;
FindPortal;
GoToAirRest;
FindMusic;
GoToAirBank;
BankRunes;
ProgressReport;
Writeln(IntToStr(Players[CurrentPlayer].Integers[1]) + '/' + IntToStr(LoadsToDo));
End;
Procedure MindLoop;
Begin
Banked := Players[CurrentPlayer].Integers[1];
GoToMindRock1;
FindMusic;
GoToMindRock2;
FindRock;
GoToMindAlter;
FindAlter;
GoToMindPortal;
FindPortal;
GoToMindRest;
FindMusic;
GoToMindBank;
BankRunes;
ProgressReport;
Writeln(IntToStr(Players[CurrentPlayer].Integers[1]) + '/' + IntToStr(LoadsToDo));
End;
Procedure BodyLoop;
Begin
Banked := Players[CurrentPlayer].Integers[1];
GoToBodyRock1;
FindMusic;
GoToBodyRock2;
FindRock;
GoToBodyAlter;
FindAlter;
GoToBodyPortal;
FindPortal;
GoToBodyRest;
FindMusic;
GoToBodyBank;
BankRunes;
ProgressReport;
Writeln(IntToStr(Players[CurrentPlayer].Integers[1]) + '/' + IntToStr(LoadsToDo));
End;
Procedure Mainloop;
Begin
If (Not (LoggedIn)) Then
Exit;
Writeln ('Script Started');
Repeat
LampSkill := Players[CurrentPlayer].Skill;
LoadsToDo := Players[CurrentPlayer].Integers[0];
If(Players[CurrentPlayer].Integers[4] = 0)Then
Begin
RuneCraftingLevelStart := R_GetSkillLevel(Skill_RuneCrafting);
Players[CurrentPlayer].Integers[4] := RuneCraftingLevelStart;
End;
MarkTime(Start);
If(SWITCH_EVERY > 0)Then
Begin
SWITCH := TRUE;
SwitchChar := SWITCH_EVERY + RandomRange(1, 9);
Every := RandomRange(SWITCH_EVERY * 60000, SwitchChar * 60000);
WRiteln('Switching Every(MS): ' + IntToStr(Every));
WRiteln('Switching Every(Mins): ' + IntToStr(Every / 60000));
End;
If (Players[CurrentPlayer].Strings[0] = 'Talisman') Then
Begin
If (Not (HaveTalismanEssence)) Then
Begin
BankRunes;
End;
End;
If (Players[CurrentPlayer].Strings[0] = 'Tiara') Then
Begin
If (R_ItemExistsEx(TiaraIDs, TheItem)) Then
Begin
R_ClickItemBy(TiaraIDs, False, 'wear');
End;
If (Not (HaveTiaraEssence)) Then
Begin
BankRunes;
End;
End;
Banked := 0;
Repeat
Case Players[CurrentPlayer].Strings[1] Of
'Air' : AirLoop;
'Water' : WaterLoop;
'Earth' : EarthLoop;
'Fire' : FireLoop;
'Mind' : MindLoop;
'Body' : BodyLoop;
End;
Until (Not LoggedIn) Or (DoISwitchChar);
Wait(1000 + Random(1200));
If (Not LoggedIn) Then
NextPlayer(FALSE);
Until(AllPlayersInactive);
TerminateScript;
End;
Begin
Smart_Members := MEMBERS;
Smart_Server := WORLD;
Smart_Signed := SIGNED;
SetupSRL;
SetUpReflection;
DeclarePlayers;
LoginPlayer;
ClearDebug;
R_FindRandoms;
R_MakeCompass('N');
SetAngle(True);
EssenceIDs := [1436, 7936];
TalismanIDs := [1438, 1450, 1446, 1452, 1454, 1456, 1440, 1442, 1458, 1448, 1462, 1444];
TiaraIDs := [5527, 5549, 5533, 5543, 5539, 5547, 5535, 5537, 5545, 5529, 5541, 5531];
RunesIDs := [556, 557, 554, 555, 565, 559, 562, 564, 560, 563, 558, 561];
KeepIDs := [1438, 1450, 1446, 1452, 1454, 1456, 1440, 1442, 1458, 1448, 1462, 1444, 1436];
Mainloop;
End.