Вопрос Доступ определенному рангу тул ганов в Q menu

  • 79
  • 2
Контакты для связи отсутствуют.
Как отключить показывание тул ганов в Q menu? Если я например в ulx/ulib запрещаю использовать например динамит,то да его использовать нельзя но при этом в Q menu строка с динамитом есть.Так вот как ее убрать?Например вот:
20230218141807_1 (2).jpg
 
  • 442
  • 8
  • 122
Как отключить показывание тул ганов в Q menu? Если я например в ulx/ulib запрещаю использовать например динамит,то да его использовать нельзя но при этом в Q menu строка с динамитом есть.Так вот как ее убрать?Например вот:
Посмотреть вложение 44919
Чтобы скрыть пункты меню в Q menu в GLua, можно использовать функцию hook.Add и перехватить событие "PopulateToolMenu". Для того, чтобы скрыть тулганы, нужно установить для соответствующих пунктов меню флаг "Visible" равным "false".
 
  • 214
  • 16
  • 69
Чтобы скрыть пункты меню в Q menu в GLua, можно использовать функцию hook.Add и перехватить событие "PopulateToolMenu". Для того, чтобы скрыть тулганы, нужно установить для соответствующих пунктов меню флаг "Visible" равным "false".
Первое - да, но таким образом пропадут все инструменты
Второе - ноп. Нужно переписывать само SpawnMenu, добавляя определённую проверку при креэйте тул-панели
 
  • 442
  • 8
  • 122
Первое - да, но таким образом пропадут все инструменты
Второе - ноп. Нужно переписывать само SpawnMenu, добавляя определённую проверку при креэйте тул-панели
Ладно, я думал так будет работать
 
  • 39
  • 1
  • 16
Как отключить показывание тул ганов в Q menu? Если я например в ulx/ulib запрещаю использовать например динамит,то да его использовать нельзя но при этом в Q menu строка с динамитом есть.Так вот как ее убрать?Например вот:
Посмотреть вложение 44919
Оставь всё как есть, и просто распихай по категориям тулы что бы игроки не путались что можно а что нет.
 
  • 117
  • 7
  • 48
Контакты для связи отсутствуют.
Попробуй данный скрипт, работал на момент 01.01.23 :pepesadge:


Lua:
local hasRestrict = {
    ["superadmin"] = true
}

local allowedTools = {
    ["rope"] = true,
    ["axis"] = true
}

if SERVER then
    local function canUseTool(ply, tr, toolname, tool, button)
        if not allowedTools[toolname] and not hasRestrict[ply:GetUserGroup()] then return false end
    end

    hook.Add("CanTool", "canUseTool", canUseTool)
else
    local function hideTools()
        for _, panel in pairs(g_SpawnMenu:GetToolMenu().Items) do
            if panel.Name ~= "#spawnmenu.tools_tab" then return end

            for _a, val in pairs(panel.Panel.List.pnlCanvas:GetChildren()) do
                local cat_count = #val:GetChildren()

                for key, value in pairs(val:GetChildren()) do
                    if value:GetName() == "DCategoryHeader" then
                        cat_count = cat_count - 1
                    else
                        if allowedTools[value.Name] then continue end
                        value:Remove()
                        cat_count = cat_count - 1
                    end
                end

                if cat_count <= 0 then
                    val:Remove()
                end
            end
        end
    end

    hook.Add("DarkRPFinishedLoading", "HideTools", hideTools)
end
 
  • 79
  • 2
Контакты для связи отсутствуют.
Попробуй данный скрипт, работал на момент 01.01.23 :pepesadge:


Lua:
local hasRestrict = {
    ["superadmin"] = true
}

local allowedTools = {
    ["rope"] = true,
    ["axis"] = true
}

if SERVER then
    local function canUseTool(ply, tr, toolname, tool, button)
        if not allowedTools[toolname] and not hasRestrict[ply:GetUserGroup()] then return false end
    end

    hook.Add("CanTool", "canUseTool", canUseTool)
else
    local function hideTools()
        for _, panel in pairs(g_SpawnMenu:GetToolMenu().Items) do
            if panel.Name ~= "#spawnmenu.tools_tab" then return end

            for _a, val in pairs(panel.Panel.List.pnlCanvas:GetChildren()) do
                local cat_count = #val:GetChildren()

                for key, value in pairs(val:GetChildren()) do
                    if value:GetName() == "DCategoryHeader" then
                        cat_count = cat_count - 1
                    else
                        if allowedTools[value.Name] then continue end
                        value:Remove()
                        cat_count = cat_count - 1
                    end
                end

                if cat_count <= 0 then
                    val:Remove()
                end
            end
        end
    end

    hook.Add("DarkRPFinishedLoading", "HideTools", hideTools)
end
А куда его кидать?
 
Сверху Снизу