[ 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

Кто-нибудь тестил уже?

За тестил но чёт не алё

Привет, поместите этот LUA-код в конфиг авто-доната (sh_additems.lua)

local ITEM = FindMetaTable("IGSItem")
function ITEM:AddSHWhitelist(team_cmd)
	self:AddHook("SH_WHITELIST.CanBecomeJob", function(pl, job)
		if job.command == team_cmd then return true end
	end)
	self:SetValidator(function(pl) return SH_WHITELIST:CanBecomeJob(pl, DarkRP.getJobByCommand(team_cmd)) end)
	self:SetCanActivate(function(pl)
		if SH_WHITELIST:CanBecomeJob(pl, DarkRP.getJobByCommand(team_cmd)) then return "Вы уже купили эту профессию." end
	end)
	return self
end

IGS("Профессия полицейского", "whitelist_police")
	:SetPrice(150) -- Цена
	:SetTerm(30) -- Время доступа (:SetPerma - навсегда)
	:SetDescription("Открывает доступ к профессии полицейского.") -- Описание
	:AddSHWhitelist("cp") -- Команда профессии из DarkRP

Вы также можете добавить все свои профессии, которые вы хотите продать :wink:
Вы можете смело удалить мой пример с профессией полицейского и использовать пример медика.

IGS("Профессия медик", "medic")
	:SetPrice(150)
	:SetPerma()
	:SetDescription("Открывает доступ к профессии медик.")
	:AddSHWhitelist("medic")


Если я смог помочь вам, пожалуйста, дайте мне обратную связь.

3 лайка