Documentação do Pulse Phone

Inventários

Para o Pulse Phone 1.4.28 min de leituraAtualizado em

4. Itens e inventários

Os itens só são necessários em servidores com framework. Os arquivos estão em config/items/ e as imagens em config/items/images/.

O que o celular faz sozinho. Na inicialização ele descobre de quais itens os recursos que você ativou precisam (a tabela abaixo), e então:

Seu inventário O que acontece
ESX com o inventário padrão Os itens que faltam são adicionados à tabela items do ESX. As linhas existentes nunca são alteradas. O console imprime uma linha dizendo o que adicionou. Em um ESX mais antigo que não consegue recarregar os itens, reinicie o servidor uma vez. O config/items/esx.sql serve só para adicioná-los à mão.
QBCore com qb-inventory (ps-, lj-inventory também) Os itens que faltam são adicionados aos shared items do QBCore enquanto o servidor roda. Um item que o qb-core já tem, como o próprio phone, fica como está. O console imprime uma linha dizendo o que adicionou.
ox_inventory (ESX, Qbox, ox_core) O ox_inventory só lê itens do próprio arquivo. A verificação de inicialização lista só os itens que faltam e imprime as entradas deles abaixo do quadro, prontas para colar em ox_inventory/data/items.lua.
Qualquer outro inventário A verificação de inicialização aponta os itens que faltam. Adicione-os do jeito que esse inventário adiciona itens (a tabela em "O que fazer para o seu inventário").

Importante

As imagens nunca são copiadas por você. A verificação de inicialização aponta cada imagem que falta e a pasta para onde ela vai, por exemplo copy pulse_magpack.png, pulse_router.png from config/items/images/ into qb-inventory/html/images.

A verificação de inicialização tem uma linha Items: [OK] quando todos os itens estão lá, ou [FAIL] com os nomes que faltam e a solução abaixo. O phone:health mostra de novo depois que você corrigir algo.

Item Você precisa dele quando
phone Só com Config.Item.required = true (os jogadores precisam carregar um celular) ou com celulares únicos.
pulse_phone_box A loja vende celulares em caixa lacrada. Ativado por padrão (Config.Store.box).
pulse_magpack, pulse_magpack_max, pulse_cable Os acessórios de carregamento. Ativados por padrão (Config.Charging).
pulse_router Pulse Home Wi-Fi, o roteador que os jogadores colocam em casa. Ativado por padrão (config/apps.lua).
pulse_burner O Pulse Burner, um celular pré-pago com número próprio. Ativado por padrão (config/apps.lua).
pulse_case, pulse_case_clear, pulse_pouch, pulse_protector Proteção do celular: capinhas, a pochete à prova d'água e a película. Ativada por padrão (config/apps.lua).
pulse_buds, pulse_ringlight, pulse_wallet Pulse Buds, o Pulse Ring Light e a Pulse Card Wallet. Ativados por padrão (config/apps.lua).
powerbank Opcional. O antigo item de power bank; funciona como um Reserve.
pulse_phone_box_<finish> Só com Config.Store.boxPerFinish = true.
radio (ou qualquer nome) Só quando você define Config.Radio.item (seção 5, Radio). O ox_inventory e o qb-core já têm um item radio.

Se um item estiver faltando, o celular inicia mesmo assim. A loja desliga as caixas ou tira aquele item de venda, e o console indica o item a adicionar.

Os Reserves empilham. Packs cheios não têm metadata, então até 20 dividem um slot. Um pack retirado parcialmente usado vira um item próprio com a carga na metadata (no ox_inventory, qb-inventory e qs-inventory), então precisa de um slot livre. Sem metadata de item (standalone, o inventário padrão do ESX) só o pack em uso é rastreado, um por personagem por tamanho.

Com Config.Item.required = true (ou celulares únicos), o servidor verifica o item do celular pelo seu inventário e recusa requisições de celular de um jogador sem ele. Perder o item encerra as chamadas desse jogador, inclusive as de emergência, e fecha o celular.

Dando uma caixa lacrada para outra pessoa. No ox_inventory, qb-inventory e qs-inventory, o próprio item da caixa carrega o modelo e o acabamento que foram comprados, então quem abrir recebe aquele celular. Em todos os outros inventários a caixa é um item simples e o modelo e o acabamento ficam no registro de compra do próprio comprador: uma caixa dada a alguém abre como a próxima compra do novo dono, ou com o modelo e o acabamento padrão. Com Config.Store.boxPerFinish = true o nome do item da caixa guarda o acabamento, mas não o modelo.

O texto exato para colar, para o seu inventário

Você nunca precisa montar uma entrada de item sozinho. Quando um item está faltando, a verificação de inicialização imprime o texto exato para o seu inventário abaixo do quadro, e Settings > Server > Health Check mostra o mesmo texto com um botão Copy. Cole, reinicie o inventário e o celular, e rode phone:health de novo.

Seu inventário O que é impresso Onde vai
ox_inventory (ESX, Qbox, ox_core, ND Core) Entradas do ox_inventory ox_inventory/data/items.lua, dentro da tabela
QBCore (qb-, ps-, lj-inventory) Entradas do QBCore (só se o celular não conseguiu adicioná-las sozinho) qb-core/shared/items.lua
qs-inventory Entradas no formato do QBCore A lista de itens do qs-inventory
Inventário padrão do ESX Uma linha de SQL (só se o celular não conseguiu adicioná-los sozinho) Sua ferramenta de banco de dados, depois reinicie
TMC Entradas do TMC para cada item de que o celular precisa (não dá para perguntar ao TMC quais ele tem) A lista de itens do TMC (o arquivo com sim_card), mantendo os que você já tem
Qualquer outro inventário Entradas no formato do QBCore, o formato que a maioria dos inventários lê A lista de itens desse inventário

Como cada uma fica, para o Reserve:

Lua
-- ox_inventory/data/items.lua
['pulse_magpack'] = { label = "Pulse Reserve", weight = 110, stack = true, close = true, consume = 0, description = "Magnetic battery pack. Fills 70% of a phone.", client = { export = "phone.usePack", image = "pulse_magpack.png" } },

-- qb-core/shared/items.lua, qs-inventory and similar
['pulse_magpack'] = { name = "pulse_magpack", label = "Pulse Reserve", weight = 110, type = 'item', image = "pulse_magpack.png", unique = false, useable = true, shouldClose = true, description = "Magnetic battery pack. Fills 70% of a phone." },

-- TMC
['pulse_magpack'] = { ['label'] = "Pulse Reserve", ['weight'] = 110, ['type'] = 'item', ['image'] = "pulse_magpack.png", ['unique'] = false, ['stackable'] = true, ['useable'] = true, ['shouldClose'] = true, ['description'] = "Magnetic battery pack. Fills 70% of a phone." },
SQL
-- ESX default inventory
INSERT IGNORE INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES
  ('pulse_magpack', 'Pulse Reserve', 1, 0, 1);

O próprio item phone do ox_inventory. O ox_inventory vem com uma entrada phone feita para outro script de celular. Você não precisa mudá-la: usá-la abre o Pulse Phone. A verificação de inicialização tem uma linha Phone item que diz como a sua entrada está ligada. Só quando ela cita o export de outro script ([WARN], ou [FAIL] com celulares obrigatórios ou únicos) é que ela imprime a entrada substituta. Se o script de celular para o qual essa entrada foi feita ainda estiver rodando, o item abre aquele: a linha Phone item diz qual; remova-o do server.cfg.

O que fazer para o seu inventário

Inventário Onde os itens vão Onde as imagens vão
ox_inventory (ESX, Qbox, ox_core) Cole as entradas que a verificação de inicialização imprime (ou o ox_inventory.lua inteiro) em ox_inventory/data/items.lua, dentro da tabela. Mantenha a entrada ['phone'] do próprio ox_inventory (ela abre o Pulse Phone); substitua pela impressa só quando a linha Phone item disser que ela abre outro script ox_inventory/web/images/
qb-inventory Nada: adicionados na inicialização. Para adicioná-los à mão, cole o qb-core.lua em qb-core/shared/items.lua qb-inventory/html/images/
ps-inventory, lj-inventory Nada: adicionados na inicialização, como no qb-inventory a pasta de imagens do seu inventário
qs-inventory Cole o qb-core.lua em qb-core/shared/items.lua, ou na própria lista de itens do qs-inventory a pasta de imagens do seu inventário
codem-inventory, core_inventory, tgiann-inventory e origen_inventory Adicione os itens à lista de itens dele do jeito que você adiciona qualquer item, usando os nomes, rótulos e pesos do qb-core.lua (phone, powerbank, pulse_magpack, pulse_magpack_max, pulse_cable, pulse_router, pulse_burner, pulse_buds, pulse_ringlight, pulse_wallet, pulse_phone_box). Use pulse_magpack.png também para powerbank e pulse_magpack_max a pasta de imagens do seu inventário
ak47_inventory Adicione os itens, mais as linhas onUse abaixo a pasta de imagens do seu inventário
Inventário padrão do ESX Nada: adicionados na inicialização. O esx.sql é o jeito manual não necessário
vRP 2 Veja a seção do vRP acima
Standalone Nada

Para os outros inventários desta tabela, o celular torna os itens usáveis sozinho. O ox_inventory usa as linhas client = { export = 'phone....' } que já estão no arquivo dele.

ox_inventory: se você usava outro celular antes, remova também o hook Item('phone', ...) dele de ox_inventory/modules/items/client.lua.

O ak47_inventory guarda o uso do item na própria entrada de cada item. Adicione estas:

Lua
-- powerbank
server = { onUse = function(source) exports.phone:UsePowerbank(source) end },
-- pulse_magpack and pulse_magpack_max
server = { onUse = function(source, item) exports.phone:UseMagPack(source, item and item.slot, item and item.name) end },
-- pulse_cable
server = { onUse = function(source) exports.phone:UseChargingCable(source) end },
-- pulse_phone_box
server = { onUse = function(source, item) exports.phone:UseBox(source, item and item.slot) end },
-- pulse_router
server = { onUse = function(source) exports.phone:UseRouter(source) end },
-- pulse_burner
server = { onUse = function(source, item) exports.phone:UseBurner(source, item and item.slot) end },
-- pulse_case, pulse_case_clear, pulse_pouch, pulse_protector
server = { onUse = function(source, item) exports.phone:FitPhoneProtection(source, item and item.name) end },
-- pulse_buds
server = { onUse = function(source) exports.phone:UseBuds(source) end },
-- pulse_ringlight
server = { onUse = function(source) exports.phone:UseRingLight(source) end },
-- pulse_wallet
server = { onUse = function(source) exports.phone:UseCardWallet(source) end },

Celulares únicos (Config.Item.unique = true) colocam o número de telefone no item, então entregar o item é entregar o celular. Eles precisam de ox_inventory, qb-inventory, qs-inventory, core_inventory ou codem-inventory.

Traduzido do inglês. Se algo aqui divergir da página em inglês, vale a página em inglês. English