Configurando Permissões e Pagamentos no Lapdance

Neste guia, você aprenderá a configurar as funções relacionadas a permissões de criação de blips e transações financeiras no script Lapdance.
📁 dk_lapdance > config > server > functions.lua

Verificando permissões de criação de blips

Função Config.blipCreatePermission

Essa função verifica se o player possui permissão para criar ou remover blips. Como funciona:
  • Utiliza a função FW.isAdmin(source) do framework do player, caso ele seja identificado pelo dk_snippets.
  • Caso o framework não seja detectado, verifica diretamente através do FiveM Ace Permissions usando IsPlayerAceAllowed(source, "admin").
Código:
function Config.blipCreatePermission(source) 
    return FW.isAdmin(source)
end
Customização: Se necessário, adapte o comportamento para utilizar permissões específicas ou outro método de validação de administradores.

Efetuando pagamento de gorjetas

Função Config.tipPayment

Essa função processa o pagamento de gorjetas pelo player. Como funciona:
  1. Obtém o user_id do player usando FW.userId(source).
  2. Deduz o valor da gorjeta do banco do player com FW.paymentBank(user_id, amount).
  3. Caso o player não tenha saldo suficiente, uma mensagem de erro é enviada.
  4. Se o pagamento for bem-sucedido, uma mensagem de sucesso é exibida.
Código:
function Config.tipPayment(source, amount)
    local user_id = FW.userId(source)
    if not FW.paymentBank(user_id, amount) then
        DkNotify(source, "red", "Impossível efetuar o pagamento da gorjeta. Dinheiro insuficiente.")
        return false
    end
    DkNotify(source, "green", "Gorjeta enviada com sucesso.")
    return true
end
Mensagem ao jogador:
  • Erro: “Impossível efetuar o pagamento da gorjeta. Dinheiro insuficiente.”
  • Sucesso: “Gorjeta enviada com sucesso.”

Distribuindo gorjetas aos dançarinos

Função Config.giveTip

Essa função distribui o valor total da gorjeta entre os dançarinos. Como funciona:
  1. Calcula o valor individual da gorjeta dividindo o total pela quantidade de dançarinos.
  2. Adiciona o valor ao banco do player usando FW.giveBank(user_id, amount).
  3. Envia uma notificação de sucesso ao player informando o valor recebido.
Código:
function Config.giveTip(dancers, total)
    local amount = ParseInt(total / #dancers)
    table.forEach(dancers, function(datas)
        CreateThread(function()
            local user_id = FW.userId(datas.source)
            FW.giveBank(user_id, amount)
            DkNotify(datas.source, "green", "Você recebeu uma gorjeta de <strong>$"..amount..".0</strong> pela dança.", 10000)
        end)
    end)
end
Mensagem ao jogador:
  • “Você recebeu uma gorjeta de $X.0 pela dança.”
Nota: O valor é dividido igualmente entre os dançarinos para evitar inconsistências e possíveis duplicações.

Dicas Úteis

  • As funções FW.isAdmin, FW.userId, FW.paymentBank e FW.giveBank são dependências do framework detectado pelo dk_snippets. Certifique-se de que seu framework é compatível ou adapte essas funções conforme necessário.
  • A função Config.blipCreatePermission é verificada em todas as alterações de blips para evitar dumps, caso queira remover a necessidade de permissões altere para return true.