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; }
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 statement
PHP код:
PHP код:
PHP код:
|