⚙️Configuração

O SysteMartins - Rest Totem tem um arquivo de configuração bem detalhado.

📁 Passo a Passo:

  • Acesse a pasta "shared" do recurso.

  • Localize e abra o arquivo "config.lua".

  • Dentro dele, você encontrará todas as opções de configuração, acompanhadas de breves explicações sobre a função de cada parâmetro.

Com isso, a personalização do seu sistema se torna rápida, prática e intuitiva.

Config = {}

-- ========================================
-- CONFIGURAÇÕES GERAIS
-- ========================================
Config.Debug = true -- true para habilitar debug no console, false para desabilitar

-- ========================================
-- CONFIGURAÇÕES DE LINGUAGEM
-- ========================================
Config.Locale = "pt-br" -- Idioma do sistema (pt-br, en, es, etc.)

-- ========================================
-- CONFIGURAÇÕES DE ANIMAÇÃO
-- ========================================

-- A ANIMAÇÃO QUE SERÁ EXECUTADA AO APERTAR PARA ACESSAR O MENU DO RESTAURANTE
Config.Atendimento = {
    dict = "amb@prop_human_atm@male@idle_a",
    anim = "idle_a"
}

-- A ANIMAÇÃO QUE SERÁ EXECUTADA AO APERTAR PARA GERENCIAR O MENU DO RESTAURANTE
Config.Gerenciamento = {
    dict = "amb@prop_human_parking_meter@female@idle_a",
    anim = "idle_a_female"
}

-- ========================================
-- CONFIGURAÇÕES DO PROCESSO DE COMPRA
-- ========================================
Config.ProcessoCompra = {
    habilitado = true, -- Ativar/desativar as animações do processo de compra na NUI
    
    -- DURAÇÕES DAS ETAPAS (em milissegundos - 1000ms = 1 segundo)
    etapas = {
        { duracao = 1 }, -- 1ª Etapa: "Anotando seu pedido..."
        { duracao = 2500 }, -- 2ª Etapa: "Verificando pagamento..."
        { duracao = 4000 }, -- 3ª Etapa: "Preparando seu pedido...""
        { duracao = 1000 }  -- 4ª Etapa: "Entregando pedido..."
    }
}

-- ========================================
-- CONFIGURAÇÃO DOS TOTEMS
-- ========================================
Config.Stores = {
    -- TOTEM 1: Burger Shot
    [1] = {
        Position = vec4(-1180.85, -885.05, 13.78, 306.15), -- Posição do totem (x, y, z, heading)
        Model = "v_serv_metro_advertstand1", -- Modelo 3D do totem (prop do GTA)
        Permission = "Catscafe", -- Permissão necessária para usar
        Level = 1, -- Nível mínimo necessário
        ChecarTrabalhadores = true, -- Faz a checagem se há trabalhores no momento
        Name = "Burger Shot", -- Nome do estabelecimento
        Banner = "https://static.wikia.nocookie.net/gtawiki/images/b/bf/BurgerShot-HDLogo.svg", -- Banner do restaurante
        Colors = { -- Cores personalizadas da interface
            primary = "#8B4513", -- Cor principal (marrom)
            secondary = "#A0522D", -- Cor secundária
            accent = "#654321" -- Cor de destaque
        },
        BankOnly = true, -- true = só aceita dinheiro do banco
        HandOnly = false, -- true = só aceita dinheiro do inventário
        UnlimitedStock = true, -- true = estoque ilimitado
        -- CASO DEIXE 'BankOnly' e 'HandOnly' como false ele vai tirar primeiro o dinheiro da mao e depois do banco
        Items = { -- Lista de produtos disponíveis
            {
                Name = "Hambúrguer Clássico", -- Nome do produto exibido na interface
                Spawn = "hamburger", -- Nome do item no inventário
                Price = 25, -- Preço do produto
                Image = "hamburger.png" -- Imagem do produto
            },
            {
                Name = "Batata Frita",
                Spawn = "fries",
                Price = 15,
                Image = "fries.png"
            },
            {
                Name = "Refrigerante",
                Spawn = "cola",
                Price = 10,
                Image = "cola.png"
            },
            {
                Name = "Milkshake",
                Spawn = "milkshake",
                Price = 20,
                Image = "milkshake.png"
            }
        }
    },
    
    -- TOTEM 2: Cat's Café
    [2] = {
        Position = vec4(-1807.04,-1186.98,13.01,221.11), -- Posição do totem (x, y, z, heading)
        Model = "v_serv_metro_advertstand1", -- Modelo 3D do totem (máquina de café)
        Permission = "Admin", -- Permissão necessária para usar
        Level = 3, -- Nível mínimo necessário
        ChecarTrabalhadores = true, -- Faz a checagem se há trabalhores no momento
        Name = "Cat's Café", -- Nome do estabelecimento
        Banner = "https://static.wikia.nocookie.net/nopixel/images/6/6a/Uwu_cafe_logo.jpg", -- Banner do restaurante
        Colors = { -- Cores personalizadas da interface
            primary = "#2E8B57", -- Cor principal (verde)
            secondary = "#3CB371", -- Cor secundária
            accent = "#228B22" -- Cor de destaque
        },
        BankOnly = false, -- true = só aceita dinheiro do banco
        HandOnly = true, -- true = só aceita dinheiro do inventário
        UnlimitedStock = false, -- true = estoque ilimitado, false = usar estoque do BD
        -- CASO DEIXE 'BankOnly' e 'HandOnly' como false ele vai tirar primeiro o dinheiro da mao e depois do banco
        Items = { -- Lista de produtos disponíveis
            {
                Name = "Café Expresso",
                Spawn = "coffee",
                Price = 12,
                Image = "coffee.png"
            },
            {
                Name = "Cappuccino",
                Spawn = "cappuccino",
                Price = 18,
                Image = "cappuccino.png"
            },
            {
                Name = "Sanduíche",
                Spawn = "sandwich",
                Price = 22,
                Image = "sandwich.png"
            },
            {
                Name = "Cupcake",
                Spawn = "cupcake",
                Price = 15,
                Image = "cupcake.png"
            }
        }
    }
    
    -- Para adicionar mais totems, copie a estrutura acima e mude o ID [3], [4], etc.
    -- Modelos de totem sugeridos:
    -- "v_serv_metro_advertstand1" - Totem de propaganda padrão
    -- "v_serv_metro_advertstand2" - Totem de propaganda alternativo
    -- "prop_vend_coffe_01" - Máquina de café
    -- "prop_vend_soda_01" - Máquina de refrigerante
    -- "prop_vend_soda_02" - Máquina de refrigerante 2
    -- "prop_vend_fridge01" - Geladeira
}

-- ========================================
-- CONFIGURAÇÕES DE INTERAÇÃO
-- ========================================
Config.InteractionDistance = 2.0 -- Distância máxima para interagir com o totem (em metros)
Config.SpawnDistance = 50.0 -- Distância para spawnar/despawnar totems (em metros)
Config.TextUI = {
    Key = 38 -- Tecla para interagir (38 = E)
    -- Outras teclas: 47 = G, 74 = H, 38 = E, 46 = N
}

-- ========================================
-- FUNÇÕES DO SISTEMA
-- ========================================
-- Estas funções conectam o sistema com o framework vRP só altere se souber exatamente o que está fazendo
Config.Functions = {
    -- CONFIGURE AS FUNÇÕES CORRETAS DO SEU vRP AQUI:
    
    -- Obter Passaporte do jogador
    Passport = function(source)
        return vRP.Passport(source)
    end,

    -- Obter nome do jogador
    Identity = function(Passport)
        return vRP.Identity(Passport)
    end,

    -- Verificar se o jogador tem o dinheiro ficiente em banco // Normalmente retornará valor numérico
    GetBank = function(Passport)
        return vRP.Identity(Passport).bank
    end,

    -- Verificar se o jogador tem o dinheiro ficiente em maos // Normalmente retornará valor boleano (true / false)
    GetMoney = function(Passport,Amount)
        return vRP.ConsultItem(Passport,"dollars",Amount)
    end,
    
    -- Cobrar diretamente do banco do jogador
    PaymentBank = function(Passport, amount)
        return vRP.PaymentBank(Passport, amount)
    end,
    
    -- Cobrar diretamente das maos do jogador
    PaymentMoney = function(Passport, amount)
        return vRP.PaymentMoney(Passport, amount)
    end,

    -- Cobrar diretamente das maos e o restante do banco do jogador
    PaymentFull = function(Passport, amount)
        return vRP.PaymentFull(Passport, amount)
    end,    
    
    -- Obter peso de um item
    ItemWeight = function(item)
        return vRP.ItemWeight(item) or 0.1
    end,
    
    -- Verifica o tamanho da mochila do jogador
    GetWeight = function(Passport)
        return vRP.GetWeight(Passport)
    end,

    -- Verifica o peso total dos itens do jogador
    InventoryWeight = function(Passport)
        return vRP.InventoryWeight(Passport)
    end,

    -- Verificar limite máximo do item
    MaxItens = function(Passport, spawn, quantidade)
        return vRP.MaxItens(Passport, spawn, quantidade)
    end,
    
    -- Dar item para o jogador
    GiveItem = function(Passport, item, quantity)
        return vRP.GiveItem(Passport, item, quantity, true)
    end,

    -- Retirar item do inventario do jogador...
    TakeItem = function(Passport, item, amount)
        return vRP.TakeItem(Passport,item,amount,true)
    end,
    
    -- Enviar notificação para o jogador
    Notify = function(source, type, message, time)
        TriggerClientEvent("Notify", source, type, message, "Restaurante", time)
    end,
    
    -- Verificar permissão do jogador
    HasPermission = function(Passport, permission, nivel)
        return vRP.HasPermission(Passport, permission, nivel)
    end,

    -- Verificar trabalhores online
    NumPermission = function(permission)
        local id,service = vRP.GetPlayersInService(permission)
        return service

        -- OR vRP.NumPermission(permission)
    end,
}

-- ========================================
-- FUNÇÕES DA TRADUÇÃO (NAO ALTERAR)
-- ========================================
function _L(key)
    if not Locale or not Config.Locale then return key end
    return Locale[Config.Locale] and Locale[Config.Locale][key] or key
end

Atualizado