Постобработка на профессию ✅

Привет, хотел бы узнать можно ли поставить фильтр постобработки на профессию, например , чтобы у профессии “Джагернаут” вид был таким.

@Karlend возможно, ты подскажешь?

-- addons/anyname/lua/autorun/client/jaggernaut_effect.lua
hook.Add("RenderScreenspaceEffects", "JaggernautEffect", function()
	local lp = LocalPlayer()
	
	if (lp:Alive() and lp:Team() == TEAM_JAGGERNAUT) then
		DrawMaterialOverlay("effects/combine_binocoverlay", 0.1)
	end
end)

мне кажется ты потерял папку autorun, потому что не работает, профессию проверил

tehya#6666

Данная проблема решена, код работает)

так напишите сюда, в чем была проблема…

Человек не туда закинул файлы, и все)

Где можно найти все пути к эффектам по типу?

“effects/combine_binocoverlay”

С помощью софтины GCFScape открывать .vpk файлы и искать в них. Конкретно этот эффект лежит в GarrysMod\sourceengine\hl2_textures_dir.vpk

1 лайк

Для каждой профы отдельно создавать блакнотик?
Или все в 1?
Просто я делаю хл2рп и там много проф где нужен визор.
Или можно в 1 код запихнуть.
TEAM_RCT, TEAM_UNION?

-- addons/anyname/lua/autorun/client/jaggernaut_effect.lua
hook.Add("RenderScreenspaceEffects", "JaggernautEffect", function()
	local lp = LocalPlayer()
    if not lp:Alive() then return end
	
	if (lp:Team() == TEAM_RCT or lp:Team() == TEAM_UNION or lp:Team() == TEAM_I_TAK_DALEE) then
		DrawMaterialOverlay("effects/combine_binocoverlay", 0.1)
	end
end)

Не советую прописывать прямо в коде скриптов TEAM_CONSTANT, потому что это усложняет дальнейшую поддержку кода. Вместо этого предлагаю такой вариант:

-- Есть смысл сделать эту функцию глобальной, например DarkRP.jobTableValue
local function jobTableValue(pl, key, fallback)
	local t = pl:getJobTable()
	return t and t[key] or fallback
end

-- addons/anyname/lua/autorun/client/jaggernaut_effect.lua
hook.Add("RenderScreenspaceEffects", "JaggernautEffect", function()
	local lp = LocalPlayer()
	if lp:Health() <= 0 then return end -- поскольку функция довольно тяжелая, то проверка на Health вместо Alive предпочтительне из-за своей скорости

	if jobTableValue(lp, "combineoverlay") then
		DrawMaterialOverlay("effects/combine_binocoverlay", 0.1)
	end
end)

Затем для каждой желаемой профы прописать combineoverlay = true