Ok, i read deeper into the script and found out that you're case was wrong, and there wasn't much fail safe, and NO multi-player :/. But i have tried to fix it and here are the results:
For the case, what ever number you put for the random, it has to be one higher then you're last procedure. What i mean is if you're last number is 8, you're random should be 9. Get what i mean?
For the fail safes add something like:
SCAR Code:
if (not(Loggedin)) then NextPlayer(false);
For the Multi-Player, in you're middle loop add this at the end:
SCAR Code:
if (not(Loggedin))then
begin
NextPlayer(True);
HighestAngle;
MakeCompass('N');
Writeln('Switched players successfully :)');
P.S: That multi player was coded by JAD :P
@Hugo: Great to hear! 
-Ashur