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

NS 1.1 Нужна помощь с оверлеями!!!

Bentley

Пользователь
Регистрация
10 Фев 2018
Сообщения
2
Реакции
0
Баллы
14
Вообщем, мне нужна подробная функция где при одевании определенного предмета, например противогаза, ставился указанный оверлей (типо как оверлей у ГО и ОТА) и чтобы при снимании этого предмета оверлей пропадал. Пытался вытащить такое из плагина Bad Air, но не получилось.:((n)

:unsure::unsure::unsure::unsure::unsure::unsure::unsure::unsure::unsure::unsure::unsure::unsure::unsure::unsure::unsure::unsure:

:)Приму любую помощь! Заранее спасибо!;)

:unsure::unsure::unsure::unsure::unsure::unsure::unsure::unsure::unsure::unsure::unsure::unsure::unsure::unsure::unsure::unsure:
 

DrodA

Пользователь
Проверенный
Регистрация
16 Фев 2017
Сообщения
128
Реакции
0
Баллы
30
Адрес
Sweden
Для выполнения данной задачки востребуется запилить предмет, который и будет являться нашим «переключателем»:
Lua:
ITEM.name = "Item name"
ITEM.desc = "Item desc"
ITEM.model = "ItemModel.mdl"
ITEM.width = 1
ITEM.height = 1

ITEM:hook("drop", function(item)
    local client = item.player

    if client:getLocalVar("hasOverlay") and item:getData("equip") then
        client:setLocalVar("hasOverlay", false)
        item:setData("equip", false)
    end
end)

ITEM.functions.Equip =
{
    name = "Экипировать/Снять",
    tip = "Экипировать/Снять",
    icon = "icon16/feed.png",
    onRun = function(item)
        local client = item.player

        item:setData("equip", !item:getData("equip", false))
        client:setLocalVar("hasOverlay", !client:getLocalVar("hasOverlay", false))

        return false
    end,
    onCanRun = function(item)
        return (!IsValid(item.entity))
    end
}

function ITEM:onLoadout()
    local client = self.player

    if !client:getLocalVar("hasOverlay") and self:getData("equip") then
        client:setLocalVar("hasOverlay", true)
    end
end

После уже, используя данные предмета, востребуется впилить определенную проверку в исходный код оверлея:
Lua:
hook.Add("HUDPaint", "SCHEMA::ItemOverlayExample", function()
    local localPlayer = LocalPlayer()
    if !IsValid(localPlayer) or !localPlayer:Alive() then return end

    local overlay = localPlayer:getLocalVar("hasOverlay", false)

    if (overlay) then
        surface.SetDrawColor(color_white)
        surface.SetMaterial(nut.util.getMaterial("vgui/gradient-d"))
        surface.DrawTexturedRect(0, 0, ScrW(), ScrH())
    end
end)
 
Назад
Сверху Снизу