Case / Jail Policy#

กติกาของคดีและคุกอยู่ที่ config/customer/03_cases_jail.lua ส่วนรายการข้อมูลถูกแยกออกเพื่อหาและแก้ง่าย

Limits / Case policy#

Config.Cases เป็นกติกาการใช้งานแฟ้มคดี ส่วน Config.General.Limits เป็นขีดจำกัดที่ลูกค้าปรับได้

  • Config.General.Limits — ตั้งเพดาน Custom Fine, Custom Jail, ความยาวข้อความ และเวลาจัดการ Draft ค้าง
  • Cases.RequireOnDuty — บังคับเข้าเวรก่อนแก้/ส่งคดีหรือจัดการผู้ช่วย
  • AllowCustomCharges — อนุญาตข้อหาที่กรอกเอง
  • AllowChargeMultipliers — เปิดการใช้ข้อหาตัวคูณ
  • AllowCaseAssistants / AssistantMaxDistance — เปิดผู้ช่วยคดีและกำหนดระยะ
  • AllowAssistantEditsAfterSubmit — อนุญาตแก้รายชื่อผู้ช่วยหลังส่งแฟ้ม
  • AutoEvidenceCharges.Enabled — เปิดสร้างข้อหาอัตโนมัติจากของกลางที่ผูกไว้

Charges — config/data/charges.lua#

lua
{
    category = 'normal',
    name = 'จกปูน',
    fine = 5000,
    jail = 10,
    maxFine = 100000,
    maxJail = 60
}
  • maxCount จำกัดจำนวน x ต่อคดี
  • maxFine จำกัดค่าปรับรวมของข้อหานั้น
  • maxJail จำกัดเวลาเจลรวมของข้อหานั้น
  • -1 หมายถึงไม่กำหนดเพดานจากค่านี้
  • jailLocation ตั้งคุกเริ่มต้นของข้อหา และ allowOtherJail เลือกว่าจะให้เจ้าหน้าที่เปลี่ยนคุกได้หรือไม่

หมวดข้อหา#

Config.ChargeCategories ตั้ง code, ชื่อ, สี, isRed, noJailCard และลำดับแสดงผล โดย category ของแต่ละข้อหาต้องอ้าง code ที่มีอยู่

ข้อหาหลบหนีออกจากคุก#

Config.Charges.EscapeCase ตั้งหมวด ชื่อที่รองรับ {caseId}, ค่าปรับ, ตัวคูณเวลา และเลือก timeSource='remaining' หรือ 'original' เพื่อกำหนดฐานเวลาที่ใช้กับคดีหลบหนี

ตัวคูณคดี#

lua
fineMultiplier = 10 -- คูณค่าปรับข้อหาอื่น x10
jailMultiplier = 2  -- คูณเวลาเจลข้อหาอื่น x2

Auto Charge จากของกลาง#

lua
{
    category = 'normal', name = 'จกปูน', fine = 5000, jail = 10,
    evidenceItems = {
        { item = 'cement', count = 1 },
        { item = 'cement_box', count = 10 },
        { item = 'cement_pack', count = '1-10' }
    }
}

หลังบันทึกคดี ระบบใช้หลักฐานเท่าที่ข้อหาต้องใช้และเก็บเศษไว้สำหรับครั้งต่อไป

Jail Locations — config/data/jail_locations.lua#

เพิ่ม/แก้สถานที่คุมขังที่ Config.Jail.DefaultLocations ในไฟล์นี้ และสามารถใช้ POLICE+ ช่วยสร้างตำแหน่งแล้ว Copy Config มาวางได้

Fieldผลลัพธ์
key / namekey เป็นรหัสอ้างอิงถาวรของสถานที่คุมขัง (ควรคงเดิมเมื่อมีผู้ต้องขังใช้งานอยู่) และ name คือชื่อที่แสดง
coordsศูนย์กลางพื้นที่คุมขัง
deathจุดที่ใช้เมื่อผู้ต้องขังต้องกลับเข้าพื้นที่หลังเสียชีวิตตามโหมดที่เปิด
exitจุดออกเมื่อพ้นโทษ
radiusขนาดพื้นที่คุมขัง
isDefaultกำหนดสถานที่เริ่มต้น

Jail Card#

Config.Jail.Card.Items ตั้ง item, label และจำนวนนาทีที่ลดได้ต่อบัตร; MenuEnabled เปิดเมนูและ MenuControl เลือกปุ่มใช้งาน

Escape / GPS Cutter#

เปิด/ปิด Feature ที่ config/customer/00_setup.lua และตั้งรายละเอียด Escape / Alert / GPS Cutter ที่ config/customer/03_cases_jail.lua

การแจ้งเตือนหลบหนี#

  • เมื่อผู้ต้องขังออกนอกพื้นที่ ระบบจะแจ้งตำรวจตามกติกาที่เปิดไว้
  • Alerts.RepeatIntervalMs ตั้งช่วงเวลาแจ้งซ้ำ และ PlannedRepeatCount ตั้งจำนวนครั้ง
  • IgnoreOfficerTypeFilter เลือกว่าจะให้เหตุหลบหนีข้ามตัวกรอง Dispatch ส่วนตัวของตำรวจหรือไม่
  • DetailsFormat รองรับ {name}, {source}, {caseId}, {location}
  • InmateNotify ตั้งการแจ้งผู้ต้องขัง ส่วน OfficerNotify ตั้ง Toast ฝั่งตำรวจ
  • Initial / Repeat เลือก key จาก Config.Dispatch.Types สำหรับเหตุครั้งแรก/ครั้งถัดไป
  • การแจ้งแต่ละครั้งใช้ตำแหน่งล่าสุดที่ระบบรองรับในเวลานั้น
  • เมื่อตัด GPS สำเร็จ การแจ้งตำแหน่งครั้งถัดไปจะหยุดตามกติกา GPS Cutter
  • หลัง restart สถานะการหลบหนีและการแจ้งเตือนที่เกี่ยวข้องยังทำงานต่อได้
lua
GpsCutter = {
    Enabled = true,
    Item = 'gps_cutter',
    Amount = 1,
    ConsumeOnUse = true
}
  • ConsumeOnUse=true — ตัด GPS สำเร็จแล้วหัก item
  • ConsumeOnUse=false — ยังต้องมี item ตาม Amount แต่ไม่หักเมื่อใช้สำเร็จ
  • GPS Cutter ตัดเฉพาะการติดตาม/แจ้งตำแหน่งหลบหนี เวลาคุมขังยังนับต่อเหมือนเดิม
  • ถ้าเรียกผ่าน Inventory ภายนอก ให้เรียก Export ของ nX Police โดยไม่หัก item เองล่วงหน้า เพื่อให้ ConsumeOnUse ทำงานตาม Config

Inventory ภายนอกสามารถเรียก exports['nX_police']:CutJailGps(source) ฝั่ง Server เพื่อใช้งาน GPS Cutter ตาม Config เดียวกันได้

ชื่อ Item ต้องไม่ชนกัน
GpsCutter.Item ห้ามใช้ชื่อเดียวกับ Config.Cuff.UnlockItem.Item เมื่อทั้งสองระบบเปิดใช้งาน; Validator จะรายงาน Config ที่ชนกัน

Death Return#

Config.Jail.DeathReturn ตั้งว่าจะจัดการผู้ต้องขังที่เสียชีวิตหรือไม่ โดย ImmediateOnDeath ใช้จุด death ของคุกทันทีตามโหมดที่ตั้ง

Modeผลลัพธ์
warp_onlyพากลับจุดคุกแต่คงสถานะเสียชีวิตไว้ให้ระบบหมอ/เกิดของเซิร์ฟเวอร์จัดการต่อ
warp_and_reviveพากลับจุดคุกและชุบตาม ReviveHealth; เลือก ClearBloodOnRevive ได้

Jail Announcement#

Config.Jail.Announcement.DurationMs ตั้งเวลาที่ประกาศคุกแสดง และ MaxCharges จำกัดจำนวนข้อหาที่แสดงในประกาศ

Case Screenshot#

Config.Jail.CaseScreenshot ตั้ง CaptureBeforeJail, รูปแบบ Encoding และ Quality; ต้องเปิด Feature CaseScreenshot และตั้ง Screenshot integration ให้พร้อมก่อนใช้งาน