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

N.S 1.1 Удаление предмета из инвентаря сумки

Scoot

Пользователь
Регистрация
12 Мар 2015
Сообщения
200
Реакции
0
Баллы
27
Здравствуйте, возникла такая проблема, написал скрипт, который в ходе своего выполнения удаляет определенный предмет из инвентаря персонажа, но вот если этот предмет находится в какой либо сумке, то тогда он не удаляется из инвентаря, хотел бы узнать как удалить предмет из сумки.
 

DrodA

Пользователь
Проверенный
Регистрация
16 Фев 2017
Сообщения
128
Реакции
0
Баллы
30
Адрес
Sweden
Сумку (иль любой другой объект, имеющий возможность быть инвентарем) можно определить с помощью nut.item.inventories[inventory_id].

Решение задачки, думаю, можно попробовать описать так:
Lua:
for k, v in pairs(player:getItems()) do
    if nut.item.inventories[v:getID()] then
        for k2, v2 in pairs(nut.item.inventories[v:getID()]:getItems()) do
            -- code
        end
    end
end
 

Scoot

Пользователь
Регистрация
12 Мар 2015
Сообщения
200
Реакции
0
Баллы
27
Сумку (иль любой другой объект, имеющий возможность быть инвентарем) можно определить с помощью nut.item.inventories[inventory_id].

Решение задачки, думаю, можно попробовать описать так:
Lua:
for k, v in pairs(player:getItems()) do
    if nut.item.inventories[v:getID()] then
        for k2, v2 in pairs(nut.item.inventories[v:getID()]:getItems()) do
            -- code
        end
    end
end
Может я что-то не так делаю, но не работает
Lua:
for k, v in pairs(client:getChar():getInv():getItems()) do
    if nut.item.inventories[v:getID()] then
        for k2, v2 in pairs(nut.item.inventories[v:getID()]:getItems()) do
            for k3, v3 in pairs(v2) do
                if (v3.uniqueID == "item_grenade") then
                    v2:remove(v3:getID())
                end
            end
        end
    end
end
 

DrodA

Пользователь
Проверенный
Регистрация
16 Фев 2017
Сообщения
128
Реакции
0
Баллы
30
Адрес
Sweden
Стоит попробовать накатать следующим образом:
Lua:
for k, v in pairs(client:getChar():getInv():getItems()) do
    if nut.item.inventories[v:getID()] then
        for k2, v2 in pairs(nut.item.inventories[v:getID()]:getItems()) do
            local item_table = nut.item.instances[v2.id]
            if (item_table and item_table.uniqueID == 'item_grenade') then
                item_table:remove()
            end
        end
    end
end
Авось и прокатит.
 

Scoot

Пользователь
Регистрация
12 Мар 2015
Сообщения
200
Реакции
0
Баллы
27
Стоит попробовать накатать следующим образом:
Lua:
for k, v in pairs(client:getChar():getInv():getItems()) do
    if nut.item.inventories[v:getID()] then
        for k2, v2 in pairs(nut.item.inventories[v:getID()]:getItems()) do
            local item_table = nut.item.instances[v2.id]
            if (item_table and item_table.uniqueID == 'item_grenade') then
                item_table:remove()
            end
        end
    end
end
Авось и прокатит.
Все таки что-то не так.
 

Scoot

Пользователь
Регистрация
12 Мар 2015
Сообщения
200
Реакции
0
Баллы
27
Стоит попробовать накатать следующим образом:
Lua:
for k, v in pairs(client:getChar():getInv():getItems()) do
    if nut.item.inventories[v:getID()] then
        for k2, v2 in pairs(nut.item.inventories[v:getID()]:getItems()) do
            local item_table = nut.item.instances[v2.id]
            if (item_table and item_table.uniqueID == 'item_grenade') then
                item_table:remove()
            end
        end
    end
end
Авось и прокатит.
Я попробовал пойти другим путем, но возник вопрос, кодом можно заставить выполнить функцию использования у определенного предмета?
 
Назад
Сверху Снизу