Чтобы скрыть пункты меню в Q menu в GLua, можно использовать функцию hook.Add и перехватить событие "PopulateToolMenu". Для того, чтобы скрыть тулганы, нужно установить для соответствующих пунктов меню флаг "Visible" равным "false".Как отключить показывание тул ганов в Q menu? Если я например в ulx/ulib запрещаю использовать например динамит,то да его использовать нельзя но при этом в Q menu строка с динамитом есть.Так вот как ее убрать?Например вот:
Посмотреть вложение 44919
Первое - да, но таким образом пропадут все инструментыЧтобы скрыть пункты меню в Q menu в GLua, можно использовать функцию hook.Add и перехватить событие "PopulateToolMenu". Для того, чтобы скрыть тулганы, нужно установить для соответствующих пунктов меню флаг "Visible" равным "false".
Ладно, я думал так будет работатьПервое - да, но таким образом пропадут все инструменты
Второе - ноп. Нужно переписывать само SpawnMenu, добавляя определённую проверку при креэйте тул-панели
Оставь всё как есть, и просто распихай по категориям тулы что бы игроки не путались что можно а что нет.Как отключить показывание тул ганов в Q menu? Если я например в ulx/ulib запрещаю использовать например динамит,то да его использовать нельзя но при этом в Q menu строка с динамитом есть.Так вот как ее убрать?Например вот:
Посмотреть вложение 44919
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
А куда его кидать?Попробуй данный скрипт, работал на момент 01.01.23
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