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

(Nutscript) Адаптация плагина Bad Air под костюмы.

Sir Mikky |不安|

Пользователь
Регистрация
4 Ноя 2017
Сообщения
2
Реакции
0
Баллы
13
Возраст
24
Пол
Доброго времени суток, господа.
Появилась идея адаптировать плагин Bad Air (nutscript 1.1) для собственных костюмов. То есть, я имею в виду то, что при надевании костюма, например комбинезона с замкнутой системой дыхания, должен срабатывать аналогичный скрипт, как при надевании противогаза из вышеназванного плагина. Проще говоря, мне нужен такой встроенный противогаз в костюм. Очень надеюсь на какую-либо помощь.
 

danlimons

Пользователь
Регистрация
6 Фев 2018
Сообщения
97
Реакции
0
Баллы
19
Возраст
23
Веб-сайт
vk.com
Копируешь и вставляешь код ниже из sh_mask.lua в sh_tvoiarmor.lua

Lua:
ITEM.functions = ITEM.functions or {}

ITEM.functions._CheckFilter = { -- don't ask why I put _ before 'filter'.
    text = "Check Filter",
    menuOnly = true,
    tip = "Toggle this device.",
    icon = "icon16/weather_sun.png",
    onRun = function(item)
        if (SERVER) then
            local filter = item:getData("filter") or 0 -- mod this to change filter time.

            if filter == 0 then
                nut.util.Notify("The filter is expired.", client)
            else
                nut.util.Notify("The filter's health is " .. filter .. "." , client)
            end
            return false
        end
    end
}

ITEM.functions._Filter = { -- don't ask why I put _ before 'filter'.
    text = "Change Filter",
    menuOnly = true,
    tip = "Toggle this device.",
    icon = "icon16/weather_sun.png",
    onRun = function(item)
        if (SERVER) then
            local client = item.player
            if client:HasItem("filter") then
                local id = client:HasItem("filter"):getID()
                client:UpdateInv(item.uniqueID, 1, {filter = 300}, true)
                client:UpdateInv(id, -1)

                client:EmitSound("HL1/fvox/hiss.wav")
                nut.util.Notify("You changed the mask's filter.", client)
                return true
            else
                nut.util.Notify("You don't have any filter to change.", client)
            end
            return false
        end
    end
}

Дальше в sh_plugin.lua в badair заменяешь

Это
Lua:
if (char:getInv()) then
            for k, v in pairs(char:getInv():getItems()) do
                if (v.uniqueID == "mask" and v:getData("equip")) then
                    if v:getData("filter") and v:getData("filter") > 0 then
                        v:setData("filter", math.Clamp(v:getData("filter") - 1, 0, math.huge))
                        return 0
                    end
                end
            end
        end

На это

Lua:
if (char:getInv()) then
            for k, v in pairs(char:getInv():getItems()) do
                if (v.uniqueID == "mask" and v:getData("equip")) then
                    if v:getData("filter") and v:getData("filter") > 0 then
                        v:setData("filter", math.Clamp(v:getData("filter") - 1, 0, math.huge))
                        return 0
                    end
                elseif (v.uniqueID == "tvoiitem" and v:getData("equip")) then --Вместо tvoiitem вписываешь название скрипта твоего итема (sh_tvoiitem) без sh_
                    if v:getData("filter") and v:getData("filter") > 0 then
                        v:setData("filter", math.Clamp(v:getData("filter") - 1, 0, math.huge))
                        return 0
                    end
                end
            end
        end
 

Sir Mikky |不安|

Пользователь
Регистрация
4 Ноя 2017
Сообщения
2
Реакции
0
Баллы
13
Возраст
24
Пол
Безумно благодарен, danilmons, мне как раз не хватало полной работы этого плагина у себя на сервере.
 
Назад
Сверху Снизу