[ULX] [DarkRP] Запретить noclip в РП профессиях

Хочу задать вопрос. Как сделать, так что бы определенная профа (в моем случае админ) могла юзать noclip на клавишу “v”?

Не совсем ответ на твой вопрос, но альтернативное решение.

Код запрещает использовать перечисленные команды в nonrp профессиях. Если игрок SuperAdmin, то использовать команды сможет независимо от профы. В jobs.lua нужно прописать нужным профам nonrp = true, чтобы в них можно было использовать команды

Путь установки: addons/anyname/lua/ulx/modules/some_utils.lua

local nonrp_only_cmds = {
	["ulx noclip"]   = true,
	["ulx spectate"] = true,
	["ulx god"]      = true,
	["ulx cloak"]    = true,
}

hook.Add(ULib.HOOK_COMMAND_CALLED, "RpTeamsRestrictions", function(pl, cmd, args)
	if not (nonrp_only_cmds[cmd] and ULib.ucl.query(pl, cmd)) then return end

	if not (pl:IsSuperAdmin() or pl:getJobTable().nonrp) then
		pl:ChatPrint("Доступно только в NonRP тимах")
		return false
	end
end)

-- Снимает noclip после смены профы с nonrp
hook.Add("OnPlayerChangedTeam", "DisableNoclip", function(pl, prev_team)
	if RPExtraTeams[prev_team].nonrp and pl:GetMoveType() == MOVETYPE_NOCLIP then
		pl:SetMoveType(MOVETYPE_WALK)
	end
end)

Сообщи, работает ли

Может также быть интересно: ULX - Jail после перезахода на сервер

не, не сработало.

Скорее всего, потому-что ты SUPERADMIN.

покажи, что ты делал. Недостаточно просто скопировать код и вставить его в файл. Я написал об этом

Вот


Code_Iao4zMXQBa

я себе специально user сетал, что бы проверить.

local pl = player.GetBySteamID("Твой стимайди")
pl:ChatPrint(pl:IsSuperAdmin() and "+" or "-")

Запусти как-то код сверху, когда выдашь себе юзера.

Или в консоль сервера lua_run pl = player.GetBySteamID("Твой стимайди") pl:ChatPrint(pl:IsSuperAdmin() and "+" or "-")

Если в чат на сервере напишет -, значит расставляй в коде print(“asdasd”), и ищи в каком месте перестает выполняться код

timer.Simple( .1, function()
    hook.Remove( 'PlayerNoClip', 'SAM.CanNoClip' ) -- удаляем ноклип SAM
end)

hook.Add( "PlayerNoClip", "noclip", function( ply )
    if ply:CheckGroup('superadmin') or ( ply:Team() == TEAM_ADMIN or ply:Team() == TEAM_HELPER or ply:Team() == TEAM_MODER ) then --Для того, чтобы добавить свою профу перед скобкой напишите "or ply:Team() == TEAM_НАЗВАНИЕ"
        return true
    end
end)

Самый простой и удобный способ, из за того что это сервер часть, то при использовании ноуклипа за клиент часть есть рассихрон

Не подскажешь по какому пути это установить

попробуй addons/anyname/lua/autorun/server/checknoclip.lua