SRL Archive - Archive

RlagkRud - SRL Member Application


RlagkRud

2013-05-18 22:13:53

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


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?



What is your general programming knowledge?
C, VHDL, LC3, Python


Are you a member of any other communities?
No


Tell us about yourself…
From: RlagkRud
Hey guys! My name is H Kim, and I'm currently a student in the UIUC - EE program. I found this site with google, and I'm really glad I did. The people here seem great and the time they put into this community is amazing.
I'm 21 and Korean (which you probably could tell from my last name :P ). The reason I want to join SRL is to give back to the community who's scripts I've used. Although my programming knowledge and ability is limited to what I've learned at school, hopefully, I can do my share to give back to everyone.
Thanks!

(Although I've played RS for a longgg time it's been very sporadic, so I don't consider myself a veteran.)



Please show us one (or multiple) of your scripts.
Attached to file. Here is my proggy.

~~~~~~~~~~Rlagks Whiteberry Collector~~~~~~~~~~
Time Running : 1 Hours, 17 Minutes and 3 Seconds
We have collected : 630 whiteberries
We are collecting : 491 whiteberries PH
We are on our 15th run
We are on our 6th Crystal
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


This is a whiteberry collector script. Since I couldn't find any solid moneymaking methods in the public section, I decided to make one for SRL member's use. After all, it takes money to grind skills :) .
Whiteberry collecting is one of the more hidden, but great, methods to make money. My script isn't perfect yet, but I'm hoping to add a couple more features and iron out the more subtle bugs. Enjoy!

(For some reason, I can't attach it, since I don't have permission. I'll just copy paste it.


Program WhiteCollector;
{$Define SMART8}
{$I SRL/SRL.Simba}

//Welcome to Rlagk's first script, the whiteberry collector!
//Credit goes to myself, and big thanks to Bud_wis_er_420
//Also thanks to all SRL members, as I have probably used your script, and have looked over it to make this script
//Thanks and Enjoy!

//Setup
{ 1. Set your Tokhul Ring to Actionbar 3 and close actionbar
2. Set crystals to last slot of first row
3. Set weak food to second to last slot of first row
4. Set Pouch to third to last slot of first row
5. Have crystal in 1st slot, don't wear anything white
6. Start with pouch summoned
7. Start Anywhere in the world you want
8. Run
}





Const
{Settings}
UseSummon = True; //Do you want to use summon? (False , True )
SummonType = 'WarTortoise'; //What Familiar do you want to use ( TerrorBird, WarTortoise, PakYak ) ignore if UseSummon = false
DebugMode = True; //Do you want the debug messages?

HowManyCrystals = 10; //How many charged crystals do you have?


{Break Information}
{ TakeBreaks = True;
BreakInMin = 400;
BreakInMax = 420; //Not yet implemented, not necessarily implementing
BreakForMin = 5;
BreakForMax = 15; }

Var
Timer, HowMany, Elapsed, ItemsPH, RunCount, CrystalCount : integer;
Emess : string;
Status, Renew : boolean;

procedure DeclarePlayers;
begin
NumberofPlayers(1);
CurrentPlayer := 0;

Players[0].Name := ''; //Username
Players[0].Pass := ''; //Password
Players[0].Pin := ''; //Bank Pin
Players[0].WorldInfo := [70] //Preferred World
Players[0].Active := True;
End;

Procedure Debugger(Emess: String);
begin
if(DebugMode) then
begin
Writeln(Emess);
end;
end;

//By Bandland100, modified to shift mouse speeds after every step
Procedure SuperWindMouse(xs, ys, xe, ye, gravity, wind, minWait, maxWait, maxStep, targetArea: extended);
Var
veloX,veloY,windX,windY,veloMag,dist,randomDist,lastDist,step: extended;
lastX,lastY,MSP,W: integer;
sqrt2,sqrt3,sqrt5: extended;
Begin
MSP := MouseSpeed;
sqrt2:= sqrt(2);
sqrt3:= sqrt(3);
sqrt5:= sqrt(5);
While hypot(xs - xe, ys - ye) > 1 Do
Begin
dist:= hypot(xs - xe, ys - ye);
wind:= minE(wind, dist);
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;
If (maxStep < 3) Then
Begin
maxStep:= random(3) + 3.0;
End Else
Begin
maxStep:= maxStep / sqrt5;
End;
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;

Case Random(50) Of
1..25: W := (MSP + (Random((MSP/4))));
26..50: W := (MSP - (RandomRange((MSP/2), MSP-1)));
End;
If (W < 1) Then
W := 1;

If (lastX <> Round(xs)) Or (lastY <> Round(ys)) Then
MoveMouse(Round(xs), Round(ys));

step:= hypot(xs - lastX, ys - lastY);
//W := round((maxWait - minWait) * (step / maxStep) + minWait);
wait(W);
lastdist:= dist;
end;

If (Round(xe) <> Round(xs)) or (Round(ye) <> Round(ys)) Then
MoveMouse(Round(xe), Round(ye));

MouseSpeed := MSP;
End;

Procedure HumanMMouse(eX, eY, ranX, ranY: Integer);
Var
randSpeed: extended;
X,Y,X2,Y2,j,Dist,MP: integer;
Begin
j := 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-(j*MP), eX+(j*MP));
Y2 := RandomRange(eY-(j*MP), eY+(j*MP));
SuperWindMouse(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 := j;
End;

//Taken from Bud's UltimateSmelter
Procedure ABMouse(eX, eY, ranX, ranY: Integer);
Var
randSpeed: extended;
c, X,Y,X2,Y2,j,Dist,MP: integer;
Begin
j := 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;
c := random(8);
if (c = 4) then
begin
X2 := RandomRange(eX-(j*MP), eX+(j*MP));
Y2 := RandomRange(eY-(j*MP), eY+(j*MP));
SuperWindMouse(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);
end else
begin
SuperWindMouse(X, Y, eX, eY, 11, 8, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
MMouse(eX, eY, ranX, ranY);
end;
MouseSpeed := j;
End;


//Taken from Bud's UltimateSmelter
Function IsUpTextAdv(Text: TStringArray): Boolean;
var
TP : TPoint;
begin
Result := FindTextEx(TP.x,TP.y,Text,['UpChars'],MSX1,MSY1,MSX1+300,MSY1+30) or
FindTextEx(TP.x,TP.y,Text,['UpChars_s'],MSX1,MSY1,MSX1+300,MSY1+30) or
FindTextEx(TP.x,TP.y,Text,['UpCharsEx'],MSX1,MSY1,MSX1+300,MSY1+30) or
IsUpTextMultiCustom(Text);
end;

//Taken from Bud's UltimateSmelter
function FindTextAdv(Text: TStringArray): Boolean;
var
x, y: Integer;
begin
Result := False;
//Looks for uptext
if IsUpTextAdv(Text) then
begin
Result := True;
end else
begin
//Looks for Mouseover text
if FindTextEx(x, y, Text, ['UpCharsEx'], MSX1, MSY1, MIX2, MIY2) then
begin
Result := True;
end;
end;
end;

//Taken from Bud's UltimateSmelter
function GetFollowerTime: Integer;
var
TPA: TPointArray;
Box: TBox;
begin
Result := -1;
Box := IntToBox(691, 398, 726, 413);
if(FindColors(TPA, 7647428 , Box.X1, Box.Y1, Box.X2, Box.Y2))then
begin
Box := GetTPABounds(TPA);
Result := (((StrToIntDef(GetNumbers(GetTextAtExWrap(Box.X1, Box.Y1, Box.X2, Box.Y2, 0, 3, 4, 7647428 , 0, StatChars)), -1) / 100) + 1) * 60000);
end;
end;

//Taken from Bud's UltimateSmelter
function StoreScreen: Boolean;
begin
result := findTextTPA(13158600, 20, 235, 420, 277, 436, 'Store', upChars, nothing);
end;

//Taken from Bud's UltimateSmelter
function FollowerInvScreen: Boolean;
begin
result := findTextTPA(2070783, 20, 206, 31, 260, 46, 'Fami', upCharsEx, nothing);
end;

//Taken from Bud's UltimateSmelter
function ChooseChatOption(num: Integer): Boolean;
begin
Result := False;
if WaitFunc(@StoreScreen,RandomRange(200,220), RandomRange(3200, 3500)) then
begin
repeat
TypeSendEx(IntToStr(num), False);
wait(RandomRange(1000, 1200));
until not StoreScreen or FollowerInvScreen
if WaitFunc(@FollowerInvScreen,RandomRange(200,220), RandomRange(3200, 3500)) then
begin
Result := True;
end;
end;
end;

//Taken from Bud's UltimateSmelter (somewhat modded)
function CallFollower: Boolean;
var
H: Integer;
TP: TPoint;
begin
Result := False;
if (UseSummon = True) then
begin
//Call follower to prevent running to it and losing position
while not OptionsExist(['Summ', 'mon P', 'mmon', 'Open P', 'Select'], False) do
begin
ABMouse(703, 138, 4, 4);
ClickMouse2(0);
wait(RandomRange(900, 1200));
if not OptionsExist(['Summ', 'mon P', 'mmon', 'Open P', 'Select'], False) then
ABMouse(700, 80, 10, 10);
end;
if not ChooseOptionMulti(['Call Fol', 'all Foll', 'll Follo', 'l Follow']) then
begin
Debugger('Something went wrong and did not find option to call follower');
Exit;
end;

end else Result := True;

end;

//Taken from Bud's UltimateSmelter
function CloseFollowerInv: Boolean;
var
i, Timer: Integer;
begin
Result := False;
Debugger('Closing Follower Inv Screen');
if FollowerInvScreen then
begin
Timer := Elapsed + 8000;
repeat
MouseBox(420, 36, 429, 44, mouse_left);
for i := 0 to 30 do
begin
if not FollowerInvScreen then
begin
Result := True;
Break;
end;
Wait(100);
end;
Wait(Random(100));
until (Elapsed > Timer) or Result;
end;
end;

procedure DepositBOB;
begin
Status := True;
// CallFollower;
// Wait(randomrange(1500,2000));

Repeat
MouseBox(697,134,712,151,Mouse_Right)
until ( WaitOptionMulti(['Interact'], randomrange(200,400)))


Repeat
Wait(100);
Until (ChooseChatOption(2))



Repeat

Wait(100);
Until (InvMouse(2, 0))

Repeat
ChooseOption('re-Al');
wait(1000);
until(not(InvFull))


CloseFollowerInv;
Repeat
Wait(100);
Until ( not( FollowerInvScreen) )


end;

function FellIn : boolean;
begin
if( PercentBlackMM > 50 ) then
begin
Result := True;
Debugger('Fell in Trap');
end
else begin
Result := False;
Debugger('Passed the trap');
end;

end;


procedure ClimbOut;
var i, j : integer;
var found : boolean;
begin

found := False;

Repeat
MarkTime(Timer);

Repeat
MakeCompass('N');
i := randomrange(-2, 6);
j := randomrange(-25, -10);
HumanMMouse(MSCx+i+4,MSCy+j, 1 , 1);
wait(250);
Until( (FindTextAdv(['Climb'])) OR (TimeFromMark(Timer) > 5000))

if (FindTextAdv(['Climb'])) then
begin
ClickMouse2(mouse_left);
Repeat
wait(100);
until( PercentBlackMM < 50 )
break;
end;

MarkTime(Timer);

Repeat
MakeCompass('W');
i := randomrange(4, 10);
j := randomrange(-15, -10);
HumanMMouse(MSCx+i,MSCy+j, 1 , 1);
wait(250);
Until( (FindTextAdv(['Climb'])) OR (TimeFromMark(Timer) > 5000))


if (FindTextAdv(['Climb'])) then
begin
ClickMouse2(mouse_left);
Repeat
wait(100);
until( PercentBlackMM < 50 )
break;
end;


until( (pos('You crawl out', GetChatBoxText(8, clMessage)) <> 0))

ClickNorth(SRL_ANGLE_HIGH);

Debugger('Climbed out of the hole');







end;


procedure CheckRenew;
begin


MouseBox(697,134,712,151,Mouse_Left)

Wait(randomrange(1000,1500));

if( GetFollowerTime < (7.5 * 1000 * 60)) then
begin
Renew := True;

Debugger('Not enough time so dismiss it');

ClickMouse2(mouse_right);
Repeat
Wait(100);
Until( WaitOption('Dismiss', randomrange(100,200)))

Wait(randomrange(1500,2000));
TypeSendEx('1', False);

end

else begin
Renew := False;
Debugger('Plenty of time left so leave it');
end;

GameTab(Tab_inv );
wait(randomrange(1000,2000));



end;



procedure WalkToBerry;
var
ObX, ObY, i : integer;
begin
Debugger('Finding 1');
Repeat
wait(50);
until (RadialWalkTolerance(2777174, 280, 262, 70, 1, 0, 10))
Debugger('Found 1');
Repeat
wait(50);
until (FFlag(100))

Wait(random(200));

Debugger('Finding 2');
MarkTime(Timer);
Repeat
wait(50);
until (RadialWalkTolerance(1988173, 335, 360, 50, 1, 0, 10) OR (TimeFromMark(Timer) > 5000))
Debugger('Found 2');
Repeat
wait(50);
until (FFlag(100))


Debugger('Finding 3');
MarkTime(Timer);
Repeat
wait(50);
until (RadialWalkTolerance(12632256, 360, 320, 75, -1, 0, 4) OR (TimeFromMark(Timer) > 5000))
Debugger('Found 3')
Repeat
wait(50);
until (FFlag(100))

wait(RandomRange(300,500));

MarkTime(Timer);
Repeat
FindColorTolerance(ObX, obY, 6328452, 130, 81, 390, 244, 2)
Debugger('Looking For The Obelisk');
HumanMMouse(ObX+5,ObY, 0, 0);
ClickMouse2(Mouse_right);
until ((WaitOptionMulti(['Renew', 'w points', 'Small'], RandomRange(100,200))) OR (TimeFromMark(Timer) > 5000))
Debugger('Found Obelisk');
ChooseOptionMulti(['Renew', 'w points', 'Small'])
Debugger('Successfully Clicked it');

MarkTime(Timer);
Repeat
wait(50);
until( (pos('You have recharged', GetChatBoxText(8, clMessage)) <> 0))

wait(randomrange(1000,1200));

MarkTime(Timer);
Repeat
FindColorTolerance(ObX, ObY, 6584706, 0, 163, 260, 325, 10)
Debugger('Looking for Tree');
HumanMMouse(ObX, ObY, 0, 0);
ClickMouse2(Mouse_right);
until ((WaitOptionMulti(['Pass', 's Tree'], RandomRange(100,200))) OR (TimeFromMark(Timer) > 5000))

ChooseOptionMulti(['Pass', 's Tree']);
Debugger('Passed the Tree');

Repeat
wait(100);
Until( IsMoving )

Repeat
wait(100);
Until( not(IsMoving) )

Repeat
wait(100);
Until( IsMoving);

Repeat
wait(100);
Until( not(IsMoving));


MarkTime(Timer);
Debugger('Finding 4');
Repeat
wait(50);
until( RadialWalkTolerance(2908483, 225, 270, 75, 0, 1, 5))
Debugger('Found 4');

Repeat
wait(50);
until (FFlag(100))

Debugger('Finding 5');
Repeat
wait(50);
until( RadialWalkTolerance(3368780, 270, 300, 60, 0, 1, 10))
Debugger('Found 5');

Repeat
wait(50);
until (Fflag(100));

wait(randomrange(200,300));
Debugger('Finding 6');
Repeat
wait(50);
until( RadialWalkTolerance(5790300, 200, 225, 65, -1, 0, 10))
Debugger('Found 6');
Repeat
wait(50);
until (Flag);

wait(randomrange(1200,2000));

Repeat

MarkTime(Timer);

Repeat
i := randomrange(2,8);
FindColorTolerance(ObX, ObY, 1453603, 200, 163, 260, 325, 5)
Debugger('Looking for Trap');
HumanMMouse(ObX-5, ObY+i, 0, 0);
ClickMouse2(Mouse_right);
until ((WaitOptionMulti(['Jump', 'p Leaves', 'Leaves'], RandomRange(100,200))) OR (TimeFromMark(Timer) > 5000))

Debugger('Found trap');
ChooseOptionMulti(['Jump', 'p Leaves', 'Leaves']);

MarkTime(Timer);

Repeat
wait(20);
Debugger('Waiting for movement');
Until(IsMoving);
Debugger('Started moving');

Repeat
wait(100);
Debugger('Waiting to stop');
Until(Not(IsMoving));

Debugger('Stopped');
wait(1000);

if( FellIn ) then
begin
ClimbOut;
MarkTime(Timer);
end;


until( (pos('manage to cross', GetChatBoxText(8, clMessage)) <> 0) OR (TimeFromMark(Timer) > 10000) OR FindColorTolerance(ObX, ObY, 1453603, 130, 81, 390, 110, 5))


Debugger('Finding 7');
Repeat
wait(50);
until( RadialWalkTolerance(1854022, 220, 225, 70, 0, 1, 15))
Debugger('Found 7');
Repeat
wait(50);
until (Fflag(100));


Debugger('Finding 8');
Repeat
wait(50);
until( RadialWalkTolerance(3038552, 325, 360, 55, 0, 1, 10))
Debugger('Found 8');
Repeat
wait(50);
until (not(IsMoving));



Debugger('Finding 9');
Repeat
wait(50);
until( RadialWalkTolerance(2053191, 90, 100, 25, 0, 1, 15))
Debugger('Found 9');
Repeat
wait(50);
until (Fflag(100));


end;





procedure CollectBerry;
var ObX, Oby, i, j : integer;
begin


MarkTime(Timer);
if ( not(Status)) then
begin
Repeat
i := randomrange(1,4);
FindColorTolerance(ObX, ObY, 14474982, 130, 81, 510, 244, 40)
Debugger('Looking for berry');
HumanMMouse(ObX, ObY+j, 0, 0);
ClickMouse2(Mouse_right);
until ((WaitOptionMulti(['Take W', 'White', 'berries'], RandomRange(100,200))) OR ((TimeFromMark(Timer) > 3000)))

if( ChooseOptionMulti(['Take W', 'White', 'berries'] )) then
begin
Debugger('Cant find, assuming were stepping on it');
end;
Wait(1000);

end;

repeat
i := randomrange(8,15);
j := randomrange(0,14);
HumanMMouse(MSCx-4+j,MSCy+i, 1 , 1);
wait(100);
until (FindTextAdv(['Take W', 'White', 'berries']))

MarkTime(Timer);

Repeat
if( TimeFromMark(Timer) > 6000 ) then
begin
repeat
i := randomrange(8,18);
j := randomrange(0,14);
HumanMMouse(MSCx-4+j,MSCy+i, 1 , 1);
wait(100);

until (FindTextAdv(['Take W', 'White', 'berries']))
end;

if( FindTextAdv(['Take W', 'White', 'berries'] )) then
begin
wait(randomrange(100,400));
ClickMouse2(Mouse_left);
wait(1000);
MarkTime(Timer);
end;

until ( InvCount = 28)

if( UseSummon ) then
begin
if( not(Status) ) then
begin
DepositBOB;
end;
end;


end;

Procedure FindBanker;
var i, Obx, Oby : integer;
begin

Repeat
MarkTime(Timer);
Repeat
i := randomrange(-2,2);
FindColorTolerance(ObX, ObY, 5029882, 65, 0, 260, 280, 15);
FindColorTolerance(ObX, ObY, 4639204, 65, 0, 260, 280, 15);
FindColorTolerance(ObX, ObY, 2472445, 65, 0, 260, 280, 15);
Debugger('Looking for banker');
HumanMMouse(ObX, ObY+i, 0, 0);
ClickMouse2(Mouse_right);
if(TimeFromMark(Timer) > 5000 ) then
begin
FindColorTolerance(ObX, ObY, 5029882, 65, 0, 390, 280, 15);
FindColorTolerance(ObX, ObY, 4639204, 65, 0, 390, 280, 15);
FindColorTolerance(ObX, ObY, 2472445, 65, 0, 390, 280, 15);
end;

until ((WaitOptionMulti(['Bank', 'k Tz'], RandomRange(100,200))) OR BankScreen OR PinScreen)

if( not(ChooseOptionMulti(['Bank', 'k Tz']))) then
begin
Debugger('Found Banker');
end;

wait(2000);

until ( BankScreen OR PinScreen )

if( PinScreen ) then
begin
InPin(Players[0].Pin);
end;


end;


Procedure EatFood;
begin
Withdraw(8, 0, 1);
Repeat
Wait(random(300));
Until ( ExistsItem(2) )

Repeat
InvMouse(2, 0);
until( WaitOption('Eat', randomrange(100,200)))

Repeat
Wait(100);
Until( not(ExistsItem(2)))



end;

Procedure BankFunctions;
var
NewCrystal : boolean;
begin

if( UseSummon ) then
begin
QuickDeposit(3);
Wait(Randomrange(200,400));
end;

InvMouse(1, 3)
if( FindTextAdv(['Tiny elf crystal'])) then
begin
NewCrystal := True;
QuickDeposit(0);
end
else begin
NewCrystal := False;
Deposit(2, 2, True);
end;

if( NewCrystal ) then
begin
CrystalCount := CrystalCount + 1;
Repeat
Withdraw(9, 0, 1);
InvMouse(randomrange(4, 10), 3);
Wait(1000);
until(not(InvCount = 0))

end;

EatFood;

Repeat
wait(100);
until( CloseBank )

end;

Procedure BankSummon;
var
NewCrystal : boolean;
begin

if( Renew ) then
begin
Withdraw(7, 0, 1);
Repeat
Wait(random(300));
Until ( ExistsItem(2) )
end;

Repeat
wait(100);
until( CloseBank )

if( Renew ) then
begin
Renew := False;

Repeat
Wait(100);
InvMouse(2, 0);
until ( WaitOption( 'Summon', randomrange(500,1000)))
end;

end;



procedure ProgressReport;
begin

if( lowercase(SummonType) = 'terrorbird') then
begin
HowMany := Howmany + 27 + 12 ;
end;
if ( lowercase(SummonType) = 'wartortoise' ) then
begin
HowMAny := Howmany + 27 + 18 ;
end;
if ( lowercase(SummonType) = 'pakyak' ) then
begin
HowMany := Howmany + 27 + 30 ;
end;
ItemsPH := Round((HowMany * (3600.0 / (GetTimeRunning / 1000.0))));
RunCount := RunCount + 1;

Writeln('~~~~~~~~~~Rlagks Whiteberry Collector~~~~~~~~~~');
Writeln('Time Running : ' + TimeRunning);
Writeln('We have collected : ' + IntToStr(HowMany) + ' whiteberries');
Writeln('We are collecting : ' + IntToStr(ItemsPH) + ' whiteberries PH');
Writeln('We are on our ' + IntToStr(RunCount) +'th run');
Writeln('We are on our ' + IntToStr(CrystalCount) + 'th Crystal');
Writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');




end;

procedure TellyIn;
begin
InvMouse(1, 1);
Wait(randomrange(4000,4500));
end;



procedure TellyOut;
begin
toggleactionbar(True);
TypeSendEx('3', False);
Wait(randomrange(1000,1500));
TypeSendEx('4', False);

wait(randomrange(4500,5000));
repeat
wait(100);
toggleactionbar(false);
until(not(IsActionBarOpen))

end;


procedure InitialSetup;
begin
// turn off chats
// set north
{$IFDEF SIMBAMAJOR980}
SMART_SERVER := 72;
SMART_MEMBERS := TRUE;
SMART_SIGNED := TRUE;
SMART_SUPERDETAIL := FALSE;
{$ELSE}
SRL_SixHourFix := TRUE;
SMART_FixSpeed := TRUE;
{$ENDIF}
SetUpSRL;
ClearDebug;
DeclarePlayers;
LoginPlayer;

if(IsMoneyPouchOpen) then
begin
ToggleMoneyPouch(True);
end;

// GameTab(Tab_Inv);
ClickNorth(SRL_ANGLE_HIGH);



WriteLn('Setup Complete, Lets Make Money!');

end;

procedure InitializeVar;
Begin
//Variable Initialization
Renew := False;
Status := False;
CrystalCount:= 1;
RunCount := 1;
HowMany := 0;

end;




begin

InitialSetup;
InitializeVar;
MarkTime(Elapsed);

Repeat

If(Not(LoggedIn)) then
begin
LogInPlayer;
end;

TellyIn;

WalkToBerry;

CollectBerry;

CollectBerry;
Status := False;

TellyOut;

FindBanker;

BankFunctions;

CheckRenew;

if( Renew ) then
begin
FindBanker;

BankSummon;

Wait(randomrange(1000,2000));
end;

if(CrystalCount-1 = HowManyCrystals) then
begin
LogOut;
Break;
end;



ProgressReport;


Until(AllPlayersInactive)


end.

[Edit]
Just realized I forgot to erase my username and stuff…
I guess I'll have to change my password now hahaha.

Ian

2013-05-18 22:20:01

Although I haven't read your script yet, I can't say I have a feel for your character yet. You haven't been here very long and haven't posted very much so it makes it hard to tell. I won't be voting until I've read your script, but right now I'm leaning toward no because of your activity.

King

2013-05-18 23:10:39

I'm on my iPad so I apologize for not being able to copy excerpts from your script, I will edit them with it later. I agree with BMW on activity, members is a rank based not only on scripting ability, but also activity, helpfulness ect. If we know you around the forum it makes it much easier to vote.

On to the script.

First thing that I notice is you use
 repeat
Blah blah blah // procedure/ waiting here
Until(FFlag(100)); // anything you are wanting as a result here


I have seen you use
 Marktime
in your script before, which is an essential failsafe, but you stopped using it in many procedures, leading to dozens of possible infinite loops even in just one procedure, your walking to berries procedure, while it is nice to see radial walk, I see very little if not any TPA finding functions or ATPA functions in your script. These are very Important to show knowledge of, plus make your script work 100x better and even easier to code with as they work very well, you can look at those here http://villavu.com/forum/showthread.php?t=92301


Also DTMs are very nice to see in a script as well, this would solve some of your static ability bar usage as you could use them to find the items, specifically, good and teleports. What happens if it switches to another bar on accident or closes the bar? Your script will just click it, where if you call a finding function for a specific DTM. And can't find it, you can make the script exit. This will show us knowledge of failsafes, thinking ahead and problem solving.

As for the mainloop, you should not just call the procedures in order, what if one messes up? What if the script starts in a different spot after the 6 hours? If you make the script determine where it is at each step, or make it only do certain things at certain locations, such as only TellyIn if they are not by the bank ( kinda bot like to teleport to the bank when oh are right next to it), this will allow the script to be more dynamic and run for longer periods of time.

I thinly up should look through @Ashaman88's scripts for failsafe references and how to format loops as he has the ultimate scripts when it comes to stability, I think his longest proggy is 2 weeks now? He is a very good example to look at when scripting, helped me a lot just by writing scripts, I think you will benefit a lot from it as well!


I think the biggest things you should focus on are

1: Learning TPAs/ATPAs
2: Learn to break out of loops and use proper failsafes to avoid infinite loops.
3: Incoperate DTMs in your script, or Bitmaps ( similar to DTMs ).

I know I may seem kinda critical, but that is what scripting is about, membership is something to work for, something to be proud of. I think you show promise, your introduction has the right kind of attitude, and you seem to progress fast with scripting. I am not going to vote at this time, I want to see what others think, I'm leaning towards a no, but others have changed people's minds before ( @ The mayor <3 and @Kevin).

So you are looking good, just some things to work on(:

RlagkRud

2013-05-18 23:31:12

Looks like I jumped the gun a little with applying for membership when I'm only a 2-3 month member. I suppose I should have poked around a little more in the forums hehehe.

Doesn't seem like I'm gonna make it :*( but thanks for the feedback! I'll try my best to improve my scripting and becoming more and more active in the community hehe

StickToTheScript

2013-05-18 23:35:10

From: RlagkRud
Looks like I jumped the gun a little with applying for membership when I'm only a 2-3 month member. I suppose I should have poked around a little more in the forums hehehe.

Doesn't seem like I'm gonna make it :*( but thanks for the feedback! I'll try my best to improve my scripting hehe.


Its alright. You are always given another chance. I would recommend a higher post count, that is one major thing that is looked for.

Let people know who you are and you may have a better chance next time. :D

King

2013-05-19 09:51:07

From: RlagkRud
Looks like I jumped the gun a little with applying for membership when I'm only a 2-3 month member. I suppose I should have poked around a little more in the forums hehehe.

Doesn't seem like I'm gonna make it :*( but thanks for the feedback! I'll try my best to improve my scripting and becoming more and more active in the community hehe


Also the way you responded to my feedback ( not lashing out ) is a good sign(:

Daniel

2013-06-02 05:32:57

Looks like you won't be getting in this time, RlagkRud :(

Take into account all the suggestions given by members.

You may apply again in a month, or whenever you feel ready. :)