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
Clientexports.cs_garage:OpenGarage(id) Der Server prüft trotzdem alles.
CloseGarage
Clientexports.cs_garage:CloseGarage() IsGarageOpen
Clientexports.cs_garage:IsGarageOpen() Gibt zurückboolean
GetOpenGarage
Clientexports.cs_garage:GetOpenGarage() GetGarages
Clientexports.cs_garage:GetGarages() Gibt zurücktable
GetGarage
Clientexports.cs_garage:GetGarage(id) Gibt zurücktable | nil
GetGarageId
Clientexports.cs_garage:GetGarageId(name) Gibt zurücknumber | nil
GetNearestGarage
Clientexports.cs_garage:GetNearestGarage(maxDistance) ParkVehicle
Clientexports.cs_garage:ParkVehicle() Parkt das Fahrzeug ein, in dem du sitzt.
Server
CreateGarage
Serverexports.cs_garage:CreateGarage(garage) Eine Garage, während der Server läuft.
RemoveGarage
Serverexports.cs_garage:RemoveGarage(id) SetGarageEnabled
Serverexports.cs_garage:SetGarageEnabled(id, bool) IsGarageEnabled
Serverexports.cs_garage:IsGarageEnabled(id) Gibt zurückboolean
GetPlayerVehicles
Serverexports.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
Serverexports.cs_garage:GetVehicle(plate) Gibt zurücktable | nil
IsVehicleSpawned
Serverexports.cs_garage:IsVehicleSpawned(plate) Gibt zurückboolean
ImpoundVehicle
Serverexports.cs_garage:ImpoundVehicle(plate, reason) StoreVehicle
Serverexports.cs_garage:StoreVehicle(plate, garage) SetVehicleState
Serverexports.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
Serverexports.cs_garage:RepairVehicle(plate) Ein eingeparktes Fahrzeug, kostenlos, ohne Hooks.
RefuelVehicle
Serverexports.cs_garage:RefuelVehicle(plate) Carclear
Serverexports.cs_garage:Carclear() Gibt zurücknumber, number gelöscht und abgeschleppt
OpenGarage
Serverexports.cs_garage:OpenGarage(source, id) Von einem Handy, einem Menü, von überall.
CloseGarage
Serverexports.cs_garage:CloseGarage(source) GetPlayerGarage
Serverexports.cs_garage:GetPlayerGarage(source) CanPlayerUse
Serverexports.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
Serverexports.cs_garage:RegisterHook(name, fn) Gibt zurücknumber | nil eine ID für RemoveHook
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() endRemoveHook
Serverexports.cs_garage:RemoveHook(hookId) CountHooks
Serverexports.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
-- 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 })