
Rental
Wypożyczalnia pojazdów: Na stacjach wypożyczalni gracz wybiera pojazd, kolor i czas wynajmu, płaci za minutę i dostaje pojazd od razu na miejscu odbioru – samochody, łodzie lub statki powietrzne. Po upływie czasu pojazd znika, a kto skończy wcześniej, oddaje go przed czasem.
- ESX Legacy (
es_extended) - OneSync
Funkcje
- Wiele stacji z NPC lub markerem, własnym miejscem odbioru i opcjonalnie własnym wyborem pojazdów.
- Trzy typy stacji: wypożyczalnia samochodów, wypożyczalnia łodzi (miejsce odbioru na wodzie) i wypożyczalnia samolotów (pas startowy lub lądowisko) – każda z własną listą pojazdów, własnym blipem i własnymi tekstami w menu.
- Cena za minutę, płatność gotówką lub z banku, wyświetlanie pozostałego czasu z ostrzeżeniami przed końcem.
- Wcześniejszy zwrot: jeśli pojazd jest sprawny i stoi na miejscu odbioru, część niewykorzystanych minut wraca do gracza. W przeciwnym razie wynajem kończy się bez zwrotu pieniędzy. Log Discord każdego zwrotu.
- Jeden wynajem na gracza. Jeśli spawn się nie uda, pieniądze wracają.
Instalacja
- Wrzuć folder
off_rentaldo swojego folderuresources. - Dodaj do
server.cfg– po ESX:
ensure es_extended
ensure off_rental- Opcjonalnie: wpisz webhook dla zwrotów w
config/settings/config.server.lua.
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, it lub nl |
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 |
payment | 'both' | 'cash', 'bank' lub 'both' (gracz wybiera) |
rentalMinutes | 1–120, krok 5, start 30 | min, max, step i default czasu wynajmu w minutach |
warningMinutes | { 5, 1 } | Tyle minut przed końcem pojawia się ostrzeżenie |
refundPercent | 50 | Wcześniejszy zwrot: tyle procent niewykorzystanych minut wraca do gracza, 0 = bez zwrotu |
platePrefix | 'RENT' | Początek tablicy rejestracyjnej (maks. 4 znaki), np. RENT4821 |
ped / marker / blip | Mechanik / tarcza, 2 m / wł. | Wygląd NPC, markera i blipa – marker.size to też obszar dla E, blip.sprite ustawiasz dla każdego typu (car, boat, aircraft) |
config/settings/config.stations.lua – Stacje wypożyczalni
| Pole | Opis |
|---|---|
label | Nazwa w menu |
type | Opcjonalnie: 'car' (domyślnie), 'boat' lub 'aircraft' – określa listę pojazdów, blip i teksty |
interactionType | 'ped' (NPC, position = vec4 z kierunkiem patrzenia) lub 'marker' (krąg, position = vec3) |
spawn | vec4 – miejsce odbioru i zwrotu. Musi być wolne: droga lub parking, przy boat na wodzie, przy aircraft na pasie startowym lub lądowisku |
vehicles | Opcjonalnie: które model z listy danego typu są tu dostępne. Pominięte = wszystkie |
config/settings/config.vehicles.lua – Pojazdy i kolory
Config.vehiclesma osobną listę dla każdego typu:car,boatiaircraft.- Na pojazd:
model,label,category(zakładka w menu),price(cena za minutę) iseats. - Jeśli brakuje obrazka pojazdu (np. pojazdy addon), umieść go jako
web/dist/assets/vehicles/<model>.png. Config.colors:label= nazwa w menu,rgb= kolor lakieru ({ r, g, b }, każdy 0–255).
config/functions.lua
| Funkcja | Do czego |
|---|---|
Notify(message, type) | Własne powiadomienie (ostrzeżenia, koniec wynajmu …) · Serwer: Notify(source, message, type) |
HelpNotify(text) | Tekst podpowiedzi na stacji |
ClientVehicleRented(vehicle, plate) | Po spawnie – np. kluczyki lub paliwo |
Logi Discord
Webhook wpisujesz w config/settings/config.server.lua (tylko po stronie serwera): returns loguje każdy wcześniejszy zwrot z pojazdem, stacją, niewykorzystanymi minutami i kwotą zwrotu. Pusty url ('') wyłącza log. Do tego dochodzą name (nazwa bota), color (RGB) oraz avatar i image (URL obrazka, '' = brak).
Języki
Wszystkie teksty są w config/locales/<język>.json. Dla własnego języka skopiuj plik, przetłumacz go i ustaw serverInfo.locale – zostaw placeholdery takie jak %d i {price}.
W grze
Na stacji naciśnij E, wybierz pojazd, kolor i czas wynajmu i zapłać gotówką lub z konta – od razu siedzisz w pojeździe. Wynajem kończy się, gdy minie czas, gracz opuści serwer albo pojazd zostanie usunięty. Wynajmy nie są zapisywane: przy restarcie skryptu wszystkie wynajęte pojazdy znikają bez zwrotu pieniędzy.
Wcześniejszy zwrot – tylko na stacji tego samego typu:
- Wjedź pojazdem na oznaczone miejsce odbioru, zatrzymaj się i naciśnij E.
- Albo naciśnij E na stacji: menu pokazuje aktywny wynajem, pozostały czas i kwotę zwrotu. Zwróć pojazd kończy wynajem.
Zwrot = niewykorzystane pełne minuty × cena za minutę × refundPercent, na to samo konto co płatność. Jeśli pojazd nie stoi na miejscu odbioru, jest zniszczony lub zniknął, wynajem można zakończyć tylko w menu – po potwierdzeniu i bez zwrotu pieniędzy. Pojazd zostaje potem usunięty, przy łodziach gracz wraca na ląd.
Częste problemy
| Problem | Rozwiązanie |
|---|---|
[ERROR] w konsoli serwera | Skrypt przy starcie sprawdza konfigurację. Przeczytaj komunikat, napraw błąd, zrestartuj skrypt. |
| „Miejsce odbioru jest teraz zajęte” | Na spawn coś stoi. Zwolnij miejsce lub przesuń spawn – nic nie jest pobierane. |
| „Ten pojazd nie jest tu dostępny” | model jest błędny, niezainstalowany, nie ma go na liście typu albo w vehicles stacji. |
| Łódź lub samolot pojawia się źle | spawn nie leży na wodzie lub nie jest wolny na pasie startowym albo lądowisku – zapisz pozycję od nowa. |
| Zwrot nie jest możliwy | Tylko na stacji tego samego type, w pojeździe najpierw się zatrzymaj. |
| Brak kluczyków do wynajętego pojazdu | Wpisz skrypt kluczyków w ClientVehicleRented. |
| NPC stoi w ścianie albo lewituje | Dopasuj position – z to wysokość, na której stoi gracz. |
Jeszcze nie kupiony?
Zobacz Rental w sklepie