SCAR Code:
program UltimateFletcher;
{.include srl/srl/misc/Smart.scar}
{.include srl/srl.scar}
{.include srl/srl/misc/Users.scar}
{=========================================================================]
[ NAME : Ultimate Fletcher ]
[ WRITER : Footballjds ]
[ CATEGORY : Fletching ]
[ DESCRIPTION : Fletches Longbows and banks em ]
[ USAGE : To Raise Your Fletching Level ]
[ AUTOCOLOR : Yes ]
[ CONTACT : Post on t3h forumz or PM Footballjds2000 on AIM ]
[=========================================================================]
[ Instructions. ]
[=========================================================================]
[ 1. USE Runescape With Low Detail, Very Bright. ]
[ 2. Set your Screen To 32 bit TRUE color. ]
[ 3. Position Players In Bank ]
[ 4. Drag The Cross Hair Over Runescape, Hit Play, And Enjoy! ]
[=========================================================================}
{Banks are:
*******************************************************************************
'akb' = Al Kharid | 'lb' = Lumbridge | 'veb' = Varrock East | 'vwb' = Varrock West
'feb' = Falador East | 'fwb' = Falador West | 'db' = Draynor | 'eb' = Edgeville Bank
'pc' = pest control
*******************************************************************************}
{Logs are: 'normal' | 'oak' | 'willow' | 'maple' | 'yew' | 'magic'}
const
UseSmart = False; //Use Smart?
MBX1 = 21;
MBY1 = 58;
MBX2 = 467;
MBY2 = 287;
var
KnifeDTM, Log, bows, LogClr, x, y, Loads, Sleepy, LevelsGained, EXPFactor, Responded, rspnce,
LRT, TimesSleepted, AntiBanned : integer;
Doned : boolean;
WhatBank, bow, logs : string;
box : TBox;
Errorses, Errorses2 : array of string;
////////////////////////////////////////////////////////////////////////////////
//[]PLAYER SETUP[]\\
procedure PlayerSetup;
var LBU, SBU, MagicLog, normLogs : string;
begin
LBU := '78DA63EC676060E862400175E53A0CBF80342' +
'310FF0702C63E4C3510591809A42712A1663A90984940CD342031' +
'9D08353308A89949580D00AF0E0E34';
SBU := '78DA637466626078C68002CA02F919C480342' +
'310FF07024613A09A370C6880118904D2BE40353708A8F106AA79' +
'4C408D1D50CD6B026A02806A6EE1570300E3880BF5';
MagicLog := '78DA635CC0C4C0F08E0105FCFEB6824103483' +
'302F17F20609C0C54F394010D302291407A1250CD57026AFA30ED' +
'C250B38608352B806A9E1150331FA8E621013533806A1E1150B30' +
'8A8E61B7E35005DD814AD';
NormLogs := '78DA639CC9C4C0F088010514FAF2318832323' +
'00011C37F2060EC06AA79CC800618914820DD0154F386809A5940' +
'35EF08A8590254F38A809AC940351FF0AB0100D0AD0DF2'
SRLPlayerForm(True, ['Use Sleeps', 'Use Responder', 'Longbows'],
['Loads', 'Sleep How Often[mins]', 'How Long To Sleep[mins]'],
['Which Bank', 'Bank Pin[if any]', 'Type Of Logs', 'SRL ID', 'SRL PASSWORD'], []);
WhatBank := players[0].Strings[0];
case Players[0].Strings[2] of
'normal' : EXPFactor := 10;
'oak' : EXPFactor := 25;
'willow' : EXPFactor := 41;
'maple' : EXPFactor := 58;
'yew' : EXPFactor := 75;
'magic' : EXPFactor := 91;
else EXPFactor := 91;
end;
if EXPFactor = 91 then
begin
logs := MagicLog;
if Players[0].Booleans[2] = false then
begin
bow := SBU;
Box := IntToBox(106, 393, 197, 450);
end else
begin
bow := LBU;
Box := IntToBox(357, 392, 408, 444);
end;
end else
begin
logs := NormLogs;
if EXPFactor = 10 then
begin
if (Players[0].Booleans[2] = false) then
begin
bow := SBU;
Box := IntToBox(170, 382, 223, 442)
end else
begin
bow := LBU;
Box := IntToBox(298, 383, 339, 446);
end;
end else if Players[0].Booleans[2] then
begin
bow := LBU;
Box := IntToBox(215, 384, 300, 441);
end else
begin
bow := SBU;
Box := IntToBox(55, 396, 146, 432);
end;
end;
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
procedure StatusReport(What, SecondWhat : string);
begin
Status(What + ' --- ' + SecondWhat + ' /been running for ' + TimeRunning + ' \');
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
procedure Setup;
begin
if (not(LoggedIn)) Then
EXIT;
StatusReport('Setting Up PlayerFor Autoing', 'Just Logged In, Waiting 4 seconds');
wait(2000 + random(2000));
GameTab(4);
Setchat('hide',1);
SetChat('Off', 2);
wait(189+random(90));
SetAngle(True);
MakeCompass('N');
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
procedure Error(what : string; fatel : boolean);
begin
SetArrayLength(Errorses2, GetArrayLength(Errorses2) + 1);
CloseWindow;
if fatel then
begin
SetArrayLength(Errorses2, GetArrayLength(Errorses2) - 1);
SetArrayLength(Errorses, GetArrayLength(Errorses) + 1);
Errorses[GetArrayLength(Errorses) - 1] := what + '| Fatel = True';
Players[CurrentPlayer].Active := False;
LogOut;
MarkTime(Sleepy);
end else Errorses2[GetArrayLength(Errorses2) - 1] := what + '| Fatel = False';
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
procedure MouseBox2(bx : TBox; n1 : integer);
begin
MouseBox(bx.x1, bx.y1, bx.x2, bx.y2, n1);
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
procedure LoadDTMS(WhichDTM : string);
begin
case WhichDTM of
'knife' : KnifeDTM := DTMFromString('78DA632C676460F06540015585850C22401A2' +
'8C3F01F08184B812C3F0634C0884402E92A22D4E401595104D414' +
'11560300CA4A0963');
'log' : Log := DTMFromString(Logs);
'bow' : bows := DTMFromString(bow);
'inv' : begin
Log := DTMFromString(Logs);
KnifeDTM := DTMFromString('78DA632C676460F06540015585850C22401A2' +
'8C3F01F08184B812C3F0634C0884402E92A22D4E401595104D414' +
'11560300CA4A0963');
end;
end;
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
procedure FreeDTMS(WhichDTM : string);
begin
case WhichDTM of
'knife' : FreeDTM(knifeDTM);
'log' : FreeDTM(log);
'bows' : FreeDTM(bows);
'inv' : begin
FreeDTM(log);
FreeDTM(knifeDTM);
end;
end;
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function CountDTM(Area, WhatDTM : string; Stack, LoadThem : boolean) : integer;
var
DTM : integer;
begin
if LoadThem then LoadDTMS(WhatDTM);
case WhatDTM of
'knife' : DTM := knifeDTM;
'log' : DTM := log;
'bow' : DTM := bows;
end;
if Stack then Result := AmountDTM(Area, DTM)
else Result := CountItemsDtm(Area, DTM);
if LoadThem then FreeDTMS(WhatDTM);
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function ColorDTM(DTMd : string; var color : integer) : boolean;
var
DTM : integer;
begin
case DTMd of
'bow' : DTM := bows;
'log' : DTM := log;
end;
if not(FindDTM(DTM, x, y, MIX1, MIY1, MIX2, MIY2)) then EXIT;
color := GetColor(x, y);
Result := True;
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function IsOption(txt: string): Boolean;
var
x1, y1, x2, y2, LeftCorner, RightCorner, x, y: Integer;
begin
Result := False;
LeftCorner := BitmapFromString(4, 4, 'z78DA33753135313137C5' +
'411A600064715CEA914500CACE13F0');
RightCorner := BitmapFromString(4, 4, 'z78DA33753135313137' +
'C5200D30002E35F8C501C9C013F0');
if (FindBitmap(LeftCorner, x1, y1)) and (FindBitmap(RightCorner, x2, y2)) then
begin
FreeBitmap(LeftCorner);
FreeBitmap(RightCorner);
if (FindText(x, y, txt, upchars, x1, y1, x2, 502)) then
begin
Result := True;
end
else
begin
MMouse(x1 - 50, y1 - 50, 40, y2-y1);
Wait(200 + Random(100));
end;
end;
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function ClickItem(Item, OffSetX, OfSetY : integer; left, WaitColor : boolean) : boolean;
var
TB: TBox;
i : integer;
begin
if not(ExistsItem(Item)) then
begin
Writeln('Error, There is nothing in inventory slot ' + IntToStr(Item));
EXIT;
end;
GetInvItemBounds(Item, TB);
for I := 0 to 5 do
begin
if WaitColor and FindColor(x, y, 16777215, MIX1, MIY1, MIX2, MIY2) then break;
Mouse((TB.x1 + TB.x2)/2, (TB.y1 + TB.y2)/2, OffSetX, OfSetY, left);
Wait(75 + random(20));
if not(WaitColor) then break;
end;
Result := (I <= 4);
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function UseItemWithItem2(Item1, Item2 : integer; left : boolean) : boolean;
var
I : integer;
begin
Result := False;
I := 0;
if (CountDTM('Inv', 'bow', false, True) = 27) or
(CountDTM('Inv', 'log', false, True) = 0) then
begin
Doned := True;
EXIT;
end;
if left then ClickItem(Item1, 7, 7, True, True)else
begin
ClickItem(Item1, 7, 7, False, True);
while not(ChooseOption('se')) and not(I >=400) do
begin
wait(55 + random(23));
inc(I);
end;
if I >= 400 then EXIT;
I := 0;
end;
wait(224 + random(242));
if left then
begin
Result := ClickItem(Item2, 5, 5, True, False);
end else
begin
ClickItem(Item2, 7, 7, False, False);
while not(ChooseOption('se')) and not(I >=400) do
begin
wait(55 + random(23));
inc(I);
end;
Result := (I < 400);
end;
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function OpenPCBank : boolean;
var
DTM, x, y, time : integer;
angle : extended;
begin
MakeCompass('n');
DTM := DTMFromString('78DA63B4606460B8CB8002EA8AC3184480342' +
'394CF680F64DDC1ADE63F1030C60059FF207222503587574B3288' +
'2199030058350BF7');
MarkTime(time);
if not findDTMRotated(DTM, x, y, 224, 162, 452, 278, radians(30), Radians(30), 0.05, angle)then
begin
Writeln('blah');
Writeln(IntToStr(TimeFromMark(time)));
FreeDTM(DTM);
EXIT;
end;
FreeDTM(DTM);
Writeln(IntToStr(TimeFromMark(time)));
MMouse(x, y, 3, 4);
wait(50);
if not(IsUpTextMultiCustom(['ooth', 'ank', 'k bo', 'se Ba'])) then EXIT;
Mouse(x, y, 4, 4, False);
wait(350 + random(250));
ChooseOption('quickly');
wait(400);
FFlag(0);
wait(500 + random(240));
Result := BankScreen;
MMouse(MSCX, MSCY, 120, 120);
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function OpenUpBank : boolean;
Var
Tries : Integer;
begin
Result := False;
if not (LoggedIn) then Error('Not Logged In When Opening Bank', true);
if (FindNormalRandoms) then SRLRandomsReport;
StatusReport('Opening The Bank:' , WhatBank);
repeat
if WhatBank = 'pc' then OpenBankGlass('veb',false,false);
else OpenBankFast(WhatBank);
wait(250 + random(140));
if BankScreen or PinScreen then break;
Tries := Tries + 1;
FindNormalRandoms;
until (Tries >= 5);
If Tries > 4 Then
begin
Error('Opening Bank Error', True);
EXIT;
end;
Tries := 0;
if PinScreen Then
InPin(Players[CurrentPlayer].Strings[1]);
FixBank;
Result := BankScreen;
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function WithdrawFromBank : boolean;
var
Waited, TempX, TempY : integer;
begin
Result := False;
if not(BankScreen) then if not OpenUpBank then
begin
Error('Bank Screen Not Open.', False);
EXIT;
end;
StatusReport('Banking' , 'Starting load ' + IntToStr(Loads + 1));
wait(200+random(50));
Deposit(2, 28, 2);
LoadDTMS('log');
if not(FindDTM(log, TempX, TempY, MBX1, MBY1, MBX2, MBY2)) then
begin
Error('No Logs Found In Bank!', True);
EXIT;
end;
FreeDTMS('log');
Mouse(TempX, TempY, 10, 10, False);
GetMousePos(x, y);
wait(223 + random(145));
if not(IsOption('ogs')) then
begin
repeat
Mouse(x, y, 2, 2, False);
wait(240 + random(200));
if(IsOption('ogs')) and ChooseOption('All') then BREAK;
inc(Waited);
until(Waited >= 5);
if Waited >= 5 then
begin
Error('Error, Withdrawing From Bank', False);
EXIT;
end;
end else ChooseOption('All');
Waited := 0;
wait(150+random(76));
for Waited := 0 to 11 do
begin
if BankScreen then CloseBank else BREAK;
wait(124 + random(123));
end;
result := True;
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function FletchThem(RRange1, RRange2 : integer) : boolean;
var
Tries, Item, I : integer;
begin
Result := False;
StatusReport('Fletching load', IntToStr(loads + 1));
GameTab(4);
LoadDTMS('log');
repeat
wait(50+random(50));
inc(Tries);
if (CountDTM('Inv', 'bow', False, True) = 27) then
begin
Result := True;
EXIT;
end;
until FindDTM(log, x, y, MIX1, MIY1, MIX2, MIY2) or (Tries >= 300);
if (Tries >= 300) then
begin
FreeDTMS('log');
Error('No Logs Found In Inventory', False);
EXIT;
end;
ColorDTM('log', LogClr);
FreeDTMS('log');
for I := 0 to 2 do
begin
if FindColor(x, y, 128, 159, 369, 159, 369) then break;
Item := RandomRange(RRange1, RRange2);
if random(20) > 1 then UseItemWithItem2(1, Item, True) else
UseItemWithItem2(1, Item, False);
wait(65+random(34));
if doned then
begin
Result := True;
EXIT;
end;
repeat
wait(50 + random(50));
Tries := Tries + 1;
until(FindColor(x, y, 128, 159, 369, 159, 369)) Or (Tries >= 400);
if not(Tries >= 400) then
begin
I := 0;
break;
end;
end;
if (I >= 2) then
begin
Error('Error While Waiting For Fletch Bows Option', False);
EXIT;
end;
MouseBox2(box, 2);
wait(200+random(100));
if not ChooseOption('X') then EXIT;
repeat
wait(20+random(30));
inc(I);
until FindColor (x, y, 8388608, 259, 429, 259, 429) or (I >= 400);
if I >= 400 then
begin
Error('Error While Waiting To Type In X Amount', False);
EXIT;
end;
wait(random(200));
TypeSend(IntToStr(RandomRange(100, 1001)));
wait(250+random(600));
Result := not(FindColor(x, y, 8388608, 233, 424, 284, 435));
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function LogoutSleepLogin(SleepTimeInMin : integer): boolean;
var
RandSleepTime : integer;
begin
Result := False;
RandSleepTime := random(60000);
if (Logout) then
begin
StatusReport('Sleeping...', 'ZZZZZZzzz.....');
Writeln('Logged Out');
Writeln('Waiting: ' + (IntToStr(SleepTimeInMin)) + 'Minutes Plus Random: ' + (IntToStr(RandSleepTime)) + ' mills');
wait(60000 * SleepTimeInMin + RandSleepTime);
LogInPlayer;
Result := LoggedIn;
if result then
begin
inc(TimesSleepted);
end;
end else
begin
Writeln('Error Occured While Logging Out, Script Terminated');
TerminateScript;
end;
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
procedure LevelRespond;
var
Chats : TStringArray;
I, L: Integer;
begin
if not (Players[CurrentPlayer].Booleans[1]) then EXIT;
Chats := ['tching l', 'hing lv', 'hing le', 'tchin lvl', 'etch lv'];
for I := 0 to 4 do
begin
if InChat(Chats[i]) then
begin
inc(Responded);
L := GetSkillInfo('fletching', False);
case Random(9) of
0: TypeSend(IntToStr(L));
1: TypeSend('Me '+IntToStr(L));
2: TypeSend(IntToStr(L) + ' here');
3: TypeSend('...'+IntToStr(L));
4: TypeSend('Im ' + IntToStr(L));
5: TypeSend('only ' + IntToStr(L));
6: TypeSend('Pfft, only ' + IntToStr(L));
7: begin
TypeSend('onky ' + IntToStr(L));
TypeSend('only*');
end;
8: TypeSend('My Fletching is only ' + IntToStr(L) + ' ...lol');
end;
wait(1000 + Random(500));
Exit;
end;
end;
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
procedure Responds;
Var
Chats, Responce : TStringArray;
I : Integer;
begin
if not (Players[CurrentPlayer].Booleans[1]) then EXIT;
Chats := ['respond', 'hi', 'auto'];
Responce := ['why, "Hello there", :p', 'hello loser :D', 'gah, shut up?'];
for I := 0 to 2 do
begin
if InChat(Chats[i]) then
begin
inc(Responded);
case Random(4) of
0: TypeSend('hi?');
1: TypeSend('OK...');
2: TypeSend('yes...?');
3: begin
TypeSend(Responce[rspnce]);
inc(rspnce);
end;
end;
wait(1000 + Random(500));
Exit;
end;
end;
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
procedure AntiBanRandom;
begin
inc(AntiBanned)
case random(700) of
1, 2, 3: begin
KeyDown(VK_Down);
Wait(random(1000));
KeyUp(VK_Down);
KeyDown(VK_Up);
Wait(500 + random(1000));
KeyUp(VK_Up);
MakeCompass('n');
end;
5, 6, 7: begin
KeyDown(VK_Left);
Wait(random(1000));
KeyUp(VK_Left);
KeyDown(VK_Right);
Wait(random(1000));
KeyUp(VK_Right);
MakeCompass('n');
end;
9, 10, 11: begin
KeyDown(VK_Left);
Wait(random(1000));
KeyUp(VK_Left);
KeyDown(VK_Right);
Wait(random(1000));
KeyUp(VK_Right);
MakeCompass('n');
end;
13, 14, 15: begin
KeyDown(VK_Up);
KeyDown(VK_Left);
Wait(random(1000));
KeyUp(VK_Up);
Wait(random(800));
KeyUp(VK_Left);
MakeCompass('n');
end;
17: HoverSkill('random', False);
19, 20, 21, 22: PickUpMouse;
24: AlmostLogout;
26: BoredHuman;
28, 29, 30, 31: HoverSkill('fletching', False);
else AntiBanned := AntiBanned - 1;
end;
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
procedure ProgressReport(clear : boolean);
Begin
if clear then ClearDebug;
Writeln('==========================================');
Writeln('=§ Ultimate Fletcher By: FootBalljds §=');
Writeln('==========================================');
Writeln('Been Fletching For: ' + TimeRunning);
Writeln('Gained ' + IntToStr(Loads*27*EXPFactor) + ' Exp');
Writeln('Fletched ' + IntToStr(Loads*27) + ' ' + Players[0].Strings[2] + ' Longbows(u)');
Writeln('Did ' + IntToStr(Loads) + ' Loads');
if AntiBanned > 0 then
Writeln('Performed Anti Ban ' + IntToStr(AntiBanned) + ' Times');
if (LevelsGained > 0) then
Writeln('Gained ' + IntToStr(LevelsGained) + ' Levels');
if (Responded > 0 ) then
Writeln('Responded ' + IntToStr(Responded) + ' Times');
if (TimesSleepted > 0) then
Writeln('Slepted ' + IntToStr(TimesSleepted) + ' Times');
Writeln('==========================================');
If LRT >= 301000 Then
Begin
SendSRLReport;
MarkTime(LRT);
end;
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function WaitWhileFletching : boolean;
var
LastTime, utoh : integer;
ToLong : boolean;
begin
repeat
LastTime := CountItemsColor('Inv', LogClr, 0);
StatusReport('Fletching load ' + intToStr(loads + 1) , IntToStr(LastTime) + ' Left To Fletch');
wait(800 + Random(250));
AntiBanRandom;
LevelRespond;
Responds;
if not(LastTime > CountItemsColor('Inv', LogClr, 0)) then Inc(utoh)
else utoh := 0;
if utoh >= 4 then ToLong := True;
if ToLong then
begin
ToLong := False;
utoh := 0;
if FindNpcChatText('letching', nothing) then
begin
inc(LevelsGained);
ClickToContinue;
wait(200+random(100));
clickToContinue;
end;
FletchThem(28, 29);
end;
if FindFight then
begin
StatusReport('Found Fight' , 'Runing North From it!');
RunAway('N', True, 1, 5000);
SRLRandomsReport;
wait(200+random(100));
FletchThem(28, 29);
end;
if FindNormalRandoms then
begin
SRLRandomsReport;
wait(200+random(100));
FletchThem(28, 29);
end;
until (CountItemsColor('inventory', LogClr, 0) = 0) or (not(LoggedIn));
if (not(LoggedIn)) then Error('Logged Out While Fletching?', True);
Loads := Loads + 1;
StatusReport('Just Compleated Load' , IntToStr(Loads));
ReportVars[0] := ReportVars[0] + 27;
ReportVars[1] := ReportVars[1] + (EXPFactor * 27);
ProgressReport(True);
if (TimeFromMark(Sleepy) >= (Players[CurrentPlayer].Integers[1] * 60000 + Random(60000))) and (not(Loads >= Players[CurrentPlayer].Integers[0]))
and Players[CurrentPlayer].Booleans[0] then
begin
LogoutSleepLogin(Players[CurrentPlayer].Integers[2]);
MarkTime(Sleepy);
end;
Result := True;
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
procedure ScriptTerminate;
var
I : integer;
begin
SendSRLReport;
ProgressReport(False);
if GetArrayLength(Errorses) > 0 then
begin
for I := 0 to GetArrayLength(Errorses) - 1 do
Writeln('Error ' + IntToStr(i + 1) + ' |' + Errorses[i]);
Writeln('Please Report The Above ERrors :D');
end;
if GetArrayLength(Errorses2) > 0 then
begin
for I := 0 to GetArrayLength(Errorses2) - 1 do
AddToReport('Error ' + IntToStr(i) + ' |' + Errorses2[i]);
end;
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
procedure MainLoop;
begin
if not LoggedIn then
begin
Writeln('Rarw');
LoginPlayer;
if not LoggedIn then TERMINATESCRIPT;
Setup;
end;
repeat
MouseSpeed := 17 + random(2) - Random(2);
if (not(LoggedIn)) or (Players[CurrentPlayer].Active = false) then
begin
CurrentPlayer := 0;
Players[CurrentPlayer].Active := False;
while Players[CurrentPlayer].Active = False do
begin
CurrentPlayer := CurrentPlayer + 1;
if CurrentPlayer > HowManyPlayers - 1 then
begin
Writeln('No More Active Players');
Writeln('Terminating');
TerminateScript;
end;
end;
LoginPlayer;
Setup;
end;
if (OpenUpBank) then
begin
wait(100+random(50));
if (WithdrawFromBank) then
begin
wait(100+random(50));
if FletchThem(15, 29) then WaitWhileFletching;
end;
end;
until (Loads >= Players[CurrentPlayer].Integers[0]);
Writeln('Finished All The Loads For Player' + IntToStr(CurrentPlayer));
If LoggedIn Then
begin
LogOut;
end;
Players[CurrentPlayer].Active := False;
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
procedure SmartySetup;
begin
if not UseSmart then EXIT;
SmartSetupex(144, false, True);
wait(10000);
SetTargetDC(SmartGetDC);
repeat
wait(100);
until(SmartGetColor(253, 233)<>1118604);
end;
////////////////////////////////////////////////////////////////////////////////
begin
SetupSRL;
SmartySetup;
PlayerSetup;
ScriptID := '616';
SRLID := Players[0].Strings[3];
SRLPassword := Players[0].Strings[4]; if (SRLID = '') or (SRLPassword = '') then begin SRLID := '3546'; SRLPassword := 'jesse123123'; end;
wait(300+random(400));
ActivateClient;
wait(600+random(400));
MarkTime(Sleepy);
MarkTime(LRT);
while(true) do MainLoop;
end.