Как добавить покупку патрон в C меню?
Option("Купить патроны на текущее оружие", "icon16/application.png", function()
if not LocalPlayer():GetActiveWeapon().Primary then return end
RunConsoleCommand("darkrp", "buyammo", LocalPlayer():GetActiveWeapon().Primary.Ammo)
end, function() return IsValid(LocalPlayer():GetActiveWeapon()) and istable(LocalPlayer():GetActiveWeapon().Primary) and LocalPlayer():GetActiveWeapon().Primary.Ammo end)
Вот код с моего c_menu на покупку патрон.
Одмен смени раздел для этой темы
И куда это вставлять?
В код твоего c_menu, я не знаю как у тебя выглядят функции для с меню, но я код основной дал, думаю сможешь портировать под свою менюшку
Скажи название своего C меню пожалуйста, под свой не могу портировать.
Честно не знаю, брал с чужой сборки
что если пишет “Эта AMMO недоступна”?
local PricePerBullet = 10 -- цена за один патрон
concommand.Add("buyammo", function(ply) -- консольная-команда, вы можете добавить кнопку в cmenu/f4 для быстрого использования
local swep = ply:GetActiveWeapon()
if not IsValid(swep) then return end
local count = swep:GetMaxClip1()
local price = count * PricePerBullet
if price < 1 or not ply:canAfford(price) then return end
ply:addMoney(-price)
ply:GiveAmmo(count, game.GetAmmoName(swep:GetPrimaryAmmoType()))
end)
закидывай например в garrysmod/lua/autorun/server/buyammo_cmd.lua
потом добавляй эту комманду в контекстное меню
пример на основе кода @KURIPKA
Option("Купить патроны на текущее оружие", "icon16/application.png", function()
if not LocalPlayer():GetActiveWeapon().Primary then return end
RunConsoleCommand("buyammo")
end, function() return IsValid(LocalPlayer():GetActiveWeapon()) and istable(LocalPlayer():GetActiveWeapon().Primary) and LocalPlayer():GetActiveWeapon().Primary.Ammo end)
а как сделать чтобы покупалась не целая обойма, а сколько ты напишешь в коде? (P.S. У меня пушка где в 1 обойме 10к патрон)
в код пушки добавь SWEP.BuyAmmoCount = 100 и на 6той строчке кода который я скинул выше напиши local count = swep.BuyAmmoCount or swep:GetMaxClip1()
как это сделать на NumerixConextMenu
Функция на покупку патрон для всех одинаковая. Код смотри своего меню и туда вставляй (в кнопку новую)
А как сделать исключение?
Типо чтобы люди не могли купить патроны для m9k_rpg7
вайтлист мб
Думаю вряд ли дело в вайт листе, скорее в луа
[3] = {
name = 'Купить патроны',
icon = Material('cmenu_2/ammo.png'),
color = Color(255, 255, 255),
submenu = false,
access = function() end,
command = function()
local lply = LocalPlayer()
local wep = lply:GetActiveWeapon()
local prim = wep.Primary and wep.Primary.Ammo or game.GetAmmoName(wep:GetPrimaryAmmoType())
if not prim then return end
RunConsoleCommand("darkrp", "buyammo", prim)
end
},
помоги пожалуйста сюда сделать, и почемуто у меня патроны не на все оружки покупються
на некоторых оружиях значит нет базы патронов и физически ты их пополнить не можешь