SRL Archive - Archive

GOOGLE - SRL Member Application


Google

2012-05-03 17:46:35

Please Leave Some Feedback on things I need to improve if you are voting, thank you.

How Long have You Played Runescape?
10 Year(s)


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?
No


What is your general programming knowledge?
Just Pascal


Are you a member of any other communities?
EpicNPC, MarkeeDragon < old forums I used to use back in the day.


Tell us about yourself…
From: GOOGLE
My name is Brett I am 20 years old I am a very laid back, caring guy. I am currently still in school trying to get my degree in physical therapy, which was motivated when I was in a water tubing accident unfortunately "broke my arm", crazy story behind that. I have always been interested in computers and was introduced to script writing by a friend and found it intriguing since. As far as my life hobbies baseball is a big part of me and always was since I was young, but lately I have been getting into world events and so called "conspiracy theory's."



Please show us one (or multiple) of your scripts.
Script #1
Changed Few Things To increase Performance If anyone is testing.

=-=-=-=-=-=- AstralRcRunner -=-=-=-=-=-=-=-=-=
=-=-=-=-=-=-=-=-By Google-=-=–=-=-=-=-=-=-=-=
Time Running 2:2:21
Runs Done:87
Astrals Made:8838
Astrals Per Hour:4334
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Program AstralRcGoogle;
{$DEFINE SMART}
{$i SRL/srl.simba}
{$i SPS/sps.simba}


{V1.0.4
White Hair Messes Up
On The Obelisk Sometimes}

{
''~``
( o o )
+------------------.oooO--(_)--Oooo.------------------+
| AstralCrafter V1.0.4 |
| By: GOOGLE |
|*****************************************************|
| Instructions |
| 1) Start Lunar Bank |
| 2) If Using Bunyip Have Him in Same Tab |
| 3) NPC Repair So Have Cosmics | Air Runes | Astral |
| 4) If Using auto Setup Have All Mats in Same Tab |
| 4) Turn Auto Retal Off |
| 5) Start Script! :) |
| .oooO |
| ( ) Oooo. |
+---------------------\ (----( )--------------------+
\_) ) /
(_/
======== POST PROGY + FEEDBACK ON THE FORUMS =======}

Var
Tele: Integer;
X, Y, i: Integer;
MonkFish: Integer;
EndX, EndY: Integer;
Chat, Chat2:Integer;
Clock: TIntegerArray;
NpcSpell, Darkmage: Integer;
Buny, BunyI: Integer;
ToBank, ToAltar, ToObe: TPointArray;
Giant, Large, Medium, Small: Integer;
RunesPerHour, RuneCount, Runs: Integer;
Ess, Air, Tries, Cosmic, Astral, Count, AstralClip, Law, LawB, AstralI: Integer;

//***************Edit Below*****************//
//******************************************//
//******************************************//

Const
UseSetup = ('No'); // Withdraws all mats + Setup
UsePouches = ('Yes'); //Yes for Pouch No For None
UseFamiliar = ('Yes'); // Yes For Familiar No For None
//UseMPouch = ('No'); // Yes For Massive No For None
{^^^ Feat Not Added Yet}
//UsePouchRepair = ('No'); // Yes For Pouch Repair No For None
{^^^ Feat Not Added Yet}
SRLStats_Username = ''; // Your SRL Stats Username
SRLStats_Password = ''; // Your SRL Stats Password
NumbOfPlayers = 1; //How many players are you using
StartPlayer = 0; //Player to start with 0 meaning first!

{---------------Script Info-----------------}
{---------------Script Info-----------------}
Author = 'GOOGLE';
ScriptName = 'AstralRc V1.0.4';
Version = '1.0.4'; //Script Version
{-------------------------------------------}
{-------------------------------------------}

Procedure DeclarePlayers;
Begin
NumberOfPlayers(NumbOfPlayers);
CurrentPlayer := StartPlayer;
for i := 0 to NumbOfPlayers-1 do
Players[i].BoxRewards := ['amp', 'XP', 'ostume'];

With Players[0] Do
Begin
Name := ''; //Player username.
Pass := ''; //Player password.
Pin := '';
Member := True;
Active := True;
End;

//Remove '{ }' Brackets If Using Multiple Chars
{ // First Bracket
With Players[1] Do
Begin
Name := ''; //Player username.
Pass := ''; //Player password.
Pin := '';
Member := True;
Active := True;
End;
With Players[2] Do
Begin
Name := ''; //Player username.
Pass := ''; //Player password.
Pin := '';
Member := True;
Active := True;
End; } // Second Bracket
End;

//**************Stop Editing****************//
//******************************************//
//******************************************//

{*********************************************
Procedure CallThangs;
By: GOOGLE
Description: Loads The BitMaps + Dtms
**********************************************}

Procedure CallThangs;
Begin
Ess := BitmapFromString(9, 11, 'meJx1zNEKgCAQRNGfDBMRERHbysq' +
'I/r+BIQmWYN7O3RXZRLZlObBaz32/sNZurJQVkzeAMgDlPGM6gMaY' +
'U5owBt/nISQog64MvI9Ufetc+FPQV/tnkLVeK8kYp5U/h2GkMoDyJ' +
'+gB5qx01w==');
Tele := DTMFromString('maQEAAHicpc1LCoNgDIXR+0M34Nix+EBKBSnVRflAapWK6AY67nL9wEAHzmzg3JBkEE/S6yKN6NDjjRkLVusTBrSoUZkGT9ycdEeE0HqM1O23HAVKPGzOcEVie31Rfgh3mk8G+q/Of/851AYlgw1H');
Air := DTMFromString('mlwAAAHicY2eAADYg5gZifiAWhGI+qLgYEItA5biAmAWq59HNG0CSCQtmZJCDqsUGGPFgKAAARFoDcg==');
Cosmic := DTMFromString('mwQAAAHic42RgYGBlgAB2IOYGYn4o5gNiTiBmAWIRIJYFYhkgloTy+aHyzFD9N67JAUkmvNgISHIx4AeMRGA4AAB7DQMQ');
DarkMage := DTMFromString('mwQAAAHic42RgYFjIyMCwCIinAPFKIJ4PxH1A3AbEDVDMA8RfgWoZGCH4JQME/2aAyCkC8fr+UobtU6sYFFS1GOSU1Rl4eXkxMD9QPSHMSASGAwAGuA7p');
NpcSpell := DTMFromString('mAAEAAHiclc3BCkBAFIXhM8rOI6GQyOuNJGWB8nDmJfw1d2E5Tn2b0+2eQtKeRSduXDisWzHDY8GGzkklKrQYMJkRPRrUdhfCw4pLlutf0j9H37yvEQ2A');
Buny := DTMFromString('mfgEAAHicE2JgYFgAxIuAeBUQrwTiNUC8DopBYouBeBYQTwbiiUj0bCCeBsQzofJroGYtgdKrgXgDEG8H4l1AvAeIdwPxDiDeBMQroGoWQO3YCLWzsDQeSDKRjQP8bRlyC6MZWBkoA8xAzAbEjFTCmAAAyVkbDQ==');
BunyI := DTMFromString('mvQEAAHicE2VgYFjMxMCwCIiXAvEqIF4LxRugGMReAVUzG4inAfFkJAziz4TieVBzBBgZGJiRMCsQ8wCxIBCLA7EMEMsBsTyUlgZiMag8LxBzATE7kn6Q3pLKRKBrmaiGs7PCGdiBLDYqYpB5jDTAWAEAguwR/w==');
Astral := DTMFromString('mKgEAAHic42NgYLBlZGBwB2IvIPaGsp2A2BqITYBYH4gNobQTVMwSiLOAehOBOA2I84C4DIiroLgCKlYCxOlAHAfECVD69PrTQJKJZCwJJNnJwIxkYlQAAF21DDM=');
AstralI := DTMFromString('mfgEAAHicrczPCkAADMDh8QhuXk5KSuEgSryUB3H3JwcHxUEpvICf7ObI6tvWtmaJSGSKpCiQo9T+rjESZLrz4cJRHgKEmPjVYcSABas881Pt2HBonfW+R4sGdVWTzc9s+SeMn7zjAhhzGp8=');
AstralClip := DTMFromString('mVAEAAHicE2BgYMhlYmAoBOISIK4A4iogrgTiMqh4DhCnAHECEk5kguhLBeLHQDNuAPFNIL4HxE+B+DUQvwfiz1D8EYjfAfFzIH4IxLegekD4xNoTQJKJbCzHQBlgpBCjAwDX8BfJ');
Law := DTMFromString('mKgEAAHicnc07CoAwEIThSQ5g5QFsPL8YUEECaSL4whN4GH9hG0sz8DHFDmwlKXlpwYXTZMzYETBaT4jY3ruTOkQMyDjMimT97nrbBjTtzVf/W62yuELfPLffFm0=');
LawB := DTMFromString('mPwEAAHicpcvBCkBQEIXhGYqNktyFkmvhaSkbpchGiSfyQP7FLGR5nfpmcZqTi0ihIjU8WjSoUCJDivjFWZ9gZj9iwoodJy5zYMNiPz0G2/ju5kYBVJyER3/45AETrwtL');
Giant := DTMFromString('m6wAAAHic42aAAGYg5gZiISAWg2IQmxeI+aCYE0rLQrEUEItD1fFA5Vmg5jECcbi/E5BkIgobAUkuBuIAIwkYCQAAk2gChA==');
Large := DTMFromString('mrAAAAHic42BgYHBhYmBwBWJPKO0HxF5AbAHETkDMx8jA8A+ojgFIswAxLxCLQLEYEDvbGgMlmXBifgb8gAliNE4MAwBfsAR9');
Medium:= DTMFromString('mlwAAAHicY2dgYMhjYmAoBeJkIE4B4hIgzgHifCDmYYRgLiAWgmJRIP4D1OdqbwokmbBifgbcAKSCEQeGAgBswQVI');
Small := DTMFromString('mAAEAAHicbczBCoJAFIXhMwNF2MiQ+ghuXbd2F0RlD+ZWRRJ61H5lCNG58N0Dh8t1kjor9fjgG7ILOWLCgDY4G+mAIxwy5BBSnGBxQYJbfdXreefA7rybx5JVWfw7z57Fxm9Sq28mItav5wer+wsg');
MonkFish := DTMFromString('mggAAAHicY2NgYJjEyMAwEYgXQPE8IJ4GxB+Bct+A+A0DhP0diH8AsbejJcP8miogiwkFcwFJEEYHjDgwBAAAZ90L0w==');
End;

{*********************************************
Procedure FreeThangs;
By: GOOGLE
Description: Frees All Dtms + Bitmaps
**********************************************}

Procedure FreeThangs;
Begin
FreeBitMap(Ess);
FreeDTM(Tele);
FreeDTM(Air);
FreeDTM(Cosmic);
FreeDTM(DarkMage);
FreeDTM(NpcSpell);
FreeDTM(Buny);
FreeDTM(BunyI);
FreeDTM(Astral);
FreeDTM(AstralI);
FreeDTM(AstralClip);
FreeDTM(Law);
FreeDTM(LawB);
FreeDTM(Giant);
FreeDTM(Large);
FreeDTM(Medium);
FreeDTM(Small);
FreeDTM(MonkFish);
End;


{*******************************************************************************
Procedure HumanMMouse(eX, eY: Integer);
By: Flight
Description: Human-like miss-and-correct mouse movement
*******************************************************************************}
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 BrakeWindMouse(xs, ys, xe, ye, gravity, wind, minWait, maxWait, targetArea: extended);
By: Flight
*******************************************************************************}

procedure BrakeWindMouse(xs, ys, xe, ye, gravity, wind, minWait, maxWait, targetArea: extended);
var
veloX,veloY,windX,windY,veloMag,dist,randomDist,lastDist: extended;
lastX,lastY,MSP,W,maxStep,D: integer;
sqrt2,sqrt3,sqrt5: extended;
begin
MSP := MouseSpeed;
sqrt2:= sqrt(2);
sqrt3:= sqrt(3);
sqrt5:= sqrt(5);

repeat
dist:= hypot(xs - xe, ys - ye);
wind:= minE(wind, dist);
D := Random((Round(dist)/3));
if (D > 100) then
D := RandomRange(90, 100);
if (D < 5) then
D := RandomRange(5, 8);

maxStep := D;

if dist >= targetArea then
begin
windX:= windX / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
windY:= windY / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
end else
begin
windX:= windX / sqrt2;
windY:= windY / sqrt2;
end;

veloX:= veloX + windX;
veloY:= veloY + windY;
veloX:= veloX + gravity * (xe - xs) / dist;
veloY:= veloY + gravity * (ye - ys) / dist;

if hypot(veloX, veloY) > maxStep then
begin
randomDist:= maxStep / 2.0 + random(round(maxStep) div 2);
veloMag:= sqrt(veloX * veloX + veloY * veloY);
veloX:= (veloX / veloMag) * randomDist;
veloY:= (veloY / veloMag) * randomDist;
end;

lastX:= Round(xs);
lastY:= Round(ys);
xs:= xs + veloX;
ys:= ys + veloY;

if (lastX <> Round(xs)) or (lastY <> Round(ys)) then
MoveMouse(Round(xs), Round(ys));

W := (Random(100/MSP))*3;
if (W < 5) then
W := 5;
wait(W);
lastdist:= dist;
until(hypot(xs - xe, ys - ye) < 1)

if (Round(xe) <> Round(xs)) or (Round(ye) <> Round(ys)) then
MoveMouse(Round(xe), Round(ye));

MouseSpeed := MSP;
end;

{*******************************************************************************
Procedure BrakeMMouse(eX, eY, ranX, ranY: Integer);
By: Flight
*******************************************************************************}

procedure BrakeMMouse(eX, eY, ranX, ranY: Integer);
var
randSpeed: extended;
X,Y: integer;
begin
randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
GetMousePos(X, Y);
BrakeWindMouse(X, Y, eX, eY, 9, 5, 10.0 / randSpeed, 15.0 / randSpeed, 10.0 * randSpeed);
end;

{*********************************************
Procedure DragM;
By: NaumanAkhlaQ
Description: Leftclicks StartX, StartY and
drags mouse to EndX, EndY..
**********************************************}

Procedure DragM(StartX, StartY, SRandX, SRandY, EndX, EndY, ERandX, ERandY: Integer);
begin
MMouse(StartX, StartY, SRandX, SRandY);
Wait(150 + Random(20));
GetMousePos(StartX, StartY);
HoldMouse(StartX, StartY, mouse_left);
Wait(250 + Random(320));
MMouse(EndX, EndY, ERandX, ERandY);
Wait(250 + Random(120));
GetMousePos(EndX, EndY);
ReleaseMouse(EndX, EndY, mouse_left);
end;

{*********************************************
Function CountAstrals;
By: GOOGLE
Description: Counts The Astral Runes After
Being Crafted And Prints to Progress Report.
**********************************************}

Function CountAstrals: Integer;
Begin
If FindDTM(AstralI, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Count := GetAmount(X,Y);
Result:= Count;
End;

{*******************************************************************************
Function UsingFamiliar: Boolean;
By: Flight
Description: Returns if we currently have a Summoning familiar.
*******************************************************************************}

Function UsingFamiliar: Boolean;
Begin
Result := FindColorTolerance(X,Y,11192179,695,130,720,155,20);
End;

{***********************************************
Function ChargePoints: Boolean;
By: Google
Description: Returns The Orange Number Color
For Summoning.
************************************************}

Function ChargePoints: Boolean;
Begin
//Result := FindcolorTolerance(X,Y,2070783,731,151,728,151,20);
Result := FindcolorTolerance(X,Y,65535,728,146,730,148,20);
Result := FindcolorTolerance(X,Y,2070783,730,144,730,151,20);
End; {Orange^^}

{*********************************************
Procedure ProgressReport;
By: GOOGLE
Description: Proggy in Debug w/ ActionText
For Showing Which Procedure its on.
**********************************************}

Procedure ProgressReport;
Begin
ClearDebug;
RunesPerHour := Round((Runecount)/ (GetTimeRunning / 3600000.0));
Clock := [0,0,0];
ConvertTime(GetTimeRunning,Clock[0],Clock[1],Clock[2]);
WriteLn('=-=-=-=-=-=- AstralRcRunner -=-=-=-=-=-=-=-=-=');
WriteLn('=-=-=-=-=-=-=-=-By Google-=-=--=-=-=-=-=-=-=-=');
WriteLn('Time Running ' +tostr(Clock[0])+':'+tostr(Clock[1])+':'+tostr(Clock[2]));
WriteLn('Runs Done:' +IntToStr(runs));
WriteLn('Astrals Made:' +IntToStr(RuneCount));
WriteLn('Astrals Per Hour:' +IntToStr(RunesPerHour));
WriteLn('=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=');
End;

{*********************************************
Procedure Bank;
By: GOOGLE
Description: ACA auto color function for
Bank Colors.
**********************************************}

function Bank: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.17, 0.09);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 5662320, MSX1, MSY1, MSX2, MSY2, 4);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);

if (X >= 10.51) and (X <= 16.00) and (Y >= 10.94) and (Y <= 16.63) and (Z >= 8.56) and (Z <= 12.97) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;


{*********************************************
Procedure OpenBooth;
By: GOOGLE
Description: Custom BankFinding For Lunar
Isle.
**********************************************}

Function OpenBooth:Boolean;
Var
a, h: Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
tmpCTS : Integer;
Begin
If(not(LoggedIn)) Then Exit;
FindNormalRandoms;
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.12, 0.72);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 5662320, MSX1, MSY1, MSX2, MSY2, 4);
ATPA := TPAtoATPAEx(TPA, 20, 20);
SortATPASize(ATPA,True);

H := High(ATPA);

for a := 0 to H do
Begin
MiddleTPAEx(atpa[a], X, Y);
BrakeMMouse(X, Y, 5, 5);
If (WaitUpTextMulti(['Bank', 'booth', 'ooth', 'ank', 'Bank Booth'], 750)) Then
Begin
ClickMouse2(False);
Wait(150 + Random(50));
ChooseOption('Bank');
Wait(900 + Random(150));

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

Result:= True;
Exit;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;

{**********************************************
Procedure OpenB;
By: GOOGLE
Description: Handles Opening the Bank W\
Failsafes.
**********************************************}

Procedure OpenB;
Begin
OpenBooth;
While (IsMoving) Do
Wait(950 + Random(150));
If Not (BankScreen) Then
Begin
Repeat
OpenBooth;
Tries := Tries+1
Until(BankScreen)Or(Tries > 4)
If (Tries > 4) Then
Logout;
End;
End;

{*********************************************
Procedure WalkBank;
By: GOOGLE
Description: Uses Sps Walking to walk from
Teleport spot to bank.
**********************************************}

Procedure WalkBank;
Begin
GameTab(Tab_Inv)
SPS_Setup(RUNESCAPE_SURFACE,['0_2']);
ToBank := [Point(241, 957), Point(242, 957),
Point(243, 956), Point(238, 958), Point(240, 958)];
SPS_WALKPath(ToBank);
Wait(750 + Random(270));
End;

{*********************************************
Function Teleport: Boolean;
By: GOOGLE
Description: Teleports using Moonclan
Tele.
**********************************************}

Function Teleport: Boolean;
Begin
If (LoggedIn) then
Begin
If Not FindNormalRandoms then
Begin
GameTab(Tab_Magic);
Wait(400);
If FindDTM(Tele,X,Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
MMouse(x,y,5,5);
Wait(600 + Random(50));
ClickMouse2(True);
End;
WalkBank;
End;
End;
End;

{*********************************************
Procedure WalkAltar;
By: GOOGLE
Description: Uses Sps Walking To Walk From
The Bank To The Altar, If It Gets Lost
It Will Re-teleport And Re-Walk The Path Again.
**********************************************}

Procedure GoToAltar;
Begin
SPS_Setup(RUNESCAPE_SURFACE,['0_2','1_2']);
ToAltar := [Point(252, 971), Point(289, 972),
Point(292, 1026), Point(292, 1035), Point(294, 1042),
Point(295, 1047), Point(295, 1053), Point(295, 1060),
Point(298, 1067), Point(299, 1074), Point(304, 1079),
Point(309, 1084), Point(312, 1089), Point(316, 1093),
Point(320, 1099), Point(324, 1105), Point(330, 1109),
Point(337, 1113), Point(343, 1118), Point(347, 1123),
Point(353, 1129), Point(358, 1134), Point(363, 1139),
Point(369, 1145), Point(413, 1179), Point(418, 1176),
Point(424, 1175), Point(430, 1175), Point(438, 1175),
Point(463, 1177)];
SPS_WalkPath(ToAltar);
If Not (SPS_WalkPath(ToAltar)) Then
Begin
Teleport;
GoToAltar;
End;
End;

{*********************************************
Function AltarColor: Integer;
By: GOOGLE
Description: ACA Autocolor Function for
the Altar Colors.
**********************************************}

function AltarColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.56, 0.09);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 8025464, MSX1, MSY1, MSX2, MSY2, 6);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);

if (X >= 13.21) and (X <= 22.64) and (Y >= 13.55) and (Y <= 23.21) and (Z >= 15.81) and (Z <= 26.96) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

{*********************************************
Procedure Altar;
By: GOOGLE
Description: Finds The Altar Using Custom
Finding Method.
**********************************************}

Function FindAltar: Boolean;
Var
TPAA: T2DPointArray;
TPA: TPointArray;
CTS, I, Retry: Integer;
Begin
FindNormalRandoms;
While(ismoving) Do
Wait(550 + Random(350));
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, AltarColor, MSX1, MSY1, MSX2, MSY2, 3);
ColorToleranceSpeed(CTS);
TPAA := TPAToATPAEx(TPA, 5, 5);
SortATPASize(TPAA, True);
For I := 0 to High(TPAA) Do
If GetArraylength(TPAA[i]) > 5 Then
Begin
Repeat
inc(Retry);
MiddleTPAEx(TPAA[i], X, Y);
BrakeMMouse(X, Y, 15, 15);
Wait(200 + Random(150));
If (IsUpTextMultiCustom(['Altar', 'tar','Alt','ltar'])) Then
Begin
GetMousePos(X, Y);
ClickMouse2(True);
//Wait(150 + Random(50));
//ChooseOption('Altar');
Writeln('Found Altar Clicking It');
Wait(2000 + Random(250));
Result:= True;
Exit;
End;
Until (Retry = 7);
Break;
End;
End;

{*********************************************
Function ClickAltar: Boolean;
By: GOOGLE
Description: Clicks The Altar Used for Pouch
Method.
**********************************************}

Function ClickAltar: Boolean;
Var
TPAA: T2DPointArray;
TPA: TPointArray;
CTS: Integer;
Begin
FindNormalRandoms;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, AltarColor, MSX1, MSY1, MSX2, MSY2, 6);
ColorToleranceSpeed(CTS);
TPAA := TPAToATPAEx(TPA, 5, 5);
SortATPASize(TPAA, True);
For I := 0 to High(TPAA) Do
If GetArraylength(TPAA[i]) > 5 Then
Begin
MiddleTPAEx(TPAA[i], X, Y);
BrakeMMouse(X, Y, 15, 15);
Wait(430 + Random(150));
If (IsUpTextMultiCustom(['Altar', 'tar','Alt','ltar'])) Then
Begin
GetMousePos(X, Y);
ClickMouse2(True);
Writeln('Crafting Runes');
Wait(1000 + Random(200));
Result:= True;
Exit;
End;
Break;
End;
End;

{*********************************************
Procedure DoAstrals;
By: GOOGLE
Description: Handles The Pouches When Crafting
At The Altar.
**********************************************}

Procedure DoAstrals;
Begin
If Usepouches = ('Yes') Then
Begin
FindAltar;
While(ismoving) Do
Wait(200 + Random(150));
End;
If FindDTM(Giant, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
HumanMMouse(X, Y, 7, 7);
Wait(100 + Random(50));
ClickMouse2(True);
SleepandMoveMouse(300);
End;
ClickAltar;
CountAstrals;
Wait(1200 + Random(200));
If FindDTM(Large, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
HumanMMouse(X, Y, 7, 7);
Wait(100 + Random(50));
ClickMouse2(True);
//Wait(250 + Random(50));
End;
If FindDTM(Medium, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
HumanMMouse(X, Y, 7, 7);
Wait(100 + Random(50));
ClickMouse2(True);
//Wait(250 + Random(50));
End;
If FindDTM(Small, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
HumanMMouse(X, Y, 7, 7);
Wait(100 + Random(50));
ClickMouse2(True);
//Wait(250 + Random(50));
End;
ClickAltar;
CountAstrals;
Teleport;
If UsePouches = ('No') Then
Begin
FindAltar;
CountAstrals;
Teleport;
End;
End;

{*********************************************
Procedure WEssence;
By: GOOGLE
Description: Handles Withdrawing Essence.
**********************************************}

Procedure WEssence;
Begin
Begin
If FindBitmapToleranceIn(Ess, X, Y, 35, 85, 480, 295, 45) then
Begin
HumanMMouse(X, Y, 5, 5);
Wait(150 + Random(50));
ClickMouse2(False);
Wait(200 + Random(50));
ChooseOption('All');
End;
End;
End;

{*********************************************
Procedure DEssence;
By: GOOGLE
Description: Handles Depositing Essence From
The Invetory.
**********************************************}

Procedure DEssence;
Begin
Begin
If FindBitMapTolerancein(Ess, X, Y, MIX1, MIY1, MIX2, MIY2, 45) Then
Begin
HumanMMouse(X, Y, 5, 5);
ClickMouse2(False);
Wait(RandomRange(700, 400));
ChooseOption('Deposit-5');
End;
End;
End;

{*********************************************
Procedure DepositAstral;
By: GOOGLE
Description: Handles Depositing The Crafted
Astral Runes From the Invetory.
**********************************************}

Procedure DepositAstral;
Begin
Begin
If FindDTM(AstralI, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
HumanMMouse(X, Y, 4,4);
ClickMouse2(False);
Wait(200 + Random(100));
ChooseOption('Deposit-All');
Wait(1000 + Random(150));
End;
If FindDTM(AstralClip, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
HumanMMouse(X, Y, 4,4);
ClickMouse2(False);
Wait(200 + Random(100));
ChooseOption('Deposit-All');
Wait(1000 + Random(150));
End;
End;
End;


{*********************************************
Function GiantDecay: Boolean;
By: GOOGLE
Description: Finds The Giant Decayed Pouch in
The First Slot using ATPA.
**********************************************}

Function GiantDecay: Boolean;
Var
a : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
MP : TPoint;
tmpCTS : Integer;
Box : TBox;
Begin
if(not(LoggedIn))then Exit;
if(not(FindNormalRandoms))then
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.42, 0.08);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 3356987, MIX1, MIY1, MIX2, MIY2, 10);
SortTPAFrom(TPA, Point(MSCX, MSCY));
ATPA := TPAtoATPAEx(TPA, 20, 20);
For a := 0 to High(ATPA) Do
Begin
MP := MiddleTPA(ATPA[a]);
Box := IntToBox((MP.X - 5), (MP.Y - 5), (MP.X + 5), (MP.Y + 5));
Result := True;
End;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
End;

{*********************************************
Procedure HandleFood;
By: GOOGLE
Description: Finds The Food, Eats And Deposits
If At 60% Info in HandleBank.
**********************************************}

Procedure HandleFood;
Begin
If(not(LoggedIn))then Exit;
If(not(FindNormalRandoms))Then
If FindDTM(MonkFish, x, y, MIX1, MIY1, MIX2, MIY2) Then
HumanMMouse(X, Y, 3, 3);
ClickMouse2(False)
Wait(100 + Random(50));
ChooseOption('Withdraw-5');
Wait(1000 + Random(50));
Repeat
If(Not(LoggedIn))Then Exit;
If(Not(FindNormalRandoms))Then
If FindDTM(MonkFish, x, y, MIX1, MIY1, MIX2, MIY2) Then
HumanMMouse(X, Y, 3, 3);
ClickMouse2(False)
Wait(100 + Random(50));
ChooseOption('Eat');
Wait(1000 + Random(50));
Until (HPPercent = 100);
If FindDTM(MonkFish, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
Repeat
If FindDTM(MonkFish, X, Y, MIX1, MIY1, MIX2, MIY2) Then
HumanMMouse(X, Y, 3, 3);
ClickMouse2(False);
Wait(100 + Random(50));
ChooseOption('Deposit-All');
Until Not FindDTM(MonkFish, x, y, MIX1, MIY1, MIX2, MIY2);
End;
End;

{*********************************************
Function ObeliskColor: Boolean;
By: GOOGLE
Description: ACA Autocolor Function
For The Obelisk Colors.
**********************************************}

function ObeliskColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.86, 0.38);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 8822916, MSX1, MSY1, MSX2, MSY2, 20);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);

if (X >= 12.58) and (X <= 54.59) and (Y >= 15.37) and (Y <= 58.83) and (Z >= 19.11) and (Z <= 61.89) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

{*********************************************
Function FindObelisk: Boolean;
By: GOOGLE
Description: Finds The Altar with custom
finding method using ACA color Function.
**********************************************}

Function FindObelisk: Boolean;
Var
x, y: Integer;
TPAA: T2DPointArray; // The Variables of the Functions
TPA: TPointArray;
CTS, I, Retry: Integer;
Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, ObeliskColor, MSX1, MSY1, MSX2, MSY2, 20); // Enter the Color and Tolerance Here at the Right place.
ColorToleranceSpeed(CTS);
TPAA := TPAToATPAEx(TPA, 5, 5); //Put the Width and Heigh here
SortATPASize(TPAA, True);
For I := 0 To High(TPAA) Do
If GetArraylength(TPAA[i]) > 2 Then // Set How Much Points you need for your function to take Action
Begin
inc(Retry);
MiddleTPAEx(TPAA[i], X, Y);
MMouse(X, Y, 3, 3);
Wait(500 + Random(200));
if (IsUpTextMultiCustom(['Small Obelisk', 'lisk', 'obe', 'mall'])) then // Enter The name of Your NPC or Monster
Begin
GetMousePos(X, Y);
ClickMouse2(True);
Wait(1850 + Random(200));
Result:= True
Exit;
End;
End;
End;

{*********************************************
Procedure Obelisk
By: GOOGLE
Description: Handles The Obelisk Procedure
If it needs to recharge it will walk to the
obelisk, charge then run to altar.
**********************************************}

Procedure Obelisk;
Begin
If ChargePoints = True Then
Begin
SPS_Setup(RUNESCAPE_SURFACE,['0_2']);
ToObe := [Point(289, 971), Point(290, 969), Point(291, 969)];
SPS_WALKPath(ToObe);
Wait(1200 + Random(200));
FindObelisk;
GoToAltar;
End;
End;

{*********************************************
Function WithdrawSupps: Boolean;
By: GOOGLE
Description: If Familiar Is Not Out During Banking
It Will Find The Pouch And Summon It.
**********************************************}

Function WithdrawSupps: Boolean;
Begin
If UseFamiliar = ('Yes') Then
Begin
If UsingFamiliar = False Then
Begin
DEssence;
Wait(400 + Random(200));
If FindDTM(BunyI, X, Y, MSX1, MSY1, MSX2, MSY2) Then
Writeln('Found The Pouch');
Begin
HumanMMouse(X, Y, 3, 3);
ClickMouse2(True);
Wait(200 + Random(150));
End;
CloseBank;
Wait(400 + Random(340));
GameTab(Tab_Inv);
If FindDTM(BunyI, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
HumanMMouse(X, Y, 3, 3);
ClickMouse2(False);
Wait(100 + Random(50));
ChooseOption('Summon');
Wait(200 + Random(200));
End;
OpenB;
If FindDTM(BunyI, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
HumanMMouse(X, Y, 3, 3);
Wait(200 + Random(123));
ClickMouse2(True);
End;
End;
End;
End;


{*********************************************
Function NPCContact: Boolean;
By: GOOGLE
Description: Handles The Npc Repair When "FillPouch"
Finds The Degraded Pouch.
**********************************************}

Function NPCContact: Boolean;
Var
Chat, Chat2:Integer;
Begin
Wait(300 + Random(350));
DEssence;
WriteLn('Repairing The Giant Pouch')
Wait(250 + Random(150));
If FindDTM(Air, X, Y, MSX1, MSY1, MSX2, MSY2) Then
Begin
MMouse(X,Y,7,7);
ClickMouse2(True);
Wait(100 + Random(50));
ClickMouse2(True);
Wait(400 + Random(100));
If FindDTM(Cosmic, X, Y, MSX1, MSY1, MSX2, MSY2) Then
Begin
MMouse(X,Y,7,7);
ClickMouse2(True);
Wait(400 + Random(100));
Begin
If FindDTM(Astral, X, Y, MSX1, MSY1, MSX2, MSY2) Then
Begin
MMouse(X,Y,7,7);
ClickMouse2(True);
Wait(400 + Random(100));
End;
End;
CloseBank;
Wait(1200 + Random(50));
GameTab(Tab_Magic);
If FindDTM(NpcSpell, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
MMouse(x,y,4,4);
ClickMouse2(True);
GameTab(Tab_Inv);
Wait(1500 + Random(150));
MMouse(487, 219, 0, 0);
ClickMouse2(True);
Wait(RandomRange(300, 400));
If FindDTM(DarkMage, X, Y, MSX1, MSY1, MSX2, MSY2) Then
Begin
MMouse(x,y,5,5);
ClickMouse2(True);
Wait(6500 + Random(250));
Repeat
Inc(Chat);
TypeSend(' ');
Wait(1200 + Random(250));
Until(Chat > 5);
Wait(400 + Random(200));
FindNPCChatText('repair',Clickleft);
ClickMouse2(True);
Repeat
Inc(Chat2);
TypeSend(' ');
Wait(1250 + Random(250));
Until(Chat2 > 1);
End;
End;
OpenB;
End;
End;
End;


{*********************************************
Function FillPouch: Boolean;
By: GOOGLE
Description: Handles Filling The Pouches
If It Finds the Giant Degrade It Will Then
Do NpcRepair.
**********************************************}

Function FillPouch: Boolean;
Begin
If UsePouches =('Yes') then
Begin
If GiantDecay Then
Begin
NpcContact;
WEssence;
End else
Begin
WEssence;
Wait(75 + Random(35));
End;
If FindDTM(Giant,x,y,MIX1,MIY1,MIX2,MIY2)then
Begin
HumanMMouse(X, Y, 7, 7);
ClickMouse2(False);
ChooseOption('Fill');
Wait(75 + Random(35));
WEssence;
End Else
Wait(75 + Random(35));
If FindDTM(Large,x,y,MIX1,MIY1,MIX2,MIY2)then
Begin
HumanMMouse(X, Y, 7, 7);
ClickMouse2(False);
ChooseOption('Fill');
End;
If FindDTM(Medium,x,y,MIX1,MIY1,MIX2,MIY2)then
Begin
HumanMMouse(X, Y, 7, 7);
ClickMouse2(False);
ChooseOption('Fill');
End;
If FindDTM(Small,x,y,MIX1,MIY1,MIX2,MIY2)then
Begin
HumanMMouse(X, Y, 7, 7);
ClickMouse2(False);
ChooseOption('Fill');
End;
Begin
End;
WEssence;
If UsePouches = ('No') Then
WEssence;
End;
End;

Procedure HandleBanking;
Begin
If (BankScreen) or (PinScreen) Then
Begin
If (PinScreen) Then
Repeat
InPin(Players[0].Pin);
Until (BankScreen);
If (Bankscreen) Then
Begin
If (HpPercent < 60) Then
Begin
HandleFood;
End;
DepositAstral;
WithdrawSupps;
FillPouch;
End;
End;
End;


{*********************************************
Procedure SetupInvetory;
By: GOOGLE
Description: Just A Feat I Added That Will
Withdraw Pouches Out Of The Bank And Set Them
Up In Invetory.
**********************************************}

Procedure SetupInvetory;
Begin
If UseSetup =('Yes') Then
Begin
OpenB;
End;
If FindDTM(Giant, X, Y, MSX1, MSY1, MSX2, MSY2) Then
Begin
HumanMMouse(X, Y, 7, 7);
Wait(200 + Random(150));
ClickMouse2(True);
Wait(1500 + Random(200));
End;
If FindDTM(Large, X, Y, MSX1, MSY1, MSX2, MSY2) Then
Begin
HumanMMouse(X, Y, 7, 7);
Wait(200 + Random(150));
ClickMouse2(True);
Wait(1500 + Random(200));
End;
If FindDTM(Medium, X, Y, MSX1, MSY1, MSX2, MSY2) Then
Begin
HumanMMouse(X, Y, 7, 7);
Wait(200 + Random(150));
ClickMouse2(True);
Wait(1500 + Random(200));
End;
If FindDTM(Small, X, Y, MSX1, MSY1, MSX2, MSY2) Then
Begin
HumanMMouse(X, Y, 7, 7);
Wait(200 + Random(150));
ClickMouse2(True);
Wait(700 + Random(200));
End;
If FindDTM(LawB, X, Y, MSX1, MSY1, MSX2, MSY2) Then
Begin
HumanMMouse(X, Y, 7, 7);
Wait(200 + Random(150));
ClickMouse2(False);
Wait(100 + Random(200));
ChooseOption('Withdraw-All')
End;
CloseBank;
Wait(500 + Random(100));
If FindDTM(Law, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
MMouse(X, Y, 7, 7);
Wait(150 + Random(50));
HoldMouse(X, Y, Mouse_Left);
Wait(400 + Random(320));
MMouse(579, 373, 580, 376);
Wait(600 + Random(150));
GetMousePos(EndX, EndY);
Wait(100 + Random(300));
ReleaseMouse(579, 371, Mouse_Left);
End;
If FindDTM(Large, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
Wait(600 + Random(200));
MMouse(X, Y, 7, 7);
Wait(150 + Random(50));
HoldMouse(X, Y, Mouse_Left);
Wait(400 + Random(320));
MMouse(579, 269, 581, 268);
Wait(600 + Random(150));
GetMousePos(EndX, EndY);
Wait(100 + Random(300));
ReleaseMouse(579, 269, Mouse_Left);
End;
If FindDTM(Medium, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
Wait(600 + Random(200));
MMouse(X, Y, 7, 7);
Wait(150 + Random(50));
HoldMouse(X, Y, Mouse_Left);
Wait(400 + Random(320));
MMouse(578, 304, 578, 304);
Wait(600 + Random(150));
GetMousePos(EndX, EndY);
Wait(100 + Random(300));
ReleaseMouse(579, 303, Mouse_Left);
End;
If FindDTM(Small, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
Wait(600 + Random(200));
MMouse(X, Y, 7, 7);
Wait(150 + Random(50));
HoldMouse(X, Y, Mouse_Left);
Wait(400 + Random(320));
MMouse(579, 339, 579, 341);
Wait(600 + Random(150));
GetMousePos(EndX, EndY);
Wait(400 + Random(300));
ReleaseMouse(579, 339, Mouse_Left);
Wait(400 + Random(200));
End;
End;


Begin
Smart_Server := 18;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;

MouseSpeed := RandomRange(18, 22);
ClearDebug;
SetupSRL;
CallThangs;
Addonterminate('FreeThangs')
DeclarePlayers;
LoginPlayer;
SetAngle(SRL_ANGLE_HIGH);
HpPercent;
SetupInvetory;
GameTab(Tab_Inv);
Repeat
ProgressReport;
OpenB;
HandleBanking;
Obelisk;
GoToAltar
DoAstrals;
ProgressReport;
Inc(Runs);
IncEx(RuneCount, CountAstrals)
Until(Not (Loggedin));
FreeThangs;
Terminatescript();
End.

Made Quite a few changes removed most DTMS , changed to Bitmaps > Increased performance and speed, now gets 4800 - 5250 R|PH at 91+

Script #2

Program NatureRcGraahkGoogle;
{$DEFINE SMART}
{$i SRL/srl.simba}
{$i sps/sps.simba}

{
''~``
( o o )
+------------------.oooO--(_)--Oooo.------------------+
| NatureRcGraahk V1.0.4 |
| By: GOOGLE |
|*****************************************************|
| Instructions |
| 1) Start At Front Cw Chest |
| 2) Have Graahk Pouches Same Tab As Mats |
| 3) NPC Repair So Have Cosmics | Air Runes | Astral |
| 4) If Using auto Setup Have All Mats in Same Tab |
| 5) Have Ring Of Dueling Equiped B4 Starting |
| 6) Start Script! :) |
| .oooO |
| ( ) Oooo. |
+---------------------\ (----( )--------------------+
\_) ) /
(_/
======== POST PROGY + FEEDBACK ON THE FORUMS =======}




Var
x, y, i: Integer;
EndX, EndY: Integer;
Clock: TIntegerArray;
ToAltar: TPointArray;
NeedNewRing: Boolean;
ToObe, ObAltar: TPointArray;
Giant, Large, Medium, Small: Integer;
NpcSpell, Darkmage, Tries, runs: Integer;
Pouch, Count, Ring, RuneCount: Integer;
Ess, Air, Cosmic, Astral, Nature, RunesPerHour: Integer;

//***************Edit Below*****************//
//******************************************//
//******************************************//

Const
UsePouches = ('Yes'); //Yes for Pouch no for None
UseSetup = ('No'); // Withdraws all mats + Setup


SRLStats_Username = ''; // Your SRL Stats Username
SRLStats_Password = ''; // Your SRL Stats Password
NumbOfPlayers = 1; //How many players are you using
StartPlayer = 0; //Player to start with 0 meaning first!

{---------------Script Info-----------------}
{---------------Script Info-----------------}
Author = 'GOOGLE';
ScriptName = 'NatureRcGraahk V1.0.4';
Version = '1.0.4'; //Script Version
{-------------------------------------------}
{-------------------------------------------}

Procedure DeclarePlayers;
Begin
NumberOfPlayers(NumbOfPlayers);
CurrentPlayer := StartPlayer;
for i := 0 to NumbOfPlayers-1 do
Players[i].BoxRewards := ['amp', 'XP', 'ostume'];

With Players[0] Do
Begin
Name := ''; //Player username.
Pass := ''; //Player password.
Pin := '';
Member := True;
Active := True;
End;

//Remove '{ }' Brackets If Using Multiple Chars
{ // First Bracket
With Players[1] Do
Begin
Name := ''; //Player username.
Pass := ''; //Player password.
Pin := '';
Member := True;
Active := True;
End;
With Players[2] Do
Begin
Name := ''; //Player username.
Pass := ''; //Player password.
Pin := '';
Member := True;
Active := True;
End; } // Second Bracket
End;

//**************Stop Editing****************//
//******************************************//
//******************************************//


{*********************************************
Procedure CallThangs;
By: GOOGLE
Description: Loads The BitMaps + Dtms
**********************************************}

Procedure CallThangs;
Begin
Ess := BitmapFromString(9, 11, 'meJx1zNEKgCAQRNGfDBMRERHbysq' +
'I/r+BIQmWYN7O3RXZRLZlObBaz32/sNZurJQVkzeAMgDlPGM6gMaY' +
'U5owBt/nISQog64MvI9Ufetc+FPQV/tnkLVeK8kYp5U/h2GkMoDyJ' +
'+gB5qx01w==');
Air := BitmapFromString(6, 7, 'meJwrr6g9d/4GBNXVtzQ0tpWWVcNF' +
'amubgYIlJZVwkerqRqBgUVE5XKSysh4oWFBQChcpr6gFiuTlFcNFg' +
'GYCleXkFKKJAABvUVGI');
Astral := BitmapFromString(4, 6, 'meJw7tvr4MRJRampmWnp2RmZuYmJq' +
'cnI6hAsASeUuIQ==');
Cosmic := BitmapFromString(5, 9, 'meJwrr6gtr6iVOXMegkpKKkvLquHc' +
'oqJyoAgQQbgFBaVAESCCK4ALAhlZ2fk5OYV5ecUQ8YzMXIgIhJuWn' +
'g0UgetKTc0EisC5ADbBRHE=');
Nature := BitmapFromString(6, 4, 'meJwTqRcUqRfMys7PySkUAbMhKCMz' +
'FyiILJKWng0URBZJTc0ECkLYAOUoFDE=');
Pouch := BitmapFromString(6, 8, 'meJxzrLrmWHUtJLseiBZs3bVo2x4g' +
'1zGiFCI4f/MOoCBcBIjmbdoOFISoByK4IFxkxuoNs9dvnrNhq03hc' +
'SB36oq101atm7l2E1AQKAJEU5atBgoClQEF+xYsmbh4xaSlK4GCQG' +
'VAQQDCQVAe');
Ring := BitmapFromString(5, 7, 'meJwTnygiPlFEqFQAgqRXiAMRGldi' +
'qggECebW8yfk8wbFi3UIAZFo8wzh8i7BrGr+uFw/vyDJBbukFu6RW' +
'rxXpHYiUI3MpvNyu27IH3woMXOTUHEbANLDIWk=');
DarkMage := DTMFromString('mwQAAAHic42RgYFjIyMCwCIinAPFKIJ4PxH1A3AbEDVDMA8RfgWoZGCH4JQME/2aAyCkC8fr+UobtU6sYFFS1GOSU1Rl4eXkxMD9QPSHMSASGAwAGuA7p');
NpcSpell := DTMFromString('mAAEAAHiclc3BCkBAFIXhM8rOI6GQyOuNJGWB8nDmJfw1d2E5Tn2b0+2eQtKeRSduXDisWzHDY8GGzkklKrQYMJkRPRrUdhfCw4pLlutf0j9H37yvEQ2A');
Giant := DTMFromString('m6wAAAHic42aAAGYg5gZiISAWg2IQmxeI+aCYE0rLQrEUEItD1fFA5Vmg5jECcbi/E5BkIgobAUkuBuIAIwkYCQAAk2gChA==');
Large := DTMFromString('mrAAAAHic42BgYHBhYmBwBWJPKO0HxF5AbAHETkDMx8jA8A+ojgFIswAxLxCLQLEYEDvbGgMlmXBifgb8gAliNE4MAwBfsAR9');
Medium:= DTMFromString('mlwAAAHicY2dgYMhjYmAoBeJkIE4B4hIgzgHifCDmYYRgLiAWgmJRIP4D1OdqbwokmbBifgbcAKSCEQeGAgBswQVI');
Small := DTMFromString('mAAEAAHicbczBCoJAFIXhMwNF2MiQ+ghuXbd2F0RlD+ZWRRJ61H5lCNG58N0Dh8t1kjor9fjgG7ILOWLCgDY4G+mAIxwy5BBSnGBxQYJbfdXreefA7rybx5JVWfw7z57Fxm9Sq28mItav5wer+wsg');
End;

{*********************************************
Procedure FreeThangs;
By: GOOGLE
Description: Frees All Dtms + Bitmaps
**********************************************}

Procedure FreeThangs;
Begin
FreeDTM(Giant);
FreeDTM(Large);
FreeDTM(Medium);
FreeDTM(Small);
FreeDTM(DarkMage);
FreeDTM(NpcSpell);
FreeBitMap(Ess);
FreeBitMap(Nature);
FreeBitMap(Air);
FreeBitMap(Cosmic);
FreeBitMap(Astral);
FreeBitMap(Pouch);
FreeBitMap(Ring);
End;

{*******************************************************************************
Procedure HumanMMouse(eX, eY: Integer);
By: Flight
Description: Human-like miss-and-correct mouse movement
*******************************************************************************}
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 BrakeWindMouse(xs, ys, xe, ye, gravity, wind, minWait, maxWait, targetArea: extended);
By: Flight
*******************************************************************************}

procedure BrakeWindMouse(xs, ys, xe, ye, gravity, wind, minWait, maxWait, targetArea: extended);
var
veloX,veloY,windX,windY,veloMag,dist,randomDist,lastDist: extended;
lastX,lastY,MSP,W,maxStep,D: integer;
sqrt2,sqrt3,sqrt5: extended;
begin
MSP := MouseSpeed;
sqrt2:= sqrt(2);
sqrt3:= sqrt(3);
sqrt5:= sqrt(5);

repeat
dist:= hypot(xs - xe, ys - ye);
wind:= minE(wind, dist);
D := Random((Round(dist)/3));
if (D > 100) then
D := RandomRange(90, 100);
if (D < 5) then
D := RandomRange(5, 8);

maxStep := D;

if dist >= targetArea then
begin
windX:= windX / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
windY:= windY / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
end else
begin
windX:= windX / sqrt2;
windY:= windY / sqrt2;
end;

veloX:= veloX + windX;
veloY:= veloY + windY;
veloX:= veloX + gravity * (xe - xs) / dist;
veloY:= veloY + gravity * (ye - ys) / dist;

if hypot(veloX, veloY) > maxStep then
begin
randomDist:= maxStep / 2.0 + random(round(maxStep) div 2);
veloMag:= sqrt(veloX * veloX + veloY * veloY);
veloX:= (veloX / veloMag) * randomDist;
veloY:= (veloY / veloMag) * randomDist;
end;

lastX:= Round(xs);
lastY:= Round(ys);
xs:= xs + veloX;
ys:= ys + veloY;

if (lastX <> Round(xs)) or (lastY <> Round(ys)) then
MoveMouse(Round(xs), Round(ys));

W := (Random(100/MSP))*3;
if (W < 5) then
W := 5;
wait(W);
lastdist:= dist;
until(hypot(xs - xe, ys - ye) < 1)

if (Round(xe) <> Round(xs)) or (Round(ye) <> Round(ys)) then
MoveMouse(Round(xe), Round(ye));

MouseSpeed := MSP;
end;

{*******************************************************************************
Procedure BrakeMMouse(eX, eY, ranX, ranY: Integer);
By: Flight
*******************************************************************************}

procedure BrakeMMouse(eX, eY, ranX, ranY: Integer);
var
randSpeed: extended;
X,Y: integer;
begin
randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
GetMousePos(X, Y);
BrakeWindMouse(X, Y, eX, eY, 9, 5, 10.0 / randSpeed, 15.0 / randSpeed, 10.0 * randSpeed);
end;

{*********************************************
Procedure DragM;
By: NaumanAkhlaQ
Description: Leftclicks StartX, StartY and
drags mouse to EndX, EndY..
**********************************************}

Procedure DragM(StartX, StartY, SRandX, SRandY, EndX, EndY, ERandX, ERandY: Integer);
begin
MMouse(StartX, StartY, SRandX, SRandY);
Wait(150 + Random(20));
GetMousePos(StartX, StartY);
HoldMouse(StartX, StartY, mouse_left);
Wait(250 + Random(320));
MMouse(EndX, EndY, ERandX, ERandY);
Wait(250 + Random(120));
GetMousePos(EndX, EndY);
ReleaseMouse(EndX, EndY, mouse_left);
end;


{*********************************************
Function CountNatures;
By: GOOGLE
Description: Counts The Nature Runes After
Being Crafted And Prints to Progress Report.
**********************************************}

Function CountNatures: Integer;
Begin
If FindBitMapTolerancein(Nature, X, Y, MIX1, MIY1, MIX2, MIY2, 55) then
Count := GetAmount(X,Y);
Result:= Count;
End;

{*********************************************
Procedure ProgressReport;
By: GOOGLE
Description: Proggy in Debug w/ ActionText
For Showing Which Procedure its on.
**********************************************}

Procedure ProgressReport;
Begin
ClearDebug;
RunesPerHour := Round((Runecount)/ (GetTimeRunning / 3600000.0));
Clock := [0,0,0];
ConvertTime(GetTimeRunning,Clock[0],Clock[1],Clock[2]);
WriteLn('=-=-=-=-=-=- NatureRcGraahk -=-=-=-=-=-=-=-=-=');
WriteLn('=-=-=-=-=-=-=-=-By Google-=-=--=-=-=-=-=-=-=-=');
WriteLn('Time Running ' +tostr(Clock[0])+':'+tostr(Clock[1])+':'+tostr(Clock[2]));
WriteLn('Runs Done:' +IntToStr(runs));
WriteLn('Natures Made:' +IntToStr(RuneCount));
WriteLn('Nats Per Hour:' +IntToStr(RunesPerHour));
WriteLn('=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=');
End;

{*******************************************************************************
Function UsingFamiliar: Boolean;
By: Flight
Description: Returns if we currently have a Summoning familiar.
*******************************************************************************}

Function UsingFamiliar: Boolean;
Begin
Result := FindColorTolerance(X,Y,11192179,695,130,720,155,20);
End;

{***********************************************
Function ChargePoints: Boolean;
By: Google
Description: Returns The Orange Number Color
For Summoning.
************************************************}

Function ChargePoints: Boolean;
Begin
//Result := FindcolorTolerance(X,Y,2070783,731,151,728,151,20);
Result := FindcolorTolerance(X,Y,65535,728,146,730,148,20);
Result := FindcolorTolerance(X,Y,2070783,730,144,730,151,20);
End; {Orange^^}

{*********************************************
Procedure WEssence;
By: GOOGLE
Description: Handles Withdrawing Essence.
**********************************************}

Procedure WEssence;
Begin
Begin
If FindBitmapToleranceIn(Ess, X, Y, 35, 85, 480, 295, 45) then
Begin
HumanMMouse(X, Y, 5, 5);
Wait(150 + Random(50));
ClickMouse2(False);
Wait(200 + Random(50));
ChooseOption('All');
End;
End;
End;

{*********************************************
Procedure DEssence;
By: GOOGLE
Description: Handles Depositing Essence From
The Invetory.
**********************************************}

Procedure DEssence;
Begin
Begin
If FindBitMapTolerancein(Ess, X, Y, MIX1, MIY1, MIX2, MIY2, 45) Then
Begin
HumanMMouse(X, Y, 5, 5);
ClickMouse2(False);
Wait(RandomRange(700, 400));
ChooseOption('Deposit-5');
End;
End;
End;

{*********************************************
Procedure DepositNat;
By: GOOGLE
Description: Handles Depositing The Crafted
Nature Runes From the Invetory.
**********************************************}

Procedure DepositNat;
Begin
If FindBitMapTolerancein(Nature, X, Y, MIX1, MIY1, MIX2, MIY2, 55) then
Begin
HumanMMouse(X, Y, 4,4);
ClickMouse2(False);
Wait(150 + Random(100));
ChooseOption('Deposit-All');
End;
End;

{*********************************************
Function WaitXpIncrease: Boolean;
By: S1n
**********************************************}

function WaitXPIncrease(Time:Integer):Boolean;
var
First,Second,t:Integer;
begin
First := GetXPBarTotal;
MarkTime(T);
repeat
wait(10);
Second := GetXPBarTotal;
if TimeFromMark(t) > Time then
begin
Result := False;
Exit;
end;
until(Second > First);
Result := True;
end;


{*********************************************
Procedure OpenB;
By: GOOGLE
Description: Opens The Castle Wars Bank
If It Fails It Will Retry 3 Times And Log
Out If It Doesn't Get To The Bank Screen.
**********************************************}

Procedure OpenB;
Begin
Repeat
OpenBankChest(SRL_BANK_CW);
Wait(1);
Until(BankScreen);
If Not (BankScreen) Then
Begin
Repeat
OpenBankChest(SRL_Bank_CW);
Tries := Tries+1
Until(BankScreen)Or(Tries > 10)
If (Tries > 10) Then
Logout;
End;
End;

{*********************************************
Procedure WalkCwChest;
By: GOOGLE
Description: Finds The Bank Symbol At CastleWars
And Walks To It, Will Rety 5 Times If It Fails
To Find The Symbol.
**********************************************}

Procedure WalkCwChest;
Begin
If ((Findsymbol(X,Y,'Bank'))) Then
Begin
MMouse(X,Y,3,3);
Wait(100 + Random(50));
ClickMouse2(True)
Wait(3750 + Random(700));
End;
If (Not((Findsymbol(X,Y,'Bank')))) Then
Begin
Repeat
Wait(600 + Random(200));
Tries := Tries+1
Until((Findsymbol(X,Y,'Bank')))Or(Tries > 5)
If (Tries > 5) Then
Logout;
End;
End;

{*********************************************
Procedure WithdrawSupps;
By: GOOGLE
Description: Finds The Familiar In The Bank
Withdraws It And Summons it, Using Multiple DTMs
Becasue Of Item Clipping Lately.
**********************************************}

Procedure WithdrawSupps;
Begin
If UsingFamiliar = False Then
Begin
If FindBitMapTolerancein(Pouch, X, Y, MSX1, MSY1, MSX2, MSY2, 15) Then
Begin
HumanMMouse(X, Y, 3, 3);
ClickMouse2(True);
Wait(200 + Random(150));
End;
CloseBank;
Wait(400 + Random(340));
GameTab(Tab_Inv);
If FindBitMapTolerancein(Pouch, X, Y, MIX1, MIY1, MIX2, MIY2, 15) Then
Begin
HumanMMouse(X, Y, 3, 3);
ClickMouse2(False);
Wait(75 + Random(15));
ChooseOption('Summon');
End;
OpenBankChest(SRL_BANK_CW);
If FindBitMapTolerancein(Pouch, X, Y, MIX1, MIY1, MIX2, MIY2, 15) Then
Begin
HumanMMouse(X, Y, 3, 3);
ClickMouse2(False);
Wait(100 + Random(50));
ChooseOption('Deposit-All');
End;
End;
End;

{*********************************************
Function Teleport: Boolean;
By: GOOGLE
Description: Goes To The Equipment Tab + Ring
Slot and Teleports, And Checks The Uptext
To See If We Need a New Ring.
**********************************************}

Function Teleport: Boolean;
Begin
Gametab(Tab_Equip);
Wait(175 + Random(25));
MouseBox(680,367,714,398,0);
ChooseOption('Castle');
If FindBitMapTolerancein(Ring, X, Y, MIX1, MIY1, MIX2, MIY2, 15) Then
BrakeMMouse(X, Y, 7, 7);
Wait(1175 + Random(15));
If(IsupText('Ring of duelling (1)'))Then
NeedNewRing:= True;
Gametab(Tab_Inv);
Wait(1675 + Random(225));
FindNormalRandoms;
End;

{*********************************************
Procedure TeleportAltar;
By: GOOGLE
Description: If We Dont Have a Familiar Out
It Will Open Bank And Summon One, If a Familiar
Is Out It Will use Static Coords To The Summoning
Icon and Click Teleport.
**********************************************}


Procedure TeleportAltar;
Begin
MouseBox(696,139,713,152,1); {MMouse(708,143,15,15);}
If UsingFamiliar = False Then
Begin
OpenB;
DEssence;
WithdrawSupps;
WEssence;
End;
Begin
ClickMouse2(True);
FindNormalRandoms;
Repeat
Wait(100);
until(FindNPCChatText('port',ClickLeft));
End;
End;



{*********************************************
Function WithdrawRing: Boolean;
By: GOOGLE
Description: Withdraws Ring of Dueling From
The First Bank Slot In Bank And Equips It.
Uses Static Finding.
**********************************************}

Function WithdrawRing: Boolean;
Begin
If(NeedNewRing)Then
Begin
If FindBitMapTolerancein(Ring, X, Y, MSX1, MSY1, MSX2, MSY2, 15) Then
Begin
BrakeMMouse(X, Y, 7, 7);
ClickMouse2(True)
Wait(735 + Random(135));
End;
If FindBitMapTolerancein(Ring, X, Y, MIX1, MIY1, MIX2, MIY2, 15) Then
Begin
BrakeMMouse(X, Y, 7, 7);
ClickMouse2(False)
Wait(175 + Random(15));
ChooseOption('Wear');
NeedNewRing:= False;
End;
End;
End;

{*********************************************
Function AltarColor: Integer;
By:
Description: ACA Function for the Myterious
Ruins Color.
**********************************************}

function AltarColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.10, 2.20);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 6483106, MSX1, MSY1, MSX2, MSY2, 9);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);

if (X >= 38.93) and (X <= 58.23) and (Y >= 55.15) and (Y <= 79.28) and (Z >= 14.99) and (Z <= 32.95) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

{*********************************************
Procedure Altar;
By: GOOGLE
Description: Finds The Mysterious Ruins
Using Custom ATPA Finding.
**********************************************}

Function Altar:Boolean;
Var
a, h: Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
tmpCTS : Integer;
Begin
If(not(LoggedIn)) Then Exit;
FindNormalRandoms;
While (IsMoving) Do Wait(75 + Random(15));
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.12, 0.72);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, AltarColor, MSX1, MSY1, MSX2, MSY2, 4);
ATPA := TPAtoATPAEx(TPA, 20, 20);
SortATPASize(ATPA,True);

H := High(ATPA);

for a := 0 to H do
Begin
MiddleTPAEx(atpa[a], X, Y);
BrakeMMouse(X, Y, 16, 16);
If WaitUpTextMulti(['Mysterious','ruins'],12000) Then
Begin
ClickMouse2(True);
Writeln('Found Ruins Clicking It');
Result:= True;
Exit;
End;
End;
End;
{
Procedure Altar;
Begin
While (IsMoving) Do Wait(175 + Random(75));
If FindObjCustom(X, Y, ['Mysterious ruins', 'Enter'],[AltarColor], 2) Then
Begin
BrakeMMouse(X, Y, 16, 16);
ClickMouse2(True);
End;
End; }
{
Procedure EnterRuins;
Begin
Altar;
If (Not((Altar))) Then
Begin
Repeat
Wait(600 + Random(200));
Tries := Tries+1
Until((Altar))Or (Tries > 6)
If (Tries > 6) Then
TeleportAltar;
WalkAltar;
End;
End; }

{*********************************************
Procedure EnterClickAltar;
By: GOOGLE
Description: Waits 5 Seconds when Zoning in the
Altar Then uses Static Coords To Click Altar.
**********************************************}

Procedure EnterClickAltar;
Begin
MouseBox(226,6,279,12,3); {HumanMMouse(266,24,15,5);}
If WaitUpTextMulti(['raft','tar','une','rune','run','Cra'],12000) Then
Begin
ClickMouse2(True);
SleepAndMoveMouse(375);
Wait(3000);
CountNatures;
End;
End;

{*********************************************
Procedure WalkAltar;
By: GOOGLE
Description: Uses Sps Walking To Walk From
The Graahk Teleport Spot To The Mysterious
Ruins, If It Gets Lost It Will Re-teleport
And Re-Walk The Path Again.
**********************************************}

Procedure WalkAltar;
Begin
SPS_Setup(RUNESCAPE_SURFACE,['7_11','8_11'])
ToAltar := [Point(3034, 4638), Point(3046, 4638),
Point(3059, 4644), Point(3065, 4640), Point(3071, 4636),
Point(3080, 4636), Point(3086, 4636), Point(3092, 4636),
Point(3100, 4636), Point(3106, 4636), Point(3110, 4636),
Point(3118, 4636), Point(3125, 4636), Point(3132, 4636),
Point(3139, 4637), Point(3145, 4637), Point(3152, 4637),
Point(3159, 4638), Point(3166, 4639), Point(3173, 4639),
Point(3178, 4639), Point(3184, 4639), Point(3192, 4639),
Point(3202, 4641), Point(3210, 4641), Point(3219, 4641),
Point(3228, 4641), Point(3237, 4642), Point(3241, 4642),
Point(3248, 4642), Point(3255, 4642), Point(3263, 4641),
Point(3270, 4640), Point(3276, 4640), Point(3282, 4637),
Point(3286, 4633), Point(3308, 4605)];
SPS_WalkPath(ToAltar);
If SPS_WalkPath(ToAltar) Then
WriteLn('Were At the Altar');
Begin
Altar;
End;
End;

{*********************************************
Procedure ProgressReport;
By: GOOGLE
Description: After it Walks to the Altar It
Will use These Static Coords to Craft again
If Using pouches, Choose Static finding becasue
I Really liked the random pixel movement, never
click around the same area twice.
**********************************************}

Procedure PouchAltar;
Begin
//If FindBitMapTolerancein(Nature, X, Y, MIX1, MIY1, MIX2, MIY2, 55) then
Begin
BrakeMMouse(261,89,50,50);{HumanMMouse Is Botlike Here?}
If WaitUpTextMulti(['raft','tar','une','rune','run','Cra'],12000) Then
Begin
ClickMouse2(True);
//Wait(575 + Random(245));{975}
End;
End;
End;
{*********************************************
Procedure DoNats;
By: GOOGLE
Description: Handles The Pouches When Crafting
At The Altar.
**********************************************}

Procedure DoNats;
Begin
If UsePouches = ('Yes') Then
Begin
If FindDTM(Giant, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
BrakeMMouse(X, Y, 7, 7);
Wait(100 + Random(50));
ClickMouse2(True);
SleepandMoveMouse(300);
//WaitXPIncrease(6000);
End;
PouchAltar;
Wait(1350 + Random(200));
If FindDTM(Large, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
BrakeMMouse(X, Y, 7, 7);
Wait(100 + Random(50));
ClickMouse2(True);
End;
If FindDTM(Medium, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
BrakeMMouse(X, Y, 7, 7);
Wait(100 + Random(50));
ClickMouse2(True);
End;
If FindDTM(Small, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
BrakeMMouse(X, Y, 7, 7);
Wait(100 + Random(50));
ClickMouse2(True);
End;
PouchAltar;
WaitXPIncrease(6000);
Teleport;
WalkCwChest;
If UsePouches = ('No') Then
Begin
EnterClickAltar;
Wait(200 + Random(200));
CountNatures;
ProgressReport;
Wait(150 + Random(75));
Teleport;
WalkCwChest;
End;
End;
End;


{*********************************************
Function GiantDecay: Boolean;
By: GOOGLE
Description: Finds The Giant Decayed Pouch in
The First Slot using ATPA.
**********************************************}

Function GiantDecay: Boolean;
Var
a : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
MP : TPoint;
tmpCTS : Integer;
Box : TBox;
Begin
if(not(LoggedIn))then Exit;
if(not(FindNormalRandoms))then
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.42, 0.08);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 3356987, MIX1, MIY1, MIX2, MIY2, 10);
SortTPAFrom(TPA, Point(MSCX, MSCY));
ATPA := TPAtoATPAEx(TPA, 20, 20);
For a := 0 to High(ATPA) Do
Begin
MP := MiddleTPA(ATPA[a]);
Box := IntToBox((MP.X - 5), (MP.Y - 5), (MP.X + 5), (MP.Y + 5));
Result := True;
End;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
End;

{*********************************************
Procedure ObeliskColor;
By: GOOGLE
Description: ACA Function for the Obelisk Color.
**********************************************}

function ObeliskColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.06, 0.47);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 5205851, MSX1, MSY1, MSX2, MSY2, 8);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);

if (X >= 7.12) and (X <= 17.35) and (Y >= 9.00) and (Y <= 22.22) and (Z >= 5.62) and (Z <= 14.20) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

{*********************************************
Procedure FindObelisk;
By: GOOGLE
Description: Finds The Obelisk With Custom Finding
Method + ACA Color Function.
**********************************************}

Function FindObelisk:Boolean;
Var
a, h: Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
tmpCTS : Integer;
Begin
If(not(LoggedIn)) Then Exit;
FindNormalRandoms;
While (IsMoving) Do Wait(175 + Random(75));
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.12, 0.72);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, ObeliskColor, MSX1, MSY1, MSX2, MSY2, 2);
ATPA := TPAtoATPAEx(TPA, 20, 20);
SortATPASize(ATPA,True);

H := High(ATPA);

for a := 0 to H do
Begin
MiddleTPAEx(atpa[a], X, Y);
BrakeMMouse(X, Y, 5, 5);
If WaitUpTextMulti(['Small Obelisk', 'lisk', 'obe', 'mall'],12000) Then
Begin
ClickMouse2(True);
Wait(1375 + Random(150));

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

Result:= True;
Exit;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;


{
Procedure FindObelisk;
Begin
While (IsMoving) Do Wait(175 + Random(75));
If FindObjCustom(X, Y, ['Small Obelisk', 'obe'],[ObeliskColor], 10) Then
Begin
BrakeMMouse(X, Y, 16, 16);
ClickMouse2(True);
End;
End; }

{*********************************************
Procedure ObeliskAltar;
By: GOOGLE
Description: Uses Sps Walking From The Obelisk
To The Altar.
**********************************************}

Procedure ObeliskAltar;
Begin
FindNormalRandoms;
SPS_Setup(RUNESCAPE_SURFACE,['7_11','8_11']);
ObAltar := [Point(3247, 4560), Point(3259, 4559), Point(3264, 4559), Point(3266, 4565), Point(3270, 4569), Point(3273, 4576), Point(3277, 4576), Point(3302, 4596)];
//ObAltar := [Point(3247, 4561), Point(3250, 4561),
//Point(3254, 4558), Point(3260, 4558), Point(3267, 4560),
//Point(3274, 4565), Point(3278, 4570), Point(3284, 4572),
//Point(3288, 4576), Point(3295, 4582), Point(3309, 4590)];
SPS_WalkPath(ObAltar);
If SPS_WALKPATH(ObAltar) Then
Begin
FindNormalRandoms;
WriteLn('At The Altar');
//Altar;
End;
End;

{*********************************************
Procedure ToObelisk;
By: GOOGLE
Description: Uses Sps Walking From The Graahk
Teleport Spot To The Obelisk, If It Gets lost
It Will Reteleport with Graahk and WalkAltar.
**********************************************}

Procedure ToObelisk;
Begin
//If ChargePoints = True Then
Begin
SPS_Setup(RUNESCAPE_SURFACE,['7_11','8_11'])
ToObe := [Point(3041, 4641), Point(3049, 4639), Point(3052, 4639), Point(3060, 4639), Point(3065, 4639), Point(3068, 4639), Point(3071, 4638), Point(3080, 4636), Point(3089, 4636), Point(3104, 4636), Point(3110, 4634), Point(3116, 4632), Point(3123, 4629), Point(3127, 4628), Point(3133, 4627), Point(3140, 4625), Point(3147, 4622), Point(3152, 4618), Point(3159, 4611), Point(3163, 4605), Point(3172, 4598), Point(3173, 4592), Point(3177, 4590), Point(3181, 4585), Point(3185, 4579), Point(3192, 4572), Point(3236, 4563)];
//ToObe := [Point(3039, 4640), Point(3054, 4640),
//Point(3066, 4642), Point(3079, 4639), Point(3094, 4638),
//Point(3101, 4637), Point(3114, 4632), Point(3130, 4626),
//Point(3140, 4624), Point(3149, 4619), Point(3162, 4612),
//Point(3167, 4601), Point(3173, 4595), Point(3176, 4586),
// Point(3179, 4577), Point(3187, 4568), Point(3196, 4562),
//Point(3231, 4565)];
SPS_WalkPath(ToObe);
If SPS_WALKPATH(ToObe) Then
WriteLn('At Obe');
Begin
FindObelisk;
ObeliskAltar;
End;
End;
End;

{*********************************************
Procedure WithdrawPouch;
By: GOOGLE
Description: If Familiar Is Not Out During Banking
It Will Find The Pouch And Summon It.
**********************************************}

Procedure WithdrawPouch;
Begin
Wait(500+random(250));
If UsingFamiliar = False Then
Begin
HumanMMouse(98,108,4,4);
Wait(450 + Random(200));
If IsupText('Spirit graahk pouch') Then
ClickMouse2(True);
Wait(200 + Random(100));
End;
If UsingFamiliar = False Then
HumanMMouse(317,110,4,4);
Wait(450 + Random(237));
If IsupText('Summoning potion') Then
Begin
WriteLn('Found Potion Withdrawing');
Wait(450 + Random(200));
ClickMouse2(True);
CloseBank;
GameTab(Tab_Inv);
Wait(400 + Random(340));
If UsingFamiliar = False Then
HumanMMouse(663,232,2,2);
Wait(450 + Random(200));
If IsupText('Summoning potion') Then
Begin
ClickMouse2(True)
Wait(400 + Random(200));
End;
Begin
Writeln('Familiar Still Out');
End;
End;
End;

{*********************************************
Function NPCContact: Boolean;
By: GOOGLE
Description: Handles The Npc Repair When "FillPouch"
Finds The Degraded Pouch.
**********************************************}

Function NPCContact: Boolean;
Begin
MouseSpeed := 24
Wait(300 + Random(350));
DEssence;
WriteLn('Starting Npc Repair')
Wait(250 + Random(150));
If FindBitMapTolerancein(Air, X, Y, MSX1, MSY1, MSX2, MSY2, 15) Then
Begin
MMouse(X,Y,7,7);
ClickMouse2(True);
Wait(100 + Random(50));
ClickMouse2(True);
Wait(400 + Random(100));
If FindBitMapTolerancein(Cosmic, X, Y, MSX1, MSY1, MSX2, MSY2, 25) Then
Begin
MMouse(X,Y,7,7);
ClickMouse2(True);
Wait(400 + Random(100));
Begin
If FindBitMapTolerancein(Astral, X, Y, MSX1, MSY1, MSX2, MSY2, 25) Then
Begin
MMouse(X,Y,7,7);
ClickMouse2(True);
Wait(400 + Random(100));
End;
End;
CloseBank;
Wait(1200 + Random(50));
GameTab(Tab_Magic);
If FindDTM(NpcSpell, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
MMouse(x,y,4,4);
ClickMouse2(True);
GameTab(Tab_Inv);
Wait(95 + Random(35));
MMouse(487, 219, 0, 0);
ClickMouse2(True);
Wait(175 + Random(75));
If FindDTM(DarkMage, X, Y, MSX1, MSY1, MSX2, MSY2) Then
Begin
MMouse(x,y,5,5);
ClickMouse2(True);
Wait(6000 + Random(250));
Begin
Repeat
wait(100);
Until(FindNPCChatText('ello',Nothing));
MouseBox(233,463,288,471,1);
Repeat
wait(100);
Until(FindNPCChatText('break',Nothing));
MouseBox(233,463,288,471,1);
Repeat
wait(100);
Until(FindNPCChatText('agic',Nothing));
MouseBox(233,463,288,471,1);
Repeat
wait(100);
Until(FindNPCChatText('byss',Nothing));
MouseBox(233,463,288,471,1);
Repeat
wait(100);
Until(FindNPCChatText('needed',Nothing));
MouseBox(233,463,288,471,1);
Repeat
wait(100);
Until(FindNPCChatText('hat',Nothing));
MouseBox(233,463,288,471,1);
Repeat
wait(100);
Until(FindNPCChatText('pouches',ClickLeft));
Repeat
wait(100);
Until(FindNPCChatText('grading',Nothing));
MouseBox(233,463,288,471,1);
wait(1500);
If FindNPCChatText('leave',Nothing) Then
Begin
GameTab(tab_Inv);
OpenBankChestEdge(SRL_BANK_CW);
Repeat
wait(100);
Until(BankScreen);
End;
End;
End;
End;
End;
End;
End;

{*********************************************
Function FillPouch: Boolean;
By: GOOGLE
Description: Handles Filling The Pouches
If It Finds the Giant Degrade It Will Then
Do NpcRepair.
**********************************************}

Function FillPouch: Boolean;
Begin
If UsePouches =('Yes') then
Begin
If GiantDecay Then
Begin
NpcContact;
WEssence;
End else
Begin
MouseSpeed := 30;
WEssence;
Wait(200 + Random(200));
End;
If FindDTM(Giant,x,y,MIX1,MIY1,MIX2,MIY2)then
Begin
HumanMMouse(X, Y, 7, 7);
ClickMouse2(False);
ChooseOption('Fill');
Wait(100 + Random(50));
WEssence;
End Else
Wait(200 + Random(40));
If FindDTM(Large,x,y,MIX1,MIY1,MIX2,MIY2)then
Begin
HumanMMouse(X, Y, 7, 7);
ClickMouse2(False);
ChooseOption('Fill');
End;
If FindDTM(Medium,x,y,MIX1,MIY1,MIX2,MIY2)then
Begin
HumanMMouse(X, Y, 7, 7);
ClickMouse2(False);
ChooseOption('Fill');
End;
If FindDTM(Small,x,y,MIX1,MIY1,MIX2,MIY2)then
Begin
HumanMMouse(X, Y, 7, 7);
ClickMouse2(False);
ChooseOption('Fill');
MouseSpeed := 22;
End;
Begin
End;
WEssence;
If UsePouches = ('No') Then
WEssence;
End;
MouseSpeed := 22;
End;

{*********************************************
Procedure HandleBanking;
By: GOOGLE
Description: Handles All Banking.
**********************************************}

Procedure HandleBanking;
Begin
If (BankScreen) or (PinScreen) Then
Begin
If (PinScreen) Then
Repeat
InPin(Players[0].Pin);
Until (BankScreen);
If (Bankscreen) Then
Begin
Depositnat;
Wait(350 + Random(220));
WithdrawRing();
Wait(350 + Random(220));
WithdrawSupps;
FillPouch;
End;
End;
End;

{*********************************************
Procedure SetupInvetory;
By: GOOGLE
Description: Just A Feat I Added That Will
Withdraw Pouches Out Of The Bank And Set Them
Up In Invetory.
**********************************************}

Procedure SetupInvetory;
Begin
If UseSetup =('Yes') Then
Begin
OpenB;
End;
If FindDTM(Giant, X, Y, MSX1, MSY1, MSX2, MSY2) Then
Begin
HumanMMouse(X, Y, 7, 7);
Wait(200 + Random(150));
ClickMouse2(True);
Wait(1500 + Random(200));
End;
If FindDTM(Large, X, Y, MSX1, MSY1, MSX2, MSY2) Then
Begin
HumanMMouse(X, Y, 7, 7);
Wait(200 + Random(150));
ClickMouse2(True);
Wait(1500 + Random(200));
End;
If FindDTM(Medium, X, Y, MSX1, MSY1, MSX2, MSY2) Then
Begin
HumanMMouse(X, Y, 7, 7);
Wait(200 + Random(150));
ClickMouse2(True);
Wait(1500 + Random(200));
End;
If FindDTM(Small, X, Y, MSX1, MSY1, MSX2, MSY2) Then
Begin
HumanMMouse(X, Y, 7, 7);
Wait(200 + Random(150));
ClickMouse2(True);
Wait(700 + Random(200));
End;
If FindDTM(Large, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
Wait(600 + Random(200));
MMouse(X, Y, 7, 7);
Wait(150 + Random(50));
HoldMouse(X, Y, Mouse_Left);
Wait(400 + Random(320));
MMouse(579, 269, 581, 268);
Wait(600 + Random(150));
GetMousePos(EndX, EndY);
Wait(100 + Random(300));
ReleaseMouse(579, 269, Mouse_Left);
End;
If FindDTM(Medium, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
Wait(600 + Random(200));
MMouse(X, Y, 7, 7);
Wait(150 + Random(50));
HoldMouse(X, Y, Mouse_Left);
Wait(400 + Random(320));
MMouse(578, 304, 578, 304);
Wait(600 + Random(150));
GetMousePos(EndX, EndY);
Wait(100 + Random(300));
ReleaseMouse(579, 303, Mouse_Left);
End;
If FindDTM(Small, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
Wait(600 + Random(200));
MMouse(X, Y, 7, 7);
Wait(150 + Random(50));
HoldMouse(X, Y, Mouse_Left);
Wait(400 + Random(320));
MMouse(579, 339, 579, 341);
Wait(600 + Random(150));
GetMousePos(EndX, EndY);
Wait(400 + Random(300));
ReleaseMouse(579, 339, Mouse_Left);
Wait(400 + Random(200));
End;
End;


Begin
Smart_Server := 18;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;


ClearDebug;
SetupSRL;
CallThangs;
Addonterminate('FreeThangs')
DeclarePlayers;
LoginPlayer;
SetAngle(SRL_ANGLE_HIGH);
FindNormalRandoms;
Repeat
ProgressReport;
OpenB;
HandleBanking;
TeleportAltar;
ToObelisk;
WalkAltar;
EnterClickAltar;
DoNats;
Inc(Runs);
IncEx(RuneCount, CountNatures);
Until(Not (Loggedin));
FreeThangs;
Terminatescript();
End.

Gala

2012-05-03 17:59:40

Hi GOOGLE

I don't have much time to have n better look at your script, but it looks good so far.
- I love the way you commented the functions (very easy to read and to understand)
- standards are ok
- added randomness
- DTM/TPA used
- advanced mouse methods

I would add some failsaves walking methods like TPA walking with symbols or so. And you took the autocolor from ACA, is that right? It is better to create own functions :)

I will hold my vote for now, because I don't really know you.

Edit: Yes, from me :)

cause

2012-05-04 12:28:50

A yes from me. Great presentation, very professional. As Gala mentioned, the commenting is really great.

It would be cool if you used some other method other than SPS but hey, it works right?

Google

2012-05-04 12:43:17

From: cause
A yes from me. Great presentation, very professional. As Gala mentioned, the commenting is really great.

It would be cool if you used some other method other than SPS but hey, it works right?


Yeah right :) I fell in love with it SPS first time I used it, and thanks I tried to make it as clean as I could.

Google

2012-05-06 11:56:43

Just going to give my thread a bump haven't seen any activity in 2 days.

Abu

2012-05-06 12:19:15

From: GOOGLE
Just going to give my thread a bump haven't seen any activity in 2 days.


Bumping the thread actually moves it to the bottom of the pile :p

Older threads stay at the top.

Google

2012-05-06 12:33:41

From: abu_jwka
Bumping the thread actually moves it to the bottom of the pile :p

Older threads stay at the top.


Interesting to know, thanks.

Griff

2012-05-06 13:19:58

Yes, well done :)

Google

2012-05-06 13:24:04

From: Griff
Yes, well done :)


Thank you

+ Can I get a little input on the " No's " I'm getting what I need to improve please.

[XoL]

2012-05-06 16:49:10

Voted yes, but I would like to see some more "community" assistance. I am pretty sure you have not released any scripts to the general public (prove me wrong please, if you did and I just didn't see it) it is fine if you didn't, but I like to see how people rate the script after use.

I noticed you helped someone in the help forums, nice job. Would like to see more of this.
–

Overall nice app.

Gucci

2012-05-06 18:14:27

Definitely nice scripts, like the way you comment on the functions. But I would like to see you more active on the forums. Will hold my vote for now

Edit: Voted Yes :D Good Luck

Google

2012-05-06 18:20:56

From: Gucci
Definitely nice scripts, like the way you comment on the functions. But I would like to see you more active on the forums. Will hold my vote for now


Alright, and thank you guys for commenting really appreciate it.

tehq

2012-05-06 18:37:20

Voting yes. Overall the standards are good, you use a large amount of TPAs and DTMs, you have a positive attitude, and appear fairly active. I like that I've seen you helping out other users; keep that up! Good luck

Google

2012-05-06 18:42:55

From: R4nd0m
Voted yes, but I would like to see some more "community" assistance. I am pretty sure you have not released any scripts to the general public (prove me wrong please, if you did and I just didn't see it) it is fine if you didn't, but I like to see how people rate the script after use.

I noticed you helped someone in the help forums, nice job. Would like to see more of this.
–

Overall nice app.


I have the public scripts in my signature that will direct you to the thread if you click on them, but my public's are extremely basic as I only made them cause i saw requests.

From: Gucci
Definitely nice scripts, like the way you comment on the functions. But I would like to see you more active on the forums. Will hold my vote for now


I will work on that.

From: tehq
Voting yes. Overall the standards are good, you use a large amount of TPAs and DTMs, you have a positive attitude, and appear fairly active. I like that I've seen you helping out other users; keep that up! Good luck


Thank you.

NKN

2012-05-06 19:45:31

Just a pointer, for progress report.

For time running, you can do:

Writeln('*Total Time: ' + TimeRunning);

It'll automatically get your time running in Seconds/Minutes/Hours. :D

Google

2012-05-06 19:51:32

From: NKN
Just a pointer, for progress report.

For time running, you can do:

Writeln('*Total Time: ' + TimeRunning);

It'll automatically get your time running in Seconds/Minutes/Hours. :D


:thumbsup: I'll change that thanks.

[XoL]

2012-05-06 19:54:15

Oh I apologize :), didn't see the signature!
Basic is good enough for me, I judge on character first then scripting ability.

Joe

2012-05-06 20:21:31

As I know from a few days ago, the simba tags are really dumb and mess up standards. I like how it looks, its a good long script, and you have some nice activity and a good post count. Yes from me.
Good luck and don't give up

Google

2012-05-06 20:22:57

From: JOEbot
As I know from a few days ago, the simba tags are really dumb and mess up standards. I like how it looks, its a good long script, and you have some nice activity and a good post count. Yes from me.
Good luck and don't give up


Thank you for the support.

bg5

2012-05-06 21:38:59

Looks solid ,yes from me.

BobboHobbo

2012-05-07 07:41:30

From: JOEbot
As I know from a few days ago, the simba tags are really dumb and mess up standards. I like how it looks, its a good long script, and you have some nice activity and a good post count. Yes from me.
Good luck and don't give up


Simba tags seem to be working fine?

And I vote yes, for the reasons stated above. The only reason as you would get No's would be your Longevity here at the forums, some people dont believe such new members should be granted SRL Members, others think otherwise, so goodluck, script is looking great.

Google

2012-05-07 10:18:31

From: BobboHobbo
Simba tags seem to be working fine?

And I vote yes, for the reasons stated above. The only reason as you would get No's would be your Longevity here at the forums, some people dont believe such new members should be granted SRL Members, others think otherwise, so goodluck, script is looking great.


Works fine for me too, and thank you appreciate the feedbacks.

YoHoJo

2012-05-08 21:42:48

Bump. In him.

Harry

2012-05-08 21:52:56

Just one question, are you the same guy who said he was rage-quitting villavu to go to RSBot a month or two ago? Or am I confusing you with someone else who made similar scripts?

Sin

2012-05-08 21:56:08

From: Harry
Just one question, are you the same guy who said he was rage-quitting villavu to go to RSBot a month or two ago? Or am I confusing you with someone else who made similar scripts?


This is what i was wondering tbh…

Google

2012-05-08 22:15:37

From: Harry
Just one question, are you the same guy who said he was rage-quitting villavu to go to RSBot a month or two ago? Or am I confusing you with someone else who made similar scripts?


Um what show me the post, I would love to see it, I was arguing with ggzz because he was down talking on Powerbot when there is truly nothing wrong with it. There is no implement on saying anything about leaving villavu??


From: Sin
This is what i was wondering tbh…


And I know you don't like me already and if you want to vote no because of that than that is nothing I can do.

I was encourage by quite a few SRL members to apply and I'm looking forward to keep my ongoing contribution to the community, and I am actually very pleased with my stay here.

Abu

2012-05-09 00:44:08

From: GOOGLE

And I know you don't like me already and if you want to vote no because of that than that is nothing I can do.


He didn't say he was voting no, he just said he was also wondering if you said you wanted to leave Villavu.

No need to get all defensive…

Sin

2012-05-09 09:50:24

From: GOOGLE

And I know you don't like me already and if you want to vote no because of that than that is nothing I can do.


You're assuming things like abu said.
I haven't said anywhere that I dislike you, i even helped you over Skype lol.

Er1k

2012-05-09 10:48:52

I honestly hated your all capitals name but you did a nice job, so why not? ;)

Google

2012-05-09 11:37:47

From: Sin
You're assuming things like abu said.
I haven't said anywhere that I dislike you, i even helped you over Skype lol.

Alright well I'm sorry took it the wrong way.

From: Er1k
I honestly hated your all capitals name but you did a nice job, so why not? ;)


Ah I do too unfortunately I can't change it:(.

Kyle Undefined

2012-05-09 12:19:47

You can post in the Name change thread ;)

Google

2012-05-09 12:48:26

From: Kyle Undefined
You can post in the Name change thread ;)


Used my name change, don't think i would be allowed to down caps the name though.

Google

2012-05-10 17:50:43

Bumping Thread.

NKN

2012-05-10 18:02:48

Bumping moves it to the bottom of the list, just saying….


Edit: And when bumping, don't double post, delete your last one if you -have- to bump.

Joe

2012-05-10 18:40:51

From: NKN
Bumping moves it to the bottom of the list, just saying….


Edit: And when bumping, don't double post, delete your last one if you -have- to bump.


I don't think bumping moves it to the bottom of the list… what about gravedigging? That just moves it farther down the list? :p

Gucci

2012-05-10 19:05:52

From: JOEbot
I don't think bumping moves it to the bottom of the list… what about gravedigging? That just moves it farther down the list? :p


It seems like it actually only moves it to the bottom in the Appliances section. Everywhere else it moves the bumped thread to the top

Google

2012-05-10 20:18:29

From: NKN
Bumping moves it to the bottom of the list, just saying….

Yohojo's told me bumping it brings it to the top that's why he bumped me last.

punkd

2012-05-11 04:36:41

Bumped scripts go to the bottom because most applications that are ending don't get much post making it easier for admins to accept them.

Sin never said he would vote no, He simply wondered if it was the same person he remembered. I'm hoping to see a bit more positive activity from you.

But overall, The scripts look nice. I'll take a good look through them in the morning when My brain can function as it should. Edit when I'm ready to vote.

Google

2012-05-11 13:15:52

From: punkd
Bumped scripts go to the bottom because most applications that are ending don't get much post making it easier for admins to accept them.

Sin never said he would vote no, He simply wondered if it was the same person he remembered. I'm hoping to see a bit more positive activity from you.

But overall, The scripts look nice. I'll take a good look through them in the morning when My brain can function as it should. Edit when I'm ready to vote.


I am going through exams right now just finished for the week but I have been very busy and not able to use my computer.

P1nky

2012-05-11 13:32:21

Yes Good Job.

Harry

2012-05-11 13:33:09

I personally very dislike how eager you are to get in, and how defensive you got. :/

P1nky

2012-05-11 13:35:55

From: Harry
I personally very dislike how eager you are to get in, and how defensive you got. :/


Yeah, just be patient… it hasn't even been 2 weeks. You will get in, I remember when I was scared due to me being unsure if I was going to make it lol.

Google

2012-05-11 14:07:52

From: Harry
I personally very dislike how eager you are to get in, and how defensive you got. :/


How am I eager? I like to keep my thread active because i'm quite interested in hearing the feedback, that's why I added to the top of my thread if you vote leave feedback for me. I like to know why I am getting voted yes, and if voted no what I need to improve on.

+ Personally I got defensive because of side issues no need to bring them up.

Abu

2012-05-11 14:12:03

From: GOOGLE

+ Personally I got defensive because of side issues no need to bring them up.


Actually it was completely relevant because it was directly related towards your attitude, which is an important factor when applying for members.

No problems with it though in my opinion :)

Joe

2012-05-11 16:06:01

From: abu_jwka
Actually it was completely relevant because it was directly related towards your attitude, which is an important factor when applying for members.

No problems with it though in my opinion :)


As Abu said, your attitude is a huge factor in your application. Your attitude as an SRL member will reflect on the rest of us.

@Harry: I don't really get how being eager to become an SRL member is bad- I checked my poll everyday for the entire poll to check my feedback and vote status. I was bursting at the seams to join the ranks! I don't see that being a bad thing- but we are all entitled to our opinions.

Abu

2012-05-11 16:21:02

From: JOEbot

I checked my poll everyday for the entire poll to check my feedback and vote status. I was bursting at the seams to join the ranks!


Wow… I forgot I even applied!

Thanks for the vote though, I almost forgot I even applied but I'm overwhelmed by the change in votes from the first day.

Joe

2012-05-11 16:50:38

From: abu_jwka
Wow… I forgot I even applied!


Abu, you are one cool cat. One of the biggest events of your life is happening and you forget? Groovy… :garfield:

'Toxin

2012-05-11 17:19:21

Scripts look good, however as others previously stated, attitude is what seems to be the limiting determinant here if you ask me, and for that I voted no. Everyone here is trying to help you out, it takes time to become a member, and with bumping a thread such as this, as well as double posting… Not really cool of you ask me. Anyway, good luck.

Google

2012-05-12 00:41:44

[QUOTE='Toxin;1015879]Scripts look good, however as others previously stated, attitude is what seems to be the limiting determinant here if you ask me, and for that I voted no. Everyone here is trying to help you out, it takes time to become a member, and with bumping a thread such as this, as well as double posting… Not really cool of you ask me. Anyway, good luck.[/QUOTE]

That's fine I'm just here to learn and contribute thanks for your honestly! :)

Sir Ducksworthy

2012-05-25 17:09:28

Your script logic if quite off tbh but it still work's so it'll do :) You could change a lot of things to decrease processing time of some actions in the script but I guess most people applying to be member's have just really only got a firm grip on most functions n stuff so I guess people shouldn't really be expecting this from you yet, I know I advanced 15x more after being a member for a month or two. Is this the one your selling on sythe cuz I'd luv 2 see the improvement's you've made to it so I hope you send it to me sometime soon 2 review for now my votes on hold.

Google

2012-05-25 20:25:12

From: leetsxc
Your script logic if quite off tbh but it still work's so it'll do :) You could change a lot of things to decrease processing time of some actions in the script but I guess most people applying to be member's have just really only got a firm grip on most functions n stuff so I guess people shouldn't really be expecting this from you yet, I know I advanced 15x more after being a member for a month or two. Is this the one your selling on sythe cuz I'd luv 2 see the improvement's you've made to it so I hope you send it to me sometime soon 2 review for now my votes on hold.


Nope this is a very outdated script :) I have completely rewrote all my private scripts and they preform almost 100% better now, and I know the logic is off on some of the functions here but I've learned a-lot more since I have applied.

Sir R. M8gic1an

2012-06-01 07:18:33

In!

~RM