Skip to content

📜 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

IDPlayerIDPrisonTimeReasonCellSentenceCompleted
123430 minKradzieżA1No

Tabela: prison_cells (Zarządzanie celami)

IDCellIDTypeCapacityOccupiedCoordinates
1A1Standard21JSON/POLYZONE DATA
2A2Standard22JSON/POLYZONE DATA
3B1Izolatka10JSON/POLYZONE DATA

Tabela: prison_sentences (Archiwum wyroków)

IDPlayerIDPrisonTimeReasonDateIssuedDateReleased
123430 minKradzież2025-01-312025-02-01

Tabela: doc_officers

IDNameRankDuty
1John DoeSergeantOn

🔹 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]