✅ Как убрать тул (weld, сварка, прочее) из Q меню

Я хочу убрать некоторые вещи с q меню например сварку или краску. Что бы их не могли брать игроки ниже superadmin. (чтоб их не было видно)

local tools = {
	weld = { -- класс инструмента
		superadmin = true, -- юзергруппа которой разрешено использовать этот инструмент
		admin = true,
		vip = true
	},
	axis = {
		superadmin = true
	}
}

-- если инструмента нету в списке, любой игрок может использовать его

hook.Add("CanTool", "incredible-gmod.ru/tools4usergroups", function(ply, _, tool)
	if tools[tool] and tools[tool][ply:GetUserGroup()] == nil then
		return false
	end
end)

куда это вписывать?

луа авторан сервер вроде бы, кстати можно удалить тулы по этому пути:
garrysmod\gamemodes\sandbox\entities\weapons\gmod_tool\stools

если удалить то они пропадут у всех, в том числе и у админов

weapons.GetStored("gmod_tool").Tool["weld"].AddToMenu = false

в addons/anyname/lua/autorun/client/hidetool.lua

думаю не сработает, addons загружается раньше чем gamemodes
хотя возможно gamemodes/%name%/entities/* загружается раньше чем gamemodes/%name%/gamemode/init.lua - эту тему не тестировал.

в конце 21 года тестировал порядок загрузки, получил вот такие результаты:

garrysmod/addons/%name%/lua/autorun/*.lua
garrysmod/lua/autorun/*.lua
garrysmod/addons/%name%/lua/autorun/server/*.lua
garrysmod/lua/autorun/server/*.lua
garrysmod/gamemodes/%name%/gamemode/init.lua
garrysmod/addons/%name%/lua/autorun/client/*.lua
garrysmod/lua/autorun/client/*.lua
garrysmod/gamemodes/%name%/gamemode/cl_init.lua

но */entities/* я упустил(

Может и не сработает, я не тестил. Но если засунуть куда надо, то будет норм


думаю это подойдет(их в целом не будет видно ни для кого)

TOOL.AddToMenu = false

вводишь это в первой строчке кода каждого ненужного тула

путь где находятся тулы в q меню:

/garrysmod/gamemodes/sandbox/entities/weapons/gmod_tool/stools

P. S. Если вы из вкладки удалили все Тулы, вы можете столкнутся с проблемой, что останутся пустые вкладки(Категории).

Для этого вы идете по этому пути:

Garrysmod/gamemodes/sandbox/gamemode

Ищите там файлик “cl_spawnmenu.lua”

В нем на 104-107 строчке вы найдете категори. Возьмите их в коментариий ( добавить два знака тире перед кодом ) или удалить их.


Знаю объясняю непонятно

1 лайк

Не забудь добавить вот это на серверсайд чтобы нельзя было использовать скрытые тулы:

hook.Add('CanTool', 'hidden', function( ply, trace, mode, tool, button )
	if tool.AddToMenu == false then return false end
end)
1 лайк