เอกสาร

X3D Banking (ธนาคาร)

ธนาคารและตู้ ATM ฟรีสำหรับ ESX: ฝาก ถอน โอนด้วย ID ผู้เล่น ประวัติรายการ ใช้ได้ทุกตู้บนแผนที่ เซิร์ฟเวอร์เช็คทุกรายการ

ซื้อ / รับฟรีตั้งค่า config

การติดตั้ง

  1. วางโฟลเดอร์ x3d_banking ไว้ใน resources/ ห้ามเปลี่ยนชื่อโฟลเดอร์
  2. รัน install.sql เพื่อสร้างตาราง x3d_banking_history (รันซ้ำได้)
  3. เพิ่มใน server.cfg:
ensure oxmysql
ensure es_extended    # ไม่บังคับ ถ้าไม่มีจะรันแบบ standalone (ดู Config.Framework)
ensure x3d_banking

ใช้สคริปต์ธนาคารได้ทีละตัว: ปิด esx_atm, esx_banking หรือสคริปต์ ATM ตัวอื่น ไม่งั้นตู้เดียวจะขึ้นปุ่มสองอัน

ต้องมี

resource จำเป็นไหม ใช้ทำอะไร
es_extended ไม่บังคับ ESX Legacy บัญชี money และ bank ถ้าไม่มีจะรันแบบ standalone แต่ต้องต่อบัญชีธนาคารเอง (ดู Config.Framework)
oxmysql จำเป็น เก็บประวัติรายการ

ตั้งค่าทั้งหมด: config/config.lua

ทั่วไป

ค่า ค่าเริ่มต้น ความหมาย
Config.Framework 'auto' 'auto' (มี ESX ใช้ ESX ไม่มีเป็น standalone) | 'esx' | 'standalone' standalone ไม่มีบัญชีธนาคารในตัว ต้องต่อ Framework.GetMoney/AddMoney/RemoveMoney('bank', ...) เองที่ addons/framework/server.lua ไม่งั้นฝาก ถอน โอน ใช้ไม่ได้จริง
Config.Locale 'th' 'th' หรือ 'en'
Config.Debug false true = เปิดคำสั่ง /atm และ /bank สำหรับทดสอบ
Config.DrawDistance 15.0 ระยะที่เห็นมาร์กเกอร์
Config.InteractRadius 1.5 ระยะกด [E]
Config.ServerRadius 5.0 ห่างตู้หรือธนาคารได้ไม่เกินเท่านี้ เซิร์ฟเวอร์ถึงยอมให้ทำรายการ
Config.Blur true เบลอฉากหลังตอนเปิดหน้าต่าง
Config.UseMarkers / MarkerType / MarkerSize / MarkerColor เปิด, 27 มาร์กเกอร์บนพื้น

Blip

ค่า ค่าเริ่มต้น ความหมาย
Config.ShowBlips true blip ธนาคารและตู้ ATM
Config.BlipRadius 100.0 blip ตู้ ATM ขึ้นเมื่ออยู่ใกล้เท่านี้ ส่วนธนาคารขึ้นตลอด
Config.ATMBlip / Config.BankBlip sprite 108 sprite, color, scale, name = { th, en }

วงเงิน

ค่า ค่าเริ่มต้น ความหมาย
Config.MinTransaction 1 จำนวนต่ำสุด
Config.MaxWithdraw / MaxDeposit 100000000 ถอน / ฝากสูงสุดต่อครั้ง
Config.MaxTransfer 10000000 โอนสูงสุดต่อครั้ง
Config.QuickWithdrawAmounts 500 … 500,000 ปุ่มถอนด่วน
Config.HistoryLimit 20 จำนวนรายการในประวัติ

โอนเงิน

ค่า ค่าเริ่มต้น ความหมาย
Config.TransferByPhone false โอนด้วยเบอร์โทร ปิดไว้เป็นค่าเริ่มต้น เพราะ addons/phone/server.lua เป็น hook เปล่า ต้องต่อกับโทรศัพท์ของคุณเอง
Config.TransferByServerId true โอนด้วย ID ผู้เล่นในเซิร์ฟ เปิดคู่กับ TransferByPhone ได้ (ช่องเดียวพิมพ์ได้ทั้งสองแบบ เช็คเบอร์ก่อน) ปิดทั้งคู่ = ไม่มีแท็บโอน
Config.TransferShowName true false = ซ่อนชื่อทุกจุดในการโอน (บรรทัดค้นหา หน้ายืนยัน ประวัติ และแจ้งเตือนของผู้รับ) ผู้เล่นเห็นแค่ ID หรือเบอร์ที่พิมพ์เอง ฐานข้อมูลยังเก็บชื่อจริงไว้ให้แอดมิน
Config.TransferAtATM true false = โอนได้เฉพาะที่ธนาคาร

เช็คเบอร์โทรก่อน แล้วค่อยเช็ค ID ผู้รับต้องออนไลน์ และหน้ายืนยันจะแสดงชื่อผู้รับให้ดูก่อนกด (ยกเว้นตั้ง Config.TransferShowName = false)

ตำแหน่งและแอดมิน

ค่า ความหมาย
Config.AtmModels โมเดลตู้ ATM ทุกตู้บนแผนที่ที่เป็นโมเดลนี้กดใช้ได้
Config.ATMs พิกัดตู้ ATM ใช้วาด blip และให้เซิร์ฟเวอร์เช็คระยะ
Config.Banks สาขาธนาคาร: coords, name = { th, en }
Config.AdminGroups กลุ่มที่ใช้ /atmscan ได้
Config.AtmScanCommand atmscan: ยืนใกล้ตู้แล้วพิมพ์ เพื่อเพิ่มตู้ที่ไม่มีใน Config.ATMs (เก็บใน KVP ของ resource)

ตู้ที่ไม่มีใน Config.ATMs ยังเปิดหน้าต่างได้ แต่เซิร์ฟเวอร์จะไม่ยอมให้ทำรายการจนกว่าแอดมินจะเพิ่มด้วย /atmscan รายการเริ่มต้นครอบคลุมตู้หลักแล้ว


ปรับให้เข้ากับเซิร์ฟ: addons/

ไฟล์ ฟังก์ชัน ค่าเริ่มต้น
addons/framework/server.lua / client.lua ตัวเชื่อมเฟรมเวิร์ก (Framework.*) เหมือนกันทุกสินค้า X3D ESX ถ้ามี ไม่มีเป็น standalone
addons/phone/server.lua Phone.FindIdentifier(number), Phone.GetNumber(identifier), Phone.NotifyTransfer(target, data) hook เปล่า (คืน nil / ไม่ทำอะไร) ต่อกับโทรศัพท์ของคุณเอง
addons/notify/client.lua Notify(message, kind) esx_notify, ox_lib, ฟีดของเกม ตามลำดับ
addons/prompt/client.lua Prompt.Draw3D, Prompt.SetBlipName, Prompt.IsInteractPressed ป้าย 3D, [E]
addons/locale/shared.lua T(th, en) ตาม Config.Locale
addons/text3d/client.lua Text3D.* ป้ายลอย 3 มิติ ป้าย 3D มาตรฐาน X3D (ใช้ระบบป้ายของตัวเองได้ด้วยการเขียนทับฟังก์ชัน)

สำหรับสคริปต์อื่น

-- client
exports['x3d_banking']:OpenBank('atm')                  -- หรือ ('bank', 'ชื่อสาขา') เช่นเรียกจาก ox_target
exports['x3d_banking']:CloseBank()
exports['x3d_banking']:IsOpen()                          --> boolean
AddEventHandler('x3d_banking:uiState', function(open) end) -- ซ่อน HUD ตอนหน้าต่างเปิด

เซิร์ฟเวอร์ยังเช็คระยะถึงตู้หรือธนาคารทุกครั้ง เรียก OpenBank จากที่อื่นก็ทำรายการไม่ได้

ปัญหาที่พบบ่อย

อาการ สาเหตุ / วิธีแก้
ยืนที่ตู้แล้วขึ้น "ต้องอยู่ที่ตู้ ATM หรือธนาคาร" ตู้นั้นไม่มีใน Config.ATMs ให้แอดมินไปยืนข้างตู้แล้วพิมพ์ /atmscan
ประวัติว่างตลอด ยังไม่ได้รัน install.sql (คอนโซลเซิร์ฟเวอร์จะแจ้งตอนเปิด)
เปิด Config.TransferByPhone แล้วโอนไม่ได้ addons/phone/server.lua เป็น hook เปล่าโดยตั้งใจ ต้องต่อฟังก์ชันทั้ง 3 ตัวกับโทรศัพท์ของคุณก่อน
standalone: ฝาก ถอน โอน ใช้ไม่ได้จริง standalone ไม่มีบัญชีธนาคารในตัว ต้องต่อ Framework.GetMoney/AddMoney/RemoveMoney('bank', ...) ที่ addons/framework/server.lua เอง
ภาษาไทยเป็นกล่อง ต้องมี resource ที่สตรีมฟอนต์ font4thai เปลี่ยนเป็นภาษาอังกฤษ หรือเพิ่มฟอนต์
ดูหน้าสินค้า