SRL Archive - Archive

Spiker - SRL Member Application


Spiker

2012-01-25 20:02:17

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


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?



What is your general programming knowledge?
I know Java (~3 years experience), and I just learned PASCAL, very easy :) SRL, Scar/Simba, the good stuff :)


Are you a member of any other communities?
No


Tell us about yourself…
From: Spiker
My name is Lee. I'm an avid gamer, both console and PC. I'm 18, and should be going to Texas Tech university this upcoming Fall to major in computer engineering. I'm a nice guy, a fast learner, and a helpful member of any community that I'm in.



Please show us one (or multiple) of your scripts.
//For some reason wouldn't let me attach //Spiker_Fruitfaller.simba - let me know
//if you need the actual file

Program Spiker_Fruitfaller;
{$DEFINE SRL5}
{$DEFINE SMART}

{$i SRL/srl.simba}
{$i SRL/SRL/skill/summoning.simba}
{$i ObjectDTM/ObjDTMInclude.simba}

{==============================================================================}
{========== INSTRUCTIONS ==========}
{==============================================================================}
{========== Spiker Fruitfaller V1.0 by Leespiker ==========}
{==============================================================================}
{========== 1. Already have your bat summoned. ==========}
{========== 2. Start inside the Al-Kharid bank. ==========}
{========== 3. Post proggies and buggies please. ==========}
{==============================================================================}

Const
PapPrice = 1800; //current price of papayas
OraPrice = 950; //current price of oranges
BanPrice = 150; //current price of bananas
LimPrice = 40; //current price of limes
LemPrice = 40; //current price of lemons
PinPrice = 40; //current price of pineapples
ScrollPrice = 243; //current price of fruitfall scrolls
FBPouchPrice = 2271; //current price of fruit bat pouches
SumPotPrice = 1800; //current price of summoning potion(1)
Version = '1.0'; //current version

//SRL Stats
SRLStats_Username = 'Anonymous';
SRLStats_Password = 'anon1337';

World = 0; //0 for random
Members = True;
Signed = True;

Var
ScrollsUsed, PouchesUsed, Profit, FinalProfit, Trips, Papayas, Oranges,
Pineapples, Lemons, Limes, Bananas, TotalFruits: Integer;

Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers)
CurrentPlayer := 0;

with Players[0] do
begin
Name := '';
Pass := '';
Pin := '';
Nick := ''; // 3-4 lowercase letters from username; used for random event detection
Member := True;
BoxRewards := ['XP','xp','lamp'];
LampSkill := 'Summoning';
Active := True; // Set to true if you want to use Player 0
end;
end;

Procedure SetVars;
begin
ScrollsUsed := 0;
PouchesUsed := 0;
Trips := 0;
Papayas := 0;
Oranges := 0;
Pineapples := 0;
Lemons := 0;
Limes := 0;
Bananas := 0;
end;

Procedure StatsCommit;
begin
stats_IncVariable('Fruit Fall Scrolls Used', ScrollsUsed);
stats_IncVariable('Fruits Picked Up', TotalFruits);
stats_IncVariable('Total Trips', Trips);
stats_IncVariable('Total Profit', FinalProfit);
Stats_Commit;
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, 9.0, 3.0, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
GetMousePos(X, Y);
MMouse(eX, eY, ranX, ranY);
MouseSpeed := A;
end;

Procedure HumanMouse(eX, eY, ranX, ranY: Integer; LeftClick: Boolean);
Var
x, y:integer;
begin
HumanMMouse(eX, eY, ranX, ranY);
GetMousePos(x, y);
Mouse(x, y, 0, 0, LeftClick);
end;

Function FamVanish:Boolean;
begin
if FindChatBoxText('before your familiar vanishes', 8, 127) then
begin
Result := True;
end
else
Result := False;
end;

Function ScrollAndSpecialCheck:Boolean;
begin
If FindChatBoxText('pecial', 8, 0) Or FindChatBoxText('nough scro', 8, 0) Then
begin
Result := True;
end
else
Result := False;
end;

Procedure Antiban;
begin
Case Random(20) Of
0: begin Writeln('Antiban') GameTab(tab_Stats) HoverSkill('Summoning', False); GameTab(28); end;
4: begin Writeln('Antiban') SleepAndMoveMouse(7000 + Random(500)); end;
9: begin Writeln('Antiban') GameTab(tab_Inv) ExamineInv; GameTab(28); end;
14:begin Writeln('Antiban') GameTab(tab_Stats); Wait(3000 + Random(500)); GameTab(28); end;
end;
end;

Procedure Setup;
begin
Smart_Server := World;
Smart_Members := Members;
Smart_Signed := Signed;

ClearDebug;
SetupSRL;

DeclarePlayers;

if not (LoggedIn) then
LoginPlayer;

ObjDTM_Setup;
ObjDTM_Debug := True;
end;

Procedure WalkNearBank;
Var
Path: TStringArray;
begin
if not LoggedIn then Exit;
if FindNormalRandoms then Exit;

Setup;
Path := ['606:69:3:7:7:569:67:7:7:565:79:7:7:638:72:4:603:67:610:68:610:73:604:71'];

ObjDTM_Walk(Path[0], 0, 500, 3, True)

Wait(500+Random(100));
end;

Procedure WalkOutside;
Var
Outside: TStringArray;
begin
if not LoggedIn then Exit;
if FindNormalRandoms then Exit;

Setup;
Outside := ['628:83:4:7:7:638:72:7:7:625:108:7:7:567:65:7:7:570:111:4:627:82:631:82:631:86:627:86'];
ObjDTM_Walk(Outside[0], 0, 500, 3, True);
Wait(500+Random(250));
end;

Function BanksColor(var rx, ry: Integer): Boolean;
Var
TPA: TPointArray;
ATPA: T2DPointArray;
CTS, i: Integer;
o: TPoint;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.03, 0.56);

FindColorsTolerance(TPA, 6190982, MSX1, MSY1, MSX2, MSY2, 9);
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if(Length(TPA) = 0) then
begin
WriteLn('BanksColor could not find any points.');
Exit;
end;

SortTPAFrom(TPA, Point(MSCX, MSCY));
ATPA := TPAToATPA(TPA, 15);
for i := 0 to High(ATPA) do
begin
o := MiddleTPA(ATPA[i]);
HumanMMouse(o.x, o.y, 3, 3);
if(WaitUptextMulti(['ank boo'], 250+Random(500))) then
begin
Result := True;
GetMousePos(rx, ry);
Exit;
end;
end;
end;

Function PineappleColor(var rx, ry: Integer): Boolean;
Var
TPA: TPointArray;
ATPA: T2DPointArray;
CTS, i: Integer;
o: TPoint;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(1.04, 6.13);

FindColorsTolerance(TPA, 2321176, 175, 100, 350, 280, 2);
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if(Length(TPA) = 0) then
begin
WriteLn('PineappleColor could not find any points.');
Exit;
end;

SortTPAFrom(TPA, Point(MSCX, MSCY));
ATPA := TPAToATPA(TPA, 15);
for i := 0 to High(ATPA) do
begin
o := MiddleTPA(ATPA[i]);
HumanMMouse(o.x, o.y, 3, 3);
if(WaitUptextMulti(['apaya', 'range', 'anana', 'eapple', 'ime', 'emon'], 250+Random(500))) then
begin
Result := True;
GetMousePos(rx, ry);
Exit;
end;
end;
end;

Procedure CheckFeet;
Var
c:Integer;
begin
if not LoggedIn then Exit;
if FindNormalRandoms then Exit;

If(Not InvFull) Then
begin
Wait(50+Random(50));
HumanMouse(255, 182, 2, 2, False);
If OptionsExist(['ake Pap'], False) Then
begin
c := InvCount;
ChooseOption('ake Pap');
repeat
Wait(50+Random(50));
until(ExistsItem(c+1));
Papayas := Papayas + 1;
CheckFeet;
end
else If OptionsExist(['ake Ora'], False) Then
begin
c := InvCount;
ChooseOption('ake Ora');
repeat
Wait(50+Random(50));
until(ExistsItem(c+1));
Oranges := Oranges + 1;
CheckFeet;
end
else
begin
Case Random(8) Of
0: HumanMMouse(90, 90, 10, 10);
1: HumanMMouse(300, 50, 10, 10);
2: HumanMMouse(480, 60, 10, 10);
3: HumanMMouse(450, 220, 10, 10);
4: HumanMMouse(440, 310, 10, 10);
5: HumanMMouse(180, 315, 10, 10);
6: HumanMMouse(60, 240, 10, 10);
7: HumanMMouse(50, 180, 10, 10);
end;
end;
end;
end;

Procedure ClickFruit(var x, y: Integer);
Var
c:Integer;
begin
if not LoggedIn then Exit;
if FindNormalRandoms then Exit;

Wait(200+Random(50));
HumanMouse(x, y, 0, 0, False);
If OptionsExist(['ake Pap'], False) Then
begin
c := InvCount;
ChooseOption('ake Pap');
repeat
Wait(50+Random(50));
until(ExistsItem(c+1));
Papayas := Papayas + 1;
Wait(500+Random(50));
CheckFeet;
end
else If OptionsExist(['ake Ora'], False) Then
begin
c := InvCount;
ChooseOption('range');
repeat
Wait(50+Random(50));
until(ExistsItem(c+1));
Oranges := Oranges + 1;
Wait(500+Random(50));
CheckFeet;
end
else If OptionsExist(['eapple'], False) Then
begin
c := InvCount;
ChooseOption('eapple');
repeat
Wait(50+Random(50));
until(ExistsItem(c+1));
Pineapples := Pineapples + 1;
Wait(500+Random(50));
CheckFeet;
end
else If OptionsExist(['emon'], False) Then
begin
c := InvCount;
ChooseOption('emon');
repeat
Wait(50+Random(50));
until(ExistsItem(c+1));
Lemons := Lemons + 1;
Wait(500+Random(50));
CheckFeet;
end
else If OptionsExist(['anana'], False) Then
begin
c := InvCount;
ChooseOption('anana');
repeat
Wait(50+Random(50));
until(ExistsItem(c+1));
Bananas := Bananas + 1;
Wait(500+Random(50));
CheckFeet;
end
else If OptionsExist(['ime'], False) Then
begin
c := InvCount;
ChooseOption('ime');
repeat
Wait(50+Random(50));
until(ExistsItem(c+1));
Limes := Limes + 1;
Wait(500+Random(50));
CheckFeet;
end
else
begin
Case Random(8) Of
0: HumanMMouse(90, 90, 10, 10);
1: HumanMMouse(300, 50, 10, 10);
2: HumanMMouse(480, 60, 10, 10);
3: HumanMMouse(450, 220, 10, 10);
4: HumanMMouse(440, 310, 10, 10);
5: HumanMMouse(180, 315, 10, 10);
6: HumanMMouse(60, 240, 10, 10);
7: HumanMMouse(50, 180, 10, 10);
end;
end;
end;

Procedure ClickBank;
Var
F, x, y:Integer;
begin
if not LoggedIn then Exit;
if FindNormalRandoms then Exit;

ClickNorth(SRL_ANGLE_HIGH);

repeat
If BanksColor(x, y) Then
begin
HumanMouse(x, y, 2, 2, False);
WaitOption('-q', 300);
Wait(500+Random(100));
end;
until(BankScreen or PinScreen);
Wait(200+Random(100));
If PinScreen Then
begin
F := 0;
repeat
Writeln('Entering Pin');
InPin(Players[CurrentPlayer].Pin);
Inc(F);
until (BankScreen) or ( F > 5 )
if (F > 5) then
begin
Exit;
end;
end;
Wait(1500+Random(200));
end;

Procedure SpecialMoveLeftClickCheck;
Var
SumBut, SpecMove, ConBut, InvBut, x, y: integer;
begin
if not LoggedIn then Exit;
if FindNormalRandoms then Exit;

Repeat
HumanMMouse(250,250,30,30);
SumBut:= DTMFromString('mbQAAAHicY2VgYDjMxMBwDIj3QfERIJ4AFO8E4ilA3Aulpy9dz3Dz7V0wnZiVwdA8Yx4DP1AcHTNiwWAAAG3PEFw=');
FindDTM(SumBut, x, y, 680, 120, 755, 170);
FreeDTM(SumBut);
HumanMouse(x, y, 2, 2, False);
Wait(500+Random(50));
Until(OptionsExist(['S'], False));
ChooseOption('S');
Wait(1500+Random(100));

SpecMove:= DTMFromString('mQwAAAHicY2ZgYIhjYmDwBOIdQCzAyMBwGyh2D4j/z5Bn+H+GAYz5GRCYEQkDAQBdowiv');
FindDTM(SpecMove, x, y, 550, 210, 740, 465);
FreeDTM(SpecMove);
HumanMouse(x, y, 1, 1, True);
Wait(200+Random(100));

ConBut:= DTMFromString('mQwAAAHicY2ZgYKhlYmCIA+KVQHyEEYIPAfH/MwwMieFODNmJHgz8QHUwzIiEgQAAUnYH5A==');
FindDTM(ConBut, x, y, 550, 210, 740, 465);
FreeDTM(ConBut);
HumanMouse(x, y, 1, 1, True);
Wait(200+Random(100));

InvBut:= DTMFromString('mWAAAAHicY2FgYJjAxMAwHYj7ofRuoNhOID4ExAeA2E1FgOHCIgMGMwVOBhkeVgZ+oBgyZkTDIAAA8yUIOA==');
FindDTM(InvBut, x, y, 630, 155, 675, 210);
FreeDTM(InvBut);
HumanMouse(x, y, 2, 2, True);
Wait(100+Random(100));
end;

Procedure WithdrawAndDrinkPot;
Var
BankExit, EmptyInv, Sum1, Sum2, Sum3, Sum4, x, y:integer;
begin
if not LoggedIn then Exit;
if FindNormalRandoms then Exit;

BankExit := DTMFromString('mbQAAAHicY2VgYHjJyMDwBoifItHKQHF5KFaDYi0VWQZRYUEwNtRSAmN+oDg6ZsSCwQAAYfMHag==');
EmptyInv := DTMFromString('mbQAAAHicY2VgYChjZGCoBuJ0IK6D0qZAbADEVkBsDmUrCfEyzI1RZHC47crAz8fLkBrhycAP1I+OGbFgMAAAE0EHjg==');
Sum1:= DTMFromString('mbQAAAHicY2VgYDjOxMBwCIj3AfFBID4KxK8ZIPgdEH8G4qdA7OTkypCVlc/Q/uw9kMcExvxAEh0zYsFgAADnzA01');
Sum2:= DTMFromString('mlwAAAHicY2dgYJjMBMFTgHg6EM+H0nOA+DlQ/hUQvwfiz0D8BogfA/ELIG46cYGh/c1XBrlrd4E8JjDOyMgB0/xAEhdmxIOhAAB14RKo');
Sum3:= DTMFromString('mWAAAAHicY2FgYMhmYmDIAuICIC4G4kdAsWdA/AmIXwBxRWUdg9y1u0AWExjzA0lkzIiGQQAAEKkI6w==');
Sum4:= DTMFromString('mWAAAAHicY2FgYHBiYmBwA2JvIHYB4odAsZtA/BaIPwOx3LW7QJIJjvmBJDJmRMMgAACb8wbV');

If FindDTM(Sum2, x, y, MSX1, MSY1, MSX2, MSY2) Then
begin
FreeDTM(Sum2);
Sum2:= DTMFromString('mlwAAAHicY2dgYJjMBMFTgHg6EM+H0nOA+DlQ/hUQvwfiz0D8BogfA/ELIG46cYGh/c1XBrlrd4E8JjDOyMgB0/xAEhdmxIOhAAB14RKo');
FindDTM(Sum2, x, y, MSX1, MSY1, MSX2, MSY2);
FreeDTM(Sum2);
HumanMouse(x, y, 2, 2, True);
Wait(500+Random(200));

FindDTM(BankExit, x, y, 477, 18, 500, 43);
FreeDTM(BankExit);
HumanMouse(x, y, 2, 2, True);
Wait(700+Random(200));

Sum2:= DTMFromString('mlwAAAHicY2dgYJjMBMFTgHg6EM+H0nOA+DlQ/hUQvwfiz0D8BogfA/ELIG46cYGh/c1XBrlrd4E8JjDOyMgB0/xAEhdmxIOhAAB14RKo');
FindDTM(Sum2, x, y, MIX1, MIY1, MIX2, MIY2);
FreeDTM(Sum2);
HumanMouse(x, y, 2, 2, True);
Wait(1000+Random(200));
HumanMouse(x, y, 2, 2, True);
Wait(300+Random(100));

ClickBank;

FindDTM(EmptyInv, x, y, MSX1, MSY1, MSX2, MSY2);
FreeDTM(EmptyInv);
HumanMouse(x, y, 2, 2, True);
Wait(100+Random(100));
end
else If FindDTM(Sum4, x, y, MSX1, MSY1, MSX2, MSY2) Then
begin
FreeDTM(Sum2);
FreeDTM(Sum4);
Sum4:= DTMFromString('mWAAAAHicY2FgYHBiYmBwA2JvIHYB4odAsZtA/BaIPwOx3LW7QJIJjvmBJDJmRMMgAACb8wbV');
FindDTM(Sum4, x, y, MSX1, MSY1, MSX2, MSY2);
FreeDTM(Sum4);
HumanMouse(x, y, 2, 2, True);
Wait(300+Random(100));

FindDTM(BankExit, x, y, 477, 18, 500, 43);
FreeDTM(BankExit);
HumanMouse(x, y, 2, 2, True);
Wait(700+Random(100));

Sum4:= DTMFromString('mWAAAAHicY2FgYHBiYmBwA2JvIHYB4odAsZtA/BaIPwOx3LW7QJIJjvmBJDJmRMMgAACb8wbV');
FindDTM(Sum4, x, y, MIX1, MIY1, MIX2, MIY2);
FreeDTM(Sum4);
HumanMouse(x, y, 2, 2, True);
Wait(1000+Random(100));
HumanMouse(x, y, 2, 2, True);
Wait(300+Random(100));

ClickBank;

FindDTM(EmptyInv, x, y, MSX1, MSY1, MSX2, MSY2);
FreeDTM(EmptyInv);
HumanMouse(x, y, 2, 2, True);
Wait(100+Random(100));
end
else If FindDTM(Sum3, x, y, MSX1, MSY1, MSX2, MSY2) Then
begin
FreeDTM(Sum2);
FreeDTM(Sum4);
FreeDTM(Sum3);
Sum3:= DTMFromString('mWAAAAHicY2FgYMhmYmDIAuICIC4G4kdAsWdA/AmIXwBxRWUdg9y1u0AWExjzA0lkzIiGQQAAEKkI6w==');
FindDTM(Sum3, x, y, MSX1, MSY1, MSX2, MSY2);
FreeDTM(Sum3);
HumanMouse(x, y, 2, 2, True);
Wait(300+Random(100));

FindDTM(BankExit, x, y, 477, 18, 500, 43);
FreeDTM(BankExit);
HumanMouse(x, y, 2, 2, True);
Wait(700+Random(100));

Sum3:= DTMFromString('mWAAAAHicY2FgYMhmYmDIAuICIC4G4kdAsWdA/AmIXwBxRWUdg9y1u0AWExjzA0lkzIiGQQAAEKkI6w==');
FindDTM(Sum3, x, y, MIX1, MIY1, MIX2, MIY2);
FreeDTM(Sum3);
HumanMouse(x, y, 2, 2, True);
Wait(1000+Random(100));
HumanMouse(x, y, 2, 2, True);
Wait(300+Random(100));

ClickBank;

FindDTM(EmptyInv, x, y, MSX1, MSY1, MSX2, MSY2);
FreeDTM(EmptyInv);
HumanMouse(x, y, 2, 2, True);
Wait(100+Random(100));
end
else If FindDTM(Sum1, x, y, MSX1, MSY1, MSX2, MSY2) Then
begin
FreeDTM(Sum2);
FreeDTM(Sum4);
FreeDTM(Sum3);
FreeDTM(Sum1);
Sum1:= DTMFromString('mbQAAAHicY2VgYDjOxMBwCIj3AfFBID4KxK8ZIPgdEH8G4qdA7OTkypCVlc/Q/uw9kMcExvxAEh0zYsFgAADnzA01');
FindDTM(Sum1, x, y, MSX1, MSY1, MSX2, MSY2);
FreeDTM(Sum1);
HumanMouse(x, y, 2, 2, True);
Wait(300+Random(100));

Sum1:= DTMFromString('mbQAAAHicY2VgYDjOxMBwCIj3AfFBID4KxK8ZIPgdEH8G4qdA7OTkypCVlc/Q/uw9kMcExvxAEh0zYsFgAADnzA01');
If FindDTM(Sum1, x, y, MSX1, MSY1, MSX2, MSY2) Then
begin
FreeDTM(Sum1);
Sum1:= DTMFromString('mbQAAAHicY2VgYDjOxMBwCIj3AfFBID4KxK8ZIPgdEH8G4qdA7OTkypCVlc/Q/uw9kMcExvxAEh0zYsFgAADnzA01');
FindDTM(Sum1, x, y, MSX1, MSY1, MSX2, MSY2);
FreeDTM(Sum1);
HumanMouse(x, y, 2, 2, True);
Wait(300+Random(100));

FindDTM(BankExit, x, y, 477, 18, 500, 43);
FreeDTM(BankExit);
HumanMouse(x, y, 2, 2, True);
Wait(700+Random(100));

Sum1:= DTMFromString('mbQAAAHicY2VgYDjOxMBwCIj3AfFBID4KxK8ZIPgdEH8G4qdA7OTkypCVlc/Q/uw9kMcExvxAEh0zYsFgAADnzA01');
FindDTM(Sum1, x, y, MIX1, MIY1, MIX2, MIY2);
FreeDTM(Sum1);
HumanMouse(x, y, 2, 2, True);
Wait(1000+Random(100));

Sum1:= DTMFromString('mbQAAAHicY2VgYDjOxMBwCIj3AfFBID4KxK8ZIPgdEH8G4qdA7OTkypCVlc/Q/uw9kMcExvxAEh0zYsFgAADnzA01');
FindDTM(Sum1, x, y, MIX1, MIY1, MIX2, MIY2);
FreeDTM(Sum1);
HumanMouse(x, y, 2, 2, True);
Wait(300+Random(100));

ClickBank;

FindDTM(EmptyInv, x, y, MSX1, MSY1, MSX2, MSY2);
FreeDTM(EmptyInv);
HumanMouse(x, y, 2, 2, True);
Wait(100+Random(100));
end
else
begin
FreeDTM(Sum1);
FindDTM(EmptyInv, x, y, MSX1, MSY1, MSX2, MSY2);
FreeDTM(EmptyInv);
HumanMouse(x, y, 2, 2, True);
Wait(100+Random(100));
end;
end
else
begin
FreeDTM(Sum1);
FreeDTM(Sum2);
FreeDTM(Sum3);
FreeDTM(Sum4);
end;
end;

Procedure FruitFall;
Var
SumBut, x, y:integer;
begin
if not LoggedIn then Exit;
if FindNormalRandoms then Exit;

SumBut:= DTMFromString('mbQAAAHicY2VgYDjMxMBwDIj3QfERIJ4AFO8E4ilA3Aulpy9dz3Dz7V0wnZiVwdA8Yx4DP1AcHTNiwWAAAG3PEFw=');
FindDTM(SumBut, x, y, 680, 120, 755, 170);
FreeDTM(SumBut);
HumanMouse(x, y, 2, 2, True);
Wait(250+Random(50));
end;

Procedure WithdrawScrolls;
Var
FfScroll, x, y:integer;
begin
if not LoggedIn then Exit;
if FindNormalRandoms then Exit;

FfScroll:= DTMFromString('mbQAAAHicY2VgYIgD4lwozgDiTCDOAeJ0IM4D4mwgLgTilm0WQJIJjKffk2eIil7AwA/koWNGLBgMAGVgCNs=');
FindDTM(FfScroll, x, y, MSX1, MSY1+85, MSX2, MSY2);
FreeDTM(FfScroll);
HumanMouse(x, y, 2, 2, False);
If OptionsExist(['-15'], False) Then
begin
ChooseOption('-15');
Wait(300+Random(100));
end
else
begin
ChooseOption('-X');
Wait(500+Random(100));
TypeSend('15');
Wait(100+Random(100));
end;
end;

Procedure DepositBoB;
Var
DepositBoBItems, x, y:integer;
begin
if not LoggedIn then Exit;
if FindNormalRandoms then Exit;

DepositBoBItems := DTMFromString('mbQAAAHicY2VgYDjAyMCwHog3AfFxRgjfFIgtgVgPiHWB2AKIZ647zuBw25UhNcITjMu6FjDwA/WjY0YsGAwAU1MMIw==');
FindDTM(DepositBoBItems, x, y, MSX1, MSY1, MSX2, MSY2);
FreeDTM(DepositBoBItems);
HumanMouse(x, y, 2, 2, True);
Wait(250+Random(500));
end;

Procedure DepositInv;
Var
DepositInvItems, x, y:integer;
begin
if not LoggedIn then Exit;
if FindNormalRandoms then Exit;

DepositInvItems := DTMFromString('mbQAAAHicY2VgYChjZGCoBuJ0IK6D0qZAbADEVkBsDmUrCfEyzI1RZHC47crAz8fLkBrhycAP1I+OGbFgMAAAE0EHjg==');
FindDTM(DepositInvItems, x, y, MSX1, MSY1, MSX2, MSY2);
FreeDTM(DepositInvItems);
HumanMouse(x, y, 2, 2, True);
Wait(100+Random(100));
end;

Procedure PickUpFruit;
Var
Papaya, Papaya1, Papaya2, Papaya3, Papaya4, x, y:Integer;
aFound: Extended;
begin
if not LoggedIn then Exit;
if FindNormalRandoms then Exit;

Papaya := DTMFromString('mbQAAAHicY2VgYGBmgAA2KGaHisEwG1S+cbMZQ8t2c4bENg2GqFo1Bpd4WQYRoDg6ZsSCwQAAYyMGPA==');
Papaya1:= DTMFromString('mbQAAAHicY2VgYOhkZGDoAuJ+IG4E4g4gfgjEV4D4AZT9AohnrJFgmLxcnCGrQpBh/TEZht4FYgz8QP3omBELBgMAz5sN3Q==');
Papaya2:= DTMFromString('mbQAAAHicY2VgYLjGyMBwFYhvAvEFIL4NxFJMDAyCQKwAxNJALAnE01cYg3FelSrDsp0WDBWtmgz8QP3omBELBgMASDcLwQ==');
Papaya3:= DTMFromString('mWAAAAHicY2FgYDjPyMBwEoivAvFZIH4ExE+A+AEQXwPi6SuMGVbstmRIzFFkmLbcmIEfqAcZM6JhEAAA1hAMbw==');
Papaya4:= DTMFromString('mWAAAAHicY2FgYJjJyMAwA4gnAfF8ID4ExDuA+CAQHwDJrZFgWLpbimHzKRmGkmYhBn6gHmTMiIZBAAB3lgsi');

If(Not InvFull) Then
begin
Wait(100+Random(100));
If FindDTMRotated(Papaya, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) Then
begin
Writeln('Searching For Papaya!');
ClickFruit(x, y);
FreeDTM(Papaya);
PickUpFruit;
end
else If FindDTMRotated(Papaya1, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) Then
begin
FreeDTM(Papaya);
Writeln('Searching For Papaya1!');
ClickFruit(x, y);
FreeDTM(Papaya1);
PickUpFruit;
end
else If FindDTMRotated(Papaya2, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) Then
begin
FreeDTM(Papaya);
FreeDTM(Papaya1);
Writeln('Searching For Papaya2!');
ClickFruit(x, y);
FreeDTM(Papaya2);
PickUpFruit;
end
else If FindDTMRotated(Papaya3, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) Then
begin
FreeDTM(Papaya);
FreeDTM(Papaya1);
FreeDTM(Papaya2);
Writeln('Searching For Papaya3!');
ClickFruit(x, y);
FreeDTM(Papaya3);
PickUpFruit;
end
else If FindDTMRotated(Papaya4, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) Then
begin
FreeDTM(Papaya);
FreeDTM(Papaya1);
FreeDTM(Papaya2);
FreeDTM(Papaya3);
Writeln('Searching For Papaya4!');
ClickFruit(x, y);
FreeDTM(Papaya4);
PickUpFruit;
end
else If PineappleColor(x, y) Then
begin
FreeDTM(Papaya);
FreeDTM(Papaya1);
FreeDTM(Papaya2);
FreeDTM(Papaya3);
FreeDTM(Papaya4);
Writeln('Searching For Pineapple!');
ClickFruit(x, y);
PickUpFruit;
end
else
begin
Writeln('Did not find any papayas!');
FreeDTM(Papaya);
FreeDTM(Papaya1);
FreeDTM(Papaya2);
FreeDTM(Papaya3);
FreeDTM(Papaya4);
end;
end;
end;

Procedure WithdrawBatPouch;
Var
BankExit, FbPouch, x, y:integer;
begin
if not LoggedIn then Exit;
if FindNormalRandoms then Exit;

FbPouch := DTMFromString('mbQAAAHicY2VgYDAGYksgtgdiFyB2BuJ8IM4B4nQgLgTiLCCu32DG0HvYhmHfziVAHhMY8wNJGIYBRiwYDABNuQiX');
FindDTM(FbPouch, x, y, MSX1, MSY1+85, MSX2, MSY2);
FreeDTM(FbPouch);
HumanMouse(x, y, 2, 2, True);
Wait(250+Random(250));

BankExit := DTMFromString('mbQAAAHicY2VgYHjJyMDwBoifItHKQHF5KFaDYi0VWQZRYUEwNtRSAmN+oDg6ZsSCwQAAYfMHag==');
FindDTM(BankExit, x, y, 477, 18, 500, 43);
FreeDTM(BankExit);
HumanMouse(x, y, 2, 2, True);
Wait(300+Random(200));
end;

Procedure RenewBat;
Var
FbPouch, SumBut, x, y:integer;
begin
if not LoggedIn then Exit;
if FindNormalRandoms then Exit;

SumBut:= DTMFromString('mbQAAAHicY2VgYDjMxMBwDIj3QfERIJ4AFO8E4ilA3Aulpy9dz3Dz7V0wnZiVwdA8Yx4DP1AcHTNiwWAAAG3PEFw=');
FindDTM(SumBut, x, y, 680, 120, 755, 170);
FreeDTM(SumBut);
HumanMouse(x, y, 2, 2, False);
If OptionsExist(['enew'], False) Then
begin
ChooseOption('enew');
end
else
begin
FbPouch := DTMFromString('mbQAAAHicY2VgYDAGYksgtgdiFyB2BuJ8IM4B4nQgLgTiLCCu32DG0HvYhmHfziVAHhMY8wNJGIYBRiwYDABNuQiX');
FindDTM(FbPouch, x, y, MIX1, MIY1, MIX2, MIY2);
FreeDTM(FbPouch);
HumanMouse(x, y, 2, 2, False);
WaitOption('S', 300);
end;
Wait(250+Random(250));
PouchesUsed := PouchesUsed + 1;
end;

Procedure WithdrawAndRenewBat;
begin
if not LoggedIn then Exit;
if FindNormalRandoms then Exit;

WalkNearBank;
ClickBank;
WithdrawBatPouch;
RenewBat;
end;

Procedure FruitfallPickUpLoop;
Var
FfScroll, x, y:Integer;
begin
if not LoggedIn then Exit;
if FindNormalRandoms then Exit;

FfScroll := DTMFromString('mbQAAAHicY2VgYIgD4lwozgDiTCDOAeJ0IM4D4mwgLgTilm0WQJIJjKffk2eIil7AwA/koWNGLBgMAGVgCNs=');

repeat
If FamVanish Then
begin
WithdrawAndRenewBat;
WalkOutside;
end;
FruitFall;
until(ScrollAndSpecialCheck or not ExistsItemDTM(FfScroll, x, y))
Wait(1000+Random(100));
PickUpFruit;
Wait(50+Random(50));
WalkOutside;
repeat
If FamVanish Then
begin
WithdrawAndRenewBat;
WalkOutside;
end;
FruitFall;
until(not ExistsItemDTM(FfScroll, x, y))
PickUpFruit;
end;

Procedure InitialLoop;
begin
if not LoggedIn then Exit;
if FindNormalRandoms then Exit;

SpecialMoveLeftClickCheck;
ClickBank;
end;

Procedure MainLoop;
begin
if not LoggedIn then Exit;
if FindNormalRandoms then Exit;

If FamVanish Then
begin
WithdrawAndRenewBat;
end;
WithdrawScrolls;
WalkOutside;
repeat
Writeln('Still Walking');
Wait(50+Random(50));
until(not IsMoving)
Writeln('Stopped Walking');
Wait(200+Random(100));
Antiban;
SetAngle(SRL_ANGLE_LOW);
MakeCompass(330);
FruitfallPickUpLoop;
WalkNearBank;
repeat
Writeln('Still Walking');
Wait(50+Random(50));
until(not IsMoving)
Writeln('Stopped Walking');
SetAngle(SRL_ANGLE_HIGH);
ClickBank;
DepositBoB;
DepositInv;
If FamVanish Then
begin
WithdrawAndRenewBat;
end;
WithdrawAndDrinkPot;
Trips := Trips + 1;
end;

Procedure Progress;
Var
SumPotsUsed, ScrollsUsed:integer;
begin
ClearDebug;
ScrollsUsed := Trips*15;
SumPotsUsed := Trips*2;
TotalFruits := Papayas+Pineapples+Bananas+Lemons+Limes+Oranges;
Profit := ((Papayas*PapPrice)+(Oranges*OraPrice)+(Pineapples*PinPrice)+
(Bananas*BanPrice)+(Lemons*LemPrice)+(Limes*LimPrice)-
(ScrollsUsed*ScrollPrice)-(SumPotsUsed*SumPotPrice)-(PouchesUsed*FBPouchPrice));
FinalProfit := (Profit*60/((GetTimeRunning/60000)+1));
Writeln('====================================================');
Writeln('===== Spiker Fruitfaller V'+Version+' by Leespiker =====');
Writeln('====================================================');
Writeln('===== Time Running: '+TimeRunning+' =====');
Writeln('===== Total Trips: '+IntToStr(Trips)+' =====');
Writeln('===== Total Fruits Gathered: '+IntToStr(TotalFruits)+' =====');
Writeln('===== Total Papaya Gathered: '+IntToStr(Papayas)+' =====');
Writeln('===== Profit Made: '+IntToStr(Profit)+'gp =====');
Writeln('===== Profit/Hour: '+IntToStr(FinalProfit)+'gp =====');
Writeln('====================================================');
StatsCommit;
end;

begin;
SMART_Server := World;
SMART_Members := Members;
SMART_Signed := Signed;
SMART_SuperDetail := False;

ClearDebug;
SetupSRL;
SetupSRLStats(578,SRLStats_Username, SRLStats_Password);
AddOnTerminate('Progress');
DeclarePlayers;
if not LoggedIn then LoginPlayer;
SetVars;
InitialLoop;
repeat
repeat
MainLoop;
Progress;
until (not LoggedIn)
NextPlayer(Players[CurrentPlayer].Active);
until False;
end.

Sin

2012-01-25 20:06:00

Yes from me!

Reason:
You show quite alot of knowledge in SRL scripting, more than I showed when I joined :P
Don't worry about your post count, just post high quality posts in threads that you enjoy and it should rise in no time :)

Narcle

2012-01-25 20:07:23

uggg… this DTM system again… (no offense to you, I blame the tuts)

Edit:
Its just really in-efficient.

PatDuffy

2012-01-25 20:09:11

No from me, the script is good but you are not part of the community.

Make some posts, help people out, prove you are a helpful part in the community.

RISK

2012-01-25 20:09:59

Finally someone that sees it the same as I do.

From: Narcle
uggg… this DTM system again… (no offense to you, I blame the tuts)

Edit:
Its just really in-efficient.



You have a lot of inefficient code in there. A lot of the same booleans repeated over and over again which could be made 100% shorter by just using a 'bit better logic.

Yanhua

2012-01-25 20:11:20

I voted no this time for you.

You haven't been very active around the forums (5 post count), try maybe contribute more first and then apply.

Your script pretty much is all based on DTMs, try include other aspects of the SRL include as well, and use things such as TPAs for custom object finding.

Good luck! :)

Sin

2012-01-25 20:18:56

Aww that's pretty tight, I remember there was a post by an admin saying that post count isn't everything :L
Let me know if i'm wrong ^.^

PatDuffy

2012-01-25 20:20:37

It's not everything, but when it is that low it does mean quite a bit. 1/2 the requirement for SRL Members is to be an active part of the community, and you cannot pass any test with a 50% average.

Spiker

2012-01-25 20:26:28

I understand and respect y'all's decisions.

Thank you for the constructive criticism.


From: RISK
Finally someone that sees it the same as I do.




You have a lot of inefficient code in there. A lot of the same booleans repeated over and over again which could be made 100% shorter by just using a 'bit better logic.


From: Yanhua
I voted no this time for you.

You haven't been very active around the forums (5 post count), try maybe contribute more first and then apply.

Your script pretty much is all based on DTMs, try include other aspects of the SRL include as well, and use things such as TPAs for custom object finding.

Good luck! :)


From: PatDuffy
It's not everything, but when it is that low it does mean quite a bit. 1/2 the requirement for SRL Members is to be an active part of the community, and you cannot pass any test with a 50% average.

Flight

2012-01-25 20:50:13

From: Narcle
uggg… this DTM system again… (no offense to you, I blame the tuts)

Edit:
Its just really in-efficient.


Agreed with this. This script seems to be so reliant on just DTMs. I'd sure like to see you use more of the SRL library, after all, that's a big part of what we're judging you on; how well you understand the SRL library.

From: PatDuffy
No from me, the script is good but you are not part of the community.

Make some posts, help people out, prove you are a helpful part in the community.


This is also a huge, huge factor for determining new users. Infact, this is always the majority reason for my vote.

Don't give up though! Work some more with your script, try some new things, experiment with some of what SRL really has to offer, and just have fun with it. :) Be more active in the community, show us you can really fit in amongst us.

Daniel

2012-01-25 21:08:35

You are active (somewhat) on IRC, asking for help in fixing problems, and capable of working them out yourself.

However, your script is entirely dependent on DTMs. It leads to terrible coding practices in the future, and doesn't open your mind to other object detection methods which employ the use of algorithms, etc.

You have a good knowledge of SRL, from when I've spoken to you on IRC you seem a nice guy (my name is Mayazcherquoi, by the way), however, that is the only (and quite major) problem I see in your script :-/

Unfortunately, I'm going to have to vote a no :( But, if you do not make it this time, hopefully you will be allowed to reapply within a week-couple of weeks (a lot sooner than others), instead of the month.

You could also look in to how to use arrays, especially for your DTMs.

Cheers,
Daniel.

'Toxin

2012-01-27 10:10:53

No.

You claimed that you learned all about SRL/Scar/Simba yet you only really show one concept of the library itself. By the way, using DTM's as a dependency strictly 100% for a script does not show that you learned enough. I realize that you have capability and I am not saying that you don't. But… I mean come on, if you programmed a script in Java, would you only use one function for identifying everything? No, you wouldn't. Sorry if I seem harsh, I really don't want to… but this is what I see.

DemiseScythe

2012-01-27 11:57:07

From: Narcle
uggg… this DTM system again… (no offense to you, I blame the tuts)

Edit:
Its just really in-efficient.


Okay I'll go delete it geez.

Spiker

2012-01-27 15:10:23

Completely understand :) don't know what I was thinking, but I have changed it up a whole bunch now and will be posting it in the first scripts section soon if you would like to analyze it again. I would love the feedback.

From: XxX Toxin XxX
No.

You claimed that you learned all about SRL/Scar/Simba yet you only really show one concept of the library itself. By the way, using DTM's as a dependency strictly 100% for a script does not show that you learned enough. I realize that you have capability and I am not saying that you don't. But… I mean come on, if you programmed a script in Java, would you only use one function for identifying everything? No, you wouldn't. Sorry if I seem harsh, I really don't want to… but this is what I see.

the scar noob

2012-01-27 16:16:31

From: DemiseScythe
Okay I'll go delete it geez.

Stop the attitude plz.
I'm sure he didn't meant it that way..

As for the script, it seems a decent script. If it's your code, I'm sure you put a lot of time in it :)

E: Maybe more failsafes for your loops (timers/counters)

DemiseScythe

2012-01-27 17:23:47

From: PatDuffy
No from me, the script is good but you are not part of the community.

Make some posts, help people out, prove you are a helpful part in the community.


Actually he is in irc 24/7 and he recently changed his name to protect his rs account.

Coh3n

2012-01-27 21:03:31

From: Narcle
uggg… this DTM system again… (no offense to you, I blame the tuts)

Edit:
Its just really in-efficient.
Nothing wrong with the system in my opinion. For the way it's being used, efficiency isn't relative. The difference is fractions of a second that would only add up after days and days of runtime. I think if it works, there's no reason why someone can't use it.

From: XxX Toxin XxX
No.

You claimed that you learned all about SRL/Scar/Simba yet you only really show one concept of the library itself. By the way, using DTM's as a dependency strictly 100% for a script does not show that you learned enough. I realize that you have capability and I am not saying that you don't. But… I mean come on, if you programmed a script in Java, would you only use one function for identifying everything? No, you wouldn't. Sorry if I seem harsh, I really don't want to… but this is what I see.
If it worked like you wanted for everything, why wouldn't you?

E: @Spiker I see some good things in your code. You do repeat yourself quite often, but so does everyone when they start scripting. That part will take care of itself the more time you spend scripting. Like other people have said, getting into SRL Members isn't just about the script, it's about your attitude (which I like) and your involvement around the community.

From what I've read, you're active on IRC, which is good, but not everyone goes on IRC. ;) As for you script, other people have said this as well. Short and sweet, if you want to be an SRL Member, broaden your knowledge. I have absolutely no problem with relying on DTMs. I believe if it works, you should stick with it, but a lot of people (including myself) voting on these applications look for your range of knowledge more than how the script actually works. If you know what you're doing, the bugs will go away. Just keep learning and I bet your next application will go much better.

Oh, and Flight's mouse function is in SRL's antiban.simba file now. ;)

Spiker

2012-01-28 01:08:54

From: Coh3n
Nothing wrong with the system in my opinion. For the way it's being used, efficiency isn't relative. The difference is fractions of a second that would only add up after days and days of runtime. I think if it works, there's no reason why someone can't use it.

If it worked like you wanted for everything, why wouldn't you?

E: @Spiker I see some good things in your code. You do repeat yourself quite often, but so does everyone when they start scripting. That part will take care of itself the more time you spend scripting. Like other people have said, getting into SRL Members isn't just about the script, it's about your attitude (which I like) and your involvement around the community.

From what I've read, you're active on IRC, which is good, but not everyone goes on IRC. ;) As for you script, other people have said this as well. Short and sweet, if you want to be an SRL Member, broaden your knowledge. I have absolutely no problem with relying on DTMs. I believe if it works, you should stick with it, but a lot of people (including myself) voting on these applications look for your range of knowledge more than how the script actually works. If you know what you're doing, the bugs will go away. Just keep learning and I bet your next application will go much better.

Oh, and Flight's mouse function is in SRL's antiban.simba file now. ;)


Thank you for your kind words and understanding. I took out a lot of DTMs that could bug and am now using TPAs for fruit pickups, etc. It's ridiculous how much I've learned since the posting of this application.

My code now is nearly flawless, and running for 3+hours (max I've run it so far), I've received ~500k/hr compared to ~325k/hr that I previously was getting. Also, a lot less bugs. The logic is much better as well.

I'm learning literally hundreds of things everyday, and even helping others on the hour. I do need to post more in the forums/help people on the forums though. I'm an IRC whore, and usually I wait for someone to 'come to me', figure of speech, for help instead of seeking them. So, I will keep my eyes out on the forums and stay as active as I possibly can.

Overall, I want to thank everyone for reviewing my application. I think that I applied a little bit too soon, but I am much more confident that the next time I apply, I will be ready.

-Spiker

Coh3n

2012-01-28 01:13:10

Perfect, I'll close this on a good note. :)