Welcome to Сообщество игровых серверов NETZONA.ORG

Присоединяйтесь к нам сейчас, чтобы получить доступ ко всем нашим функциям. Зарегистрировавшись и войдя в систему, вы сможете создавать темы, публиковать ответы в существующих темах, давать репутацию другим участникам, получать собственный личный мессенджер и многое другое. Это также быстро и совершенно бесплатно, так чего же вы ждете?
  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами Публичной оферты Проекта NetZONA.org: https://netzona.org/help/public-offer/

  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами использования Ваших файлов cookie на Проекте NetZONA.org: https://netzona.org/help/cookies/

  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с Политикой конфиденциальности Проекта NetZONA.org: https://netzona.org/pages/privacy-policy/

  • Ответы на основные вопросы: https://netzona.org/threads/populjarnye-voprosy-i-otvety-na-nix.6122/

  • Приветствуем на сайте, Гость! Приобрести (купить) Информационную услугу (в том числе группу "Проверенный") на Проекте NetZONA.org: https://netzona.org/account/upgrades

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

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

Yroslav

Пользователь
Регистрация
21 Мар 2017
Сообщения
14
Реакции
0
Баллы
13
Возраст
23
Адрес
Ново-Вокзальная, 257Б
Клан-тег
QCP
Пол
Род занятий
Programmer
У меня есть скрипт на наложения эффекта 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 )
 

Hikka

Модератор
Команда форума
Проверенный
Регистрация
29 Сен 2016
Сообщения
555
Реакции
1
Баллы
60
Возраст
30
Пол
в тег Код засунь в след. раз.

Код:
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 у того будет отображаться оверлей.
 
Последнее редактирование:

Yroslav

Пользователь
Регистрация
21 Мар 2017
Сообщения
14
Реакции
0
Баллы
13
Возраст
23
Адрес
Ново-Вокзальная, 257Б
Клан-тег
QCP
Пол
Род занятий
Programmer
в тег Код засунь в след. раз.

Код:
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
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху Снизу