sellgun command.
#1

Hello guys, i have a sellgun command etc, but the issue is it dont give the player ammo its maxed if i wanted to have it as ammo such as /sellgun (playerid) (guntype) (ammo) how would i do it.


Код:
CMD:sellgun(playerid, params[])
{
    PrintCommand(playerid, "/sellgun", params);
	if(PlayerInfo[playerid][pJob] != 3)
	{
		SendClientMessage(playerid, COLOR_GRAD2, "You're not a weapon dealer.");
		return 1;
	}

	new choice[32], str[156];
	new giveplayerid;
	if(sscanf(params, "us[32]", giveplayerid, choice))
	{
		SendClientMessage(playerid, COLOR_WHITE, "USAGE: /sellgun [ID / name or part of name] [weapon]");
		SendClientMessage(playerid, COLOR_GREY, "Weapon Dealer Level 1: sdpistol(100 mats) 9mm(150 mats) shotgun(200 mats) ");
		SendClientMessage(playerid, COLOR_GREY, "Weapon Dealer Level 2: mp5(400 mats) bat(25 mats) rifle(1500 mats)");
		SendClientMessage(playerid, COLOR_GREY, "Weapon Dealer Level 3: katana(50 mats) ak47(2000 mats) deagle(1000 mats)");
		SendClientMessage(playerid, COLOR_GREY, "Weapon Dealer Level 4: spas(6000 mats) m4(3000 mats)");
		SendClientMessage(playerid, COLOR_GREY, "Weapon Dealer Level 5: sniper(7000 mats) knuckles(50 mats)");
		return 1;
	}
	if(strcmp(choice, "sdpistol", true) == 0)
	{
	    if(PlayerInfo[playerid][pWDealerSkill] < 0) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
	    if(PlayerInfo[playerid][pMaterials] < 100) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
		weaponbeingoffered[giveplayerid] = 23;
		beingofferedby[giveplayerid] = playerid;
	    format(str, sizeof(str), "%s has offered you a silenced pistol. /accept wep to accept it.", GetName(playerid));
		SendClientMessage(giveplayerid, COLOR_CYAN, str);
		return 1;
	}
	if(strcmp(choice, "9mm", true) == 0)
	{
		if(PlayerInfo[playerid][pWDealerSkill] < 0) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
	    if(PlayerInfo[playerid][pMaterials] < 150) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
		weaponbeingoffered[giveplayerid] = 22;
		beingofferedby[giveplayerid] = playerid;
	    format(str, sizeof(str), "%s has offered you a 9mm. /accept wep to accept it.", GetName(playerid));
		SendClientMessage(giveplayerid, COLOR_CYAN, str);
		return 1;
	}
	if(strcmp(choice, "shotgun", true) == 0)
	{
		if(PlayerInfo[playerid][pWDealerSkill] < 0) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
	    if(PlayerInfo[playerid][pMaterials] < 200) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
		weaponbeingoffered[giveplayerid] = 25;
		beingofferedby[giveplayerid] = playerid;
	    format(str, sizeof(str), "%s has offered you a shotgun. /accept wep to accept it.", GetName(playerid));
		SendClientMessage(giveplayerid, COLOR_CYAN, str);
		return 1;
	}
	if(strcmp(choice, "mp5", true) == 0)
	{
		if(PlayerInfo[playerid][pWDealerSkill] < 100) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
	    if(PlayerInfo[playerid][pMaterials] < 400) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
		weaponbeingoffered[giveplayerid] = 29;
		beingofferedby[giveplayerid] = playerid;
	    format(str, sizeof(str), "%s has offered you a mp5. /accept wep to accept it.", GetName(playerid));
		SendClientMessage(giveplayerid, COLOR_CYAN, str);
		return 1;
	}
	if(strcmp(choice, "bat", true) == 0)
	{
		if(PlayerInfo[playerid][pWDealerSkill] < 100) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
	    if(PlayerInfo[playerid][pMaterials] < 25) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
		weaponbeingoffered[giveplayerid] = 5;
		beingofferedby[giveplayerid] = playerid;
	    format(str, sizeof(str), "%s has offered you a baseball bat. /accept wep to accept it.", GetName(playerid));
		SendClientMessage(giveplayerid, COLOR_CYAN, str);
		return 1;
	}
	if(strcmp(choice, "ak47", true) == 0)
	{
		if(PlayerInfo[playerid][pWDealerSkill] < 200) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
	    if(PlayerInfo[playerid][pMaterials] < 1500) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
		weaponbeingoffered[giveplayerid] = 30;
		beingofferedby[giveplayerid] = playerid;
	    format(str, sizeof(str), "%s has offered you an ak47. /accept wep to accept it.", GetName(playerid));
		SendClientMessage(giveplayerid, COLOR_CYAN, str);
		return 1;
	}
	if(strcmp(choice, "m4", true) == 0)
	{
		if(PlayerInfo[playerid][pWDealerSkill] < 300) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
	    if(PlayerInfo[playerid][pMaterials] < 3000) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
		weaponbeingoffered[giveplayerid] = 31;
		beingofferedby[giveplayerid] = playerid;
	    format(str, sizeof(str), "%s has offered you a m4. /accept wep to accept it.", GetName(playerid));
		SendClientMessage(giveplayerid, COLOR_CYAN, str);
		return 1;
	}
	if(strcmp(choice, "rifle", true) == 0)
	{
		if(PlayerInfo[playerid][pWDealerSkill] < 100) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
	    if(PlayerInfo[playerid][pMaterials] < 2000) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
		weaponbeingoffered[giveplayerid] = 33;
		beingofferedby[giveplayerid] = playerid;
	    format(str, sizeof(str), "%s has offered you a rifle. /accept wep to accept it.", GetName(playerid));
		SendClientMessage(giveplayerid, COLOR_CYAN, str);
		return 1;
	}
	if(strcmp(choice, "deagle", true) == 0)
	{
		if(PlayerInfo[playerid][pWDealerSkill] < 200) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
	    if(PlayerInfo[playerid][pMaterials] < 1000) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
		weaponbeingoffered[giveplayerid] = 24;
		beingofferedby[giveplayerid] = playerid;
	    format(str, sizeof(str), "%s has offered you a deagle. /accept wep to accept it.", GetName(playerid));
		SendClientMessage(giveplayerid, COLOR_CYAN, str);
		return 1;
	}
	if(strcmp(choice, "spas", true) == 0)
	{
		if(PlayerInfo[playerid][pWDealerSkill] < 300) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
	    if(PlayerInfo[playerid][pMaterials] < 6000) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
		weaponbeingoffered[giveplayerid] = 27;
		beingofferedby[giveplayerid] = playerid;
	    format(str, sizeof(str), "%s has offered you a spas-12. /accept wep to accept it.", GetName(playerid));
		SendClientMessage(giveplayerid, COLOR_CYAN, str);
		return 1;
	}
	if(strcmp(choice, "katana", true) == 0)
	{
		if(PlayerInfo[playerid][pWDealerSkill] < 200) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
	    if(PlayerInfo[playerid][pMaterials] < 50) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
		weaponbeingoffered[giveplayerid] = 8;
		beingofferedby[giveplayerid] = playerid;
	    format(str, sizeof(str), "%s has offered you a katana. /accept wep to accept it.", GetName(playerid));
		SendClientMessage(giveplayerid, COLOR_CYAN, str);
		return 1;
	}
	if(strcmp(choice, "sniper", true) == 0)
	{
		if(PlayerInfo[playerid][pWDealerSkill] < 400) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
	    if(PlayerInfo[playerid][pMaterials] < 7000) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
		weaponbeingoffered[giveplayerid] = 34;
		beingofferedby[giveplayerid] = playerid;
	    format(str, sizeof(str), "%s has offered you a sniper. /accept wep to accept it.", GetName(playerid));
		SendClientMessage(giveplayerid, COLOR_CYAN, str);
		return 1;
	}
	if(strcmp(choice, "knuckles", true) == 0)
	{
		if(PlayerInfo[playerid][pWDealerSkill] < 400) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
	    if(PlayerInfo[playerid][pMaterials] < 50) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
		weaponbeingoffered[giveplayerid] = 1;
		beingofferedby[giveplayerid] = playerid;
	    format(str, sizeof(str), "%s has offered you a sniper. /accept wep to accept it.", GetName(playerid));
		SendClientMessage(giveplayerid, COLOR_CYAN, str);
		return 1;
	}
	return 1;
}
Reply
#2

why the hell do you have zcmd sscanf and strcmp combined in one command wtf?
Reply
#3

Quote:
Originally Posted by Aveger
Посмотреть сообщение
why the hell do you have zcmd sscanf and strcmp combined in one command wtf?
Because why the fuck not?

This script requires you to make two new variables, or switch it to the variables you have, which are pAmmo (in your PlayerInfo enum) and ammobeingoffered[MAX_PLAYERS];

Then, on your accept command, you must give the ammo from the ammobeingoffered variable and then reset it.

pawn Код:
CMD:sellgun(playerid, params[])
{
    PrintCommand(playerid, "/sellgun", params);
    if(PlayerInfo[playerid][pJob] != 3)
    {
        SendClientMessage(playerid, COLOR_GRAD2, "You're not a weapon dealer.");
        return 1;
    }

    new choice[32], str[156], ammo;
    new giveplayerid;
    if(sscanf(params, "us[32]i", giveplayerid, choice, ammo))
    {
        SendClientMessage(playerid, COLOR_WHITE, "USAGE: /sellgun [ID / name or part of name] [weapon] [ammo]");
        SendClientMessage(playerid, COLOR_GREY, "Weapon Dealer Level 1: sdpistol(100 mats) 9mm(150 mats) shotgun(200 mats) ");
        SendClientMessage(playerid, COLOR_GREY, "Weapon Dealer Level 2: mp5(400 mats) bat(25 mats) rifle(1500 mats)");
        SendClientMessage(playerid, COLOR_GREY, "Weapon Dealer Level 3: katana(50 mats) ak47(2000 mats) deagle(1000 mats)");
        SendClientMessage(playerid, COLOR_GREY, "Weapon Dealer Level 4: spas(6000 mats) m4(3000 mats)");
        SendClientMessage(playerid, COLOR_GREY, "Weapon Dealer Level 5: sniper(7000 mats) knuckles(50 mats)");
        return 1;
    }
    if(PlayerInfo[playerid][pAmmo] < ammo) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough ammo.");
    if(strcmp(choice, "sdpistol", true) == 0)
    {
        if(PlayerInfo[playerid][pWDealerSkill] < 0) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
        if(PlayerInfo[playerid][pMaterials] < 100) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
        weaponbeingoffered[giveplayerid] = 23;
        beingofferedby[giveplayerid] = playerid;
        ammobeingoffered[giveplayerid] = ammo;
        format(str, sizeof(str), "%s has offered you a silenced pistol. /accept wep to accept it.", GetName(playerid));
        SendClientMessage(giveplayerid, COLOR_CYAN, str);
        return 1;
    }
    if(strcmp(choice, "9mm", true) == 0)
    {
        if(PlayerInfo[playerid][pWDealerSkill] < 0) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
        if(PlayerInfo[playerid][pMaterials] < 150) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
        weaponbeingoffered[giveplayerid] = 22;
        beingofferedby[giveplayerid] = playerid;
        ammobeingoffered[giveplayerid] = ammo;
        format(str, sizeof(str), "%s has offered you a 9mm. /accept wep to accept it.", GetName(playerid));
        SendClientMessage(giveplayerid, COLOR_CYAN, str);
        return 1;
    }
    if(strcmp(choice, "shotgun", true) == 0)
    {
        if(PlayerInfo[playerid][pWDealerSkill] < 0) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
        if(PlayerInfo[playerid][pMaterials] < 200) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
        weaponbeingoffered[giveplayerid] = 25;
        beingofferedby[giveplayerid] = playerid;
        ammobeingoffered[giveplayerid] = ammo;
        format(str, sizeof(str), "%s has offered you a shotgun. /accept wep to accept it.", GetName(playerid));
        SendClientMessage(giveplayerid, COLOR_CYAN, str);
        return 1;
    }
    if(strcmp(choice, "mp5", true) == 0)
    {
        if(PlayerInfo[playerid][pWDealerSkill] < 100) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
        if(PlayerInfo[playerid][pMaterials] < 400) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
        weaponbeingoffered[giveplayerid] = 29;
        beingofferedby[giveplayerid] = playerid;
        ammobeingoffered[giveplayerid] = ammo;
        format(str, sizeof(str), "%s has offered you a mp5. /accept wep to accept it.", GetName(playerid));
        SendClientMessage(giveplayerid, COLOR_CYAN, str);
        return 1;
    }
    if(strcmp(choice, "bat", true) == 0)
    {
        if(PlayerInfo[playerid][pWDealerSkill] < 100) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
        if(PlayerInfo[playerid][pMaterials] < 25) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
        weaponbeingoffered[giveplayerid] = 5;
        beingofferedby[giveplayerid] = playerid;
        ammobeingoffered[giveplayerid] = ammo;
        format(str, sizeof(str), "%s has offered you a baseball bat. /accept wep to accept it.", GetName(playerid));
        SendClientMessage(giveplayerid, COLOR_CYAN, str);
        return 1;
    }
    if(strcmp(choice, "ak47", true) == 0)
    {
        if(PlayerInfo[playerid][pWDealerSkill] < 200) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
        if(PlayerInfo[playerid][pMaterials] < 1500) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
        weaponbeingoffered[giveplayerid] = 30;
        beingofferedby[giveplayerid] = playerid;
        ammobeingoffered[giveplayerid] = ammo;
        format(str, sizeof(str), "%s has offered you an ak47. /accept wep to accept it.", GetName(playerid));
        SendClientMessage(giveplayerid, COLOR_CYAN, str);
        return 1;
    }
    if(strcmp(choice, "m4", true) == 0)
    {
        if(PlayerInfo[playerid][pWDealerSkill] < 300) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
        if(PlayerInfo[playerid][pMaterials] < 3000) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
        weaponbeingoffered[giveplayerid] = 31;
        beingofferedby[giveplayerid] = playerid;
        ammobeingoffered[giveplayerid] = ammo;
        format(str, sizeof(str), "%s has offered you a m4. /accept wep to accept it.", GetName(playerid));
        SendClientMessage(giveplayerid, COLOR_CYAN, str);
        return 1;
    }
    if(strcmp(choice, "rifle", true) == 0)
    {
        if(PlayerInfo[playerid][pWDealerSkill] < 100) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
        if(PlayerInfo[playerid][pMaterials] < 2000) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
        weaponbeingoffered[giveplayerid] = 33;
        beingofferedby[giveplayerid] = playerid;
        ammobeingoffered[giveplayerid] = ammo;
        format(str, sizeof(str), "%s has offered you a rifle. /accept wep to accept it.", GetName(playerid));
        SendClientMessage(giveplayerid, COLOR_CYAN, str);
        return 1;
    }
    if(strcmp(choice, "deagle", true) == 0)
    {
        if(PlayerInfo[playerid][pWDealerSkill] < 200) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
        if(PlayerInfo[playerid][pMaterials] < 1000) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
        weaponbeingoffered[giveplayerid] = 24;
        beingofferedby[giveplayerid] = playerid;
        ammobeingoffered[giveplayerid] = ammo;
        format(str, sizeof(str), "%s has offered you a deagle. /accept wep to accept it.", GetName(playerid));
        SendClientMessage(giveplayerid, COLOR_CYAN, str);
        return 1;
    }
    if(strcmp(choice, "spas", true) == 0)
    {
        if(PlayerInfo[playerid][pWDealerSkill] < 300) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
        if(PlayerInfo[playerid][pMaterials] < 6000) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
        weaponbeingoffered[giveplayerid] = 27;
        beingofferedby[giveplayerid] = playerid;
        ammobeingoffered[giveplayerid] = ammo;
        format(str, sizeof(str), "%s has offered you a spas-12. /accept wep to accept it.", GetName(playerid));
        SendClientMessage(giveplayerid, COLOR_CYAN, str);
        return 1;
    }
    if(strcmp(choice, "katana", true) == 0)
    {
        if(PlayerInfo[playerid][pWDealerSkill] < 200) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
        if(PlayerInfo[playerid][pMaterials] < 50) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
        weaponbeingoffered[giveplayerid] = 8;
        beingofferedby[giveplayerid] = playerid;
        ammobeingoffered[giveplayerid] = ammo;
        format(str, sizeof(str), "%s has offered you a katana. /accept wep to accept it.", GetName(playerid));
        SendClientMessage(giveplayerid, COLOR_CYAN, str);
        return 1;
    }
    if(strcmp(choice, "sniper", true) == 0)
    {
        if(PlayerInfo[playerid][pWDealerSkill] < 400) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
        if(PlayerInfo[playerid][pMaterials] < 7000) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
        weaponbeingoffered[giveplayerid] = 34;
        beingofferedby[giveplayerid] = playerid;
        ammobeingoffered[giveplayerid] = ammo;
        format(str, sizeof(str), "%s has offered you a sniper. /accept wep to accept it.", GetName(playerid));
        SendClientMessage(giveplayerid, COLOR_CYAN, str);
        return 1;
    }
    if(strcmp(choice, "knuckles", true) == 0)
    {
        if(PlayerInfo[playerid][pWDealerSkill] < 400) return SendClientMessage(playerid, COLOR_GREY, "You are not a skilled enough weapon dealer.");
        if(PlayerInfo[playerid][pMaterials] < 50) return SendClientMessage(playerid, COLOR_GREY, "You don't have enough materials.");
        weaponbeingoffered[giveplayerid] = 1;
        beingofferedby[giveplayerid] = playerid;
        ammobeingoffered[giveplayerid] = ammo;
        format(str, sizeof(str), "%s has offered you a sniper. /accept wep to accept it.", GetName(playerid));
        SendClientMessage(giveplayerid, COLOR_CYAN, str);
        return 1;
    }
    return 1;
}
Reply
#4

Thanks mate btw zcmd sscanf and strcmp is sick
Reply
#5

maybe i'll try it out one day i dunno
Reply
#6

Quote:
Originally Posted by Aveger
Посмотреть сообщение
maybe i'll try it out one day i dunno
you should do . it works great thanks both of you.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)