ai-vehiclekeys für Entwickler
Server-Exports von ai-vehiclekeys, die API von qbx_vehiclekeys, die es beantwortet, und seine Events.
Um aus deinem eigenen Skript Schlüssel zu geben, zu nehmen oder zu prüfen, nutze vehicleKeys.give(source, vehicle, purpose), vehicleKeys.remove und vehicleKeys.has (Server) der Lib. Sie laufen über den Schlüssel-Layer von ai-core und funktionieren mit dem Schlüsselskript, das der Server gerade nutzt. Die Exports unten sind das, was dieser Layer aufruft, solange ai-vehiclekeys das aktive Schlüsselsystem ist.
Alle Exports laufen auf dem Server, sind synchron und antworten sowohl unter ai-vehiclekeys als auch unter qbx_vehiclekeys. Ein Fahrzeug ist ein serverseitiges Entity-Handle (Zahl) oder ein Kennzeichen (Text). Kennzeichen werden normalisiert verglichen (Leerzeichen und Groß-/Kleinschreibung spielen keine Rolle).
import { resourceExport, callExport } from "@aicore-fivem/lib/server";
const keys = resourceExport("ai-vehiclekeys"); // typisiert: HasKeys, GiveKeys, RemoveKeys
// SetLockState und IsPlayerNearVehicle sind nicht typisiert: callExport("ai-vehiclekeys", "SetLockState", vehicle, "lock")Server-Exports
HasKeys
Ob ein Spieler den Schlüssel zu einem Fahrzeug hat: als Besitzer, als Mitglied des besitzenden Jobs oder der besitzenden Gang oder durch einen in dieser Sitzung vergebenen Schlüssel.
Seite: Server · Wartet: nein
HasKeys(source: number, vehicle: number | string): booleanlocal has = exports['ai-vehiclekeys']:HasKeys(source, vehicle)Parameter
Prop
Type
Rückgabewert
true, wenn der Spieler den Schlüssel hat. Sonst false, auch bei einer Entity, die nicht existiert.
Beispiel
import { resourceExport } from "@aicore-fivem/lib/server";
const keys = resourceExport("ai-vehiclekeys");
onNet("myscript:openTrunk", (netId: number) => {
const source = globalThis.source;
const vehicle = NetworkGetEntityFromNetworkId(netId);
if (!keys.HasKeys(source, vehicle)) return;
// ... den Kofferraum öffnen
});GiveKeys
Gibt einem Spieler einen Schlüssel für diese Sitzung. Der Spieler behält ihn, bis er den Server verlässt oder den Charakter wechselt. Einen Schlüssel zu geben, den der Spieler schon hat, tut nichts.
Seite: Server · Wartet: nein
GiveKeys(source: number, vehicle: number | string): voidexports['ai-vehiclekeys']:GiveKeys(source, vehicle)Parameter
Prop
Type
Rückgabewert
Nichts. Sitzt der Spieler gerade in diesem Fahrzeug, wird sein Client informiert (ai-vehiclekeys:client:granted): Die Motorsperre endet und der Motor startet.
RemoveKeys
Nimmt einem Spieler einen Sitzungsschlüssel. Besitzschlüssel (Besitzer, Job- oder Gang-Fuhrpark) können nicht entfernt werden: Sie folgen dem Besitzer des Fahrzeugs.
Seite: Server · Wartet: nein
RemoveKeys(source: number, vehicle: number | string): voidexports['ai-vehiclekeys']:RemoveKeys(source, vehicle)Rückgabewert
Nichts.
SetLockState
Schließt ein Fahrzeug auf dem Server ab oder auf, ohne jede Schlüsselprüfung.
Seite: Server · Wartet: nein
SetLockState(vehicle: number, state: "lock" | "unlock" | boolean | number): voidexports['ai-vehiclekeys']:SetLockState(vehicle, 'lock')Parameter
Prop
Type
Rückgabewert
Nichts. Eine Entity, die nicht existiert, tut nichts.
IsPlayerNearVehicle
Ob ein Spieler innerhalb von 5 m von einem Fahrzeug steht.
Seite: Server · Wartet: nein
IsPlayerNearVehicle(source: number, vehicle: number): booleanlocal near = exports['ai-vehiclekeys']:IsPlayerNearVehicle(source, vehicle)Rückgabewert
true innerhalb von 5 m. false, wenn weiter entfernt oder wenn eines der Argumente keine Zahl ist.
Events
Die eigenen Events von ai-vehiclekeys sind intern (Client-Callbacks zwischen seinem Client und Server). Rufe sie nicht aus anderen Skripten auf.
| Name | Art | Was es macht |
|---|---|---|
ai-vehiclekeys:check | Client-Callback | (netId) -> boolean: ob der Spieler einen Schlüssel hat, abgefragt, wenn er Platz nimmt. |
ai-vehiclekeys:toggleLock | Client-Callback | (netId) -> { ok, locked? }: die Schließtaste. |
ai-vehiclekeys:giveNearest | Client-Callback | (netId) -> { ok }: die Schlüssel an den nächsten Spieler übergeben. |
ai-vehiclekeys:client:granted | Server an Client | (netId): Ein Schlüssel ist angekommen, während man in diesem Fahrzeug sitzt; der Motor darf starten. |
Benutzbares Item
lockpick wird über den Inventar-Layer von ai-core als benutzbares Item registriert. Das Item wird nur verbraucht, wenn es zerbricht.