Config = {} -- ═══════════════ ทั่วไป ═══════════════ Config.Enabled = true -- เปิดระบบนำทางตั้งแต่เริ่ม Config.ArriveDistance = 12.0 -- ระยะ (เมตร) ที่ถือว่า "ถึงปลายทาง" → เคลียร์ waypoint ให้อัตโนมัติ (false = ไม่เคลียร์) Config.ArriveMessage = false -- ข้อความแจ้งตอนถึงปลายทาง เช่น 'ถึงปลายทางแล้ว' (false = ไม่แจ้ง) -- ═══════════════ Beacon ปลายทาง (มาร์คเกอร์ DUI ปักพื้นแบบ sleepless_waypoints) ═══════════════ Config.Beacon = { enabled = true, color = { r = 255, g = 122, b = 184 }, -- ชมพูหลักของ marker ฝั่งเกม (วงพื้น/แท่งแสง) -- จุดยึดแนวดิ่งของ beacon: -- 'terrain' = ปักทะลุลงพื้นโลกจริง ไม่เกาะหลังคา/สิ่งก่อสร้าง | 'surface' = เกาะพื้นผิวบนสุด ณ จุดนั้น groundMode = 'terrain', dui = { enabled = true, label = 'Waypoint', primary = '#ff7ab8', -- ชมพูหลักของป้าย secondary = '#ff4f9e', -- ชมพูเข้ม (ตัวเลขระยะ) updateMs = 150, -- รอบส่งข้อมูลเข้า DUI (ส่งจริงเฉพาะตอนตัวเลขเปลี่ยน) texture = { w = 512, h = 1024 }, -- ขนาด texture ของ DUI (แนวตั้ง) -- มาร์คเกอร์ 3D ปักพื้น: สเกลตามระยะกล้องให้ขนาดบนจอคงที่ (สูตรเดียวกับ sleepless) marker = { baseWidth = 4.0, -- ความกว้าง (เมตร) ต่อ 1 หน่วยสเกล aspect = 2.0, -- สูง = กว้าง * ค่านี้ (ตรงสัดส่วน texture 512x1024) perDistance = 20.0, -- สเกล = ระยะกล้อง / ค่านี้ (มากขึ้น = ป้ายเล็กลง) minScale = 0.15, -- สเกลต่ำสุดตอนอยู่ใกล้มาก groundOffset = -1.5, -- จมปลายเส้นลงพื้นเล็กน้อยกันลอยค้าง -- ตัวจำกัดการมองเห็น — false = ปิด (ป้ายเห็นชัดตลอดทุกระยะ) minHeight = 35.0, -- ความสูงป้ายต่ำสุด (เมตร) — เข้าใกล้แล้วป้ายไม่หดเล็กกว่านี้ | false = หดตามระยะ maxHeight = false, -- เพดานความสูงป้าย (เมตร) เช่น 50.0 | false = โตตามระยะไม่จำกัด drawDistance = false, -- ระยะไกลสุดที่ยังวาดป้าย เช่น 1500.0 | false = วาดตลอด fade = false, -- ค่อยๆ จางช่วงไกล เช่น { start = 1200.0, finish = 1500.0 } | false = ไม่จาง }, }, -- แท่งแสงจากพื้นขึ้นฟ้า — ปิดไว้เพราะเส้นจุดในตัวมาร์คเกอร์ทำหน้าที่แทนแล้ว beam = { enabled = false, radius = 2.5, height = 380.0, alpha = 55 }, -- วงกลมบนพื้นตรงจุดปลายทาง (โชว์เมื่อเข้าใกล้และหาพื้นเจอแล้ว) ring = { enabled = false, radius = 3.0, alpha = 150 }, } -- ═══════════════ เส้นบอกทางบนถนน ═══════════════ -- ตอนนี้ใช้เอนจิน l2k_gps3d ทั้งตัว (https://github.com/Lafa2K/l2k_gps3d, GPL-3.0) -- ตั้งค่าทั้งหมดอยู่ในตาราง Config ต้นไฟล์ client/route_gps3d.lua เช่น: -- drawWhenOnFoot = วาดตอนเดินเท้าด้วยไหม (default: false = เฉพาะตอนขับรถ) -- texturedRoute.width = ความกว้างแถบเส้น / repeatDistance = ความถี่หัวลูกศร -- routePresets = ลาย texture (สลับในเกม /gpspreset) — สี default ตั้งเป็นชมพูไว้แล้ว -- คำสั่งในเกม: /gps3d เปิดปิด, /gpspreset สลับลาย, /gpscolordefault r g b a เปลี่ยนสี -- ═══════════════ Hooks ให้ต่อยอดกับระบบอื่นโดยไม่ต้องแก้ core ═══════════════ Config.Functions = { Client = {} } -- gate: return true ถึงจะวาดนำทาง (เช่นซ่อนตอนอยู่ในดันเจี้ยน/มินิเกม) Config.Functions.Client.CanShow = function() return true end -- หลังผู้เล่นมาร์ค waypoint ใหม่ Config.Functions.Client.OnWaypointSet = function(coords) end -- หลังผู้เล่นเอา waypoint ออกเอง (ไม่นับตอนถึงปลายทาง) Config.Functions.Client.OnWaypointCleared = function() end -- หลังถึงปลายทาง Config.Functions.Client.OnArrived = function(coords) end -- แจ้งเตือน — เปลี่ยนเป็นระบบ notify ของเซิร์ฟตัวเองได้ที่นี่ Config.Functions.Client.Notify = function(msg) end