SSCANF Errors
#1

PHP код:
CMD:unpackageweapon(playeridparams[])
{
    new 
playerpackagetypestr[128];
    if(
sscanf(params"su"packagetypeplayerid)) return SendClientMessage(playeridCOLOR_GRAY"/unpackage [playerid] [packagetype]");
    {
        if(
IsInRangeOfPlayer(playeridplayer5))
        {
            if(!
strcmp(packagetype"pistol"true))
            {
                if(
Inventory[playerid][PistolPackage] > 0)
                {
                    
TakeInventoryItem(playeridPISTOLPACKAGE1);
                    
GivePlayerGun(player24100);
                }
                else 
SendErrorMessage(playerid"You don't have this item.");
                return 
1;
            }
            else if(!
strcmp(packagetype"shotgun"true))
            {
                if(
Inventory[playerid][ShotgunPackage] > 0)
                {
                    
TakeInventoryItem(playeridSHOTGUNPACKAGE1);
                    
GivePlayerGun(player25125);
                }
                else 
SendErrorMessage(playerid"You don't have this item.");
                }
                else if(!
strcmp(packagetype"automatic"true))
            {
                if(
Inventory[playerid][AutomaticRiflePackage] > 0)
                {
                    
TakeInventoryItem(playeridAUTOMATICRIFLEPACKAGE1);
                    
format(strsizeof(str), "%s hands an M4 to %s. "GetRoleplayName(playerid), GetRoleplayName(player));
                    
SetPlayerChatBubble(playeridstrCOLOR_RPRange_Short7000);
                    
GivePlayerGun(player31250);
                }
                    else if(!
strcmp(packagetype"molotov"true))
            {
                if(
Inventory[playerid][ExplosivePackage] > 0)
                {
                    
TakeInventoryItem(playeridEXPLOSIVEPACKAGE1);
                    
format(strsizeof(str), "%s hands a Molotov %s. "GetRoleplayName(playerid), GetRoleplayName(player));
                    
SetPlayerChatBubble(playeridstrCOLOR_RPRange_Short7000);
                    
GivePlayerGun(player181);
                }
                else 
SendErrorMessage(playerid"You don't have this item.");
                return 
1;
                }
            }
        }
        else 
SendErrorMessage(playerid"You are too far away from this player.");
    }
    return 
1;

PHP код:
C:\Users\Austin\Desktop\Stuff\United Roleplay\gamemodes\U:RP-R39.pwn(17007) : error 035argument type mismatch (argument 1)
C:\Users\Austin\Desktop\Stuff\United Roleplay\gamemodes\U:RP-R39.pwn(17018) : error 035argument type mismatch (argument 1)
C:\Users\Austin\Desktop\Stuff\United Roleplay\gamemodes\U:RP-R39.pwn(17028) : error 035argument type mismatch (argument 1)
C:\Users\Austin\Desktop\Stuff\United Roleplay\gamemodes\U:RP-R39.pwn(17037) : error 035argument type mismatch (argument 1 
These are the lines, where it has "packagetype". Why is this?

PHP код:
else if(!strcmp(packagetype"pistol"true)) 
Reply
#2

Packagetype isn't a string. Make it a string.
Reply
#3

Код:
CMD:unpackageweapon(playerid, params[])
{
   	new packagetype[12], player, str[128];

	if(sscanf(params, "D(-1)s[12]", player, packagetype))
		return SendClientMessage(playerid, COLOR_GRAY, "/unpackage [playerid] [packagetype]");

    if(!IsInRangeOfPlayer(playerid, player, 5))
       return SendClientMessage(playerid, COLOR_GRAY, "You are too far away from this player.");

    if(!strcmp(packagetype, "pistol", true))
    {
        if(Inventory[playerid][PistolPackage] > 0)
        {
            TakeInventoryItem(playerid, PISTOLPACKAGE, 1);
            GivePlayerGun(player, 24, 100);
        }
        else SendErrorMessage(playerid, "You don't have this item.");
    }
    else if(!strcmp(packagetype, "shotgun", true))
    {
	    if(Inventory[playerid][ShotgunPackage] > 0)
	    {
	        TakeInventoryItem(playerid, SHOTGUNPACKAGE, 1);
	        GivePlayerGun(player, 25, 125);
	    }
	    else SendErrorMessage(playerid, "You don't have this item.");
   	}
	else if(!strcmp(packagetype, "automatic", true))
    {
        if(Inventory[playerid][AutomaticRiflePackage] > 0)
        {
            TakeInventoryItem(playerid, AUTOMATICRIFLEPACKAGE, 1);
            format(str, sizeof(str), "%s hands an M4 to %s. ", GetRoleplayName(playerid), GetRoleplayName(player));
            SetPlayerChatBubble(playerid, str, COLOR_RP, Range_Short, 7000);
            GivePlayerGun(player, 31, 250);
        }
        else SendErrorMessage(playerid, "You don't have this item.");
   	}
    else if(!strcmp(packagetype, "molotov", true))
    {
        if(Inventory[playerid][ExplosivePackage] > 0)
        {
            TakeInventoryItem(playerid, EXPLOSIVEPACKAGE, 1);
            format(str, sizeof(str), "%s hands a Molotov %s. ", GetRoleplayName(playerid), GetRoleplayName(player));
            SetPlayerChatBubble(playerid, str, COLOR_RP, Range_Short, 7000);
            GivePlayerGun(player, 18, 1);
        }
        else SendErrorMessage(playerid, "You don't have this item.");
    }
    return 1;
}
Reply
#4

Why would you use D(-1) for playerid Freedom?
Reply
#5

Check for is player id entered:

Код:
else if(!strcmp(packagetype, "select", true))
{
	if(player == -1)
		return SendClientMessage(playerid, COLOR_GRAY, "/unpackage select <player ID>");

	if(!IsPlayerConnected(player))
		return SendClientMessage(playerid, COLOR_GRAY, "id not found");

	// ...
	
	return 1;
}
Reply
#6

But why would you do that when you could just use the user specifier for playerid OR name?
Reply
#7

It works and that's all that matters, everyone has their own style of coding. Thank you.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)