Sirenia
2012-05-12 12:22:45
How Long have You Played Runescape?
6 Year(s)
Are you affilated in anyway with Jagex LTD?
No.
Were you Referred to SRL?
No not really, Erke was my other account but it was a old username name I never use anymore and I discovered the Name Change thread a little late.
What is your general programming knowledge?
It was actually none before I joined this forum, Ive never made a script or understood any code in my life. We are learning some html in school at the moment.
Are you a member of any other communities?
The only botting community I was a member of is Powerbot. I was a leech in general until I came here where learning is higly encouraged.
Tell us about yourself…
Please show us one (or multiple) of your scripts.
6 Year(s)
Are you affilated in anyway with Jagex LTD?
No.
Were you Referred to SRL?
No not really, Erke was my other account but it was a old username name I never use anymore and I discovered the Name Change thread a little late.
What is your general programming knowledge?
It was actually none before I joined this forum, Ive never made a script or understood any code in my life. We are learning some html in school at the moment.
Are you a member of any other communities?
The only botting community I was a member of is Powerbot. I was a leech in general until I came here where learning is higly encouraged.
Tell us about yourself…
From: Sirenia
Im soon 17 years old, living in Sweden with my family. Going first year in college and I kinda like it. I like music alot (more or less and genres in metal). My fav. Bands are The Unguided, Sonic Syndicate, Silverstein and Sirenia (duh). I also like computer games and hanging around with friends. I play mostly mmo games of diffrent kinds like WoW, HoN and ofc Runescape.
I have no plans at all for the future and I got no idea what I want to do after school. I like to just take every day as it comes and dont plan too much.
Okay now on to the script…
It started with that I about one month ago found myself hacked and 550m poorer than I was the last day, I tried to decide if I should quit Runescape or try to rebuild again. Anyways I attempted to rebuild and focused on Runecrafting and made myself a AstralCrafter.
This script has rebuilt a big part of my bank and I think it works pretty nice! Im 91 runecrafting now so next step will maybe be a NatureCrafter?
The script works very simple; Have everything needed visible in the bank. Runes for repairing pouches, Pure ess and lobsters if you need to eat. Start it near the Lunar bank, it tried to blind walk to the bank so you dont have to stand ontop of the bank but somewhere near would be good. Have a Earth staff equiped for moonclan tele and please note that the script only uses NpcContact since thats the only spell I can use.
Kk I think we are ready to see the script itself :) It got a nice proggy so if you choose to test it ingame then you can see Runes per hour etc, I usually get around 4.4k-4.5k astrals per hour!
Please show us one (or multiple) of your scripts.
program AstralCrafter;
{$DEFINE SMART}
{$i SRL/srl.simba}
{$i sps/sps.simba}
// Hey this is my AstralCrafter, got inspired by RyGuy's crafter and decided to make my own
// I used hes crafter as a example when I made my own since ive never done a runecrafting script before
// Please tell me what you think, don't spit on me too much however.
var
TimeBegan, StartingXP, TeleNumber, Stuck, RuneCount, LobstersEaten, PouchesRepaired: integer;
S: String;
aFound: extended;
Const
SPouch = 1; // Inv Slot, 0 to disable.
MPouch = 2; // Inv Slot, 0 to disable.
LPouch = 3; // Inv Slot, 0 to disable.
GPouch = 4; // Inv Slot, 0 to disable.
RestAt = 60;
EatAt = 400;
TotalHP = 940;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Pin := '';
Players[0].Active:= True;
end;
procedure AntiBan;
begin
case Random(150)of
0: HoverSkill('RuneCrafting', false);
1: PickUpMouse;
2: RandomMovement;
3: RandomRClick;
4: ExamineInv;
end;
end;
Function AstralCounter: Integer;
Var
Astral, X, Y:Integer;
begin
Astral := BitmapFromString(4, 6, 'meJw7tf7UKQyUkZELYaSkZAARhJ2Q' +
'kJKUlAZkxMQkxMUlAblAdlRUHIQLAKx3KfU=');
If FindBitMapTolerancein(Astral, X, Y, MIX1, MIY1, MIX2, MIY2, 45) then
Result:= GetAmount(X, Y);
FreeBitMap(Astral);
end;
function CurrentHP: integer;
var
S: string;
begin
Result := GetMMLevels('health', S);
end;
procedure ToBank;
var
x, y, Clicked, Bank: integer;
begin
SPS_Setup(RUNESCAPE_SURFACE,['0_2']);
Bank := DTMFromString('mggAAAHicY2NgYKgAYg1GBjAoBuJcIN4LxJJAnAnEshAphrNQXJkXy5CdEsSQH2fIkB5myVCX7w7GXEA5ESDmB2IQmw+KQUYzYcEQAACa5Aud');
if BankScreen then
begin
FreeDTM(Bank);
Exit;
end;
if FindDTMRotated(Bank, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
repeat
Mouse(x, y, 5, 5, True);
Flag;
Wait(1000 + random(100));
Inc(Clicked);
until (BankScreen) or (PinScreen) or (Clicked = 5);
end;
if PinScreen then
if (Players[CurrentPlayer].Pin <> '')then
InPin(Players[CurrentPlayer].Pin)
else
begin
FreeDTM(Bank);
Logout;
WriteLn('No pin given')
TerminateScript;
end;
if not (BankScreen)then
begin
SPS_BlindWalk(Point(237, 955));
Flag;
MakeCompass('N');
Wait(750 + random(200));
end;
FreeDTM(Bank);
end;
procedure OpenLunar;
var
x, y, Tried, Bank: integer;
begin
Bank := DTMFromString('mggAAAHicY2NgYKgAYg1GBjAoBuJcIN4LxJJAnAnEshAphrNQXJkXy5CdEsSQH2fIkB5myVCX7w7GXEA5ESDmB2IQmw+KQUYzYcEQAACa5Aud');
if (BankScreen)then
begin
FreeDTM(Bank);
Exit;
end;
begin
repeat
Inc(Tried);
Wait(150 + random(100));
if FindDTMRotated(Bank, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
Mouse(x, y, 5, 5, True);
Flag;
Wait(1000 + random(100));
end;
until (BankScreen) or (PinScreen) or (Tried > 10);
end;
begin
if PinScreen then
if (Players[CurrentPlayer].Pin <> '')then
InPin(Players[CurrentPlayer].Pin)
else
begin
FreeDTM(Bank);
Logout;
WriteLn('No pin given');
TerminateScript;
end;
end;
FreeDTM(Bank);
end;
Procedure DepositRunes;
Var
Astral, X, Y, CosmicRune, AirRune:integer;
begin
Astral := BitmapFromString(4, 6, 'meJw7tf7UKQyUkZELYaSkZAARhJ2Q' +
'kJKUlAZkxMQkxMUlAblAdlRUHIQLAKx3KfU=');
CosmicRune := BitmapFromString(17, 11, 'meJx90uEKgjAUBeBH8aEKExGRIS' +
'JmmomZFiImycqMoicLep8OjC5jWnD+uO3Du6Pa6619k2y2abrLsjL' +
'PD0VRlftak3aPLUc4v8mLIrJStpqmO1/uY0KZVJMkXmc0obJV16e+' +
'f8grQRCHYRJFKZSA/4nnLX1/BUVQOY82QIbhadtMrLiujxCE+kUsy' +
'8Gj47gIYx4p5TzuhSrQGAYzTRsBxOtIjTshgu+i66ZhWLKaLBwFon' +
'MM1nXX2XwxVvKEuBTaE6SqWvwAH/YIHxg=');
AirRune := BitmapFromString(10, 5, 'meJy7fv3B9esPMjJyr4MZEFRYVF5' +
'cXAFEQHZKSgayVF5ecX5BKYSdkJCCLJWVlZ+TUwjnxsUlwdlpadlo' +
'VsTEJAAVAE1ISkpDswKIAPPuZ90=');
Wait(500 + random(200));
If FindBitMapTolerancein(Astral, X, Y, MIX1, MIY1, MIX2, MIY2, 45) then
begin
Mouse(X, Y, 7, 7, false);
WaitOption('ll', 1500);
Wait(500 + random(200));
end;
if FindBitmapToleranceIn(CosmicRune, x, y, MIX1, MIY1, MIX2, MIY2, 15)then
begin
Mouse(X, Y, 5, 5, true);
Wait(500 + random(199));
end;
if FindBitMapTolerancein(AirRune,X,Y,MIX1, MIY1, MIX2, MIY2,55)then
begin
Mouse(X, Y, 5, 5, true);
Wait(500 + random(200));
end;
FreeBitmap(AirRune);
Freebitmap(CosmicRune);
FreeBitMap(Astral);
end;
procedure NpcContact; //Do not have a account with RepairPouch spell so Conctact will do :)
var
X, Y, CosmicRune, AirRune, Pouch, Astral, Clicked: integer;
begin
Astral := BitmapFromString(4, 6, 'meJw7tf7UKQyUkZELYaSkZAARhJ2Q' +
'kJKUlAZkxMQkxMUlAblAdlRUHIQLAKx3KfU=');
Pouch := BitmapFromString(8, 8, 'meJyztHOytHMyt7YHIiMzKwMTCz1D' +
'U00dfUuwOETKxNIWIq6tbwQXByKgOFALRNzawQVZPcQoiDhEClkcq' +
'AWrejLEAQsPKpE=');
CosmicRune := BitmapFromString(9, 8, 'meJxTuH5TARUVF1cAUWlpFbJgTk5h' +
'Xl5xfkFpYVE5UBYunpGRm5WVjyybkJACkUpLy0aTjYtLAoonJaWlp' +
'GQgywIFY2ISgLJAvciyEHOiouLQZOG2R0TEoMnCtQMAH95kyw==')
AirRune := BitmapFromString(10, 5, 'meJy7fv3B9esPMjJyr4MZEFRYVF5' +
'cXAFEQHZKSgayVF5ecX5BKYSdkJCCLJWVlZ+TUwjnxsUlwdlpadlo' +
'VsTEJAAVAE1ISkpDswKIAPPuZ90=');
if FindBitmapToleranceIn(Pouch, X, Y, MIX1, MIY1, MIX2, MIY2, 15) then
begin
Wait(500 + random(100));
WriteLn('Broken pouch detected!');
end else
begin
FreeBitmap(Pouch);
FreeBitmap(Astral);
FreeBitmap(CosmicRune);
FreeBitmap(AirRune);
Exit;
end;
begin
If FindBitMapTolerancein(CosmicRune, X, Y, MSX1, MSY1, MSX2, MSY2, 45) then
begin
Mouse(X, Y, 7, 7, True);
Wait(100 + random(25));
end else
begin
FreeBitmap(Pouch);
WriteLn('Cannot find Cosmic Rune');
FreeBitmap(CosmicRune);
FreeBitmap(Astral);
FreeBitmap(AirRune);
exit;
end;
If FindBitMapTolerancein(Astral, X, Y, MSX1, MSY1, MSX2, MSY2, 45) then
begin
MMouse(X, Y, 7, 7);
ClickMouse2(True);
Wait(RandomRange(200, 300));
end else
begin
FreeBitmap(Pouch);
WriteLn('Cannot find Astral Rune');
FreeBitmap(Astral);
FreeBitmap(AirRune);
FreeBitmap(CosmicRune);
end;
If FindBitMapTolerancein(AirRune, X, Y, MSX1, MSY1, MSX2, MSY2, 55)then
begin
Mouse(X, Y, 7, 7, True);
Wait(400 + random(25));
ClickMouse2(True);
Wait(1000 + random(100));
end else
begin
FreeBitmap(Pouch);
WriteLn('Cannot find Air Rune');
FreeBitmap(CosmicRune);
FreeBitmap(AirRune);
FreeBitmap(Astral);
exit;
end;
end;
begin
CloseBank;
Wait(500);
GameTab(Tab_Magic);
Mouse(696, 229, 4, 4, True);
Wait(1500 + random(100));
Mouse(487, 280, 3, 3, true);
Wait(500 + random(200));
Mouse(434, 130, 7, 7, true);
Wait(6000 + random(200));
end;
if FindNPCChatText('ello', Nothing)then
begin
repeat
ClickContinue(True, True);
ChatWait;
Inc(Clicked);
until FindNPCChatText('pouches', nothing) or (Clicked = 15)
end;
if FindNPCChatText('ouches', nothing)then
begin
Wait(250 + random(100));
TypeSendEx('1', False);
Wait(500 + random(100));
ClickContinue(True, True);
ChatWait;
ClickContinue(True, True);
ChatWait;
ClickContinue(True, True);
Inc(PouchesRepaired);
end;
OpenLunar;
FreeBitmap(AirRune);
FreeBitmap(CosmicRune);
FreeBitmap(Pouch);
FreeBitmap(Astral);
end;
procedure WithdrawEss;
var
x, y, PureEss, Tried: integer;
A: extended;
begin
PureEss := BitmapFromString(16, 14, 'meJyN0NEKgkAUBNBfE3oQM7HMRE' +
'REZDE100xEij6+oYFluWYE8ziHubtK1WV5Qarq2jQ90rZD141If5u' +
'Q4T6P4wOZpuc8v/JcFcVZqVp9IBQhFKFQWVaQUP3YAkHSNCf5Zwj9' +
'JMlI1oa0IonjlEQMiS09FEUJian0lrgNCcMYhMqEguiVIDghUCZcE' +
'j3keQd/f0SoRF98Hfqu6yNUS2Iq9m176zi7NWIqTOCkr31NtNJ9y9' +
'osiVDs8xVv+6X+WQ==');
repeat
Inc(Tried);
Wait(20);
if FindNormalRandoms then
begin
ClickNorth(SRL_ANGLE_HIGH);
OpenLunar;
end;
until (BankScreen) or (Tried > 15);
begin
if FindDeformedBitmapToleranceIn(PureEss, x, y, MSX1, MSY1, MSX2, MSY2, 20, 0, false, A)then
Mouse(X, Y, 8, 8, False);
WaitOption('All P', 1500);
FreeBitmap(PureEss);
end;
end;
procedure FillPouches;
var
Waiting: integer;
begin
repeat
Inc(Waiting);
Wait(250 + random(10));
FindNormalRandoms;
until (BankScreen) or (Waiting = 40);
if (BankScreen)then
begin
begin
if not (SPouch = 0) then
begin
WithdrawEss;
MouseItem(SPouch, mouse_right);
(WaitOption('ill', 1500));
end;
end;
begin
if not (MPouch = 0) then
begin
MouseItem(MPouch, mouse_right);
WaitOption('ill', 1500);
end;
end;
begin
if not (LPouch = 0) then
begin
MouseItem(LPouch, mouse_right);
(WaitOption('ill', 1500));
end;
end;
begin
if not (GPouch = 0) then
begin
WithdrawEss;
MouseItem(GPouch, mouse_right);
WaitOption('ill', 1500);
end;
end;
WithdrawEss;
Wait(750 + random(200));
if not (InvFull) then
begin
WithdrawEss;
end;
end else exit;
if (CurrentHP < 200) then
begin
Logout;
WriteLn('Low HP, logging t_t');
TerminateScript;
end;
end;
procedure ToAltar;
var
ToAltarPath: TPointArray;
begin
SPS_Setup(RUNESCAPE_SURFACE, ['0_2']);
ToAltarPath := [Point(284, 972), Point(284, 1026), Point(297, 1072), Point(331, 1104), Point(363, 1138), Point(380, 1183), Point(422, 1173), Point(463, 1176)];
if (InvCount > 9)then
begin
SPS_WalkPath(ToAltarPath);
AntiBan;
Flag;
end;
end;
procedure AltarCheck; //If SPS doesnt run all all the way to the altar then this will hopefully
var
X, Y, Altar, Altar1, Altar2, Altar3, Altar4: integer;
begin
Altar := DTMFromString('mggAAAHicdcxBCkBQFEbh/03YKxsQScpTnju4LMVEygqUPTllyqlvejJJZ5AO3LiwY0MPg6NAiRpN1WpdZrlPMhsVY6eUBuW8voQfbw+hkxEq');
Altar1 := DTMFromString('mlwAAAHicY2dgYFjPxMCwF4i3A/FxID4FxEeA+AIQ2wOxJRBHQLErEMcDsRcQT5zYzTChv5Nh8uReMBsZcwLNxYUZ8WAoAABXhBOE');
Altar2 := DTMFromString('mlwAAAHicY2dgYOgH4i4ovQSIFwDxJCCeA8SJQJwBxBVAHA7E/kDsB8TZQFxVVsMwYUIXw9y50xi6u1vBuKW5jqG/r4OBHSiPCzPiwVAAAMCwEkA=');
Altar3 := DTMFromString('mbQAAAHicY2VgYBBhYWDQAmJlFghbA4jtmRgYrIHYGIo9gbimppyhra0BjEHspqYaBnagfnTMiAWDAQBIugmI');
Altar4 := DTMFromString('mwQAAAHic42RgYPjEzMDwD4i5WBgYfgBpZiD9Cki/BWIWIPsPkLZkYmBQBGIPII4C4iAgdgZiVSA2huKayjqGtrYGhs7OZoaZMyczdHe3MvT2tjPU1VUyNDXVMBTnlzKwA+0jhBmJwHAAALfNFks=');
if FindDTM(Altar, x, y, MSX1, MSY1, MSX2, MSY2)or
FindDTM(Altar1, x, y, MSX1, MSY1, MSX2, MSY2) or
FindDTM(Altar2, x, y, MSX1, MSY1, MSX2, MSY2) or
FindDTM(Altar3, x, y, MSX1, MSY1, MSX2, MSY2) or
FindDTM(Altar4, x, y, MSX1, MSY1, MSX2, MSY2)then
begin
FreeDTM(Altar);
FreeDTM(Altar1);
FreeDTM(Altar2);
FreeDTM(Altar3);
FreeDTM(Altar4);
Exit;
end;
if not FindDTM(Altar, x, y, MSX1, MSY1, MSX2, MSY2)or
FindDTM(Altar1, x, y, MSX1, MSY1, MSX2, MSY2) or
FindDTM(Altar2, x, y, MSX1, MSY1, MSX2, MSY2) or
FindDTM(Altar3, x, y, MSX1, MSY1, MSX2, MSY2) or
FindDTM(Altar4, x, y, MSX1, MSY1, MSX2, MSY2)then
begin
if FindSymbol(X, Y, 'runecrafting') then
begin
Mouse(X, Y, 7, 7, true);
flag;
Wait(1000 + random(200));
end;
end;
FreeDTM(Altar);
FreeDTM(Altar1);
FreeDTM(Altar2);
FreeDTM(Altar3);
FreeDTM(Altar4);
end;
procedure CraftRunes;
var
x, y, Altar, Altar1, WaitCount, Failed, Altar2, Altar3, Altar4: integer;
begin
Wait(750 + random(200));
Altar := DTMFromString('mggAAAHicdcxBCkBQFEbh/03YKxsQScpTnju4LMVEygqUPTllyqlvejJJZ5AO3LiwY0MPg6NAiRpN1WpdZrlPMhsVY6eUBuW8voQfbw+hkxEq');
Altar1 := DTMFromString('mlwAAAHicY2dgYFjPxMCwF4i3A/FxID4FxEeA+AIQ2wOxJRBHQLErEMcDsRcQT5zYzTChv5Nh8uReMBsZcwLNxYUZ8WAoAABXhBOE');
Altar2 := DTMFromString('mlwAAAHicY2dgYOgH4i4ovQSIFwDxJCCeA8SJQJwBxBVAHA7E/kDsB8TZQFxVVsMwYUIXw9y50xi6u1vBuKW5jqG/r4OBHSiPCzPiwVAAAMCwEkA=');
Altar3 := DTMFromString('mbQAAAHicY2VgYBBhYWDQAmJlFghbA4jtmRgYrIHYGIo9gbimppyhra0BjEHspqYaBnagfnTMiAWDAQBIugmI');
Altar4 := DTMFromString('mwQAAAHic42RgYPjEzMDwD4i5WBgYfgBpZiD9Cki/BWIWIPsPkLZkYmBQBGIPII4C4iAgdgZiVSA2huKayjqGtrYGhs7OZoaZMyczdHe3MvT2tjPU1VUyNDXVMBTnlzKwA+0jhBmJwHAAALfNFks=');
repeat
if FindDTM(Altar, x, y, MSX1, MSY1, MSX2, MSY2) or
FindDTM(Altar1, x, y, MSX1, MSY1, MSX2, MSY2) or
FindDTM(Altar2, x, y, MSX1, MSY1, MSX2, MSY2) or
FindDTM(Altar3, x, y, MSX1, MSY1, MSX2, MSY2) or
FindDTM(Altar4, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
Stuck := 0;
Inc(Failed);
Mouse(x-25, y, 25, 25, True);
end;
until (DidRedClick) or (Failed = 5);
repeat
Wait(1700 + random(100));
FindNormalRandoms;
Inc(WaitCount);
until (InvCount < 10) or (WaitCount > 10);
begin
if not (SPouch = 0)then
begin
MouseItem(SPouch, mouse_left);
Wait(300 + random(200));
end;
end;
begin
if not (MPouch = 0)then
begin
MouseItem(MPouch, mouse_left);
Wait(300 + random(200));
end;
end;
begin
if not (LPouch = 0)then
begin
MouseItem(LPouch, 1);
Wait(300 + random(200));
end;
end;
begin
if not (GPouch = 0)then
begin
if FindDTM(Altar, x, y, MSX1, MSY1, MSX2, MSY2) or
FindDTM(Altar1, x, y, MSX1, MSY1, MSX2, MSY2) or
FindDTM(Altar2, x, y, MSX1, MSY1, MSX2, MSY2) or
FindDTM(Altar3, x, y, MSX1, MSY1, MSX2, MSY2) or
FindDTM(Altar4, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
Mouse(X, Y, 25, 25, True);
end;
Wait(1900 + random(50));
MouseItem(GPouch, mouse_left);
end;
end;
if FindDTM(Altar, x, y, MSX1, MSY1, MSX2, MSY2) or
FindDTM(Altar1, x, y, MSX1, MSY1, MSX2, MSY2) or
FindDTM(Altar2, x, y, MSX1, MSY1, MSX2, MSY2) or
FindDTM(Altar3, x, y, MSX1, MSY1, MSX2, MSY2) or
FindDTM(Altar4, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
Mouse(X, Y, 25, 25, True);
Wait(2000 + random(100));
AntiBan;
end;
FreeDTM(Altar);
FreeDTM(Altar1);
FreeDTM(Altar2);
FreeDTM(Altar3);
FreeDTM(Altar4);
end;
procedure Teleport;
var
WaitTime: integer;
begin
repeat
Inc(WaitTime);
FindNormalRandoms;
Wait(500 + random(150));
until (InvCount < 10) or (WaitTime = 5);
begin
GameTab(tab_magic);
Mouse(662, 260, 6, 6, True);
Wait(250 + random(500));
Inc(TeleNumber);
GameTab(tab_inv);
AntiBan;
Wait(3500 + random(100));
if FindBlackChatMessage('w rune')then
begin
WriteLn('Out of Law Runes!!');
Logout;
TerminateScript;
end;
end;
end;
procedure Rest;
begin
if GetMMLevels('run',S) < RestAt then
RestUntil(RandomRange(85, 95));
end;
procedure Report;
var
RCExp, RCExpHr, TimeRan, AstralsHr, TeleNumberHr, LobstersHr, PouchesHr: integer;
begin
TimeRan := (1+((GetSystemTime - TimeBegan) / 1000));
RCExp := ((GetXPBarTotal - StartingXP) - (TeleNumber * 67));
RCExpHr := Round((RCExp * 3600) / (TimeRan));
AstralsHr := Round((RuneCount * 3600) / (TimeRan));
TeleNumberHr := Round((TeleNumber * 3600) / (TimeRan));
LobstersHr := Round((LobstersEaten * 3600) / (TimeRan));
PouchesHr := Round((PouchesRepaired * 3600) / (TimeRan));
WriteLn('*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn('*Sirenia''s Astral Runecrafter Report');
WriteLn('*Time: ' + TimeRunning);
WriteLn('*We have done ' + IntToStr(TeleNumber) + ' Runs! (' + IntToStr(TeleNumberHr) + ' per Hour)');
WriteLn('*We have gained ' + IntToStr(RCExp) + ' Runecrafting Experience! (' + IntToStr(RCExpHr) + ' per Hour)');
Writeln('*We have crafted ' +IntToStr(RuneCount) + ' Astral Runes!(' + IntToStr(AstralsHr) + ' per Hour)');
WriteLn('*We have eaten ' +IntToStr(LobstersEaten) + ' Lobsters!(' + IntToStr(LobstersHr) + ' per Hour)');
WriteLn('*We have repaired ' +IntToStr(PouchesRepaired) + ' Pouches!(' + IntToStr(PouchesHr) + ' per Hour)');
WriteLn('*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;
procedure Eat;
var
Lobster, X, Y, Tried: integer;
begin
Lobster := DTMFromString('mlwAAAHicY2dgYBBmhGBJIJYAYj4gZoeyM4HyVUBcBMQ5QFwKxIVAXAbECwLEgSQTVszPgBsw4sFQAAAAAATZ');
if CurrentHP < EatAt then
begin
FindDTM(Lobster, X, Y, MSX1, MSY1, MSX2, MSY2);
Mouse(X, Y, 7, 7, false);
WaitOption('10', 1500);
Wait(1000 + random(200));
repeat
FindDTM(Lobster, X, Y, MIX1, MIY1, MIX2, MIY2);
Mouse(X, Y, 7, 7, false);
WaitOption('at', 1500);
Wait(1000 + random(200));
Inc(Tried);
Inc(LobstersEaten);
until (CurrentHP = TotalHP) or (Tried > 10)
if FindDTM(Lobster, X, Y, MIX1, MIY1, MIX2, MIY2)then
begin
Mouse(X, Y, 7, 7, false);
WaitOption('ll', 1500);
Wait(500 + random(200));
end;
end;
end;
begin
Smart_Server := 86;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetUpSRL;
ActivateClient;
DeclarePlayers;
LoginPlayer;
ToggleXPBar(True);
StartingXP := (GetXPBarTotal);
ClickNorth(SRL_ANGLE_HIGH);
TimeBegan := GetSystemTime;
repeat
FindNormalRandoms;
if not (LoggedIn)then
TerminateScript;
ToBank;
OpenLunar;
DepositRunes;
NpcContact;
Eat;
FillPouches;
Rest;
ToAltar;
AltarCheck;
CraftRunes;
Teleport;
IncEx(RuneCount, AstralCounter);
Report;
until(AllPlayersInactive);
end.