SA-MP Forums Archive
[CONSULTA] Operadores de condiciуn en format - 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: [CONSULTA] Operadores de condiciуn en format (/showthread.php?tid=326299)



[CONSULTA] Operadores de condiciуn en format - santi.arg - 17.03.2012

Hola, empecй a codear con el SAMP ayer y estoy realizando codeando el registro en base de datos y entonces para no setear tantos strings decidн que la edad se guarde en 0 si es masculino y 1 si es femenino, pero al querer mostrar un print del sexo seleccionado de la siguiente forma:

PHP код:
format(msgcharsmax(msg), "Tu sexo seleccionado es %s"g_sexo[playerid] ? "{0080C0C8}masculino" "{FF8080C8}femenino"); 
Me da el error de:
Код:
error 001: expected token: "-string end-", but found "-identifier-"
Lo cual me obliga a tener que trabajar de la sig forma:
PHP код:
            if (g_sexo[playerid])
                
SendClientMessage(playeridCOLOR_BLANCO"Tu sexo seleccionado es {FF8080}femenino");
            else    
                
SendClientMessage(playeridCOLOR_BLANCO"Tu sexo seleccionado es {0080C0}masculino"); 
Pero realmente es muy incуmodo ya que al querer mostrar un print poniйndole la condiciуn directamente me ahorrarнa el trabajo de poner muchos ifs y muchos else.

Hay alguna forma de hacer lo que quiero hacer?


Respuesta: [CONSULTA] Operadores de condiciуn en format - OTACON - 17.03.2012

yo te Recomiendo que lo hagas asi :

pawn Код:
if(g_sexo[playerid] == 1) SendClientMessage(playerid, COLOR_BLANCO, "Tu sexo seleccionado es {FF8080}femenino");
else if(g_sexo[playerid] == 2) SendClientMessage(playerid, COLOR_BLANCO, "Tu sexo seleccionado es {0080C0}masculino");
pawn Код:
new Text[128];
if(g_sexo[playerid] == 1) Text = "'Hombre'";
else if(g_sexo[playerid] == 2) Text = "'Mujer'";
format(string, sizeof(string), "Tu sexo seleccionado es %s", Text);



Respuesta: [CONSULTA] Operadores de condiciуn en format - TheChaoz - 17.03.2012

pawn Код:
format(msg, sizeof(msg), "Tu sexo seleccionado es %s", ((g_sexo[playerid]) ? ("{0080C0C8}masculino") : ("{FF8080C8}femenino")));
PD: Seguro que hace 2 dias que scripteas pawn? (yo realmente lo dudo).


Respuesta: [CONSULTA] Operadores de condiciуn en format - santi.arg - 17.03.2012

Quote:
Originally Posted by bytytus
Посмотреть сообщение
yo te Recomiendo que lo hagas asi :

pawn Код:
if(g_sexo[playerid] == 1) SendClientMessage(playerid, COLOR_BLANCO, "Tu sexo seleccionado es {FF8080}femenino");
else if(g_sexo[playerid] == 2) SendClientMessage(playerid, COLOR_BLANCO, "Tu sexo seleccionado es {0080C0}masculino");
pawn Код:
new Text[128];
if(g_sexo[playerid] == 1) Text = "'Hombre'";
else if(g_sexo[playerid] == 2) Text = "'Mujer'";
format(string, sizeof(string), "Tu sexo seleccionado es %s", Text);
Es una alternativa que pensй crear una variable temporal para almacenar el string.

Quote:
Originally Posted by the_chaoz
Посмотреть сообщение
pawn Код:
format(msg, sizeof(msg), "Tu sexo seleccionado es %s", ((g_sexo[playerid]) ? ("{0080C0C8}masculino") : ("{FF8080C8}femenino")));
PD: Seguro que hace 2 dias que scripteas pawn? (yo realmente lo dudo).
Pawn hace 2 dнas no. Tengo experiencia con pawn ya que codeo tambiйn para servidores de CS (AMX Mod X).

PD: Uso charsmax que es un macro que estoy acostumbrado a usar en AMX Mod X :P


Respuesta: [CONSULTA] Operadores de condiciуn en format - OTACON - 17.03.2012

Prgunto, sa Linea Esta bien?

pawn Код:
format(msg, sizeof(msg), "Tu sexo seleccionado es %s", ((g_sexo[playerid]) ? ("{0080C0C8}masculino") : ("{FF8080C8}femenino")));
Pregunto por que es la primera Vz Ke lo veo asi :S.

y si esta bien que funcion esta cumpliendo el ?


Respuesta: [CONSULTA] Operadores de condiciуn en format - TheChaoz - 17.03.2012

Quote:
Originally Posted by santi.arg
Посмотреть сообщение
Pawn hace 2 dнas no. Tengo experiencia con pawn ya que codeo tambiйn para servidores de CS (AMX Mod X).

PD: Uso charsmax que es un macro que estoy acostumbrado a usar en AMX Mod X :P
Eso explica bastante.


Quote:
Originally Posted by bytytus
Посмотреть сообщение
Prgunto, sa Linea Esta bien?

pawn Код:
format(msg, sizeof(msg), "Tu sexo seleccionado es %s", ((g_sexo[playerid]) ? ("{0080C0C8}masculino") : ("{FF8080C8}femenino")));
Pregunto por que es la primera Vz Ke lo veo asi :S.

y si esta bien que funcion esta cumpliendo el ?
Si, la linea esta bien, "? :" es un operador (llamado ternario) el cual realiza una comparaciуn, dicho burdamente es = que una linea de if:
Modo de uso:
pawn Код:
(criterio) ? (valor_verdadero) : (valor_falso)
ej:
pawn Код:
new tmp = random(2);
printf("Si tmp es igual a 0, printearemos un \"NO\", caso contrario, printearemos un \"SI\". Valor: %s", ((tmp==0) ? ("NO") : ("SI")));



Respuesta: [CONSULTA] Operadores de condiciуn en format - santi.arg - 17.03.2012

Si querйs verificar un valor de 1 y 0 es innecesario hacer tmp == 0... directamente

PHP код:
new tmp random(2);
printf("Si tmp es igual a 0, printearemos un \"NO\", caso contrario, printearemos un \"SI\". Valor: %s"tmp "SI" "NO"); 
Por otro lado siempre acostumbro a separar los strings con el strtok definiendo cuбl es el "token", veo que en el SAMP usan el " " como token .


Respuesta: [CONSULTA] Operadores de condiciуn en format - TheChaoz - 17.03.2012

Quote:
Originally Posted by santi.arg
Посмотреть сообщение
Si querйs verificar un valor de 1 y 0 es innecesario hacer tmp == 0... directamente

PHP код:
new tmp random(2);
printf("Si tmp es igual a 0, printearemos un \"NO\", caso contrario, printearemos un \"SI\". Valor: %s"tmp "SI" "NO"); 
Por otro lado siempre acostumbro a separar los strings con el strtok definiendo cuбl es el "token", veo que en el SAMP usan el " " como token .
ya lo se, de hecho utilizo ! para verificar valores a 0 y nada para valores a 1, pero para que el ejemplo sea claro, intente hacerlo de otra forma, ya que no todos los usuarios saben esto.


Respuesta: [CONSULTA] Operadores de condiciуn en format - Kurama - 18.03.2012

pawn Код:
strtok(const string[], &index, character = ' ')
{
    new length = strlen(string);
    while ((index < length) && (string[index] <= character))
    {
        index++;
    }
 
    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > character) && ((index - offset) < (sizeof(result) - 1)))
    {
        result[index - offset] = string[index];
        index++;
    }
    result[index - offset] = EOS;
    return result;
}