SA-MP Forums Archive
sms string error - 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: sms string error (/showthread.php?tid=432103)



sms string error - benjas09 - 21.04.2013

PHP код:
CMD:sms(playeridparams[])
{
    new 
str[256], str2[256], idName1[MAX_PLAYER_NAME], Name2[MAX_PLAYER_NAME];
    if(
sscanf(params"us"idstr2))
    {
        
SendClientMessage(playerid0xFF0000FF"USAR: /sms <id> <mensaje>");
        return 
1;
    }
    if(!
IsPlayerConnected(id)) return SendClientMessage(playerid0xFF0000FF"ERROR: Usuario no conectado");
    if(
playerid == id) return SendClientMessage(playerid0xFF0000FF"ERROR: No podes enviarte a ti mismo!");
    {
        
GetPlayerName(playeridName1sizeof(Name1));
        
GetPlayerName(idName2sizeof(Name2));
        
format(strsizeof(str), "SMS a %s(ID %d) enviado con exito!"Name2id);
        
SendClientMessage(playeridCOLOR_GREENstr);
        
format(strsizeof(str), "SMS de %s(ID %d): %s"Name1playeridstr2);
        
SendClientMessage(idCOLOR_GREENstr);
    }
    return 
1;

Al usar este comando aparece esto en el log.

Код:
[04:44:09] sscanf warning: Strings without a length are deprecated, please add a destination size.
[04:44:09] sscanf warning: String buffer overflow.



Respuesta: sms string error - EduGTA - 21.04.2013

pawn Код:
if(sscanf(params, "us[256]", id, str2))



Respuesta: sms string error - sonnkz - 21.04.2013

fijate asi

Код:
CMD:sms(playerid, params[])
{
    new str[256], str2[256], id, Name1[MAX_PLAYER_NAME], Name2[MAX_PLAYER_NAME];
    if(sscanf(params, "us[128]", id, str2))  return SendClientMessage(playerid, 0xFF0000FF, "USAR: /sms <id> <mensaje>");
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, "ERROR: Usuario no conectado");
    if(playerid == id) return SendClientMessage(playerid, 0xFF0000FF, "ERROR: No podes enviarte a ti mismo!");
    {
        GetPlayerName(playerid, Name1, sizeof(Name1));
        GetPlayerName(id, Name2, sizeof(Name2));
        format(str, sizeof(str), "SMS a %s(ID %d) enviado con exito!", Name2, id);
        SendClientMessage(playerid, COLOR_GREEN, str);
        format(str, sizeof(str), "SMS de %s(ID %d): %s", Name1, playerid, str2);
        SendClientMessage(id, COLOR_GREEN, str);
    }
    return 1;
}
te falto definir que string va a tener 128 celdas


Re : sms string error - benjas09 - 21.04.2013

Listo, gracias


Respuesta: sms string error - DesingMyCry - 22.04.2013

Quote:
Originally Posted by sonnkz
Посмотреть сообщение
fijate asi

Код:
CMD:sms(playerid, params[])
{
    new str[256], str2[256], id, Name1[MAX_PLAYER_NAME], Name2[MAX_PLAYER_NAME];
    if(sscanf(params, "us[128]", id, str2))  return SendClientMessage(playerid, 0xFF0000FF, "USAR: /sms <id> <mensaje>");
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, "ERROR: Usuario no conectado");
    if(playerid == id) return SendClientMessage(playerid, 0xFF0000FF, "ERROR: No podes enviarte a ti mismo!");
    {
        GetPlayerName(playerid, Name1, sizeof(Name1));
        GetPlayerName(id, Name2, sizeof(Name2));
        format(str, sizeof(str), "SMS a %s(ID %d) enviado con exito!", Name2, id);
        SendClientMessage(playerid, COLOR_GREEN, str);
        format(str, sizeof(str), "SMS de %s(ID %d): %s", Name1, playerid, str2);
        SendClientMessage(id, COLOR_GREEN, str);
    }
    return 1;
}
te falto definir que string va a tener 128 celdas
Serнa estupido hacer eso, ya que la variable de destino tiene mas de 128 celdas.


Respuesta: sms string error - xSDx - 22.04.2013

Quote:
Originally Posted by DesingMyCry
Посмотреть сообщение
Serнa estupido hacer eso, ya que la variable de destino tiene mas de 128 celdas.
No seas tan cruel muchacho, mejor explicales que debe ser str[128]


Respuesta: sms string error - DesingMyCry - 22.04.2013

Quote:
Originally Posted by xSDx
Посмотреть сообщение
No seas tan cruel muchacho, mejor explicales que debe ser str[128]
Incluso, hacer eso tambiйn seria una perdida de memoria. Ya que la funciуn "SendClientMessage" tiene un lнmite de 144 carбcteres, y si a eso le restamos los que se gastan informando al jugador que le llegу un mensaje:

Код:
        format(str, sizeof(str), "SMS a %s(ID %d) enviado con exito!", Name2, id); //34 + 24 (mбxima cantidad de carбcteres en el nick): 58
        SendClientMessage(playerid, COLOR_GREEN, str);
        format(str, sizeof(str), "SMS de %s(ID %d): %s", Name1, playerid, str2);
        SendClientMessage(id, COLOR_GREEN, str);
Entonces, 144-58 = 86

Por lo que lo correcto seria usar "str[86];" y en la funciуn del plugin "us[86]".