SRL Archive - Archive

floor66 - SRL Member Application Form


Floor66

2008-11-30 03:10:36

<!– BEGIN TEMPLATE: formanswers –>
floor66 - SRL Member Application Form
floor66

What is the meaning to life?


Where you Referred to SRL? If yes, by whom?
no


Programming Knowledge
PHP, HTML, CSS, JS, C#

Other Communitys
RaGEZONE (Username: EliteGM)

How Long have You Played Runescape
5 Years

Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.

Hello,

My real name is Floris den Hartog, I'm 13 years old, but most (online) people guess me much older.
I live in The Netherlands, but I don't think my English is a problem, at school I follow Bilingual Education, I get most of my classes in English.

Very soon in my life I liked online games, and/or coding things.
I've made a few websites, and I know PHP quite good.
I am mature and I can help out people, but ofcourse I'm in for a joke and such =]
I've applied before, but since then I've let SCAR slip. Lately I've been picking it up again, and because of my knowledge of other coding languages it wasn't hard.

Regards,

Floris (Floor66).

——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted


program New;
{.include SRL/SRL/misc/Smart.scar}
{.include SRL/SRL.scar}

// Compiles right away with SMART Fixes+SCAR 3.15b+SRL4#24
// Normally this would be aquired with my own VersionChecker, but I wanted to post the script right-on!
// My ONLINE G.E functions are also in this script.

Var Loads, RunEnergy : Integer;
RunColor : String;

Const
ID = '1234'; // SRL Stats ID
IDPass = 'mypass'; // SRL Stats Pass
GEType = 'min'; // Mid/Min/Max. What type to check on in G.E value
Version = '1.00'; // No touchy
SMART_VER = True; // ^

Procedure DeclarePlayers;
Begin
CurrentPlayer := 0; // Starting player
HowManyPlayers := 1; // How many players in total?
NumberOfPlayers(HowManyPlayers);

Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Nick := ''; // Nickname, 3 - 4 letters of username
Players[0].Active := True; // Use this player?
Players[0].Integers[0] := 500 // Loads to do

{
Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Nick := ''; // Nickname, 3 - 4 letters of username
Players[0].Active := True; // Use this player?
Players[0].Integers[0] := 500 // Loads to do
}
End;

Function WalkToBankSymbol: Boolean; forward;
Function WalkToBankEx: Boolean; forward;
Function WalkToShopEx: Boolean; forward;

{*******************************************************************************
Function GetGEPrice(MidMinMax : String; id : Integer): Integer;
By: Floor66
Description: Gets the Mid/Min/Max price out of G.E with the specified item ID
*******************************************************************************}

Function GetGEPrice(MidMinMax : String; id : Integer): Integer;
Var S, I : String;
Begin
S := GetPage('http://itemdb-rs.runescape.com/viewitem.ws?obj='+ IntToStr(id)); //Get the page
If S = '' Then
Begin
WriteLn('GetGEPrice: Failed to open webpage!');
Exit;
End;
Case MidMinMax Of // Mid, min or max price, take out of the page source
'Mid', 'mid': I := Between('<b>Market price:</b> ', '</span>', S);
'Min', 'min': I := Between('<b>Minimum price:</b> ', '</span>', S);
'Max', 'max': I := Between('<b>Maximum price:</b> ', '</span>', S);
End;
Delete(I, High(I), 1); // Removes the LINE-BREAK that is actually after it:
// <b>Market price:</b> 123 (broken here)
// </span>
I := Replace(I, 'k', '00');
I := Replace(I, 'm', '00000');
I := Replace(I, '.', '');
I := Replace(I, ',', '');
I := Trim(I);
Result := StrToInt(I);
End;

{*******************************************************************************
Function GetGEName(id : Integer): Integer;
By: Floor66
Description: Gets the item name out of G.E with the specified item ID
*******************************************************************************}

Function GetGEName(id : Integer): String;
Var S, N : String;
Begin
S := GetPage('http://itemdb-rs.runescape.com/viewitem.ws?obj='+ IntToStr(id)); //Get the page
If S = '' Then
Begin
WriteLn('GetGEName: Failed to open webpage!');
Exit;
End;
N := Between('<img id="item_image" src="http://itemdb-rs.runescape.com/2466_obj_big.gif?id='+ IntToStr(id) +'" alt="', '">', S);
Result := N;
End;

Procedure AntiRandoms;
Begin
FindNormalRandoms;
End;

Procedure AntiBan;
Begin
AntiRandoms;
Case Random(20) Of
0, 2, 4, 12, 14, 16, 18: SleepAndMoveMouse(1600+Random(400));
1, 3, 5: BoredHuman;
6, 8, 10, 20: PickupMouse;
7, 9, 13: HoverSkill('random', False);
End;
End;

Function Report(Str : String): Boolean;
Begin
WriteLn('||- '+ Padr(Str, 39) +' -||');
Result := True;
End;

Procedure BuyX(cx, cy : Integer);
Begin
ChooseOption('uy X');
Wait(500+Random(300));
TypeSend(IntToStr(RandomRange(28, 50)));
End;

Procedure BuyEx(cx, cy : Integer);
Begin
ChooseOption('uy 10');
Wait(200+random(50));
Repeat
Mouse(cx, cy, 0, 0, False);
Wait(200+Random(150));
If InvFull Then Exit;
ChooseOption('uy 10');
Wait(200+Random(50));
Until(InvFull);
End;

Procedure BuyJars;
Var x, y, Tries : Integer;
Found : Boolean;
Begin
Found := False;
Report('Looking for Jars');
Repeat
Inc(Tries);
If FindObjCustom(x, y, ['utterfly', 'jar'], [5526614, 9145238], 15) Then
Begin
Report('Found Jars');
Found := True;
Mouse(x, y, 0, 0, False);
Wait(100+Random(150));
Case Random(10) Of
0, 2, 4, 6, 8, 10: BuyX(x, y);
1, 3, 5, 7, 9: BuyEx(x, y);
End;
End Else Report('Failed to Find Jars '+ IntToStr(Tries) +' Time(s)');
Until((Tries = 5) Or Found);
If Tries = 5 Then WalkToBankSymbol;
End;

Procedure Trade;
Var Tries, x, y : Integer;
Begin
Report('Looking for Shop Trader');
Repeat
Inc(Tries);
If FindObjCustom(x, y, ['rtimeus'], [7245730, 3299693], 5) Then
Begin
Mouse(x, y, 3, 3, False);
Wait(100+Random(50));
ChooseOption('rade');
AntiRandoms;
Report('Found Shop Trader');
FFlag(0);
End;
Until((Tries = 5) Or ShopScreen);
If ShopScreen Then BuyJars;
If Tries = 5 Then WalkToBankEx;
End;

Procedure Bank;
Var x, y, Tries : Integer;
Begin
Report('Banking');
Repeat
Inc(Tries);
If FindObjCustom(x, y, ['booth', 'ank'], [2444391, 1321015], 15) Then
Begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, False);
Wait(100+Random(150));
ChooseOption('uick');
FFlag(0)
Wait(250+Random(250));
End;
Until((Tries = 5) Or BankScreen);
If Tries = 5 Then WalkToBankSymbol;
Wait(1000);
If BankScreen Then
Begin
Deposit(2, 28, True);
Report('Deposited all Jars successfully');
CloseBank;
AntiRandoms;
End;
End;

Function WalkToShopSymbol: Boolean;
Var x, y, Tries : Integer;
Begin
SymbolAccuracy := 0.5;
Report('Walking to Hunter Store');
Repeat
Inc(Tries);
If FindSymbol(x, y, 'hunter store') Then
Begin
Mouse(x-Random(8), y, 5, 5, True);
While FFlag(0) Do AntiBan;
Report('Reached Hunter Store');
Result := True;
End Else Result := False;
Until((Tries = 5) Or Result);
If Result Then Trade;
If Tries = 5 Then WalkToShopEx;
End;

Function WalkToShopEx: Boolean;
Var x, y, Tries : Integer;
Begin
Report('||- Inbetween-step to Hunter store');
Repeat
Inc(Tries);
MakeCompass('N');
Mouse(650, 70, 5, 5, True);
While FFlag(10) Do AntiBan;
If FindSymbol(x, y, 'hunter store') Then
Begin
Result := True;
Report('Reached Step Inbetween');
End Else Result := False;
Until((Tries = 5) Or Result);
If Tries = 5 Then
Begin
Report('Failed to get to ShopSymbol using Inbetween-step 5 times, terminating.');
TerminateScript
End;
If Result Then WalkToShopSymbol;
End;

Function WalkToBankSymbol: Boolean;
Var x, y, Tries : Integer;
Begin
SymbolAccuracy := 0.5;
Report('Walking to Bank');
Repeat
Inc(Tries);
If FindSymbol(x, y, 'bank') Then
Begin
Mouse(x, y, 5, 5, True);
While FFlag(0) Do AntiBan;
Report('Reached Bank');
Result := True;
End Else Result := False;
Until((Tries = 5) Or Result);
If Result Then
Begin
If InvFull Then Bank;
End;
If Tries = 5 Then WalkToBankEx;
End;

Function WalkToBankEx: Boolean;
Var x, y, Tries : Integer;
Begin
Report('||- Inbetween-step to Bank');
Repeat
Inc(Tries);
MakeCompass('N');
Mouse(590, 105, 5, 5, True);
While FFlag(10) Do AntiBan;
If FindSymbol(x, y, 'bank') Then
Begin
Result := True;
Report('Reached Step Inbetween');
End Else Result := False;
Until((Tries = 5) Or Result);
If Tries = 5 Then
Begin
Report('Failed to get to BankSymbol using Inbetween-step 5 times, terminating.');
TerminateScript
End;
If Result Then WalkToBankSymbol;
End;

Procedure Intro;
Begin
WriteLn('___________.__ ');
Wait(100);
WriteLn('\_ _____/| | ____ ___________ ');
Wait(100);
WriteLn(' | __) | | / _ \ / _ \_ __ \');
Wait(100);
WriteLn(' | \ | |_( <_> | <_> ) | \/');
Wait(100);
WriteLn(' \_____/ |____/\____/ \____/|__| ');

Wait(1000);

WriteLn(' ____. _____ __________ _________ ');
Wait(100);
WriteLn(' | | / _ \\______ \/ _____/ ');
Wait(100);
WriteLn(' | |/ /_\ \| _/\_____ \ ');
Wait(100);
WriteLn('/\__| / | \ | \/ \ ');
Wait(100);
WriteLn('\________\____|____/____|___/_________/ ');

Wait(500);

ClearDebug;
End;

Procedure ProgressReport;
Var OnTime : Integer;
Begin
OnTime := 0;
SendSRLReport;
If Loads > 0 Then
Begin
WriteLn('||-------------------------------------------||');
WriteLn('');
End;
WriteLn('||-------------------------------------------||');
WriteLn('||- Welcome to Floor''s Butterfly Jar Buyer! -||');
WriteLn('||- '+ Padr('Finished: '+ IntToStr(Loads) +'/'+ IntToStr(Players[CurrentPlayer].Integers[0]) +' Loads', 39) +' -||');
If Loads > 0 Then
Begin
MarkTime(OnTime);
If TimeFromMark(OnTime) > 10000 Then
Begin
Report('Gettin G.E price timed out');
End;
WriteLn('||- '+ Padr('Bought '+ IntToStr(Loads*27) +' Jars', 39) +' -||');
WriteLn('||- '+ Padr('Made aprox. '+ IntToStr((Loads*27)*GetGEPrice(GEType, 10012)) +' GP (mid. price)', 39) +' -||');
End;
WriteLn('||-------------------------------------------||');
Disguise('['+ IntToStr(Loads) +'/'+ IntToStr(Players[CurrentPlayer].Integers[0]) +']');
End;

Function GetVer: String;
Begin
Case SMART_VER Of
true: Result := 'http://specs.thamob.nl/BuyJars_PUB_SMART.scar';
false: Result := 'http://specs.thamob.nl/BuyJars_PUB.scar';
End;
End;

Procedure GetLatest;
Var Page : String;
Script : Integer;
Begin
Page := GetPage(GetVer);
if (Length(Page) < 1) then
Begin
Writeln('Error while updating...');
Writeln('Download manually from');
Writeln(GetVer);
Writeln('');
End Else
Begin
Script := RewriteFile(ScriptPath + 'BuyJars.scar', False);
WriteFileString(Script, Page);
Writeln('Download success!');
Writeln('BuyJars.scar Location: '+ ScriptPath + 'BuyJars.scar');
Writeln('');
End;
End;

Procedure CheckVer;
Var S : String;
Begin
S := GetPage('http://specs.thamob.nl/ver.txt');
If (Version = S)Then
Begin
Writeln('Latest version');
Exit;
End Else GetLatest;
End;

Procedure SetupScript;
Begin
SetUpSRL;
CheckVer;
ScriptID := '1092';
SRLID := ID;
SRLPassword := IDPass;
SmartSetUpEx(38, False, True, False);
SetTargetDC(SMARTGetDC);
DeclarePlayers;
ActivateClient;
ClearDebug;
Intro;
While Not RsReady Do Wait(1000);
If Not LoggedIn Then LoginPlayer;
Loads := 0;
SetAngle(True);
ProgressReport;
End;

Procedure ScriptTerminate;
Begin
Disguise('[Stopped]');
End;

Begin
SetupScript;
Repeat
If InvFull Then
Begin
WalkToBankSymbol;
End;

Repeat
RunEnergy := GetMMLevels('run', RunColor);
If RunEnergy > 20 Then SetRun(True);

WalkToShopEx;
WalkToBankEx;
Inc(Loads);
ReportVars[0] := ReportVars[0] + 27;
ReportVars[1] := ReportVars[1] + 1;
ProgressReport;
//SRLRandomsReport;

Until((Loads = Players[CurrentPlayer].Integers[0]) Or (Not LoggedIn));

If Not LoggedIn Then
Begin
If HowManyPlayers = 1 Then LoginPlayer;
End Else NextPlayer(True);

Until(False);
End.

MY LUMBY FLAX SPINNER (made a while back)

program FloorFlax;
{.include SRL/SRL.scar}
{.include SRL/SRL/skill/Magic.scar}

{ *************************!INSTRUCTIONS!*****************************
* *
* :: Declare your players, like normal. (Line 49-70) *
* *
* :: Fill in how many loads to do [LoadsToDo]. (Line 26) *
* *
* :: Fill in your SRL ID and Pass. (Line 27-28) *
* *
* :: Fill "HMP" and "SP". (Line 29-30) *
* *
* :: Fill in to Withdraw-All or All-but-one. (Line 33) *
* *
* :: Make sure you have Flax on your first bank tab. *
* *
* :: Run the script. *
* *
******************************************************************** }

var BSDTM, DoorDTM, FlaxDTM, AlignDTM : Integer;
x, y, Loads, Spin, TTime : Integer;
Full, Found, SFound, SXFound : Boolean;

const
LoadsToDo = 5000; // How many loads to do
SRLStatsID = '1234'; // Your SRL stats ID
SRLStatsPass = 'passwrd'; // Your SRL Stats Password
HMP = 1; // How many players are you using?
SP = 0; // The starting player
AllOrOne = 'one'; // Type "ll" to do Withdraw-All, type "one" to do
// Withdraw-All but one.

/////////////////DON'T TOUCH!////////////////////
Version = '1.00'; // Please don't change!
Script_ID = '1087'; // Please don't change!
/////////////////////////////////////////////////

procedure ProgressReport; forward;
function BowStringInInv(Fixed : Boolean): Boolean; forward;
function SpinScreen: Boolean; forward;
procedure WalkToSpin; forward;
procedure WalkToSpinSpecial; forward;
procedure WalkBack; forward;
procedure AlignCompass; forward;
procedure DepositBowstrings; forward;
procedure WithdrawFlax; forward;
procedure FindStairs; forward;

procedure DeclarePlayers;
begin
HowManyPlayers := HMP;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := SP;

Players[0].Name := 'UserPeter'; // Username (e.g UserPeter)
Players[0].Pass := 'PassPeter'; // Pass (e.g PassPeter)
Players[0].Nick := 'eter'; // 3 or 4 of the characters name (e.g eter)
Players[0].Active := True; // Is this player used?
Players[0].Booleans[1] := False; // False for brightness Check Once. Just leave at false if you don't know what to do.
Players[0].Pin := '0000'; // Your BANK-Pin - Leave at 0000 if you don't have a pin
Players[0].Loc := 'None'; // Leave it, it'll be set on run

{
Players[0].Name := 'UserPeter'; // Username (e.g UserPeter)
Players[0].Pass := 'PassPeter'; // Pass (e.g PassPeter)
Players[0].Nick := 'eter'; // 3 or 4 of the characters name (e.g eter)
Players[0].Active := True; // Is this player used?
Players[0].Booleans[1] := False; // False for brightness Check Once. Just leave at false if you don't know what to do.
Players[0].Pin := '0000'; // Your BANK-Pin - Leave at 0000 if you don't have a pin
Players[0].Loc := 'None'; // Leave it, it'll be set on run
}
end;

{****************************PLEASE DO _NOT_ TOUCH****************************}

function NoLoads: Boolean;
begin
if Loads = 0 then Result := True;
end;

function FindLoc: String;
begin
SymbolAccuracy := 0.5;
if FindSymbol(x, y, 'bank') then
begin
Result := 'Bank';
Exit;
end else
if FindSymbol(x, y, 'spin') then
begin
Result := 'Spin';
Exit;
end else Result := 'NoLoc';
end;

procedure EmptyLn;
begin
WriteLn('');
end;

procedure ReportLoc;
begin
Players[CurrentPlayer].Loc := FindLoc;
WriteLn('|| Reporting location for: '+ Players[CurrentPlayer].Name + '.');
WriteLn('|| Location: '+ Players[CurrentPlayer].Loc);
EmptyLn;
end;

procedure StairAway;
begin
FindStairs;
ReportLoc;
wait(15000 + random(7500));
FindStairs;
ReportLoc;
wait(2000 + random(500));
end;

function DetectPlant: Boolean;
var MyDTMPlant : Integer;
begin
MyDTMPlant := DTMFromString('78DA635CC9C8C0E002C44820DEB58A410448C' +
'34419370059EE109E08542C24971755CD5220CB1A558D6F0A0F8A' +
'1A006E1305DE');
if FindDTM(MYDTMPlant, x, y, 0, 0, 515, 335) Then
Begin
If FindBlackChatMessage('unable') Then
begin
Result := False;
Exit;
end;
Mouse(x, y, 0, 0, False);
ChooseOption('Pick');
If FindColorTolerance(x, y, 11822733, 550, 205, 725, 460, 15)Then
Plants := Plants + 1;
Result := True;
End;
end;

function AntiRandoms: Boolean;
var I : Integer;
begin
for I := 1 to I = 3 do
case I of
1: if FindNormalRandoms then Result := True;
2: if DetectPlant then Result := True;
3: begin
if FindFight then
begin
Result := True;
StairAway;
end;
end;
end;
end;

Procedure AntiBan;
begin
if not LoggedIn then Exit;
case (Random(100)) of
1: RandomRClick;
5: HoverSkill('crafting', False);
11: RandomMovement;
15: BoredHuman;
24: PickUpMouse;
27: begin
Gametab(1 + Random(12));
Wait(3000 + Random(200));
Gametab(4);
end;
30: SleepAndMoveMouse(3600);
end;
MakeCompass('35');
end;

procedure CheckDoor;
var
x, y, DoorMark, DoorTries: Integer;
begin
if(not(LoggedIn))then Exit;
MarkTime(DoorMark);
repeat
Inc(DoorTries);
if(DoorTries = 5)then
begin
Logout;
Exit;
end;
if(FindObjCustom(x, y, ['oor'], [2772852, 3161415], 20))then
begin
if(IsUpText('pen'))then
begin
Mouse(x, y, 5, 5, false);
if(ChooseOption('pen'))then
begin
FFlag(0);
Break;
end;
end else if(IsUpText('los'))then
begin
Break;
end;
end;
until((DoorTries = 5) or (TimeFromMark(DoorMark) > 3000));
end;

Procedure FindDoor;
var
x, y, DoorDTM: Integer;
Angle: Extended;
begin
WriteLn('Checking for closed door.');
if(not(FindDTMRotated(DoorDTM, x, y, MSX1, MSY1, MSX2, MSY2, -0.7, 0.7, 0.01, Angle)))then CheckDoor;
end;

procedure FindStairs;
var T : Integer;
begin
case Players[CurrentPlayer].Loc of
'Bank': begin
repeat
RadialWalk(FindLadderColor, 250, 110, 70, 2, 2);
Flag;
wait(500 +random(500));
if FindObjCustom(x, y, ['case', 'Stair', 'Staircase'], [8226183, 8160390, 6054499], 3) then Break;
T := T + 1;
until(T = 25);
if T = 25 then
begin
WriteLn('Failed to find the stairs to Spin 25 times, next player.');
ProgressReport;
NextPlayer(False);
end;
Mouse(x, y, 1, 1, false);
ChooseOption('-down');
wait(500 + random(500));
ReportLoc;
AntiBan;
end;

'Spin': begin
repeat
RadialWalk(FindLadderColor, 270, 110, 70, MMCX, MMCY);
Flag;
wait(500+random(500));
if FindObjCustom(x, y, ['case', 'Stair', 'Staircase'], [7831425, 5988706, 3754069], 5) then Break;
T := T + 1;
until(T = 25);
if T = 25 then
begin
WriteLn('Failed to find the stairs to Bank 25 times, next player.');
ProgressReport;
NextPlayer(False);;
end;
Mouse(x, y, 2, 2, false);
ChooseOption('-up');
wait(500 + random(500));
ReportLoc;
AntiBan;
end;

'NoLoc': begin
repeat
RadialWalk(FindLadderColor, 270, 110, 70, MMCX, MMCY);
Flag;
wait(500+random(500));
if FindObjCustom(x, y, ['case', 'Stair', 'Staircase'], [7831425, 5988706, 3754069], 5) then Break;
T := T + 1;
until(T = 25);
if T = 25 then
begin
WriteLn('Failed to find the stairs to Bank 25 times, next player.');
ProgressReport;
NextPlayer(False);
end;
Mouse(x, y, 2, 2, false);
ChooseOption('-up');
wait(500 + random(500));
ReportLoc;
AntiBan;
end;
end;
end;

procedure WalkToBank;
var T : Integer;
begin
SymbolAccuracy := 0.5;
WriteLn('Walking to Bank.');
repeat
if FindSymbol(x, y, 'bank') then Found := True;
T := T + 1;
until((T = 25) or (Found = True));
if T = 25 then
begin
WriteLn('Couldnt find the bank symbol after 25 times, next player.');
ProgressReport;
NextPlayer(False);
end;
Mouse(x, y-8, 2, 2, true);
Flag;
ReportLoc;
AntiBan;
end;

procedure WalkToSpinRoom;
var T : Integer;
begin
SymbolAccuracy := 0.4;
repeat
if FindSymbol(x, y, 'spin') then SXFound := True;
until((T = 25) or (SXFound = True));
if T = 25 then
begin
WriteLn('Couldnt find the spin symbol after 25 times, next player.');
ProgressReport;
NextPlayer(False);
end;
Mouse(X, Y, 2, 2, true);
Flag;
ReportLoc;
end;

procedure FindSpin;
var T, MaxTime : Integer;
Box : TBox;
begin
if BowStringInInv(True) or not LoggedIn then Exit;
while not SpinScreen do
begin
if FindObjCustom(x, y, ['pin', 'Spin', 'wheel'], [4346721, 15198186, 2963522], 5) then
begin
WriteLn('Found spinning wheel.');
wait(100 + random(73));
Mouse(x, y, 1,1, true);
Flag;
if AntiRandoms then
begin
Exit;
FindSpin;
end;
Wait(500+random(500));
if SpinScreen then Break;
end;
T := T + 1;
if (T = 25) then
begin
ProgressReport;
WriteLn('Spinning wheel not found. Walking back.');
WalkBack;
end;
end;
if not SpinScreen then WalkToSpinSpecial;
Mouse(273, 122, 5, 5, False);
wait(100 +random(100));
ChooseOption('ll');
WriteLn('Now spinning.');
Wait(250);
if AntiRandoms then
begin
Exit;
FindSpin;
end;
MarkTime(TTime);
repeat
GameTab(4);
MaxTime := MaxTime + 15000;
if (TimeFromMark(TTime) > MaxTime) and not BowStringInInv(False) then
begin
WriteLn(IntToStr(MaxTime/1000) + ' Seconds passed after clicking "Make Bow string", trying again.');
FindSpin;
end;
if ClickContinue(True, False) then FindSpin;
if AntiRandoms then
begin
Exit;
FindSpin;
end;
Box := InvBox(28);
if FindDTM(BSDTM, x, y, Box.x1, Box.y1, Box.x2, Box.y2) then Full := True;
AntiBan;
Wait(500+random(500));
until((Full = True) or (TimeFromMark(TTime) > 90000));
end;

procedure Bank(All : Boolean);
var
BankTries, BankTries2, BankActive, BankMark: Integer;
begin
if(not(LoggedIn))then Exit;
repeat
if((not(BankScreen)) and (not(PinScreen)))then
begin
Inc(BankTries);
if AntiRandoms then
begin
Exit;
Bank(True);
end;
MarkTime(BankMark);
repeat
Inc(BankTries2);
if(not(OpenBankFast('lb')))then AlignCompass;
until((PinScreen) or (BankScreen) or (BankTries2 = 3) or (TimeFromMark(BankMark) > 30000));
MarkTime(BankMark);
repeat
Wait(100+random(250));
until((PinScreen) or (BankScreen) or (TimeFromMark(BankMark) > 3000));
if(PinScreen or BankScreen)then
begin
BankActive := 1;
Break;
end;
end else
begin
BankActive := 1;
Break;
end;
until((BankTries = 5) or (BankActive = 1));

if(PinScreen)then InPin(Players[CurrentPlayer].Pin);
MarkTime(BankMark);
repeat
Wait(100+random(50));
until((BankScreen) or (TimeFromMark(BankMark) > 1500));
if(BankScreen)then
begin
FixBank;
Spin := Spin + InvCount;
ReportVars[0] := ReportVars[0] + InvCount;
if All then DepositBowstrings;
Loads := Loads + 1;
ReportVars[1] := ReportVars[1] + 1;
WithdrawFlax;
Wait(500+random(250));
MarkTime(BankMark);
repeat
CloseBank;
until((not(BankScreen)) or (TimeFromMark(BankMark) > 2000))
AntiRandoms;
end else Logout;
end;

procedure DepositBowstrings;
var
DepositMark : Integer;
begin
if(not(LoggedIn))then Exit;
DepositAll;
MarkTime(DepositMark);
repeat
Wait(100+random(100));
until((InvCount = 0) or (TimeFromMark(DepositMark) > 2000));
end;

procedure WithdrawFlax;
var
x, y: Integer;
begin
if(not(LoggedIn))then Exit;
if(FindDTM(FlaxDTM, x, y, MSX1, MSY1, MSX2, MSY2))then
begin
Mouse(x, y, 5, 5, False);
Wait(100+random(150));
ChooseOption(AllOrOne);
end else Logout;
end;

procedure WalkToSpin;
begin
FindStairs;
WalkToSpinRoom;
FindDoor;
FindSpin;
end;

procedure WalkBack;
begin
if not NoLoads then FindDoor;
FindStairs;
WalkToBank;
Bank(True);
end;

procedure WalkToSpinSpecial;
begin
WalkToSpinRoom;
FindDoor;
FindSpin;
end;

procedure Walk;
begin
if Players[CurrentPlayer].Loc = 'Bank' then
begin
WriteLn('Walking to the spinning wheel.');
WalkToSpin;
WalkBack;
end else
if (Players[CurrentPlayer].Loc = 'Spin') then
begin
if NoLoads then WriteLn('We started off at the spinning wheel.');
WalkToSpinSpecial;
WalkBack;
end;
end;

procedure SetDTM;
begin
BSDTM := DTMFromString('78DA63B467666090606440058C482490F607A' +
'A9123A0C605A84699801A33A01A45026AAC806A8409A83105AA11' +
'C5AF0600243E0244');

DoorDTM := DTMFromString('78DA637CC8C0C0D0C400064C108A21C7539D8' +
'11F483342F98C9780443301353F814423AA9A0C773554351780C4' +
'6A5435813E3EA86A4E01095D5435217E7E98E65C2260CE6990207' +
'E35007C4B1020');
FlaxDTM := DTMFromString('78DA638C676460686440038C4824900E06B2E' +
'A08A80903B23A08A84902B23A09A8C902B29A09A84901B22A09A8' +
'8926AC060068650635');
AlignDTM := DTMFromString('78DA637CC8C0C0D0C400064C108A21C7539D8' +
'11F483342F98C9780443301353F814423AA9A0C773554351780C4' +
'6A5435813E3EA86A4E01095D5435217E7E98E65C2260CE6990207' +
'E35007C4B1020');
end;

procedure FreeDTMS;
begin
FreeDTM(BSDTM);
FreeDTM(FlaxDTM);
FreeDTM(DoorDTM);
FreeDTM(AlignDTM);
end;

function SpinScreen: Boolean;
var
x, y: Integer;
begin
if(FindColorTolerance(x, y, 52224, 225, 129, 302, 167, 5))then
if(FindColorTolerance(x, y, 2070783, 36, 29, 462, 51, 5))then
begin
Result := True;
WriteLn('Found SpinScreen!');
end;
end;

function BowStringInInv(Fixed : Boolean): Boolean;
var Box : TBox;
begin
if Fixed then
begin
Box := InvBox(28);
if FindDTM(BSDTM, x, y, Box.x1, Box.y1, Box.x2, Box.y2) then
begin
Result := True;
end else Result := False;
end else
begin
if FindDTM(BSDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Result := True;
end else Result := False;
end;
end;

procedure AlignCompass;
var
x, y, AlignMark, AlignWait: Integer;
begin
if(not(LoggedIn))then Exit;
MakeCompass('N');
if(FindDTM(AlignDTM, x, y, MSX1, MSY1, MSX2, MSY2))then Exit;
MarkTime(AlignMark);
repeat
Inc(AlignWait);
if(AlignWait mod 2 = 0)then KeyDown(VK_RIGHT) else KeyDown(VK_LEFT);
Wait(AlignWait * 10);
if(AlignWait mod 2 = 0)then KeyUp(VK_RIGHT) else KeyUp(VK_LEFT);
Wait(100+random(250));
until((AlignWait = 20) or (FindDTM(AlignDTM, x, y, MSX1, MSY1, MSX2, MSY2)) or (TimeFromMark(AlignMark) > 10000));
if(not(FindDTM(AlignDTM, x, y, MSX1, MSY1, MSX2, MSY2)))then MakeCompass('N');
end;

procedure SetNickTPA; //From Login.scar
begin
PlayerStartTime := (GetSystemTime div 1000); // PlayerStartTime
if Length(Players[CurrentPlayer].NickTPA) < 2 then
begin;
Writeln('Creating the NickTPA.');
if Players[CurrentPlayer].Nick <> '' then
Players[CurrentPlayer].NickTPA := CreateTPAFromText(Players[CurrentPlayer].Nick, UpChars)
else
begin;
Writeln('Nickname isn''t set, taking the username instead..');
Players[CurrentPlayer].NickTPA := CreateTPAFromText(Players[CurrentPlayer].Name, UpChars);
end;
end;
AddToSRLLog('Current player: ' + Capitalize(Players[CurrentPlayer].Name));
end;

Procedure ProgressReport;
Begin
SRLRandomsReport;
Writeln('(||)---------- FloorFlax v'+ Version +' ----------(||)');
Writeln(Padr('(||)- Flax Spung : '+IntToStr(Spin), 39)+ ' -(||)');
Writeln(Padr('(||)- Loads Done: '+IntToStr(Loads), 39)+ ' -(||)');
Writeln(Padr('(||)- Current Location: ' + Players[CurrentPlayer].Loc, 39) + ' -(||)');
Writeln(Padr('(||)- Ran For: ' + TimeRunning, 39) + ' -(||)');
Writeln('(||)-------------------------------------(||)');
End;

procedure Setup;
begin
SetupSRL;
ScriptID := Script_ID;
SRLID := SRLStatsID;
SRLPassword := SRLStatsPass;
SetDTM;
DeclarePlayers;
ClearDebug;
ActivateClient;
if not LoggedIn then
begin
LoginPlayer;
end else SetNickTPA;
Wait(500 + random(500));
Mouse(727, 102, 4, 4, false);
ChooseOption('mode on');
wait(100 + random(250));
KeyDown(VK_Up);
Wait(500 + random(500));
KeyUp(VK_Up);
wait(250 + random(100));
end;

{****************************PLEASE DO _NOT_ TOUCH****************************}

begin
Setup;
ReportLoc;

repeat
repeat
TTime := 0;
Found := False;
SFound := False;
Full := False;

if NoLoads and (Players[CurrentPlayer].Loc = 'Bank') then
begin
WalkToBank;
if not InvFull then Bank(False);
if BowStringInInv(False) then Bank(True);
end;
MakeCompass('35');

Walk;
ProgressReport;

until((Loads = LoadsToDo) or not LoggedIn);
if not LoggedIn then LoginPlayer;
Wait(500 + random(500));
Progressreport;
WriteLn('Next player...');
NextPlayer(True);
until(False);
FreeDTMS;
end.

——————————————————
<!– END TEMPLATE: formanswers –>

Floor66

2008-11-30 03:13:11

Sorry for double post !! got database error

EDIT:
For all your information; I'm also working on an Al-Karhid Chicken buyer: Chickaas!

Naum

2008-11-30 03:29:23

Definite yes! Keep up the good work!

Floor66

2008-11-30 03:45:46

P.S: I can also code MySQL with PHP

TViYH

2008-11-30 10:36:59

[X]: DTMs
[X]: DDTMs
[X]: Walking
[X]: Antiban/Antirandom
[X]: Multiplayer
[X]: TPAs/T2DTPAs

This is a very good script!
I'd just like to see more things implemented..

I'm holding my vote.

Floor66

2008-11-30 11:04:38

Im working on a script which uses DTMs atm.
I know DTM's anyways :P

Ill make it look for the Jar's DTM soon in the posted script

Naum

2008-11-30 11:23:26

Don't DDTM's count as walking???
Overall I think is one of the best app's so far..

TViYH

2008-11-30 11:30:27

DDTMs count as DDTMs.

noidea

2008-11-30 11:38:21

DTMs                     
DDTMs : No.
Walking : Not used properly.
Antiban/Antirandom : Yes.
Multiplayer : Not used Properly
TPAs/T2DTPAs : None.
Fail Safes : Lots!


Hmmm. This is alot that can be done with this script. Sorry Mt answer is no.

Floor66

2008-11-30 11:39:05

Isn't getting SRL also helping me to learn more.. :P

TViYH

2008-11-30 11:39:36

Lol. My little form there works pretty well.

Should be a necessity for people giving advice :)

Oh well. Sorry for spam.

Floor66

2008-11-30 11:50:39

Just X in DTM's :P
I can do them..Im making a script with em

jakeyboy29

2008-11-30 11:53:25

a big fat yes, he has a good attitude and the script is good. yes from me.

Nava2

2008-11-30 12:41:11

Yes :)

Work on your standards and some TPAs :)

TViYH

2008-11-30 13:01:49

Ok. I'm voting yes now.

Taking the attitude in consideration, YES.

Floor66

2008-11-30 13:13:34

If some of you aren't content yet :P
I've added yet another script to my examples.

It uses RadialWalking, DTM's and some other things =]

Naike

2008-11-30 13:18:10

TViYH : The person that apply don't have to match all the requrements.


Yes. And i can already say, Welcome to SRL-Members :) *In a week*

Floor66

2008-11-30 13:19:40

Wooh :P
And @ noidea:
I just use _alot_ of failsafes so that users can keep it running as long as possible :P

noidea

2008-11-30 13:53:48

I know that. I would have voted yes for your Flax Spinner, if you had posted it earlier.

You also Don't use multi player correctly.

Floor66

2008-11-30 14:06:12

I know, it's because my scripts start off as just for me, Single player'd =\
But w/e it's 70-30 now I hope I get in !

The_Shermanator

2008-11-30 14:47:02

Seems like a Yes from me too, goodjob :)

-Shermanator

Floor66

2008-11-30 15:07:28

Woo ! :P
I just ran my ChickenBuyer for 30 mins straight, it has _alot_ of failsafes :D

Griff

2008-11-30 19:30:43

Although I can't vote, I'll say that I would have voted yes. You have some DTMs, and a nice multiplayer. The only thing I don't really like is your walking, but great script. Here's a pretend 'yes' for you.

-Griff

Tniffoc

2008-11-30 20:52:16

From: griff721
Although I can't vote, I'll say that I would have voted yes. You have some DTMs, and a nice multiplayer. The only thing I don't really like is your walking, but great script. Here's a pretend 'yes' for you.

-Griff


Wooo! A new SRL Member that remembered not to vote!!! Yay!

Anyway, I don't know yet, I'm still deciding. It will kind of depend on how well the scripts run. GL!

Floor66

2008-12-01 01:09:58

Well, my chicken buyer lasted for :

||-------------------------------------------||
||- Welcome to Floor's Chickaas -||
||- Finished 96/500 Loads -||
||- Time Running 3 Hours, 36 Minutes and 33 Seconds -||
||- Bought 2592 Chickens -||
||- Made aprox. 160704 GP (mid. price) -||
||-------------------------------------------||

Then I stopped it.
It buys chickens from Ali Morrisane in Al-Karhid
I'd say that's pretty good…

It has Walking, DTM's, again alot of failsafes, etc.
But I keep it to myself for now, it's in BETA

Waddo

2008-12-01 19:23:46

Yes.

@ Tniffoc's statement the only reason you cant vote as soon as you become member is there would be some who can prove that there vote was fair and can back it up
and some that choose and dont actually have any reason for doing so.

I would like to think that if you post useful comments and say that you would have voted yes the mods/admins will still take your spoken vote into consideration.

Blumblebee

2008-12-01 20:57:21

Yes! (for reasons stated above)

[offtopic] Waddo, long time no see, you havent been around in a long time [/offtopic]

Floor66

2008-12-02 07:45:04

p.s;
I reset the stats of my chicken buyer ^^

ZephyrsFury

2008-12-02 09:42:43

Your standards are weird. Its like you suddenly remember to put standards in then forget in the next procedure. And indents should be 2 spaces not just one. ;)

Floor66

2008-12-02 10:44:40

They should be? I always thought 1 ^^
Well In my Chicken Buyer it's better I hope/think.

EDIT:
The script I posted will not be updated, the Jars don't sell good =\
My chicken buyer is way better anyway Xd

Magiic

2008-12-02 16:47:57

@tniffoc, it's not how well the script runs you know? it's how good the code is, it doesn't have to work at all as long as it shows understanding

Griff

2008-12-02 22:24:43

From: sandos
@tniffoc, it's not how well the script runs you know? it's how good the code is, it doesn't have to work at all as long as it shows understanding


I disagree. Though the code is important, I think its very important that it works. Anyone can put together a script in 5 mins that doesn't work at all, and took no effort, and doesn't show understanding. Though you are correct, the code is the main part.

-Griff

Magiic

2008-12-03 10:51:31

@griff honestly i'll go and find a post in another app that says the same if you disagree with me, read the stickies please. even WT said how well it works doesn't matter, and literally no members test the scripts anyway.

[S]paz

2008-12-03 11:00:05

That might be true Sandos, But if it doesn't compile then it shows carelessness and lack of effort, its a given not many test them, but it should at least do the bare min i think. However i could be wrong.

~Spaz

TViYH

2008-12-03 15:13:34

From: griff721
I disagree. Though the code is important, I think its very important that it works. Anyone can put together a script in 5 mins that doesn't work at all, and took no effort, and doesn't show understanding. Though you are correct, the code is the main part.

-Griff


Technically, it doesn't need to work excessively.

The procedures just need to have functionality, and reason towards the script.

If it's all kinds of random procedures, then, and only then, would the script not working be a reason to NO them.

My banana script worked half-way. It wasn't even finished. But, I showed all required things needed.

Floor66

2008-12-03 15:48:04

The script I posted is a shorter walk, although my Chicken Buyer in Al-Karhid must walk _way_ further, it runs _way_ longer.

jakeyboy29

2008-12-03 15:52:28

u gonna post ur chicken buyer or what?

Floor66

2008-12-04 07:18:30

I'm holding it till SRL member I guess.. but it's stable atm

Scaper

2008-12-04 10:56:04

definate yes m8 well done keep up the good work

Magiic

2008-12-06 06:43:55

@paz, i'm sure i stated it was the code not how well it runs, as if it doesn't compile it is the code, so quite frankly your post was relevant, but stated beforehand.

Wizzup?

2008-12-08 06:54:51

In.

TViYH

2008-12-08 07:10:24

Congrats.

Welcome.