SA-MP Forums Archive
Ayuda > /Admins - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: Ayuda > /Admins (/showthread.php?tid=420628)



Ayuda > /Admins - Matthias134 - 05.03.2013

Buenas, tengo el cmd /admins, que configurй para que saliera un nombre especнfico para cada nivel de administraciуn, pero cuando pongo el comando sale que todos son "Admin de prueba".

Serнa una gran ayuda que me dijeran en que fallй.

De antemano gracias.

____


pawn Код:
dcmd_admins(playerid,params[])
    {
        #pragma unused params
        new cantidadadmins, titulo[128], admins[512];
        for(new i=0; i < MAX_PLAYERS; i++)
        {
            if (PlayerInfo[i][Level] >= 1 || IsPlayerAdmin(i)) cantidadadmins++;
        }
        if (cantidadadmins == 0) return SendClientMessage(playerid, red, "Lamentablemente, no hay administradores conectados.");
        format(titulo, 128, "{FFFF00}Administraciуn conectada (C: %d)", cantidadadmins);
        for(new i=0; i < MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i))
            {
                if(PlayerInfo[i][Level] >= 1)
                {
                    new string[256];
                    format(string, sizeof(string), "{66CCCC}%s {FFFFFF}- {66CC00}Nivel %d {FFFFFF}- {00FFFF}Admin de Prueba\n", PlayerName2(i), PlayerInfo[i][Level]);
                    strcat(admins, string);
                }
                else if(PlayerInfo[i][Level] >= 2)
                {
                    new string[256];
                    format(string, sizeof(string), "{66CCCC}%s {FFFFFF}- {66CC00}Nivel %d {FFFFFF}- {CC6600}Moderador\n", PlayerName2(i), PlayerInfo[i][Level]);
                    strcat(admins, string);
                }
                else if(PlayerInfo[i][Level] >= 3)
                {
                    new string[256];
                    format(string, sizeof(string), "{66CCCC}%s {FFFFFF}- {66CC00}Nivel %d {FFFFFF}- {00FF00}Admin\n", PlayerName2(i), PlayerInfo[i][Level]);
                    strcat(admins, string);
                }
                else if(PlayerInfo[i][Level] >= 4)
                {
                    new string[256];
                    format(string, sizeof(string), "{66CCCC}%s {FFFFFF}- {66CC00}Nivel %d {FFFFFF}- {0000FF}Admin Cabecilla\n", PlayerName2(i), PlayerInfo[i][Level]);
                    strcat(admins, string);
                }
                else if(PlayerInfo[i][Level] >= 5)
                {
                    new string[256];
                    format(string, sizeof(string), "{66CCCC}%s {FFFFFF}- {66CC00}Nivel %d {FFFFFF}- {990033}Co Creador\n", PlayerName2(i), PlayerInfo[i][Level]);
                    strcat(admins, string);
                }
                else if(PlayerInfo[i][Level] >= 6)
                {
                    new string[256];
                    format(string, sizeof(string), "{66CCCC}%s {FFFFFF}- {66CC00}Nivel %d {FFFFFF}- {FF0000}Creador\n", PlayerName2(i), PlayerInfo[i][Level]);
                    strcat(admins, string);
                }
                else if(IsPlayerAdmin(i))
                {
                    new string[256];
                    format(string, sizeof(string), "{66CCCC}%s {FFFFFF}- {66CC00}Nivel %d {FFFFFF}- {FF0000}Admin RCON\n", PlayerName2(i), PlayerInfo[i][Level]);
                    strcat(admins, string);
                }
                ShowPlayerDialog(playerid, DIALOGO_NULL, DIALOG_STYLE_MSGBOX, titulo, admins, "Aceptar", "" );
            }
        }
        return 1;
    }



Respuesta: Ayuda > /Admins - Daniel_Ruiz - 05.03.2013

En ves de esto
pawn Код:
if(PlayerInfo[i][Level] >= 1)
usa esto en todos

pawn Код:
if(PlayerInfo[i][Level] == 1)
Claro esta con diferente numero


Respuesta: Ayuda > /Admins - [J]ulian - 05.03.2013

Usa ==. O bien, sуlo if. Ya que si usas else y >= se saltearб los otros porque el primero se cumple.


Respuesta: Ayuda > /Admins - Glimma - 05.03.2013

Quote:
Originally Posted by Daniel_Ruiz
Посмотреть сообщение
En ves de esto
pawn Код:
if(PlayerInfo[i][Level] >= 1)
usa esto en todos

pawn Код:
if(PlayerInfo[i][Level] = 1)
Claro esta con diferente numero
No es un signo igual, son dos signos igual, porque si es uno sуlo sirve para asignarle un valor a la variable y dбrsela a un jugador. Prueba cambiar los >= por ==, y tambiйn prueba usando un return 1; debajo de cada strcat(admins, string);


Respuesta: Ayuda > /Admins - Daniel_Ruiz - 05.03.2013

Quote:
Originally Posted by DeadSkyTkb
Посмотреть сообщение
No es un signo igual, son dos signos igual, porque si es uno sуlo sirve para asignarle un valor a la variable y dбrsela a un jugador. Prueba cambiar los >= por ==, y tambiйn prueba usando un return 1; debajo de cada strcat(admins, string);
Exacto

Oye Recuerda Siempre >= esto indica Mayor o Igual y Todos lo tenian.


Respuesta: Ayuda > /Admins - xSDx - 05.03.2013

Quote:
Originally Posted by Daniel_Ruiz
Посмотреть сообщение
En ves de esto
pawn Код:
if(PlayerInfo[i][Level] >= 1)
usa esto en todos

pawn Код:
if(PlayerInfo[i][Level] = 1)
Claro esta con diferente numero
si usted usa asн el compilador tirara error ya que usted esta asignando un valor en una condiciуn cosa que es imposible, para comparar se usa "==".

Saludos


Respuesta: Ayuda > /Admins - JustBored - 05.03.2013

Quote:
Originally Posted by Daniel_Ruiz
Посмотреть сообщение
Exacto

Oye Recuerda Siempre >= esto indica Menor o Igual y Todos lo tenian.
Te estбs equivocando
>= Left is greater than or equal to Right if (Left >= Right)
https://sampwiki.blast.hk/wiki/Control_Structures#Operators


Respuesta: Ayuda > /Admins - Glimma - 05.03.2013

Quote:
Originally Posted by Daniel_Ruiz
Посмотреть сообщение
Exacto

Oye Recuerda Siempre >= esto indica Menor o Igual y Todos lo tenian.
No, >= significa mayor o igual, hay que cambiarlo a == que al usarlo como condicionante el sistema pondrб la condiciуn que si la variable que tiene asignada a un jugador es igual a (==) se ejecute X cуdigo o funciуn.

Revisa en tu ejemplo, en tu ejemplo pusiste sуlo un signo igual (=), que se usa para darle un valor a una variable y asignбrsela al jugador, y no se puede usar en una condicionante, por ejemplo, se puede usar asн:

pawn Код:
zcmd(quieroadmin, playerid, params[])
{
    PlayerInfo[playerid][Level] = 1;
    return 1;
}



Respuesta: Ayuda > /Admins - Daniel_Ruiz - 05.03.2013

Ya dejen de regaсarme xd Creo que el ya entendio.


Respuesta: Ayuda > /Admins - Matthias134 - 05.03.2013

La soluciуn efectiva que obtuve fue cambiar >= por ==, muchas gracias por la ayuda.