API

Eine Garage ist eine ID, ein Fahrzeug ein Kennzeichen. api.lua liegt offen in der Resource.

Die ID einer Garage ist ihre Stelle in Config.Garages, ab 1 gezählt. Gib ihr name = 'pier' und nimm GetGarageId('pier'), wenn du dich nicht auf die Reihenfolge verlassen willst. Beim Kennzeichen sind Leerzeichen egal: AB 12345 und AB12345 sind überall dasselbe Fahrzeug.

Client

OpenGarage

Client
exports.cs_garage:OpenGarage(id)

Der Server prüft trotzdem alles.

CloseGarage

Client
exports.cs_garage:CloseGarage()

IsGarageOpen

Client
exports.cs_garage:IsGarageOpen()

Gibt zurückboolean

GetOpenGarage

Client
exports.cs_garage:GetOpenGarage()

GetGarages

Client
exports.cs_garage:GetGarages()

Gibt zurücktable

GetGarage

Client
exports.cs_garage:GetGarage(id)

Gibt zurücktable | nil

GetGarageId

Client
exports.cs_garage:GetGarageId(name)

Gibt zurücknumber | nil

GetNearestGarage

Client
exports.cs_garage:GetNearestGarage(maxDistance)

ParkVehicle

Client
exports.cs_garage:ParkVehicle()

Parkt das Fahrzeug ein, in dem du sitzt.

Server

CreateGarage

Server
exports.cs_garage:CreateGarage(garage)

Eine Garage, während der Server läuft.

RemoveGarage

Server
exports.cs_garage:RemoveGarage(id)

SetGarageEnabled

Server
exports.cs_garage:SetGarageEnabled(id, bool)

IsGarageEnabled

Server
exports.cs_garage:IsGarageEnabled(id)

Gibt zurückboolean

GetPlayerVehicles

Server
exports.cs_garage:GetPlayerVehicles(source, filter)

Nimmt statt der Server-ID auch den Identifier eines Charakters, also auch für jemanden, der offline ist.

Gibt zurücktable { plate, model, class, state, garage, favorite, nickname, fuel, engine, body }

GetVehicle

Server
exports.cs_garage:GetVehicle(plate)

Gibt zurücktable | nil

IsVehicleSpawned

Server
exports.cs_garage:IsVehicleSpawned(plate)

Gibt zurückboolean

ImpoundVehicle

Server
exports.cs_garage:ImpoundVehicle(plate, reason)

StoreVehicle

Server
exports.cs_garage:StoreVehicle(plate, garage)

SetVehicleState

Server
exports.cs_garage:SetVehicleState(plate, state)

Mit 'out' wird das Fahrzeug verfolgt wie eines, das die Garage selbst herausgegeben hat: Der Wrack-Abschlepper beobachtet es, ein Carclear schickt es an den Hof und sein Zustand wird unterwegs geschrieben.

RepairVehicle

Server
exports.cs_garage:RepairVehicle(plate)

Ein eingeparktes Fahrzeug, kostenlos, ohne Hooks.

RefuelVehicle

Server
exports.cs_garage:RefuelVehicle(plate)

Carclear

Server
exports.cs_garage:Carclear()

Gibt zurücknumber, number gelöscht und abgeschleppt

OpenGarage

Server
exports.cs_garage:OpenGarage(source, id)

Von einem Handy, einem Menü, von überall.

CloseGarage

Server
exports.cs_garage:CloseGarage(source)

GetPlayerGarage

Server
exports.cs_garage:GetPlayerGarage(source)

CanPlayerUse

Server
exports.cs_garage:CanPlayerUse(source, id)

Gibt zurückboolean

Hooks

canOpen, canStore, canRetrieve, canImpound, canClear, canRepair, canRefuel, canRename. Ein Hook gibt nichts zurück, um zu erlauben, und false, um abzulehnen. Ein Satz dahinter wird dem Spieler genau so gezeigt.

RegisterHook

Server
exports.cs_garage:RegisterHook(name, fn)

Gibt zurücknumber | nil eine ID für RemoveHook

Beispiel
local function bind()
    exports.cs_garage:RegisterHook('canRefuel', function(src, garage, plate)
        if not isVip(src) then return false, 'Only members may refuel.' end
    end)
end

AddEventHandler('onResourceStart', function(resource)
    if resource == 'cs_garage' then bind() end
end)

if GetResourceState('cs_garage') == 'started' then bind() end

RemoveHook

Server
exports.cs_garage:RemoveHook(hookId)

CountHooks

Server
exports.cs_garage:CountHooks(name)

Gibt zurücknumber

Hooks liegen im Speicher. Ein Neustart von cs_garage verwirft alle, registriere also beim Start von cs_garage und nicht nur beim Start deiner eigenen Resource.

Events

AddEventHandler
-- client
cs_garage:opened    (garageId)
cs_garage:closed    (garageId)
cs_garage:retrieved (garageId, plate)
cs_garage:stored    (plate)
cs_garage:spawned   (plate, vehicle)
cs_garage:repaired  (plate)
cs_garage:refueled  (plate)

-- server
cs_garage:opened    (source, garageId)
cs_garage:closed    (source, garageId)
cs_garage:stored    (source, { garage, spot, plate, class, model })
cs_garage:retrieved (source, { garage, plate, class, model })
cs_garage:released  (source, { garage, plate, price, lost, standing })
cs_garage:carcleared({ cleared, pounded })
cs_garage:impounded ({ plate, owner, class, reason })
cs_garage:repaired  (source, { garage, plate, class, model, price })
cs_garage:refueled  (source, { garage, plate, class, model, price })

Frage offen geblieben?

Schreib uns im Discord. Mit Konsolen-Auszug, Framework und Script-Version ist die erste Antwort meistens schon die Lösung.

Zum Support