SA-MP Forums Archive
Admins list 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: Admins list dialog (/showthread.php?tid=371429)



Admins list dialog - [LoS]YoUnG_KiD - 23.08.2012

Hey i want make my admins command a dialog one so please help guys this is the code
CMD:admins(playerid,params[])
{
#pragma unused params
new count = 0;
new string[128];
new ChangeColor;
Inter_SendClientMessage(playerid, green, " ");
Inter_SendClientMessage(playerid, green, "___________ |- Online Admins -| ___________");
Inter_SendClientMessage(playerid, green, " ");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if (IsPlayerConnected(i))
{
if(AccInfo[i][Level] >= 1 && AccInfo[i][Hide] == 0)
{
if(AccInfo[i][Level] > 5)
{
AdmRank = "Professional Admin";
ChangeColor = Color_Professional_Admin;
}
if(IsPlayerAdmin(i))
{
AdmRank = "RCON Administrator";
ChangeColor = Color_RCON_Administrator;
}
else
{
switch(AccInfo[i][Level])
{
case 1: {
AdmRank = "Basic Moderator";
ChangeColor = Color_Basic_Moderator;
}
case 2: {
AdmRank = "Moderator";
ChangeColor = Color_Moderator;
}
case 3: {
AdmRank = "Master Moderator";
ChangeColor = Color_Master_Moderator;
}
case 4: {
AdmRank = "Administrator";
ChangeColor = Color_Administrator;
}
case 5: {
AdmRank = "Master Administrator";
ChangeColor = Color_Master_Administrator;
}
}
}
switch(AccInfo[i][OnDuty])
{
case 0: AdmDuty = "Playing!";
case 1: AdmDuty = "On Duty!";
}
format(string, 128, "Level: %d - %s (Id:%i) | %s | %s",AccInfo[i][Level], PlayerName2(i),i,AdmRank,AdmDuty);
Inter_SendClientMessage(playerid, ChangeColor, string);
count++;
}
}
}
if (count == 0)
Inter_SendClientMessage(playerid,red,"No admin online in the list");
Inter_SendClientMessage(playerid, green, " _______________________________________");
return 1;
}
please dont tell me another one i just one this one please


Re: Admins list dialog - ReVo_ - 23.08.2012

pawn Код:
new
        Rank[ 40 ],
        msgColor,
        Duty[ 10 ]
        count,
        str[ 128 ]
    ;
    Inter_SendClientMessage(playerid, green, " ");
    Inter_SendClientMessage(playerid, green, "___________ |- Online Admins -| ___________");
    Inter_SendClientMessage(playerid, green, " ");

    for ( new i = 0 ; i < MAX_PLAYERS ; ++ i ) {
        if (!IsPlayerConnected( i )) continue;
        if (AccInfo[i][Hide]) continue;
        if (AccInfo[i][Level] < 1) continue;
        if (!IsPlayerAdmin(i)) {
            switch (AccInfo[i][Level]) {
                case 1: {
                    Rank = "Basic Moderator";
                    msgColor = Color_Basic_Moderator;
                }
                case 2: {
                    Rank = "Moderator";
                    msgColor = Color_Moderator;
                }
                case 3: {
                    Rank = "Master Moderator";
                    msgColor = Color_Master_Moderator;
                }
                case 4: {
                    Rank = "Administrator";
                    msgColor = Color_Administrator;
                }
                case 5: {
                    Rank = "Master Administrator";
                    msgColor = Color_Master_Administrator;
                }
                default: {
                    Rank = "Professional Admin";
                    msgColor = Color_Professional_Admin;
                }
            }
        }
        else Rank = "RCON Administrator";
       
        if (AccInfo[i][OnDuty]) Duty = "Playing";
        else Duty = "On Duty!";
       
        format( str , 128 , "Level: %d - %s (Id:%i) | %s | %s", AccInfo[i][Level] , PlayerName2(i) , i , Rank , Duty );
        Inter_SendClientMessage( playerid , msgColor , str );
       
        count ++;
   
    }

    if ( count < 1 ) {
        Inter_SendClientMessage(playerid,red,"No admin online in the list");
        Inter_SendClientMessage(playerid, green, " _______________________________________");
    }



Re: Admins list dialog - [LoS]YoUnG_KiD - 24.08.2012

It's not the answer please tell me one good other


Re: Admins list dialog - Shetch - 24.08.2012

Код:
if (strcmp("/admins", cmdtext, true, 10) == 0)
	{
		new string[256], name[MAX_PLAYER_NAME];
		for(new i = 0; i < MAX_PLAYERS; i++)
		{
  			if(AccInfo[i][Level] > 0)
  			{
  			    GetPlayerName(playerid, name, sizeof(name));
				format(string, sizeof(string), "%s%s(ID: %d) Level: %d\n", string, name, i, AccInfo[i][Level]);
				ShowPlayerDialog(playerid, 189, DIALOG_STYLE_MSGBOX, "Online Admins", string, "Ok", "Cancel");
			}
		}
		return 1;
	}



Re: Admins list dialog - [KHK]Khalid - 24.08.2012

The above code should work, but there's no need to show the dialog inside the for loop (because the string isn't totally formatted yet), it should be right after the for loop. Here's your command and next time use [ pawn ] pawn code here [ /pawn ], please:

pawn Код:
CMD:admins(playerid,params[])
{
    #pragma unused params
    new count = 0;
    new string[128];
    new ChangeColor;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if (IsPlayerConnected(i))
        {
            if(AccInfo[i][Level] >= 1 && AccInfo[i][Hide] == 0)
            {
                if(AccInfo[i][Level] > 5)
                {
                    AdmRank = "Professional Admin";
                    ChangeColor = Color_Professional_Admin;
                }
                if(IsPlayerAdmin(i))
                {
                    AdmRank = "RCON Administrator";
                    ChangeColor = Color_RCON_Administrator;
                }
                else
                {
                    switch(AccInfo[i][Level])
                    {
                        case 1: {
                            AdmRank = "Basic Moderator";
                            ChangeColor = Color_Basic_Moderator;
                        }
                        case 2: {
                            AdmRank = "Moderator";
                            ChangeColor = Color_Moderator;
                        }
                        case 3: {
                            AdmRank = "Master Moderator";
                            ChangeColor = Color_Master_Moderator;
                        }
                        case 4: {
                            AdmRank = "Administrator";
                            ChangeColor = Color_Administrator;
                        }
                        case 5: {
                            AdmRank = "Master Administrator";
                            ChangeColor = Color_Master_Administrator;
                        }
                    }
                }
                switch(AccInfo[i][OnDuty])
                {
                    case 0: AdmDuty = "Playing!";
                    case 1: AdmDuty = "On Duty!";
                }
                format(string, sizeof(string), "%sLevel: %d - %s (Id:%i) | %s | %s\n", string, AccInfo[i][Level], PlayerName2(i),i,AdmRank,AdmDuty);
                count++;
            }
        }
    }
    if (count == 0)
        format(string, sizeof(string), "No Admins online!");
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Online Admins", str, "Ok", ""); // consider changing the dialog id
    return 1;
}



Re: Admins list dialog - Shetch - 24.08.2012

Quote:
Originally Posted by HellSphinX
Посмотреть сообщение
The above code should work, but there's no need to show the dialog inside the for loop (because the string isn't totally formatted yet), it should be right after the for loop. Here's your command and next time use [ pawn ] pawn code here [ /pawn ], please:

pawn Код:
CMD:admins(playerid,params[])
{
    #pragma unused params
    new count = 0;
    new string[128];
    new ChangeColor;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if (IsPlayerConnected(i))
        {
            if(AccInfo[i][Level] >= 1 && AccInfo[i][Hide] == 0)
            {
                if(AccInfo[i][Level] > 5)
                {
                    AdmRank = "Professional Admin";
                    ChangeColor = Color_Professional_Admin;
                }
                if(IsPlayerAdmin(i))
                {
                    AdmRank = "RCON Administrator";
                    ChangeColor = Color_RCON_Administrator;
                }
                else
                {
                    switch(AccInfo[i][Level])
                    {
                        case 1: {
                            AdmRank = "Basic Moderator";
                            ChangeColor = Color_Basic_Moderator;
                        }
                        case 2: {
                            AdmRank = "Moderator";
                            ChangeColor = Color_Moderator;
                        }
                        case 3: {
                            AdmRank = "Master Moderator";
                            ChangeColor = Color_Master_Moderator;
                        }
                        case 4: {
                            AdmRank = "Administrator";
                            ChangeColor = Color_Administrator;
                        }
                        case 5: {
                            AdmRank = "Master Administrator";
                            ChangeColor = Color_Master_Administrator;
                        }
                    }
                }
                switch(AccInfo[i][OnDuty])
                {
                    case 0: AdmDuty = "Playing!";
                    case 1: AdmDuty = "On Duty!";
                }
                format(string, sizeof(string), "%sLevel: %d - %s (Id:%i) | %s | %s\n", string, AccInfo[i][Level], PlayerName2(i),i,AdmRank,AdmDuty);
                count++;
            }
        }
    }
    if (count == 0)
        format(string, sizeof(string), "No Admins online!");
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Online Admins", str, "Ok", ""); // consider changing the dialog id
    return 1;
}
Oh yea, my bad.
It was suppose to go outside the loop.