Bugged command.
#1

Hey guys, im trying to make a simple /admins command,
What this should do is get all connected players, see who has a level that equals or is higher then 1 and then send a clientmessage showing all the connected admins.

i've made the code, but its a bit buggy for some reason.
Код:
CMD:admins(playerid)
{
	new admincount = 0, string[128];
	for(new i, j = GetMaxPlayers(); i != j; i++)
    {
    	if(pData[playerid][Admin] >= 1 && IsPlayerConnected(i)) admincount ++;
    	format(string,sizeof(string),"{FF00FF}%s : %s - %s",GetName(i),pData[playerid][Admin],AdminsLevelS(i));
		if(admincount <= 0) return SendClientMessage(playerid,-1,"Error:{FF0000} No admin online");
	}
	SendClientMessage(playerid,-1,string);
	return 1;
}
If i'm connected it sends a clientmessage saying " : "
any idea on how to fix this, and is this a good way of doing this?
Reply
#2

you have setted that "if(pData[playerid][pAdmin] >= 1 && IsPlayerConnected(i)) admincount++;"
maybe,

Код:
if(pData[i][pAdmin] >= 1 && IsPlayerConnected(i)) admincount++
format(string,sizeof(string),"{FF00FF}%s : %d - %d",GetName(i),pData[i][Admin],AdminsLevelS(i));
if(admincount <= 0) return SendClientMessage(playerid,-1,"Error:{FF0000} No admin online");
}
SendClientMessage(playerid,-1,string);
for numbers you use %d not %s
Reply
#3

Quote:
Originally Posted by AlexuTzVs
Посмотреть сообщение
you have setted that "if(pData[playerid][pAdmin] >= 1 && IsPlayerConnected(i)) admincount++;"
maybe,

Код:
if(pData[i][pAdmin] >= 1 && IsPlayerConnected(i)) admincount++
format(string,sizeof(string),"{FF00FF}%s : %d - %d",GetName(i),pData[i][Admin],AdminsLevelS(i));
if(admincount <= 0) return SendClientMessage(playerid,-1,"Error:{FF0000} No admin online");
}
SendClientMessage(playerid,-1,string);
for numbers you use %d not %s
oh yes i forgot about that, but the first value is varchar seccond is int third is varchar again,
thank you tho.
it does get my level but the name is not being set, aswell as the seccond string
Reply
#4

This might be helpful, ripped from admin script

pawn Код:
CMD:admins(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 2)
    {
        SendClientMessageEx(playerid, COLOR_GRAD1, "Admins Online:");
        foreach(new i: Player)
        {
            if(PlayerInfo[i][pAdmin] >= 2 && PlayerInfo[i][pAdmin] <= PlayerInfo[playerid][pAdmin])
            {
                new string[128], tdate[11], thour[9], i_timestamp[3];
                getdate(i_timestamp[0], i_timestamp[1], i_timestamp[2]);
                format(tdate, sizeof(tdate), "%d-%02d-%02d", i_timestamp[0], i_timestamp[1], i_timestamp[2]);
                format(thour, sizeof(thour), "%02d:00:00", hour);
                if(PlayerInfo[playerid][pAdmin] >= 4)
                {
                    if(PlayerInfo[i][pAdmin] == 2)
                    {
                        format(string, sizeof(string), "%s{BFC0C2}: %s (RTH: %d | RT: %d)", GetStaffRank(i), GetPlayerNameEx(i), ReportHourCount[i], ReportCount[i]);
                    }
                    else if(PlayerInfo[i][pAdmin] == 3)
                    {
                        format(string, sizeof(string), "%s{BFC0C2}: %s (RTH: %d | RT: %d)", GetStaffRank(i), GetPlayerNameEx(i), ReportHourCount[i], ReportCount[i]);
                    }
                    else if(PlayerInfo[i][pAdmin] == 4)
                    {
                        format(string, sizeof(string), "%s{BFC0C2}: %s (RTH: %d | RT: %d)", GetStaffRank(i), GetPlayerNameEx(i), ReportHourCount[i], ReportCount[i]);
                    }
                    else if(PlayerInfo[i][pAdmin] == 1337)
                    {
                        format(string, sizeof(string), "%s{BFC0C2}: %s (RTH: %d | RT: %d)", GetStaffRank(i), GetPlayerNameEx(i), ReportHourCount[i], ReportCount[i]);
                    }
                    else if(PlayerInfo[i][pAdmin] == 1338)
                    {
                        format(string, sizeof(string), "%s{BFC0C2}: %s (RTH: %d | RT: %d)", GetStaffRank(i), GetPlayerNameEx(i), ReportHourCount[i], ReportCount[i]);
                    }
                    else if(PlayerInfo[i][pAdmin] == 99998)
                    {
                        format(string, sizeof(string), "%s{BFC0C2}: %s (RTH: %d | RT: %d)", GetStaffRank(i), GetPlayerNameEx(i), ReportHourCount[i], ReportCount[i]);
                    }
                    else if(PlayerInfo[i][pAdmin] == 99999)
                    {
                        format(string, sizeof(string), "%s{BFC0C2}: %s (RTH: %d | RT: %d)", GetStaffRank(i), GetPlayerNameEx(i), ReportHourCount[i], ReportCount[i]);
                    }
                    else
                    {
                        format(string, sizeof(string), "%s{BFC0C2}: %s", GetStaffRank(i), PlayerInfo[i][pAdmin], GetPlayerNameEx(i));
                    }
                }
                else
                {
                    if(PlayerInfo[i][pAdmin] == 2)
                    {
                        format(string, sizeof(string), "%s{BFC0C2}: %s", GetStaffRank(i), GetPlayerNameEx(i));
                    }
                    else if(PlayerInfo[i][pAdmin] == 3)
                    {
                        format(string, sizeof(string), "%s{BFC0C2}: %s", GetStaffRank(i), GetPlayerNameEx(i));
                    }
                    else if(PlayerInfo[i][pAdmin] == 4)
                    {
                        format(string, sizeof(string), "%s{BFC0C2}: %s", GetStaffRank(i), GetPlayerNameEx(i));
                    }
                    else if(PlayerInfo[i][pAdmin] == 1337)
                    {
                        format(string, sizeof(string), "%s{BFC0C2}: %s", GetStaffRank(i), GetPlayerNameEx(i));
                    }
                    else if(PlayerInfo[i][pAdmin] == 1338)
                    {
                        format(string, sizeof(string), "%s{BFC0C2}: %s", GetStaffRank(i), GetPlayerNameEx(i));
                    }
                    else if(PlayerInfo[i][pAdmin] == 99998)
                    {
                        format(string, sizeof(string), "%s{BFC0C2}: %s", GetStaffRank(i), GetPlayerNameEx(i));
                    }
                    else if(PlayerInfo[i][pAdmin] == 99999)
                    {
                        format(string, sizeof(string), "%s{BFC0C2}: %s", GetStaffRank(i), GetPlayerNameEx(i));
                    }
                    else
                    {
                        format(string, sizeof(string), "%s{BFC0C2}: %s", PlayerInfo[i][pAdmin], GetPlayerNameEx(i));
                    }
                }
                if(PlayerInfo[i][pBanAppealer] == 1)
                {
                    strcat(string, " [BA]");
                }
                if(PlayerInfo[i][pBanAppealer] == 2)
                {
                    strcat(string, " [DOBA]");
                }
                if(PlayerInfo[i][pShopTech] == 1)
                {
                    strcat(string, " [ST]");
                }
                if(PlayerInfo[i][pShopTech] == 2)
                {
                    strcat(string, " [SST]");
                }
                if(PlayerInfo[i][pShopTech] == 3)
                {
                    strcat(string, " [DOCR]");
                }
                if(PlayerInfo[i][pUndercover] == 1)
                {
                    strcat(string, " [UC]");
                }
                if(PlayerInfo[i][pUndercover] == 2)
                {
                    strcat(string, " [DOSO]");
                }
                if(PlayerInfo[i][pFactionModerator] == 1)
                {
                    strcat(string, " [FMOD]");
                }
                if(PlayerInfo[i][pFactionModerator] == 2)
                {
                    strcat(string, " [DOFM]");
                }
                if(PlayerInfo[i][pGangModerator] == 1)
                {
                    strcat(string, " [GMOD]");
                }
                if(PlayerInfo[i][pGangModerator] == 2)
                {
                    strcat(string, " [DOGM]");
                }
                if(PlayerInfo[i][pTogReports])
                {
                    strcat(string, " [SPEC MODE]");
                }
                if(PlayerInfo[i][pPR] == 1)
                {
                    strcat(string, " [PR]");
                }
                if(PlayerInfo[i][pPR] == 2)
                {
                    strcat(string, " [DOPR]");
                }
                if(PlayerInfo[i][pHR] >= 1)
                {
                    strcat(string, "
"
);
                }
                if(PlayerInfo[i][pAP] >= 1)
                {
                    strcat(string, " [AP]");
                }
                if(PlayerInfo[i][pSecurity] >= 1)
                {
                    strcat(string, " [Sec]");
                }
                SendClientMessageEx(playerid, COLOR_GRAD2, string);
            }
        }
    }
    else
    {
        SendClientMessageEx(playerid, COLOR_GRAD1, "If you have questions regarding gameplay or the server, use /requesthelp or /newb");
        SendClientMessageEx(playerid, COLOR_GRAD1, "If you see a player breaking rules or need Admin assistance, use /report");
    }
    return 1;
}
Reply
#5

pawn Код:
stock GetStaffRank(playerid)
{
    new string[42];

    if(PlayerInfo[playerid][pHelper] > 0)
    {
        switch(PlayerInfo[playerid][pHelper])
        {
            case 1: format(string, sizeof(string), "{6495ED}Helper{FFFFFF}");
            case 2: format(string, sizeof(string), "{00FFFF}Community Advisor{FFFFFF}");
            case 3: format(string, sizeof(string), "{00FFFF}Senior Advisor{FFFFFF}");
            case 4: format(string, sizeof(string), "{00FFFF}Chief Advisor{FFFFFF}");
        }
    }
    else if(PlayerInfo[playerid][pAdmin] == 1)
    {
        switch(PlayerInfo[playerid][pSMod])
        {
            case 0: format(string, sizeof(string), "{FFFF00}Server Moderator{FFFFFF}");
            case 1: format(string, sizeof(string), "{FFFF00}Senior Server Moderator{FFFFFF}");
        }
    }
    else if(PlayerInfo[playerid][pAdmin] > 1)
    {
        switch(PlayerInfo[playerid][pAdmin])
        {
            case 2: format(string, sizeof(string), "{00FF00}Junior Administrator{FFFFFF}");
            case 3: format(string, sizeof(string), "{00FF00}General Administrator{FFFFFF}");
            case 4: format(string, sizeof(string), "{F4A460}Senior Administrator{FFFFFF}");
            case 1337: format(string, sizeof(string), "{FF0000}Head Administrator{FFFFFF}");
            case 1338: format(string, sizeof(string), "{298EFF}Lead Head Administrator{FFFFFF}");
            case 99998: format(string, sizeof(string), "{298EFF}Executive Administrator{FFFFFF}");
            case 99999: format(string, sizeof(string), "{FF00EA}Server Director{FFFFFF}");
            default: format(string, sizeof(string), "Undefined Administrator (%d)", PlayerInfo[playerid][pAdmin]);
        }
    }
    return string;
}
Reply
#6

Already have something like that :P

Код:
stock AdminsLevelS(playerid)
{
new GetAdminLevel[50];
new lvl = pData[playerid][Admin];
switch(lvl)
{
case 1: GetAdminLevel = "Trial Admin";
case 2: GetAdminLevel = "General administrator";
case 3: GetAdminLevel = "Senior Administrator";
case 4: GetAdminLevel = "Lead Administrator";
case 5: GetAdminLevel = "Head Administrator";
case 6: GetAdminLevel = "Executive Administrator";
}
return GetAdminLevel;
}
Reply
#7

I've also tried this ;
Код:
CMD:admins(playerid)
{
	new GetAName[MAX_PLAYERS][MAX_PLAYER_NAME], admincount = 0, string[128];
	for(new i, j = GetMaxPlayers(); i != j; i++)
    {
    	if(pData[playerid][Admin] >= 1 && IsPlayerConnected(i)) admincount ++;
    	format(string,sizeof(string),"{FF00FF}%s : %d - %s",GetAName[i],pData[playerid][Admin],Adminlevels(i));
		if(admincount <= 0) return SendClientMessage(playerid,-1,"Error:{FF0000} No admin online");
	}
	SendClientMessage(playerid,-1,string);
	return 1;
}
Unfortunately no luck.
Reply
#8

try
Код:
CMD:admins(playerid)
{
	new GetAName[MAX_PLAYERS][MAX_PLAYER_NAME], admincount = 0, string[128];
	for(new i, j = GetMaxPlayers(); i != j; i++)
    {
    	if(pData[playerid][Admin] >= 1 && IsPlayerConnected(i))
		{
			admincount ++;
			format(string,sizeof(string),"{FF00FF}%s : %d - %s",GetAName[i],pData[playerid][Admin],AdminsLevelS(i));
		}
		else if(admincount <= 0)
		{
			SendClientMessage(playerid,-1,"Error:{FF0000} No admin online");
			return 1;
		}
	}
	SendClientMessage(playerid,-1,string);
	return 1;
}
Reply
#9

partly works, GetAName[i] does not tho, its not getting my name and posting it.
Reply
#10

try this?
Код:
CMD:admins(playerid)
{
    new GetAName[MAX_PLAYERS][MAX_PLAYER_NAME];
    GetPlayerName(i, GetAName, sizeof(GetAName));
	new admincount = 0;
	new string[128];
	for(new i, j = GetMaxPlayers(); i != j; i++)
    {
    	if(pData[playerid][Admin] >= 1 && IsPlayerConnected(i))
		{
			admincount ++;
			format(string,sizeof(string),"{FF00FF}%s : %d - %s",GetAName,pData[playerid][Admin],AdminsLevelS(i));
		}
		else if(admincount <= 0)
		{
			SendClientMessage(playerid,-1,"Error:{FF0000} No admin online");
			return 1;
		}
	}
	SendClientMessage(playerid,-1,string);
	return 1;
}
Reply


Forum Jump:


Users browsing this thread: 6 Guest(s)