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[pawn]
-sscanf warning: Invalid data length.
-sscanf warning: Invalid character in data length.[/pawn]

Dio skripte:[pawn]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);
}[/pawn]
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

[pawn]"s[MAX_PLAYER_NAME]"[/pawn]

radije
[pawn]"s[24]" [/pawn]
ili
[pawn]sprintf("s[%d]", MAX_PLAYER_NAME)[/pawn]




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)  )

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

Ja npr koristim (value) pa nmg tako.jpg


radije
[pawn]"s[24]" [/pawn]

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.


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

Uradio sam printf na svaku od akcija

[pawn]
                #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[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[/pawn]

Pa šta zadnje printuje prije nego server pukne?


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