API

Ein Fahrzeug ist ein Kennzeichen, Leerzeichen sind egal. api.lua liegt offen in der Resource.

Client

OpenApp

Client
exports.cs_garage_app:OpenApp()

Öffnet die App auf dem Handy dieses Spielers.

Gibt zurückboolean false, wenn lb-phone nicht will

GetAppIdentifier

Client
exports.cs_garage_app:GetAppIdentifier()

Die ID, unter der lb-phone die App führt, für die Exports von lb-phone.

Gibt zurückstring

Server

GetPlayerVehicles

Server
exports.cs_garage_app:GetPlayerVehicles(who)

who ist eine Server-ID oder der Identifier eines Charakters, der Spieler muss also nicht online sein. state ist, was die Zeile sagt: stored, out oder impound. spawned ist, ob das Fahrzeug wirklich auf dem Server steht.

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

GetVehiclePosition

Server
exports.cs_garage_app:GetVehiclePosition('AB 12345')

Dieselbe Suche wie der Orten-Knopf, ohne jemandem etwas zu berechnen.

Gibt zurück{ x, y, z }, entity nil, wenn das Kennzeichen nirgends ist

OpenApp

Server
exports.cs_garage_app:OpenApp(source)

Gibt zurückboolean false, wenn der Spieler nicht auf dem Server ist

Refresh

Server
exports.cs_garage_app:Refresh(source)

Sagt einem Handy, dass seine Liste veraltet ist. Ohne source gilt es für alle. Nur nötig für Änderungen, die diese Resource nicht sehen konnte.

GetGarageMode

Server
exports.cs_garage_app:GetGarageMode()

Gibt zurückstring 'cs_garage', 'database' oder 'custom'

Hooks

Nichts oder true erlaubt, false lehnt ab. Ein Satz dahinter wird dem Spieler genau so gezeigt. Halte sie kurz, sie laufen in der Anfrage, auf die der Spieler wartet.

RegisterHook

Server
exports.cs_garage_app:RegisterHook(name, fn)

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

Beispiel
local function bind()
    exports.cs_garage_app:RegisterHook('canOrder', function(src, plate, class)
        if isWanted(plate) then return false, 'That vehicle is held.' end
    end)
end

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

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

RemoveHook

Server
exports.cs_garage_app:RemoveHook(id)

CountHooks

Server
exports.cs_garage_app:CountHooks(name)

Gibt zurücknumber

canOpen

Server
function(source)

canOrder

Server
function(source, plate, class)

canTrack

Server
function(source, plate)

canRename

Server
function(source, plate, nickname)

Der Name ist schon auf die Länge gekürzt.

canFavorite

Server
function(source, plate, favorite)

canPark

Server
function(source, plate, garage)

garage ist der Name der Garage, in die es geht, oder nil.

Hooks liegen im Speicher. Ein Neustart von cs_garage_app verwirft alle, registriere also beim Start von cs_garage_app.

Events

AddEventHandler
-- client
cs_garage_app:delivered (plate, vehicle)

-- server
cs_garage_app:ordered   (source, { plate, class, model, price, mode })
cs_garage_app:delivered (source, { plate })
cs_garage_app:tracked   (source, { plate, class, model, position, price })
cs_garage_app:renamed   (source, { plate, nickname })
cs_garage_app:favorite  (source, { plate, favorite })
cs_garage_app:parked    (source, { plate, class, model, garage, price, mode })

Auf dem Client feuert delivered in dem Moment, in dem das Fahrzeug fertig gebaut ist, bevor der Fahrer losfährt. Das ist der Platz für Schlüssel. Auf dem Server feuert ordered, sobald das Geld bewegt ist, und parked, sobald die Zeile geparkt sagt.

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