RyGuy
2012-03-03 16:44:33
How Long have You Played Runescape?
10 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
Mr.Klean
What is your general programming knowledge?
Everything I know I have learned here at SRL
Are you a member of any other communities?
Nope
Tell us about yourself…
Please show us one (or multiple) of your scripts.
Ape Atoll Agility Runner
Edgeville Gold Smelter / Bracelet Crafter
10 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
Mr.Klean
What is your general programming knowledge?
Everything I know I have learned here at SRL
Are you a member of any other communities?
Nope
Tell us about yourself…
From: RyGuy
My name is Ryan (if you couldn't tell :P). I am currently in my freshman year of college studying pharmacy. I am part of my college's track team (springing and jumping). In my free time I like to play video games, work out, or hang out with friends, although much of my time is spent studying and doing homework. This is my second time applying for SRL members. First time was about a month and a half ago I think. I was told to get a little more established in the community before re-applying. I feel that I have done that, and have also developed a few new scripts since. Thanks to everyone who looks over my application and votes!
Please show us one (or multiple) of your scripts.
Astral Rune Crafter (This is in Simba tags because the application automatically puts a Simba tag at the beginning of the area where I paste these :P)program AstralCrafter;
//////////////////////////WRITTEN BY RYGUY//////////////////////////////
////////////////////////////VERSION 1.0/////////////////////////////////
{$DEFINE SMART}
{$i SRL/srl.simba}
{$i sps/sps.simba}
var
TimeBegan, StartingXP, TeleNumber, Slot, Stuck: integer;
aFound: extended;
RunToAltarPath: TPointArray;
///////////////////////////PLAYER SETUP//////////////////////////////////
Const
SP = 1; // Which inventory slot for Small Pouch. 0 to disable.
MP = 2; // Which inventory slot for Medium Pouch. 0 to disable.
LP = 5; // Which inventory slot for Large Pouch. 0 to disable.
GP = 6; // Which inventory slot for Giant Pouch. 0 to disable.
Method = 'repairspell'; //RepairSpell or Contact
//RepairSpell highly recommended!
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Pin := '';
Players[0].Nick := '';
Players[0].Active:=True;
end;
////////////////////DO NOT TOUCH BELOW THIS LINE/////////////////////////
procedure AntiBan;
begin
if not(LoggedIn)then
begin
Exit;
end;
case Random(150)of
0: HoverSkill('RuneCrafting', false);
1: PickUpMouse;
2: RandomMovement;
3: RandomRClick;
4: ExamineInv;
5: HoverSkill('RuneCrafting', false);
6: HoverSkill('RuneCrafting', false);
end;
end;
procedure RunToBank;
var
x, y, WalkToBank, Tried, Bank: integer;
begin
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
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));
Inc(Tried);
end;
until (BankScreen) or (PinScreen) or (Tried > 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
WalkToBank := DTMFromString('mWAAAAHicY2FgYOBigABOIGYFYj4GVHDgwAGGnz8Z4Pg/UEwOCTMCMTMSBgEAq6wJpA==');
begin
if FindDTMRotated(WalkToBank, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, Pi/30, aFound)then
Mouse(x, y, 3, 3, True);
AntiBan;
MakeCompass('N');
Wait(200 + random(50));
while (IsMoving) do (WaitNone);
end;
FreeDTM(WalkToBank);
end else exit;
FreeDTM(Bank);
end;
procedure OpenBankBooth;
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 NPCContact;
var
x, y, CosmicRune, AirRune, Pouch: integer;
begin
Pouch := BitmapFromString(8, 8, 'meJyztHOytHMyt7YHIiMzKwMTCz1D' +
'U00dfUuwOETKxNIWIq6tbwQXByKgOFALRNzawQVZPcQoiDhEClkcq' +
'AWrejLEAQsPKpE=');
if FindBitmapToleranceIn(Pouch, x, y, MIX1, MIY1, MIX2, MIY2, 15)then
begin
MMouse(x, y, 5, 5);
Slot := CoordsToItem(x, y);
Wait(500 + random(100));
WriteLn('Broken pouch in slot ' + IntToStr(Slot));
end else
begin
FreeBitmap(Pouch);
Exit;
end;
CosmicRune := BitmapFromString(17, 11, 'meJx90uEKgjAUBeBH8aEKExGRIS' +
'JmmomZFiImycqMoicLep8OjC5jWnD+uO3Du6Pa6619k2y2abrLsjL' +
'PD0VRlftak3aPLUc4v8mLIrJStpqmO1/uY0KZVJMkXmc0obJV16e+' +
'f8grQRCHYRJFKZSA/4nnLX1/BUVQOY82QIbhadtMrLiujxCE+kUsy' +
'8Gj47gIYx4p5TzuhSrQGAYzTRsBxOtIjTshgu+i66ZhWLKaLBwFon' +
'MM1nXX2XwxVvKEuBTaE6SqWvwAH/YIHxg=');
AirRune := DTMFromString('m6wAAAHic42ZgYMhkZGDIB+JUIE4E4hwgTgPiZCCuAuJyII4B4gggzmZA4CwgLgDifCDOA+IMIK6AYpDc9XPncGIrYx0GKxMdBksjHTBbDqieWAx0BgMTkRgJAAD4qx4w');
begin
if FindBitmapToleranceIn(CosmicRune, x, y, MSX1, MSY1, MSX2, MSY2, 15)then
begin
Mouse(x, y, 5, 5, True);
Wait(20 + random(10));
end else
begin
FreeBitmap(Pouch);
WriteLn('Unable to find Cosmic Rune');
FreeBitmap(CosmicRune);
FreeDTM(AirRune);
exit;
end;
if FindDTM(AirRune, x, y, MSX1, MSY1, MSX2, MSY2)then
begin
Mouse(x, y, 5, 5, True);
Wait(20 + random(10));
ClickMouse2(True);
Wait(1000 + random(100));
end else
begin
FreeBitmap(Pouch);
WriteLn('Unable to find Air Rune');
FreeBitmap(CosmicRune);
FreeDTM(AirRune);
exit;
end;
end;
if FindBitmapToleranceIn(CosmicRune, x, y, MIX1, MIY1, MIX2, MIY2, 15) and FindDTM(AirRune, x, y, MIX1, MIY1, MIX2, MIY2)then
begin
CloseBank;
GameTab(Tab_Magic);
Mouse(696, 229, 4, 4, True);
Wait(1500 + random(100));
MMouse(487, 131, 3, 3);
Wait(300 + random(100));
GetMousePos(x, y)
HoldMouse(x, y, mouse_left);
MMouse(485, 282, 5, 5);
Wait(300 + random(100));
GetMousePos(x, y);
ReleaseMouse(x, y, mouse_left);
Wait(300 + random(100));
Mouse(435, 140, 10, 10, True);
Wait(5500 + random(100));
end else
begin
FreeBitmap(Pouch);
FreeBitmap(CosmicRune);
FreeDTM(AirRune);
exit;
end;
if FindNPCChatText('ello', Nothing)then
begin
ClickContinue(True, True);
ChatWait;
ClickContinue(True, True);
ChatWait;
ClickContinue(True, True);
ChatWait;
ClickContinue(True, True);
ChatWait;
ClickContinue(True, True);
ChatWait;
ClickContinue(True, True);
ChatWait;
Wait(500 + random(100));
end;
if FindNPCChatText('pouches', ClickLeft)then
begin
Wait(500 + random(100));
ClickContinue(True, True);
ChatWait;
ClickContinue(True, True);
end;
FreeBitmap(Pouch);
OpenBankBooth;
FreeDTM(AirRune);
FreeBitmap(CosmicRune);
end;
procedure Spell;
var
x, y, CosmicRune, Pouch: integer;
begin
Pouch := BitmapFromString(8, 8, 'meJyztHOytHMyt7YHIiMzKwMTCz1D' +
'U00dfUuwOETKxNIWIq6tbwQXByKgOFALRNzawQVZPcQoiDhEClkcq' +
'AWrejLEAQsPKpE=');
CosmicRune := BitmapFromString(17, 11, 'meJx90uEKgjAUBeBH8aEKExGRIS' +
'JmmomZFiImycqMoicLep8OjC5jWnD+uO3Du6Pa6619k2y2abrLsjL' +
'PD0VRlftak3aPLUc4v8mLIrJStpqmO1/uY0KZVJMkXmc0obJV16e+' +
'f8grQRCHYRJFKZSA/4nnLX1/BUVQOY82QIbhadtMrLiujxCE+kUsy' +
'8Gj47gIYx4p5TzuhSrQGAYzTRsBxOtIjTshgu+i66ZhWLKaLBwFon' +
'MM1nXX2XwxVvKEuBTaE6SqWvwAH/YIHxg=');
if FindBitmapToleranceIn(Pouch, x, y, MIX1, MIY1, MIX2, MIY2, 15)then
begin
MMouse(x, y, 5, 5);
Slot := CoordsToItem(x, y);
Wait(500 + random(100));
WriteLn('Broken pouch in slot ' + IntToStr(Slot));
end else
begin
FreeBitmap(Pouch);
FreeBitmap(CosmicRune);
Exit;
end;
if FindBitmapToleranceIn(CosmicRune, x, y, MSX1, MSY1, MSX2, MSY2, 15)then
begin
Mouse(x, y, 5, 5, True);
Wait(250 + random(100));
CloseBank;
end else
begin
FreeBitmap(Pouch);
FreeBitmap(CosmicRune);
Exit;
end;
begin
Wait(250 + random(100));
GameTab(tab_Magic);
Wait(250 + random(100));
MMouse(600, 320, 5, 5);
Wait(250 + random(50));
end;
if IsUpText('epair')then
begin
ClickMouse2(True);
Wait(250 + random(100));
MouseItem(Slot, Mouse_Left);
end else
begin
FreeBitmap(Pouch);
FreeBitmap(CosmicRune);
Exit;
end;
Wait(1000 + random(100));
OpenBankBooth;
FreeBitmap(CosmicRune);
FreeBitmap(Pouch);
end;
procedure RepairPouches;
begin
if not(BankScreen)then
begin
Exit;
end;
Case Lowercase(Method) of
'repairspell':
begin
Spell;
end;
'contact':
begin
NPCContact;
end;
end;
end;
procedure WithdrawEss;
var
x, y, PureEssBank, Tried: integer;
A: extended;
begin
PureEssBank := 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);
OpenBankBooth;
end;
until (BankScreen) or (Tried > 15);
begin
if FindDeformedBitmapToleranceIn(PureEssBank, x, y, MSX1, MSY1, MSX2, MSY2, 20, 0, false, A)then
Mouse(x, y, 5, 5, False);
WaitOption('All P', 5 + random(5));
FreeBitmap(PureEssBank);
end;
end;
procedure FillPouches;
var
Tried: integer;
begin
repeat
Inc(Tried);
Wait(25 + random (10));
FindNormalRandoms;
until (BankScreen) or (Tried > 100);
if (BankScreen)then
begin
begin
if not (SP = 0)then
begin
WithdrawEss;
MouseItem(SP, mouse_right);
WaitOption('Fill', 5 + random(5));
end;
end;
begin
if not (MP = 0)then
begin
MouseItem(MP, mouse_right);
WaitOption('Fill', 5 + random(5));
end;
end;
begin
if not (LP = 0)then
begin
MouseItem(LP, mouse_right);
WaitOption('Fill', 5 + random(5));
end;
end;
begin
if not (GP = 0)then
begin
WithdrawEss;
MouseItem(GP, mouse_right);
WaitOption('Fill', 5 + random(5));
end;
end;
WithdrawEss;
end else exit;
end;
procedure RunToAltar;
begin
if (SP = 0) and (MP = 0) and (LP = 0) and (GP = 0)then
begin
SPS_WalkPath(RunToAltarPath);
AntiBan;
Wait(1500 + random(100));
end else;
begin
if (InvCount > 9)then
SPS_WalkPath(RunToAltarPath);
AntiBan;
Flag;
end;
end;
procedure CraftRunes;
var
x, y, Altar, WaitCount, TimesFailed: integer;
begin
if not (InvCount = 28)then
begin
exit;
end;
Altar := DTMFromString('mKgEAAHic42NgYOAGYi0gNgNiISA2AGIVIBZkgABGIJYCYkkgVgNiJSAWBmI5IOaC8i2A2ASIbaF6QPLKQCwPZYP0a0LxpEk9DHV1FQwtzXUMU6b0MrS2NoDFmppqGPr6OsDs5oZWMI2M+YB6CWF+LGKMZGJUAAAWjxrO');
if not FindDTM(Altar, x, y, MSX1, MSY1, MSX2, MSY2)then
begin
while (IsMoving) do (WaitNone);
end;
begin
if FindDTM(Altar, x, y, MSX1, MSY1, MSX2, MSY2)then
begin
repeat
if FindDTM(Altar, x, y, MSX1, MSY1, MSX2, MSY2)then
begin
Stuck := 0;
Inc(TimesFailed);
Mouse(x-25, y, 10, 10, True);
end;
until (DidRedClick) or (TimesFailed > 5);
repeat
Wait(1700 + random(100));
FindNormalRandoms;
Inc(WaitCount);
until (InvCount < 10) or (WaitCount > 10);
end;
end;
begin
if not (SP = 0)then
begin
MouseItem(SP, mouse_left);
end;
end;
begin
if not (MP = 0)then
begin
MouseItem(MP, mouse_left);
end;
end;
begin
if not (LP = 0)then
begin
MouseItem(LP, mouse_left);
end;
end;
begin
if not (GP = 0)then
begin
if FindDTM(Altar, x, y, MSX1, MSY1, MSX2, MSY2)then
begin
Mouse(x, y, 10, 10, True);
end;
Wait(1900 + random(50));
MouseItem(GP, mouse_left);
end;
end;
if FindDTM(Altar, x, y, MSX1, MSY1, MSX2, MSY2)then
begin
Mouse(x, y, 10, 10, True);
Wait(2000 + random(100));
AntiBan;
end;
FreeDTM(Altar);
end;
procedure Teleport;
var
WaitCount: integer;
begin
repeat
Inc(WaitCount);
FindNormalRandoms;
Wait(50 + random(25));
until (InvCount < 10) or (WaitCount > 20);
begin
Inc(Stuck);
FTab(28);
Mouse(663, 259, 3, 3, True);
Inc(TeleNumber);
FTab(25);
AntiBan;
Wait(3500 + random(100));
if FindBlackChatMessage('nes to')then
begin
WriteLn('No law runes, logging out');
Logout;
TerminateScript;
end;
end;
end;
procedure Report;
var
MageExp, RCExp, RunesCrafted, RunesHr, RCExpHr, MageExpHr, TimeRan: integer;
begin
TimeRan := (1+((GetSystemTime - TimeBegan) / 1000));
RCExp := ((GetXPBarTotal - StartingXP) - (TeleNumber * 67));
MageExp := (TeleNumber * 67);
RCExpHr := Round((RCExp * 3600) / (TimeRan));
MageExpHr := Round((MageExp * 3600) / (TimeRan));
RunesCrafted := Round(RCExp / 8.7);
RunesHr := Round(RCExpHr / 8.7);
WriteLn('*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn('*RyGuys Astral Runecrafter Report');
WriteLn('*Time: ' + TimeRunning);
WriteLn('*We have gained ' + IntToStr(MageExp) + ' Magic Experience! (' + IntToStr(MageExpHr) + ' per Hour)');
WriteLn('*We have gained ' + IntToStr(RCExp) + ' Runecrafting Experience! (' + IntToStr(RCExpHr) + ' per Hour)');
WriteLn('*We have crafted ' + IntToStr(RunesCrafted) + ' Pure Ess! (' + IntToStr(RunesHr) + ' per Hour)');
WriteLn('*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;
function CurrentHP: integer;
var
s: string;
begin
Result := GetMMLevels('health', s);
end;
begin
Smart_Server := 86;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetUpSRL;
ActivateClient;
DeclarePlayers;
LoginPlayer;
ToggleXPBar(True);
StartingXP := (GetXPBarTotal);
SPS_Setup(RUNESCAPE_SURFACE, ['0_2']);
RunToAltarPath := [Point(284, 972), Point(284, 1026), Point(297, 1072), Point(331, 1104), Point(363, 1138), Point(380, 1183), Point(422, 1173), Point(463, 1176)];
ClickNorth(SRL_ANGLE_HIGH);
TimeBegan := GetSystemTime;
repeat
if not (LoggedIn)then
begin
TerminateScript;
end;
RunToBank;
OpenBankBooth;
RepairPouches;
FillPouches;
RunToAltar;
CraftRunes;
Teleport;
Report;
if (Stuck > 4) then
begin
Logout;
TerminateScript;
end;
if (FindNormalRandoms) then
begin
ClickNorth(SRL_ANGLE_HIGH);
end;
if (CurrentHP < 150)then (Logout);
until(AllPlayersInactive);
end.Ape Atoll Agility Runner
program ApeAtoll;
//////////////////////////WRITTEN BY RYGUY//////////////////////////////
////////////////////////////VERSION 1.4////////////////////////////////
{$DEFINE SMART}
{$DEFINE SRL5}
{$i SRL/srl.simba}
var
x, y, Stone, Tree1, Bars, Fell, Slope, TopOfSlope,
ToSwingMM, Swing, Tree2, BottomOfSwing, ToStoneMM,
TimeBegan, StartingXP, TimesFailed, PickIt, CutIt,
EatIt, FromPineapple, Stone2, Tree2two: integer;
aFound: extended;
///////////////////////////PLAYER SETUP//////////////////////////////////
const
EatAt = 100; //HP to eat at. Set to 0 to disable.
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active:=True;
end;
////////////////////DO NOT TOUCH BELOW THIS LINE/////////////////////////
procedure SetDTMs;
begin
Stone := DTMFromString('mwQAAAHic42RgYNBmhGB9INYCYnUgFgNiNSC2AWIdoJptQLwZiHcA8S4o/zAQnwLiM0BcC8QpUToMaTG6DBlxegyhPmpg3NC7iqG2eyVD66S1DHkZhgxcQHXoWAQNA61kYCKA4QAAp4oTFA==');
Stone2 := DTMFromString('mrAAAAHic42BgYNBkZGDQBWJVIJYCYmUg1gdiSxANlN8CxDuAeCsQ7wXiY0B8AogPA3EFEIuJiTNEB2mCcUXbEoaGvjUM1V1LGZr7VjEUZBkxcAHVwLAIFgy0hoEJD4YBAO33EVM=');
Tree1 := DTMFromString('mggAAAHicY2NgYJBkgABFIFYFYjkoWxyIOaFyIDXyQCwAxFmh+gyvPnxnCHVQZegttGPICzZgiHJWZ+ABymHDjDgwBAAAebwIxQ==');
Bars := DTMFromString('mggAAAHicY2NgYNBgZGBwBGIpKOYEYlkgjgfKpQNxGhA3MUD4ukDcUeTL4GWnxRDsps/g56TDUNE6nyEqTo6BCyiHjEWgGGgUAzMWDAEAytEJWQ==');
Fell := DTMFromString('mggAAAHicY2NgYMhmYmBoA2I/IM4C4iQgrgDiaUC5SUBcA8T1QFwNxJVAHGXIzqAcIcjgaSXI0DFxFhxzAeVgmB8JMwIxExYMAQALBAzO');
Slope := DTMFromString('m6wAAAHic42ZgYChmgIByIC4E4jIonQPEc4B4AhB3AHEtEMsBcSoQm0D1qAKxBBArAbEwEPMCsTgQC4HMyTJhqOtZyeBlr8AQ46fBEBMtw5CRrsCQlCjHkJNkwJARpwdWU5FjysADVC8CxPxImAcHZgRiViBmQsIsODASAABpuxIH');
TopOfSlope := DTMFromString('mbQAAAHicY2VgYAhnZGBIB+JqIO4G4ttAXAAUzwTiFCCOB2JfIA7wsmWIDnVjCPF3BOPkMlUGVqA4MuYHYhY0DDQOAgCYLAla');
ToSwingMM := DTMFromString('mQwAAAHicY2ZgYOBjgAAYzQXEHEDc0DWTQSFMjCE2tYiBB8iHYUYkDAQAgskDvA==');
Swing := DTMFromString('mlwAAAHicY2dgYLgPxJeh+AoU7wHixYwMDM1AejYQLwPirUC8H4jjofJZtaYMy1o9GCbm2jPMKnZmmF/vylDTtYzBP1GLgQsoj45FoJgRBwapgQIAl20TVw==');
Tree2 := DTMFromString('mrAAAAHic42BgYHgDxC+A+C0QnwHiY0C8CYg/APFHIJZmZGAQB2IlIOYA4rtAsctArAtkWwHx7Fo3hroES4aGREsGz0gxhsBkMYagVDGGpCR5hoRobQYuoFoY5sGCGZEwMxJmgmIYAAAd/hF5');
Tree2two := DTMFromString('mrAAAAHic42BgYGBkZGBgAmJ+RghbHIhfA8XfAnEIEF8H4nNA/JABIn4LiK8B8XOoWLyPFoOflRJDfLwsQ2SIOkNSoiyDkRo/GNuaSDHwA9Xgw4xQzISEmZEwDAAAsGkPPQ==');
BottomOfSwing := DTMFromString('mggAAAHicY2NgYAhkYmBIBeIgII4H4glAvBiIVYByGkBsAsRdQGwExNZA3NYzDQX72MszpIZoMfAD5bBhRiTMgoQhAAD5kAy6');
ToStoneMM := DTMFromString('mWAAAAHicY2FgYNjExMCwBIhXAPE0IDYFipkBsQoQmwNxTXMfQ1q4PoNpkgRDiIc6Az9QDBkzomEQAAC7JweS');
PickIt := DTMFromString('mbQAAAHicY2VgYJAGYjkobQnEdkB8B4hvAvEDIP4JxMeAWHSCBMP3RSoM+2ulGYratRiaJ+ky8APF0TEjFgwGAALkC6s=');
CutIt := DTMFromString('mggAAAHicY2NgYMhmYmAoY4LQiUCcDMRFQMzFyMDAA8TiUPoXUO1vIN7RJg0kmTAwF5DEhhmxqoYBAF1YBnE=');
EatIt := DTMFromString('mggAAAHicY2NgYMhlYmDIAuIyIM4G4iQgzgDiJ0C5u0D8EIjfMED4zxlAgAkD758hzcAFZGHDjFh1wAAAeO0JsQ==');
FromPineapple := DTMFromString('mggAAAHicY2NgYGhhZGBoAOJaIO4A4j4gbgbi+UC5GUC8BoinA/EcIN4AxFY6Qgy9U/QY9FT4GLytxBnK4k0Z/OyUGLiAcuiYH4gZoZgJCbMywAAAAMcLtg==');
end;
procedure FreeDTMs;
begin
FreeDTM(Stone);
FreeDTM(Stone2);
FreeDTM(Tree1);
FreeDTM(Bars);
FreeDTM(Fell);
FreeDTM(Slope);
FreeDTM(TopOfSlope);
FreeDTM(ToSwingMM);
FreeDTM(Swing);
FreeDTM(Tree2);
FreeDTM(Tree2two);
FreeDTM(BottomOfSwing);
FreeDTM(ToStoneMM);
FreeDTM(PickIt);
FreeDTM(CutIt);
FreeDTM(EatIt);
FreeDTM(FromPineapple);
end;
procedure Report;
var
Exp, ExpHr, TimeRan: integer;
begin
TimeRan := (1+((GetSystemTime - TimeBegan) / 1000));
Exp := (GetXPBarTotal - StartingXP);
ExpHr := Round((Exp * 3600) / (TimeRan));
WriteLn('*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn('*RyGuys Ape Atoll Agility Runner Report');
WriteLn('*Time: ' + TimeRunning);
WriteLn('*We have gained ' + IntToStr(Exp) + ' Agility Experience!');
WriteLn('*We are gaining ' + IntToStr(ExpHr) + ' Agility Experience per Hour!');
WriteLn('*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;
procedure AntiBan;
begin
if not(LoggedIn)then
Exit;
case Random(175)of
0: HoverSkill('Agility', false);
1: PickUpMouse;
2: RandomMovement;
3: RandomRClick;
end;
end;
procedure HumanMMouse(eX, eY, ranX, ranY: Integer);
var
randSpeed: extended;
X,Y,X2,Y2,A,Dist,MP: integer;
begin
A := MouseSpeed;
GetMousePos(X, Y);
Dist := Distance(X, Y, eX, eY);
MP := Round(Dist/150);
if MP < 0 then
MP := 1;
randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
X2 := RandomRange(eX-(A*MP), eX+(A*MP));
Y2 := RandomRange(eY-(A*MP), eY+(A*MP));
WindMouse(X, Y, X2, Y2, 11, 8, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
GetMousePos(X, Y);
MMouse(eX, eY, ranX, ranY);
MouseSpeed := A;
end;
procedure SteppingStone;
begin
if FindDTMRotated(Stone, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) or FindDTMRotated(Stone2, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
HumanMMouse(x, y, 5, 5);
Wait(150 + random(50));
if IsUpText('stone')then
begin
ClickMouse2(True);
Wait(4375 + random(100));
AntiBan;
end;
end;
end;
procedure UpTree;
begin
if FindDTMRotated(Tree1, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
Mouse(x, y, 5, 5, True);
Wait(4375 + random(100));
AntiBan;
end;
procedure MonkeyBars;
var
BarCount: integer;
begin
repeat
Inc(BarCount);
if FindDTMRotated(Bars, x, y, 180, 0, 420, 340, -Pi, Pi, Pi/30, aFound)then
HumanMMouse(x, y, 2, 2);
Wait(150 + random(50));
until IsUpText('wing') or (BarCount > 15);
if IsUpText('wing')then
begin
ClickMouse2(True);
Wait(6675 + random(100));
AntiBan;
end;
end;
procedure SkullSlope;
var
SlopeCount: integer;
begin
repeat
Inc(SlopeCount);
x := MSCX;
y := MSCY;
if FindColorSpiralTolerance(x, y, 3435383, MSX1, MSY1, MSX2, MSY2, 4)then
HumanMMouse(x, y, 0, 0);
Wait(randomrange (25, 50));
until IsUpText('slope') or (SlopeCount > 30);
if IsUpText('slope')then
begin
ClickMouse2(True);
Wait(100 + random(50));
HumanMMouse(580, 45, 10, 10);
Wait(800 + random(100));
AntiBan;
While IsMoving do WaitNone;
end;
end;
procedure RunToSwing;
begin
if FindDTMRotated(ToSwingMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, Pi/30, aFound)then
Mouse(x, y, 5, 5, True);
Wait(1000 + random(100));
AntiBan;
Flag;
Wait(1500 + random(100));
end;
procedure OverWater;
begin
if FindDTMRotated(Swing, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
HumanMMouse(x, y, 5, 5);
Wait(150 + random(50));
if (IsUpText('Rope'))then
begin
ClickMouse2(True);
Wait(100 + random(50));
AntiBan;
Wait(3300 + random(100));
end;
end;
end;
procedure DownTree;
var
tried: integer;
begin
if FindDTMRotated(Tree2, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) or FindDTMRotated(Tree2two, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
repeat
Inc(Tried);
HumanMMouse(x, y, 5, 5);
Wait(150 + random(50));
if (IsUpText('tree'))then
begin
ClickMouse2(True);
Wait(100 + random(50));
HumanMMouse(685, 55, 10, 10);
AntiBan;
TimesFailed := 0;
Wait(10850 + random(100));
end;
until FindDTMRotated(ToStoneMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, Pi/30, aFound) or (Tried > 5);
end;
end;
procedure BackToStart;
begin
if FindDTMRotated(ToStoneMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, Pi/30, aFound)then
begin
Mouse(x, y, 5, 5, True);
Wait(100 + random(50));
HumanMMouse(295, 180, 25, 25);
Wait(1000 + random(100));
Report;
AntiBan;
Flag;
end;
end;
procedure GetPineapple;
begin
begin
Wait(400 + random(50));
if FindDTM(PickIt, x, y, MSX1, MSY1, MSX2, MSY2)then
Mouse(x, y, 5, 5, True);
Wait(2000 + random(100));
end;
begin
if FindDTM(CutIt, x, y, MIX1, MIY1, MIX2, MIY2)then
Mouse(x, y, 5, 5, False);
WaitOption('lice', 300);
Wait(400 + random(50));
Mouse(190, 430, 20, 20, True);
Wait(300 + random(50));
end;
begin
if FindDTMRotated(FromPineapple, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
Mouse(x, y, 4, 4, True);
Wait(1750 + random(100));
end;
end;
function CurrentHP:integer;
var
s: string;
begin
Result := GetMMLevels('health', s);
end;
procedure WhereAreWe;
var
x, y: integer;
begin
WriteLn('Failed ' + IntToStr(TimesFailed) + ' Times');
Inc(TimesFailed);
if FindDTMRotated(Stone, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) or FindDTMRotated(Stone2, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
WriteLn('Found Stone');
SteppingStone;
end;
if FindDTMRotated(Tree1, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
WriteLn('Found Tree1');
UpTree;
end;
if FindDTMRotated(Bars, x, y, 180, 0, 420, 340, -Pi, Pi, Pi/30, aFound)then
begin
WriteLn('Found Bars');
MonkeyBars;
end;
if FindDTMRotated(Slope, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
WriteLn('Found Slope');
SkullSlope;
end;
if FindDTMRotated(TopOfSlope, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
WriteLn('Found Top');
RunToSwing;
end;
if FindDTMRotated(Swing, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
WriteLn('Found Swing');
OverWater;
end;
if FindDTMRotated(Tree2, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) or FindDTMRotated(Tree2two, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
WriteLn('Found Tree 2');
DownTree;
end;
if (CurrentHP < 300) and (InvCount < 15)then
begin
WriteLn('Getting a Pineapple for later use');
GetPineapple;
end;
if FindDTMRotated(BottomOfSwing, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, Pi/30, aFound)then
begin
WriteLn('Found Bottom');
BackToStart;
end;
if FindDTMRotated(Fell, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, Pi/30, aFound)then
begin
WriteLn('Think you fell.. trying to go back to the stone')
BackToStart;
end;
if TimesFailed > 15 then
begin
WriteLn('We are probably stuck. Logging out to be safe.');
Logout;
TerminateScript;
end;
end;
begin
Smart_Server := 86;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetUpSRL;
ActivateClient;
DeclarePlayers;
LoginPlayer;
TimeBegan := GetSystemTime;
ToggleXPBar(True);
StartingXP := (GetXPBarTotal);
repeat
SetAngle(SRL_ANGLE_HIGH);
MakeCompass('S');
SetDTMs;
if (CurrentHP < 30)then logout;
if (CurrentHP < EatAt)then
repeat
begin
FindDTM(EatIt, x, y, MIX1, MIY1, MIX2, MIY2);
Mouse(x, y, 5, 5, True);
end;
until (CurrentHP > EatAt);
WhereAreWe;
FreeDTMs;
until(AllPlayersInactive);
end.Edgeville Gold Smelter / Bracelet Crafter
program EdgevilleGoldSmither;
//////////////////////////WRITTEN BY RYGUY//////////////////////////////
////////////////////////////VERSION 1.3/////////////////////////////////
{$DEFINE SMART}
{$i SRL/srl.simba}
var
TimeBegan, StartingXP, Stuck: integer;
aFound: extended;
Const
///////////////////////////PLAYER SETUP//////////////////////////////////
// Smith for Gold Ore --> Gold Bars
Method = 'smith'; // Craft for Gold Bars --> Gold Bracelets
// SmithAndCraft for Gold Ore --> Bracelets
// Gold ore MUST be in first bank slot! (top left) (for smith and smithandcraft)
// Gold bars MUST be in second bank slot! (for craft)
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Pin := '';
Players[0].Nick := '';
Players[0].Active:=True;
end;
////////////////////DO NOT TOUCH BELOW THIS LINE/////////////////////////
procedure AntiBan;
begin
FindNormalRandoms;
if not(LoggedIn)then
begin
Exit;
end;
case Random(80) of
0: RandomRClick;
1: HoverSkill('Smithing', false);
2: PickUpMouse;
3: RandomMovement;
4: HoverSkill('Smithing', false);
5: ExamineInv;
6: RandomRClick;
7: PickUpMouse;
8: RandomMovement;
9: BoredHuman;
end;
end;
function SmithScreen: Boolean;
var
x, y: integer;
begin
if FindText(x, y, 'What would you like to make?', UpCharsEx, 150, 30, 360, 55)then
begin
Result := True;
end else
begin
Result := False;
end;
end;
procedure RunToBank;
var
x, y, WalkToBank, Bank, Tried: integer;
begin
Bank := DTMFromString('m6wAAAHic42ZgYFAD4kgGCNAAYiYg9gRieyAWQKLnATELAypgA2J2IOYAYlYgZoRikDpfT2uGD2/OM1y9uJ3hxdMTYD4ybu/qBWM3DwUGEaB6OSQsgoaRxUHmM0MxE5KdMMwExayoTgUA2PATHg==');
FindNormalRandoms;
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
if FindDTMRotated(Bank, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
FindNormalRandoms;
Mouse(x, y, 10, 10, True);
Flag;
Wait(1000 + random(100));
Inc(Tried);
end;
until (BankScreen) or (PinScreen) or (Tried > 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
WalkToBank := DTMFromString('mrAAAAHic42BgYGAFYjUgVgBiNigfBliAWAaIdYFYHiqmCcVKULFAH3sG72IzBqVIITBOjvZleP+XE47/A9XIIWENND4jEDPhwTAAAHpLDRw=');
begin
if FindDTMRotated(WalkToBank, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, Pi/30, aFound)then
begin
Mouse(x, y, 2, 2, True);
MakeCompass('N');
SetAngle(SRL_ANGLE_HIGH);
Wait(1000 + random(50));
while (IsMoving) do (WaitNone);
end;
end;
FreeDTM(WalkToBank);
end else exit;
FreeDTM(Bank);
FindNormalRandoms;
end;
procedure OpenBankBooth;
var
x, y, Bank, Tried: integer;
begin
Bank := DTMFromString('m6wAAAHic42ZgYFAD4kgGCNAAYiYg9gRieyAWQKLnATELAypgA2J2IOYAYlYgZoRikDpfT2uGD2/OM1y9uJ3hxdMTYD4ybu/qBWM3DwUGEaB6OSQsgoaRxUHmM0MxE5KdMMwExayoTgUA2PATHg==');
if (BankScreen)then
begin
FreeDTM(Bank);
Exit;
end;
begin
repeat
Inc(Tried);
Wait(150 + random(100));
x := MSCX;
y := MSCY;
if FindDTMRotated(Bank, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
Mouse(x, y, 10, 10, True);
Flag;
Wait(1000 + random(100));
FindNormalRandoms;
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 Banking;
var
Tried, Tried2: integer;
begin
if not(BankScreen)then
begin
Exit;
end;
DepositAll;
repeat
Inc(Tried);
Wait(20);
if (FindNormalRandoms)then
begin
ClickNorth(SRL_ANGLE_HIGH);
OpenBankBooth;
end;
until (BankScreen) or (Tried > 15);
case Lowercase(Method) of
'smith':
begin
repeat
Inc(Tried2);
if(BankScreen) then
begin
Withdraw(0, 0, 28);
Wait(800 + random(50));
FindNormalRandoms;
end;
until (InvCount = 28) or (Tried2 > 2);
if(Tried2 > 2)then
begin
WriteLn('Failed to find Gold')
Logout;
TerminateScript;
end;
end;
'smithandcraft':
begin
repeat
Inc(Tried2);
if(BankScreen)then
begin
Withdraw(0, 0, 28);
Wait(800 + random(50));
FindNormalRandoms;
end;
until (InvCount = 28) or (Tried2 > 2);
if(Tried2 > 2)then
begin
WriteLn('Failed to find Gold')
Logout;
TerminateScript;
end;
end;
'craft':
begin
repeat
Inc(Tried2);
if(BankScreen)then
begin
Withdraw(1, 0, 28);
Wait(800 + random(50));
FindNormalRandoms;
end;
until (InvCount = 28) or (Tried2 > 2);
if(Tried2 > 2)then
begin
WriteLn('Failed to find Gold')
Logout;
TerminateScript;
end;
end;
end;
end;
procedure RunToFurnace;
var
x, y, WalkToFurnace: integer;
begin
WalkToFurnace := DTMFromString('mlwAAAHicY2dgYDABYh0g5gZieSA2BWIlBgiQhtJcQGwExK5A7ATEQkD84cF9hsAALzA2ThBmaOudxuBTYMygHMbP8B8oL4eENZDYjEiYCQ1DAQDhRgvs');
if not(InvCount = 28)then
begin
FreeDTM(WalkToFurnace);
Exit;
end;
if(InvCount = 28)then
begin
if FindDTMRotated(WalkToFurnace, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, Pi/30, aFound)then
begin
Mouse(x, y, 0, 0, True);
Wait(1000 + random(100));
FindNormalRandoms;
while (IsMoving) do (WaitNone);
end;
end;
FreeDTM(WalkToFurnace);
end;
function BarsInInv: Boolean;
var
x, y, GoldBar: integer;
begin
GoldBar := DTMFromString('mlwAAAHicY2dgYHBiYmCwB2J3IHYFYmcgDgRiEyB+AJR/BsSPgfgWEH8A4odA/AKIFzWIMcR48jJcWi4L5DGhYBEgCcOsaJgRD4YCAN+0DAY=');
if FindDTMRotated(GoldBar, x, y, MIX1, MIY1, MIX2, MIY2, -Pi, Pi, Pi/30, aFound)then
begin
Result := True;
end;
FreeDTM(GoldBar);
FindNormalRandoms;
end;
function GoldInInv: Boolean;
var
x, y, GoldOre: integer;
begin
GoldOre := DTMFromString('mQwAAAHicY2ZgYDjMyMCwH4h3AnEOkF8KxHlAvKlXgiHaw4gh1suYQRLIh2FGJAwEADOOBuU=');
if FindDTMRotated(GoldOre, x, y, MIX1, MIY1, MIX2, MIY2, -Pi, Pi, Pi/30, aFound)then
begin
Result := True;
end else
begin
Result := False;
end;
FreeDTM(GoldOre);
FindNormalRandoms;
end;
function IsCrafting: Boolean;
var
GoldBracelet, T1, T2: integer;
begin
GoldBracelet := DTMFromString('mbQAAAHicY2VgYGAFYm4GCOACYnaoGCNUjB0qfmGLLJBkYji1ToZhU58kw7w6MQY5oAg6ZsSCwQAAbswGmw==');
T1 := CountItems('dtm', GoldBracelet, []);
Wait(4000 + random(500));
T2 := CountItems('dtm', GoldBracelet, []);
if (T2 > T1)then
begin
Result := True;
end else
begin
Result := False;
end;
FreeDTM(GoldBracelet);
end;
function IsSmithing: Boolean;
var
GoldBar, T1, T2: integer;
begin
GoldBar := DTMFromString('mlwAAAHicY2dgYHBiYmCwB2J3IHYFYmcgDgRiEyB+AJR/BsSPgfgWEH8A4odA/AKIFzWIMcR48jJcWi4L5DGhYBEgCcOsaJgRD4YCAN+0DAY=');
T1 := CountItems('dtm', GoldBar, []);
Wait(4000 + random(500));
T2 := CountItems('dtm', GoldBar, []);
if (T2 > T1)then
begin
Result := True;
end else
begin
Result := False;
end;
FreeDTM(GoldBar);
end;
procedure Smithing;
var
x, y, Furnace, GoldBar, NumOfBars, Count: integer;
label
Start;
begin
Start:
Furnace := DTMFromString('mlwAAAHicY2dgYDBhZGBwAGJ7KO0NxAFAHAHEMxgguAmIVwPxdCCeAsTzgDgtKYKhV1aYwdragsHAQI+hUwbCnikvymAElMeFgcYyMOHAUAAAq60M0g==');
GoldBar := DTMFromString('mlwAAAHicY2dgYHBiYmCwB2J3IHYFYmcgDgRiEyB+AJR/BsSPgfgWEH8A4odA/AKIFzWIMcR48jJcWi4L5DGhYBEgCcOsaJgRD4YCAN+0DAY=');
if (GoldInInv)then
begin
if FindDTMRotated(Furnace, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
Mouse(x, y, 15, 15, True);
Flag;
Wait(500 + random(100));
Mouse(260, 430, 10, 10, True);
FindNormalRandoms;
end;
end else
begin
FreeDTM(Furnace);
FreeDTM(GoldBar);
Exit;
end;
if (IsSmithing)then
begin
repeat
begin
Stuck := 0;
AntiBan;
Wait(2500 + random(1000));
NumOfBars := CountItems('dtm', GoldBar, []);
FindNormalRandoms;
end;
until (NumOfBars = 28) or not FindDTMRotated(Furnace, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound);
end else
begin
RunToFurnace;
FreeDTM(GoldBar);
FreeDTM(Furnace);
Inc(Count);
if(Count > 3)then
begin
Exit;
end;
goto Start;
end;
FreeDTM(GoldBar);
FreeDTM(Furnace);
FindNormalRandoms;
end;
procedure Crafting;
var
x, y, GoldBracelet, Furnace, GoldBar, NumOfBracelets, Stuck, Count: integer;
label
Start;
begin
Start:
Furnace := DTMFromString('mlwAAAHicY2dgYDBhZGBwAGJ7KO0NxAFAHAHEMxgguAmIVwPxdCCeAsTzgDgtKYKhV1aYwdragsHAQI+hUwbCnikvymAElMeFgcYyMOHAUAAAq60M0g==');
GoldBracelet := DTMFromString('mbQAAAHicY2VgYGAFYm4GCOACYnaoGCNUjB0qfmGLLJBkYji1ToZhU58kw7w6MQY5oAg6ZsSCwQAAbswGmw==');
GoldBar := DTMFromString('mlwAAAHicY2dgYHBiYmCwB2J3IHYFYmcgDgRiEyB+AJR/BsSPgfgWEH8A4odA/AKIFzWIMcR48jJcWi4L5DGhYBEgCcOsaJgRD4YCAN+0DAY=');
FindNormalRandoms;
if(BarsInInv) then
begin
if FindDTMRotated(Furnace, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
if FindDTMRotated(GoldBar, x, y, MIX1, MIY1, MIX2, MIY2, -Pi, Pi, Pi/30, aFound)then
begin
Mouse(x, y, 5, 5, True);
Wait(650 + random(150));
FindNormalRandoms;
end else
begin
WriteLn('Failed to find the bars, exiting');
FreeDTM(GoldBracelet);
FreeDTM(GoldBar);
FreeDTM(Furnace);
Exit;
end;
if FindDTMRotated(Furnace, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound)then
begin
Mouse(x, y, 15, 15, true);
while(IsMoving) do (WaitNone);
Wait(1000 + random(100));
FindNormalRandoms;
end else
begin
WriteLn('Failed to find furnace, exiting');
FreeDTM(GoldBracelet);
FreeDTM(GoldBar);
FreeDTM(Furnace);
Exit;
end;
if(SmithScreen)then
begin
Mouse(130, 290, 5, 5, false);
WaitOption('All', 150 + random(50));
FindNormalRandoms;
end;
if (IsCrafting)then
begin
repeat
begin
Stuck := 0;
AntiBan;
Wait(2500 + random(1000));
NumOfBracelets := CountItems('dtm', GoldBracelet, []);
FindNormalRandoms;
end;
until (NumOfBracelets = 28) or not FindDTMROTated(Furnace, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound);
end else
begin
RunToFurnace;
FreeDTM(GoldBracelet);
FreeDTM(Furnace);
FreeDTM(GoldBar);
Inc(Count);
if(Count > 3)then
begin
Exit;
end;
goto Start;
end;
end;
end;
FreeDTM(GoldBracelet);
FreeDTM(GoldBar);
FreeDTM(Furnace);
FindNormalRandoms;
end;
procedure WhatMethod;
begin
case Lowercase(Method) of
'smith':
begin
Smithing;
end;
'smithandcraft':
begin
Smithing;
Crafting;
end;
'craft':
begin
Crafting;
end;
end;
end;
procedure Report;
var
SmithExp, SmithExpHr, CraftExp, CraftExpHr, TimeRan, BarsSmithed, BarsSmithedHr, BraceletsCrafted, BraceletsCraftedHr: integer;
begin
case Lowercase(Method) of
'smith':
begin
TimeRan := (1+((GetSystemTime - TimeBegan) / 1000));
SmithExp := (GetXPBarTotal - StartingXP);
SmithExpHr := Round((SmithExp * 3600) / (TimeRan));
BarsSmithed := Round(SmithExp / 56.2);
BarsSmithedHr := Round(SmithExpHr / 56.2);
WriteLn('*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn('*RyGuys Edgeville Gold Smither Report');
WriteLn('*Time: ' + TimeRunning);
WriteLn('*We have gained ' + IntToStr(SmithExp) + ' Smithing Experience! (' + IntToStr(SmithExpHr) + ' per hour)');
WriteLn('*We have smithed ' + IntToStr(BarsSmithed) + ' Gold Bars! (' + IntToStr(BarsSmithedHr) + ' per hour)');
WriteLn('*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;
'smithandcraft':
begin
TimeRan := (1+((GetSystemTime - TimeBegan) / 1000));
BraceletsCrafted := Round((GetXPBarTotal - StartingXP) / 81.2);
SmithExp := Round(BraceletsCrafted * 56.2);
SmithExpHr := Round((SmithExp * 3600) / (TimeRan));
CraftExp := Round(BraceletsCrafted * 25);
CraftExpHr := Round((CraftExp * 3600) / (TimeRan));
BraceletsCraftedHr := Round((SmithExpHr + CraftExpHr) / 81.2);
WriteLn('*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn('*RyGuys Edgeville Gold Smither Report');
WriteLn('*Time: ' + TimeRunning);
WriteLn('*We have gained ' + IntToStr(SmithExp) + ' Smithing Experience! (' + IntToStr(SmithExpHr) + ' per hour)');
WriteLn('*We have gained ' + IntToStr(CraftExp) + ' Crafting Experience! (' + IntToStr(CraftExpHr) + ' per hour)');
WriteLn('*We have crafted ' + IntToStr(BraceletsCrafted) + ' Gold Bracelets! (' + IntToStr(BraceletsCraftedHr) + ' per hour)');
WriteLn('*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;
'craft': //81.2
begin
TimeRan := (1+((GetSystemTime - TimeBegan) / 1000));
CraftExp := (GetXPBarTotal - StartingXP);
CraftExpHr := Round((CraftExp * 3600) / (TimeRan));
BraceletsCrafted := Round(CraftExp / 25);
BraceletsCraftedHr := Round(CraftExpHr / 25);
WriteLn('*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn('*RyGuys Edgeville Gold Smither Report');
WriteLn('*Time: ' + TimeRunning);
WriteLn('*We have gained ' + IntToStr(CraftExp) + ' Craft Experience! (' + IntToStr(CraftExpHr) + ' per hour)');
WriteLn('*We have crafted ' + IntToStr(BraceletsCrafted) + ' Gold Bracelets! (' + IntToStr(BraceletsCraftedHr) + ' per hour)');
WriteLn('*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
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
if not (LoggedIn)then
begin
TerminateScript;
end;
Inc(Stuck);
RunToBank;
OpenBankBooth;
Banking;
RunToFurnace;
WhatMethod;
Report;
if (Stuck > 3)then
begin
WriteLn('We are stuck, logging out')
Logout;
TerminateScript;
end;
until(AllPlayersInactive);
end.