• Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами Публичной оферты Проекта 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)

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

dima734454

Пользователь
Регистрация
27 Окт 2016
Сообщения
30
Реакции
0
Баллы
18
Возраст
25
Пол
Мне нужно сделать так чтобы команда работала если в инвентаре есть вещь например КПК, если вещи нету то команда должна не работать, помогите реализовать, я в lua вообще почти не шарю.
 
Данное вполне возможно сделать следующим образом:
Код:
nut.command.add("test", {
    syntax = "<string text>",
    onRun = function(client, arguments)
        local getItems = client:getChar():getInv():getItems();

        for k, v in pairs(getItems) do
            local itemTable = nut.item.instances[v.id];

            if (itemTable.isPDA) then
                return "True";
            end;
        end;

        return "False";
    end;
});
Думаю, стоит уточнить, что itemTable.isPDA - это «функциональный оператор», который находится в базе твоего предмета. Именно на него ссылается проверочная функция, которая гласит, что если у тебя есть предмет являющийся isPDA, то возвращает «истину», иначе «ложь».
Данное есть вполне неплохой вариант, если имеется несколько вариаций предмета, на который будет ссылаться isPDA.

В базе предмета он может выглядеть таким образом:
ITEM.name = "Weapon"
ITEM.desc = "A Weapon."
ITEM.category = "Weapons"
ITEM.model = "models/weapons/w_pistol.mdl"
ITEM.class = "weapon_pistol"
ITEM.width = 2
ITEM.height = 2

ITEM.isWeapon = true
ITEM.weaponCategory = "sidearm"

Приблизительно такие же действия можно сделать, если зависимость должна быть связана с чатом:
Код:
local function HasItem(client)
    local getItems = client:getChar():getInv():getItems();

    for k, v in pairs(getItems) do
        local itemTable = nut.item.instances[v.id];

        if (itemTable.isPDA) then
            return true;
        end;
    end;

    return false;
end;

nut.chat.register("pda", {
    color = Color(100, 220, 100),
    onCanSay = function(client)
        return HasItem(client);
    end,

    onCanHear = function(speaker, listener)
        return (HasItem(speaker) and HasItem(listener));
    end,

    onChatAdd = function(speaker, text)
        chat.AddText(Color(100, 220, 100), "PDA ["..speaker:Name().."] — "..text);
    end,
    prefix = {"/pda", "/kpk"};
});
 
Статус
В этой теме нельзя размещать новые ответы.
Главная Регистрация
Назад
Сверху