Problem - SSCANF WARNING


Započeo Maserati', Oktobar 30, 2019, 23:49:54 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Ovako,imam dva problema..Prvi je taj da kada nekog unbanujem izbacuje mi u konzoli dva warninga
-sscanf warning: Invalid data length.
-sscanf warning: Invalid character in data length.
[/b]
Dio skripte:
CMD:unban( playerid, const params[] )
{
    if( PlayerInfo[ playerid ][ xAdmin ] >= 3 )
    {
        if( PlayerInfo[ playerid ][ xAdmin ] <= 3 && !AdminDuty[ playerid ] ) return SendErrorMessage( playerid, "Da bi koristili ovu komandu morate biti Admin na duznosti." );
       
        new imeigraca[ MAX_PLAYER_NAME ];
        if( sscanf( params, "s[MAX_PLAYER_NAME]", imeigraca ) ) return SendUsageMessage( playerid, "/unban [Ime_Prezime]");
 
        new query[128];
        mysql_format( mSQL, query, sizeof(query), "SELECT `user_id` FROM `banned` WHERE `user_name` = '%e' LIMIT 1", imeigraca );
        mysql_pquery( mSQL, query, "CheckPlayerUnBan", "is", playerid, imeigraca );
    }
    else return SendErrorMessage( playerid, "Niste u mogucnosti koristiti ovu komandu." );
    return(true);
}

Drugi problem je u tome da kad kreiram "poklon" server pukne i mora se rr.Ukoliko neke zna rješenje neka cima , hvala unapred.
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Slika/video ingame problema(obavezno ako je ingame problem): link slike

Ne mozes ovo ovako koristiti

"s[MAX_PLAYER_NAME]"


radije
"s[24]"

ili
sprintf("s[%d]", MAX_PLAYER_NAME)





CitatDrugi problem je u tome da kad kreiram "poklon" server pukne i mora se rr.Ukoliko neke zna rješenje neka cima , hvala unapred.

Niti nam dao dio koda gdje kreiras nekakav "poklon" ni crashdetect log, ne mozemo znati kakav je tvoj kod, ¯\_(ツ)_/¯
Poslednja Izmena: Oktobar 31, 2019, 07:53:03 PRE PODNE od Ino42O
Software Developer

Za drugi problem pošalji AmxBackTrace a za prvi se ne slažem sa Ino-m jer može #MAX_PLAYER_NAME jer verujem da nisi došao do toga da stavljaš zagrade (  (24)  )

#define STR_SIZE 32
new
    str[STR_SIZE],
    val;
sscanf("hello\\ there 27", "s[" #STR_SIZE "]i", str, val);
Software Developer

Ja npr koristim (value) pa nmg tako.jpg


radije
"s[24]"


Buraz hvala ti na ovome , radi.

Što se tiče tog "poklona" bukvalno server samo pukne i ništa mi ne izbacuje u logu(crashdetect) , eo cod https://pastebin.com/rknDj8Mp

^^ debugaj, pa salji


bilo je lijepo dok je trajalo.


sscanf(params, "p<|>is[24]dudududu", ...);
or
sscanf(szFileStr, "p<|>is[MAX_PLAYER_NAME]ffffiiiiiiiiiiiiii", ...);
Poslednja Izmena: Novembar 01, 2019, 14:56:50 POSLE PODNE od AllerG
哈里斯--

Uradio sam printf na svaku od akcija

    #if ZIMSKI_MOD == 0 
		            new i = 0; 
					for( new j = 1; j < MAX_PRESENTS; j++ )
					{
						if( presentsInfo[ j ][ presSQLID ] == -1 )
						{
						    i = j;
						    break;
						}
					}
					
					printf("akcija 1"); // ovo jedino izbaci u server logu.
					
					if( i != 0 ) return SendErrorMessage( playerid, "Vec je jedan poklon u procesu izgradnje, nije dovrsen, sacekajte(sigurnost baze)." );

					i = -1;
					for( new j = 1; j < MAX_PRESENTS; i++)
					{
					    if( presentsInfo[ j ][ presSQLID ] == 0 )
						{
							i = j;
							break;
				   		}
					}
					
					printf("akcija 2");
					
					if( presentsInfo[ (MAX_PRESENTS-1) ][ presSQLID ] != 0 ) return SendErrorMessage( playerid, "Ima maksimalno kreiranih poklona." );

					if( presentsInfo[i][presSQLID] != 0 ) return SendErrorMessage( playerid, "ID tog poklona vec postoji." );
					printf("akcija 3"); 
	    			new Float:x, Float:y, Float:z, Float:angle;
					GetPlayerPos( playerid, x, y, z);
					GetPlayerFacingAngle( playerid, angle );
					presentsInfo[ i ][ presPos ][ 0 ] = x;
 					presentsInfo[ i ][ presPos ][ 1 ] = y;
  					presentsInfo[ i ][ presPos ][ 2 ] = z;
   					presentsInfo[ i ][ presPos ][ 3 ] = 0;
    				presentsInfo[ i ][ presPos ][ 4 ] = 0;
    				presentsInfo[ i ][ presPos ][ 5 ] = 0;
    				presentsInfo[ i ][ presTaken ] = false;
					presentsInfo[ i ][ presObject ] = CreateDynamicObject( 19054, x+2, y, z+0.6, 0.0, 0.0, angle );
					
					printf("akcija 4"); 
					
     				Streamer_Update( playerid );
					EditDynamicObject( playerid, presentsInfo[ i ][ presObject ] );
					EditPresents[ playerid ] = i;
			 		mSQL_CreatePresent( i );
			 		printf("akcija 5"); //
					#else
					SendErrorMessage( playerid, "Nije ukljucen zimski mod." );
					#endif

Pa šta zadnje printuje prije nego server pukne?


printf("akcija 1"); // ovo jedino izbaci u server logu.