Floor66
2008-11-30 03:10:36
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 –>