Command help.
#1

Hey, why this command is aint working?

pawn Код:
CMD:give(playerid, params[])
{
    new strgv[128];
    new targetid,type;
    if(sscanf(params, "s[20]", params))
    {
        SendClientMessage(playerid, COLOR_WHITE, "USAGE: /take [type] [playerid] [amount]");
        SendClientMessage(playerid, COLOR_GREY, "TYPES: cigarettes | weed | crack");
        return 1;
    }
    if(!strcmp(params, "cigarettes", true))
    {
        if(sscanf(params, "ud", targetid, type)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /give cigarettes [playerid] [amount]");
        if(type > PlayerInfo[playerid][pCigars])return SendClientMessage(playerid,COLOR_GREY,"You do not have that much amount of cigarettes!");
        if(targetid == playerid)return SendClientMessage(playerid,COLOR_GREY,"You cannot give cigarettes to yourself!");
        PlayerInfo[playerid][pCigars] -= type;
        PlayerInfo[targetid][pCigars] +=type;
        format(strgv, sizeof(strgv), "%s gave you %d cigarettes.",GetName(playerid), type);
        SendClientMessage(targetid, COLOR_GREY, strgv);
        format(strgv, sizeof(strgv), "You gave to %s %d cigarettes.",GetName(targetid), type);
        SendClientMessage(playerid, COLOR_GREY, strgv);
    }

    else if(!strcmp(params, "weed", true))
    {
        if(sscanf(params, "ud", targetid, type)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /give weed [playerid] [amount]");
        if(type > PlayerInfo[playerid][pWeed])return SendClientMessage(playerid,COLOR_GREY,"You do not have that much amount of weed!");
        if(targetid == playerid)return SendClientMessage(playerid,COLOR_GREY,"You cannot give weed to yourself!");
        PlayerInfo[playerid][pWeed] -= type;
        PlayerInfo[targetid][pWeed] +=type;
        format(strgv, sizeof(strgv), "%s gave you %d grams of weed.",GetName(playerid), type);
        SendClientMessage(targetid, COLOR_GREY, strgv);
        format(strgv, sizeof(strgv), "You gave to %s %d grams of weed.",GetName(targetid), type);
        SendClientMessage(playerid, COLOR_GREY, strgv);
    }

    else if(!strcmp(params, "crack", true))
    {
        if(sscanf(params, "ud", targetid, type)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /give crack [playerid] [amount]");
        if(type > PlayerInfo[playerid][pCrack])return SendClientMessage(playerid,COLOR_GREY,"You do not have that much amount of crack!");
        if(targetid == playerid)return SendClientMessage(playerid,COLOR_GREY,"You cannot give crack to yourself!");
        PlayerInfo[playerid][pCrack] -= type;
        PlayerInfo[targetid][pCrack] +=type;
        format(strgv, sizeof(strgv), "%s gave you %d grams of crack.",GetName(playerid), type);
        SendClientMessage(targetid, COLOR_GREY, strgv);
        format(strgv, sizeof(strgv), "You gave to %s %d grams of crack.",GetName(targetid), type);
        SendClientMessage(playerid, COLOR_GREY, strgv);
    }
    return 1;
}
Reply
#2

You're checking if the whole parameters are "cigarettes", "Weed", etc. This will not be the case if you have a player ID in there. Do the following:

pawn Код:
CMD:give(playerid, params[])
{
    new strgv[128];
    new targetid,type, identifier[20];
    if(sscanf(params, "s[20]ud", identifier, targetid, type))
    {
        SendClientMessage(playerid, COLOR_WHITE, "USAGE: /give[type] [playerid] [amount]");
        SendClientMessage(playerid, COLOR_GREY, "TYPES: cigarettes | weed | crack");
        return 1;
    }
    if(!strcmp(identifier, "cigarettes", true))
    {
        if(type > PlayerInfo[playerid][pCigars])return SendClientMessage(playerid,COLOR_GREY,"You do not have that much amount of cigarettes!");
        if(targetid == playerid)return SendClientMessage(playerid,COLOR_GREY,"You cannot give cigarettes to yourself!");
        PlayerInfo[playerid][pCigars] -= type;
        PlayerInfo[targetid][pCigars] +=type;
        format(strgv, sizeof(strgv), "%s gave you %d cigarettes.",GetName(playerid), type);
        SendClientMessage(targetid, COLOR_GREY, strgv);
        format(strgv, sizeof(strgv), "You gave to %s %d cigarettes.",GetName(targetid), type);
        SendClientMessage(playerid, COLOR_GREY, strgv);
    }

    else if(!strcmp(identifier, "weed", true))
    {
        if(type > PlayerInfo[playerid][pWeed])return SendClientMessage(playerid,COLOR_GREY,"You do not have that much amount of weed!");
        if(targetid == playerid)return SendClientMessage(playerid,COLOR_GREY,"You cannot give weed to yourself!");
        PlayerInfo[playerid][pWeed] -= type;
        PlayerInfo[targetid][pWeed] +=type;
        format(strgv, sizeof(strgv), "%s gave you %d grams of weed.",GetName(playerid), type);
        SendClientMessage(targetid, COLOR_GREY, strgv);
        format(strgv, sizeof(strgv), "You gave to %s %d grams of weed.",GetName(targetid), type);
        SendClientMessage(playerid, COLOR_GREY, strgv);
    }

    else if(!strcmp(identifier, "crack", true))
    {
        if(type > PlayerInfo[playerid][pCrack])return SendClientMessage(playerid,COLOR_GREY,"You do not have that much amount of crack!");
        if(targetid == playerid)return SendClientMessage(playerid,COLOR_GREY,"You cannot give crack to yourself!");
        PlayerInfo[playerid][pCrack] -= type;
        PlayerInfo[targetid][pCrack] +=type;
        format(strgv, sizeof(strgv), "%s gave you %d grams of crack.",GetName(playerid), type);
        SendClientMessage(targetid, COLOR_GREY, strgv);
        format(strgv, sizeof(strgv), "You gave to %s %d grams of crack.",GetName(targetid), type);
        SendClientMessage(playerid, COLOR_GREY, strgv);
    }
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)