Log in

View Full Version : Already logged in on rev 10..help?



chitin
01-21-2008, 06:11 PM
well, I'm sure this problem comes from my wifi, which is probably about 35% of the community. Sometimes, from time to time, I lose my wifi connection. It of course, re-signs in...but, by this time the rs window logged out, but it hasn't been 60 seconds. So when a script tries to log back in, it will say "try again in 60 seconds" and never tries again...I was told this is the SRL packet department or something, but i wasn't going to bother you great people, unfortunately, it's been doing that too often now...so would you fix this in rev 11? or maybe at least give me a way to fix it for myself?..i suppose i could try telling it to reattempt connection in 2 mins...but I'm not sure what the script will do..thnx

Markus
01-21-2008, 06:17 PM
It should wait 20-60 seconds then try again.

JuKKa
01-21-2008, 06:33 PM
What is the EXACT message you get from runescape?

chitin
01-21-2008, 08:04 PM
you know..."Account already logged in, please try again in 60 seconds"...everyone knows it?...

it should, but it doesn't.......it just stays there...

Timer
01-21-2008, 08:17 PM
login.scar has a endless loop untill it gets another play that is active...

here, i re-made login.scar for you, so that dont happen...
//-----------------------------------------------------------------//
//-- Scar Standard Resource Library --//
//-- » Login Routines --//
//-----------------------------------------------------------------//
// * function FindRS: Boolean; // * by WT-Ron
// * function FindLoginScreen: Boolean; // * by Krazy_Meerkat & phantombmx
// * function LoggedIn: Boolean; // * by WT-Fakawi
// * function WelcomeToRuneScape: Boolean; // * by WT-Fakawi
// * procedure Logout; // * by Starblaster100
// * procedure LoginPlayer; // * by WT-Fakawi and modified by Ron
// * procedure NextPlayerOrder(Active : Boolean); // * by WT-Fakawi and modified by Ron
// * procedure RandomNextPlayer(Active: Boolean); // * by Dankness based on WT-Fawki's NextPlayer and modified by Ron
// * procedure NextPlayer(Active: Boolean); // * by Dankness and modified by Ron
// * procedure LogOutEvery(hours, forxmins: Integer); // * by Stupid3ooo
// * procedure HighestAngle; // * by Starblaster100

{ var logs, Attempts: Integer;
Description: Variables needed for some login functions. }
var
SRL_Logs, SRL_Attempts, Already_LoggedIn: Integer;
RandomPlayer: Boolean;

procedure NextPlayer(Active: Boolean); forward;

{************************************************* ******************************
function FindRS: Boolean;
By: RsN
Description: Finds RS Window
************************************************** *****************************}

function FindRS: Boolean;
begin
Result := FindWindowBySize(766, 504);
end;

{************************************************* ******************************
procedure Logout;
By: Starblaster100 / Raymond
Description: Logs you out.
************************************************** *****************************}

function Logout: Boolean;
var
c, i: Integer;
begin
Result := (not (LoggedIn));
if Result = True then
Exit;
if GameTab(14) = False then
Exit;
Wait(200 + Random(100));
while (LoggedIn) or (c < 10) do
begin
Inc(c);
if(ClickText('here', UpChars, MIX1, MIY1, MIX2, MIY2, True))then
for i := 0 to 10 do
begin
Wait(1000);
if not(LoggedIn)then
begin
Result := True;
Exit;
end;
end;
end;
end;

{************************************************* ******************************
procedure LoginPlayer;
By: WT-Fakawi / Raymond
Description: Logs in the Player[CurrentPlayer]. Detects most Client Login Errors
************************************************** *****************************}

Function LoginPlayer : boolean;
var
ClickHereToPlay, i,
CHx, CHy, c, LastPlayer,Mark : Integer;
Options : TStringArray;
OneActive : Boolean;
Actions : TVariantArray;
begin
Result := False;
ClickHereToPlay := BitmapFromString(33, 1, 'z78DA758E510E80300843' +
'AF54C0E2F6E94CB8FF9134123392693FFA41FA4A23A6F0888 443D' +
'26DC000A7DCE7F458F23EE444E721444B6A0F53D58FE44F43 65B7' +
'067D37AC3D95AADF2F50962C79');
OneActive := False;
if LoggedIn = False then
begin;
if (not (Players[CurrentPlayer].Active)) then
begin;
WriteLn('Current player is not Active...');
Repeat
For I := 0 to HowManyPlayers - 1 do
if players[I].Active = true then
OneActive := True;
if OneActive = True then
Break;
Wait(60000);
until false
end;
if FindRS then
ActivateClient;
Wait(900 + random(60));
FindTextTpa(clwhite,0,194, 174,564, 367,'Cancel',UpChars,ClickLeft);
Wait(100+random(50));
FindTextTpa(clwhite,0,194, 174,564, 367,'xis',UpChars,ClickLeft);
Wait(100+random(50));
if FindTextTpa(clwhite,0,194, 174,564, 367,'Username',UpChars, Clickleft) then
begin
Wait(150 + Random(75));
WriteLn(Players[CurrentPlayer].Name);
TypeSend(Players[CurrentPlayer].Name);
Wait(100 + Random(100));
if FindTextTpa(clwhite,0,194, 174,564, 367,'Password',UpChars,ClickLeft) then
begin;
TypeSend(Players[CurrentPlayer].Pass);
Wait(100 + Random(100));
end;
end;
FindTextTpa(clwhite,0,194, 174,564, 367,'Login',UpChars,ClickLeft);
Wait(250 + random(100));
Mark := GetSystemTime;
repeat
Wait(Random(250) + 100);
if (GetSystemTime - Mark) > 35000 then Break;
until not FindTextTpa(65535,0,194, 174,564, 367,'...',UpChars,Nothing);
Mark := GetSystemTime;
Repeat
if FindTextTpa(65535,0,194, 174,564, 367,'...',UpChars,Nothing) or //Still waiting to log in
FindTextTpa(65535,0,194, 174,564, 367,'trans',UpChars,Nothing) then //Your account is beeing transfered
begin;
Wait(1000 + random(500));
end else
begin;
if (GetSystemTime - Mark) > 180000 then
begin
if (GetSystemTime - Mark) > 240000 then
begin;
NextPlayer(false);
Exit;
end;
WriteLn('three minutes have passed');
WriteFileString(TheFile, Chr(13) + 'THREE MINUTES HAVE PASSED!!!' +
Chr(13));
ActivateClient;
FindTextTpa(clwhite,0,194, 174,564, 367,'Cancel',UpChars,ClickLeft);
Wait(100+random(50));
FindTextTpa(clwhite,0,194, 174,564, 367,'xis',UpChars,ClickLeft);
end;
Options := ['nter your','already','nvalid','excee','full','offl','rr or','ontact','reject','reload',
'updat','disabled','member','elcom','incorrect'];
OneActive := False;
For I := 0 to High(Options) do
if FindTextTpa(65535,0,194, 174,564, 367,Options[I],UpChars,Nothing) then
begin;
OneActive := True;
Break;
end;
if OneActive then
begin;
FreeBitmap(ClickHereToPlay);
SetLength(Actions,2);
Case Options[I] of
'reload' : begin; //Runescape updated
WriteLn('ERROR. RuneScape has been updated. Script Terminated.');
Terminatescript;
end;
'disabled' : begin; //Your account has been disabled..
WriteLn('Your account has been disabled');
Players[CurrentPlayer].loc := 'DISABLED';
NextPlayer(False);
Exit;
end;
'member' : begin; // You need a Members account...
WriteLn('You need a Members account...');
Players[CurrentPlayer].loc := 'Non-Member';
NextPlayer(False);
exit;
end;
'already' : begin //Account already logged in
Actions := ['Your account is already logged in',0];
Wait(60000 + Random(500));
Already_LoggedIn := Already_LoggedIn + 1;
if Already_LoggedIn > 3 then
begin
Already_LoggedIn := 0;
LastPlayer := CurrentPlayer;
repeat
CurrentPlayer := (CurrentPlayer + 1) mod HowManyPlayers;
Wait(200);
until (Players[CurrentPlayer].Active) and (CurrentPlayer <> LastPlayer);
end;
LoginPlayer;
end;
'nvalid' : begin;// Invalid Username. 3 attempts. If fails, username/pass incorrect
Actions := ['Invalid Username \ Password',0];
Inc(SRL_Attempts);
if SRL_Attempts > 3 then
begin;
Players[CurrentPlayer].Loc := 'Login ERROR';
SRL_Attempts := 0;
Nextplayer(False);
Exit;
end;
end;
'excee' : Actions := ['Login attempts exceeded. Please wait 1 minute and try again.',60000];
'offl' : Actions := ['Unable to connect Login Server offline.',(20000) + Random(6000)]; // Unable to connect. Login Server offline.
'nter your': Actions := ['Enter your username and password',0];//Login failed
'full' : Actions := ['World is full.',5000]; //World is full =]
'rror' : Actions := ['Error Connecting.',10000]; //Error, connection timed out?
'ontact' : Actions := ['Error loading your profile.',2000]; // Error loading your profile. Will attempt to re-login 5 more times.)
'reject' : Actions := ['Login server rejected session.',1000]; // Login server rejected session.
'updat' : Actions := ['The Server is being updated.',60000]; // The Server is being updated. Please wait 1 minute.
'elcom' : Actions := ['Welcome.',0];
'incorrect': Actions := ['To many incorrect logins.',60000 * 5]; //Wrong logins baby.
end;
Writeln(Actions[0]);
Wait(Actions[1] + Random(100));
LoginPlayer;
Exit;
end;
end;
until (FindBitmapToleranceIn(ClickHereToPlay, CHx, CHy, 250, 270, 530, 390,
5)) or FindColor(CHx, CHy, 723587, 522, 5, 560, 39);
Wait(1000 + Random(500));
if (FindBitmapToleranceIn(ClickHereToPlay, CHx, CHy, 250, 270, 530, 390, 5)) then
Mouse(CHx, CHy, 50, 20, True) // Clicks randomly on the button
else
Writeln('Found Compass');
repeat
Wait(1000);
c := c + 1;
until ((LoggedIn = True) or (c >= 600));
end;
FreeBitmap(ClickHereToPlay);
if LoggedIn then
begin
PlayerStartTime := (GetSystemTime div 1000); // PlayerStartTime
if Length(Players[CurrentPlayer].NickTPA) < 2 then
begin;
Writeln('Creating the NickTPA.');
if Players[CurrentPlayer].Nick <> '' then
Players[CurrentPlayer].NickTPA := CreateTPAFromText(Players[CurrentPlayer].Nick, UpChars)
else
begin;
Writeln('Nickname isnt set, taking the username instead..');
Players[CurrentPlayer].NickTPA := CreateTPAFromText(Players[CurrentPlayer].Name, UpChars);
end;
end;
WriteFileString(TheFile, Chr(13) + 'Current player: '+ UpperCase(Players[CurrentPlayer].Name) + Chr(13)); //* Save NAME to file
end;
end;

{************************************************* ******************************
procedure RandomNextPlayer(Active: Boolean);
By: Dankness based on WT-Fawki's NextPlayer and modified by Ron and by Raymond
Description: Picks Random Player that is Active and Logs in
************************************************** *****************************}

procedure RandomNextPlayer(Active: Boolean);
var
LastPlayer: Integer;
begin
WriteLn('NextPlayer');
LastPlayer := CurrentPlayer;
Players[CurrentPlayer].Active := Active;
Logout;
PlayerCurTime := (GetSystemTime div 1000);
Players[CurrentPlayer].Worked := Players[CurrentPlayer].Worked +
((PlayerCurTime - PlayerStartTime) / 60);
repeat
CurrentPlayer := Random(HowManyPlayers);
Wait(100);
until (Players[CurrentPlayer].Active) and (CurrentPlayer <> LastPlayer);
SRL_Logs := SRL_Logs + 1;
LoginPlayer;
end;

{************************************************* ******************************
procedure NextPlayer(Active: Boolean);
By: Dankness and modified by Ron and by Raymond
Description: Logs in the next player.
Boolean: True - Current player is ok. False - Current player is false.
************************************************** *****************************}

procedure NextPlayer(Active: Boolean);
var
I : integer;
OneActive : Boolean;
begin
if RandomPlayer then
RandomNextPlayer(Active)
else
begin
WriteLn('NextPlayer');
Players[CurrentPlayer].Active := Active;
Logout;
PlayerCurTime := (GetSystemTime div 1000);
Players[CurrentPlayer].Worked := Players[CurrentPlayer].Worked +
((PlayerCurTime - PlayerStartTime) / 60);
CurrentPlayer := (CurrentPlayer + 1) mod HowManyPlayers;
while Players[CurrentPlayer].Active = False do
begin
OneActive := False;
CurrentPlayer := (CurrentPlayer + 1) mod HowManyPlayers;
for I := 0 to HowManyPlayers - 1 do
if Players[I].Active then
OneActive := True;
if OneActive = False then
Wait(60000); // Everybody False. Endless Loop.
end;
SRL_Logs := SRL_Logs + 1;
LoginPlayer;
end;
end;

{************************************************* ******************************
procedure CheckUserNicks;
By: Sumilion / Raymond
Description: Checks if all nicks are set correct.
************************************************** *****************************}

procedure CheckUserNicks;
var
CorrectString: string;
i: Integer;
Wrong : Boolean;
Str : String;
begin
for i := 0 to HowManyPlayers - 1 do
begin
Wrong := False;
if (Players[i].Nick = '') then
begin
Wrong := True;
Str := 'WARNING : Please fill in your nickname.';
end;
if (Players[i].Nick <> LowerCase(Players[i].Nick)) then
begin
Wrong := True;
Str := 'WARNING : Please Uncapitalise your nickname.';
end;
if (pos(Players[i].Nick, LowerCase(Players[i].Name)) = 1) then
begin
Wrong := True;
Str := 'WARNING : Dont use the first letter in your nick.';
end;
if (pos(' ', Players[i].Nick) > 0) then
begin
Wrong := True;
Str := 'WARNING : Dont use spaces in your Nick.';
end;
CorrectString := Capitalize(Players[i].Name);
if not (Pos(LowerCase(Players[i].Nick), CorrectString) > 0) then
begin
Wrong := true;
Str := 'WARNING : Nick does NOT match the name.';
end;
if Wrong then
begin;
Writeln('--');
Writeln(Str);
if (Length(Players[i].Name) > 0) then
Writeln('Warning occured with player : ' + Players[i].Name);
Writeln('For more information, visit http://www.villavu.com/forum/showthread.php?t=5410');
end;
end;
end;

chitin
01-21-2008, 08:55 PM
login.scar has a endless loop untill it gets another play that is active...

here, i re-made login.scar for you, so that dont happen...
//-----------------------------------------------------------------//
//-- Scar Standard Resource Library --//
//-- » Login Routines --//
//-----------------------------------------------------------------//
// * function FindRS: Boolean; // * by WT-Ron
// * function FindLoginScreen: Boolean; // * by Krazy_Meerkat & phantombmx
// * function LoggedIn: Boolean; // * by WT-Fakawi
// * function WelcomeToRuneScape: Boolean; // * by WT-Fakawi
// * procedure Logout; // * by Starblaster100
// * procedure LoginPlayer; // * by WT-Fakawi and modified by Ron
// * procedure NextPlayerOrder(Active : Boolean); // * by WT-Fakawi and modified by Ron
// * procedure RandomNextPlayer(Active: Boolean); // * by Dankness based on WT-Fawki's NextPlayer and modified by Ron
// * procedure NextPlayer(Active: Boolean); // * by Dankness and modified by Ron
// * procedure LogOutEvery(hours, forxmins: Integer); // * by Stupid3ooo
// * procedure HighestAngle; // * by Starblaster100

{ var logs, Attempts: Integer;
Description: Variables needed for some login functions. }
var
SRL_Logs, SRL_Attempts, Already_LoggedIn: Integer;
RandomPlayer: Boolean;

procedure NextPlayer(Active: Boolean); forward;

{************************************************* ******************************
function FindRS: Boolean;
By: RsN
Description: Finds RS Window
************************************************** *****************************}

function FindRS: Boolean;
begin
Result := FindWindowBySize(766, 504);
end;

{************************************************* ******************************
procedure Logout;
By: Starblaster100 / Raymond
Description: Logs you out.
************************************************** *****************************}

function Logout: Boolean;
var
c, i: Integer;
begin
Result := (not (LoggedIn));
if Result = True then
Exit;
if GameTab(14) = False then
Exit;
Wait(200 + Random(100));
while (LoggedIn) or (c < 10) do
begin
Inc(c);
if(ClickText('here', UpChars, MIX1, MIY1, MIX2, MIY2, True))then
for i := 0 to 10 do
begin
Wait(1000);
if not(LoggedIn)then
begin
Result := True;
Exit;
end;
end;
end;
end;

{************************************************* ******************************
procedure LoginPlayer;
By: WT-Fakawi / Raymond
Description: Logs in the Player[CurrentPlayer]. Detects most Client Login Errors
************************************************** *****************************}

Function LoginPlayer : boolean;
var
ClickHereToPlay, i,
CHx, CHy, c, LastPlayer,Mark : Integer;
Options : TStringArray;
OneActive : Boolean;
Actions : TVariantArray;
begin
Result := False;
ClickHereToPlay := BitmapFromString(33, 1, 'z78DA758E510E80300843' +
'AF54C0E2F6E94CB8FF9134123392693FFA41FA4A23A6F0888 443D' +
'26DC000A7DCE7F458F23EE444E721444B6A0F53D58FE44F43 65B7' +
'067D37AC3D95AADF2F50962C79');
OneActive := False;
if LoggedIn = False then
begin;
if (not (Players[CurrentPlayer].Active)) then
begin;
WriteLn('Current player is not Active...');
Repeat
For I := 0 to HowManyPlayers - 1 do
if players[I].Active = true then
OneActive := True;
if OneActive = True then
Break;
Wait(60000);
until false
end;
if FindRS then
ActivateClient;
Wait(900 + random(60));
FindTextTpa(clwhite,0,194, 174,564, 367,'Cancel',UpChars,ClickLeft);
Wait(100+random(50));
FindTextTpa(clwhite,0,194, 174,564, 367,'xis',UpChars,ClickLeft);
Wait(100+random(50));
if FindTextTpa(clwhite,0,194, 174,564, 367,'Username',UpChars, Clickleft) then
begin
Wait(150 + Random(75));
WriteLn(Players[CurrentPlayer].Name);
TypeSend(Players[CurrentPlayer].Name);
Wait(100 + Random(100));
if FindTextTpa(clwhite,0,194, 174,564, 367,'Password',UpChars,ClickLeft) then
begin;
TypeSend(Players[CurrentPlayer].Pass);
Wait(100 + Random(100));
end;
end;
FindTextTpa(clwhite,0,194, 174,564, 367,'Login',UpChars,ClickLeft);
Wait(250 + random(100));
Mark := GetSystemTime;
repeat
Wait(Random(250) + 100);
if (GetSystemTime - Mark) > 35000 then Break;
until not FindTextTpa(65535,0,194, 174,564, 367,'...',UpChars,Nothing);
Mark := GetSystemTime;
Repeat
if FindTextTpa(65535,0,194, 174,564, 367,'...',UpChars,Nothing) or //Still waiting to log in
FindTextTpa(65535,0,194, 174,564, 367,'trans',UpChars,Nothing) then //Your account is beeing transfered
begin;
Wait(1000 + random(500));
end else
begin;
if (GetSystemTime - Mark) > 180000 then
begin
if (GetSystemTime - Mark) > 240000 then
begin;
NextPlayer(false);
Exit;
end;
WriteLn('three minutes have passed');
WriteFileString(TheFile, Chr(13) + 'THREE MINUTES HAVE PASSED!!!' +
Chr(13));
ActivateClient;
FindTextTpa(clwhite,0,194, 174,564, 367,'Cancel',UpChars,ClickLeft);
Wait(100+random(50));
FindTextTpa(clwhite,0,194, 174,564, 367,'xis',UpChars,ClickLeft);
end;
Options := ['nter your','already','nvalid','excee','full','offl','rr or','ontact','reject','reload',
'updat','disabled','member','elcom','incorrect'];
OneActive := False;
For I := 0 to High(Options) do
if FindTextTpa(65535,0,194, 174,564, 367,Options[I],UpChars,Nothing) then
begin;
OneActive := True;
Break;
end;
if OneActive then
begin;
FreeBitmap(ClickHereToPlay);
SetLength(Actions,2);
Case Options[I] of
'reload' : begin; //Runescape updated
WriteLn('ERROR. RuneScape has been updated. Script Terminated.');
Terminatescript;
end;
'disabled' : begin; //Your account has been disabled..
WriteLn('Your account has been disabled');
Players[CurrentPlayer].loc := 'DISABLED';
NextPlayer(False);
Exit;
end;
'member' : begin; // You need a Members account...
WriteLn('You need a Members account...');
Players[CurrentPlayer].loc := 'Non-Member';
NextPlayer(False);
exit;
end;
'already' : begin //Account already logged in
Actions := ['Your account is already logged in',0];
Wait(60000 + Random(500));
Already_LoggedIn := Already_LoggedIn + 1;
if Already_LoggedIn > 3 then
begin
Already_LoggedIn := 0;
LastPlayer := CurrentPlayer;
repeat
CurrentPlayer := (CurrentPlayer + 1) mod HowManyPlayers;
Wait(200);
until (Players[CurrentPlayer].Active) and (CurrentPlayer <> LastPlayer);
end;
LoginPlayer;
end;
'nvalid' : begin;// Invalid Username. 3 attempts. If fails, username/pass incorrect
Actions := ['Invalid Username \ Password',0];
Inc(SRL_Attempts);
if SRL_Attempts > 3 then
begin;
Players[CurrentPlayer].Loc := 'Login ERROR';
SRL_Attempts := 0;
Nextplayer(False);
Exit;
end;
end;
'excee' : Actions := ['Login attempts exceeded. Please wait 1 minute and try again.',60000];
'offl' : Actions := ['Unable to connect Login Server offline.',(20000) + Random(6000)]; // Unable to connect. Login Server offline.
'nter your': Actions := ['Enter your username and password',0];//Login failed
'full' : Actions := ['World is full.',5000]; //World is full =]
'rror' : Actions := ['Error Connecting.',10000]; //Error, connection timed out?
'ontact' : Actions := ['Error loading your profile.',2000]; // Error loading your profile. Will attempt to re-login 5 more times.)
'reject' : Actions := ['Login server rejected session.',1000]; // Login server rejected session.
'updat' : Actions := ['The Server is being updated.',60000]; // The Server is being updated. Please wait 1 minute.
'elcom' : Actions := ['Welcome.',0];
'incorrect': Actions := ['To many incorrect logins.',60000 * 5]; //Wrong logins baby.
end;
Writeln(Actions[0]);
Wait(Actions[1] + Random(100));
LoginPlayer;
Exit;
end;
end;
until (FindBitmapToleranceIn(ClickHereToPlay, CHx, CHy, 250, 270, 530, 390,
5)) or FindColor(CHx, CHy, 723587, 522, 5, 560, 39);
Wait(1000 + Random(500));
if (FindBitmapToleranceIn(ClickHereToPlay, CHx, CHy, 250, 270, 530, 390, 5)) then
Mouse(CHx, CHy, 50, 20, True) // Clicks randomly on the button
else
Writeln('Found Compass');
repeat
Wait(1000);
c := c + 1;
until ((LoggedIn = True) or (c >= 600));
end;
FreeBitmap(ClickHereToPlay);
if LoggedIn then
begin
PlayerStartTime := (GetSystemTime div 1000); // PlayerStartTime
if Length(Players[CurrentPlayer].NickTPA) < 2 then
begin;
Writeln('Creating the NickTPA.');
if Players[CurrentPlayer].Nick <> '' then
Players[CurrentPlayer].NickTPA := CreateTPAFromText(Players[CurrentPlayer].Nick, UpChars)
else
begin;
Writeln('Nickname isnt set, taking the username instead..');
Players[CurrentPlayer].NickTPA := CreateTPAFromText(Players[CurrentPlayer].Name, UpChars);
end;
end;
WriteFileString(TheFile, Chr(13) + 'Current player: '+ UpperCase(Players[CurrentPlayer].Name) + Chr(13)); //* Save NAME to file
end;
end;

{************************************************* ******************************
procedure RandomNextPlayer(Active: Boolean);
By: Dankness based on WT-Fawki's NextPlayer and modified by Ron and by Raymond
Description: Picks Random Player that is Active and Logs in
************************************************** *****************************}

procedure RandomNextPlayer(Active: Boolean);
var
LastPlayer: Integer;
begin
WriteLn('NextPlayer');
LastPlayer := CurrentPlayer;
Players[CurrentPlayer].Active := Active;
Logout;
PlayerCurTime := (GetSystemTime div 1000);
Players[CurrentPlayer].Worked := Players[CurrentPlayer].Worked +
((PlayerCurTime - PlayerStartTime) / 60);
repeat
CurrentPlayer := Random(HowManyPlayers);
Wait(100);
until (Players[CurrentPlayer].Active) and (CurrentPlayer <> LastPlayer);
SRL_Logs := SRL_Logs + 1;
LoginPlayer;
end;

{************************************************* ******************************
procedure NextPlayer(Active: Boolean);
By: Dankness and modified by Ron and by Raymond
Description: Logs in the next player.
Boolean: True - Current player is ok. False - Current player is false.
************************************************** *****************************}

procedure NextPlayer(Active: Boolean);
var
I : integer;
OneActive : Boolean;
begin
if RandomPlayer then
RandomNextPlayer(Active)
else
begin
WriteLn('NextPlayer');
Players[CurrentPlayer].Active := Active;
Logout;
PlayerCurTime := (GetSystemTime div 1000);
Players[CurrentPlayer].Worked := Players[CurrentPlayer].Worked +
((PlayerCurTime - PlayerStartTime) / 60);
CurrentPlayer := (CurrentPlayer + 1) mod HowManyPlayers;
while Players[CurrentPlayer].Active = False do
begin
OneActive := False;
CurrentPlayer := (CurrentPlayer + 1) mod HowManyPlayers;
for I := 0 to HowManyPlayers - 1 do
if Players[I].Active then
OneActive := True;
if OneActive = False then
Wait(60000); // Everybody False. Endless Loop.
end;
SRL_Logs := SRL_Logs + 1;
LoginPlayer;
end;
end;

{************************************************* ******************************
procedure CheckUserNicks;
By: Sumilion / Raymond
Description: Checks if all nicks are set correct.
************************************************** *****************************}

procedure CheckUserNicks;
var
CorrectString: string;
i: Integer;
Wrong : Boolean;
Str : String;
begin
for i := 0 to HowManyPlayers - 1 do
begin
Wrong := False;
if (Players[i].Nick = '') then
begin
Wrong := True;
Str := 'WARNING : Please fill in your nickname.';
end;
if (Players[i].Nick <> LowerCase(Players[i].Nick)) then
begin
Wrong := True;
Str := 'WARNING : Please Uncapitalise your nickname.';
end;
if (pos(Players[i].Nick, LowerCase(Players[i].Name)) = 1) then
begin
Wrong := True;
Str := 'WARNING : Dont use the first letter in your nick.';
end;
if (pos(' ', Players[i].Nick) > 0) then
begin
Wrong := True;
Str := 'WARNING : Dont use spaces in your Nick.';
end;
CorrectString := Capitalize(Players[i].Name);
if not (Pos(LowerCase(Players[i].Nick), CorrectString) > 0) then
begin
Wrong := true;
Str := 'WARNING : Nick does NOT match the name.';
end;
if Wrong then
begin;
Writeln('--');
Writeln(Str);
if (Length(Players[i].Name) > 0) then
Writeln('Warning occured with player : ' + Players[i].Name);
Writeln('For more information, visit http://www.villavu.com/forum/showthread.php?t=5410');
end;
end;
end;

ahh well thnx alot! il try it imeditly
EDIT: excelent job...i commend u~rep+