SRL Archive - Archive

NKN - SRL Member Application


NKN

2012-04-24 16:31:08

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


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?



What is your general programming knowledge?
C++,ActionScript3


Are you a member of any other communities?
MPGH


Tell us about yourself…
From: NKN
Well, my name's Chris. I find it fun to program, play football, and Martial Arts.This is also my second application, exactly two weeks from the date Markus said I could re-apply.



Please show us one (or multiple) of your scripts.


program Clayer;
{$DEFINE SMART}
{$i srl/srl.simba}
{$i SPS/SPS.simba}
{$i srl/srl/misc/paintsmart.simba}
//{$i ObjectDTM/ObjDTMInclude.simba} Keep commented out unless using Object DTM's.
var
Ore:Integer;
Const
SRLStats_User = '';
SRLStats_Password = '';
procedure DeclarePlayers;
begin
HowManyPlayers := 1; // This is set to the total amount of players (more on multiplayer later ;)), for now, just keep it set as 1
NumberOfPlayers(HowManyPlayers); // This is a procedure in SRL which sets up player arrays (also, more on that later), this will always be the same
CurrentPlayer := 0; // This is the player to start with; the first player will always be 0 (you'll find out when you learn all about arrays)

Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Nick := ''; // 3-4 lowercase letters from username; used for random event detection
Players[0].Active := True; // Set to true if you want to use Player 0
Players[0].Pin := ''; // Leave blank if the player doesn't have a bank pin
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];
{
Players[1].Name := ''; // Username
Players[1].Pass := ''; // Password
Players[1].Nick := ''; // 3-4 lowercase letters from username; used for random event detection
Players[1].Active := True; // Set to true if you want to use Player 0
Players[1].Pin := ''; // Leave blank if the player doesn't have a bank pin
Players[1].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];}
{
Players[2].Name := ''; // Username
Players[2].Pass := ''; // Password
Players[2].Nick := ''; // 3-4 lowercase letters from username; used for random event detection
Players[2].Active := True; // Set to true if you want to use Player 0
Players[2].Pin := ''; // Leave blank if the player doesn't have a bank pin
Players[2].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];}
{
Players[3].Name := ''; // Username
Players[3].Pass := ''; // Password
Players[3].Nick := ''; // 3-4 lowercase letters from username; used for random event detection
Players[3].Active := True; // Set to true if you want to use Player 0
Players[3].Pin := ''; // Leave blank if the player doesn't have a bank pin
Players[3].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence']; }
end;
procedure Progress;
var
OrePH,XPPH,GPPH:Integer;

begin
OrePH := Round((Ore * 3600) / (GetTimeRunning / 1000));
XPPH := Round(((Ore * 5) * 3600) / (GetTimeRunning / 1000));
GPPH := Round(((Ore * 150) * 3600) / (GetTimeRunning / 1000));
ClearDebug;
Writeln('***********Power Clayer**********');
Writeln('* ~By NKN~ ');
Writeln('*Ore Mined: ' + IntToStr(Ore) + ' (' + IntToStr(OrePH) + ' P/H)');
Writeln('*XP earned: ' + IntToStr(Ore * 5)+ ' (' + IntToStr(XPPH) + ' P/H)');
Writeln('*GP Made: ' + IntToStr(Ore * 275)+ ' (' + IntToStr(GPPH) + ' P/H)');
Writeln('*Total Time: ' + TimeRunning);
Writeln('********************************');
end;
procedure Antiban;
begin
FindNormalRandoms;
case Random(80) of
0: RandomRClick;
2: PickUpMouse;
3: RandomMovement;
4: BoredHuman;
5: ExamineInv;
7: SetAngle(SRL_ANGLE_HIGH);
8: Wait(750 + random(750));
end;
end;
function FindBankTeller(var x, y : Integer) : Boolean;
var
a : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
MP : TPoint;
tmpCTS : Integer;
Box,SearchArea : TBox;
begin
if not LoggedIn then Exit;
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.04,0.27);
SearchArea := IntToBox((MSCX - 200),(MSCY - 100),(MSCX),(MSCY + 150));
SMART_DrawBoxEx(True,SearchArea,clPurple);
FindColorsSpiralTolerance(MSCX,MSCY,TPA,3169130,MSCX -200,MSCY - 100 ,MSCX,MSCY + 150,3);
SortTPAFrom(TPA,point(MSCX,MSCY));
ATPA := TPAtoATPAEx(TPA,15,15);
for a := 0 to High(ATPA) do
begin
MP := MiddleTPA(ATPA[a]);
Box := IntToBox((MP.x - 20),(MP.y - 20),(MP.x + 20),(MP.y + 20));
SMART_DrawBoxEx(False,Box,clYellow);
MMouse(MP.x,MP.y,4,4);
if(WaitUpText('ank',750))then
begin
While(InvCount > 15) do
begin
x := MP.x; y := MP.y;
Result := True
SMART_ClearCanvas;
Mouse(x,y,0,0,True);
WaitFunc(@BankScreen, 10 + Random(15), 10000);
Deposit(2,28,True);
Writeln('Depotsitied');
Ore := Ore+28
stats_IncVariable('Clay (Mined)',27);
stats_IncVariable('Total Exp Gained',140);
Antiban;
end;
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2,0.2);
end;
procedure WalkToWater;
var
myPath:TPointArray;
begin
SPS_Setup(RUNESCAPE_SURFACE,['11_7']);
myPath := [Point(4566, 3137), Point(4581, 3134), Point(4595, 3134),
Point(4616, 3134), Point(4627, 3141), Point(4646, 3149), Point(4667, 3148),
Point(4679, 3143), Point(4679, 3120), Point(4679, 3096), Point(4679, 3077),
Point(4682, 3054), Point(4682, 3031), Point(4680, 3003), Point(4678, 2981),
Point(4679, 2963), Point(4685, 2942)];
SPS_WalkPath(myPath);
AntiBan;
end;
function FindClay(var x, y : Integer) : Boolean;
var
a : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
MP : TPoint;
tmpCTS : Integer;
Box,SearchArea : TBox;
begin
if not LoggedIn then Exit;
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.01,1.92);
SearchArea := IntToBox((MSCX - 100),(MSCY - 50),(MSCX + 100),(MSCY + 150));
SMART_DrawBoxEx(True,SearchArea,clPurple);
FindColorsSpiralTolerance(MSCX,MSCY,TPA,7056078,MSCX -100,MSCY-50 ,MSCX + 100,MSCY + 150,10);
SortTPAFrom(TPA,point(MSCX,MSCY));
ATPA := TPAtoATPAEx(TPA,15,15);
for a := 0 to High(ATPA) do
begin
MP := MiddleTPA(ATPA[a]);
Box := IntToBox((MP.x - 20),(MP.y - 20),(MP.x + 20),(MP.y + 20));
SMART_DrawBoxEx(True,Box,clYellow);
MMouse(MP.x,MP.y,4,4);
if(WaitUpText('lay',750))then
begin
x := MP.x; y := MP.y;
Result := True
SMART_ClearCanvas;
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2,0.2);
end;
procedure MineClay;
var x,y,ClayCount,failed,totalfail:Integer;
begin
Antiban;
if(InvCount = 28) then Exit;
while(InvCount < 28) do
if(FindClay(x,y)) then
begin
ClayCount := InvCount
Mouse(x,y,4,4,True)
if(InvCount < 28) then
WaitInvMinCount((ClayCount + 1),5000);
if(InvCount = 28) then
Exit;
end;
end;
Procedure WalkToOre;
var
myPath:TPointArray;
begin
if(InvCount = 28) then
Exit;
SPS_Setup(RUNESCAPE_SURFACE,['11_7']);
myPath := [Point(4567, 2907), Point(4568, 2931), Point(4539, 2934),
Point(4524, 2944), Point(4522, 2971), Point(4522, 3024), Point(4522, 3067),
Point(4540, 3107), Point(4555, 3122), Point(4569, 3140)];
SPS_WalkPath(myPath);

end;
procedure WalkToBank;
var
x,y:Integer;
myPath:TPointArray;
begin
if(FindSymbol(x,y,'bank')) then
begin
Mouse(x,y,4,4,True)
FFlag(3);
end;
Writeln('To Bank');
SPS_Setup(RUNESCAPE_SURFACE,['11_7']);
myPath := [Point(4568, 3138), Point(4555, 3117), Point(4543, 3092),
Point(4529, 3069), Point(4522, 3050), Point(4518, 3024), Point(4518, 3003),
Point(4517, 2989), Point(4517, 2972), Point(4518, 2959), Point(4531, 2949),
Point(4541, 2940), Point(4553, 2932), Point(4571, 2929), Point(4578, 2922),
Point(4575, 2911), Point(4574, 2899), Point(4566, 2899)];
SPS_WalkPath(myPath);
Writeln('Route finished');
FindBankTeller(x,y);
end;

procedure MakeSoft;
var
x,y:Integer;
begin
repeat
InvMouse(2,1);
if(FindColorSpiralTolerance(x,y,12299645,MSX1,MSY1,MSX2,MSY2,5)) then
begin
Writeln('Found it, boss!');
Mouse(x,y,3,3,True);
WaitFindColor(x,y,869470,MCX1,MCY1,MCX2,MCY2,5,15000);
if(FindColorSpiralTolerance(x,y,869470,MCX1,MCY1,MCX2,MCY2,5)) then
begin
Mouse(x,y,4,4,True)
Writeln('Softening!');
WaitColorGoneIn(5273743,MIX1,MIY1,MIX2,MIY2,2,60000);
end;
end;
InvMouse(28,3);
until (IsUpText('oft'));
WalkToBank;
end;
procedure Mainloop;
begin
repeat
SetAngle(SRL_ANGLE_HIGH);
MakeCompass('N');
GameTab(tab_Inv);
SRLRandomsReport;
Stats_Commit;
Progress;
WalkToOre;
MineClay;
// WalkToWater;
// MakeSoft;
WalkToBank;
until AllPlayersInactive
end;

begin
// These 4 lines HAVE to be set BEFORE you call SetupSRL;
Smart_Server := 25;
Smart_Members := False;
Smart_Signed := True;
Smart_SuperDetail := False;

ClearDebug;
SetupSRLStats(965, SRLStats_User, SRLStats_Password);
SetupSRL;
//ObjDTM_Setup;
DeclarePlayers; // Calls the procedure, you can't forget this!
LoginPlayer;
Mainloop; // You want your player to login, right?
end.


program Pro Range;
{$DEFINE SMART}
{$i srl/srl.simba}
{$i SPS/SPS.simba}
{$i srl/srl/misc/paintsmart.simba}
//{$i ObjectDTM/ObjDTMInclude.simba} Keep commented out unless using Object DTM's.
var
StartTickets,TotalTickets:Integer;

procedure DeclarePlayers;
begin
HowManyPlayers := 1; // This is set to the total amount of players (more on multiplayer later ;)), for now, just keep it set as 1
NumberOfPlayers(HowManyPlayers); // This is a procedure in SRL which sets up player arrays (also, more on that later), this will always be the same
CurrentPlayer := 0; // This is the player to start with; the first player will always be 0 (you'll find out when you learn all about arrays)

Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Nick := ''; // 3-4 lowercase letters from username; used for random event detection
Players[0].Active := True; // Set to true if you want to use Player 0
Players[0].Pin := ''; // Leave blank if the player doesn't have a bank pin
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];
{
Players[1].Name := ''; // Username
Players[1].Pass := ''; // Password
Players[1].Nick := ''; // 3-4 lowercase letters from username; used for random event detection
Players[1].Active := True; // Set to true if you want to use Player 0
Players[1].Pin := ''; // Leave blank if the player doesn't have a bank pin
Players[1].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];}
{
Players[2].Name := ''; // Username
Players[2].Pass := ''; // Password
Players[2].Nick := ''; // 3-4 lowercase letters from username; used for random event detection
Players[2].Active := True; // Set to true if you want to use Player 0
Players[2].Pin := ''; // Leave blank if the player doesn't have a bank pin
Players[2].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];}
{
Players[3].Name := ''; // Username
Players[3].Pass := ''; // Password
Players[3].Nick := ''; // 3-4 lowercase letters from username; used for random event detection
Players[3].Active := True; // Set to true if you want to use Player 0
Players[3].Pin := ''; // Leave blank if the player doesn't have a bank pin
Players[3].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence']; }
end;
procedure Antiban;
begin
FindNormalRandoms;
case Random(80) of
0: RandomRClick;
1: HoverSkill('Range',False);
2: PickUpMouse;
3: RandomMovement;
4: BoredHuman;
5: ExamineInv;
6: MakeCompass('N');
7: SetAngle(SRL_ANGLE_HIGH);
8: Wait(5000)
end;
end;
procedure OpenBox;
var
x,y:Integer;
begin
if(FindColorTolerance(x,y,65535,MSCX - 25, MSCY - 25, MSCX + 25, MSCY + 25,1)) then
begin
Writeln('Box open');
if(FindColorTolerance(x,y,1053204,MSCX - 250, MSCY - 150, MSCX + 250, MSCY + 150, 1)) then
Mouse(x,y,4,4,True);
end;
end;

function WaitOnText(txt: TStringArray; action: fnct_ActionOptions; time:Integer): boolean; //Gotten from SRL includes, just decided to change it around
var
x, y, finaltime: integer;
chars: TStringArray;
begin
chars := [UpChars, CharsNPC];
finaltime := GetSystemTime + Time;
while(finaltime > GetSystemTime) do
begin
if (findTextEx(x, y, txt, chars, MCX1, MCY1, MCX2, MCY2)) then
begin
case action of
Move: MMouse(x, y, 6, 3);
ClickLeft: Mouse(x, y, 6, 3, mouse_Left);
ClickRight: Mouse(x, y, 6, 3, mouse_Right);
end;

result := true;
exit;
end;
end;
end;
function FindJudge(var x,y:integer):Boolean;
var
a : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
MP : TPoint;
tmpCTS,Clicked : Integer;
Box,SearchArea : TBox;
begin
OpenBox;
if(FindColorTolerance(x,y,856926,MIX1,MIY1,MIX2,MIY2,1)) then Exit;
Ftab(26);
if(WearingItem(4)) then Exit;
FindNormalRandoms;
SMART_ClearCanvas;
if not LoggedIn then Exit;
Writeln('Starting hunt for judge...');
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
//SetColorSpeed2Modifiers(0.23,0.95);
SearchArea := IntToBox((MSCX - 150),(MSCY - 150),(MSCX + 150),(MSCY+150));
SMART_DrawBoxEx(False,SearchArea,clPurple);
FindColorsSpiralTolerance(MSCX,MSCY,TPA,3313827,MSCX -150,MSCY - 150 ,MSCX+150,MSCY+150,17);
SortTPAFrom(TPA,point(MSCX,MSCY));
ATPA := TPAtoATPAEx(TPA,15,15);
for a := 0 to High(ATPA) do
begin
MP := MiddleTPA(ATPA[a]);
Box := IntToBox((MP.x - 20),(MP.y - 20),(MP.x + 20),(MP.y + 20));
SMART_DrawBoxEx(False,Box,clYellow);
MMouse(MP.x,MP.y,4,4);
if(WaitUpText('udge',5000))then
begin
x := MP.x; y := MP.y;
SMART_ClearCanvas;
Mouse(x,y,0,0,False);
Wait(RandomRange(200,400));
if(ChooseOption('Compete')) then
begin
WaitOnText(['Yes','es'],Clickleft,5000);
Writeln('Bought arrows');
end else
begin
Mouse(x,y,4,4,True);
FindJudge(x,y);;
end;
end;
Break;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2,0.2);
Writeln('...finished buying');
end;
Wait(500);
end;
procedure FindArrows;
var
a,x,y : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
MP : TPoint;
tmpCTS,Clicked : Integer;
Box,SearchArea : TBox;
begin
OpenBox;
FindNormalRandoms;
SMART_ClearCanvas;
if not LoggedIn then Exit;
Writeln('Equipping arrows');
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
//SetColorSpeed2Modifiers(0.71,3.24);
SearchArea := IntToBox((MIX1),(MIY1),(MIX2),(MIY2));
SMART_DrawBoxEx(False,SearchArea,clPurple);
FindColorsSpiralTolerance(MSCX,MSCY,TPA,856926,MIX1,MIY1 ,MIX2,MIY2,1);
SortTPAFrom(TPA,point(MSCX,MSCY));
ATPA := TPAtoATPAEx(TPA,15,15);
for a := 0 to High(ATPA) do
begin
MP := MiddleTPA(ATPA[a]);
Box := IntToBox((MP.x - 20),(MP.y - 20),(MP.x + 20),(MP.y + 20));
SMART_DrawBoxEx(True,Box,clYellow);
MMouse(MP.x,MP.y,4,4);
if(WaitUpText('Bronze',500))then
begin
x := MP.x; y := MP.y;
SMART_ClearCanvas;
repeat
Mouse(x,y,0,0,True);
until not(FindColorsSpiralTolerance(MSCX,MSCY,TPA,856926,MIX1,MIY1 ,MIX2,MIY2,1));
end;
Break;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2,0.2);
Writeln('...finished buying');
end;
Wait(500);
end;
procedure FindTargets;
var
a,x,y : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
MP : TPoint;
tmpCTS,Clicked : Integer;
Box,SearchArea : TBox;
begin
OpenBox;
SetAngle(SRL_ANGLE_LOW)
FindNormalRandoms;
SMART_ClearCanvas;
if not LoggedIn then Exit;
Writeln('Clicking those targets!');
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
//SetColorSpeed2Modifiers(0.16,1.17);
SearchArea := IntToBox((MSCX - 200),(MSCY - 150),(MSCX + 200),(MSCY + 150));
SMART_DrawBoxEx(False,SearchArea,clPurple);
FindColorsSpiralTolerance(MSCX,MSCY,TPA,11301216,MSCX - 200,MSCY - 150,MSCX + 200,MSCY + 150,9);
SortTPAFrom(TPA,point(MSCX,MSCY));
ATPA := TPAtoATPAEx(TPA,15,15);
for a := 0 to High(ATPA) do
begin
MP := MiddleTPA(ATPA[a]);
Box := IntToBox((MP.x - 20),(MP.y - 20),(MP.x + 20),(MP.y + 20));
SMART_DrawBoxEx(False,Box,clYellow);
While(WearingItem(4)) do
begin
Wait(500+random(300));
MMouse(MP.x,MP.y,4,4);
if(WaitUpText('arget',500))then
begin
Writeln('Found targets');
x := MP.x; y := MP.y;
SMART_ClearCanvas;
Mouse(x,y,0,0,True);
OpenBox;
end else
FindTargets;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2,0.2);
Writeln('...finished using arrows');
SetAngle(SRL_ANGLE_HIGH)
end;
procedure Mainloop;
var
x,y:Integer;
begin
SetAngle(SRL_ANGLE_HIGH)
MakeCompass(RandomRange(30,45));
Antiban;
FindJudge(x,y);
FindArrows;
FIndTargets;
end;
begin
// These 4 lines HAVE to be set BEFORE you call SetupSRL;
Smart_Server := 26;
Smart_Members := False;
Smart_Signed := True;
Smart_SuperDetail := False;

ClearDebug;
SetupSRL;
//ObjDTM_Setup;
DeclarePlayers; // Calls the procedure, you can't forget this!
LoginPlayer;
SetAngle(SRL_ANGLE_HIGH);
repeat
Mainloop;
until(AllPlayersInactive);
end.


program Herblore;
{$DEFINE SMART}
{$i srl/srl.simba}
{$i SPS/SPS.simba}
{$i srl/srl/misc/paintsmart.simba}
{$i srl/srl/misc/debug.simba}
//{$i ObjectDTM/ObjDTMInclude.simba} Keep commented out unless using Object DTM's.
var
Cleaned,Mixed,x,y,Finished:Integer;
Act:String;
const
SRLStats_User = '';
SRLStats_Password = '';
procedure DeclarePlayers;
begin
HowManyPlayers := 1; // This is set to the total amount of players (more on multiplayer later ;)), for now, just keep it set as 1
NumberOfPlayers(HowManyPlayers); // This is a procedure in SRL which sets up player arrays (also, more on that later), this will always be the same
CurrentPlayer := 0; // This is the player to start with; the first player will always be 0 (you'll find out when you learn all about arrays)

Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Nick := ''; // 3-4 lowercase letters from username; used for random event detection
Players[0].Active := True; // Set to true if you want to use Player 0
Players[0].Pin := ''; // Leave blank if the player doesn't have a bank pin
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];
Act := 'Unf';//Unf for Unfinished, Clean for Cleaning
{
Players[1].Name := ''; // Username
Players[1].Pass := ''; // Password
Players[1].Nick := ''; // 3-4 lowercase letters from username; used for random event detection
Players[1].Active := True; // Set to true if you want to use Player 0
Players[1].Pin := ''; // Leave blank if the player doesn't have a bank pin
Players[1].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];
Act := ''}
end;
procedure Antiban;
begin
FindNormalRandoms;
case Random(80) of
0: RandomRClick;
1: HoverSkill('Herblore',False);
2: PickUpMouse;
3: RandomMovement;
4: BoredHuman;
5: ExamineInv;
6: MakeCompass('N');
7: SetAngle(SRL_ANGLE_HIGH);
8: Wait(5000)
end;
end;
procedure Progress;
var
HerbsPH,PotsPH:Integer;
begin
HerbsPH := Round((Cleaned * 3600) / (GetTimeRunning / 1000));
PotsPH := Round((Mixed * 3600) / (GetTimeRunning / 1000));
ClearDebug;
Writeln('***********Power Herbs**********');
Writeln('* ~By NKN~ ');
if (LowerCase(Act) = 'clean') then
Writeln('*Herbs cleaned: ' + IntToStr(Cleaned) + ' (' + IntToStr(HerbsPH) + ' P/H)');
if (LowerCase(Act) = 'unf') then
Writeln('*Potions mixed: ' + IntToStr(Mixed)+ ' (' + IntToStr(PotsPH) + ' P/H)');
Writeln('*Total Time: ' + TimeRunning);
Writeln('********************************');
end;
Function RemovePointsFromTPA(TPA: TPointArray; Point: TPoint; DeleteAll: Boolean): TPointArray;//Credit goes to Ggzz for //this one, I didn't understand how it worked at the time.
var
I, L: Integer;
begin
L:= High(TPA);

For I:= 0 To L do
if (TPA[I] = Point) then
begin
DeleteValueInTPA(TPA, I);
if (Not DeleteAll) then
break;
end;
Result:= TPA;
end;
function Create(var x,y:Integer):Boolean;
var
a,TmpCTS,ai,Herbs:Integer;
TPA:TPointArray;
ATPA:T2DPointArray;
MP,LC:TPoint;
Box,SearchArea:TBox;
HA:Int64;
begin
FindNormalRandoms;
Finished := -1
Finished := Finished + 1;
Writeln('Failed: '+IntToStr(Finished)+' many times');
SMART_ClearCanvas;
if(Finished > 1) then
begin
Writeln('Out of Materials');
Logout;
TerminateScript;
end;
if(Act = 'Clean') then
begin
MouseSpeed := 100+Random(150);
repeat
SearchArea := IntToBox(MIX1,MIY1 + 5, MIX2, MIY2 - 5)
SMART_DrawBoxEx(False,SearchArea,clPurple);
Herbs := DTMFromString('78DA6364616160B8C7C8800C9C4C6519FE036' +
'99828E31F660686F3A86A181898207230359F816AAE1350F315A8E63' +
'E0135FF806A9E1050C30974F36D026A98816AAE1250C34D580D00FBF' +
'80C9F');
FindDTMS(Herbs,TPA,MIX1,MIY1 + 5, MIX2, MIY2 - 5);
ATPA := TPAtoATPAEx(TPA, 15, 15);
HA := High(ATPA);
for a:= 0 to HA do
begin
begin
MP := MiddleTPA(ATPA[a]);
LC := Point(MP.x,MP.y);
TPA := RemovePointsFromTPA(TPA,LC,False);
Box := IntToBox((MP.x - 15),(MP.y - 15), (MP.x + 15),(MP.y + 15));
SMART_DrawBoxEx(False,Box,clYellow);
MMouse(MP.x,MP.y,4,4);

if(WaitUpText('imy',100))then
begin
x := MP.X; y := MP.Y;
Result := True;
Mouse(x,y,3,3,True);
ai := CoordsToItem(x,y);
if(ItemActivated(ai)) then
ClickMouse2(Mouse_right);
Finished := 0
end;
end;
end;
until not FindDTMS(Herbs,TPA,MIX1,MIY1 + 5, MIX2, MIY2 - 5);
Writeln('Inventory clean!');
FreeDTM(Herbs);

end else
begin
InvMouse(14,mouse_left)
InvMouse(15,Mouse_left)
Wait(1100+random(200));
if(FindColorTolerance(x,y,2070783,MCX1,MCY1,MCX2,MCY2,15)) then
begin
Finished := 0
Writeln('Found orange text');
SearchArea := IntToBox((MCCX - 20),(MCCY - 20),(MCCX + 20),(MCCY + 20));
SMART_DrawBoxEx(True,SearchArea,clPurple);
if(FindColorTolerance(x,y,131072,MCCX - 20, MCCY - 20, MCCX + 20, MCCY + 20,5)) then
begin
Mouse(x,y,4,4,mouse_left);
WaitInvMaxCount(14,60000);
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2,0.2);
end;

function FindBankTeller(var x, y : Integer) : Boolean;
var
a : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
MP : TPoint;
tmpCTS,Clicked : Integer;
Box,SearchArea : TBox;
begin
FindNormalRandoms;
If(WaitOption('Cancel',100)) then ChooseOption('Cancel');
If(BankScreen) then CloseBank;
SMART_ClearCanvas;
if not LoggedIn then Exit;
Writeln('Starting banking');
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.08,0.10);
SearchArea := IntToBox((MSCX - 150),(MSCY - 50),(MSCX),(MSCY));
SMART_DrawBoxEx(True,SearchArea,clPurple);
FindColorsSpiralTolerance(MSCX,MSCY,TPA,2905700,MSCX -150,MSCY - 100 ,MSCX,MSCY + 75,5);
SortTPAFrom(TPA,point(MSCX,MSCY));
ATPA := TPAtoATPAEx(TPA,15,15);
for a := 0 to High(ATPA) do
begin
MP := MiddleTPA(ATPA[a]);
Box := IntToBox((MP.x - 20),(MP.y - 20),(MP.x + 20),(MP.y + 20));
SMART_DrawBoxEx(True,Box,clYellow);
MMouse(MP.x,MP.y,4,4);
if(WaitUpText('ank',500))then
begin
x := MP.x; y := MP.y;
Result := True
SMART_ClearCanvas;
Mouse(x,y,0,0,True);
Clicked := Clicked + 1
if(Clicked > 3) then
begin
FindBankTeller(x,y);
Clicked := 0
end;
if(WaitFunc(@BankScreen, 10 + Random(15), 4000)) then
begin
if(BankScreen) then
begin
QuickDeposit(SRL_DEPOSIT_ALL);
Writeln('Depotsitied');
case Lowercase(Act) of
'clean':
begin
Cleaned := Cleaned + 28;
stats_IncVariable('Herbs Cleaned',28);
end;
'unf':
begin
Mixed := Mixed + 14;
stats_IncVariable('Unf. Potions Made',14);
end;
end;
begin
if(Act = 'Clean') then
begin
Withdraw(0,0,28);
CloseBank;
end else
begin
MouseBankSlot(1,3);
Wait(200);
if not (IsUpTextMultiCustom(['Pot','oti','imy'])) then
begin
Withdraw(0,0,14);
Withdraw(1,0,14);
CloseBank;
end else
begin
Writeln('Out of materials');
Logout;
TerminateScript;
CloseBank;
end;
Antiban;
end;
end;
end;
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2,0.2);
Writeln('Finished banking');
end;
Wait(500);
end;
procedure MainLoop;
var
x,y,i:integer;
begin
SetAngle(SRL_ANGLE_HIGH);
SRLRandomsReport;
Stats_Commit;
gametab(tab_Inv);
Progress;
FindBankTeller(x,y);
Create(x,y);
end;
begin
// These 4 lines HAVE to be set BEFORE you call SetupSRL;
Smart_Server := 26;
Smart_Members := False;
Smart_Signed := True;
Smart_SuperDetail := False;

ClearDebug;
SetupSRL;
SetupSRLStats(1022, SRLStats_User, SRLStats_Password);
//ObjDTM_Setup;
DeclarePlayers; // Calls the procedure, you can't forget this!
LoginPlayer;
repeat
MainLoop;
until AllPlayersInactive;
end.

Blumblebee

2012-04-24 16:37:45

yes. You seem to have a good grasp of things. Good Luck :)

P1nky

2012-04-24 17:09:56

Yes, good job.

'Toxin

2012-04-24 18:13:47

Not sure why you have used your anti ban procedure twice and your declare players twice… However you seem to be a little keen on getting that yellow name, and are still very new in my opinion. I'm voting no, sorry. Keep at it though, and good luck.

NKN

2012-04-24 18:52:50

The ///////////////////////////// separates scripts?

Sin

2012-04-24 18:54:41

Multiplayer - Check.
TPAs - Check
DTMs - Check
Activity - Check
Longevity - Ehh….


Yes from me^^

NKN

2012-04-24 21:01:25

I wish the people who voted no would explain to why that is, feedback helps improve. D:

EtherFreak

2012-04-24 22:44:35

you can edit, and put two sets of simba tags to separate each script. Oh, and no, I am voting yes.

Kyle Undefined

2012-04-24 23:04:07

For me, you're too new, so I have to vote no.

cause

2012-04-25 12:36:27

Scripts show enough/good knowledge. And despite being fairly new, you have a lot of activity, voting yes :)

Justin

2012-04-26 09:10:17

Scripts look good but as Kyle said, you're too new :(
Holding my vote till a later date.

cause

2012-04-26 13:27:19

I think if people are voting based on longevity, they should reconsider, NKN has been contributing to the community. He has written 2 tuts:

http://villavu.com/forum/showthread.php?t=80378
http://villavu.com/forum/showthread.php?t=80359

And has a couple public scripts out too. I think he has established himself very well in the community, just a thought. (also consider i3og3n [terrible spelling] got in for just showing up :P)

Abu

2012-04-26 15:21:47

Thank you cause! This is something I've been dyeing to say.

He's actually written three tutorials though not two but he is still very active and a good member on the forums.

Sin

2012-04-26 15:48:09

From: cause
I think if people are voting based on longevity, they should reconsider, NKN has been contributing to the community. He has written 2 tuts:

http://villavu.com/forum/showthread.php?t=80378
http://villavu.com/forum/showthread.php?t=80359

And has a couple public scripts out too. I think he has established himself very well in the community, just a thought. (also consider i3og3n [terrible spelling] got in for just showing up :P)


I don't see NKN being a friend of WTF and writing a program to enable us to bot for longer than 6 hours lol…….

NKN

2012-04-26 15:56:52

Ha, thanks for the support…I think?

the flea

2012-04-26 16:09:41

yes from me, you have showed that you know what your doing to a decent level and have put in that extra bit of time (writing tutorials etc) which is nice too see

Blumblebee

2012-04-26 16:41:30

From: Sin
I don't see NKN being a friend of WTF and writing a program to enable us to bot for longer than 6 hours lol…….


but he has reached all the required level in terms of scripting knowledge and forum activity to become an SRL member.

Sin

2012-04-26 16:42:57

From: Blumblebee
but he has reached all the required level in terms of scripting knowledge and forum activity to become an SRL member.


Calm down, wasn't insulting him, was just defending I3gohan.

mika

2012-04-26 16:59:25

how does the proRange script work and wats the xp rate?

NKN

2012-04-26 17:03:01

Check my thread, updated version there.

About 12k XP per hour, with level 52 range and a yew bow.

Magiic

2012-04-26 17:21:46

Your longevity and a few little mistakes (infinite loops, etc) make me want to say no, but like has been stated, you have contributed well so far, and I got members after a month, so I can't complain. I'll vote yes, the errors are easily fixed, and there's nothing you can do about longevity, I won't hold it against you.

NKN

2012-04-28 11:05:47

Could you point out the infinite loops? D:

Jakkle

2012-04-30 13:55:32

From: Sin
Multiplayer - Check.
TPAs - Check
DTMs - Check
Activity - Check
Longevity - Ehh….


From: Kyle Undefined
For me, you're too new


From: SandoS
but like has been stated, you have contributed well so far


I don't like how you joined all your code (harder to read). Putting spaces between your functions and procedures to show they are separate makes things so much better for the reader as well as yourself.
I like the Fact you have done TUT's, thanks alot, helps the community out so much.
Saying that I'm going to vote yes. Good luck :thumbsup:

~Jakkle

NKN

2012-04-30 16:01:32

I joined the code, because I was once reprimanded for using too much whitespace like that. Should I space it out more?

xtrapsp

2012-05-06 11:54:28

I voted Yes on the grounds you have most stuff I required ticked off. Join date was an issue, as I had this two however. I feel you could redeem this by trying different types of scripting.

Have a go at OBJDtm walking for me? Just to get familiar with other techniques :)

nielsie95

2012-05-06 13:03:02

Welcome in!