Maybe you can make some type of procedure
idk very simple and idk how well it'd work but just to give you some kind of idea or somethin?
SCAR Code:
Function SwitchMyPlayers(Active: Boolean): Boolean;
var
i, p : Integer;
begin
Players[CurrentPlayer].Active := Active; //makes your player active or not
for i := 0 to (HowManyPlayers - 1) do //checks how many players are active
if (Players[i].Active = True) then p := p + 1;
if (p = 0) then //if none are active then exits and function is false
begin
Result := False;
Exit;
end;
NextPlayerOrder(Active); //switches players if there are active players
end;
begin
if not SwitchMyPlayers(False) then //if player switching doesn't work then do whatever
begin
ProgressReport;
TerminateScript;
end;
end.