Oh, god.. I don't even think this should work. Why not make it so you do /guns (ammo) (weapon id/name) ?
Not very hard.. I'll whip one up.
pawn Код:
//Custom enum made by me (put at top of script)
enum _WeaponInfo {
Name[60],Valid,Slot,
}
new WeaponInfo[][_WeaponInfo] =
{
{"Fist",1,0},
{"Brass Knuckles",1,0},
{"Golf Club",1,1},
{"Nightstick",1,1},
{"Knife",1,1},
{"Baseball Bat",1,1},
{"Shovel",1,1},
{"Pool cue",1,1},
{"Katana",1,1},
{"Chainsaw",1,1},
{"Double-ended Dildo",1,10},
{"Dildo",1,10},
{"Vibrator",1,10},
{"Silver Vibrator",1,10},
{"Flowers",1,10},
{"Cane",1,10},
{"Grenade",1,8},
{"Tear Gas",1,8},
{"Molotov Cocktail",1,8},
{"",0},
{"",0},
{"",0},
{"9mm Pistol",1,2},
{"Silenced 9mm",1,2},
{"Deagle",1,2},
{"Shotgun",1,3},
{"Sawnoff Shotgun",1,3},
{"Combat Shotgun",1,3},
{"Micro SMG",1,4},
{"MP5",1,4},
{"AK-47",1,5},
{"M4",1,5},
{"Tec-9",1,4},
{"Country Rifle",1,6},
{"Sniper Rifle",1,6},
{"RPG",1,7},
{"HS Rocket",1,7},
{"Flamethrower",1,7},
{"Minigun",1,7},
{"Sachel Charge",1,8},
{"Detonator",1,12},
{"Spray Can",1,9},
{"Fire Extinguisher",1,9},
{"Camera",1,9},
{"Night Vision Goggles",0,11},
{"Thermal Goggles",0,11},
{"Parachute",1,11}
};
//And the command:
YCMD:guns(playerid,params[],help)
{
new weaponstring[45], ammo, weaponid = -1, str[70];
if(sscanf(params,"is[45]", ammo, weaponstring)) return SendClientMessage(playerid,0xFFFFFFFF,"USAGE: /guns (ammo) (weapon id/name)");
if(ammo > 65535 || ammo < 1) return SendClientMessage(playerid,0xFFFFFFFF,"You have entered an invalid ammo value");
if(StringNumeric(weaponstring))
{
weaponid = strval(weaponstring);
}
else
{
weaponid = CheckWeaponID(weaponstring);
}
if(weaponid == -1) return SendClientMessage(playerid,0xFFFFFFFF,"Error: The processed weapon id is invalid");
if(weaponid == -2) return SendClientMessage(playerid,0xFFFFFFFF,"Error: The weapon id you chose is forbidden");
if(WeaponInfo[weaponid][Valid] == 0) return SendClientMessage(playerid,0xFFFFFFFF,"Error: The weapon id you chose is forbidden");
if(weaponid < 0 || weaponid > 46) return SendClientMessage(playerid,0xFFFFFFFF,"Error: You have entered an invalid weapon id");
GivePlayerWeapon(playerid, weaponid, ammo);
format(str, sizeof(str),"Server: You have been given a(n) %s (Slot: %d) with %d ammo.",
WeaponInfo[weaponid][Name], WeaponInfo[weaponid][Slot], ammo);
SendClientMessage(playerid, 0xFFFFFFFF, str);
return 1;
}
//Functions:
StringNumeric(const str[])
{
for(new i = 0,ii = strlen(str);i < ii;i++)
{
if(str[i] > '9' || str[i] < '0') return 0;
}
return 1;
}
stock CheckWeaponID(name[])
{
for(new i = 0; i < 46; i++)
{
if(strfind(WeaponInfo[i][Name], name, true) != -1)
{
if(WeaponInfo[i][Valid] == 0) return -2;
return i;
}
}
return -1;
}