Help with Online/Offline in dialog. - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (
https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (
https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Help with Online/Offline in dialog. (
/showthread.php?tid=626150)
Help with Online/Offline in dialog. -
FaLLenGirL - 11.01.2017
Hello there, i wanted to make a dialog to show all admins
from the server, even they are not Online. Well when they will be logged in
in dialog will Show Admin X - Online if the admin is offline in dialog will show
Admin X - Offilne, if he is in a Minigame/DM will show Admin X - Playing and
if the admin is AFK will show Admin X - Away from Keyboard. But when i connect
with my name: FaLLenGirL, there appears Online to another name that is not connected..
< PHOTO >
Can u help ? Thx

.
Re: Help with Online/Offline in dialog. -
oMa37 - 11.01.2017
Try this;
PHP код:
CMD:admins(playerid, params[]) {
ListPage[playerid] = 0;
eBigString[0] = EOS;
new Cache:adminslog, query[120];
adminslog = mysql_query(DB_Connect, "SELECT Name, Level, LoggedIn, LastOn FROM Accounts WHERE Level > 0 ORDER BY Level DESC LIMIT 0, 15");
new rows = cache_num_rows();
if(rows) {
new OnName[MAX_PLAYER_NAME+1], ALevel, AdmRank[35], StatusPlayer[60], LastOnline[30];
eBigString = "{FFFFFF}#.\t{FFFFFF}Admin Name\t{FFFFFF}Rank(Level)\t{FFFFFF}Status\n";
for(new i; i < rows; i++) {
cache_get_field_content(i, "Name", OnName );
cache_get_field_content(i, "LastOn", LastOnline );
ALevel = cache_get_field_content_int( i, "Level" );
new isOnline = GetID(OnName);
if(IsPlayerConnected(isOnline) && PlayerInfo[isOnline][AFK] == 0) Status_Player = "{00CC00}• {FFFFFF}Online";
if(PlayerInfo[isOnline][AFK] == 1) Status_Player = "{DB881A}• {FFFFFF}Away from Keyboard";
if( PlayerInfo[isOnline][ InDM ] == 1 || PlayerInfo[isOnline][ InMG ][ 1 ] == 1 || PlayerInfo[isOnline][ InMG ][ 2 ] == 1 || PlayerInfo[isOnline][ InMG ][ 3 ] == 1 ||
Joined[isOnline] == true || Snow_F[isOnline] == 1 ) Status_Player = "{FF0000}• {FFFFFF}Playing";
switch( ALevel )
{
case 1: AdmRank = "{CC6633}Trial-Helper";
case 2: AdmRank = "{3371CC}Basic-Helper";
case 3: AdmRank = "{3371CC}Master-Helper";
case 4: AdmRank = "{33FF99}Moderator";
case 5: AdmRank = "{33FF00}Basic-Moderator";
case 6: AdmRank = "{996600}Master-Moderator";
case 7: AdmRank = "{FF9900}Administrator";
case 8: AdmRank = "{CCFF00}Basic-Administrator";
case 9: AdmRank = "{FFCC00}Master-Administrator";
case 10: AdmRank = "{FF0000}Owner";
}
if( PlayerInfo[isOnline][ LoggedIn ] == 1 ) format( eBigString, sizeof( eBigString ), "%s{FFFFFF}#.\t{C0C0C0}%s\t%s(%d)\t%s\n", eBigString, OnName, AdmRank, ALevel, Status_Player );
else format( eBigString, sizeof( eBigString ), "%s{FFFFFF}#.\t{C0C0C0}%s\t%s(%d)\t{C0C0C0}%s\n", eBigString, OnName, AdmRank, ALevel, LastOnline );
}
ShowPlayerDialog( playerid, DIALOG_ADMINS_NEXT, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Server Administrators: Page 1:", eBigString, "Next", "Exit" );
}
else SendError( playerid, "There are no Server Administrators !" );
cache_delete( adminslog );
return 1;
}
GetID(name[])
{
for(new i, j = GetPlayerPoolSize(); i <= j; i++)
{
new playeRname[MAX_PLAYER_NAME+1];
GetPlayerName(i, playeRname, sizeof(playeRname));
if(!strcmp(GetName(i), name, true)) return i;
}
return INVALID_PLAYER_ID;
}
Re: Help with Online/Offline in dialog. -
FaLLenGirL - 11.01.2017
Thx. I solved in other way. But it is okey too what you have done for me.