Error with /admins
#1

When there are no administrators, it says, there are none.
But when there are, it just says: "Connected Administrators:"

Can anybody tell me why it doesn't work?

pawn Код:
COMMAND:admins(playerid, params[])
    {  
        new check = 0,
            info[150];
        SendClientMessage(playerid, COLOR_LIGHTGREEN, "Connected Administrators:");
        foreach(new i : Player)
        {
            if(PlayerInfo[i][pAdminlevel] > 0 && GetPVarInt(i, "AdminHide") == 0)
            {
                format(info, sizeof(info), "(Level: %i) %s (%s) (ID: %i) AdminDuty: %s", PlayerInfo[i][pAdminlevel], GetNameWithSpace(i), PlayerInfo[i][pForumName], i, GetPVarInt(i, "AdminDuty") == 1? ("Yes") : ("No"));
                check++;
            }
            else if(check == 0) return SendClientMessage(playerid, COLOR_GREY, "*** There are currently no administrators connected.");
            else
            {
                if(PlayerInfo[i][pBanAppealer] == 1) strcat(info, " [BA]");
                if(PlayerInfo[i][pBanAppealer] == 2) strcat(info, " [DOBA]");
                if(PlayerInfo[i][pShopTech] == 1) strcat(info, " [ST]");
                if(PlayerInfo[i][pShopTech] == 2) strcat(info, " [SST]");
                if(PlayerInfo[i][pShopTech] == 3) strcat(info, " [DOCR]");
                if(PlayerInfo[i][pFactionModerator] == 1) strcat(info, " [FMOD]");
                if(PlayerInfo[i][pFactionModerator] == 2) strcat(info, " [DOFM]");
                if(PlayerInfo[i][pPR] == 1) strcat(info, " [PR]");
                if(PlayerInfo[i][pPR] == 2) strcat(info, " [DOPR]");
                if(PlayerInfo[i][pHR] >= 1) strcat(info, "
"
);
                if(PlayerInfo[i][pAP] >= 1) strcat(info, " [AP]");
                if(PlayerInfo[i][pSecurity] >= 1) strcat(info, " [Sec]");
                SendClientMessage(playerid, GetPVarInt(i, "AdminDuty") == 1? COLOR_GREEN : COLOR_GREY, info);
            }
        }
        return 1;
    }
Reply
#2

Try this:

pawn Код:
COMMAND:admins(playerid, params[])
    {  
        new check = 0,
            info[150];
        SendClientMessage(playerid, COLOR_LIGHTGREEN, "Connected Administrators:");
        foreach(new i : Player)
        {
            if(PlayerInfo[i][pAdminlevel] > 0 && GetPVarInt(i, "AdminHide") == 0)
            {
                format(info, sizeof(info), "(Level: %i) %s (%s) (ID: %i) AdminDuty: %s", PlayerInfo[i][pAdminlevel], GetNameWithSpace(i), PlayerInfo[i][pForumName], i, GetPVarInt(i, "AdminDuty") == 1? ("Yes") : ("No"));
                check++;
            }
            if(check == 0) return SendClientMessage(playerid, COLOR_GREY, "*** There are currently no administrators connected.");
            else
            {
                if(PlayerInfo[i][pBanAppealer] == 1) strcat(info, " [BA]");
                if(PlayerInfo[i][pBanAppealer] == 2) strcat(info, " [DOBA]");
                if(PlayerInfo[i][pShopTech] == 1) strcat(info, " [ST]");
                if(PlayerInfo[i][pShopTech] == 2) strcat(info, " [SST]");
                if(PlayerInfo[i][pShopTech] == 3) strcat(info, " [DOCR]");
                if(PlayerInfo[i][pFactionModerator] == 1) strcat(info, " [FMOD]");
                if(PlayerInfo[i][pFactionModerator] == 2) strcat(info, " [DOFM]");
                if(PlayerInfo[i][pPR] == 1) strcat(info, " [PR]");
                if(PlayerInfo[i][pPR] == 2) strcat(info, " [DOPR]");
                if(PlayerInfo[i][pHR] >= 1) strcat(info, "
"
);
                if(PlayerInfo[i][pAP] >= 1) strcat(info, " [AP]");
                if(PlayerInfo[i][pSecurity] >= 1) strcat(info, " [Sec]");
                SendClientMessage(playerid, GetPVarInt(i, "AdminDuty") == 1? COLOR_GREEN : COLOR_GREY, info);
            }
        }
        return 1;
    }
Reply
#3

pawn Код:
COMMAND:admins(playerid, params[])
    {
        new check = 0,
        info[150];
        SendClientMessage(playerid, COLOR_LIGHTGREEN, "Connected Administrators:");
        foreach(new i : Player)
        {
            if(IsPlayerConnected(i)) {

                if(PlayerInfo[i][pAdminlevel] > 0 && GetPVarInt(i, "AdminHide") == 0)
                {
               
                    format(info, sizeof(info), "(Level: %i) %s (%s) (ID: %i) AdminDuty: %s", PlayerInfo[i][pAdminlevel], GetNameWithSpace(i), PlayerInfo[i][pForumName], i, GetPVarInt(i, "AdminDuty") == 1? ("Yes") : ("No"));
                    SendClientMessage(playerid, GetPVarInt(i, "AdminDuty") == 1? COLOR_GREEN : COLOR_GREY, info); // so better, send it under this case only..
                    check++;
                }
                else
                {
                    if(PlayerInfo[i][pBanAppealer] == 1) strcat(info, " [BA]");
                    if(PlayerInfo[i][pBanAppealer] == 2) strcat(info, " [DOBA]");
                    if(PlayerInfo[i][pShopTech] == 1) strcat(info, " [ST]");
                    if(PlayerInfo[i][pShopTech] == 2) strcat(info, " [SST]");
                    if(PlayerInfo[i][pShopTech] == 3) strcat(info, " [DOCR]");
                    if(PlayerInfo[i][pFactionModerator] == 1) strcat(info, " [FMOD]");
                    if(PlayerInfo[i][pFactionModerator] == 2) strcat(info, " [DOFM]");
                    if(PlayerInfo[i][pPR] == 1) strcat(info, " [PR]");
                    if(PlayerInfo[i][pPR] == 2) strcat(info, " [DOPR]");
                    if(PlayerInfo[i][pHR] >= 1) strcat(info, "
"
);
                    if(PlayerInfo[i][pAP] >= 1) strcat(info, " [AP]");
                    if(PlayerInfo[i][pSecurity] >= 1) strcat(info, " [Sec]");
                    // "info" here will be empty, bcz u formatted it under another case.....
                }
            }
            else if(check == 0) return SendClientMessage(playerid, COLOR_GREY, "*** There are currently no administrators connected.");
        }
        return 1;
Your mistake was that you formatted the string "info" under a case, and sent it under another different case, which will make it empty string.
Second, you should check if the player was connected or not, to not return bugs.
Reply
#4

Let's try again fellas...

pawn Код:
COMMAND:admins(playerid, params[])
{
    new check = 0;
    SendClientMessage(playerid, COLOR_LIGHTGREEN, "Connected Administrators:");
    foreach(new i : Player)
    {
        if(PlayerInfo[i][pAdminlevel] && !GetPVarInt(i, "AdminHide"))
        {
            new info[128];
            format(info, sizeof(info), "(Level: %i) %s (%s) (ID: %i) AdminDuty: %s", PlayerInfo[i][pAdminlevel], GetNameWithSpace(i), PlayerInfo[i][pForumName], i, (GetPVarInt(i, "AdminDuty") == 1) ? ("Yes") : ("No"));
            if(PlayerInfo[i][pBanAppealer] == 1) strcat(info, " [BA]");
            if(PlayerInfo[i][pBanAppealer] == 2) strcat(info, " [DOBA]");
            if(PlayerInfo[i][pShopTech] == 1) strcat(info, " [ST]");
            if(PlayerInfo[i][pShopTech] == 2) strcat(info, " [SST]");
            if(PlayerInfo[i][pShopTech] == 3) strcat(info, " [DOCR]");
            if(PlayerInfo[i][pFactionModerator] == 1) strcat(info, " [FMOD]");
            if(PlayerInfo[i][pFactionModerator] == 2) strcat(info, " [DOFM]");
            if(PlayerInfo[i][pPR] == 1) strcat(info, " [PR]");
            if(PlayerInfo[i][pPR] == 2) strcat(info, " [DOPR]");
            if(PlayerInfo[i][pHR]) strcat(info, "
"
);
            if(PlayerInfo[i][pAP]) strcat(info, " [AP]");
            if(PlayerInfo[i][pSecurity]) strcat(info, " [Sec]");
            SendClientMessage(playerid, (GetPVarInt(i, "AdminDuty")) ? (COLOR_GREEN) : (COLOR_GREY), info);
            check++;
        }
    }
    if(!check) SendClientMessage(playerid, COLOR_GREY, "*** There are currently no administrators connected.");
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)