Как добавить человека в 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 )
(дай знать если какой-то вариант не работает, делал вслепую )
@Epsilon призываю тебя
Не робит (
А, да. Там не тот хук нужно использовать.
Вот решение если нужно открыть доступ ко всем профессиям которые в “Белом списке”
IGS( "Белый список профессий", "sh_whitelist" )
:SetTerm( 30 )
:SetPrice( 5000 )
:SetDescription( "Доступ ко всем профессиям в белом списке" )
:AddHook( "SH_WHITELIST.CanBecomeJob", function( pl, job )
return true
end )
Но если тебе нужно выдавать доступ только на определенные, то:
- 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
- Создай новый предмет в
sh_additems.lua
с вызовом этого метода.
:SetSHWhitelist( "citizen" )
( гдеcitizen
- это команда професии, она указывается
как command при создании професси в jobs.lua )
Вот пример:
IGS( "Доступ к професии Гражданин", "whitelist_citizen" ):SetSHWhitelist( "citizen" )
:SetTerm( 30 )
:SetPrice( 5000 )
:SetDescription( "Доступ к белому списку для професии Гражданин" )
(Опять же, я не знаком с этим аддоном, делал вслепую. Буду рад если протестируешь оба способа )
Очень крутой ответ. Если это решение будет протестировано и рабочее – я включу это в релизную версию 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
Вы также можете добавить все свои профессии, которые вы хотите продать
Вы можете смело удалить мой пример с профессией полицейского и использовать пример медика.
IGS("Профессия медик", "medic")
:SetPrice(150)
:SetPerma()
:SetDescription("Открывает доступ к профессии медик.")
:AddSHWhitelist("medic")
Если я смог помочь вам, пожалуйста, дайте мне обратную связь.