Gefängnissystemarchitektur
Ein Gefängnissystem ist eine der wirkungsvollsten Funktionen, die du einem FiveM-Roleplay-Server hinzufügen können, da es sinnvolle Konsequenzen für kriminelle Aktivitäten schafft und inhaftierten Spielern gleichzeitig etwas Interessantes zu tun gibt, anstatt 30 Minuten lang auf eine Wand zu starren. Die Architektur dreht sich um einen Gefängnis-Timer, der in Echtzeit herunterzählt, eine Reihe von Gefängnisaktivitäten, die es Insassen ermöglichen, ihre Haftstrafe durch Arbeit zu verkürzen, und ein Grenzsystem, das Spielern den Zutritt zum Gefängnisgelände bis zum Verbüßen ihrer Zeit verwehrt. Der Standort des Bolingbroke-Gefängnisses in GTA V ist die Standardwahl, da er über einen vollständig modellierten Innenraum mit Zellenblöcken, einem Hof und umliegenden Einrichtungen verfügt. Dein System benötigt drei Kernkomponenten: die Verurteilungslogik auf dem Server, die Gefängnisstrafen zuweist und Waffen und Schmuggelware entzieht, die clientseitige Grenzdurchsetzung, die Spieler zurückteleportiert, wenn sie den Gefängnisbereich verlassen, und das Aktivitätsframework, das den Insassen produktive Aufgaben zum Zeitvertreib gibt.
Datenbankschema und Verurteilung
Die Datenbank verfolgt aktive Strafen, den Strafverlauf für Strafregister und den Fortschritt der Insassen bei Aktivitäten. Speichere die Endzeit des Satzes als absoluten Zeitstempel und nicht als verbleibende Dauer, damit die Zeit auch dann weiter heruntergezählt wird, wenn der Spieler offline ist, und verhindern du so den Exploit, bei dem sich Spieler abmelden, um ihren Satz zu pausieren. Füge zu Aufzeichnungszwecken Felder für den festnehmenden Beamten, die Anklage und die Länge der ursprünglichen Strafe hinzu:
Verurteilung eines Spielers
Wenn die Polizei den Gefängnisbefehl verwendet, validiert der Server die Berechtigungen des Beamten, berechnet die Strafe basierend auf den Anklagen, entledigt sich der Waffen und illegalen Gegenstände des Insassen und teleportiert ihn zu einem Spawnpunkt innerhalb des Gefängnisses. Der Satz muss sofort in der Datenbank gespeichert werden, damit er Serverneustarts übersteht. Implementiere die Verurteilung als serverseitigen Befehl, den nur autorisierte Polizeibeamte ausführen können:
Gefängnisaktivitäten
Gefängnisaktivitäten sind die zentrale Gameplay-Schleife, die inhaftierte Spieler beschäftigt. Ohne sie ist eine Gefängnisstrafe eine Strafe, die Spieler dazu bringt, sich abzumelden, was sich negativ auf die Serverpopulation auswirkt. Entwerfe Aktivitäten, die einen Kompromiss bieten: Die Durchführung von Wehen verkürzt deine Strafe und gibt den Insassen Entscheidungsfreiheit über ihre Erfahrungen. Jede Aktivität sollte eine Abklingzeit haben, um Spam zu verhindern, und eine maximale Reduzierungsobergrenze pro Aktivitätszyklus, sodass ein 60-minütiger Satz nicht in 5 Minuten gelöscht werden kann. Die häufigsten Aktivitäten sind der Bergbau im Steinbruch, das Training im Fitnessstudio, die Reinigung der Anlage und der Aufenthalt in der Gefängnisbibliothek. Jede Aktivität nutzt ein anderes Minispiel oder Interaktionsmuster, um für Abwechslung zu sorgen:
Bewährungssystem
Ein Bewährungssystem fügt eine Ebene des Roleplays zwischen Gefängnis und völliger Freiheit hinzu. Sobald ein Insasse einen konfigurierbaren Prozentsatz seiner Strafe abgesessen hat, in der Regel 60–75 %, hat er Anspruch auf Bewährung. Eine Bewährung kann von einem Richter oder einem hochrangigen Polizeibeamten durch einen Befehl gewährt werden, der den Spieler vorzeitig freilässt, ihm aber Einschränkungen auferlegt. Für auf Bewährung entlassene Spieler gilt möglicherweise eine Ausgangssperre, die sie dazu zwingt, sich zwischen bestimmten Zeiten auf ihrem Grundstück aufzuhalten, die Verpflichtung, sich in regelmäßigen Abständen bei einem Bewährungshelfer zu melden, und ein Verbot des Waffenbesitzes oder des Betretens bestimmter Bereiche. Wenn ein auf Bewährung entlassener Spieler gegen eine Bedingung verstößt, wird er automatisch mit der verbleibenden Strafe plus zusätzlicher Zeit für den Verstoß ins Gefängnis zurückgeschickt. Verfolge den Bewährungsstatus in den Metadaten des Spielers und führest du regelmäßige Überprüfungen auf dem Server durch, um die Einhaltung der Bedingungen zu überprüfen.
Gefängnisausbruch-Ereignisse
Bei Gefängnisausbrüchen handelt es sich um serverweite Ereignisse, die sowohl für Kriminelle als auch für Strafverfolgungsbehörden ein spannendes Roleplay darstellen. Ein Gefängnisausbruch sollte eine umfassende Vorbereitung und mehrere Teilnehmer erfordern und der Polizei ausreichend Vorwarnung geben, um eine Reaktion einzuleiten. Implementiere es als mehrstufiges Ereignis: Ein externes Team muss zunächst bestimmte Gegenstände wie einen Hubschrauber, Sprengstoff und Verkleidungen beschaffen. Dann müssen sie das Sicherheitssystem des Gefängnisses durch ein schwieriges Minispiel an einem externen Bedienfeld hacken. Sobald die Sicherheitsvorkehrungen geschlossen sind, öffnen sich die Zellentüren für ein begrenztes Fenster und die Insassen können versuchen, über vorgegebene Routen zu fliehen, während Wach-NPCs und die reagierende Polizei versuchen, sie aufzuhalten. Das System sollte Gefängnisausbrüche nur zulassen, wenn eine Mindestanzahl an Polizeibeamten online ist, um eine faire Reaktion zu gewährleisten:
Wach-NPC-System
Wach-NPCs sorgen für die Sicherheit rund um das Gefängnis und verhindern, dass Insassen das Gefängnis einfach so verlassen. Platziere Wachen an wichtigen Engpässen wie dem Haupttor, den Zellenblockeingängen und entlang der Umfassungsmauer. Jeder Wachmann sollte eine Patrouillenroute mit Wegpunkten haben, durch die er radelt, wodurch Fenster entstehen, in denen bestimmte Bereiche unbewacht sind. Wachen erkennen Insassen, die autorisierte Zonen verlassen, und reagieren mit einer mündlichen Warnung. Wenn der Insasse sich nicht daran hält, verfolgen sie ihn und greifen ihn an. Implementiere die Erkennung von Wachen mithilfe von Annäherungsprüfungen, die die Sichtlinie berücksichtigen, sodass sich Insassen an den Wachen vorbeischleichen können, indem sie in Deckung bleiben. Bringe während eines Gefängnisausbruch-Events zusätzliche Wachen an Schlüsselpositionen hervor und erhöhst du deren Aggressivitätsniveau. Verwende die nativen FiveM-Funktionen TaskPatrol und SetPedCombatAttributes, um Wachen ein realistisches Patrouillenverhalten zu ermöglichen. Stell sicher, dass deine Beziehungsgruppe feindselig gegenüber Insassen eingestellt ist, während du gegenüber Polizei und Besuchern neutral bleiben, um Vorfälle durch „Friendly Fire“ während der Reaktion auf den Gefängnisausbruch zu verhindern.
Grenzdurchsetzung und -freigabe
Das Grenzsystem hält die Insassen mithilfe einer Polygonzone, die die gesamte Einrichtung abdeckt, innerhalb des Gefängnisumfangs. Wenn ein Spieler mit einer aktiven Strafe diese Zone verlässt, erhält er eine Warnmeldung und hat 10 Sekunden Zeit, um zurückzukehren, bevor er zum Spawnpunkt des Gefängnisses zurückteleportiert wird. Als Strafe für einen Fluchtversuch wird seiner Strafe zusätzliche Zeit hinzugefügt. Führe auf der Clientseite alle 2 Sekunden eine regelmäßige Überprüfung durch, bei der die Position des Spielers mit dem Gefängnisgrenzenpolygon verglichen wird. Zur Freigabe führt der Server eine Timer-Schleife durch, die alle 30 Sekunden alle aktiven Sätze überprüft. Wenn eine Haftstrafe abläuft, aktualisiert das System den Datenbankstatus auf „Freigegeben“, löscht die Gefängnismetadaten des Spielers, stellt sein Inventar aus einem Backup vor der Gefängnisstrafe wieder her, sofern du eines implementiert haben, und teleportiert ihn mit einer Benachrichtigung, dass er frei ist, zum Gefängnisausgang. Wenn der Spieler zum Zeitpunkt des Ablaufs seines Satzes offline ist, wird die Freigabe bei der nächsten Anmeldung gehandhabt, indem im Player-Load-Ereignis nach abgelaufenen aktiven Sätzen gesucht wird. Füge einen Befehl für die Polizei hinzu, Spieler in Situationen wie unrechtmäßiger Inhaftierung oder im Rahmen von Roleplay ausgehandelten Einigungen manuell vorzeitig freizulassen.
Integration mit Polizei- und Rechtssystemen
Dein Gefängnissystem sollte eng mit dem Polizei-MDT und jedem Gerichtssystem auf dem Server integriert sein. Wenn ein Spieler inhaftiert wird, sollte sein Strafregister im MDT automatisch mit den Anklagepunkten, der Strafdauer und dem festnehmenden Beamten aktualisiert werden. Wenn dein Server über ein Gerichtssystem verfügt, sollten die von einem Richter verhängten Urteile dieselbe Gefängnisfunktion durchlaufen, um Konsistenz zu gewährleisten. Implementiere ein Urteilsbeschwerdesystem, bei dem Insassen in der Gefängnisbibliothek Berufung einlegen können. Dadurch wird ein Strafzettel für die Prüfung durch Richter erstellt, der möglicherweise zu Strafkürzungen oder einer vorzeitigen Entlassung führt. Verfolge Rückfälle, indem du zählst, wie oft jeder Bürger inhaftiert wurde, und nutze diese Daten, um über ein Multiplikatorsystem härtere Strafen für Wiederholungstäter durchzusetzen. Exportiere deine Gefängnisfunktion, damit andere Ressourcen wie das Gerichtssystem, die automatische Verbrechenserkennung oder Administratorbefehle alle Spieler über denselben validierten Weg ins Gefängnis schicken können.
