duda sscanf / return
#2

No es obligatorio, pero sн recomendable, mira este ejemplo:
PHP код:
new var[6];
var = 
"texto";
print(
"0");
if(!
strcmp(var, "texto"true))
{
    
SendClientMessage(playerid, -1"Coinciden");
    return 
1;
}
print(
"1");
if(!
strcmp(var, "opcion1"true))
{
    
SendClientMessage(playerid, -1"Coinciden");
    return 
1;
}
print(
"2");
if(!
strcmp(var, "opcion2"true))
{
    
SendClientMessage(playerid, -1"Coinciden");
    return 
1;
}
print(
"3"); 
Como la primera condiciуn se cumple (ya que var contiene "texto"), le mandamos un mensaje al jugador y devolvemos un valor (return 1) para indicar que se ha cumplido nuestra condiciуn.

En nuestra consola observaremos esto debido al print:
pawn Код:
 
Viendo lo anterior concluimos que si no se han imprimido el resto de los valores es que el cуdigo que sigue la condiciуn no se ha ejecutado.

Volvamos a ejecutar el mismo cуdigo sin "return 1":
PHP код:
new var[6];
var = 
"texto";
print(
"0");
if(!
strcmp(var, "texto"true))
{
    
SendClientMessage(playerid, -1"Coinciden");
}
print(
"1");
if(!
strcmp(var, "opcion1"true))
{
    
SendClientMessage(playerid, -1"Coinciden");
}
print(
"2");
if(!
strcmp(var, "opcion2"true))
{
    
SendClientMessage(playerid, -1"Coinciden");
}
print(
"3"); 
La primera condiciуn se cumplirб y se le mandarб un mensaje al jugador igual que en el primer caso, pero observaremos en la consola lo siguiente:
pawn Код:
0
1
2
3
їQuй vemos? Que se ha ejecutado todo el cуdigo, aunque las otras condiciones con strcmp no se han cumplido porque el texto es distinto.


En definitiva, si nuestro cуdigo se ejecuta es recomendable devolver un valor y decir "basta, ya tengo lo que querнa". De esta manera el cуdigo que sigue no se ejecuta, y conseguimos algo llamado "optimizaciуn".

El valor del return depende de dуnde nos encontremos, en el caso de los comandos devolver "1" significa que el comando se ha procesado correctamente.

En lugar de poner "return 1" puedes hacer lo siguiente:
PHP код:
new var[6];
var = 
"texto";
if(!
strcmp(var, "texto"true)) return SendClientMessage(playerid, -1"Coinciden");
if(!
strcmp(var, "opcion1"true)) return SendClientMessage(playerid, -1"Coinciden");
if(!
strcmp(var, "opcion2"true)) return SendClientMessage(playerid, -1"Coinciden"); 
SendClientMessage puede devolver dos posibles valores (1 si se ha ejecutado correctamente, 0 si el jugador no estб conectado), entonces, es como poner "return 1" pero a la vez mandamos el mensaje (que a su vez devuelve 1).
Reply


Messages In This Thread
duda sscanf / return - by H@hn - 01.08.2015, 15:50
Respuesta: duda sscanf / return - by RIDE2DAY - 01.08.2015, 16:25
Re: duda sscanf / return - by H@hn - 01.08.2015, 17:17
Respuesta: duda sscanf / return - by TheMatius - 01.08.2015, 18:52
Respuesta: duda sscanf / return - by Tirael - 02.08.2015, 05:17

Forum Jump:


Users browsing this thread: 1 Guest(s)