ตั้งค่า config X3D Daily Login (เช็คอินรายวัน)
แก้ค่าในฟอร์ม แล้วคัดลอกทีละหัวข้อหรือทั้งไฟล์ไปวางในเซิร์ฟเวอร์
ดาวน์โหลดพร้อมค่าเดิมทั่วไป
ดูคู่มือ ↗Config.Frameworkเฟรมเวิร์กที่ใช้: 'auto' (ESX ถ้ามี ไม่มีก็ standalone) | 'esx' | 'standalone'
Config.Localeภาษาของหน้าต่างและข้อความ: 'th' | 'en'
Config.Commandคำสั่งเปิดหน้าต่าง (/dailylogin)
Config.Keyปุ่มเปิดหน้าต่าง ('' = ไม่ผูกปุ่ม)
Config.AdminAceสิทธิ์ ACE ของแอดมิน (ใช้กับ /dailyreset)
Config.TimezoneOffsetเส้นแบ่งวัน — วินาทีที่บวกเพิ่มจากเวลา UTC (ไทย GMT+7 = 7 * 3600)
Config.ResetOnMissขาดวันแล้วสตรีคกลับไปเริ่มที่ 1 ใหม่ไหม (false = นับต่อจากเดิมเรื่อย ๆ)
Config.AutoClaimรับรางวัลให้อัตโนมัติตอนเข้าเกม (true = ไม่ต้องเปิดหน้าต่าง แค่เด้งแจ้งเตือน)
Config.AutoOpenเปิดหน้าต่างให้อัตโนมัติตอนมีรางวัลให้กด (แยกจาก AutoClaim — เปิดโชว์ปฏิทินเฉย ๆ ไม่ได้กดรับให้)
ไม่เปิดถ้าผู้เล่นตายอยู่/ค้าง pause menu (เช็คฝั่ง client ด้วย Framework.IsBusy)
'always' = เปิดปฏิทินทุกครั้งที่เข้าเกม (ครั้งแรกของการเชื่อมต่อ) แม้ไม่มีอะไรให้รับ
Config.AutoDelayรอกี่มิลลิวินาทีหลังเกิดในเมืองก่อนรับ/เปิดอัตโนมัติ (ให้ HUD/กระเป๋าโหลดเสร็จก่อน)
Config.AutoNotifyแจ้งเตือนรางวัลที่รับอัตโนมัติทีละรายการ (ชื่อรางวัล + กิจกรรม วันที่ N)
Config.Mailboxส่งไอเทม/เงินเข้ากล่องจดหมายแทนกระเป๋า — กระเป๋าเต็มก็ไม่มีวันเสียของ
resource = ชื่อสคริปต์กล่องจดหมาย ('' = เข้ากระเป๋าตรง) · ส่งยังไงดูที่ Reward.ToMailbox ใน addons/reward/server.lua
box = กล่องปลายทาง ('safe' = ตู้นิรภัยไม่หมดอายุของ x3d_mailbox) · sender = ชื่อผู้ส่งบนจดหมาย
เช่น / e.g. { resource = 'x3d_mailbox', box = 'safe', sender = 'รางวัลเช็คชื่อ' }
resourceboxsenderConfig.BackClaimรับย้อนหลัง — ขาดไปหลายวันแล้วยังตามเก็บรางวัลวันที่พลาดได้
enabled = false (ค่าเริ่มต้น) คือกดครั้งเดียวจบที่รางวัลของวันนี้ ของวันที่ขาดหายไปเลย
enabled = true คือกดได้ทีละวัน ไล่เก็บจากวันที่เก่าสุดที่ยังตามได้ มาจนถึงวันนี้
สตรีคเดินต่อเนื่องเพราะตัดวันทีละวัน ไม่กระโดด
maxDays = ตามเก็บย้อนหลังได้ไกลสุดกี่วัน (3 = ขาดไป 5 วันก็ตามเก็บได้แค่ 3 วันหลังสุด)
enabledmaxDaysConfig.HoldWhenFullกระเป๋าเต็มตอนกดรับ: เก็บรางวัลไว้เป็น "รางวัลค้างรับ" ของผู้เล่นคนนั้น
แล้วให้มากดรับทีหลังตอนมีที่ว่าง (สตรีคเดินต่อตามปกติ ไม่เสียวัน)
false = ไม่ตัดวันให้เลย ผู้เล่นต้องเคลียร์กระเป๋าแล้วมากดใหม่
Config.MaxPendingเก็บรางวัลค้างรับได้สูงสุดกี่ชุดต่อคน (เกินกว่านี้ต้องเคลียร์ของเก่าก่อน)
ตารางรางวัล — วันที่ 1..N ของสตรีค
ดูคู่มือ ↗Config.Rewardsตารางรางวัล — วันที่ 1..N ของสตรีค
เช่น
| # | ชื่อ | = { { account = 'bank', amount = 500 } }money | = ชื่อรางวัลที่โชว์บนปฏิทิน (ไม่ใส่ก็ได้)label | ตัวเลือก |
|---|---|---|---|---|
| 1 | [1] | |||
| 2 | [2] | |||
| 3 | [3] | |||
| 4 | [4] | |||
| 5 | [5] | |||
| 6 | [6] | |||
| 7 | [7] |
วันที่ 8 วนกลับไปรับรางวัลวันที่ 1 ใหม่ (false = วันที่เกินตารางไม่มีรางวัล) และอีก 1
ดูคู่มือ ↗Config.LoopRewardsวันที่ 8 วนกลับไปรับรางวัลวันที่ 1 ใหม่ (false = วันที่เกินตารางไม่มีรางวัล)
Config.Tracksแทร็กรางวัลหลายชุดพร้อมกัน (เช่น ปฏิทินปกติ + กิจกรรมเปิดตัวจำกัดเวลา) — แต่ละแทร็กมีสตรีค/ปฏิทินของตัวเอง
ปล่อยเป็น nil (ค่าเริ่มต้น) = ใช้ Config.Rewards ด้านบนเป็นแทร็กเดียวชื่อ 'default' เหมือนเดิมทุกอย่าง ไม่กระทบ config เดิม
ตั้งเองแล้วอยากได้แทร็กเดิมด้วย ต้องใส่ id = 'default' รับ rewards = Config.Rewards เองในลิสต์
enabled = false = ปิดแทร็กนี้ไปเลย ไม่โชว์ไม่ให้กด
from/to = os.time() ของช่วงเวลาที่แทร็กนี้เปิดอยู่ (unix, nil = ไม่จำกัด) — นอกช่วงนี้ = มองไม่เห็น กดไม่ได้
rewards = ตารางรางวัลของแทร็กนี้ (รูปแบบเดียวกับ Config.Rewards)
{ id = 'default', label = 'เช็คอินรายวัน', enabled = true, rewards = Config.Rewards },
{ id = 'grand_open', label = 'เปิดเซิร์ฟใหม่', enabled = true, from = 1758000000, to = 1759000000, rewards = {
โบนัสเวลาเล่น — เล่นครบ N ชม. ในวันนี้ (นับตั้งแต่เข้าเกม ไม่รวมเวลาที่ออกจากเซิร์ฟ) ปลดล็อกรางวัลให้กด
ดูคู่มือ ↗Config.PlaytimeBonusHoursโบนัสเวลาเล่น — เล่นครบ N ชม. ในวันนี้ (นับตั้งแต่เข้าเกม ไม่รวมเวลาที่ออกจากเซิร์ฟ) ปลดล็อกรางวัลให้กด
key = จำนวนชั่วโมง — ต้องกดรับเอง (ไม่ auto), รับได้ระดับละ 1 ครั้งต่อวัน, รีเซ็ตพร้อมเส้นแบ่งวันเดียวกับเช็คอิน
เช่น / e.g. [10] = { money = { { account = 'bank', amount = 2000 } }, label = 'เล่นครบ 10 ชม.' }
| # | ชื่อ | money | label | ตัวเลือก |
|---|---|---|---|---|
| 1 | [2] | |||
| 2 | [5] |
เช็ก/นับเวลาเล่นทุกกี่วินาที และอีก 1
ดูคู่มือ ↗Config.PlaytimeTickSecondsเช็ก/นับเวลาเล่นทุกกี่วินาที
Config.PlaytimeModeโบนัสเวลาเล่นให้อะไร
'reward' = ครบชั่วโมงแล้วปลดล็อกของรางวัลในตาราง Config.PlaytimeBonusHours ให้กดรับเอง
'extra_day' = ครบชั่วโมงแล้วรับวันถัดไปของทุกกิจกรรมให้ทันที (ไม่ต้องรอพรุ่งนี้) ไม่ใช้ของในตาราง
ชื่อไอเทมที่จะโชว์ (ไม่ใส่ก็ได้ — ไม่ใส่จะโชว์ชื่อ key ตรง ๆ)
ดูคู่มือ ↗Config.ItemLabelsชื่อไอเทมที่จะโชว์ (ไม่ใส่ก็ได้ — ไม่ใส่จะโชว์ชื่อ key ตรง ๆ)
เช่น / e.g. bread = 'ขนมปัง'
ชื่อบัญชีเงินที่จะโชว์
ดูคู่มือ ↗Config.AccountLabelsชื่อบัญชีเงินที่จะโชว์
moneybankblack_moneyชื่อเหรียญ/สกุลเงินพิเศษที่จะโชว์ (key = kind ใน token) ไม่ใส่ = โชว์ kind ตรง ๆ
ดูคู่มือ ↗Config.TokenLabels🔒 เก็บในเครื่องนี้เท่านั้นชื่อเหรียญ/สกุลเงินพิเศษที่จะโชว์ (key = kind ใน token) ไม่ใส่ = โชว์ kind ตรง ๆ
เช่น / e.g. event = 'เหรียญกิจกรรม'
ชื่ออาวุธที่จะโชว์ (ไม่ใส่ก็ได้ — ไม่ใส่จะโชว์ชื่อ key ตรง ๆ)
ดูคู่มือ ↗Config.WeaponLabelsชื่ออาวุธที่จะโชว์ (ไม่ใส่ก็ได้ — ไม่ใส่จะโชว์ชื่อ key ตรง ๆ)
เช่น / e.g. WEAPON_PISTOL = 'ปืนพก'
รูปไอเทมบนปฏิทิน — path รูปของ inventory ที่เซิร์ฟใช้ ({item} = ชื่อไอเทม) และอีก 2
ดูคู่มือ ↗Config.ItemImageรูปไอเทมบนปฏิทิน — path รูปของ inventory ที่เซิร์ฟใช้ ({item} = ชื่อไอเทม)
ปล่อยเป็น '' = ไม่โชว์รูป โชว์แค่ชื่อไอเทม
Config.CanCarryExportเช็กว่ากระเป๋ารับของไหวก่อนจ่ายรางวัล — ใส่เฉพาะตอนเซิร์ฟใช้ inventory ของตัวเอง
(x3d_inventory/ox_inventory ฯลฯ) เพราะเลขน้ำหนักของ ESX เองจะเพี้ยนเมื่อ inventory
ตัวอื่นเป็นคนคุม ทำให้รางวัลถูกปฏิเสธว่า "กระเป๋าเต็ม" ทั้งที่ยังว่าง
ปล่อยว่าง = เช็กผ่าน ESX canCarryItem ถ้ามี ไม่มีก็ปล่อยผ่าน
resourcemethodConfig.Storageไฟล์ JSON ที่เก็บข้อมูล และความถี่การเซฟ (วินาที)
FileFlushSeconds