Guides
Criando Lojas

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}
  • 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.
  • 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 locations e não targets para 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
    },
})