SA-MP Forums Archive
Error with /admins - 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: Error with /admins (/showthread.php?tid=552042)



Error with /admins - EmilLykke - 22.12.2014

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;
    }



Re: Error with /admins - Abagail - 22.12.2014

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;
    }



Re: Error with /admins - Sawalha - 22.12.2014

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.


Re: Error with /admins - Threshold - 22.12.2014

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;
}