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

Плагин Lootable для NS 1.1

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

Scoot

Пользователь
Регистрация
12 Мар 2015
Сообщения
200
Реакции
0
Баллы
27
Здраствуйте, при работе с NS появилась нужда в плагине lootable, но он не работает на NS 1.1, могли бы вы адобтировать его для 1.1 использую тот же old fix plugin и будет ли он совместим с clear inventory?
 

Neon

Создатель
Команда форума
Проверенный
Регистрация
9 Фев 2013
Сообщения
1,394
Реакции
3
Баллы
49
На данный момент плагин Lootable нуждается в доработке.
Совместимости не будет, т.к. плагин Clear Inventory будет чистить инвентарь, и в итоге не будет оставаться предметов, которые будут выпадать из инвентаря.
 

Scoot

Пользователь
Регистрация
12 Мар 2015
Сообщения
200
Реакции
0
Баллы
27
А Lootable вообще работает? Ну например без Clear Inventory
 

Neon

Создатель
Команда форума
Проверенный
Регистрация
9 Фев 2013
Сообщения
1,394
Реакции
3
Баллы
49
Там не хватает части кода из старого NS
 

Энма Ай

Пользователь
Регистрация
25 Дек 2015
Сообщения
4
Реакции
0
Баллы
13
Возраст
23
Пол
Даже класс =))))))
 

Scoot

Пользователь
Регистрация
12 Мар 2015
Сообщения
200
Реакции
0
Баллы
27
И какой этот код чтобы заставить его работать?
 

Scoot

Пользователь
Регистрация
12 Мар 2015
Сообщения
200
Реакции
0
Баллы
27
а можно сделать на основе clear inventory чтобы предметы инвентаря не удалялись, а дропались рядом с игроком? Я пытался это сделать подключив код из крафта, но не вышло, Neon может ты знаешь как реализовать дроп на основе ci?
 

Ледкол

Пользователь
Регистрация
5 Ноя 2015
Сообщения
108
Реакции
0
Баллы
29
Возраст
23
Пол
а можно сделать на основе clear inventory чтобы предметы инвентаря не удалялись, а дропались рядом с игроком? Я пытался это сделать подключив код из крафта, но не вышло, Neon может ты знаешь как реализовать дроп на основе ci?
В плагине worlditemspawner нашёл такую процедуру nut.item.spawn, на вики о ней нет информации, но я нашёл её декларацию-инициализацию в файле /gamemode/core/libs/sh_item.lua.
HTML:
function nut.item.spawn(uniqueID, position, callback, angles, data)
        nut.item.instance(0, uniqueID, data or {}, 1, 1, function(item)
            local entity = item:spawn(position, angles)

            if (callback) then
                callback(item, entity)
            end
        end)
end

uniqueId -string id итема.
position - объект таблицы Vertex.
callback - callback функция, которая будет вызвана с аргументами item, entity. Может быть nil.
angels - объект таблицы Angle.
data - таблица, которая записывается в базу данных для этого item и в свойство data созданного объекта. item. Может быть пустой.(не уверен во всём этом ).

Итак, при переборе предметов инвентаря умершего игрока, перед присваиванием ему значению nil, нужно получить его unique id и вызвать эту процедуру, но нужно подумать,как сделать так, чтобы предметы не спавнились друг в друге .
 

Scoot

Пользователь
Регистрация
12 Мар 2015
Сообщения
200
Реакции
0
Баллы
27
В плагине worlditemspawner нашёл такую процедуру nut.item.spawn, на вики о ней нет информации, но я нашёл её декларацию-инициализацию в файле /gamemode/core/libs/sh_item.lua.
HTML:
function nut.item.spawn(uniqueID, position, callback, angles, data)
        nut.item.instance(0, uniqueID, data or {}, 1, 1, function(item)
            local entity = item:spawn(position, angles)

            if (callback) then
                callback(item, entity)
            end
        end)
end

uniqueId -string id итема.
position - объект таблицы Vertex.
callback - callback функция, которая будет вызвана с аргументами item, entity. Может быть nil.
angels - объект таблицы Angle.
data - таблица, которая записывается в базу данных для этого item и в свойство data созданного объекта. item. Может быть пустой.(не уверен во всём этом ).

Итак, при переборе предметов инвентаря умершего игрока, перед присваиванием ему значению nil, нужно получить его unique id и вызвать эту процедуру, но нужно подумать,как сделать так, чтобы предметы не спавнились друг в друге .
А ты пробовал? Просто сколько раз не делал не получилось, а мне в любом случае нужен плагин чтобы после смерти игрока его инвентарь очищался и весь этот лут лежал на месте его смерти
 

Ледкол

Пользователь
Регистрация
5 Ноя 2015
Сообщения
108
Реакции
0
Баллы
29
Возраст
23
Пол
Только что попробовал, получилось.
Вот самый банальный вариант
PHP:
if SERVER then
    function PLUGIN:PlayerDeath(ply)
        if ply:getChar() then
            for k, v in pairs(ply:getChar():getInv():getItems()) do
                nut.item.spawn(v.uniqueID, ply:GetPos() + Vector(0,20,0), nil, Angle(0,0,0), {})
                v:remove()
            end
        end
    end
end
Но в таком случаен итемы будут спавниться в кучу, нужно либо придумать алгоритм их спавна, либо использовать функцию рандома.
 

Scoot

Пользователь
Регистрация
12 Мар 2015
Сообщения
200
Реакции
0
Баллы
27
Только что попробовал, получилось.
Вот самый банальный вариант
PHP:
if SERVER then
    function PLUGIN:PlayerDeath(ply)
        if ply:getChar() then
            for k, v in pairs(ply:getChar():getInv():getItems()) do
                nut.item.spawn(v.uniqueID, ply:GetPos() + Vector(0,20,0), nil, Angle(0,0,0), {})
                v:remove()
            end
        end
    end
end
Но в таком случаен итемы будут спавниться в кучу, нужно либо придумать алгоритм их спавна, либо использовать функцию рандома.
мне главное чтобы с игрока лут падал, а остальное пофиг, лишь ыб не лагало адски
 

Ледкол

Пользователь
Регистрация
5 Ноя 2015
Сообщения
108
Реакции
0
Баллы
29
Возраст
23
Пол
Попробуйте так сделать, а потом решите, что нужно Вам, что нет.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху Снизу