Operador IF: multiple en una linea
#1

Hola, tengo una pregunta, їHay forma de hacer lo siguiente?

Код:
if(PlayerData[playerid][level] != LEVEL_ADMIN | LEVEL_VIP | LEVEL_MOD)
{
     return 0;
}
їEs posible hacer que PlayerData[playerid][level] pueda verificar si no es igual a los 3 valores en una misma linea sin necesidad de hacer esto?

Код:
if(PlayerData[playerid][level] != LEVEL_ADMIN && PlayerData[playerid][level] != LEVEL_VIP && PlayerData[playerid][level] != LEVEL_MOD)
{
     return 0;
}
Gracias
Reply
#2

Podrнas usar switch y ir directamente al valor que quieres que se ejecute la funciуn.

PHP код:
switch(PlayerData[i][level])
{
    case 
LEVEL_ADMINLEVEL_VIPLEVEL_MOD:
    {
        
/* Funciones */
        
return true;
    }
    default: return 
false;

Reply
#3

Quote:
Originally Posted by Unrea1
Посмотреть сообщение
Podrнas usar switch y ir directamente al valor que quieres que se ejecute la funciуn.

PHP код:
switch(PlayerData[i][level])
{
    case 
LEVEL_ADMINLEVEL_VIPLEVEL_MOD:
    {
        
/* Funciones */
        
return true;
    }
    default: return 
false;

La idea era ahorrar cуdigo en una linea xd.

їNo hay otra forma?
Reply
#4

їCrees que con ahorrar lнneas irб mбs rбpido?, ja.

Haz las pruebas de velocidad y mira quй es mбs rбpido, si el if/else if o switch.
Reply
#5

Quote:
Originally Posted by Unrea1
Посмотреть сообщение
їCrees que con ahorrar lнneas irб mбs rбpido?, ja.

Haz las pruebas de velocidad y mira quй es mбs rбpido, si el if/else if o switch.
Yo no mencione la velocidad, ja. (xD)

Lo quiero en una linea para editar mбs rбpido el cуdigo en caso de ser necesario y para que pueda ser mas legible para mi, mбs prбctico.

.-.
Reply
#6

Quote:
Originally Posted by iSanchez
Посмотреть сообщение
Yo no mencione la velocidad, ja. (xD)

Lo quiero en una linea para editar mбs rбpido el cуdigo en caso de ser necesario y para que pueda ser mas legible para mi, mбs prбctico.

.-.
PHP код:
IsAdminValid(playeridlevel)
{
    switch(
PlayerData[playerid][level]) 
    { 
        case 
LEVEL_ADMINLEVEL_VIPLEVEL_MOD
        { 
            return 
true
        } 
        default: return 
false
    }  
}
// ** Uso:
if (IsAdminValid(playeridLEVEL_ADMIN))
{
    return 
true;
}
else
    return 
false
Tambiйn puedes eliminar el tag "level" para que identifique de una vez si pertenece a los niveles que quieras personalizar.
Reply
#7

Код:
if(PlayerData[playerid][level] != LEVEL_ADMIN || LEVEL_VIP || LEVEL_MOD)
{
     return 0;
}
Usб el operador || para ver comprobar distintos valores.
Reply
#8

Quote:
Originally Posted by Unrea1
Посмотреть сообщение
їCrees que con ahorrar lнneas irб mбs rбpido?, ja.

Haz las pruebas de velocidad y mira quй es mбs rбpido, si el if/else if o switch.
Es necesario mencionar que la diferencia entre uno y otro, son micro-segundos, todos estos operadores funcionan en menos tiempo del que te imaginas, bбsicamente no tiene sentido la velocidad en esta situaciуn.

Quote:
Originally Posted by Unrea1
Посмотреть сообщение
IsAdminValid(playerid, level)..

Tambiйn puedes eliminar el tag "level" para que identifique de una vez si pertenece a los niveles que quieras personalizar.
Serнa "IsValidAdmin" y utilizar una funciуn extra para saber si es administrador o no; es un consejo que йl deberнa tomar, sin embargo tambiйn podrнas ahorrar mбs lineas o tambiйn podrнa utilizar el operador IF de otra manera.


Mйtodo #1 (Agregar una funciуn para comprobar si tiene un nivel (o mayor)


Код:
bool:IsValidAdmin(playerid, admin_level) // La funciуn (devuelve true si tiene nivel)
{
	if (PlayerData[playerid][level] >= admin_level) return true;
	return false;
}

if (IsValidAdmin(playerid, level)) // Asн serнan tus condiciones
{
}
Mйtodo #2 (Utilizar el operador IF rбpido y sencillo)

Код:
if (!(1 <= PlayerData[playerid][level] <= 10))
{
    //  No es nivel 1 a 10, sуlo cambiarнas los nъmeros (1 por el nivel menor y 10 por el nivel mayor)
}


// Y podrнas utilizarlo asн
if (!(LEVEL_VIP <= PlayerData[playerid][level] <= LEVEL_ADMIN))
    return SendClientMessage(playerid, 0xFFFFFFFF, "ERROR: No eres un miembro VIP o Administrador");
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)