SRL Archive - Archive

RyGuy - SRL Member Application


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…
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.

mika

2012-03-03 18:37:43

You are so in man. Welcome to Srl members. Your gonna have a great tim.

PatDuffy

2012-03-03 18:46:14

I like your attitude a lot.

I didn't see any TPA's while looking through quickly…. :(

Going to hold my vote unless you show some knowledge of TPA's in an example or excerpt.

Sin

2012-03-03 18:48:32

That's the reason I voted no :$
Most members won't even look at you if you don't have TPA's in your script.

PatDuffy

2012-03-03 18:51:05

From: Sin
That's the reason I voted no :$
Most members won't even look at you if you don't have TPA's in your script.


Not true.

I look at attitude first, scripting second.

Mat

2012-03-03 18:51:15

Voted No due to one colour finding function.
Mostly use DTM if only using them.
Mat
E:His Attitude not sure haven't spoken to him, and not really seen him about. I will say his ape atol does work.

Sin

2012-03-03 18:54:01

From: PatDuffy
Not true.

I look at attitude first, scripting second.


Most I said :p

PatDuffy

2012-03-03 18:57:46

I feel that both of you voted no because you dislike him for releasing an Astral crafting script.

He has been extremely active, helpful, and seems to have a head on his shoulders. He used DTM's great, used Bitmaps in several ways, and his logic looks decent. He used DIFFERENT object finding techniques, you don't need to use color for EVERYTHING.

Pardon the rant, but both of you need to start thinking before commenting. You are both newer members and have been acting like you own the world. I like you both, but I don't favor anyone.

@RyGuy, if you could create a simple TPA procedure to detect literally anything, it's a yes from me.

Brandon

2012-03-03 19:03:42

I don't care about TPA's (Much).. Logic and neatness and attitude wins it for me.

For this:

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;

Should be:

while FindNPCChatText('ello', Nothing) do
begin
ClickToContinue;
Wait(1000);
end;

if FindNPCChatText('pouches', ClickLeft)then
begin
Wait(500 + random(100));
ClickContinue(True, True);
ChatWait;
ClickContinue(True, True);
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; //Explain??? =S What exactly is this supposed to do?

begin
if (InvCount > 9)then
SPS_WalkPath(RunToAltarPath);
AntiBan;
Flag;
end;

end;


There's a lot of begins and ends in places where they aren't needed.. Just one example:

begin
Result := True;
end else
begin
Result := False;
end;

Anyway TOOO many dtm's for my liking.. With all that being said. I won't vote so that it won't hurt you but just for knowledge sake, if I were to vote, it'd be a no.
But overall your doing pretty good. Thus I am confused and will not vote just yet. Maybe a little more can change my mind.

Mat

2012-03-03 19:07:38

From: ggzz


begin
Result := True;
end else
begin
Result := False;
end;
[/Siimba]

Siimba <3

Sin

2012-03-03 19:56:09

From: PatDuffy
I feel that both of you voted no because you dislike him for releasing an Astral crafting script.

He has been extremely active, helpful, and seems to have a head on his shoulders. He used DTM's great, used Bitmaps in several ways, and his logic looks decent. He used DIFFERENT object finding techniques, you don't need to use color for EVERYTHING.

Pardon the rant, but both of you need to start thinking before commenting. You are both newer members and have been acting like you own the world. I like you both, but I don't favor anyone.

@RyGuy, if you could create a simple TPA procedure to detect literally anything, it's a yes from me.


Not at all!
Over the past two months, i've viewed applications where if there wasn't a TPA function, more experienced members (such as yourself) would vote No.
I based my votes on what members who've been here longer than me + have more experience in this field.
I'm simply reflecting on what my betters have taught me.

weequ

2012-03-03 20:05:35

I'm going to vote no because I don't see a single function being used.

Edit: my bad. There was functions. Didn't make my vote yet :p

Edit2: I don't like your use off global stuck variable instead of using functions so I'm going to hold my vote.

E3:


if FindDTMRotated(GoldOre, x, y, MIX1, MIY1, MIX2, MIY2, -Pi, Pi, Pi/30, aFound)then
begin
Result := True;
end else
begin
Result := False;
end;
=
Result := FindDTMRotated(GoldOre, x, y, MIX1, MIY1, MIX2, MIY2, -Pi, Pi, Pi/30, aFound);

Also what's the logic behind this:
procedure Banking;
var
Tried, Tried2: integer;

begin

if not(BankScreen)then//<---
begin
Exit;
end;

DepositAll;//<---(Can this close the bankscreen?)

repeat

Inc(Tried);
Wait(20);

if (FindNormalRandoms)then
begin
ClickNorth(SRL_ANGLE_HIGH);
OpenBankBooth;
end;

until (BankScreen) or (Tried > 15);//<----

Final edit: I voted no this time.

Here is my reasons
-Procedures being used when you could use functions
-Code was quite messy in my opinion
-Duplicated code (For example why doesn't runtobank use openbankbooth)
-I'd rather have you apply with one good quality script than three rather messy ones.

Might also want to fix this infinite loop
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);

[XoL]

2012-03-13 19:28:24

Yes from me!
Looks great, you have a few awesome scripts and are active enough for me.

I would suggest trying to use different methods of color finding etc. but other than that you are good to go.

Good luck :).

Hobbit

2012-03-17 20:53:46

Sorry but the poll has closed. It was very close but not quite there. You may reapply in one weeks time :)