Как добавить покупку патронов в C меню?

Как добавить покупку патрон в C меню?

1 лайк
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 на покупку патрон.
Одмен смени раздел для этой темы

1 лайк

И куда это вставлять?

В код твоего 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

вайтлист мб

Думаю вряд ли дело в вайт листе, скорее в луа