Dieses FiveM-Skript ermöglicht autorisierten Mitarbeitergruppen Spieler gewaltsam einsperren in einem Sperrgebiet, wo sie kann sich nicht bewegen oder entkommen für eine festgelegte Dauer.
Es ist ideal für halbseriöse oder seriöse RP-Server, wodurch Administratoren verstorbene Charaktere in eine Admin-Gefängnis– sie machen unbrauchbar für den Rest der Sitzung – oder um störende Spieler auf eine vorübergehende Zeitüberschreitung.
Gefängnisstrafe ist in der Datenbank gespeichert und nimmt nur ab während der Spieler online ist und die Verwendung dieses bestimmten Zeichens.
Es gibt viele verschiedene konfigurierbare Optionen, um die Ressource nach deinem Geschmack zu nutzen:
Konfigurierbare Gruppen für den Zugriff auf die Befehle.
Konfigurierbare Text-/Befehlsnamen (Sprache).
Konfigurierbarer Admin-Jail-Standort.
Konfigurierbarer Ort zur Freigabe des Admin-Jails.
Konfigurierbarer Admin-Jail-Listenbefehl – zeigt alle Spieler an, die derzeit vom Administrator eingesperrt/gesperrt sind.
Konfigurierbare Steuerelemente zum Deaktivieren, wenn der Spieler vom Administrator gesperrt/gesperrt wird.
Menü zum Anzeigen von Benutzern, die vom Administrator gesperrt/gesperrt wurden.
Discord Webhook-Protokollierung (verfolgt, wer einsperrt/freilässt und die Zeit aktualisiert).
Optionale Routing-Bucket-Konfiguration beim Laden/Adminjail.
Ace-Berechtigungen. (DOKUMENTATION ANZEIGEN).
Befehle:
> ./adminjail (Spieler-ID, Grund, Zeit) – einen Spieler für x Zeit einsperren.
./adminjailtime – siehe die verbleibende Zeit an.
> ./adminjailrelease (playerID) – einen Spieler aus dem Admin-Jail entlassen.
-- ███████████████████████████████████████████████████████████████████████████ --
Config = {}
Config.Framework = 1 -- (ESX == 1), (QB == 2)
Config.FrameworkExport = 'es_extended' -- (ESX == 'es_extended'), (QB == 'qb-core')
Config.releaseLocation = vector3(187.1704, -919.8855, 29.8055-1) -- where do you want the player to be teleported when out of adminjail/ck?
Config.chatMessages = true -- do you want the adminjail to notify other players in chat when adminjailed etc?
Config.reduceTimeOffline = true -- set to true if you want admin jail time to decrease even when the player is offline.
Config.routingBucket = true -- do you want to enable routing buckets? (this will put players into a random session so they are likely not to be with another player, more so for trolls)
Config.AdminJailCommand = 'adminjail'
Config.AdminJailCommandRelease = 'unadminjail'
Config.AdminJailTime = 'adminjailtime'
Config.AdminJailList = 'adminjaillist'
Config.DistanceCheck = 20.0 -- how far they can go away from Config.jailLocation before they're teleported back.
Config.DistanceMessage = 'You were teleported back to admin-jail for trying to get away.'
Config.DisabledControls = {24, 257, 25, 263, 45, 22, 44, 37, 23, 288, 289, 170, 167, 73, 59, 71, 72, 36, 47, 264, 257, 140, 141, 142, 143, 75} -- 245 for T keybind (chat)
Config.ckToggle = true -- toggle CK
Config.ckCommand = 'ck' -- cmd to CK
Config.unckToggle = true -- toggle unCK
Config.unckCommand = 'unck' -- cmd to unCK
Config.ckAnnounce = true -- do you want to alert in that when someone is CKed?
-- Chat Messages IF ENABLED. -- (mainly for changing the RGBA colors & modifications -- don't touch if you don't know what you're doing)
Config.Admin_Jail_Updated = '<div style="color: rgba(255, 99, 71, 1); width: fit-content; max-width: 125%; word-break: break-word; "> {0} </div>'
Config.Admin_Jail_Sent = '<div style="color: rgba(255, 99, 71, 1); width: fit-content; max-width: 125%; word-break: break-word; "> {0} </div>'
Config.CK_Announce_Chat = '<div style="width: fit-content; max-width: 125%; word-break: break-word; "><span style="color: rgba(255, 99, 71, 1);">{0}</span> <span style="color: rgba(255, 255, 255, 1);">{1}</span></div>'
--
Config.AcePerm = false -- check readme
Config.AdminGroups = {
'god',
'admin',
'moderator',
'leadadmin',
'developer',
'management',
'owner'
}
-- to run /ck & /adminjail -- (don't have access to /unck & /adminjailrelease to avoid abuse from the job)
Config.Jobs = {
{ name = 'police', grade = 6 },
{ name = 'ambulance', grade = 6 },
}
Config.jailLocation = {
x = 3557.8950, -- x Coordinate
y = 3659.7058, -- y Coordinate
z = 28.1219-1 -- z Coordinate
}
Config.EnableWebhook = false -- (if true add webhook to server side) adminplus-adminjail/server/webhooks.lua
Config.Strings = {
adminjail = 'send an individual to Admin Jail',
adminjailrelease = 'release an individual from Admin Jail',
adminjailchecktime = 'check the time of a person in Admin Jail',
adminjailtimecommand = 'Check remaining jail time',
insufficientpermissions = 'insufficient permission to use this command',
invalid_player_id = 'invalid Player ID',
invalid_reason = 'invalid reason',
invalid_time = 'invalid time',
player_not_found = 'player not found',
usage_admin_release = 'Usage: /adminjailrelease [playerId]',
usage_admin_jail = 'Usage: /adminjail [playerId] [reason] [time]',
usage_admin_ck = 'Usage: /ck [playerId]',
admin_jail_fail_remove = 'Failed to remove Admin Jail record from the database',
admin_jail_fail_insert = 'Failed to insert admin jail record into the database',
admin_jail_fail_update = 'Failed to update admin jail record in the database',
admin_jail_released = 'You have been released from Admin Jail!',
admin_jail_sent = 'You have been sent to Admin Jail!',
time = ' \nTime: ',
admin_jail_updated = 'Your Admin Jail time has been updated! \nTime Updated: ',
remaining_jail_time = 'Your remaining jail time:',
remaining_jail_time_other = 'remaining jail time:',
minutes = ' minute(s) ',
seconds = ' seconds',
player = ' player ',
reason = ' \nReason: ',
staff = ' \nStaff: ',
active_admin_jail = 'You have an active Admin Jail sentence.',
no_active_admin_jail = 'You do not have an active jail sentence.',
no_active_admin_jail_other = 'does not have an active jail sentence.',
chat_message_sent_to_jail = '%s has sent %s to Admin Jail for %s minute(s). Reason: %s',
chat_message_has_updated = '%s has updated %s Admin Jail time to %s minute(s). Reason: %s',
--
ck = 'send an individiual to be CKed',
ckrelease = 'release an individual from being CKed',
usage_ck_admin_jail = 'Usage: /ck [playerId]',
chat_ck_message_sent_to_jail = '%s has has been sent to the morgue. Reason: %s',
chat_ck_message_has_updated = '%s has updated %s Admin Jail time to %s minute(s). Reason: %s',
admin_ck_fail_update = 'User is already in the morgue.',
admin_ck_fail_remove = 'Failed to remove CK record from the database',
admin_ck_sent = 'You have been sent to the Morgue!',
admin_ck_fail_insert = 'Failed to insert CK record into the database',
usage_ck_release = 'Usage: /unck [playerId]',
admin_ck_released = 'You have been released from the Morgue!',
-- client side menu notifications
admin_menu_name = 'Admin Jail Features',
admin_menu_list = 'Admin Jail List ',
admin_menu_reason = 'Reason: ',
admin_menu_jail_time = '\nJail Time: ',
admin_menu_update_user_time = 'Update admin-jail time',
admin_menu_update_user_time_desc = 'Update the admin-jail time of this individual.',
admin_menu_update_input_user_time = 'Update admin-jail time for "',
admin_menu_update_input_user_time_desc = 'How many minutes do you want this character to be admin-jailed for? ',
admin_menu_remove_admin_jail_title = 'Remove admin-jail',
admin_menu_remove_admin_jail_desc = 'Remove the admin-jail of this individual.',
admin_menu_remove_ck_title = 'Un Character Kill',
admin_menu_remove_ck_desc = 'Remove the character kill of this individual.',
admin_menu_remove_copy_title = 'Copy Identifier',
admin_menu_remove_copy_desc = 'Copy character\'s identifier.',
admin_menu_remove_back_title = 'Back',
admin_menu_remove_back_desc = 'Go back to admin-jail history.',
admin_menu_clipboard = 'Copied identifier to clipboard \n',
-- server side menu notifications
admin_menu_remove_admin_jail = 'Character Admin-Jail removed from database: ',
admin_menu_remove_admin_jail_online = 'Character is in the city and was successfully removed from admin-jail.',
admin_menu_remove_admin_jail_offline = 'Character is not in the city but was successfully removed from admin-jail.',
admin_menu_fail_remove_license = 'Failed to remove license from database: ',
admin_menu_ck_remove = 'Character-Kill removed from database: ',
admin_menu_remove_ck_online = 'Character is in the city and was successfully un-cked.',
admin_menu_remove_ck_offline = 'Character is not in the city but was successfully un-cked.',
admin_menu_update_time = 'Updated admin jail time for: ',
admin_menu_fail_update_time = 'Failed to update admin jail time for: ',
}
Config.Debug = false
-- ███████████████████████████████████████████████████████████████████████████ --
Installation
Führe das SQL
View Config, um deinen Framework zu konfigurieren.
—
ACE-BERECHTIGUNGEN:
> (verwende, was du möchtest, füge es deiner hinzu) server.cfg )
wenn du einer bestimmten Gruppe mit Berechtigungen erlauben willst, verwende die erste Option
wenn du auf esx bist & spezifische Identifikatoren erlauben willst, verwende den 2. einen
wenn du auf esx bist & spezifische identifikatoren zulassen möchtest, verwende den dritten
Die gelieferte README enthält SQL- und ACE-Beispiele; die folgende Anleitung behält die erforderliche Reihenfolge bei, ohne Platzhalter für Identifikatoren zu veröffentlichen.
Voraussetzungen und Vorbereitung
ESX oder QBCore und die enthaltene SQL.
Eine ACE-Richtlinie mit minimalen Rechten oder eine Framework-Gruppenrichtlinie für Jail-Befehle.
Installation
Importiere das mitgelieferte SQL und extrahiere adminplus-adminjail.
Wähle Framework/Export, Veröffentlichungsort, Routing-Bucket und das Verhalten bei Offline-Zeit in config.lua.
Füge ACE-Berechtigungen mit Identifikatoren hinzu, die deinem Server gehören, und starte die Ressource.
Konfigurations-Checkpoints
Teste Jail-, Release-, Restzeit- und Listenbefehle mit autorisierten und nicht autorisierten Konten.
Überprüfe das Verhalten bei Wiederverbindung, Offline-Countdown und Fluchtdistanz.
Sicherheit: Sichere die betroffene Ressource und die Datenbanktabellen, verwende Anmeldeinformationen, die deinem Server gehören, und führe einen Staging-Test durch, bevor du eine Live-Ressource ersetzt. Die vollständige Konfiguration verbleibt im Download-Paket.