netstream.Hook("ArmoryData",function(ply,class,CurEnt)
local pack = Paim_Packs[ply:Team()]
if pack and pack[class] and CurEnt:GetPos():Distance(ply:GetPos()) < 400 then
if ply.CurPackGived and ply.CurPackGived == class then
ply:ChatPrint(gal.YouHaveThat)
return
end
for k,v in pairs(ply:GetWeapons()) do
ply:StripWeapon( v:GetClass() )
local player_data = ply:GetNVar('mo_data')
if player_data.data.features and player_data.data.features['stick'] == true then
ply:Give('stun_baton')
end
end
pack = pack[class]
ply.CurPackGived = class
for k,_ in pairs(pack.weapons) do
local wep = ply:Give(k)
end
ply.Weapons = ply:GetWeapons()
else
ply:ChatPrint(gal.NothingForYou)
end
end)
for k,_ in pairs(pack.weapons) do
net.Start('IGSGiveWeaponPack')
net.WriteUInt(k, 8)
net.SendToServer()
end
далее создаешь в аддоне по пути arsenal/lua/autorun/server файл sv_igs.lua
и вставляешь туда
net.Receive('IGSGiveWeaponPack', function(_, ply)
local t = net.ReadUInt(8)
local weptbl = pack.weapons[t]
local igsid = weptbl.igs
IGS.PlayerActivateItem(ply, igsid, function() end)
IGS.Notify(ply, 'Вы успешно купили оружие')
end)
по идее все, если у тебя таблица создана так, как я думаю
если покупка за деньги, то добавляй еще и local wepprice = weptbl.price в net.Receive() и делай проверку на canAfford(), добавляй ply:addMoney(-wepprice), но только проверь как у тебя параметр цены оружия называется