📜 Dokumentacja Techniczna – System Więzienia dla FiveM
📌 1. Wprowadzenie
Nazwa skryptu: Jail System + DOC RP
Cel: Stworzenie realistycznego systemu więzienia dla serwerów RP w FiveM, uwzględniającego zarządzanie więźniami i frakcję DOC (Departament of Correction).
🔹 2. Kluczowe funkcjonalności
🏛️ System więzienia
- Osadzanie graczy w więzieniu na określony czas.
- Możliwość odbywania kary poprzez prace społeczne lub inne interakcje.
- Mechanika ucieczek i ich konsekwencje.
- System cel:
- Każda cela posiada dwa łóżka, więc może pomieścić dwóch więźniów.
- Istnieją również cele izolatki, które są jednoosobowe.
- Przy wysyłaniu skazanego do więzienia system przypisuje go do wolnej celi.
- Możliwość oznaczenia i konfiguracji izolacji.
- Każda cela ma swoje koordynaty w świecie gry zapisane jako strefy PolyZone
🚔 Frakcja DOC
- Role strażników: kontrola więźniów, patrole, eskorty.
- Zarządzanie celami i przenoszeniem więźniów.
- Możliwość przeszukiwania więźniów i konfiskaty przedmiotów.
🎮 Interakcje
- System zarządzania wyrokami dla administracji i frakcji LSPD.
- Możliwość komunikacji wewnętrznej (radio DOC).
- Panel kontroli więzienia.
🔹 3. Struktura plików i folderów
/jail_system
│── server
│ ├── server.lua
│ ├── jail_management.lua
│ ├── doc_system.lua
│── client
│ ├── client.lua
│ ├── interactions.lua
│── web
│ ├── panel.vue
│── shared
│ ├── config.lua
│── fxmanifest.lua
🔹 4. Struktura bazy danych
Tabela: prisoners
ID | PlayerID | PrisonTime | Reason | Cell | SentenceCompleted |
---|---|---|---|---|---|
1 | 234 | 30 min | Kradzież | A1 | No |
Tabela: prison_cells
(Zarządzanie celami)
ID | CellID | Type | Capacity | Occupied | Coordinates |
---|---|---|---|---|---|
1 | A1 | Standard | 2 | 1 | JSON/POLYZONE DATA |
2 | A2 | Standard | 2 | 2 | JSON/POLYZONE DATA |
3 | B1 | Izolatka | 1 | 0 | JSON/POLYZONE DATA |
Tabela: prison_sentences
(Archiwum wyroków)
ID | PlayerID | PrisonTime | Reason | DateIssued | DateReleased |
---|---|---|---|---|---|
1 | 234 | 30 min | Kradzież | 2025-01-31 | 2025-02-01 |
Tabela: doc_officers
ID | Name | Rank | Duty |
---|---|---|---|
1 | John Doe | Sergeant | On |
🔹 5. API i Eventy
TriggerServerEvent('jail:addPrisoner', playerID, time, reason)
– dodaje gracza do więzienia i przypisuje do odpowiedniej celi.TriggerServerEvent('doc:searchPlayer', playerID)
– przeszukanie więźnia.RegisterNetEvent('jail:releasePrisoner')
– zwolnienie więźnia po odbyciu kary, z zapisaniem do archiwum.TriggerServerEvent('jail:transferPrisoner', playerID, newCellID)
– przeniesienie więźnia do innej celi.
🔹 6. Optymalizacja i bezpieczeństwo
- Anty-cheat – blokada teleportacji poza więzienie.
- Optymalizacja kodu – eventy zamiast pętli działających w tle.
- Logi administracyjne – każde uwięzienie i uwolnienie jest logowane.
🔹 7. Integracja z innymi systemami
- Połączenie z systemem policyjnym do automatycznego wysyłania do więzienia.
- Możliwość dodania API do zarządzania wyrokami.
✍️ Ostatnia aktualizacja: [data]