[ SH Whitelist ] Добавление профессии

Как добавить человека в WL через IGS покупку ? (Система вайт Листов SH )

Ответивший получит награду на форуме

После ответа я сниму таймер удаления темы

Ты можешь в txt Документе создать свой профессий и заменить их в нужном текстовом документе, потом f4menu которой тебе нужен лучше найми кодера и не парься

Попробуй так:

IGS( "Белый список профессий", "sh_whitelist" )
	:SetTerm( 30 )
	:SetPrice( 5000 )
	:SetDescription( "Даёт доступ к некоторым профессиям" )
	:SetInstaller( function( pl )
		SH_WHITELIST:ApplyWhitelist( pl )
	end )

----------- ИЛИ ( смотря какой вариант больше нравится )

IGS( "Белый список профессий", "sh_whitelist" )
	:SetTerm( 30 )
	:SetPrice( 5000 )
	:SetNetworked( true )
	:SetDescription( "Даёт доступ к некоторым профессиям" )
	:AddHook( "SH_WHITELIST.CanWhitelist", function( pl )
		return true
	end )

(дай знать если какой-то вариант не работает, делал вслепую :hearts:)

1 симпатия

@Epsilon призываю тебя

Не робит (

А, да. Там не тот хук нужно использовать.

Вот решение если нужно открыть доступ ко всем профессиям которые в “Белом списке”

IGS( "Белый список профессий", "sh_whitelist" )
	:SetTerm( 30 )
	:SetPrice( 5000 )
	:SetDescription( "Доступ ко всем профессиям в белом списке" )
	:AddHook( "SH_WHITELIST.CanBecomeJob", function( pl, job )
		return true
	end )

Но если тебе нужно выдавать доступ только на определенные, то:

  1. Cоздай новый файл igs-modification/lua/igs/extensions/shwhitelist.lua с новым методом:
    ( после нужен рестарт )
local ITEM = FindMetaTable("IGSItem")

function ITEM:SetSHWhitelist(team_cmd)
	self:SetCanActivate(function(pl)
		if SH_WHITELIST:CanBecomeJob(pl, DarkRP.getJobByCommand(team_cmd)) then
			return "Вы в вайтлисте"
		end
	end)
	self:AddHook( "SH_WHITELIST.CanBecomeJob", function(pl, job)
		return job.command == team_cmd
	end )
	self:SetValidator(function(pl)
		return SH_WHITELIST:CanBecomeJob(pl, DarkRP.getJobByCommand(team_cmd))
	end)
	return self
end
  1. Создай новый предмет в sh_additems.lua с вызовом этого метода.
    :SetSHWhitelist( "citizen" )
    ( где citizen - это команда професии, она указывается
    как command при создании професси в jobs.lua )

Вот пример:

IGS( "Доступ к професии Гражданин", "whitelist_citizen" ):SetSHWhitelist( "citizen" )
	:SetTerm( 30 )
	:SetPrice( 5000 )
	:SetDescription( "Доступ к белому списку для професии Гражданин" )

(Опять же, я не знаком с этим аддоном, делал вслепую. Буду рад если протестируешь оба способа )

1 симпатия

Очень крутой ответ. Если это решение будет протестировано и рабочее – я включу это в релизную версию IGS