SA-MP Forums Archive
sscanf warning: 'z' is deprecated, consider using 'S' instead. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: sscanf warning: 'z' is deprecated, consider using 'S' instead. (/showthread.php?tid=625403)



sscanf warning: 'z' is deprecated, consider using 'S' instead. - DandyCorleone - 01.01.2017

This is commands always show warning sscanf...
can help?

PHP код:

CMD
:editbiz(playerid, params[])
{
    new 
Usage[128], id, string[ 128 ];
    if( 
sscanf( params, "dz", id, Usage) )
    {
        if( 
PlayerInfo[playerid][pAdmin] >= 9)
        {
            
SendClientMessage( playerid, COLOR_WHITE, "USAGE: /movebiz [businessid] [name]" );
            
SendClientMessage( playerid, COLOR_GREY, "Available Names: Exterior, Interior" );
        }
    }
    else
    {
        if( 
PlayerInfo[playerid][pAdmin] >= 9)
        {
            
format( string, sizeof( string ), "Businesses/Business_%d.ini", id);
            if(
strcmp(Usage, "exterior", true) == 0 )
            {
                if(!
dini_Exists(string))
                {
                    
SendClientMessage( playerid, COLOR_GREY, "Invalid Business ID!" );
                    return 
1;
                }
                else
                {
                    
BizzInfo[id][bExteriorID] = GetPlayerInterior( playerid );
                    
GetPlayerPos( playerid, BizzInfo[id][bEntranceX], BizzInfo[id][bEntranceY], BizzInfo[id][bEntranceZ]);
                    if(
BizzInfo[id][bOwned] == 1)
                    {
                        new 
i = id;
                        
DestroyDynamicPickup(BizzInfo[id][bPickupID]);
                        
DestroyDynamic3DTextLabel(business1[id]);
                        
BizzInfo[id][bPickupID] = CreateDynamicPickup(19133, 23, BizzInfo[id][bEntranceX], BizzInfo[id][bEntranceY], BizzInfo[id][bEntranceZ], 0, -1, -1, 150.0 );
                        
format(string, sizeof(string), "{FF0000}[%s]\n"YELLOW_E"Owner: %s\n"GREEN_E"%s\n"YELLOW_E"Status : %s\n"GREEN_E"Bizz ID: %d",BT(id), BizzInfo[i][bOwner], BizzInfo[i][bMessage],BL(id),i);
                        
business1[id] = CreateDynamic3DTextLabel(string, COLOR_WHITE, BizzInfo[id][bEntranceX], BizzInfo[id][bEntranceY], BizzInfo[id][bEntranceZ]+0.75,10.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,0,-1,-1, 100.0);
                    }
                    else
                    {
                        
DestroyDynamicPickup(BizzInfo[id][bPickupID]);
                        
DestroyDynamic3DTextLabel(business2[id]);
                        
BizzInfo[id][bPickupID] = CreateDynamicPickup(19133, 23, BizzInfo[id][bEntranceX], BizzInfo[id][bEntranceY], BizzInfo[id][bEntranceZ], 0, -1, -1, 150.0 );
                        
format(string, sizeof(string), "{FF0000}[%s Dijual]\n"YELLOW_E"Harga: $%d\n"GREEN_E"Level: %d\n"YELLOW_E"Bizz ID: %d\n((/buybiz)) ", BT(id),BizzInfo[id][bBuyPrice],BizzInfo[id][bLevelNeeded], id);
                        
business2[id] = CreateDynamic3DTextLabel(string, COLOR_WHITE, BizzInfo[id][bEntranceX], BizzInfo[id][bEntranceY], BizzInfo[id][bEntranceZ]+0.75,10.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,0,-1,-1, 100.0);
                    }
                    
SendClientMessage( playerid, COLOR_WHITE, "Exterior changed!" );
                    
SaveBusiness(id);
                }
            }
            else if(
strcmp(Usage, "interior", true) == 0 )
            {
                if(!
dini_Exists(string))
                {
                    
SendClientMessage( playerid, COLOR_GREY, "Invalid Business ID!" );
                    return 
1;
                }
                else
                {
                    
GetPlayerPos( playerid, BizzInfo[id][bExitX], BizzInfo[id][bExitY], BizzInfo[id][bExitZ]);
                    
BizzInfo[id][bInteriorID] = GetPlayerInterior( playerid );
                    
SendClientMessage( playerid, COLOR_WHITE, "Interior changed!" );
                    
SaveBusiness(id);
                }
            }
        }
    }
    return 
1;
} 
PHP код:
[03:13:55] [zcmd] [Dandy Corleone]: /editbiz
[03:14:05] [zcmd] [Dandy Corleone]: /editbiz 41 exterior
[03:14:05] sscanf warning: 'z' is deprecated, consider using 'S' instead.
[
03:14:05] sscanf warning: No default value found.
[
03:14:05] sscanf warning: Strings without a length are deprecated, please add a destination size.
[
03:14:14] [zcmd] [Dandy Corleone]: /editbiz 41 exterior
[03:14:14] sscanf warning: 'z' is deprecated, consider using 'S' instead.
[
03:14:14] sscanf warning: No default value found.
[
03:14:14] sscanf warning: Strings without a length are deprecated, please add a destination size.
[
03:14:20] [zcmd] [Dandy Corleone]: /clearbiz
[03:14:23] [zcmd] [Dandy Corleone]: /clearbiz 0 3 



Re: sscanf warning: 'z' is deprecated, consider using 'S' instead. - AjaxM - 01.01.2017

Try this. The error explains all.

PHP код:
CMD:editbiz(playerid, params[]) 
{ 
    new 
Usage[128], id, string[ 128 ]; 
    if( 
sscanf( params, "ds[128]", id, Usage) ) 
    { 
        if( 
PlayerInfo[playerid][pAdmin] >= 9) 
        { 
            
SendClientMessage( playerid, COLOR_WHITE, "USAGE: /movebiz [businessid] [name]" ); 
            
SendClientMessage( playerid, COLOR_GREY, "Available Names: Exterior, Interior" ); 
        } 
    } 
    else 
    { 
        if( 
PlayerInfo[playerid][pAdmin] >= 9) 
        { 
            
format( string, sizeof( string ), "Businesses/Business_%d.ini", id); 
            if(
strcmp(Usage, "exterior", true) == 0 ) 
            { 
                if(!
dini_Exists(string)) 
                { 
                    
SendClientMessage( playerid, COLOR_GREY, "Invalid Business ID!" ); 
                    return 
1; 
                } 
                else 
                { 
                    
BizzInfo[id][bExteriorID] = GetPlayerInterior( playerid ); 
                    
GetPlayerPos( playerid, BizzInfo[id][bEntranceX], BizzInfo[id][bEntranceY], BizzInfo[id][bEntranceZ]); 
                    if(
BizzInfo[id][bOwned] == 1) 
                    { 
                        new 
i = id; 
                        
DestroyDynamicPickup(BizzInfo[id][bPickupID]); 
                        
DestroyDynamic3DTextLabel(business1[id]); 
                        
BizzInfo[id][bPickupID] = CreateDynamicPickup(19133, 23, BizzInfo[id][bEntranceX], BizzInfo[id][bEntranceY], BizzInfo[id][bEntranceZ], 0, -1, -1, 150.0 ); 
                        
format(string, sizeof(string), "{FF0000}[%s]\n"YELLOW_E"Owner: %s\n"GREEN_E"%s\n"YELLOW_E"Status : %s\n"GREEN_E"Bizz ID: %d",BT(id), BizzInfo[i][bOwner], BizzInfo[i][bMessage],BL(id),i); 
                        
business1[id] = CreateDynamic3DTextLabel(string, COLOR_WHITE, BizzInfo[id][bEntranceX], BizzInfo[id][bEntranceY], BizzInfo[id][bEntranceZ]+0.75,10.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,0,-1,-1, 100.0); 
                    } 
                    else 
                    { 
                        
DestroyDynamicPickup(BizzInfo[id][bPickupID]); 
                        
DestroyDynamic3DTextLabel(business2[id]); 
                        
BizzInfo[id][bPickupID] = CreateDynamicPickup(19133, 23, BizzInfo[id][bEntranceX], BizzInfo[id][bEntranceY], BizzInfo[id][bEntranceZ], 0, -1, -1, 150.0 ); 
                        
format(string, sizeof(string), "{FF0000}[%s Dijual]\n"YELLOW_E"Harga: $%d\n"GREEN_E"Level: %d\n"YELLOW_E"Bizz ID: %d\n((/buybiz)) ", BT(id),BizzInfo[id][bBuyPrice],BizzInfo[id][bLevelNeeded], id); 
                        
business2[id] = CreateDynamic3DTextLabel(string, COLOR_WHITE, BizzInfo[id][bEntranceX], BizzInfo[id][bEntranceY], BizzInfo[id][bEntranceZ]+0.75,10.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,0,-1,-1, 100.0); 
                    } 
                    
SendClientMessage( playerid, COLOR_WHITE, "Exterior changed!" ); 
                    
SaveBusiness(id); 
                } 
            } 
            else if(
strcmp(Usage, "interior", true) == 0 ) 
            { 
                if(!
dini_Exists(string)) 
                { 
                    
SendClientMessage( playerid, COLOR_GREY, "Invalid Business ID!" ); 
                    return 
1; 
                } 
                else 
                { 
                    
GetPlayerPos( playerid, BizzInfo[id][bExitX], BizzInfo[id][bExitY], BizzInfo[id][bExitZ]); 
                    
BizzInfo[id][bInteriorID] = GetPlayerInterior( playerid ); 
                    
SendClientMessage( playerid, COLOR_WHITE, "Interior changed!" ); 
                    
SaveBusiness(id); 
                } 
            } 
        } 
    } 
    return 
1; 
} 



Re: sscanf warning: 'z' is deprecated, consider using 'S' instead. - Konstantinos - 01.01.2017

That's because "z" specifier is no longer available. It states you should use "S" specifier for optional strings and reading the documentation in sscanf thread (something you should have done already), you'd see how you can use it.

Looking at your code, you don't even need an optional string as the player should give if they want interior or exterior. Use normal string specifier ("s[size_here]" specifier).


Re: sscanf warning: 'z' is deprecated, consider using 'S' instead. - DandyCorleone - 01.01.2017

ahh.. i see, thanks for helping