
Faction
Frakcje, które tworzysz w całości w grze: każda frakcja to prawdziwy job z menu szefa, garażami, magazynami, szafą, windą, poziomami, menu akcji i systemem gangwaru. Tabele skrypt tworzy sam.
Wymagania
- ESX Legacy (
es_extended, testowane z 1.14) - oxmysql
- OneSync
- Do szafy: skinchanger i esx_skin (lub własne funkcje w
config/functions.lua) - Do menu F6 i menu pojazdów gangwaru: esxmenudefault (lub własne menu przez
ClientActionMenuiClientGangwarVehicleMenu)
Funkcje
- Kreator (
/fraktionen): Tworzysz w grze frakcje z rangami, pensją, pojazdami, miejscami (marker lub NPC), blipami i dostępem od danej rangi. - Menu szefa: Zarządzanie członkami, kasa z historią, kupno pojazdów, uprawnienia dla każdej rangi, podania i logi.
- Podania: Gracze składają podania do frakcji w punktach podań (NPC lub marker z kreatora), zarząd przyjmuje lub odrzuca je w menu szefa.
- GPS: Członkowie widzą się na mapie, z osobną ikoną pieszo, w aucie, na motocyklu lub rowerze, w łodzi, helikopterze lub samolocie, podczas pływania i po śmierci (wł./wył. dla każdej frakcji).
- Pojazdy frakcji ze stylem: własny prefiks tablicy, lakier i xenon w kolorze frakcji, maksymalny tuning i przyciemniane szyby. Z kluczykiem do zamykania i otwierania.
- Garaże i magazyny: do 10 każdego rodzaju na frakcję, dostęp od danej rangi.
- Szafa, winda (do 10 pięter) i poziomy z XP (wł./wył. dla każdej frakcji).
- Menu akcji (F6): Kajdanki, przeszukiwanie, identyfikacja, prowadzenie i akcje na pojazdach, do wyboru dla każdej frakcji.
- Gangwar: Strefy tworzone w grze, tryby Limit czasu i First Contact, własny wymiar, sklep i ranking.
- Logi na Discordzie dla wszystkich obszarów.
Instalacja
- Wrzuć folder
off_factiondoresources. - Dodaj do
server.cfgpo oxmysql i ESX:
ensure oxmysql
ensure es_extended
ensure off_faction- Otwórz
/fraktionen, utwórz frakcję i ustaw zarząd przez/setjob <ID> <name> <ranga>(najwyższa ranga = liczba rang − 1).
Nazwy jobów
Nazwa frakcji jest jednocześnie nazwą joba (2–20 znaków, a–z, 0–9, _) i potem nie da się jej zmienić. Jeśli taki job już istnieje, frakcji nie da się utworzyć.
Konfiguracja
config/settings/config.lua
| Opcja | Domyślnie | Opis |
|---|---|---|
serverInfo.name | 'OFF SCRIPTS' | Nazwa serwera, widoczna w interfejsie zamiast „OFF SCRIPTS” |
serverInfo.locale | 'de' | Język: de, en, pl, fr, es lub it |
serverInfo.color | { 155, 89, 255 } | Kolor UI (RGB) |
serverInfo.design | 3 | Wygląd interfejsu: 1 = Klasyczny, 2 = Paragon, 3 = Storefront |
blur | true | Rozmyte tło, dopóki menu jest otwarte. Kreator zostaje ostry (podgląd) |
creator.command | 'fraktionen' | Komenda kreatora |
creator.groups | { 'projektleitung' } | Grupy z dostępem do kreatora frakcji |
creator.zoneGroups | { 'projektleitung' } | Grupy z dostępem do kreatora stref gangwaru |
inviteSeconds | 60 | Sekundy do wygaśnięcia zaproszenia |
storeRange | 25.0 | Maks. odległość przy chowaniu pojazdu (metry) |
plateFormat | 'LLL NNN' | Tablica: L = litera, N = cyfra, działa tylko bez prefiksu w kreatorze |
applications.cooldown / maxOpen | 24 / 3 | Godziny blokady po odrzuceniu, maks. liczba otwartych podań na gracza |
gps.interval / scale | 2 / 0.8 | Sekundy między aktualizacjami GPS, rozmiar blipów |
gps.showSelf | true | true = widzisz też swój własny blip GPS |
gps.types | patrz plik | sprite i color dla każdego stanu: foot, swim, car, bike, bicycle, boat, heli, plane, dead (domyślnie biały, po śmierci czerwony) |
vehicleKeys.enabled / key / range | true / 'U' / 10.0 | System kluczyków, domyślny klawisz, zasięg w metrach |
vehicleKeys.shared | false | true = wszyscy członkowie mogą zamykać i otwierać wyjęte pojazdy frakcji |
bossLogs.days | 30 | Przez tyle dni logi są przechowywane w menu szefa |
bossLogs.<obszar> | true (akcje false) | Które obszary pokazuje strona logów: members, money, garage, storage, wardrobe, gangwarShop, level, actions |
levels.max / base / growth | 50 / 1000 / 1.15 | XP na poziom = base × growth ^ (Level − 1) |
levels.tiers | 5 progów | Z systemem poziomów: miejsca na stroje i kg magazynu od danego poziomu |
outfitSlots | 10 | Miejsca na stroje bez systemu poziomów |
weaponWeight | 2.0 | Waga jednej broni w magazynie |
itemImages | obrazki off_inventory | Ścieżka obrazków przedmiotów w magazynie, %s = nazwa przedmiotu |
marker / blips | patrz plik | Domyślne dla nowych miejsc, w kreatorze do zmiany dla każdego miejsca. blips.enabled = false wyłącza wszystkie blipy |
config/settings/config.gangwar.lua
| Opcja | Domyślnie | Opis |
|---|---|---|
times | 18:00 – 22:00 | Dozwolone godziny (czas serwera), puste = zawsze |
joinSeconds | 60 | First Contact: czas na dołączenie w lobby. Limit czasu startuje od razu |
respawnSeconds | 10 | Sekundy do respawnu |
lobbyRadius | 15.0 | Rozmiar lobby wokół spawnu (metry) |
players.min / max | 1 / 0 | Gracze na stronę (min tylko First Contact, max = 0 = bez limitu) |
killPoints | 3 | Limit czasu: punkty za zabójstwo |
modes.<tryb>.duration | 25 / 15 | Czas trwania w minutach |
cooldowns | 1 / 0 / 1 | Minuty: attack (przerwa frakcji), zone (blokada strefy), queue (do wygaśnięcia kolejki), 0 = wył. |
rewards | patrz plik | Punkty gangwaru i XP za win, lose, draw i forfeit |
weapons | wył. | enabled = true: tylko te bronie w gangwarze, własne wracają po nim |
vehicles / shop | patrz plik | Pojazdy garaży gangwaru i artykuły w sklepie |
config/settings/config.actions.lua
| Opcja | Domyślnie | Opis |
|---|---|---|
command / key | 'fraktionsmenu' / 'F6' | Komenda (/off_faction:fraktionsmenu) i domyślny klawisz menu akcji |
reach | 3.0 | Jak blisko przed tobą musi być gracz lub pojazd (metry) |
search.requireCuffed | true | Przeszukiwanie tylko skutych graczy |
search.accounts | { 'money', 'black_money' } | Konta, z których można zabierać podczas przeszukiwania |
cuffedAnims | patrz plik | Animacje, po których ClientIsCuffed rozpoznaje skutych |
identify | patrz plik | Czas wyświetlania i jakie pola pojawiają się dla gracza i pojazdu |
animations | patrz plik | Animacja i czas trwania dla każdej akcji |
config/functions.lua
Tutaj podłączasz własne skrypty. Błędy w nich trafiają do konsoli, skrypt działa dalej.
| Funkcja | Do czego |
|---|---|
Notify(message, type) / HelpNotify(text) | Powiadomienie i tekst pomocy · Serwer: Notify(source, message, type) |
ClientGetFuel(vehicle) / ClientSetFuel(vehicle, fuel) | Skrypt paliwa |
ClientVehicleRetrieved(vehicle, plate) | Po wyjęciu pojazdu z garażu, np. daj kluczyki |
ClientVehicleStored(plate) | Po schowaniu pojazdu, np. zabierz kluczyki |
ClientGetSkin() / ClientApplyOutfit(clothes) / ClientRestoreOutfit() | Skrypt ubrań dla szafy |
ClientActionMenu(title, actions, onSelect) | Menu F6 (domyślnie: menu ESX Default) |
ClientIsCuffed() | Sprawdzanie skucia przy przeszukiwaniu (własne kajdanki i animacje) |
ClientCuffChanged(kind) | Własne kajdanki założone lub zdjęte, np. zablokuj telefon |
ClientGangwarDeath() / ClientGangwarRespawn() | Śmierć i respawn w gangwarze, np. ukryj skrypt ambulance |
ClientRestoreLoadout(loadout) | Dawanie i oddawanie broni w gangwarze |
ClientGangwarVehicleMenu(vehicles, onSelect) | Menu pojazdów w garażu gangwaru |
ClientGangwarVehicleSpawned(vehicle, plate) | Pojazd gangwaru zespawnowany, np. daj kluczyki |
ServerLevelUp(faction, level) | Frakcja wchodzi na wyższy poziom |
ServerVehicleBought(faction, model, plate) | Pojazd kupiony |
ServerGangwarStarted(zone, attacker, defender) | Gangwar się zaczyna |
ServerGangwarEnded(zone, attacker, defender, outcome) | Gangwar zakończony (outcome z perspektywy atakującego) |
ServerVehicleImpounded(source, plate) | Pojazd odholowany, np. podłącz inny skrypt garażu |
ServerCuffedDisconnect(source, xPlayer, kind, reason) | Skuty gracz opuszcza serwer, np. więzienie |
config/settings/config.server.lua i języki
Webhooki Discorda dla każdego obszaru (creator, members, money, garage, storage, wardrobe, level, gangwar, actions), url = '' wyłącza log. Wszystkie teksty są w config/locales/ (jeden plik na język).
W grze
- Kreator (
/fraktionen): Utwórz frakcję, ustaw miejsca przyciskiem Użyj mojej pozycji, markery, NPC i blipy przez Dostosuj, w zakładce Ustawienia włącz system poziomów, garaż, magazyn, gangwar i akcje menu F6. Dopiero Zapisz zapisuje wszystko. Na górze przełączasz na Podania i Strefy Gangwar. - Dostosuj NPC: Wybierz model z listy obrazków wszystkich pedów GTA (wyszukiwarka i kategorie), do tego scenariusz i kierunek patrzenia, wszystko z podglądem na żywo w grze. Peda addon wybierasz, wpisując w wyszukiwarkę dokładną nazwę modelu.
- Styl pojazdów (Kreator → Pojazdy): Prefiks tablicy do 5 znaków, np.
BALLAdajeBALLA 48. Gdy prefiks się zmieni, przy zapisie wszystkie pojazdy frakcji dostają nową tablicę, a pojazdy wyjęte z garażu zostają usunięte. Do tego lakier w kolorze frakcji, maksymalny tuning, przyciemniane szyby i xenon w kolorze frakcji. - GPS (Kreator → Ustawienia): Członkowie widzą się nawzajem na mapie. Ikona zmienia się zależnie od stanu, kolory i ikony są w
gps.types. Kierunek patrzenia blip pokazuje tylko pieszo i podczas pływania, ikony pojazdów zawsze stoją prosto. - Kluczyki: Kto wyjmie pojazd frakcji z garażu, może go zamykać i otwierać klawiszem U (do zmiany w ustawieniach klawiszy FiveM). Z
vehicleKeys.shared = truemogą to robić wszyscy członkowie. - Podania: Punkty podań tworzysz w kreatorze w zakładce Podania (do 20), jako NPC lub marker i opcjonalnie z blipem dla wszystkich graczy. Działają dla wszystkich frakcji. W punkcie E otwiera listę wszystkich frakcji, które przyjmują podania, tam wysyłasz tekst. Twojej frakcji nie ma na liście. Członkowie z uprawnieniem Zapraszanie członków dostają wiadomość i widzą podanie w menu szefa w Członkowie → Podania. Tam można też zamknąć podania. Przyjęcie działa także wtedy, gdy gracz jest offline.
- Logi (menu szefa, dolny przycisk): wszystko, co dzieje się we frakcji, np. wpłaty i wypłaty, pojazdy wyjęte, schowane lub kupione, magazyn, szafa, członkowie, podania, sklep gangwaru i poziom. Ataków gangwaru tam nie ma. Widoczne dla zarządu i rang z uprawnieniem Przeglądanie logów.
- Miejsca: Przy menu szefa, garażu, magazynie, szafie i windzie E otwiera menu.
- Menu akcji (F6): Działa na gracza lub pojazd tuż przed tobą.
- Twarde kajdanki: tylko rozglądanie się. Miękkie kajdanki: chodzenie, ale bez biegania, skakania i atakowania. Ponowny wybór je zdejmuje.
- Przeszukaj: tylko skutych graczy, możesz tylko zabierać.
- Prowadź: prowadzisz skutego gracza przed sobą. Wsadź do pojazdu / Wyciągnij z pojazdu dla skutych.
- Pojazd: umyj, napraw, odholuj (prywatne pojazdy trafiają na parking odholowanych pojazdów off_garage) i zidentyfikuj. X przerywa.
- Gangwar: W punkcie gangwaru E otwiera menu. Jedna frakcja wystawia strefę, inna przyjmuje wyzwanie. Dołączasz przez E w punkcie gangwaru.
- Limit czasu: startuje od razu, punkty za zabójstwo, respawn, dołączanie do samego końca.
- First Contact: czas na dołączenie w lobby, potem jedno życie na gracza.
Dla deweloperów
exports.off_faction:AddXP('vagos', 250)
exports.off_faction:SetLevel('vagos', 5, 0)
local level, xp, needXp = exports.off_faction:GetLevel('vagos')
local faction = exports.off_faction:GetFaction('vagos')
local list = exports.off_faction:GetFactions()
local isFaction = exports.off_faction:IsFaction('vagos')
local name, grade = exports.off_faction:GetPlayerFaction(source)
local allowed = exports.off_faction:HasPermission(source, 'withdraw')
exports.off_faction:AddBalance('vagos', 5000, 'Nagroda')
exports.off_faction:RemoveBalance('vagos', 5000, 'Strafe')- Wszystkie eksporty działają po stronie serwera.
- Event serwera
off_faction:levelUpz(faction, level)przy awansie na wyższy poziom. - Statebagi:
offGangwar(ID strefy w gangwarze),offCuffed('hard','soft'lubfalse),offEscorted(ID serwera prowadzącego).
Częste problemy
Przy starcie skrypt zgłasza błędy i wskazówki w konsoli serwera.
| Problem | Rozwiązanie |
|---|---|
| „Praca ESX o tej nazwie już istnieje” | Wybierz inną nazwę, istniejące joby nie są przejmowane. |
| Nikt nie widzi markera ani NPC | Miejsca widzą tylko członkowie. Ustaw pozycję i zapisz, sprawdź minimalną rangę. |
| Szafa niczego nie zakłada | Uruchom skinchanger/esx_skin lub dostosuj funkcje ubrań. |
| F6 nie otwiera menu | Włącz akcję w Ustawieniach, uruchom esxmenudefault. |
| Brak pojazdu w garażu | W kreatorze w zakładce Garaże przypisz go do garażu. Pojazdy bez garażu są we wszystkich garażach. Jeśli pojazd ma cenę, zarząd musi go najpierw kupić w menu szefa. |
| GPS nikogo nie pokazuje | W kreatorze w Ustawieniach włącz GPS. Pokazuje tylko członków, którzy są online. |
| U nie zamyka | Działa tylko u tego, kto wyjął pojazd, albo u wszystkich przy vehicleKeys.shared = true. Sprawdź klawisz w ustawieniach klawiszy FiveM. |
| Brak podania w menu szefa | Jest tylko w menu szefa frakcji, do której złożono podanie, i tylko dla rang z uprawnieniem Zapraszanie członków. |
| Strona logów jest pusta | Ustaw obszar w bossLogs na true. Wpisy powstają dopiero od teraz, starszych akcji nie ma. |
| „Gangwary są teraz niedozwolone” | Godzina poza times. Żeby działało zawsze: times = {}. |
| W gangwarze skrypt ambulance ożywia gracza | Wyłącz ekran śmierci w ClientGangwarDeath. |
Jeszcze nie kupiony?
Zobacz Faction w sklepie