error en return
#1

Buenas estoy tratando de hacer este sistema pero no puedo terminarlo que ya me salen errores(error 090: public functions may not return arrays (symbol "GetPartOfMsj")) en los return... no entiendo que sera.
pawn Код:
function GetPartOfMsj(playerid)
{
    new f[20];
    new pc  = strval(Informacion[playerid][Celular]);
    if(Celu[pc][M1] != -1)
    {
        strmid(f, Celu[pc][Msj1], 0, 10, sizeof(f));
        new string[20];
        format(string, sizeof(string), "%s...", f);
        return string;
    }
    if(Celu[pc][M2] != -1)
    {
        strmid(f, Celu[pc][Msj2], 0, 10, sizeof(f));
        new string[20];
        format(string, sizeof(string), "%s...", f);
        return string;
    }
    if(Celu[pc][M3] != -1)
    {
        strmid(f, Celu[pc][Msj3], 0, 10, sizeof(f));
        new string[20];
        format(string, sizeof(string), "%s...", f);
        return string;
    }
    if(Celu[pc][M4] != -1)
    {
        strmid(f, Celu[pc][Msj4], 0, 10, sizeof(f));
        new string[20];
        format(string, sizeof(string), "%s...", f);
        return string;
    }
    if(Celu[pc][M5] != -1)
    {
        strmid(f, Celu[pc][Msj5], 0, 10, sizeof(f));
        new string[20];
        format(string, sizeof(string), "%s...", f);
        return string;
    }
    if(Celu[pc][M6] != -1)
    {
        strmid(f, Celu[pc][Msj6], 0, 10, sizeof(f));
        new string[20];
        format(string, sizeof(string), "%s...", f);
        return string;
    }
    if(Celu[pc][M7] != -1)
    {
        strmid(f, Celu[pc][Msj7], 0, 10, sizeof(f));
        new string[20];
        format(string, sizeof(string), "%s...", f);
        return string;
    }
    if(Celu[pc][M8] != -1)
    {
        strmid(f, Celu[pc][Msj8], 0, 10, sizeof(f));
        new string[20];
        format(string, sizeof(string), "%s...", f);
        return string;
    }
    if(Celu[pc][M9] != -1)
    {
        strmid(f, Celu[pc][Msj9], 0, 10, sizeof(f));
        new string[20];
        format(string, sizeof(string), "%s...", f);
        return string;
    }
    if(Celu[pc][M10] != -1)
    {
        strmid(f, Celu[pc][Msj10], 0, 10, sizeof(f));
        new string[20];
        format(string, sizeof(string), "%s...", f);
        return string;
    }
}
SOLUCIONADO, LAS FUNCIONES PUBLICAS NO PUEDEN DEVOLVER ARRAYS
Reply
#2

Prueba asн:
pawn Код:
function GetPartOfMsj(playerid)
{
    new f[20];
    new pc  = strval(Informacion[playerid][Celular]);
    if(Celu[pc][M1] != -1)
    {
        strmid(f, Celu[pc][Msj1], 0, 10, sizeof(f));
        new string[20];
        format(string, sizeof(string), "%s...", f);
        return string;
    }
    if(Celu[pc][M2] != -1)
    {
        strmid(f, Celu[pc][Msj2], 0, 10, sizeof(f));
        new string[20];
        format(string, sizeof(string), "%s...", f);
        return string;
    }
    if(Celu[pc][M3] != -1)
    {
        strmid(f, Celu[pc][Msj3], 0, 10, sizeof(f));
        new string[20];
        format(string, sizeof(string), "%s...", f);
        return string;
    }
    if(Celu[pc][M4] != -1)
    {
        strmid(f, Celu[pc][Msj4], 0, 10, sizeof(f));
        new string[20];
        format(string, sizeof(string), "%s...", f);
        return string;
    }
    if(Celu[pc][M5] != -1)
    {
        strmid(f, Celu[pc][Msj5], 0, 10, sizeof(f));
        new string[20];
        format(string, sizeof(string), "%s...", f);
        return string;
    }
    if(Celu[pc][M6] != -1)
    {
        strmid(f, Celu[pc][Msj6], 0, 10, sizeof(f));
        new string[20];
        format(string, sizeof(string), "%s...", f);
        return string;
    }
    if(Celu[pc][M7] != -1)
    {
        strmid(f, Celu[pc][Msj7], 0, 10, sizeof(f));
        new string[20];
        format(string, sizeof(string), "%s...", f);
        return string;
    }
    if(Celu[pc][M8] != -1)
    {
        strmid(f, Celu[pc][Msj8], 0, 10, sizeof(f));
        new string[20];
        format(string, sizeof(string), "%s...", f);
        return string;
    }
    if(Celu[pc][M9] != -1)
    {
        strmid(f, Celu[pc][Msj9], 0, 10, sizeof(f));
        new string[20];
        format(string, sizeof(string), "%s...", f);
        return string;
    }
    if(Celu[pc][M10] != -1)
    {
        strmid(f, Celu[pc][Msj10], 0, 10, sizeof(f));
        new string[20];
        format(string, sizeof(string), "%s...", f);
        return string;
    }
return -1;
}
Si el error era algo como 'you should return a value'
Para que luego digan que no somos adivinos, publica tus errores al preguntar la duda.
Reply
#3

No no, es porque los public no returnan arrays, los stock si! gracias igualmente
Reply
#4

Adriбn, no lo necesitas.

El error es que no puedes retornar diferentes tipos de datos en una sola funciуn. Osea, no puedes retornar una cadena y/o un nъmero.

Haber, dicho de otra forma, hacer esto esta mal:


pawn Код:
stock funcion()
{
    new cadena[4] = "hola";
    if(cadena[0]) return cadena;
    return 1;
}
Ya que la variable "cadena" guarda una cadena, osea que retornariamos una cadena, o sinу un nъmero.

La soluciуn? quita esto:

pawn Код:
return -1;
Reply
#5

Quote:
SOLUCIONADO, LAS FUNCIONES PUBLICAS NO PUEDEN DEVOLVER ARRAYS
Mentira. Lee mi comentario.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)