cmd(admins, playerid, params[])
{
if(IsPlayerConnected(playerid))
{
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, COLOR_ADMIN, "Online Administrators:");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(GetPVarInt(playerid, "AdminLevel") <= 1338)
{
new admtext[64], sendername[MAX_PLAYER_NAME];
if(GetPVarInt(playerid, "AdminLevel") == 1337) { admtext = "Head Administrator"; }
GetPlayerName(i, sendername, sizeof(sendername));
return 1;
}
else
{
SendClientMessage(playerid, COLOR_ADMIN, "No online staff members currently found.");
return 1;
}
}
}
}
return 1;
}
|
Could you show the CMD that you used to set your admin level in the script first?
|
cmd(agive, playerid, params[])
{
// If player is not admin, returns value of 0
if(GetPVarInt(playerid, "AdminLevel") == 0) return 0;
// Makes sure player is admin before allowing promotion of another player
if(GetPVarInt(playerid, "AdminLevel") == 1337)
{
new ID; new string[120];
if(sscanf(params, "u", ID)) return SendClientMessage(playerid, COLOR_ERROR, "Usage: /agive [ID]");
if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, COLOR_ERROR, "Unknown ID.");
if(GetPVarInt(ID, "AdminLevel") == 1337) return SendClientMessage(playerid, COLOR_ERROR, "Error: That player is already an Administrator.");
IRC_Say(gGroupID, IRC_CHANNEL, string);
SendClientMessage(ID, COLOR_ADMIN, "You are now a member of the staff team.");
SendClientMessage(ID, COLOR_ADMIN, "Do /adcmds for a list of your commands.");
SetPVarInt(ID, "AdminLevel", 1337);
}
return 1;
}
cmd(admins, playerid, params[])
{
if(IsPlayerConnected(playerid))
{
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, COLOR_ADMIN, "Online Administrators:");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(GetPVarInt(playerid, "AdminLevel") <= 1338)
{
new admtext[64], sendername[MAX_PLAYER_NAME];
if(GetPVarInt(playerid, "AdminLevel") == 1337) { admtext = "Head Administrator"; }
GetPlayerName(i, sendername, sizeof(sendername));
new tstr[128];
format(tstr, 128, "%s (%s)", sendername, admtext);
SendClientMessage(playerid, COLOR_ADMIN, tstr);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_ADMIN, "No online staff members currently found.");
return 1;
}
}
}
}
return 1;
}
|
You're not sending any message if there's an admin online. Your just grabbing the variable and defining admtext. You need to format a string and send it oncertainly you've confirmed there's an administrator online.
|
|
PHP код:
|
cmd(admins, playerid, params[])
{
if(IsPlayerConnected(playerid))
{
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, COLOR_ADMIN, "Online Staff Members:");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(GetPVarInt(playerid, "AdminLevel") <= 1338)
{
new admtext[64], sendername[MAX_PLAYER_NAME];
if(GetPVarInt(playerid, "AdminLevel") == 1337) { admtext = "Head Administrator"; }
if(GetPVarInt(playerid, "AdminLevel") == 4) { admtext = "Senior Administrator"; }
if(GetPVarInt(playerid, "AdminLevel") == 3) { admtext = "Administrator"; }
if(GetPVarInt(playerid, "AdminLevel") == 2) { admtext = "Moderator"; }
if(GetPVarInt(playerid, "AdminLevel") == 1) { admtext = "Moderator"; }
GetPlayerName(i, sendername, sizeof(sendername));
new tstr[128];
format(tstr, 128, "%s {FFFFFF}- %s", sendername, admtext);
SendClientMessage(playerid, COLOR_ADMIN, tstr);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_ADMIN, "No online staff members currently found.");
return 1;
}
}
}
}
return 1;
}
But, you could replace the if statements with a switch statement
switch(GetPVarInt(playerid, "AdminLevel") {
case 1..2: admtext = "Moderator";
// etc...
}
// you loop check print the admin etc...
return 1;
cmd(admins, playerid, params[])
{
if(IsPlayerConnected(playerid))
{
SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, COLOR_ADMIN, "Online Staff Members:");
new count;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(GetPVarInt(playerid, "AdminLevel") <= 1338)
{
new admtext[64], sendername[MAX_PLAYER_NAME];
if(GetPVarInt(playerid, "AdminLevel") == 1337) { admtext = "Head Administrator"; }
if(GetPVarInt(playerid, "AdminLevel") == 4) { admtext = "Senior Administrator"; }
if(GetPVarInt(playerid, "AdminLevel") == 3) { admtext = "Administrator"; }
if(GetPVarInt(playerid, "AdminLevel") == 2) { admtext = "Moderator"; }
if(GetPVarInt(playerid, "AdminLevel") == 1) { admtext = "Moderator"; }
GetPlayerName(i, sendername, sizeof(sendername));
new tstr[128];
format(tstr, 128, "%s {FFFFFF}- %s", sendername, admtext);
SendClientMessage(playerid, COLOR_ADMIN, tstr);
count++;
}
}
}
if(count == 0)
SendClientMessage(playerid, COLOR_ADMIN, "No online staff members currently found.");
}
return 1;
}
|
That should work exactly as intended, I don't see anything wrong.
But, you could replace the if statements with a switch statementPHP код:
PHP код:
PHP код:
|