Dialog Box Help - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: SA-MP Server (
https://sampforum.blast.hk/forumdisplay.php?fid=6)
+--- Forum: Server Support (
https://sampforum.blast.hk/forumdisplay.php?fid=19)
+--- Thread: Dialog Box Help (
/showthread.php?tid=605034)
Dialog Box Help -
WatchDog - 13.04.2016
Please help me i want that when a person types /admins commands.All admins name come in a box on screen not on chat.
Here is mine admins commands
Код:
CMD:admins(playerid,params[])
{
new count = 0, string[256], AdmRank[500];
SendClientMessage(playerid,red,"");
SendClientMessage(playerid,COLOR_ORANGE,"»»Online Admins»»");
new ChangeColor;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][Level] > 0)
{
if(PlayerInfo[i][Level] == 1)
{
AdmRank = "Junior Admin";
ChangeColor = Color_Trial_Admin;
}
else if(PlayerInfo[i][Level] == 2)
{
AdmRank = "Senior Admin";
ChangeColor = Color_Server_Admin;
}
else if(PlayerInfo[i][Level] == 3)
{
AdmRank = "Head Admin";
ChangeColor = Color_Senior_Admin;
}
else if(PlayerInfo[i][Level] == 4)
{
AdmRank = "Management(Server Team)";
ChangeColor = Color_Lead_Admin;
}
else if(PlayerInfo[i][Level] == 5)
{
AdmRank = "Server Owner(Rcon Admin)";
ChangeColor = Color_Global_Admin;
}
else if(PlayerInfo[i][Level] == 6)
{
AdmRank = "Community Developer/Scripter";
ChangeColor = Color_Server_Owner;
}
else if(PlayerInfo[i][Level] >= 7)
{
AdmRank = "Community Owner";
ChangeColor = Color_RCON_Administrator;
}
else if(PlayerInfo[i][Level] >= 8)
{
AdmRank = "Community Owner";
ChangeColor = Color_RCON_Administrator;
}
new Name[MAX_PLAYER_NAME];
GetPlayerName(i,Name,sizeof(Name));
{
format(string, sizeof(string), "Level: %d | Name: %s (ID:%i) | Rank: %s", PlayerInfo[i][Level], Name, i, AdmRank);
SendClientMessage(playerid,ChangeColor,string);
count++;
}
}
}
}
if(count == 0)
SendClientMessage(playerid,red,"No Admins online!");
SendClientMessage(playerid,COLOR_ORANGE,"________________________");
return 1;
}
Re: Dialog Box Help -
Konstantinos - 13.04.2016
I used switch to the player's level but if there max is 8, you can also use arrays and retrieve it right away. I also recommend you to use foreach/y_iterate instead as it loops through the connected players only and it is much faster.
Last, using DIALOG_STYLE_TABLIST_HEADERS would look nicer in my opinion but your choice.
PHP код:
CMD:admins(playerid, params[])
{
new count, string[400], AdmRank[29], ChangeColor, Name[MAX_PLAYER_NAME];
foreach(new i : Player)
{
switch (PlayerInfo[i][Level])
{
case 0: continue;
case 1:
{
AdmRank = "Junior Admin";
ChangeColor = Color_Trial_Admin;
}
case 2:
{
AdmRank = "Senior Admin";
ChangeColor = Color_Server_Admin;
}
case 3:
{
AdmRank = "Head Admin";
ChangeColor = Color_Senior_Admin;
}
case 4:
{
AdmRank = "Management(Server Team)";
ChangeColor = Color_Lead_Admin;
}
case 5:
{
AdmRank = "Server Owner(Rcon Admin)";
ChangeColor = Color_Global_Admin;
}
case 6:
{
AdmRank = "Community Developer/Scripter";
ChangeColor = Color_Server_Owner;
}
case 7
{
AdmRank = "Community Owner";
ChangeColor = Color_RCON_Administrator;
}
default:
{
AdmRank = "Community Owner";
ChangeColor = Color_RCON_Administrator;
}
}
GetPlayerName(i, Name, sizeof(Name));
format(string, sizeof(string), "%s{%06x}Level: %d | Name: %s (ID:%i) | Rank: %s\n", string, ChangeColor >>> 8, PlayerInfo[i][Level], Name, i, AdmRank);
count++;
}
if (!count) SendClientMessage(playerid, red, "No Admins online!");
else ShowPlayerDialog(playerid, 345, DIALOG_STYLE_MSGBOX, "»»Online Admins»»", string, "Close", "");
return 1;
}