Проблема Нужна помощь (NS 1.1)

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

dima734454

Пользователь
Проверенный
Мне нужно сделать так чтобы команда работала если в инвентаре есть вещь например КПК, если вещи нету то команда должна не работать, помогите реализовать, я в 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"};
});
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху