[Ajuda] Dialog
#1

Estou com problemas. Quebrando cabeзa, gostaria de uma soluзгo e uma explicaзгo de alguйm.

O comando funciona. Porйm aparece apenas um administrador quando se tem mais de um online. E alйm disso, nгo estб aparecendo se estб jogando ou trabalhando.

Код:
	COMMAND:admins(playerid, params[])
	{
		new ss[2500];
		for(new i; i < MAX_PLAYERS; i++)
		{
			new LevelAdmin[128], StatusAdmin[128];
			// Trabalhando, Jogando ou Ausente
			if(PlayerInfo[i][Trabalhando] == 1)
			{
				LevelAdmin = "Trabalhando";
			}
			if(PlayerInfo[i][Trabalhando] == 0)
			{
				StatusAdmin = "Jogando";
			}
			if(PlayerInfo[i][Trabalhando] == 2)
			{
				StatusAdmin = "Ausente";
			}
			//
			if(PlayerInfo[i][Administrador] == 1)
			{
				LevelAdmin = "Moderador [Level: 1]";
			}
			if(PlayerInfo[i][Administrador] == 2)
			{
				LevelAdmin = "Administrador [Level: 2]";
			}
			if(PlayerInfo[i][Administrador] == 3)
			{
				LevelAdmin = "Administrador - Master [Level: 3]";
			}
			if(PlayerInfo[i][Administrador] == 4)
			{
				LevelAdmin = "Administrador - Sub-Dono [Level: 4]";
			}
			if(PlayerInfo[i][Administrador] == 5)
			{
				LevelAdmin = "Administrador - Dono [Level: 5]";
			}
			if(IsPlayerConnected(i))
			{
				if(PlayerInfo[i][Administrador] > 5)
				{
					GetPlayerName(i, Jogador, sizeof(Jogador));
					format(ss, sizeof(ss), "%s:  %s {eb6565} (%s)", Jogador, LevelAdmin, StatusAdmin);
				}
			}
		}
		if(ss[0] == EOS) format(ss, sizeof(ss), "Nenhum admin online");
		ShowPlayerDialog(playerid, 1443, DIALOG_STYLE_MSGBOX, "Administradores online:", ss, "Fechar", "");
		return true;
	}
Reply
#2

Код:
COMMAND:admins(playerid, params[])
{
	new ss[2500];
	for(new i; i < MAX_PLAYERS; i++)
	{
		new LevelAdmin[128], StatusAdmin[128];
		// Trabalhando, Jogando ou Ausente
		if(PlayerInfo[i][Trabalhando] == 1)
		{
			LevelAdmin = "Trabalhando";
		}
		if(PlayerInfo[i][Trabalhando] == 0)
		{
			StatusAdmin = "Jogando";
		}
		if(PlayerInfo[i][Trabalhando] == 2)
		{
			StatusAdmin = "Ausente";
		}
		//
		if(PlayerInfo[i][Administrador] == 1)
		{
			LevelAdmin = "Moderador [Level: 1]";
		}
		if(PlayerInfo[i][Administrador] == 2)
		{
			LevelAdmin = "Administrador [Level: 2]";
		}
		if(PlayerInfo[i][Administrador] == 3)
		{
			LevelAdmin = "Administrador - Master [Level: 3]";
		}
		if(PlayerInfo[i][Administrador] == 4)
		{
			LevelAdmin = "Administrador - Sub-Dono [Level: 4]";
		}
		if(PlayerInfo[i][Administrador] == 5)
		{
			LevelAdmin = "Administrador - Dono [Level: 5]";
		}
		if(IsPlayerConnected(i))
		{
			if(PlayerInfo[i][Administrador] > 5)
			{
				GetPlayerName(i, Jogador, sizeof(Jogador));
				format(ss, sizeof(ss), "%s\n%s:  %s {eb6565} (%s)", ss, Jogador, LevelAdmin, StatusAdmin);
			}
		}
	}
	if(ss[0] == EOS) format(ss, sizeof(ss), "Nenhum admin online");
	ShowPlayerDialog(playerid, 1443, DIALOG_STYLE_MSGBOX, "Administradores online:", ss, "Fechar", "");
	return true;
}
Faltava considerar o valor antigo da string.
Reply
#3

a funзгo format limpa automaticamente quando usada logo sempre ira mostrar o ultimo id de admin o mais alto, entгo vocк deve utilizar strcat junto do format..
PHP код:
COMMAND:admins(playeridparams[])
{
    new 
ss[2500], cmdString[2500], LevelAdmin[128], StatusAdmin[128];
    for(new 
iMAX_PLAYERSi++)
    {
        if(
IsPlayerConnected(i))
        {
        
// Trabalhando, Jogando ou Ausente
            
switch(PlayerInfo[i][Trabalhando])
            {
                case 
0StatusAdmin "Jogando";
                case 
1StatusAdmin "Trabalhando";
                case 
3StatusAdmin "Ausente";
            }
            switch(
PlayerInfo[i][Administrador])
            {
                case 
1LevelAdmin "Moderador [Level: 1]";
                case 
2LevelAdmin "Administrador [Level: 2]";
                case 
3LevelAdmin "Administrador - Master [Level: 3]";
                case 
4LevelAdmin "Administrador - Sub-Dono [Level: 4]";
                case 
5LevelAdmin "Administrador - Dono [Level: 5]";
            }
            
GetPlayerName(iJogadorsizeof(Jogador));
            
format(sssizeof(ss), "%s:  %s {eb6565} (%s)"JogadorLevelAdminStatusAdmin);
            
strcat(cmdStringsssizeof(cmdString));
        }
    }
    if(
cmdString[0] == EOSformat(cmdStringsizeof(cmdString), "Nenhum admin online");
    
ShowPlayerDialog(playerid1443DIALOG_STYLE_MSGBOX"Administradores online:"cmdString"Fechar""");
    return 
true;

Reply
#4

Poderia explicar melhor?
Reply
#5

pawn Код:
COMMAND:admins(playerid) {
    new str[250], admname[40], status[15], nome[21], count = 0;
    for(new i = 0; i < GetPlayerPoolSize(); i++) {
        if(PlayerInfo[i][Administrador] > 0) {
            switch(PlayerInfo[i][Administrador]) {
                case 1: admname = "Moderador [Level: 1]";
                case 2: admname = "Administrador [Level: 2]";
                case 3: admname = "Administrador - Master[Level: 2]";
                case 4: admname = "Administrador - Sub-Dono [Level: 2]";
                case 5: admname = "Administrador - Dono [Level: 2]";
            }

            switch(PlayerInfo[i][Trabalhando]) {
                case 0: status = "Jogando";
                case 1: status = "Trabalhando";
                case 2: status = "Ausente ";
            }
        }
        count ++;
        GetPlayerName(i, nome, 21);
        format(str, sizeof(str), "%s [%i] %s {eb6565}(%s)\n", nome, i, admname, status);
    }
    if(count == 0)
        format(str, sizeof(str), "Nenhum admin online");

    ShowPlayerDialog(playerid, 1443, DIALOG_STYLE_MSGBOX, "Administradores online:", str, "Fechar", "");
    return true;
}
Vocк provavelmente era o admin level 5 e os outros level 4, sу iria aparecer o seu.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)