Код
stock SetWeaponItem(client, const String:ClassName[], q, w, e)
{
new ov_MyWeapons = FindSendPropOffs("CBasePlayer", "m_hMyWeapons");
new ov_offset = FindDataMapOffs(client, "m_iAmmo");
new index = CreateEntityByName("game_player_equip");
if (index < 1)return;
DispatchKeyValue(index, ClassName, "1");
DispatchSpawn(index);
ActivateEntity(index);
AcceptEntityInput(index, "use", client);
AcceptEntityInput(index, "kill");
for(new i = 0, weapon; i < 128; i += 4)
{
weapon = GetEntDataEnt2(client, ov_MyWeapons + i);
decl String:ClassWeapon[32]; ClassWeapon[0] = '\0';
GetEdictClassname(weapon, ClassWeapon, sizeof(ClassWeapon));
if (weapon > 0 && strcmp(ClassWeapon, ClassName, false) == 0)
{
new m_iClip1 = GetEntProp(weapon, Prop_Data, "m_iClip1");
new ammotype = GetEntProp(weapon, Prop_Data, "m_iPrimaryAmmoType");
new ammotype2 = GetEntProp(weapon, Prop_Data, "m_iSecondaryAmmoType");
new m_iPrimaryAmmoType = GetEntData(client, ov_offset + ammotype * 4, 4);
new m_iSecondaryAmmoType = GetEntData(client, ov_offset + ammotype2 * 4, 4);
if (m_iClip1 >= 0)
{
// q += m_iClip1;
SetEntProp(weapon, Prop_Data, "m_iClip1", q);
}
if (m_iPrimaryAmmoType >= 0)
{
// w += m_iPrimaryAmmoType;
SetEntData(client, ov_offset + ammotype * 4, w, 4, true);
}
if (m_iSecondaryAmmoType >= 0)
{
// e += m_iSecondaryAmmoType;
SetEntData(client, ov_offset + ammotype2 * 4, e, 4, true);
}
}
}
}
q - число патронов в обойме.
w - число патронов в запасной обойме
у - число вторичных патрон (не знаю есть ли в ксс второй вид патронов для оружия)
Пример:
Код
SetWeaponItem(client, "weapon_name", 1, 10, 3);
P.S. Код писал для игры Half Life 2 DM не знаю будет ли точно работать в css, но вроди должен. Тестируй.