PHP код:
// объявляем массив в котором указаны слоты к каждому оружию
static const weapon_slot[47] =
{
0, 0,
1, 1, 1, 1, 1, 1, 1, 1,
10, 10, 10, 10, 10, 10,
8, 8, 8,
0, 0, 0, //19-21
2, 2, 2,
3, 3, 3,
4, 4,
5, 5,
4,
6, 6,
7, 7, 7, 7,
8,
12,
9, 9, 9,
11, 11, 11
};
//собственно вот и сам фикс
stock FIX_SetPlayerAmmo(playerid, weaponid, ammo) // устанавливаем кол-во патронов
{
new getweapon, getammo;
if(GetPlayerWeaponData(playerid, weapon_slot[weaponid], getweapon, getammo) == 0)
return -1;
if(weaponid != getweapon)
return 0;
if(getammo != 0) SetPlayerAmmo(playerid, weaponid, ammo);
else GivePlayerWeapon(playerid, weaponid, ammo);
return 1;
}
#if defined _ALS_SetPlayerAmmo
#undef SetPlayerAmmo
#else
#define _ALS_SetPlayerAmmo
#endif
#define SetPlayerAmmo FIX_SetPlayerAmmo
//конец фикса, дальше чисто для собственной нужды писал
//Ещё один олд варик
stock GivePlayerAmmo(playerid, weaponid, amount) // выдаём/забираем кол-во патронов
{
new getweapon, getammo;
if(GetPlayerWeaponData(playerid, weapon_slot[weaponid], getweapon, getammo) == 0)
return -1;
if(weaponid != getweapon)
return 0;
if(getammo != 0) SetPlayerAmmo(playerid, weaponid, getammo + amount);
else GivePlayerWeapon(playerid, weaponid, amount);
return 1;
}