Ich habe ein kleines Problem bei meinem Freundschaftssystem.
Und zwar möchte ich anhand der playerid überprüfen, ob der Spieler online oder offline ist.
Das Problem ist jedoch, dass mir die Spieler ständig als online angezeigt werden, diese jedoch nicht online sind.
Ich verwende leicht veränderte Funktionen aus der Include von 8D.
COMMAND:friends(playerid)
{
new string[MAX_PLAYER_FRIENDS*MAX_PLAYER_NAME];
for(new slot=0;slot!=MAX_PLAYER_FRIENDS;slot++)
{
if(!strcmp(GetFriendBySlot(playerid,slot), "-1", false))continue;
else{
if(GetIdByName(GetFriendBySlot(playerid,slot))!=INVALID_PLAYER_ID)format(string,sizeof(string),"%s\n%s - Online",string,GetFriendBySlot(playerid,slot));
else if(GetIdByName(GetFriendBySlot(playerid,slot))==INVALID_PLAYER_ID)format(string,sizeof(string),"%s\n%s - Offline",string,GetFriendBySlot(playerid,slot));
}
}
ShowPlayerDialog(playerid,DIALOG_FRIENDS,DIALOG_STYLE_LIST,"Freundesliste",string,"Schließen","");
return 1;
}
stock GetFriendBySlot(playerid,slot)
{
new name[MAX_PLAYER_NAME];
if(strcmp(Freunde[playerid][slot],"0",true) != 0)
{
return Freunde[playerid][slot];
}
else
{
format(name,MAX_PLAYER_NAME,"-1");
return name;
}
}
stock GetIdByName(name[])
{
for(new i = 0; i != MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(strcmp(name,PlayerName,true) == 0)
{
return i;
}
}
}
return INVALID_PLAYER_ID;
}
Mit freundlichen Grüßen