Проблема Overlay. Помогите со скриптом!

  • Автор темы Автор темы Yroslav
  • Дата начала Дата начала
Статус
В этой теме нельзя размещать новые ответы.

Yroslav

Пользователь
У меня есть скрипт на наложения эффекта Overlay. Он вполне работает, но у меня проблема с работой. Я хотел бы применить данный скрипт, для определенных работ.
Обратите внимание на 21 строку.


Вот код.
local lastTexture = nil
local mat_Overlay = nil
local lp = LocalPlayer()
local function DrawMaterialOverlay2( texture, refractamount )
if ( texture ~= lastTexture or mat_Overlay == nil ) then
mat_Overlay = Material( texture )
lastTexture = texture
end
if ( mat_Overlay == nil || mat_Overlay:IsError() ) then return end
render.UpdateScreenEffectTexture()
// FIXME: Changing refract amount affects textures used in the map/models.
mat_Overlay:SetFloat( "$envmap", 0 )
mat_Overlay:SetFloat( "$envmaptint", 0 )
mat_Overlay:SetFloat( "$refractamount", refractamount )
mat_Overlay:SetInt( "$ignorez", 1 )
render.SetMaterial( mat_Overlay )
render.DrawScreenQuad()
end
local function DrawInternal2()
local overlay = "effects/combine_binocoverlay"
if lp:Team() == TEAM_CPRCT then return end
DrawMaterialOverlay2( overlay, 0.3 )
end
hook.Add( "RenderScreenspaceEffects", "RenderMaterialOverlay", DrawInternal2 )
 
в тег Код засунь в след. раз.

Код:
local lastTexture, mat_Overlay = nil, nil
local function DrawMaterialOverlay2( texture, refractamount )
    if ( texture ~= lastTexture or mat_Overlay == nil ) then
        mat_Overlay = Material( texture )
        lastTexture = texture
    end

    if ( mat_Overlay == nil || mat_Overlay:IsError() ) then return end
    render.UpdateScreenEffectTexture()
    // FIXME: Changing refract amount affects textures used in the map/models.
    mat_Overlay:SetFloat( "$envmap", 0 )
    mat_Overlay:SetFloat( "$envmaptint", 0 )
    mat_Overlay:SetFloat( "$refractamount", refractamount )
    mat_Overlay:SetInt( "$ignorez", 1 )
    render.SetMaterial( mat_Overlay )
    render.DrawScreenQuad()
end

local jobs = {
    [TEAM_CPRCT] = true,
    [TEAM_CITIZEN] = true,
}
local function DrawInternal2()
    local lp = LocalPlayer()
    if (!IsValid(lp)) then return end
    local overlay = "effects/combine_binocoverlay"
    if jobs[lp:Team()] then
        DrawMaterialOverlay2( overlay, 0.3 )
    end
end
hook.Add( "RenderScreenspaceEffects", "RenderMaterialOverlay", DrawInternal2 )

Кто в таблице jobs у того будет отображаться оверлей.
 
Последнее редактирование:
в тег Код засунь в след. раз.

Код:
local lastTexture, mat_Overlay = nil, nil
local function DrawMaterialOverlay2( texture, refractamount )
    if ( texture ~= lastTexture or mat_Overlay == nil ) then
        mat_Overlay = Material( texture )
        lastTexture = texture
    end

    if ( mat_Overlay == nil || mat_Overlay:IsError() ) then return end
    render.UpdateScreenEffectTexture()
    // FIXME: Changing refract amount affects textures used in the map/models.
    mat_Overlay:SetFloat( "$envmap", 0 )
    mat_Overlay:SetFloat( "$envmaptint", 0 )
    mat_Overlay:SetFloat( "$refractamount", refractamount )
    mat_Overlay:SetInt( "$ignorez", 1 )
    render.SetMaterial( mat_Overlay )
    render.DrawScreenQuad()
end

local jobs = {
    [TEAM_CPRCT] = true,
    [TEAM_CITIZEN] = true,
}
local function DrawInternal2()
    local lp = LocalPlayer()
    if (!IsValid(lp)) then return end
    local overlay = "effects/combine_binocoverlay"
    if jobs[lp:Team()] then
        DrawMaterialOverlay2( overlay, 0.3 )
    end
end
hook.Add( "RenderScreenspaceEffects", "RenderMaterialOverlay", DrawInternal2 )

Кто в таблице jobs у того будет отображаться оверлей.

Огромное спасибо! Сначала не работало, но надо было поменять название cl_ на sh_ . +rep
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху