Criando Lojas
As lojas integradas são definidas em data/shops.lua (opens in a new tab), e novas lojas podem ser adicionadas aqui para aproveitar os marcadores embutidos ou o suporte a zonas.
Definição da loja
{
General = {
name = 'Shop',
blip = {
id = 59,
colour = 69,
scale = 0.8
},
inventory = {
{ name = 'burger', price = 10 },
{ name = 'water', price = 10 },
{ name = 'cola', price = 10 },
},
locations = {
vec3(25.7, -1347.3, 29.49),
},
targets = {
-- Shop using a BoxZone
{
loc = vec3(25.06, -1347.32, 29.5),
length = 0.7,
width = 0.5,
heading = 0.0,
minZ = 29.5,
maxZ = 29.9,
distance = 1.5
},
-- Shop using a ped
{
ped = `mp_m_shopkeep_01`,
scenario = 'WORLD_HUMAN_AA_COFFEE',
loc = vec3(24.407, -1347.283, 28.497),
heading = 270.311,
},
}
}
}- name:
string- O rótulo exibido quando a loja estiver aberta.
- blip?:
table- Cria um blip com as configurações fornecidas. Deixe indefinido para não criar blip.
- id:
number - colour:
number - scale:
number
- groups?:
table- Pares chave-valor de nome de job e grade mínima para acessar a loja.
{["police"] = 0, ["ambulance"] = 2}
- Pares chave-valor de nome de job e grade mínima para acessar a loja.
- inventory:
table- name:
string - price:
number - currency?:
string- Item a ser usado como moeda.
- count?:
number- Quantidade do item em estoque.
- license?:
string- Licença necessária para comprar o item.
- metadata?:
table - grade?:
number|number[]- Grade mínima necessária para comprar o item.
- name:
- locations?:
vector3[]- Um array de coordenadas para criar instâncias únicas do arquétipo da loja, usando marcadores.
- targets?:
table[]- Um array de configurações de target para criar instâncias únicas do arquétipo da loja, usando peds ou BoxZones (estrutura PolyZone).
- model?:
number[]- Um array de modelos que podem ser alvo para abrir uma loja. Usado para máquinas de venda.
Targets e model estão disponíveis apenas quando se utiliza um recurso de targeting como o ox_target.
Registrar em tempo de execução
Lojas podem ser adicionadas usando exports.ox_inventory:RegisterShop no servidor, entretanto elas não podem utilizar recursos exclusivos do cliente.
- Blips, marcadores e zonas não serão criados.
- Deve-se usar
locationse nãotargetspara definir cada loja usando o arquétipo.
Exemplo
exports.ox_inventory:RegisterShop('TestShop', {
name = 'Test shop',
inventory = {
{ name = 'burger', price = 10 },
{ name = 'water', price = 10 },
{ name = 'cola', price = 10 },
},
locations = {
vec3(223.832962, -792.619751, 30.695190),
},
groups = {
police = 0
},
})