Here. This is the stock I am using for spawning the weapons.
pawn Код:
stock GiveAdminSpawnedWeapon(playerid, weaponid, ammo)
{
GunsBeingRemoved[playerid] = 1;
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
if(weaponid == 0 || weaponid == 1)
{ // Slot 0
GunsBeingRemoved[playerid] = 1;
PlayerInfo[playerid][pGun00] = weaponid;
PlayerInfo[playerid][pAmmo00] = ammo;
GunsBeingRemoved[playerid] = 1;
}
else if(weaponid == 2 || weaponid == 3 || weaponid == 4 || weaponid == 5 || weaponid == 6 || weaponid == 7 || weaponid == 8 || weaponid == 9)
{ // Slot 1
GunsBeingRemoved[playerid] = 1;
PlayerInfo[playerid][pGun01] = weaponid;
PlayerInfo[playerid][pAmmo01] = ammo;
GunsBeingRemoved[playerid] = 1;
}
else if(weaponid == 22 || weaponid == 23 || weaponid == 24)
{ // Slot 2
GunsBeingRemoved[playerid] = 1;
PlayerInfo[playerid][pGun02] = weaponid;
PlayerInfo[playerid][pAmmo02] = ammo;
GunsBeingRemoved[playerid] = 1;
}
else if(weaponid == 25 || weaponid == 26 || weaponid == 27)
{ // Slot 3
GunsBeingRemoved[playerid] = 1;
PlayerInfo[playerid][pGun03] = weaponid;
PlayerInfo[playerid][pAmmo03] = ammo;
GunsBeingRemoved[playerid] = 1;
}
else if(weaponid == 28 || weaponid == 29 || weaponid == 32)
{ // Slot 4
GunsBeingRemoved[playerid] = 1;
PlayerInfo[playerid][pGun04] = weaponid;
PlayerInfo[playerid][pAmmo04] = ammo;
GunsBeingRemoved[playerid] = 1;
}
else if(weaponid == 30 || weaponid == 31)
{ // Slot 5
GunsBeingRemoved[playerid] = 1;
PlayerInfo[playerid][pGun05] = weaponid;
PlayerInfo[playerid][pAmmo05] = ammo;
GunsBeingRemoved[playerid] = 1;
}
else if(weaponid == 33 || weaponid == 34)
{ // Slot 6
GunsBeingRemoved[playerid] = 1;
PlayerInfo[playerid][pGun06] = weaponid;
PlayerInfo[playerid][pAmmo06] = ammo;
GunsBeingRemoved[playerid] = 1;
}
else if(weaponid == 35 || weaponid == 36 || weaponid == 37 || weaponid == 38)
{ // Slot 7
GunsBeingRemoved[playerid] = 1;
PlayerInfo[playerid][pGun07] = weaponid;
PlayerInfo[playerid][pAmmo07] = ammo;
GunsBeingRemoved[playerid] = 1;
}
else if(weaponid == 16 || weaponid == 17 || weaponid == 18 || weaponid == 39)
{ // Slot 8
GunsBeingRemoved[playerid] = 1;
PlayerInfo[playerid][pGun08] = weaponid;
PlayerInfo[playerid][pAmmo08] = ammo;
GunsBeingRemoved[playerid] = 1;
}
else if(weaponid == 41 || weaponid == 42 || weaponid == 43)
{ // Slot 9
GunsBeingRemoved[playerid] = 1;
PlayerInfo[playerid][pGun09] = weaponid;
PlayerInfo[playerid][pAmmo09] = ammo;
GunsBeingRemoved[playerid] = 1;
}
else if(weaponid == 10 || weaponid == 11 || weaponid == 12 || weaponid == 13 || weaponid == 14 || weaponid == 15)
{ // Slot 10
GunsBeingRemoved[playerid] = 1;
PlayerInfo[playerid][pGun10] = weaponid;
PlayerInfo[playerid][pAmmo10] = ammo;
GunsBeingRemoved[playerid] = 1;
}
else if(weaponid == 44 || weaponid == 45 || weaponid == 46)
{ // Slot 11
GunsBeingRemoved[playerid] = 1;
PlayerInfo[playerid][pGun11] = weaponid;
PlayerInfo[playerid][pAmmo11] = ammo;
GunsBeingRemoved[playerid] = 1;
}
GivePlayerWeapon(playerid, weaponid, ammo);
return 1;
}
The command itself.
pawn Код:
CMD:agiveweapon(playerid, params[])
{
if(PlayerInfo[playerid][AdminLevel] >= 3)
{
new targetid, gunid, ammo, string[128];
if(sscanf(params, "uii", targetid, gunid, ammo)) return SendClientMessage(playerid, GREY, "USAGE: /agiveweapon [playerid] [weaponid] [ammo]");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, GREY, NotConnected);
if(gunid < 0 || gunid == 19 || gunid == 20 || gunid == 21) return SendClientMessage(playerid, GREY, "Invalid Weapon id.");
GiveAdminSpawnedWeapon(targetid, gunid, ammo);
format(string, sizeof(string), " You have given %s a %s with %d ammo.", TInfo(targetid), GInfo(gunid), ammo);
SendClientMessage(playerid, LIBLUE, string);
format(string, sizeof(string), " Administrator %s has given you a %s with %d ammo.", TInfo(targetid), GInfo(gunid), ammo);
SendClientMessage(targetid, LIBLUE, string);
}
return 1;
}
I dont think I have anything to update the ammo. Here is the way I save weapons and their ammo.
pawn Код:
INI_WriteInt(File,"Gun00",PlayerInfo[playerid][pGun00]);
INI_WriteInt(File,"Gun01",PlayerInfo[playerid][pGun01]);
INI_WriteInt(File,"Gun02",PlayerInfo[playerid][pGun02]);
INI_WriteInt(File,"Gun03",PlayerInfo[playerid][pGun03]);
INI_WriteInt(File,"Gun04",PlayerInfo[playerid][pGun04]);
INI_WriteInt(File,"Gun05",PlayerInfo[playerid][pGun05]);
INI_WriteInt(File,"Gun06",PlayerInfo[playerid][pGun06]);
INI_WriteInt(File,"Gun07",PlayerInfo[playerid][pGun07]);
INI_WriteInt(File,"Gun08",PlayerInfo[playerid][pGun08]);
INI_WriteInt(File,"Gun09",PlayerInfo[playerid][pGun09]);
INI_WriteInt(File,"Gun10",PlayerInfo[playerid][pGun10]);
INI_WriteInt(File,"Gun11",PlayerInfo[playerid][pGun11]);
INI_WriteInt(File,"Ammo00",PlayerInfo[playerid][pAmmo00]);
INI_WriteInt(File,"Ammo01",PlayerInfo[playerid][pAmmo01]);
INI_WriteInt(File,"Ammo02",PlayerInfo[playerid][pAmmo02]);
INI_WriteInt(File,"Ammo03",PlayerInfo[playerid][pAmmo03]);
INI_WriteInt(File,"Ammo04",PlayerInfo[playerid][pAmmo04]);
INI_WriteInt(File,"Ammo05",PlayerInfo[playerid][pAmmo05]);
INI_WriteInt(File,"Ammo06",PlayerInfo[playerid][pAmmo06]);
INI_WriteInt(File,"Ammo07",PlayerInfo[playerid][pAmmo07]);
INI_WriteInt(File,"Ammo08",PlayerInfo[playerid][pAmmo08]);
INI_WriteInt(File,"Ammo09",PlayerInfo[playerid][pAmmo09]);
INI_WriteInt(File,"Ammo10",PlayerInfo[playerid][pAmmo10]);
INI_WriteInt(File,"Ammo11",PlayerInfo[playerid][pAmmo11]);