Przejdź do treści
Cała dokumentacja

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.

Wymagania
  • 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

  1. Wrzuć folder off_rental do swojego folderu resources.
  2. Dodaj do server.cfg – po ESX:
cfg
ensure es_extended
ensure off_rental
  1. Opcjonalnie: wpisz webhook dla zwrotów w config/settings/config.server.lua.

Konfiguracja

config/settings/config.lua

OpcjaDomyślnieOpis
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.design3Wygląd interfejsu: 1 = Klasyczny, 2 = Paragon, 3 = Storefront
blurtrueRozmyte tło, dopóki menu jest otwarte
payment'both''cash', 'bank' lub 'both' (gracz wybiera)
rentalMinutes1–120, krok 5, start 30min, max, step i default czasu wynajmu w minutach
warningMinutes{ 5, 1 }Tyle minut przed końcem pojawia się ostrzeżenie
refundPercent50Wcześ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 / blipMechanik / 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

PoleOpis
labelNazwa w menu
typeOpcjonalnie: '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)
spawnvec4 – miejsce odbioru i zwrotu. Musi być wolne: droga lub parking, przy boat na wodzie, przy aircraft na pasie startowym lub lądowisku
vehiclesOpcjonalnie: które model z listy danego typu są tu dostępne. Pominięte = wszystkie

config/settings/config.vehicles.lua – Pojazdy i kolory

  • Config.vehicles ma osobną listę dla każdego typu: car, boat i aircraft.
  • Na pojazd: model, label, category (zakładka w menu), price (cena za minutę) i seats.
  • 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

FunkcjaDo 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

ProblemRozwiązanie
[ERROR] w konsoli serweraSkrypt 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ę źlespawn nie leży na wodzie lub nie jest wolny na pasie startowym albo lądowisku – zapisz pozycję od nowa.
Zwrot nie jest możliwyTylko na stacji tego samego type, w pojeździe najpierw się zatrzymaj.
Brak kluczyków do wynajętego pojazduWpisz skrypt kluczyków w ClientVehicleRented.
NPC stoi w ścianie albo lewitujeDopasuj position – z to wysokość, na której stoi gracz.

Jeszcze nie kupiony?

Zobacz Rental w sklepie