When i try to run "Smurg's AIO fletcher"
I always get this error:
"Exception in Script: Unable to find file 'SRL/SRL/Misc/Stats.scar' used from ''
i have simba/srl/reflection installed so im a bit confused.
Printable View
When i try to run "Smurg's AIO fletcher"
I always get this error:
"Exception in Script: Unable to find file 'SRL/SRL/Misc/Stats.scar' used from ''
i have simba/srl/reflection installed so im a bit confused.
Perhaps you need to update SRL? Or maybe Stats is an extra file you must download from somewhere else. It is relatively new so that might be it.
Try deleteing that line and see if it works.
Well its useless since it uses the old stats.
Oh, it does? Then shit, just get a new script :P.
Um, post the script, I'll remove stats and make it compile.
Or I'll make you a simple little stringer if you want.
http://villavu.com/forum/showthread....light=fletcher
is the one, i already have a simple stringing script but its too bot like and doesnt work that well lol.
Also thankyou for the help.
Compiles for me. Not sure if it works though.Simba Code://////////////////////////////////////////////////
/////// ///////
// //
// Smurg's AIO Fletcher V2.01 //
// -------------------------------- //
// | Fill in lines 61-107 | //
// -------------------------------- //
// //
/////// ///////
////////////////////////////////////////////////////////////////////////////////
/////// ///////
// //
// Release Notes: //
// Version 1.00: //
// + Wrote original script and personally tested //
// Version 1.10: //
// + Added in breaks and fixed antiban //
// Version 1.20: //
// + Added final report and fixed formatting, break handler, //
// and various errors //
// Version 1.30: //
// + Added stringing support //
// + Pulled ID #'s out and replaced using constants //
// + Replaced waits with failsafe loops ending on conditions //
// + Restructured the Mainloop from inventory counts to by each //
// 'activity' and individual checks //
// Version 2.00: //
// + Added arrow support. (Darts and Bolts soon!) //
// + Added some more antiban. //
// Version 2.01: //
// + Updated DTMs //
// //
// Future Additions: //
// + Darts/Bolts Support //
// //
// Known Bugs: Sometimes SRL Anti-Ban functions makes it walk (should //
// relocate to a bank if on screen though. //
// //
/////// ///////
////////////////////////////////////////////////////////////////////////////////
// //
// Instructions: //
// //
// + Start with knife in first inventory spot if cutting wood. ///////
// + Only cutting/stringing logs and arrows are supported so far, no bolts/darts. //
// + For arrows/darts/bolts: Start with any items you need in inventory, it will //
// make the headless for you and then attach the tips. //
// ///////
////////////////////////////////////////////////////////////////////////////////
program AIOFletcher; //
{$i SRL/SRL/misc/smart.scar} //
{$i SRL/SRL.scar} //
{$i Reflection/Reflection.Simba} //
const //
//////////////////////////////////////////////////
///////////////////////////////////////////////////////////
//////////////////// Global Settings /////////////////////
///////////////////////////////////////////////////////////
World = 67; // World # to play on //
DebugMode = True; // Output debugging statements? //
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
////////// Break Handler for Single Player Only ///////////
////////////////////////////////////////////////////////////////////////////////
BreakEvery = 220; // Break every ... (+/- 'BreakEveryRand' minutes) //
BreakEveryRand = 40; // +/- amount for BreakEvery //
//----------------------------------------------------------------------------//
BreakFor = 10; // Break for ... (+/- 'BreakForRand' minutes) //
BreakForRand = 5; // +/- amount for BreakFor //
////////////////////////////////////////////////////////////////////////////////
procedure DeclarePlayers;
var
x: Integer;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Nick := '';
Pin := '';
Active := True;
//----------------------------------------------------------------------------------------------------
Integers[0] := 99999; // Items (Logs, Arrows, Darts, etc.) to fletch before switching players
// If using one player, leave Integers[0] blank or equal to Integers[1]
//----------------------------------------------------------------------------------------------------
Integers[1] := 99999; // Items (Logs, Arrows, Darts, etc.) to fletch before stopping player.
//----------------------------------------------------------------------------------------------------
Strings[0] := 'Cut'; // Activity ('Cut'/'String'/'Arrows'/'Darts'/'Bolts')
//----------------------------------------------------------------------------------------------------
Strings[1] := 'Willow'; // Cutting/Stringing: ('Normal'/'Oak'/'Willow'/'Maple'/'Yew'/'Magic')
// Arrows: ('ABronze'/'AIron'/'ASteel'/'AMithril'/'ABroad'/'AAdamant'/'ARune'/'ADragon')
// Darts: ('DBronze'/'DIron'/'DSteel'/'DMithril'/'DAdamant'/'DRune'/'DDragon')
// Bolts: ('BBronze'/'BIron'/'BSilver'/'BSteel'/'BMithril'/'BAdamant'/'BRune'/'BBroad')
// Headless: Just for making headless arrows, no tips added.
//----------------------------------------------------------------------------------------------------
Strings[2] := 'Long'; // Cutting/Stringing: ('Long'/'Short'/'Stock'/'Shaft') (Stringing only supports longbows.)
// Arrows, Darts, Bolts: Leave as ''
//----------------------------------------------------------------------------------------------------
Strings[3] := 'lb'; // Bank location.
// veb - Varrock East Bank
// vwb - Varrock West Bank
// fwb - Falador West Bank
// feb - Falador East Bank
// lb - Lumbridge Bank
// db - Draynor Bank
// akb - Al-Kharid Bank
// seb - Seers Bank
// ctb - Catherby Bank
// eb - Edgeville Bank
// fgb - Fishing Guild Bank
// mc - Moonclan Bank
// yb - Yanille Bank
// da - Duel Arena Bank
// asb - Ardougne South Bank
// pc - Pest Control Bank
end; {
with Players[1] do
begin
Name := '';
Pass := '';
Nick := '';
Pin := '';
Active := True;
//----------------------------------------------------------------------------------------------------
Integers[0] := 99999; // Items (Logs, Arrows, Darts, etc.) to fletch before switching players
// If using one player, leave Integers[0] blank or equal to Integers[1]
//----------------------------------------------------------------------------------------------------
Integers[1] := 99999; // Items (Logs, Arrows, Darts, etc.) to fletch before stopping player.
//----------------------------------------------------------------------------------------------------
Strings[0] := 'Cut'; // Activity ('Cut'/'String'/'Arrows'/'Darts'/'Bolts')
//----------------------------------------------------------------------------------------------------
Strings[1] := 'Willow'; // Cutting/Stringing: ('Normal'/'Oak'/'Willow'/'Maple'/'Yew'/'Magic')
// Arrows: ('ABronze'/'AIron'/'ASteel'/'AMithril'/'ABroad'/'AAdamant'/'ARune'/'ADragon')
// Darts: ('DBronze'/'DIron'/'DSteel'/'DMithril'/'DAdamant'/'DRune'/'DDragon')
// Bolts: ('BBronze'/'BIron'/'BSilver'/'BSteel'/'BMithril'/'BAdamant'/'BRune'/'BBroad')
//----------------------------------------------------------------------------------------------------
Strings[2] := 'Long'; // Cutting/Stringing: ('Long'/'Short'/'Stock'/'Shaft') (Stringing only supports longbows.)
// Arrows, Darts, Bolts: Leave as ''
//----------------------------------------------------------------------------------------------------
Strings[3] := 'lb'; // Bank location.
// veb - Varrock East Bank
// vwb - Varrock West Bank
// fwb - Falador West Bank
// feb - Falador East Bank
// lb - Lumbridge Bank
// db - Draynor Bank
// akb - Al-Kharid Bank
// seb - Seers Bank
// ctb - Catherby Bank
// eb - Edgeville Bank
// fgb - Fishing Guild Bank
// mc - Moonclan Bank
// yb - Yanille Bank
// da - Duel Arena Bank
// asb - Ardougne South Bank
// pc - Pest Control Bank
end;}
for x := 0 to (HowManyPlayers - 1) do
begin
Players[x].Integers[90] := 0; // Local loads done per player.
Players[x].Integers[91] := 0; // Global loads done per player.
Players[x].Integers[92] := 0; // Time ran per player.
Players[x].Integers[93] := 0; // Sleep time per player.
// 80: FeathersSlot // 94: Headless Arrow XP
// 81: ShaftSlot // 95: Unstrung Bow ID #
// 82: HeadlessSlot // 96: Finished Bow ID #
// 83: TipsSlot // 97: XP per log
// 98: Wood/Tip ID #
end;
if(HowManyPlayers = 1)then Players[CurrentPlayer].Integers[0] := Players[CurrentPlayer].Integers[1];
end;
var
StartTime, EndTime, Wrong: Integer;
BreakStartTime, SBreakEvery, SBreakFor: Integer;
const
//////////////////
// ID's //
/////////////////////////
Knife = 946; //
BowString = 1777; //
Feathers = 314; //
Shafts = 52; //
Headless = 53; //////////////////////////////////////////////
ABronze = 39; AIron = 40; ASteel = 41; AMithril = 42; //
ABroad = 13278; AAdamant = 43; ARune = 44; ADragon = 11237; //
DBronze = 819; DIron = 820; DSteel = 821; DMithril = 822; //
DAdamant = 823; DRune = 824; DDragon = 11232; //
BBronze = 9375; BIron = 9377; BSilver = 9382; BSteel = 9378; //
BMithril = 9379; BBroad = 13279; BAdamant = 9380; BRune = 9381; //
/////////////////////////////////////////////////////////////////////
// Colors //
/////////////////////////
WhBorder = 16777215; //
OrText = 2070783; //
/////////////////////////
////////////////////////////////////////////////////////////////////////////////
procedure RWait(WaitTime: Integer); //
begin //
Wait(WaitTime + Random(WaitTime / 5)); //
end; //
////////////////////////////////////////////////////////////////////////////////
procedure MC(x, y, rx, ry: Integer; Left: Boolean); //
begin //
Mouse(x + RandomRange(-rx,rx), y + RandomRange(-ry,ry), 0, 0, Left); //
end; //
////////////////////////////////////////////////////////////////////////////////
procedure Debug(Msg: String); //
begin //
if(DebugMode)then //
Writeln(Msg); //
end; //
////////////////////////////////////////////////////////////////////////////////
procedure Bye(Msg: String); //
begin //
Players[CurrentPlayer].Active := False; //
Players[CurrentPlayer].Strings[99] := Msg; //
Logout; //
end; //
////////////////////////////////////////////////////////////////////////////////
function WhiteBorder(x, y: Integer): Boolean;
var
i, n, m: Integer;
begin
Debug('Selecting White Border');
Result := False; i := 0;
repeat
if(FindColorSpiralTolerance(n, m, WhBorder, x - 8, y - 8, x + 8, y + 8, 1))then
Result := True
else begin
MC(x, y, 6, 6, True);
Wait(200 + Random(100));
end;
Inc(i);
until((i > 2) or (Result = True))
end;
function OrangeText: Boolean;
var
i, x, y: Integer;
begin
Debug('Selecting Orange Text');
Result := False;
repeat
Wait(50);
if(FindColorSpiralTolerance(x, y, OrText, MCX1, MCY1, MCX2, MCY2, 2))then
Result := True;
Inc(i);
until((i > 100) or (Result = True))
end;
procedure TakeBreak;
var
i, StartBreak: Integer;
begin
Logout;
StartBreak := GetSystemTime;
Debug('Taking a break for ' + IntToStr(SBreakFor div 1000 div 60) + ' minutes.');
repeat
Wait(1000);
Inc(i);
if((i > 120) and ((SBreakFor - (GetSystemTime - StartBreak)) > 5000))then
begin
i := 0;
Debug('Waking up in ' + IntToStr((SBreakFor - (GetSystemTime - StartBreak)) div 1000 div 60) + ' minutes.');
end;
until(SBreakFor < (GetSystemTime - StartBreak))
Debug('Waking up');
LogInPlayer;
IncEx(Players[CurrentPlayer].Integers[93], SBreakFor);
BreakStartTime := GetSystemTime;
SBreakEvery := (BreakEvery + RandomRange(-BreakEveryRand, BreakEveryRand)) * 60 * 1000;
SBreakFor := (BreakFor + RandomRange(-BreakForRand, BreakForRand)) * 60 * 1000;
Wait(6000 + Random(6000));
end;
procedure AntiBan;
begin
case Random(500) of
0..4: Gametab(RandomRange(tab_Combat, tab_Notes));
5..14: RandomRClick;
15..47: SleepAndMoveMouse(1000+ Random(1200));
48..50: BoredHuman;
51..60: HoverSkill('fletching', False);
61..100: IdleTime(2000, 1000, 0.2);
end;
end;
procedure SoftAntiBan;
begin
case Random(500) of
0..10: RandomRClick;
11..50: SleepAndMoveMouse(RandomRange(200, 1200));
51..85: IdleTime(1000, 500, 0.2);
end;
end;
procedure AFKAntiBan;
begin
Wait(30000 + Random(50000));
end;
function GetDTM(Item: string): Integer;
begin
case Lowercase(Item) of
'normal', 'regular': Result := DTMFromString('mlwAAAHicY2dgYDADYnsg1gNiL' +
'SBWB2ILIHYE4hwgLgDiQiDOAuJiIC6Fsr0sFBmSvbQZWrKsgDwmFMwDJGEYH' +
'TDiwVAAAPZKB1Q=');
'oak': Result := DTMFromString('mlwAAAHicY2dgYEgC4mwgDgPiGCAOBuJ0qBg' +
'I5wNxIRBXAHEuEJcAcRYQV0abMrSlWjNMKQfpYELBPEAShtEBIx4MBQDr7gl6');
'willow': Result := DTMFromString('mrAAAAHic42BgYOgF4qlA3A7EjUBcjyQ2HYh' +
'zgDgPiIuAOBuIi4G4DIhLgDgTiI11+RmcrUUYIoKsgTwmDMwDJGEYG2AkgGE' +
'AABoVCgQ=');
'maple': Result := DTMFromString('mrAAAAHic42BgYNgBxIeAeBMQrwPitUC8GYj' +
'3AvERIM4B4gIgLgTibCAuBeIKKJ0FxM46nAxxdrwM5SEqQB4TBuYBkjCMDTA' +
'SwDAAAP21C44=');
'yew': Result := DTMFromString('mrAAAAHic42BgYHgKxO+B+B4Q3wLia0B8F4i' +
'fA/FHIM4B4gIgLgTiLCi7DIpBfDN1dgYfc26GwmgjII8JA/MASRjGBhgJYBg' +
'AAL7lDMM=');
'magic': Result := DTMFromString('mlwAAAHicY2dgYBBiZGBgB2J5IBYGYlkg5gF' +
'iFiDOBcqXAHEOEJcBcSkQV0L5EYGGDIdOn2AI9tVnyEywBoowwTEPkETGyIA' +
'RD4YCAElYCOM=');
'bow string': Result := DTMFromString('mlwAAAHicY2dgYLBjhGAvIDYEYjcgdgViU' +
'yDOBcqXA3EREGcCcQUDRAyEs1OC4DgqyAYowgTHPEASGSMDRjwYCgCv8Qlf');
'umaple': Result := DTMFromString('mggAAAHicY2NgYDjKyMBwHogPAvFJID4Lx' +
'GeA+AFQ7h0Q3wXiR0D8AojfAHF6TCRDeXY6Q4S/D0NDcT5QhAmMeYAkMoY' +
'BRhwYAgBw5A8Z');
'uyew': Result := DTMFromString('mlwAAAHicY2dgYLAEYjsgdgBiZyA2BWJHI' +
'LYFYh5GBgYBIBYDYikg5gRiYSDmBeL0SD6GibUiDHW5QmDMwMAExzwgvUg' +
'YGTDiwVAAAHFnBlg=');
'umagic': Result := DTMFromString('mggAAAHicY2NgYEgD4iQgzoLiXCDOA2IeR' +
'gYGDiDmA2JhIBYHYikgVspPY5Dw92BQzE5iEDAzZJAK82eQDPRi4AHpwYI' +
'ZcWAIAACCoge2');
else
begin
Bye('Wrong DTM selected.');
Exit;
end;
end;
end;
procedure BankDTM(Item: String; Num: Integer);
var
i, x, y, DTM_OBJ, Start, StartInv: Integer;
begin
if(not(LoggedIn))then Exit;
DTM_OBJ := GetDTM(Item);
repeat
RWait(75);
if(i = 85)then
MMouse(300, 50, 100, 45);
if((i > 90) and (i < 94))then
begin
FreeDTM(DTM_OBJ);
DTM_OBJ := GetDTM(Item);
CloseBank;
R_OpenBankBooth(Players[CurrentPlayer].Strings[3]);
Wait(350 + Random(500));
end;
if(i > 100)then
begin
CloseBank;
Logout;
FreeDTM(DTM_OBJ);
Bye('Couldnt find ' + Item + ' Logs.');
Exit;
end;
Inc(i);
until(FindDTM(DTM_OBJ, x, y, MSX1, 80, MSX2, MSY2))
FreeDTM(DTM_OBJ);
i := 0;
Wait(50 + Random(150));
MC(x, y, 5, 5, False);
Wait(250 + Random(300));
StartInv := InvCount;
if(Num = 28)then
begin
ChooseOption('ithdraw-All but');
RWait(300);
Exit;
end else
begin
if(OptionsExist(['draw-' + IntToStr(num)], False))then
begin
ChooseOption('draw-' + IntToStr(num));
Wait(150 + Random(450));
end else
begin
ChooseOption('draw-X');
DTM_OBJ := DTMFromString('mwQAAAHic42QAAkYGhhtA6g4QawLZekAsAsRvgPxbQKwA' +
'ZE8C4ilA3APEU4G4HyoGwhOAeCIjA9UAIxEYDgCBqglB');
Start := GetSystemTime;
repeat
RWait(100);
if((GetSystemTime - Start) > 7500)then
begin
FreeDTM(DTM_OBJ);
Exit;
end;
until((FindDTM(DTM_OBJ, x, y, 200, 380, 320, 420)))
FreeDTM(DTM_OBJ);
Wait(150 + Random(450));
TypeSend(IntToStr(Num));
end;
end;
repeat
RWait(50);
if(i > 150)then
Break;
Inc(i);
until(InvCount > StartInv)
i := 0;
Wait(100 + Random(250));
end;
{procedure Stats;
begin
Debug('Sending Updated Stats');
if(not(SRLStats_UserID = ''))then
begin
Stats_SendReport;
Stats_ManageAccounts;
end;
end;}
{procedure SetupStats;
begin
Stats_UserID := SRLStats_UserID;
Stats_Password := SRLStats_Password;
Stats_ScriptID := '91';
Debug('Setup Stats With Website');
end;}
procedure CutLogs;
var
i, r, Inv, LogCount, Num, Start: Integer;
begin
if(not(LoggedIn))then Exit;
if(R_BankScreen = False)then
begin
Inv := R_CountItemID(Players[CurrentPlayer].Integers[98]);
if(Inv < 27)then
begin
Inc(Wrong);
Exit;
end;
if(not(WhiteBorder(580, 230)))then
Inc(Wrong)
else begin
Debug('Clicking Knife onto Wood');
Wait(300 + Random(300));
case Random(6) of
0..3: MC(625, 225, 7, 7, True);
4: MC(580, 265, 7, 7, True);
5: MC(625, 265, 7, 7, True);
end;
Wait(300 + Random(300));
if(not(OrangeText))then
Inc(Wrong)
else begin
Debug('Clicking Orange Text');
Wait(200 + Random(300));
case LowerCase(Players[CurrentPlayer].Strings[1]) of
'normal', 'regular': begin
case LowerCase(Players[CurrentPlayer].Strings[2]) of
'shaft': MC(110, 425, 25, 15, True);
'short': MC(210, 425, 25, 15, True);
'long': MC(310, 425, 25, 15, True);
'stock': MC(410, 425, 25, 15, True);
end;
end;
'oak', 'willow', 'maple', 'yew': begin
case LowerCase(Players[CurrentPlayer].Strings[2]) of
'short': MC(160, 425, 25, 15, True);
'long': MC(260, 425, 25, 15, True);
'stock': MC(360, 425, 25, 15, True);
end;
end;
'magic': begin
case LowerCase(Players[CurrentPlayer].Strings[2]) of
'short': MC(210, 425, 25, 15, True);
'long': MC(310, 425, 25, 15, True);
end;
end;
end;
repeat
Wait(100);
Inc(i);
if(i > 75)then
Inc(Wrong);
until((R_CountItemID(Players[CurrentPlayer].Integers[98]) < Inv) or (i > 75))
i := 0;
if(R_CountItemID(Players[CurrentPlayer].Integers[98]) < Inv)then
begin
Wrong := 0;
Start := GetSystemTime;
repeat
if(r = 0)then
LogCount := R_CountItemID(Players[CurrentPlayer].Integers[98]);
RWait(100);
if(LevelUp)then Exit;
if(i > 1000)then
Inc(Wrong);
if(R_CountItemID(Players[CurrentPlayer].Integers[98]) > 8)then
AntiBan
else
SoftAntiBan;
if(R_FindRandoms)then
begin
RWait(2500 + Random(5300));
Exit;
end;
Inc(i); Inc(r);
if(R_CountItemID(Players[CurrentPlayer].Integers[98]) < LogCount)then
begin
//Debug('Less Logs Detected. Resetting R.');
r := 0;
end else
begin
//Debug('R: ' + IntToStr(r));
if(r > 20)then
begin
Inc(Wrong);
Exit;
end;
end;
until((R_CountItemID(Players[CurrentPlayer].Integers[98]) = 0) or ((GetSystemTime - Start) > 120000))
Num := (27 - R_CountItemID(Players[CurrentPlayer].Integers[98]));
IncEx(Players[CurrentPlayer].Integers[90], Num);
IncEx(Players[CurrentPlayer].Integers[91], Num);
//IncEx(Stats_CustomVars[1], Num);
//IncEx(Stats_CustomVars[2], Num * Players[CurrentPlayer].Integers[97]);
//Stats;
Debug(IntToStr(i));
end;
end;
end;
end else
CloseBank;
end;
procedure StringThem;
var
i, r, x, y, Inv, Num, StringCount, Start: Integer;
begin
if(not(LoggedIn))then Exit;
if((R_BankScreen = False) and (R_CountItemID(BowString) = 14) and (R_CountItemID(Players[CurrentPlayer].Integers[95]) = 14))then
begin
Inv := InvCount;
case Random(100) of
0..55: begin
x := 585; y := 340;
end;
56..80: begin
x := 625; y := 340;
end;
81..92: begin
x := 665; y := 300;
end;
93..99: begin
x := 705; y := 300;
end;
end;
if(not(WhiteBorder(x, y)))then
Inc(Wrong)
else begin
Debug('Clicking String onto Unstrung');
Wait(300 + Random(300));
if(x < 600)then
MC(585, 375, 7, 7, True)
else if(x < 640)then
MC(625, 375, 7, 7, True)
else if(x < 680)then
MC(665, 335, 7, 7, True)
else if(x < 720)then
MC(705, 335, 7, 7, True);
Wait(300 + Random(300));
if(not(OrangeText))then
Inc(Wrong)
else begin
Debug('Clicking Orange Text');
Wait(200 + Random(300));
MC(260, 425, 25, 15, True);
repeat
Wait(100);
Inc(i);
if(i > 75)then
begin
Inc(Wrong);
Exit;
end;
until(InvCount < Inv)
i := 0; Wrong := 0;
Start := GetSystemTime;
repeat
if(r = 0)then
StringCount := R_CountItemID(BowString);
RWait(100);
if(LevelUp)then Exit;
if(i > 1000)then
Inc(Wrong);
if(R_CountItemID(Players[CurrentPlayer].Integers[96]) < 8)then
AntiBan
else
SoftAntiBan;
if(R_FindRandoms)then
begin
RWait(2500 + Random(5300));
Exit;
end;
Inc(i); Inc(r);
if(R_CountItemID(BowString) < StringCount)then
begin
Debug('Less Strings Detected. Resetting R.');
r := 0;
end else
begin
Debug('R: ' + IntToStr(r));
if(r > 20)then
begin
Inc(Wrong);
Exit;
end;
end;
until((R_CountItemID(BowString) = 0) or ((GetSystemTime - Start) > 45000))
Num := (14 - R_CountItemID(BowString));
IncEx(Players[CurrentPlayer].Integers[90], Num);
IncEx(Players[CurrentPlayer].Integers[91], Num);
//IncEx(Stats_CustomVars[1], Num);
//IncEx(Stats_CustomVars[2], Num * Players[CurrentPlayer].Integers[97]);
//Stats;
end;
end;
end else
Inc(Wrong);
end;
procedure HeadlessLoop;
var
i, r, Num, Start, StartAmount, StartAmount2: Integer;
Inv: array[1..28] of TInvItem;
begin
if(Players[CurrentPlayer].Booleans[0] = False)then
begin
for i := 1 to 28 do
begin
Inv[i] := GetInvItemAt(i);
case Inv[i].ID of
Feathers: Players[CurrentPlayer].Integers[80] := Inv[i].Slot;
Shafts: Players[CurrentPlayer].Integers[81] := Inv[i].Slot;
Headless: Players[CurrentPlayer].Integers[82] := Inv[i].Slot;
Players[CurrentPlayer].Integers[98]: Players[CurrentPlayer].Integers[83] := Inv[i].Slot;
end;
end;
Players[CurrentPlayer].Booleans[0] := True;
end;
if(Random(2) = 0)then
begin
R_ClickItemID(Feathers, True, '');
RWait(150 + Random(350));
R_ClickItemID(Shafts, True, '');
end else
begin
R_ClickItemID(Shafts, True, '');
RWait(150 + Random(350));
R_ClickItemID(Feathers, True, '');
end;
Start := GetSystemTime;
repeat
RWait(100);
if((GetSystemTime - Start) > 5000)then
begin
Inc(Wrong);
Exit;
end;
until(OrangeText)
Wait(150 + Random(350));
MC(260, 425, 25, 10, True);
StartAmount := GetItemStackSizeAt(Players[CurrentPlayer].Integers[80]);
Start := GetSystemTime;
repeat
RWait(100);
if((GetSystemTime - Start) > 5000)then
begin
Inc(Wrong);
Exit;
end;
until(GetItemStackSizeAt(Players[CurrentPlayer].Integers[80]) < StartAmount)
Wrong := 0;
repeat
if(r = 0)then
StartAmount2 := GetItemStackSizeAt(Players[CurrentPlayer].Integers[80]);
RWait(25);
if(LevelUp)then
begin
Wait(500 + Random(2000));
Exit;
end;
if(R_FindRandoms)then
begin
RWait(2500 + Random(5300));
Exit;
end;
SoftAntiBan;
Inc(r);
if(GetItemStackSizeAt(Players[CurrentPlayer].Integers[80]) < StartAmount2)then
begin
Debug('Less Feathers Detected. Resetting R.');
r := 0;
end else
Debug('R: ' + IntToStr(r));
until((r >= 15) or ((GetSystemTime - Start) > 25000))
Wait(100 + Random(250));
Num := (StartAmount - GetItemStackSizeAt(Players[CurrentPlayer].Integers[80]));
IncEx(Players[CurrentPlayer].Integers[94], Num);
//IncEx(Stats_CustomVars[2], Num * Players[CurrentPlayer].Integers[97]);
//Stats;
if(Random(19) = 0)then BoredHuman;
end;
procedure ArrowLoop;
var
i, r, Num, Start, StartAmount, StartAmount2: Integer;
Inv: array[1..28] of TInvItem;
begin
if(Players[CurrentPlayer].Booleans[1])then
begin
Players[CurrentPlayer].Booleans[0] := False;
Players[CurrentPlayer].Booleans[1] := False;
end;
if(Players[CurrentPlayer].Booleans[0] = False)then
begin
for i := 1 to 28 do
begin
Inv[i] := GetInvItemAt(i);
case Inv[i].ID of
Feathers: Players[CurrentPlayer].Integers[80] := Inv[i].Slot;
Shafts: Players[CurrentPlayer].Integers[81] := Inv[i].Slot;
Headless: Players[CurrentPlayer].Integers[82] := Inv[i].Slot;
Players[CurrentPlayer].Integers[98]: Players[CurrentPlayer].Integers[83] := Inv[i].Slot;
end;
end;
Players[CurrentPlayer].Booleans[0] := True;
end;
if(Random(2) = 0)then
begin
R_ClickItemID(Headless, True, '');
RWait(150 + Random(350));
R_ClickItemID(Players[CurrentPlayer].Integers[98], True, '');
end else
begin
R_ClickItemID(Players[CurrentPlayer].Integers[98], True, '');
RWait(150 + Random(350));
R_ClickItemID(Headless, True, '');
end;
Start := GetSystemTime;
repeat
RWait(100);
if((GetSystemTime - Start) > 5000)then
begin
Inc(Wrong);
Exit;
end;
until(OrangeText)
Wait(150 + Random(350));
MC(260, 425, 25, 10, True);
StartAmount := GetItemStackSizeAt(Players[CurrentPlayer].Integers[83]);
Start := GetSystemTime;
repeat
RWait(100);
if((GetSystemTime - Start) > 5000)then
begin
Inc(Wrong);
Exit;
end;
until(GetItemStackSizeAt(Players[CurrentPlayer].Integers[83]) < StartAmount)
Wrong := 0;
repeat
if(r = 0)then
StartAmount2 := GetItemStackSizeAt(Players[CurrentPlayer].Integers[83]);
RWait(25);
if(LevelUp)then
begin
Wait(500 + Random(2000));
Exit;
end;
if(R_FindRandoms)then
begin
RWait(2500 + Random(5300));
Exit;
end;
SoftAntiBan;
Inc(r);
if(GetItemStackSizeAt(Players[CurrentPlayer].Integers[83]) < StartAmount2)then
begin
Debug('Less Tips Detected. Resetting R.');
r := 0;
end else
Debug('R: ' + IntToStr(r));
until((r >= 15) or ((GetSystemTime - Start) > 25000))
Wait(100 + Random(250));
Num := (StartAmount - GetItemStackSizeAt(Players[CurrentPlayer].Integers[83]));
IncEx(Players[CurrentPlayer].Integers[90], Num);
IncEx(Players[CurrentPlayer].Integers[91], Num);
//IncEx(Stats_CustomVars[1], Num);
//IncEx(Stats_CustomVars[2], Num * Players[CurrentPlayer].Integers[97]);
//Stats;
if(Random(25) = 0)then BoredHuman;
end;
procedure DartLoop;
begin
end;
procedure BoltLoop;
begin
end;
procedure MainLoop;
var
Start: Integer;
begin
if(not(LoggedIn))then Exit;
RWait(150 + Random(150));
case (LowerCase(Players[CurrentPlayer].Strings[0])) of
'cut': begin
R_FindRandoms;
if(not(R_CountItemID(Knife) = 1))then
begin
Bye('No Knife in Inventory');
Exit;
end;
if(not(R_CountItemId(Players[CurrentPlayer].Integers[98]) = 27))then
begin
R_OpenBankBooth(Players[CurrentPlayer].Strings[3]);
//OpenBank(Players[CurrentPlayer].Strings[3], True, True);
Start := GetSystemTime;
repeat
RWait(100);
until((R_BankScreen) or ((GetSystemTime - Start) > 5000))
Wait(200 + random(300));
R_DepositAllButID(Knife);
Wait(200 + Random(300));
BankDTM(Players[CurrentPlayer].Strings[1], 28);
end;
Wait(350 + Random(500));
CloseBank;
if((R_CountItemID(Players[CurrentPlayer].Integers[98]) > 0) and (R_CountItemID(Players[CurrentPlayer].Integers[98]) < 27) and (not(InvCount = 28)))then
begin
Bye('Insufficient Logs Detected');
Exit;
end;
Start := GetSystemTime;
repeat
RWait(100);
until((not(R_BankScreen)) or ((GetSystemTime - Start) > 5000))
if(R_BankScreen)then CloseBank;
Wait(500 + Random(1000));
CutLogs;
R_FindRandoms;
end;
'string': begin
R_FindRandoms;
if(((R_CountItemID(BowString) > 0) and (R_CountItemID(BowString) < 14) and (not(InvCount = 28))) or
((R_CountItemID(Players[CurrentPlayer].Integers[95]) > 0) and (R_CountItemID(Players[CurrentPlayer].Integers[95]) < 14) and (not(InvCount = 28))))then
begin
Bye('Insufficient Strings/Unstrung Detected');
Exit;
end;
if(not((R_CountItemID(BowString) = 14) and (R_CountItemID(Players[CurrentPlayer].Integers[95]) = 14)))then
begin
R_OpenBankBooth(Players[CurrentPlayer].Strings[3]);
//OpenBank(Players[CurrentPlayer].Strings[3], True, True);
Start := GetSystemTime;
repeat
RWait(100);
until((R_BankScreen) or ((GetSystemTime - Start) > 5000))
Wait(200 + random(300));
R_DepositAll(True);
Wait(200 + Random(300));
BankDTM('Bow String', 14);
BankDTM('u' + Players[CurrentPlayer].Strings[1], 14);
end;
Wait(350 + Random(500));
CloseBank;
Start := GetSystemTime;
repeat
RWait(100);
until((not(R_BankScreen)) or ((GetSystemTime - Start) > 5000))
if(R_BankScreen)then CloseBank;
Wait(500 + Random(1000));
StringThem;
R_FindRandoms;
end;
'arrows', 'arrow':
begin
R_FindRandoms;
if(InvCount > 4)then
begin
Debug('To many item in inventory. Get it together.');
Exit;
end else
if((R_CountItemID(Feathers) > 0) and (R_CountItemID(Shafts) > 0))then
begin
HeadlessLoop;
Players[CurrentPlayer].Booleans[1] := True;
end
else if((R_CountItemID(Headless) > 0) and (R_CountItemID(Players[CurrentPlayer].Integers[98]) > 0))then
ArrowLoop
else
begin
Debug('Out of materials');
Exit;
end;
end;
'darts', 'dart':
begin
R_FindRandoms;
DartLoop;
end;
'bolts', 'bolt':
begin
R_FindRandoms;
BoltLoop;
end;
else
begin
Bye('Wrong selection type entered.');
Exit;
end;
end;
R_FindRandoms;
end;
procedure Report;
var
a, i, SleepPer: Integer;
PlayerRunTime: Extended;
begin
if(DebugMode = False)then
ClearDebug;
EndTime := GetSystemTime;
IncEx(Players[CurrentPlayer].Integers[92], EndTime - StartTime);
Writeln('---------------------------------------------');
Writeln('------- Smurgs AIO Fletcher V2.01 -----------');
Writeln('---------------------------------------------');
Writeln('You are running: ' + IntToStr(HowManyPlayers) + ' character(s).');
Writeln('---------------------------------------------');
for a := 0 to (HowManyPlayers - 1) do
begin
PlayerRunTime := Players[a].Integers[92] div 1000.0 div 60.0 div 60.0;
Writeln('Character: ' + Players[a].Nick);
case LowerCase(Players[a].Strings[0]) of
'cut': Writeln('Logs Cut: ' + IntToStr(Players[a].Integers[91]) + ' (' + IntToStr(Round((Players[a].Integers[91]) div PlayerRunTime)) + ' logs/hr)(Cutting ' + Players[a].Strings[1] + ' ' + Players[a].Strings[2] + 's)');
'string': Writeln('Bows Strung: ' + IntToStr(Players[a].Integers[91]) + ' (' + IntToStr(Round((Players[a].Integers[91]) div PlayerRunTime)) + ' bows/hr)(Stringing ' + Players[a].Strings[1] + ' Bows)');
'arrows', 'arrow': Writeln('Arrows Fletched: ' + IntToStr(Players[a].Integers[91]) + ' (' + IntToStr(Round((Players[a].Integers[91] * 15) div PlayerRunTime)) + ' arrows/hr)(Making ' + Players[a].Strings[1] + ' Arrows)');
'darts', 'dart': Writeln('Darts Fletched: ' + IntToStr(Players[a].Integers[91]) + ' (' + IntToStr(Round((Players[a].Integers[91] * 10) div PlayerRunTime)) + ' darts/hr)(Making ' + Players[a].Strings[1] + ' Darts)');
'bolts', 'bolt': Writeln('Bolts Fletched: ' + IntToStr(Players[a].Integers[91]) + ' (' + IntToStr(Round((Players[a].Integers[91] * 10) div PlayerRunTime)) + ' bolts/hr)(Making ' + Players[a].Strings[1] + ' Bolts)');
end;
case LowerCase(Players[a].Strings[0]) of
'cut', 'string': Writeln('Experience Gained: ' + IntToStr(Players[a].Integers[91] * Players[a].Integers[97]) + ' (' + IntToStr(Round((Players[a].Integers[91] * Players[a].Integers[97]) div PlayerRunTime)) + ' xp/hr)');
'arrows', 'arrow': Writeln('Experience Gained: ' + IntToStr(((Players[a].Integers[91] * Players[a].Integers[97]) / 15) + Players[CurrentPlayer].Integers[94]) + ' (' + IntToStr(Round((((Players[a].Integers[91] * Players[a].Integers[97]) / 15) + Players[CurrentPlayer].Integers[94]) div PlayerRunTime)) + ' xp/hr)');
'darts', 'dart': Writeln('Experience Gained: ' + IntToStr((Players[a].Integers[91] * Players[a].Integers[97]) / 10) + ' (' + IntToStr(Round(((Players[a].Integers[91] * Players[a].Integers[97]) / 10) div PlayerRunTime)) + ' xp/hr)');
'bolts', 'bolt': Writeln('Experience Gained: ' + IntToStr((Players[a].Integers[91] * Players[a].Integers[97]) / 10) + ' (' + IntToStr(Round(((Players[a].Integers[91] * Players[a].Integers[97]) / 10) div PlayerRunTime)) + ' xp/hr)');
end;
Writeln('This character has been running for: ' + MsToTime(Players[a].Integers[92], 0));
if(HowManyPlayers = 1)then
Writeln('This character has slept for: ' + MsToTime(Players[a].Integers[93], 0))
else
begin
SleepPer := 0;
for i := 0 to (HowManyPlayers - 1)do
begin
if(not(a = i))then
IncEx(SleepPer, Players[i].Integers[92]);
end;
Writeln('This character has slept for: ' + MsToTime(SleepPer, 0));
end;
if(Players[a].Active)then
Writeln('Active Status: Active')
else
begin
Writeln('Active Status: Not Active (Reason: ' + Players[a].Strings[99] + ')');
end;
Writeln('---------------------------------------------');
end;
Writeln('Total Script RunTime: ' + TimeRunning);
Writeln('---------------------------------------------');
end;
procedure FinalReport;
var
a, i, SleepPer: Integer;
PlayerRunTime: Extended;
begin
Writeln('---------------------------------------------');
Writeln('------- Smurgs AIO Fletcher V2.01 -----------');
Writeln('---------------------------------------------');
Writeln('You are running: ' + IntToStr(HowManyPlayers) + ' character(s).');
Writeln('---------------------------------------------');
for a := 0 to (HowManyPlayers - 1) do
begin
PlayerRunTime := Players[a].Integers[92] div 1000.0 div 60.0 div 60.0;
Writeln('Character: ' + Players[a].Nick);
case LowerCase(Players[a].Strings[0]) of
'cut': Writeln('Logs Cut: ' + IntToStr(Players[a].Integers[91]) + ' (' + IntToStr(Round((Players[a].Integers[91]) div PlayerRunTime)) + ' logs/hr)(Cutting ' + Players[a].Strings[1] + ' ' + Players[a].Strings[2] + 's)');
'string': Writeln('Bows Strung: ' + IntToStr(Players[a].Integers[91]) + ' (' + IntToStr(Round((Players[a].Integers[91]) div PlayerRunTime)) + ' bows/hr)(Stringing ' + Players[a].Strings[1] + ' Bows)');
'arrows', 'arrow': Writeln('Arrows Fletched: ' + IntToStr(Players[a].Integers[91]) + ' (' + IntToStr(Round((Players[a].Integers[91] * 15) div PlayerRunTime)) + ' arrows/hr)(Making ' + Players[a].Strings[1] + ' Arrows)');
'darts', 'dart': Writeln('Darts Fletched: ' + IntToStr(Players[a].Integers[91]) + ' (' + IntToStr(Round((Players[a].Integers[91] * 10) div PlayerRunTime)) + ' darts/hr)(Making ' + Players[a].Strings[1] + ' Darts)');
end;
case LowerCase(Players[a].Strings[0]) of
'cut', 'string': Writeln('Experience Gained: ' + IntToStr(Players[a].Integers[91] * Players[a].Integers[97]) + ' (' + IntToStr(Round((Players[a].Integers[91] * Players[a].Integers[97]) div PlayerRunTime)) + ' xp/hr)');
'arrows', 'arrow': Writeln('Experience Gained: ' + IntToStr(((Players[a].Integers[91] * Players[a].Integers[97]) / 15) + Players[CurrentPlayer].Integers[94]) + ' (' + IntToStr(Round((((Players[a].Integers[91] * Players[a].Integers[97]) / 15) + Players[CurrentPlayer].Integers[94]) div PlayerRunTime)) + ' xp/hr)');
'darts', 'dart': Writeln('Experience Gained: ' + IntToStr((Players[a].Integers[91] * Players[a].Integers[97]) / 10) + ' (' + IntToStr(Round(((Players[a].Integers[91] * Players[a].Integers[97]) / 10) div PlayerRunTime)) + ' xp/hr)');
end;
Writeln('This character has been running for: ' + MsToTime(Players[a].Integers[92], 0));
if(HowManyPlayers = 1)then
Writeln('This character has slept for: ' + MsToTime(Players[a].Integers[93], 0))
else
begin
SleepPer := 0;
for i := 0 to (HowManyPlayers - 1)do
begin
if(not(a = i))then
IncEx(SleepPer, Players[i].Integers[92]);
end;
Writeln('This character has slept for: ' + MsToTime(SleepPer, 0));
end;
if(Players[a].Active)then
Writeln('Active Status: Active')
else
begin
Writeln('Active Status: Not Active (Reason: ' + Players[a].Strings[99] + ')');
end;
Writeln('---------------------------------------------');
end;
Writeln('Total Script RunTime: ' + TimeRunning);
Writeln('---------------------------------------------');
end;
procedure SetVars;
var
i: Integer;
begin
SBreakEvery := (BreakEvery + RandomRange(-BreakEveryRand, BreakEveryRand)) * 60 * 1000;
SBreakFor := (BreakFor + RandomRange(-BreakForRand, BreakForRand)) * 60 * 1000;
BreakStartTime := GetSystemTime;
for i := 0 to (HowManyPlayers - 1)do
begin
case LowerCase(Players[i].Strings[1]) of
'regular', 'normal':
begin
if(LowerCase(Players[i].Strings[0]) = 'string')then
begin
Bye('The script doesnt support stringing normal bows.');
TerminateScript;
end;
Players[i].Integers[98] := 1511;
case LowerCase(Players[i].Strings[2]) of
'short': Players[i].Integers[97] := 5;
'long': Players[i].Integers[97] := 10;
'stock': Players[i].Integers[97] := 6;
'shaft': Players[i].Integers[97] := 5;
else
begin
Bye('Wrong value entered for fletch type');
TerminateScript;
end;
end;
end;
'oak':
begin
if(LowerCase(Players[i].Strings[0]) = 'string')then
begin
Bye('The script doesnt support stringing oak bows.');
TerminateScript;
end;
Players[i].Integers[98] := 1521;
case LowerCase(Players[i].Strings[2]) of
'short': Players[i].Integers[97] := 17;
'long': Players[i].Integers[97] := 25;
'stock': Players[i].Integers[97] := 16;
else
begin
Bye('Wrong value entered for fletch type');
TerminateScript;
end;
end;
end;
'willow':
begin
if(LowerCase(Players[i].Strings[0]) = 'string')then
begin
Bye('The script doesnt support stringing willow bows.');
TerminateScript;
end;
Players[i].Integers[98] := 1519;
case LowerCase(Players[i].Strings[2]) of
'short': Players[i].Integers[97] := 33;
'long': Players[i].Integers[97] := 42;
'stock': Players[i].Integers[97] := 22;
else
begin
Bye('Wrong value entered for fletch type');
TerminateScript;
end;
end;
end;
'maple':
begin
if(LowerCase(Players[i].Strings[0]) = 'string')then
begin
if(not(LowerCase(Players[i].Strings[2]) = 'long'))then
begin
Bye('The script doesnt support stringing anything but longbows.');
TerminateScript;
end;
end;
Players[i].Integers[95] := 62;
Players[i].Integers[96] := 851;
Players[i].Integers[98] := 1517;
case LowerCase(Players[i].Strings[2]) of
'short': Players[i].Integers[97] := 50;
'long': Players[i].Integers[97] := 58;
'stock': Players[i].Integers[97] := 32;
else
begin
Bye('Wrong value entered for fletch type');
TerminateScript;
end;
end;
end;
'yew':
begin
if(LowerCase(Players[i].Strings[0]) = 'string')then
begin
if(not(LowerCase(Players[i].Strings[2]) = 'long'))then
begin
Bye('The script doesnt support stringing anything but longbows.');
TerminateScript;
end;
end;
Players[i].Integers[95] := 66;
Players[i].Integers[96] := 855;
Players[i].Integers[98] := 1515;
case LowerCase(Players[i].Strings[2]) of
'short': Players[i].Integers[97] := 68;
'long': Players[i].Integers[97] := 75;
'stock': Players[i].Integers[97] := 50;
else
begin
Bye('Wrong value entered for fletch type');
TerminateScript;
end;
end;
end;
'magic':
begin
if(LowerCase(Players[i].Strings[0]) = 'string')then
begin
if(not(LowerCase(Players[i].Strings[2]) = 'long'))then
begin
Bye('The script doesnt support stringing anything but longbows.');
TerminateScript;
end;
end;
Players[i].Integers[95] := 70;
Players[i].Integers[96] := 859;
Players[i].Integers[98] := 1513;
case LowerCase(Players[i].Strings[2]) of
'short': Players[i].Integers[97] := 83;
'long': Players[i].Integers[97] := 92;
else
begin
Bye('Wrong value entered for fletch type');
TerminateScript;
end;
end;
end;
'abronze': begin Players[i].Integers[98] := ABronze; Players[i].Integers[97] := 40; end;
'airon': begin Players[i].Integers[98] := AIron; Players[i].Integers[97] := 58; end;
'asteel': begin Players[i].Integers[98] := ASteel; Players[i].Integers[97] := 95; end;
'amithril': begin Players[i].Integers[98] := AMithril; Players[i].Integers[97] := 133; end;
'abroad': begin Players[i].Integers[98] := ABroad; Players[i].Integers[97] := 225; end;
'aadamant': begin Players[i].Integers[98] := AAdamant; Players[i].Integers[97] := 170; end;
'arune': begin Players[i].Integers[98] := ARune; Players[i].Integers[97] := 207; end;
'adragon': begin Players[i].Integers[98] := ADragon; Players[i].Integers[97] := 245; end;
'dbronze': begin Players[i].Integers[98] := DBronze; Players[i].Integers[97] := 18; end;
'diron': begin Players[i].Integers[98] := DIron; Players[i].Integers[97] := 38; end;
'dsteel': begin Players[i].Integers[98] := DSteel; Players[i].Integers[97] := 75; end;
'dmithril': begin Players[i].Integers[98] := DMithril; Players[i].Integers[97] := 112; end;
'dadamant': begin Players[i].Integers[98] := DAdamant; Players[i].Integers[97] := 150; end;
'drune': begin Players[i].Integers[98] := DRune; Players[i].Integers[97] := 188; end;
'ddragon': begin Players[i].Integers[98] := DDragon; Players[i].Integers[97] := 250; end;
'bbronze': begin Players[i].Integers[98] := BBronze; Players[i].Integers[97] := 5; end;
'biron': begin Players[i].Integers[98] := BIron; Players[i].Integers[97] := 15; end;
'bsilver': begin Players[i].Integers[98] := BSilver; Players[i].Integers[97] := 25; end;
'bsteel': begin Players[i].Integers[98] := BSteel; Players[i].Integers[97] := 35; end;
'bmithril': begin Players[i].Integers[98] := BMithril; Players[i].Integers[97] := 50; end;
'badamant': begin Players[i].Integers[98] := BAdamant; Players[i].Integers[97] := 70; end;
'brune': begin Players[i].Integers[98] := BRune; Players[i].Integers[97] := 100; end;
'bbroad': begin Players[i].Integers[98] := BBroad; Players[i].Integers[97] := 30; end;
'headless': begin end;
else
begin
Bye('Wrong value entered for wood type');
TerminateScript;
end;
end;
end;
end;
procedure StartSMART;
begin
Smart_Server := World;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
Debug('SMART Setup');
ClearDebug;
SetupSRL;
SetUpReflectionEx(True);
DeclarePlayers;
if(not LoggedIn)then
begin
LogInPlayer;
Wait(6000 + Random(6000));
end;
Debug('Setup SRL, Declared Players, Logged In');
SetAngle(True);
MakeCompass('N');
Debug('Setup Camera');
AddOnTerminate('FinalReport');
end;
begin
StartSMART;
SetVars;
//if(not(SRLStats_UserID = ''))then SetupStats;
repeat
Players[CurrentPlayer].Integers[90] := 0;
repeat
StartTime := GetSystemTime;
MainLoop;
if(Wrong > 3)then
begin
Bye('Wrong counter exceeded');
Wrong := 0;
Break;
end;
if((Players[CurrentPlayer].Active) and ((GetSystemTime - StartTime) > 5000))then
Report;
if(((SBreakEvery < (GetSystemTime - BreakStartTime))) and (HowManyPlayers = 1))then
TakeBreak;
until(((Players[CurrentPlayer].Integers[90]) >= Players[CurrentPlayer].Integers[0]) or not(LoggedIn))
if(HowManyPlayers > 1)then
begin
if((Players[CurrentPlayer].Integers[91]) >= (Players[CurrentPlayer].Integers[1]))then
NextPlayer(False)
else
NextPlayer(Players[CurrentPlayer].Active);
Wait(6000 + Random(6000));
end else
begin
Players[CurrentPlayer].Active := False;
Logout;
TerminateScript;
end;
until(AllPlayersInactive)
end.
WORKING PERFECTLY NOW!!!
thankyou very much =D
You're welcome although all I did was remove one line :p.
Yep. Before when a script had stats there was different variables set and procedures called in the script..thus, I thought that it wouldn't compile after that line was removed.