SCAR Code:
procedure F_MainLoop;
var
Start, Timer: Integer; ////
begin
F_ScriptSetup;
MarkTime(Timer); ////
repeat
F_PlayerSetup;
MarkTime(Start);
repeat
Col_Trees;
repeat
Cut_ChopTrees;
until(InvFull);
Cut_DropLogs;
Prg_ProgReport;
Writeln('All logs dropped, starting to cut again...');
if (TimeFromMark(Start) > 3600000) then
begin
Start := 0;
if (HowManyPlayers = 1) then
Brk_TakeBreak
else
begin
Players[CurrentPlayer].Integers[13] := Players[CurrentPlayer].Integers[13] + 1;
NextPlayer(Players[CurrentPlayer].Active);
end;
end;
if(TimeFromMark(Timer) > 360000)then ////
begin /////
NextPlayer(False); ////
break; /////
end; ////
until((Players[CurrentPlayer].Integers[10] >= Players[CurrentPlayer].Integers[0]) or not LoggedIn);
if AllPlayersInactive then
begin
Writeln('All players are now inactive, terminating script...');
TerminateScript;
end;
NextPlayer(Players[CurrentPlayer].Active);
until(AllPlayersInactive);
end;
Just add a MarkTime and if it is greater than 1 hour, switch players? Hope I understood the question correctly.