Documentação do Pulse Phone
Inventários
4. Itens e inventários
Os itens só são precisos em servidores com framework. Os ficheiros estão em config/items/ e as imagens em config/items/images/.
O que o telemóvel faz sozinho. No arranque, determina de que itens precisam as funcionalidades que ativou (a tabela abaixo) e depois:
| O seu inventário | O que acontece |
|---|---|
| ESX com o inventário padrão | Os itens em falta são adicionados à tabela items do ESX. As linhas existentes nunca são alteradas. A consola mostra uma linha com o que adicionou. Num ESX mais antigo que não consegue recarregar os itens, reinicie o servidor uma vez. O config/items/esx.sql serve só para os adicionar à mão. |
| QBCore com qb-inventory (também ps-, lj-inventory) | Os itens em falta são adicionados aos shared items do QBCore enquanto o servidor corre. Um item que o qb-core já tenha, como o seu próprio phone, fica como está. A consola mostra uma linha com o que adicionou. |
| ox_inventory (ESX, Qbox, ox_core) | O ox_inventory só lê itens do seu próprio ficheiro. A verificação de arranque lista só os itens em falta e mostra as entradas por baixo da caixa, prontas a colar em ox_inventory/data/items.lua. |
| Qualquer outro inventário | A verificação de arranque indica os itens em falta. Adicione-os da forma como esse inventário adiciona itens (a tabela em "O que fazer para o seu inventário"). |
Importante
As imagens nunca são copiadas por si. A verificação de arranque indica cada imagem em falta e a pasta para onde vai, por exemplo copy pulse_magpack.png, pulse_router.png from config/items/images/ into qb-inventory/html/images.
A verificação de arranque tem uma linha Items: [OK] quando todos os itens estão lá, ou [FAIL] com os nomes em falta e a solução por baixo. O phone:health mostra-a outra vez depois de corrigir algo.
| Item | Precisa dele quando |
|---|---|
phone |
Só com Config.Item.required = true (os jogadores têm de ter um telemóvel consigo) ou com telemóveis únicos. |
pulse_phone_box |
A loja vende telemóveis numa caixa selada. Ativo por defeito (Config.Store.box). |
pulse_magpack, pulse_magpack_max, pulse_cable |
Os acessórios de carregamento. Ativo por defeito (Config.Charging). |
pulse_router |
Pulse Home Wi-Fi, o router que os jogadores colocam em casa. Ativo por defeito (config/apps.lua). |
pulse_burner |
O Pulse Burner, um telemóvel pré-pago com número próprio. Ativo por defeito (config/apps.lua). |
pulse_case, pulse_case_clear, pulse_pouch, pulse_protector |
Proteção do telemóvel: capas, a bolsa à prova de água e a película de ecrã. Ativo por defeito (config/apps.lua). |
pulse_buds, pulse_ringlight, pulse_wallet |
Pulse Buds, o Pulse Ring Light e a Pulse Card Wallet. Ativo por defeito (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 define Config.Radio.item (secção 5, Radio). O ox_inventory e o qb-core já têm um item radio. |
Se faltar um item, o telemóvel arranca na mesma. A loja desliga as caixas ou retira esse item de venda, e a consola indica o item a adicionar.
Os Reserves empilham. As baterias cheias não têm metadados, por isso até 20 partilham uma ranhura. Uma bateria retirada a meio da carga passa a ser um item próprio com a carga nos metadados (no ox_inventory, qb-inventory e qs-inventory), por isso precisa de uma ranhura livre. Sem metadados de itens (standalone, o inventário padrão do ESX), só a bateria em uso é acompanhada, uma por personagem e por tamanho.
Com Config.Item.required = true (ou telemóveis únicos), o servidor verifica o item do telemóvel através do seu inventário e recusa os pedidos de um jogador que não o tenha. Perder o item termina as chamadas desse jogador, incluindo as de emergência, e fecha o telemóvel.
Dar uma caixa selada a outra pessoa. No ox_inventory, qb-inventory e qs-inventory, o próprio item da caixa guarda o modelo e o acabamento que foram comprados, por isso quem a abrir recebe esse telemóvel. Em todos os outros inventários, a caixa é um item simples e o modelo e o acabamento ficam no registo de compra do comprador: uma caixa oferecida 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 a colar, para o seu inventário
Nunca tem de escrever uma entrada de item por si. Quando falta um item, a verificação de arranque mostra o texto exato para o seu inventário por baixo da caixa, e Settings > Server > Health Check mostra o mesmo texto com um botão Copiar. Cole-o, reinicie o inventário e o telemóvel, e corra phone:health outra vez.
| O seu inventário | O que é mostrado | Para 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 telemóvel não as tiver conseguido adicionar sozinho) | qb-core/shared/items.lua |
| qs-inventory | Entradas no formato QBCore | A lista de itens do qs-inventory |
| Inventário padrão do ESX | Uma linha SQL (só se o telemóvel não as tiver conseguido adicionar sozinho) | A sua ferramenta de base de dados, depois reinicie |
| TMC | Entradas do TMC para todos os itens de que o telemóvel precisa (não é possível perguntar ao TMC quais tem) | A lista de itens do TMC (o ficheiro com sim_card), mantendo os que já tem |
| Qualquer outro inventário | Entradas no formato QBCore, o formato que a maioria dos inventários lê | A lista de itens desse inventário |
Como fica cada um, para o Reserve:
-- 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." },-- ESX default inventory
INSERT IGNORE INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES
('pulse_magpack', 'Pulse Reserve', 1, 0, 1);O item phone do próprio ox_inventory. O ox_inventory traz uma entrada phone feita para outro script de telemóvel. Não precisa de a alterar: usá-la abre o Pulse Phone. A verificação de arranque tem uma linha Phone item que diz como a sua entrada está ligada. Só quando indica o export de outro script ([WARN], ou [FAIL] com telemóveis obrigatórios ou únicos) é que mostra a entrada de substituição. Se o script de telemóvel para o qual essa entrada foi feita ainda estiver a correr, o item abre esse em vez do Pulse: a linha Phone item indica-o; remova-o do server.cfg.
O que fazer para o seu inventário
| Inventário | Para onde vão os itens | Para onde vão as imagens |
|---|---|---|
| ox_inventory (ESX, Qbox, ox_core) | Cole as entradas que a verificação de arranque mostra (ou o ox_inventory.lua inteiro) em ox_inventory/data/items.lua, dentro da tabela. Mantenha a entrada ['phone'] do próprio ox_inventory (abre o Pulse Phone); substitua-a pela mostrada só quando a linha Phone item disser que abre outro script |
ox_inventory/web/images/ |
| qb-inventory | Nada: adicionados no arranque. Para os adicionar à mão, cole o qb-core.lua em qb-core/shared/items.lua |
qb-inventory/html/images/ |
| ps-inventory, lj-inventory | Nada: adicionados no arranque, 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 lista de itens do próprio qs-inventory |
a pasta de imagens do seu inventário |
| codem-inventory, core_inventory, tgiann-inventory, origen_inventory | Adicione os itens à lista de itens da forma como adiciona qualquer item, usando os nomes, etiquetas 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 no arranque. O esx.sql é a forma manual |
não é preciso |
| vRP 2 | Veja a secção vRP acima | |
| Standalone | Nada |
Para os outros inventários desta tabela, o telemóvel torna os itens utilizáveis sozinho. O ox_inventory usa as linhas client = { export = 'phone....' } que já estão no seu ficheiro.
ox_inventory: se usou outro telemóvel antes, remova também o seu hook Item('phone', ...) de ox_inventory/modules/items/client.lua.
O ak47_inventory define o uso de cada item na sua própria entrada. Adicione estas:
-- 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 },Os telemóveis únicos (Config.Item.unique = true) guardam o número de telemóvel no item, por isso entregar o item entrega o telemóvel. Requerem ox_inventory, qb-inventory, qs-inventory, core_inventory ou codem-inventory.