Can Only Buy From Shop If Has License
#1

I have this code for Ammunation:

Код:
}
	if (strcmp(cmd, "/buygun", true) == 0)
	{
	  if(IsPlayerConnected(playerid))
	  {
	    if(GetPlayerMoney(playerid) < 1)
			{
			  SendClientMessage(playerid, COLOR_GREY, "  You dont have enough money with you !");
			  return 1;
			}
			new gun;
			new gunid[16];
			new gunstring1[256];
			new gunstring2[256];
			new gunstring3[256];
			new gunstring4[256];
			new gunstring5[256];
			new infostring[256];
			new guncharge;
			new ammocharge;
			new location = PlayerInfo[playerid][pLocal];
			if(location == 99 || location == 100 || location == 102)
			{
			  if(BizzInfo[location-99][bProducts] <= 0)
			  {
			    GameTextForPlayer(playerid, "~r~Out Of Stock", 5000, 1);
					return 1;
			  }
				new mod = 100;
				tmp = strtok(cmdtext, idx);
				if(!strlen(tmp))
				{
					format(string, sizeof(string), "USAGE: /buygun [gunname] [ammoamount]");
					SendClientMessage(playerid, COLOR_GREEN,"_______________________________________");
					SendClientMessage(playerid, COLOR_WHITE,"*** Guns & Ammo ***");
					SendClientMessage(playerid, COLOR_GRAD2,string);
					format(gunstring1, 256, "Weapons: parachute ($%d) golfclub ($%d) nightstick ($%d) baseballbat ($%d) shovel ($%d) poolcue ($%d)",
					GunPrice[0][0]/100*mod,GunPrice[1][0]/100*mod,GunPrice[2][0]/100*mod,GunPrice[3][0]/100*mod,GunPrice[4][0]/100*mod,GunPrice[5][0]/100*mod,GunPrice[6][0]/100*mod);
					SendClientMessage(playerid, COLOR_GRAD3, gunstring1);
					format(gunstring2, 256, "Weapons: purpledildo ($%d) whitedildo ($%d) longwhitedildo ($%d) whitedildo2 ($%d) flowers ($%d) cane",
					GunPrice[7][0]/100*mod,GunPrice[8][0]/100*mod,GunPrice[9][0]/100*mod,GunPrice[10][0]/100*mod,GunPrice[11][0]/100*mod,GunPrice[12][0]/100*mod);
					SendClientMessage(playerid, COLOR_GRAD3, gunstring2);
					format(gunstring3, 256, "Weapons: sdpistol ($%d) deagle ($%d) mp5 ($%d)",
					GunPrice[13][0]/100*mod,GunPrice[14][0]/100*mod,GunPrice[15][0]/100*mod,GunPrice[16][0]/100*mod,GunPrice[17][0]/100*mod,GunPrice[18][0]/100*mod);
					SendClientMessage(playerid, COLOR_GRAD3, gunstring3);
					format(gunstring4, 256, "Weapons: shotgun ($%d) ak47 ($%d) m4 ($%d) rifle ($%d)",
					GunPrice[19][0]/100*mod,GunPrice[20][0]/100*mod,GunPrice[21][0]/100*mod,GunPrice[22][0]/100*mod,GunPrice[23][0]/100*mod,GunPrice[24][0]/100*mod);
					SendClientMessage(playerid, COLOR_GRAD3, gunstring4);
					format(gunstring5, 256, "Weapons: pistolammo ($%d) shotgunammo ($%d) smgammo ($%d) assaultammo ($%d) rifleammo ($%d)",
					GunPrice[25][0],GunPrice[26][0],GunPrice[27][0],GunPrice[28][0],GunPrice[29][0]);
					SendClientMessage(playerid, COLOR_GRAD3, gunstring5);
					SendClientMessage(playerid, COLOR_GREEN,"_______________________________________");
					return 1;
				}
				strmid(gunid, tmp, 0, strlen(cmdtext), 255);
				tmp = strtok(cmdtext, idx);
				if(!strlen(tmp))
				{
					format(string, sizeof(string), "USAGE: /buygun [gunname] [ammoamount]");
					return 1;
				}
				new ammo = strval(tmp);
				if(ammo < 1 || ammo > 999) { SendClientMessage(playerid, COLOR_GREY, "  Ammo ammount not lower then 1 or higher then 999 !"); return 1; }
				if (strcmp(gunid, "parachute", true, strlen(gunid)) == 0)
				{
					gun = 46;
					guncharge = GunPrice[0][0]/100*mod;
					ammocharge = 0;
				}
				else if (strcmp(gunid, "golfclub", true, strlen(gunid)) == 0)
				{
					gun = 2; guncharge = GunPrice[1][0]/100*mod; ammocharge = 0;
					//PlayerInfo[playerid][pGun1] = 2; PlayerInfo[playerid][pAmmo1] = 1;
				}
				else if (strcmp(gunid, "nightstick", true, strlen(gunid)) == 0)
				{
					gun = 3; guncharge = GunPrice[2][0]/100*mod; ammocharge = 0;
					//PlayerInfo[playerid][pGun1] = 3; PlayerInfo[playerid][pAmmo1] = 1;
				}
				else if (strcmp(gunid, "baseballbat", true, strlen(gunid)) == 0)
				{
					gun = 5; guncharge = GunPrice[4][0]/100*mod; ammocharge = 0;
					//PlayerInfo[playerid][pGun1] = 5; PlayerInfo[playerid][pAmmo1] = 1;
				}
				else if (strcmp(gunid, "shovel", true, strlen(gunid)) == 0)
				{
					gun = 6; guncharge = GunPrice[5][0]/100*mod; ammocharge = 0;
					//PlayerInfo[playerid][pGun1] = 6; PlayerInfo[playerid][pAmmo1] = 1;
				}
				else if (strcmp(gunid, "poolcue", true, strlen(gunid)) == 0)
				{
					gun = 7; guncharge = GunPrice[6][0]/100*mod; ammocharge = 0;
					//PlayerInfo[playerid][pGun1] = 7; PlayerInfo[playerid][pAmmo1] = 1;
				}
				else if (strcmp(gunid, "purpledildo", true, strlen(gunid)) == 0)
				{
					gun = 10; guncharge = GunPrice[7][0]/100*mod; ammocharge = 0;
					//PlayerInfo[playerid][pGun1] = 10; PlayerInfo[playerid][pAmmo1] = 1;
				}
				else if (strcmp(gunid, "whitedildo", true, strlen(gunid)) == 0)
				{
					gun = 11; guncharge = GunPrice[8][0]/100*mod; ammocharge = 0;
					//PlayerInfo[playerid][pGun1] = 11; PlayerInfo[playerid][pAmmo1] = 1;
				}
				else if (strcmp(gunid, "longwhitedildo", true, strlen(gunid)) == 0)
				{
					gun = 12; guncharge = GunPrice[9][0]/100*mod; ammocharge = 0;
					//PlayerInfo[playerid][pGun1] = 12; PlayerInfo[playerid][pAmmo1] = 1;
				}
				else if (strcmp(gunid, "whitedildo2", true, strlen(gunid)) == 0)
				{
					gun = 13; guncharge = GunPrice[10][0]/100*mod; ammocharge = 0;
					//PlayerInfo[playerid][pGun1] = 13; PlayerInfo[playerid][pAmmo1] = 1;
				}
				else if (strcmp(gunid, "flowers", true, strlen(gunid)) == 0)
				{
					gun = 14; guncharge = GunPrice[11][0]/100*mod; ammocharge = 0;
					//PlayerInfo[playerid][pGun1] = 14; PlayerInfo[playerid][pAmmo1] = 1;
				}
				else if (strcmp(gunid, "cane", true, strlen(gunid)) == 0)
				{
					gun = 15; guncharge = GunPrice[12][0]/100*mod; ammocharge = 0;
					//PlayerInfo[playerid][pGun1] = 15; PlayerInfo[playerid][pAmmo1] = 1;
				}
				else if (strcmp(gunid, "sdpistol", true, strlen(gunid)) == 0)
				{
					gun = 23; guncharge = GunPrice[13][0]/100*mod; ammocharge = GunPrice[25][0]*ammo;
					//PlayerInfo[playerid][pGun2] = 23; PlayerInfo[playerid][pAmmo2] = ammo;
				}
				else if (strcmp(gunid, "deagle", true, strlen(gunid)) == 0)
				{
					gun = 24; guncharge = GunPrice[15][0]/100*mod; ammocharge = GunPrice[25][0]*ammo;
					//PlayerInfo[playerid][pGun2] = 24; PlayerInfo[playerid][pAmmo2] = ammo;
				}
				else if (strcmp(gunid, "mp5", true, strlen(gunid)) == 0)
				{
					gun = 29; guncharge = GunPrice[18][0]/100*mod; ammocharge = GunPrice[27][0]*ammo;
					//PlayerInfo[playerid][pGun3] = 29; PlayerInfo[playerid][pAmmo3] = ammo;
				}
				else if (strcmp(gunid, "shotgun", true, strlen(gunid)) == 0)
				{
					gun = 25; guncharge = GunPrice[19][0]/100*mod; ammocharge = GunPrice[26][0]*ammo;
					//PlayerInfo[playerid][pGun3] = 25; PlayerInfo[playerid][pAmmo3] = ammo;
				}
				else if (strcmp(gunid, "ak47", true, strlen(gunid)) == 0)
				{
					gun = 30; guncharge = GunPrice[22][0]/100*mod; ammocharge = GunPrice[28][0]*ammo;
					//PlayerInfo[playerid][pGun4] = 30; PlayerInfo[playerid][pAmmo4] = ammo;
				}
				else if (strcmp(gunid, "m4", true, strlen(gunid)) == 0)
				{
					gun = 31; guncharge = GunPrice[23][0]/100*mod; ammocharge = GunPrice[28][0]*ammo;
					//PlayerInfo[playerid][pGun4] = 31; PlayerInfo[playerid][pAmmo4] = ammo;
				}
				else if (strcmp(gunid, "rifle", true, strlen(gunid)) == 0)
				{
					gun = 33; guncharge = GunPrice[24][0]/100*mod; ammocharge = GunPrice[29][0]*ammo;
					//PlayerInfo[playerid][pGun4] = 33; PlayerInfo[playerid][pAmmo4] = ammo;
				}
				else
				{
					SendClientMessage(playerid, COLOR_GRAD6, "ShopKeeper says: I have never heard of that weapon.");
					return 1;
				}
				if((guncharge+ammocharge) > GetPlayerMoney(playerid))
				{
					format(infostring, 256, "  You don't have $%d !",guncharge+ammocharge);
					SendClientMessage(playerid, COLOR_GRAD3, infostring);
					return 1;
				}
				if(GetPlayerMoney(playerid) < (guncharge+ammocharge))
				{
				  SendClientMessage(playerid, COLOR_GREY, "  Can't afford that !");
				  return 1;
				}
				new payout = guncharge + ammocharge;
				format(infostring, 256, "You have purchased %s with %d ammo for $%d",gunid,ammo,payout);
				SendClientMessage(playerid, COLOR_GRAD3, infostring);
				if(location == 102 && IsACop(playerid)) { }
				else { SafeGivePlayerMoney(playerid, - payout); }
				BizzInfo[location-99][bTill] += payout;
				ExtortionBiz(location-99, payout);
				BizzInfo[location-99][bProducts]--;
				PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
				SafeGivePlayerWeapon(playerid, gun, ammo);
				GetPlayerName(playerid, sendername, sizeof(sendername));
				format(string, sizeof(string), "%s bought weapons for $%d at biz %d", sendername, payout, location-99);
				printf("%s", string);
				PayLog(string);
			}
			else
			{
			  SendClientMessage(playerid, COLOR_WHITE,"You are not in a store.");
				return 1;
			}
		}
		return 1;
	}
But I want it so that only people with a weapon license can buy from Ammunation.

Can anyone help?
Reply
#2

Here the beginning of your buygun:
pawn Код:
if (strcmp(cmd, "/buygun", true) == 0)
    {
      if(IsPlayerConnected(playerid))
      {
       if(License[playerid]!=1) return SendClientMessage(playerid, COLOR_GREY, "You need a license first. Use /license");
        if(GetPlayerMoney(playerid) < 1)
            {
              SendClientMessage(playerid, COLOR_GREY, "  You dont have enough money with you !");
              return 1;
            }

//Go on with the rest of your command....
At Top:
pawn Код:
new License[MAX_PLAYERS];
At OnPlayerDisconnect:
pawn Код:
License[playerid]=0;
Command:
pawn Код:
if (strcmp(cmd, "/license", true) == 0)
{
// Add whatever you want.
License[playerid]=1;
return 1;
}

Hope this helped you.
If not, just ask.

Jeffry
Reply
#3

Thanks, I'll try it now and give you feedback.

I'll probably position it all wrong, but hopefully I'll do it.
Reply
#4

Quote:
Originally Posted by Jeffry
At Top:
pawn Код:
new License[MAX_PLAYERS];
At OnPlayerDisconnect:
pawn Код:
License[playerid]=0;
Command:
pawn Код:
if (strcmp(cmd, "/license", true) == 0)
{
// Add whatever you want.
License[playerid]=1;
return 1;
}
Where do I put them exactly?
Reply
#5

At Top of your script. (under: #include <a_samp>)
pawn Код:
new License[MAX_PLAYERS];
Under OnPlayerDisconnect:
pawn Код:
License[playerid]=0;
Under your /buygun command:
pawn Код:
if (strcmp(cmd, "/license", true) == 0)
{
// Add whatever you want.
License[playerid]=1;
return 1;
}
I hope you know now.
Reply
#6

I think he's using some GF edit, ask in the GF topic then, because there's an array for weapon license.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)