[Ajuda] Dialog.
#1

Olб,

Eu queria uma ajuda para transferir o /admins para DIALOG. Como eu ainda estou aprendendo, peguei uma GM e comecei a editar nela, porйm o estilo que ela tinha nгo era tipo "aInfo[playerid][Admin] => 5", era cada cargo com um desses... ai achei complicado.

Cуdigo do /admins sem o DIALOG:

Код:
	if(!strcmp(cmd, "/admins", true) || !strcmp(cmd, "/mods", true) || !strcmp(cmd, "/administradores", true) || !strcmp(cmd, "/moderadores", true))
	{
	    SendClientMessage(playerid, AZUL_WE, "Administraзгo online:");
        new
			adml, adm, mdr, hlp, crg
		;
        foreach(Player, i)
        {
			if(WE_GetInt(f(i), "AdminL") == 1)
			{
				if(aInfo[i][Oculto] == false)
				{
				    adml ++;
 					format(string, sizeof(string), "{FF1E1E}%s [%d] {FFFFFF}- Cargo: {328E0A}Dono(a)", PlayerName(i), i);
 					SendClientMessage(playerid, VERMELHO_WE, string);
				}
			}
			if(aInfo[i][Admin] == 1 && WE_GetInt(f(i), "AdminL") == 0)
			{
				if(aInfo[i][Oculto] == false)
				{
				    adm ++;
 					format(string, sizeof(string), "{FF1E1E}%s [%d] {FFFFFF}- Cargo: {008bce}Administrador(a)", PlayerName(i), i);
 					SendClientMessage(playerid, VERMELHO_WE, string);
				}
			}
  			if(aInfo[i][Moderador] == 1 && WE_GetInt(f(i), "AdminL") == 0)
			{
				if(aInfo[i][Oculto] == false)
				{
				    mdr ++;
 					format(string, sizeof(string), "{1E90FF}%s [%d] {FFFFFF}- Cargo: {FF8C00}Moderador(a)", PlayerName(i), i);
 					SendClientMessage(playerid, AZUL_WE, string);
				}
			}
   			if(aInfo[i][Ajudante] == 1 && WE_GetInt(f(i), "AdminL") == 0)
			{
				if(aInfo[i][Oculto] == false)
				{
				    hlp ++;
 					format(string, sizeof(string), "{1E90FF}%s [%d] {FFFFFF}- Cargo: {FFFF00}Ajudante", PlayerName(i), i);
 					SendClientMessage(playerid, AZUL_WE, string);
				}
			}
   			if(aInfo[i][Corregedor] == 1 && WE_GetInt(f(i), "AdminL") == 0)
			{
				if(aInfo[i][Oculto] == false)
				{
				    crg ++;
 					format(string, sizeof(string), "{1E90FF}%s [%d] {FFFFFF}- Cargo: {1E90FF}Corregedor(a)", PlayerName(i), i);
 					SendClientMessage(playerid, AZUL_WE, string);
				}
			}
        }
        if(adm == 0 && mdr == 0 && adml == 0 && hlp == 0 && crg == 0) return SendClientMessage(playerid, VERMELHO_WE, "Nenhum membro da administraзгo conectado no momento.");
		return 1;
	}
Exemplo de como eu queria que ficasse ( eu fiz isso, mas sem os cуdigos para pegar nome do Adm e Cargo)


Ficarei grato pelo ajuda
Reply
#2

Veja se й isso que queres,tinha muita coisa desnecessбria nesse cуdigo.
Criei duas funзхes para facilitar sua vida,para nгo ficar fazendo condicional toda hora para verificar o cargo do jogador ou verificar se ele й administrador.
PHP код:
Cargos(playerid)
{
    new 
Str[25];
    if(
WE_GetInt(f(playerid), "AdminL") == 1)
    {
         
Str "Dono";
    }
    else if(
aInfo[playerid][Admin] == && WE_GetInt(f(playerid), "AdminL") == 0
    {
        
Str "Administrador";
    }
    else if(
aInfo[playerid][Moderador] == && WE_GetInt(f(playerid), "AdminL") == 0)
    {        
        
Str "Moderador";
    }
    else if(
aInfo[playerid][Ajudante] == && WE_GetInt(f(playerid), "AdminL") == 0)
    {        
        
Str "Ajudante";
    }
    else if(
aInfo[playerid][Corregedor] == && WE_GetInt(f(playerid), "AdminL") == 0)
    {
        
Str "Corregedor";
    }
    return 
Str;
}    
IsAdmin(playerid)
{
    if((
WE_GetInt(f(playerid), "AdminL") == 1) || aInfo[playerid][Admin] == && WE_GetInt(f(playerid), "AdminL") == || aInfo[playerid][Moderador] == && WE_GetInt(f(playerid), "AdminL") == || aInfo[playerid][Ajudante] == && WE_GetInt(f(playerid), "AdminL") == || aInfo[playerid][Corregedor] == && WE_GetInt(f(playerid), "AdminL") == 0)  
    return 
true;
    else return 
false;
}    
    
if(!
strcmp(cmd"/admins"true) || !strcmp(cmd"/mods"true) || !strcmp(cmd"/administradores"true) || !strcmp(cmd"/moderadores"true))
{
    
SendClientMessage(playeridAZUL_WE"Administraзгo online:");
    new
    
adml,Str[80];
    
    foreach(
Playeri)
    {
        if(
IsAdmin(playerid))
        {
            if(
aInfo[i][Oculto] == false)
            {
                
adml ++;
                
format(stringsizeof(string), "{FF1E1E}%s [%d] {FFFFFF}- Cargo: {328E0A}%s"PlayerName(i), i,Cargos(i));
                
strcat(Str,string);
            }
        }
    }
    
ShowPlayerDialog(playerid4444DIALOG_STYLE_TABLIST"Administradores",Str,"Ok","");
    if(
adm1 == 0SendClientMessage(playeridVERMELHO_WE"Nenhum membro da administraзгo conectado no momento.");
    return 
1;

Reply
#3

Obrigado @FerrariL, pelas funзхes que vocк ofereceu <3 Agradeзo de coraзгo.

O cуdigo do /admins deu certo, porйm in-game nгo.

Eu entrei com outra conta ao mesmo tempo e quando dei /admins... ficava em apenas uma linha os dois adm's.
Reply
#4

Troque por isto :
PHP код:
if(!strcmp(cmd"/admins"true) || !strcmp(cmd"/mods"true) || !strcmp(cmd"/administradores"true) || !strcmp(cmd"/moderadores"true))
{
    
SendClientMessage(playeridAZUL_WE"Administraзгo online:");
    new
    
adml,Str[80];
    
    foreach(
Playeri)
    {
        if(
IsAdmin(playerid))
        {
            if(
aInfo[i][Oculto] == false)
            {
                
adml ++;
                
format(stringsizeof(string), "{FF1E1E}%s [%d] {FFFFFF}- Cargo: {328E0A}%s\n"PlayerName(i), i,Cargos(i));
                
strcat(Str,string);
            }
        }
    }
    
ShowPlayerDialog(playerid4444DIALOG_STYLE_TABLIST"Administradores",Str,"Ok","");
    if(
adm1 == 0SendClientMessage(playeridVERMELHO_WE"Nenhum membro da administraзгo conectado no momento.");
    return 
1;

Reply
#5

Agora nгo mostra mais o cargo do adm
Reply
#6

Nгo,vocк tem que usar o cуdigo que te passei,vocк vai manter as funзхes e trocar sу o comando.
Sistema completo :
PHP код:
Cargos(playerid)
{
    new 
Str[25];
    if(
WE_GetInt(f(playerid), "AdminL") == 1)
    {
         
Str "Dono";
    }
    else if(
aInfo[playerid][Admin] == && WE_GetInt(f(playerid), "AdminL") == 0
    {
        
Str "Administrador";
    }
    else if(
aInfo[playerid][Moderador] == && WE_GetInt(f(playerid), "AdminL") == 0)
    {        
        
Str "Moderador";
    }
    else if(
aInfo[playerid][Ajudante] == && WE_GetInt(f(playerid), "AdminL") == 0)
    {        
        
Str "Ajudante";
    }
    else if(
aInfo[playerid][Corregedor] == && WE_GetInt(f(playerid), "AdminL") == 0)
    {
        
Str "Corregedor";
    }
    return 
Str;
}    

IsAdmin(playerid)
{
    if((
WE_GetInt(f(playerid), "AdminL") == 1) || aInfo[playerid][Admin] == && WE_GetInt(f(playerid), "AdminL") == || aInfo[playerid][Moderador] == && WE_GetInt(f(playerid), "AdminL") == || aInfo[playerid][Ajudante] == && WE_GetInt(f(playerid), "AdminL") == || aInfo[playerid][Corregedor] == && WE_GetInt(f(playerid), "AdminL") == 0)  
    return 
true;
    else return 
false;
}    
    
if(!
strcmp(cmd"/admins"true) || !strcmp(cmd"/mods"true) || !strcmp(cmd"/administradores"true) || !strcmp(cmd"/moderadores"true))
{
    
SendClientMessage(playeridAZUL_WE"Administraзгo online:");
    new
    
adml,Str[80];
    
    foreach(
Playeri)
    {
        if(
IsAdmin(playerid))
        {
            if(
aInfo[i][Oculto] == false)
            {
                
adml ++;
                
format(stringsizeof(string), "{FF1E1E}%s [%d] {FFFFFF}- Cargo: {328E0A}%s\n"PlayerName(i), i,Cargos(i));
                
strcat(Str,string);
            }
        }
    }
    
ShowPlayerDialog(playerid4444DIALOG_STYLE_TABLIST"Administradores",Str,"Ok","");
    if(
adm1 == 0SendClientMessage(playeridVERMELHO_WE"Nenhum membro da administraзгo conectado no momento.");
    return 
1;

Reply
#7

Estб completo o Sistema ^^, segue a print:

Reply
#8

Aumente o nъmero de strings de
pawn Код:
Str[80];
para
pawn Код:
Str[180];
Reply
#9

Resolvido o problema das linhas, mas agora surgiu outro problema :/

Eu removi o cargo do mesmo e mesmo assim ele ainda aparece no /admins, segue a print

Reply
#10

Veja agora :
PHP код:
IsAdmin(playerid)
{
    if((
WE_GetInt(f(playerid), "AdminL") == 1) || aInfo[playerid][Admin] == 1  || aInfo[playerid][Moderador] == || aInfo[playerid][Ajudante] == || aInfo[playerid][Corregedor] == 1)  
    return 
true;
    else return 
false;

Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)