variables binarias....
#1

Buenas a todos, tengo problemas con 2 if con lo ke compruebo si tengas las variables correspondiente.
pero la cosa es ke si tengo la variable en positivo, en la funcion ke tengo el if donde comprobara si si tengo la variable en positivoo o negativo y retonara un SendClientMessage pero si tengo la variable en positivo me sigue retonando el if del negativo :S .

pawn Код:
//FUNCUON 1
if(variable[playerid][0]==true || variable[playerid][1]==true || variable[playerid][2]==true || variable[playerid][3]==true || variable[playerid][4]==true) {
    return SendClientMessage(playerid, -1,"ya tienes algunas de las variables");
}

//FUNCUON 2
if(variable[playerid][0]==false || variable[playerid][1]==false || variable[playerid][2]==false || variable[playerid][3]==false || variable[playerid][4]==false) {
    return SendClientMessage(playerid, -1,"no tienes algunas de las variables");
}
los if estan separados.

Desde yam uchas Gracias.
Reply
#2

Tal vez sea xq nunca la seteaste a true. Si lo q has echo es un test antes de la sentencia debes de setear la variable a true o sino siempre saldra el negativo.

Nota: Cuando creas una variable, esta por defecto se "autoestablece" a cero, osea, false.
Reply
#3

Cambia esto:
pawn Код:
if(variable[playerid][0]==false || variable[playerid][1]==false || variable[playerid][2]==false || variable[playerid][3]==false || variable[playerid][4]==false)
por esto:
pawn Код:
if(variable[playerid][0]==false && variable[playerid][1]==false && variable[playerid][2]==false && variable[playerid][3]==false && variable[playerid][4]==false)
En definitiva, cambiar "||" por "&&" en el segundo if.
Reply
#4

Quote:
Originally Posted by Dreyfuz
Посмотреть сообщение
Tal vez sea xq nunca la seteaste a true. Si lo q has echo es un test antes de la sentencia debes de setear la variable a true o sino siempre saldra el negativo.

Nota: Cuando creas una variable, esta por defecto se "autoestablece" a cero, osea, false.
¬¬ claro ke se lo estoy colocando a true. y tambien verifike si se le estaba colocando correctamento con un printf, y si todo correcto. :S

Quote:
Originally Posted by bm0z
Посмотреть сообщение
Cambia esto:
pawn Код:
if(variable[playerid][0]==false || variable[playerid][1]==false || variable[playerid][2]==false || variable[playerid][3]==false || variable[playerid][4]==false)
por esto:
pawn Код:
if(variable[playerid][0]==false && variable[playerid][1]==false && variable[playerid][2]==false && variable[playerid][3]==false && variable[playerid][4]==false)
En definitiva, cambiar "||" por "&&" en el segundo if.
hay si funciona, pero yo kiero saber por que de la otra forma no funciona o_O :S.
Reply
#5

Creo que no funcionaba asн porque el "||" significa O y el "&&" significa Y.
Reply
#6

Quote:
Originally Posted by Zume-Zero
Посмотреть сообщение
Creo que no funcionaba asн porque el "||" significa O y el "&&" significa Y.
"ya tienes algunas de las variables", para algunas se usa || no &&
pawn Код:
if(variable[playerid][0]==true || variable[playerid][1]==true || variable[playerid][2]==true || variable[playerid][3]==true || variable[playerid][4]==true) {
    return SendClientMessage(playerid, -1,"ya tienes algunas de las variables");
}

//FUNCUON 2
if(variable[playerid][0]==false || variable[playerid][1]==false || variable[playerid][2]==false || variable[playerid][3]==false || variable[playerid][4]==false) {
    return SendClientMessage(playerid, -1,"no tienes algunas de las variables");
}
Supongo que tienes primero la funcion 2 y luego la 1, el problema es que si en la funcion 2 encuentra si quiera una negativa y todas positivas esta retornara que no tiene ninguna variable, al tener una negativa o mas y algunas positivas se ejecutara la funcion, puedes hacerlo asi.

pawn Код:
if(variable[playerid][0]==true || variable[playerid][1]==true || variable[playerid][2]==true || variable[playerid][3]==true || variable[playerid][4]==true)
{
    return SendClientMessage(playerid, -1,"ya tienes algunas de las variables");
}

if(variable[playerid][0]==false && variable[playerid][1]==false && variable[playerid][2]==false && variable[playerid][3]==false && variable[playerid][4]==false)
{
    return SendClientMessage(playerid, -1,"no tienes algunas de las variables");
}
Al hacerlo asi, comprobara si no tiene todas negativas te regresa que no tiene alguna de las variables, tambien puedes usar else

pawn Код:
if(variable[playerid][0]==true || variable[playerid][1]==true || variable[playerid][2]==true || variable[playerid][3]==true || variable[playerid][4]==true)
{
    return SendClientMessage(playerid, -1,"ya tienes algunas de las variables");
}

else
{
    return SendClientMessage(playerid, -1,"no tienes algunas de las variables");
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)