Skip to content

The jerry can

The jerry can

一个可以手持、在加油机加满并注入汽车的油桶。它是一个普通的物品栏道具,而不是武器。

官方原版的 weapon_petrolcan 被刻意弃用。那个模型带有喷火器行为 —— 玩家可以在地上泼洒燃油并将其点燃。这里的物品只能做一件事:给载具油箱加油。

游戏内表现

  • 使用该物品。油桶会出现在你的手中,并显示其中剩余的升数。
  • 走到载具旁并瞄准其油箱盖,或者站在载具附近按下 [E]
  • 它将以 Config.JerryCan.PourRate 升/Tick 的速度加油,注入的燃油和任何其他加油方式一样,遵循错误燃油规则。
  • 走开超过 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

将图片复制到你的物品栏图片文件夹中 —— 经典 HUD 为 esx_inventoryhud/html/img/items/,运行在 ox 架构上的 ESX 设置则为 ox_inventory/web/images/ —— 然后插入物品。

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,其定义方式与油桶相同 —— 这是一个常规物品,无需使用处理器,因为它由充电桩出售和消耗。参见电动车充电