Payment In Game
ตั้งค่าหลักของร้านค้า
ตั้งค่าหลักของร้านค้า สินค้า และตำแหน่ง Zone (config_main.lua)
ไฟล์ config_main.lua เป็นไฟล์ตั้งค่าหลักที่กำหนดพฤติกรรมพื้นฐานของร้านค้า ตำแหน่งจุดเปิดร้าน และรายการสินค้าทั้งหมด
การตั้งค่าทั่วไป
ตั้งค่าหลัก (Settings)
ImagePath = "nui://nc_inventory/html/img/items"
License = "your-secret-license-key"
InventorySystem = "weight" -- weight | limit
OpenUIKey = 57 -- 57 = F10, 999 = ปิด hotkey
InteractionKey = 38 -- 38 = E
ViewDistance = 15 -- ระยะมองเห็น marker (เมตร)
InteractionText = "Press [E] Open Devil Market"| ค่า | คำอธิบาย | ค่าแนะนำ |
|---|---|---|
ImagePath | ที่อยู่รูปภาพไอเทม | nui://nc_inventory/html/img/items |
License | รหัส License สำหรับเชื่อมต่อกับ addon | ตั้งเป็นค่า secret ยาว ๆ |
InventorySystem | ระบบ inventory ที่ใช้ | weight หรือ limit |
OpenUIKey | ปุ่มเปิดร้านค้า | 57 (F10), 999 = ปิด hotkey |
InteractionKey | ปุ่มกดเปิดร้าน | 38 (E) |
ViewDistance | ระยะมองเห็น marker (เมตร) | 15 |
InteractionText | ข้อความแจ้งเตือนตอนเดินเข้าใกล้ | Press [E] Open Devil Market |
ตั้งค่า Zone เริ่มต้น (ZoneDefaults)
ค่าที่ใช้เมื่อ Zone ไม่ได้ระบุ override:
ZoneDefaults = {
interactionDistance = 2.0, -- ระยะที่ผู้เล่นต้องเข้าใกล้ (เมตร)
marker = { ... }, -- รูปแบบ marker ที่แสดงบนแผนที่
blip = { ... }, -- ไอคอนบนแผนที่
}interactionDistance- ระยะที่ผู้เล่นต้องเข้าใกล้เพื่อกดปุ่ม (เมตร)marker- รูปแบบ marker ที่แสดงบนแผนที่blip- ไอคอนบนแผนที่
การตั้งค่าตำแหน่งร้านค้า (Zones)
คุณสามารถเพิ่มจุดเปิดร้านได้หลายจุด มี 2 รูปแบบ:
แบบ Object Form (ปรับแต่งได้)
{
coords = vector3(398.18, -822.82, 29.29),
label = "Devil Market - Legion Square",
marker = {
size = vector3(1.4, 1.4, 0.6),
color = { r = 217, g = 160, b = 76, a = 140 },
rotate = true,
},
}แบบ Vector3 ตรง ๆ (ใช้ค่า default)
vector3(-1192.0, -890.0, 13.0)การตั้งค่าสินค้า (Products)
สินค้าแบ่งเป็นหมวดหมู่ แต่ละหมวดมีรายการสินค้าภายใน
โครงสร้างสินค้าพื้นฐาน
| ค่า | คำอธิบาย |
|---|---|
category | ชื่อหมวดหมู่ |
label | ชื่อสินค้าที่แสดง |
price | ราคาขาย (Point) |
pointPrice | ราคาเมื่อใช้ Point (อาจต่างจาก price) |
description | คำอธิบายสินค้า |
earnPoints | Point ที่ได้รับเมื่อซื้อ (สำหรับระบบการันตี) |
type | ประเภทสินค้า: item, weapon, car |
spawnName | ชื่อไอเทม/อาวุธ/รถ ในเกม |
limitId | ผูกกับระบบจำกัดสต็อก |
ประเภทสินค้า
ไอเทมทั่วไป (item)
{
label = "Bread",
price = 15,
pointPrice = 15,
description = "ขนมปัง",
earnPoints = 1,
type = "item",
spawnName = "bread",
limitId = { enabled = false, id = "bread_basic" },
}อาวุธ (weapon) - เพิ่ม ammo ได้
{
label = "Pistol Ammo Stock",
price = 1500,
pointPrice = 1000,
description = "ปืนพก + 50 นัด",
earnPoints = 10,
type = "weapon",
spawnName = "WEAPON_PISTOL",
ammo = 50,
limitId = { enabled = true, id = "pistol_stock" },
}ยานพาหนะ (car)
{
label = "Jester",
price = 9500,
pointPrice = 6500,
description = "รถสปอร์ต",
earnPoints = 100,
type = "car",
spawnName = "jester",
limitId = { enabled = true, id = "jester_car" },
}ระบบการันตี (Guarantee)
ระบบสะสมยอดซื้อเพื่อรับรางวัล กำหนดได้ในตัวสินค้า:
guarantee = {
enabled = true,
resetOnClaim = false, -- false = สะสมต่อหลังรับครบ | true = รีเซ็ต
tiers = {
{ amount = 100, description = "ครบ 100 บาท", reward = { name = "water", count = 1, label = "Water x1" } },
{ amount = 500, description = "ครบ 500 บาท", reward = { name = "water", count = 5, label = "Water x5" } },
{ amount = 2000, description = "ครบ 2,000 บาท", reward = { name = "water", count = 12, label = "Water x12" } },
},
}ค่าที่ปรับได้:
enabled- เปิด/ปิดระบบการันตีresetOnClaim- รีเซ็ตยอดสะสมหลังรับรางวัลครบทุก tier หรือไม่tiers- รายการขั้นบันได แต่ละ tier มี:amount- ยอดสะสมที่ต้องถึง (บาท)description- คำอธิบายขั้นreward.name- ชื่อไอเทมที่ได้รับreward.count- จำนวนreward.label- ป้ายกำกับ
ตัวอย่างการเพิ่มสินค้าใหม่
คัดลอกบล็อกสินค้าเดิม แล้วแก้ค่าต่าง ๆ ตามต้องการ:
{
label = "ชื่อสินค้า",
price = 100,
pointPrice = 100,
description = "คำอธิบาย",
earnPoints = 5,
type = "item",
spawnName = "item_name",
limitId = {
enabled = true,
id = "my_item_id", -- ต้องตรงกับ key ใน config_limit.lua
},
}ข้อควรระวัง
- ถ้าเปิด
limitId.enabled = trueต้องมี key เดียวกันในconfig_limit.luaมิฉะนั้นระบบจะสร้างค่า default100/100ให้อัตโนมัติ - ชื่อ
spawnNameต้องตรงกับชื่อในระบบ inventory/garage ของเซิร์ฟเวอร์ pointPriceคือราคาเมื่อจ่ายด้วย Point ส่วนpriceคือราคาเต็ม (กรณีจ่ายด้วยเงินสดในเกม)