Skip to content

DonPlastico/DP-Banking

Repository files navigation

Sistema Bancario Avanzado para FiveM (QBCore)

DP-Banking Logo

License FiveM QBCore

📝 Descripción General

DP-Banking es un sistema bancario avanzado diseñado para servidores de FiveM que utilizan el framework QBCore. Este script proporciona a los jugadores una manera completa de gestionar sus finanzas a través de una interfaz NUI, con múltiples opciones de acceso y un control exhaustivo sobre sus transacciones.

Características del Script

  • Múltiples Puntos de Interacción: Cajeros automáticos y sucursales bancarias en todo el mapa para un acceso conveniente. Puedes configurarlos fácilmente en config.lua.

  • Gestión Completa de Cuentas: Los jugadores pueden gestionar sus cuentas personales, transferir dinero, y ver estados de cuenta detallados.

  • Cuentas de Jobs/Gangs: Creación y gestión automática de cuentas bancarias para facciones y bandas, con acceso exclusivo para los jefes.

  • Cuentas Compartidas: Posibilidad de crear cuentas bancarias compartidas con otros jugadores.

  • Integración de Tarjetas: Un sistema de tarjetas bancarias que añade una capa extra de realismo al acceso a los cajeros automáticos.



🚀 Documentación para Desarrolladores

El script incluye varias funciones exportadas del lado del servidor que pueden ser llamadas desde otros recursos para interactuar con el sistema bancario.

CreatePlayerAccount

Crea una nueva cuenta compartida para un jugador y regresa si fue exitosa o no.

exports['DP-Banking']:CreatePlayerAccount(playerId, accountName, accountBalance, accountUsers)

  • playerId: number
  • accountName: string
  • accountBalance: number
  • accountUsers: table
  • returns: boolean

Ejemplo:
RegisterCommand('createPlayerAccount', function(source)
local playerId = source
local accountName = 'Mi cuenta compartida'
local accountBalance = 5000
local accountUsers = {'LLL11111', 'LLL11112'} -- Lista de citizenid
exports['DP-Banking']:CreatePlayerAccount(playerId, accountName, accountBalance, json.encode(accountUsers))
end, true)

CreateJobAccount

Crea una nueva cuenta de tipo de job, esto se hace automáticamente, por lo que no debería ser necesario.

exports['DP-Banking']:CreateJobAccount(accountName, accountBalance)

  • accountName: string
  • accountBalance: number

Ejemplo:
RegisterCommand('createJobAccount', function()
local accountName = 'police'
local accountBalance = 10000
exports['DP-Banking']:CreateJobAccount(accountName, accountBalance)
end, true)

CreateGangAccount

Crea una nueva cuenta de tipo gang, esto se hace automáticamente por lo que no debería ser necesario.

exports['DP-Banking']:CreateGangAccount(accountName, accountBalance)

  • accountName: string
  • accountBalance: number

Ejemplo:
RegisterCommand('createGangAccount', function()
local accountName = 'ballas'
local accountBalance = 10000
exports['DP-Banking']:CreateGangAccount(accountName, accountBalance)
end, true)

AddMoney

Agrega dinero a una cuenta por nombre y regresa donde fue exitoso o no.

exports['DP-Banking']:AddMoney(accountName, amount, reason)

  • accountName: string
  • amount: number
  • reason: string
  • returns: boolean

Ejemplo:
RegisterCommand('addMoney', function()
local accountName = 'police'
local amount = 10000
exports['DP-Banking']:AddMoney(accountName, amount, 'Ejemplo')
end, true)

RemoveMoney

Retira dinero de una cuenta por nombre y regresa donde fue exitoso o no.

exports['DP-Banking']:RemoveMoney(accountName, amount, reason)

  • accountName: string
  • amount: number
  • reason: string
  • returns: boolean

Ejemplo: RegisterCommand('removeMoney', function()
local accountName = 'police'
local amount = 10000
exports['DP-Banking']:RemoveMoney(accountName, amount, 'Ejemplo')
end, true)

GetAccount

Devuelve toda la información de la cuenta especificada por nombre.

exports['DP-Banking']:GetAccount(accountName)

  • accountName: string
  • returns: table | nil

Ejemplo:
RegisterCommand('getAccount', function()
local accountName = 'police'
local accountInfo = exports['DP-Banking']:GetAccount(accountName)
if not accountInfo then print('Cuenta '..accountName..' no existe') return end
for _, info in pairs(accountInfo) do
print('Nombre de cuenta: '..info.account_name)
print('Saldo de cuenta: '..info.account_balance)
print('Tipo de cuenta: '..info.account_type)
end
end, true)

GetAccountBalance

Devuelve solo el saldo de la cuenta especificada por nombre.

exports['DP-Banking']:GetAccountBalance(accountName)

  • accountName: string
  • returns: number

Ejemplo:
RegisterCommand('getBalance', function()
local accountName = 'police'
local balance = exports['DP-Banking']:GetAccountBalance(accountName)
print('Cuenta: '..accountName..' Balance: '..balance)
end, true)

CreateBankStatement

Esto creará un estado de cuenta para una cuenta específica y regresará si fue exitoso o no.

exports['DP-Banking']:CreateBankStatement(playerId, account, amount, reason, statementType, accountType)

  • playerId: number
  • account: string
  • amount: number
  • reason: string
  • statementType: string
  • accountType: string
  • returns: boolean

Ejemplo:
RegisterCommand('createBankStatement', function(source)
local playerId = source
local account = 'Mi cuenta compartida'
local amount = 5000
local reason = 'Dinero retirado'
local statementType = 'withdraw' -- 'deposit', 'withdraw'
local accountType = 'shared' -- 'player', 'shared', 'job', 'gang'
local statementCreated = exports['DP-Banking']:CreateBankStatement(playerId, account, amount, reason, statementType, accountType)
if statementCreated then print('Declaración creada') return end
print('Error al crear la declaración')
end, true)



🚀 Instalación

Requisitos previos

- Servidor FiveM con QBCORE instalado.
- MySQL configurado. (oxmysql)
- PolyZone

Pasos de instalación

1. **Descargar el script** desde el repositorio oficial.
2. **Colocar la carpeta** en tu servidor con el nombre exacto `DP-Banking`.
- ⚠️ El nombre debe ser exactamente este para evitar problemas.
3. **Configuración de la Base de Datos**.
Abre el archivo Insert.sql.
Copia y pega el contenido en tu base de datos MySQL y ejecútalo. (Asegúrate de que tu servidor tenga acceso a la base de datos configurada para oxmysql.).


⚙️ Dependencias

El script requiere las siguientes dependencias (deben estar instaladas y configuradas):

📦 Requisitos del Sistema

Recurso Descripción Enlace
qb-core qb-core Framework principal 🔗 GitHub
PD-TextUI PD-TextUI (optional) Text UI avanzado 🔗 GitHub
DP-Menu DP-Menu Sistema de menús para QBCore Framework 🔗 GitHub
PolyZone PolyZone Script para definir zonas de diferentes formas y probar si un punto está dentro o fuera de la zona. 🔗 GitHub
oxmysql oxmysql Recurso MySQL para FXServer. 🔗 GitHub


📂 Estructura de Archivos

🖥️ Mostrar estructura completa y descripción

DP-PetsShop/
├── 📁 html/
│ ├── 🌐 index.html
│ ├── 📄 script.js
│ └── 🎨 style.css
├── 📁 locales/
│ ├── 🔵 en.lua
│ ├── 🔵 es.lua
│ ├── 🔵 it.lua
│ └── 🔵 nl.lua
├── 🗄️ Insert.sql
├── 📜 LICENSE
├── 📖 README.md
├── 🔵 client.lua
├── 🔵 config.lua
├── 🔵 fxmanifest.lua
└── 🔵 server.lua

** 💡 Datos Técnicos:** La estructura está optimizada para consumo mínimo de recursos (0.01ms) y máxima compatibilidad con QBCore.



🛠️ Configuración

El archivo config.lua te permite personalizar el script según tus necesidades.

⚙️ Mostrar configuración

config.lua

image
Archivo Función Principal
config.lua Define las configuraciones principales del script, como el control del DP-TextUI, modelos, localizaciones...


🖼️ Vistas Previas

Aquí tienes una lista de las vistas previas de tu script.
Details

Interfaz del Banco

image image image image image image image image

Details

Interfaz sacar Tarjeta

image image image image image

Details

Interfaz eliminar Tarjetas robadas

image image image image

Details

Interfaz del Cajero

image image

Details

Video Demostrativo

Video Demostrativo



🔮 Posibles Mejoras Futuras

El script DP-Banking es un sistema robusto, pero siempre hay espacio para mejoras y nuevas funcionalidades para enriquecer la experiencia de juego.

🚧 En desarrollo

IDEA EXPLICACIÓN
Sistema de inversión Implementar un sistema de bolsa o mercado de valores donde los jugadores puedan comprar y vender acciones de empresas del juego. El valor de las acciones podría fluctuar según las acciones de los jugadores.
Préstamos entre jugadores Habilitar que los jugadores puedan prestarse dinero entre sí a través del banco, con un contrato digital que asegure el cumplimiento de los pagos.
Integración con criptomonedas Añadir una opción para que los jugadores compren y vendan criptomonedas en el juego, como con la app de criptomonedas del qb-phone... con un mercado volátil que cambie los precios con el tiempo.
Impuestos y pagos automáticos Crear un sistema donde los jugadores tengan que pagar impuestos periódicamente o puedan configurar pagos automáticos para sus facturas de casa, coche, etc.

Autor: DP-Scripts
Versión: 1.0.0

About

DP-Banking es un sistema bancario avanzado diseñado para servidores de FiveM que utilizan el framework QBCore. Este script proporciona a los jugadores una manera completa de gestionar sus finanzas a través de una interfaz NUI, con múltiples opciones de acceso y un control exhaustivo sobre sus transacciones.

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors