Skip to content

Канистра

Канистра

Переносимая канистра, которую можно заправить на колонке и залить в машину. Это обычный предмет инвентаря, а не оружие.

Стандартный weapon_petrolcan намеренно не используется. Эта модель обладает поведением огнемета — игроки могут проливать топливо по земле и поджигать его. Предмет здесь выполняет ровно одну задачу: заправляет бак транспорта.

Как это работает в игре

  • Используйте предмет. Канистра появится у вас в руке и покажет, сколько в ней литров.
  • Подойдите к транспорту и наведитесь на бензобак, либо встаньте рядом и нажмите [E].
  • Топливо заливается со скоростью Config.JerryCan.PourRate литров за тик, а поступающее топливо подчиняется правилам неправильного топлива, как и при любой другой заправке.
  • Отойдите дальше, чем на Config.JerryCan.MaxDistance, и канистра вернется в инвентарь.
  • На заправке клавиша [G] пополняет канистру. Если у вас ее нет, на станции можно сразу купить полную канистру за Config.JerryCan.FullPrice.

Каждая канистра хранит свой собственный уровень топлива, поэтому в каждой записи инвентаря ниже она отмечена как уникальная / несуммируемая. Объединение двух канистр объединило бы два разных количества в один слот.

config.lua
Config.JerryCan = {
    Enabled  = true,
    Item     = 'jerrycan',
    Prop     = 'prop_jerrycan_01a',
    Capacity = 20,
    SellFull  = true,
    FullPrice = 60,
}

Если у вас уже используется топливная канистра под другим именем, измените Config.JerryCan.Item вместо переименования вашего предмета.

Что поставляется в папке install/

Путь Содержимое
install/README.txt Краткая версия всей информации с этой страницы
install/img/jerrycan.png Иконка, готовая для добавления в ваш инвентарь
install/inv/ox_inventory.txt ox_inventory
install/inv/qb_inventory.txt qb-inventory, lj-inventory, ps-inventory
install/inv/qs_codem_tgiann.txt qs-inventory, codem-inventory, tgiann-inventory
install/inv/esx.txt классические инвентари ESX

ox_inventory

Скопируйте изображение в папки ox_inventory/web/images/, затем добавьте предмет.

ox_inventory/data/items.lua
['jerrycan'] = {
    label = 'Jerry Can',
    weight = 4000,
    stack = false,
    close = true,
    description = 'Holds 20 litres of fuel. Use it, then pour it into a car.',
    client = {
        export = 'bupa-fuel.useJerryCan'
    }
},

В ox_inventory нет функции CreateUseableItem, поэтому строка client.export используется для того, чтобы ресурс узнал об использовании канистры. Параметр stack = false обязателен.

qb-inventory, lj-inventory, ps-inventory

Скопируйте изображение в qb-inventory/html/images/ (папки lj и ps используют тот же путь), затем добавьте предмет в qb-core/shared/items.lua.

qb-core/shared/items.lua
['jerrycan'] = {
    ['name'] = 'jerrycan',
    ['label'] = 'Jerry Can',
    ['weight'] = 4000,
    ['type'] = 'item',
    ['image'] = 'jerrycan.png',
    ['unique'] = true,
    ['useable'] = true,
    ['shouldClose'] = true,
    ['combinable'] = nil,
    ['description'] = 'Holds 20 litres of fuel. Use it, then pour it into a car.'
},

Ресурс сам регистрирует обработчик использования через CreateUseableItem, поэтому ничего добавлять в qb-core/server/main.lua не нужно.

qs-inventory, codem-inventory, tgiann-inventory

Все три инвентаря используют ту же конфигурацию предмета, что и qb-core выше. Различается только папка для изображений:

Инвентарь Папка для изображений
qs-inventory qs-inventory/html/images/
codem-inventory codem-inventory/html/itemimages/
tgiann-inventory tgiann-inventory/html/images/

Пользователи tgiann, использующие отдельный список, добавляют предмет в файл tgiann-inventory/shared/items.lua.

ESX

Скопируйте изображение в папку изображений вашего инвентаря — esx_inventoryhud/html/img/items/ для классического HUD или ox_inventory/web/images/ для сборок ESX на базе ox — после чего добавьте предмет.

SQL
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`)
VALUES ('jerrycan', 'Jerry Can', 4, 0, 1);

Для старых схем ESX без этих колонок используется сокращенный вариант:

SQL
INSERT INTO `items` (`name`, `label`) VALUES ('jerrycan', 'Jerry Can');

Ресурс сам вызывает ESX.RegisterUsableItem, поэтому дополнительная регистрация используемых предметов не требуется.

Тестирование

code
/giveitem <id> jerrycan 1

После этого перезапустите инвентарь и bupa-fuel.

Аккумулятор электромобиля

Для зарядки электромобилей используется собственный предмет ev_battery, который настраивается аналогично канистре — это обычный предмет, не требующий обработчика использования, так как он продается и потребляется самой зарядной станцией. Смотрите раздел Электрическая зарядка.