สิทธิ์ตำรวจใช้ Config.Management.RankPermissions ส่วนสิทธิ์ Admin ใช้ Config.General.AdminGroups เป็นคนละ authority อย่าปนกัน

Rank abilities#

Abilityความหมาย
openMenuเปิด Police Command
searchค้นตัวตาม Search policy
useQuickActionsQuick Menu / field actions
manageCurfewสร้าง/ปิด Curfew
accessDoorLocksล็อก/ปลดล็อกประตู
manageDepartmentAnnouncementsสร้าง/Auto/Forward ประกาศหน่วยงาน
giveEquipmentมอบ/ยึดอุปกรณ์
accessBankBank หน่วยงาน
accessSafeSafe หน่วยงาน
releaseInmatesปล่อย/แก้เวลาผู้ต้องขัง
managePersonnelจัดการสมาชิก/ยศภายใต้ hierarchy guard
manageConfigurationMaster permission ระดับสูง
managePlaypassจัดการ Playpass
submitAdminReportส่ง Admin Report
submitCommanderMessageส่งข้อความผู้บังคับบัญชา
viewCommanderMessagesอ่าน Commander Mailbox
clearCommanderMessagesล้าง/จัดการ Commander messages และรองรับ dynamic HasAbility
viewStatisticsเปิด Statistics/Ranking

Hierarchy Guard#

managePersonnel=true ไม่ได้ทำให้แก้ทุกคนได้ ระบบยังป้องกันการปรับ/ปลดตัวเอง, ยกระดับคนอื่นเท่าหรือสูงกว่าตัวเอง และจัดการคนที่มี authority เท่าหรือสูงกว่า

AdminGroups#

ใช้กับ POLICE+, Admin Economy, Statistics Reset และ flow ที่ระบุ Admin authority ไม่ได้ทำให้เป็นตำรวจหรือ bypass ทุก Rank ability อัตโนมัติ

Personnel / Equipment / Mailbox#

  • ยศจริง: config/data/ranks.lua
  • Abilities/EquipmentItems: config/customer/04_management.lua
  • การมอบอุปกรณ์ใช้ Mailbox เป็น transaction boundary
  • MailboxRequireOnDuty บังคับผู้รับเข้าเวรก่อนรับของ

Reports & Department Announcements#

Reports config อยู่ 06_services.lua ส่วนสิทธิ์ submit/view commander ใช้ abilities ด้านบน ประกาศหน่วยงานใช้ manageDepartmentAnnouncements สำหรับ Create/Auto/Forward

ตรวจ permission จาก resource อื่น#

lua
local canSearch = exports['nX_police']:HasAbility(source, 'search')
local officer = exports['nX_police']:GetOfficerState(source)

ไม่ควรอ่าน grade แล้วเดา permission เอง