[Ajuda] /admins
#1

Queria que aprecesse a seguinte mensagem quando nгo estivesse admin on "Nenhum administador esta conectado no momento".


eu coloquei um elsena chave q fecha OnPlayerConnected(i) sу que aparece muitas mensagens, pls me ajudem.

pawn Код:
CMD:admins(playerid, params[]){
    new str[100], aNome[MAX_PLAYER_NAME];
    if(IsPlayerConnected(playerid))
    {
        SendClientMessage(playerid, -1, "~> {13C910}Administradores conectados no momento:");
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i)){
                if(Admin[i] == 1 || IsPlayerAdmin(i))
                {
                    GetPlayerName(i, aNome,MAX_PLAYER_NAME);
                    format(str, sizeof(str), "~> {FFFFFF}%s [ID: %d]", aNome, i);
                    SendClientMessage(playerid, Green, str);
                }
            }
        }
    }
    return 1;
}
Reply
#2

Adapte ao seu GameMode:

pawn Код:
CMD:admins(playerid, params[])
{
    new count, bool:online, string[128], name[24];
    for(new i,g=GetMaxPlayers(); i < g; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(1 <= pAdminLevel[i]/*Change this var to yours*/ <= 99999)
            {
                    online = true;
                    GetPlayerName(i, name, sizeof(name));
                    format(string,sizeof(string), "%s %s [%s],",string, name, AdminRank);
                    count++;
                    if(count == 4)
                    {
                        format(string,sizeof(string),"Admins: %s",string);
                        SendClientMessage(playerid, -1, string);
                        string = "";
                        count = 0;
                    }

            }
        }
    }
    if(count)
    {
        format(string,sizeof(string),"Admins: %s",string);
        SendClientMessage(playerid, -1, string);
    }
    if(!online) SendClientMessage(playerid, -1,"Nгo tem nenhum admin online");
    return 1;
}
Reply
#3

pawn Код:
CMD:admins(playerid, params[])
{
    new str[2000], aNome[MAX_PLAYER_NAME], Bool:an=false;
    if(IsPlayerConnected(playerid))
    {
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(!IsPlayerConnected(i)) continue;
            if(!Admin[i] && !IsPlayerAdmin(i)) continue;
            if(an == false)
            {
                an = true;
                SendClientMessage(playerid, -1, "~> {13C910}Administradores conectados no momento:");
            }
            GetPlayerName(i, aNome,MAX_PLAYER_NAME);
            format(str, sizeof(str), "~> {FFFFFF}%s [ID: %d]", aNome, i);
            SendClientMessage(playerid, Green, str);
        }
        if(an == false)
            return SendClientMessage(playerid, -1, "~> {13C910}Nenhum administrador conectado no momento.");
    }
    return 1;
}
Reply
#4

PHP код:
CMD:admins(playeridparams[])
{
    new 
str[100], aNome[MAX_PLAYER_NAME];
    if(
IsPlayerConnected(playerid))
    {
        
SendClientMessage(playerid, -1"~> {13C910}Administradores conectados no momento:");
        for(new 
0MAX_PLAYERSi++)
        {
            if(
IsPlayerConnected(i))
            {
                if(
Admin[i] == || IsPlayerAdmin(i))
                {
                    
GetPlayerName(iaNome,MAX_PLAYER_NAME);
                    
format(strsizeof(str), "~> {FFFFFF}%s [ID: %d]"aNomei);
                    
SendClientMessage(playeridGreenstr);
                   } else {
                       
SendClientMessage(playeridGreen"Nгo tem nenhum admin online");
                }
            }
        }
    }
    return 
1;

Reply
#5

Quote:
Originally Posted by Cleyson
Посмотреть сообщение
PHP код:
CMD:admins(playeridparams[])
{
    new 
str[100], aNome[MAX_PLAYER_NAME];
    if(
IsPlayerConnected(playerid))
    {
        
SendClientMessage(playerid, -1"~> {13C910}Administradores conectados no momento:");
        for(new 
0MAX_PLAYERSi++)
        {
            if(
IsPlayerConnected(i))
            {
                if(
Admin[i] == || IsPlayerAdmin(i))
                {
                    
GetPlayerName(iaNome,MAX_PLAYER_NAME);
                    
format(strsizeof(str), "~> {FFFFFF}%s [ID: %d]"aNomei);
                    
SendClientMessage(playeridGreenstr);
                   } else {
                       
SendClientMessage(playeridGreen"Nгo tem nenhum admin online");
                }
            }
        }
    }
    return 
1;

Cara essa parte vai retornar a mensagem se o player que digitar o cmd nгo for admin '-'

pawn Код:
else {
                    SendClientMessage(playerid, Green, "Nгo tem nenhum admin online");
                }
Reply
#6

Eu estava olhando aqui e falei, tambйm tenho que colocar isso, mais nenhum da muito certo com meus cуdigos, alguйm pode me ajudar a colocar? Agradeзo.

Cуdigos:
Код:
    if (strcmp(cmd, "/admins", true) == 0)
	{
        if(IsPlayerConnected(playerid))
	    {
			SendClientMessage(playerid,COLOR_YELLOW,"Admins Online:");
			for(new i = 0; i < MAX_PLAYERS; i++)
			{
				if(IsPlayerConnected(i))
				{
				    if(PlayerInfo[i][pAdmin] >= 1)
				    {
                        GetPlayerName(i,sendername,sizeof(sendername));
						if(adminstatus[i] == 0)
						{
						   	if(PlayerInfo[i][pAdmin] <= 1)
		                	{
	                   		    format(string,sizeof(string), "Moderador: %s [Trabalhando]",sendername);
	                  		    SendClientMessage(playerid,COLOR_WHITE,string);
	                  		}
		                 	else if(PlayerInfo[i][pAdmin] >= 2)
		                	{
                                format(string,sizeof(string), "Admin [%d]: %s [Trabalhando]",PlayerInfo[i][pAdmin],sendername);
                                SendClientMessage(playerid,COLOR_WHITE,string);
                            }
                        }
						if(adminstatus[i] == 1)
						{
						   	if(PlayerInfo[i][pAdmin] <= 1)
		                	{
	                   		    format(string,sizeof(string), "Moderador: %s [Jogando]",sendername);
                                SendClientMessage(playerid,COLOR_WHITE,string);
	                  		}
		                 	else if(PlayerInfo[i][pAdmin] >= 2)
		                	{
                                format(string, sizeof(string), "Admin [%d]: %s [Jogando]",PlayerInfo[i][pAdmin],sendername);
                                SendClientMessage(playerid,COLOR_WHITE,string);
                            }
                        }
					}
				}
			}
		}
		return 1;
	}
Reply
#7

Quote:
Originally Posted by Kimossab
Посмотреть сообщение
pawn Код:
CMD:admins(playerid, params[])
{
    new str[125], aNome[MAX_PLAYER_NAME], Bool:an=false;
    if(!IsPlayerConnected(playerid)) return 1;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(!IsPlayerConnected(i)) continue;
        if(!Admin[i] && !IsPlayerAdmin(i)) continue;
        if(an == false)
        {
            an = true;
            SendClientMessage(playerid, -1, "~> {13C910}Administradores conectados no momento:");
        }
        GetPlayerName(i, aNome,MAX_PLAYER_NAME);
        format(str, sizeof(str), "~> {FFFFFF}%s [ID: %d]", aNome, i);
        SendClientMessage(playerid, Green, str);
    }
    if(an == false)
        return SendClientMessage(playerid, -1, "~> {13C910}Nenhum administrador conectado no momento.");
}
Istofarб o que tu queres na perfeiзгo. Sу estou a fazer quote porque como jб foi dito nao sao necessбrias 2000 celulas, eu й que estava a pensar noutra coisa quando fiz as variaveis -.- sou mesmo estupido. Este ^jб estб corrigido.

Quote:
Originally Posted by PT
Посмотреть сообщение
Nao й necessario ver 2x se o player esta conectado ( IsPlayerConnected(i) ).
Se formos por aн a variavel count tambem podia ser uma variavel booleana. Seria mais eficiente.
Reply
#8

Quote:
Originally Posted by PT
Посмотреть сообщение
Nao й necessario ver 2x se o player esta conectado ( IsPlayerConnected(i) ).
Й um mйtodo, eu acho que tu nгo leste bem a condiзгo

if(IsPlayerConnected(i) && Admin[i] => 1 || IsPlayerConnected(i) && IsPlayerAdmin(i))

Ele nгo vai ver se o jogador estб conectado duas vezes, ele sу farб isso caso a primeira condiзгo seja falsa e seria incorreto fazer desta forma:

if(IsPlayerConnected(i) && Admin[i] => || IsPlayerAdmin(i))

Claro que poderia fazer de outra forma.

Quote:
Originally Posted by Kimossab
Посмотреть сообщение
Istofarб o que tu queres na perfeiзгo. Sу estou a fazer quote porque como jб foi dito nao sao necessбrias 2000 celulas, eu й que estava a pensar noutra coisa quando fiz as variaveis -.- sou mesmo estupido. Este ^jб estб corrigido.
Isso acontece a todos xD

Quote:
Originally Posted by Kimossab
Посмотреть сообщение
Se formos por aн a variavel count tambem podia ser uma variavel booleana. Seria mais eficiente.
Sim, eu na altura coloquei o count como inteiro porque nгo fazia sentido termos uma booleana ser setada vбrias vezes verdadeira xD
Reply
#9

Quote:
Originally Posted by BlueX
Посмотреть сообщение
Й um mйtodo, eu acho que tu nгo leste bem a condiзгo

if(IsPlayerConnected(i) && Admin[i] => 1 || IsPlayerConnected(i) && IsPlayerAdmin(i))

Ele nгo vai ver se o jogador estб conectado duas vezes, ele sу farб isso caso a primeira condiзгo seja falsa e seria incorreto fazer desta forma:

if(IsPlayerConnected(i) && Admin[i] => || IsPlayerAdmin(i))

Sim, eu na altura coloquei o count como inteiro porque nгo fazia sentido termos uma booleana ser setada vбrias vezes verdadeira xD
Por acaso se a primeira condiзгo for falsa entao ele verifica 2 vezes se o jogador estб conectado, imagina que o jogador nao estб realmente conectado, vai verificar as 2 para nada e verifica 2 vezes se estб conectado.

Sу й incorreto fazer desta forma ( if(IsPlayerConnected(i) && Admin[i] => || IsPlayerAdmin(i)) ) porque te esqueceste dos parentises.

if(IsPlayerConnected(i) && (Admin[i] => 0 || IsPlayerAdmin(i)))

estб completamente correto. Se nгo estiver conectado para logo a verificaзгo, se estiver verifica se й admin nas variбveis ou se й admin de rcon. Isso й exatamente o mesmo que isto:

if(IsPlayerConnected(i))
{
if(Admin[i] => 0 || IsPlayerAdmin(i))
{
....
}
}
Reply
#10

Quote:
Originally Posted by BlueX
Посмотреть сообщение
Й um mйtodo, eu acho que tu nгo leste bem a condiзгo

if(IsPlayerConnected(i) && Admin[i] => 1 || IsPlayerConnected(i) && IsPlayerAdmin(i))

Ele nгo vai ver se o jogador estб conectado duas vezes, ele sу farб isso caso a primeira condiзгo seja falsa e seria incorreto fazer desta forma:

if(IsPlayerConnected(i) && Admin[i] => || IsPlayerAdmin(i))

Claro que poderia fazer de outra forma.



Isso acontece a todos xD



Sim, eu na altura coloquei o count como inteiro porque nгo fazia sentido termos uma booleana ser setada vбrias vezes verdadeira xD
Quote:
Originally Posted by Kimossab
Посмотреть сообщение
Por acaso se a primeira condiзгo for falsa entao ele verifica 2 vezes se o jogador estб conectado, imagina que o jogador nao estб realmente conectado, vai verificar as 2 para nada e verifica 2 vezes se estб conectado.

Sу й incorreto fazer desta forma ( if(IsPlayerConnected(i) && Admin[i] => || IsPlayerAdmin(i)) ) porque te esqueceste dos parentises.

if(IsPlayerConnected(i) && (Admin[i] => 0 || IsPlayerAdmin(i)))

estб completamente correto. Se nгo estiver conectado para logo a verificaзгo, se estiver verifica se й admin nas variбveis ou se й admin de rcon. Isso й exatamente o mesmo que isto:

if(IsPlayerConnected(i))
{
if(Admin[i] => 0 || IsPlayerAdmin(i))
{
....
}
}
BlueX quanto a verificacao, o Kimossab ja te respondeu porque eu disse que sera verificado 2x, e sim a verificaзao dele esta melhor.

Kimossab esqueзe a ideia da Booleana, ali й melhor mesmo um inteiro, eu entendo o porque de falares na bool, pode ser que ate quem use o comando verifique quantos adm's tem online, algo do genero.

Embora bool tbm funcione ali.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)