[免费] WG Banking — 实体 ATM 屏幕显示,真实借记卡,完善的 SQL | QBox · QBCore · ESX

WG Banking

一套完整的银行系统,支持 QBox、QBCore 和 ESX。免费,escrow 保护。

ATM 界面直接绘制在取款机本身上——而不是前面的全屏覆盖层。密码键盘和金额键盘都在机器自带的屏幕上。你走上前去,看到的就是这台机器。

它的与众不同之处

ATM 就是 ATM。用 DUI 替换模型的屏幕贴图,脚本相机框定机器,你的角色在操作时其他玩家可以围观。由于 DUI 无法获取键盘焦点,客户端读取按键并推送状态——因此键盘就在机器上,用方向键操控或用数字键输入。开箱即支持四种模型,每种模型的相机均可在游戏内调节。

银行卡是实体物品。作为 ox_inventory 物品带有元数据,PIN 码经过哈希加盐处理,四个等级各有实际意义——每个等级都有每日取款限额和价格,且均被强制执行。每个账户仅有一张有效卡:发新卡即作废旧卡,所以被偷到别人口袋里的卡就是一块废塑料。卡片会过期,并在过期前提醒你。

个人余额来自框架本身。大多数银行脚本维护自己的余额副本,与 PlayerData.money.bank 产生偏差,导致 HUD、商店和银行界面显示不一致。本资源直接代理框架的金额字段,仅自行管理 历史记录。储蓄、共享、企业、职业和帮派账户在框架中没有对应项,因此由本资源管理。

交易记录是数据行,不是 JSON 大块。大多数免费银行脚本将每笔交易以 JSON 存储在 longtext 列中——无法分页、无法筛选、无法索引,且无限增长。本资源使用规范化的索引表和游标分页:你的第一万笔交易和第一笔一样快。

同包含在内

  • 共享账户——支持命名角色、共同所有人和每位成员的每日取款上限
  • 玩家拥有的企业账户——无需职业或等级,企业归属于个人
  • 贷款——申请、基于实际收入的审核、分期还款、提前结清、违约、催收、核销、收回抵押物
  • 金融协议——经销商起草文件,买方签署,担保利率以签名为准而非事后猜测
  • 对账单——按周/月/年封闭周期翻阅查看,而非滚动的”最近30天”
  • 转账请求——向其他玩家发起请求;对方同意前不会发生任何资金变动
  • 职业账单计入 society 账户,运行时自动适配 qb-management / esx_society
  • 管理员经济面板——按账户类型统计货币供应量、24小时资金流水、未偿信贷、标记活动,以及任何新开账户的七天流水、其卡片、贷款和最近四十笔交易
  • 深色和浅色主题,三种面板风格,按玩家独立设置
  • Renewed-Banking 迁移——账户、余额、成员和历史记录自动导入,JSON 数据块解包为真实数据行

为他人运维而设计

数据库架构自动安装并迁移自身列;无需导入 SQL。配置文件、世界坐标、语言文件和两个可编辑的 hook 文件在 escrow 后保持开放。每个 hook 都附带可用的默认实现和回退方案,因此错误的编辑只会降级而不会导致银行系统崩溃。

所有操作均为服务端权威:客户端仅作为消息管道,不进行任何计算。每条资金路径都有条件写入和原子行锁定,所有金额在查询前验证 NaN 和无穷大,设有每玩家操作预算,以及速率限制——拒绝操作但不会指控任何人作弊。

依赖

  • ox_lib
  • oxmysql
  • qbx_core / qb-core / es_extended 之一(自动检测)
  • 可选:ox_target 或 qb-target、ox_inventory(强烈推荐——它让银行卡成为实体物品)

链接

代码可访问 否(Cfx escrow;配置、语言文件和可编辑 hook 保持开放)
基于订阅 否
代码行数 ~25,000(≈13,400 Lua,≈11,500 UI)
依赖项 ox_lib、oxmysql、一个受支持的框架
支持 是
查看英文原文 (Original)

WG Banking

A complete banking system for QBox, QBCore and ESX. Free, escrow protected.

The ATM interface is drawn on the cash machine itself — not a fullscreen overlay in front of it. The PIN pad and the amount pad are on the machine’s own screen. You walk up to it, and the machine is what you’re looking at.

What makes it different

The ATM is an ATM. A DUI replaces the prop’s screen texture, a scripted camera frames the machine, and your ped works it while other players watch. Because a DUI can’t take keyboard focus, the client reads the keys and pushes state in — so the keypad is on the machine, steered with the arrows or typed on the number row. Four props supported out of the box, camera tunable in-game per model.

Cards are real objects. ox_inventory items with metadata, a hashed and salted PIN, and four tiers that actually mean something — each has a daily withdrawal limit and a price, both enforced. One live card per account: issuing a new one cancels the old, so a stolen card in someone else’s pocket is dead plastic. Cards expire and warn you before they do.

The personal balance is the framework’s. Most banking scripts keep their own copy and drift from PlayerData.money.bank, so the HUD, the shops and the bank UI all disagree. This one proxies onto the framework’s money column and owns the history instead. Savings, shared, business, job and gang accounts have no framework equivalent, so those are ours.

Transactions are rows, not a blob. Most free banking scripts store every transaction as JSON in a longtext column — it can’t paginate, can’t filter, can’t index, and grows forever. This uses a normalized indexed table with cursor pagination: your ten-thousandth transaction costs the same as your first.

Also in the box

  • Shared accounts with named roles, co-owners and per-member daily withdrawal caps
  • Player-owned business accounts — no job or grade needed, a business belongs to a person
  • Loans — application, underwriting on real income, amortised repayment, early settlement, default, recovery, write-off, repossession
  • Finance agreements — a dealer draws up paperwork, the buyer signs it, and the secured rate is gated on the signature rather than guessed at afterwards
  • Statements — closed weekly / monthly / yearly periods you page back through, not a rolling “last 30 days”
  • Money requests — ask another player; nothing moves until they agree
  • Job billing into the society account, with qb-management / esx_society compatibility answered at runtime
  • Admin economy dashboard — money supply by account type, 24h flow, outstanding credit, flagged activity, and any account opened up with seven days of flow, its cards, its loans and its last forty transactions
  • Dark and light themes, three panel surfaces, per player
  • Renewed-Banking migration — accounts, balances, members and history imported automatically, JSON blobs unpacked into real rows

Built to be run by someone else

The schema installs itself and migrates its own columns; there’s no SQL to import. Config, world locations, locales and both editable hook files stay open after escrow. Every hook ships with a working default and a fallback, so a broken edit degrades rather than kills banking.

Server-authoritative on every action: the client is a message pipe and computes nothing. Conditional writes and atomic row claims on every money path, amounts validated for NaN and infinity before any query, a per-player action budget, and rate limiting that refuses without accusing anyone of cheating.

Requirements

  • ox_lib
  • oxmysql
  • One of qbx_core / qb-core / es_extended (auto-detected)
  • Optional: ox_target or qb-target, ox_inventory (strongly recommended — it’s what makes cards physical)

Links

Code is accessible No (Cfx escrow; config, locales and editable hooks stay open)
Subscription-based No
Lines of code ~25,000 (≈13,400 Lua, ≈11,500 UI)
Requirements ox_lib, oxmysql, a supported framework
Support Yes

本文资源搬运自 CFX.re FiveM 官方论坛,原作者:GOD69。原帖地址:https://forum.cfx.re/t/free-wg-banking-atm-screen-on-the-machine-real-debit-cards-proper-sql-qbox-qbcore-esx/5428230

原帖标签:script, esx, qbcore, free, qbox, ox

THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容