AI Core
Pojazdyai-vehiclekeys

ai-vehiclekeys dla deweloperów

Eksporty serwera ai-vehiclekeys, API qbx_vehiclekeys, na które odpowiada, i jego zdarzenia.

Aby dawać, zabierać lub sprawdzać klucze z własnego skryptu, używaj vehicleKeys.give(source, vehicle, purpose), vehicleKeys.remove i vehicleKeys.has z biblioteki (serwer). Przechodzą przez warstwę kluczy ai-core i działają z każdym skryptem kluczy, którego używa serwer. Poniższe eksporty to to, co wywołuje ta warstwa, gdy ai-vehiclekeys jest aktywnym systemem kluczy.

Wszystkie eksporty są na serwerze, synchroniczne i odpowiadają zarówno pod ai-vehiclekeys, jak i qbx_vehiclekeys. Pojazd to uchwyt encji po stronie serwera (liczba) albo tablica (tekst). Tablice są porównywane po normalizacji (spacje i wielkość liter nie mają znaczenia).

TypeScript
import { resourceExport, callExport } from "@aicore-fivem/lib/server";
const keys = resourceExport("ai-vehiclekeys"); // typowane: HasKeys, GiveKeys, RemoveKeys
// SetLockState i IsPlayerNearVehicle nie są typowane: callExport("ai-vehiclekeys", "SetLockState", vehicle, "lock")

Eksporty serwera

HasKeys

Czy gracz ma klucz do pojazdu: jako jego właściciel, jako członek pracy lub gangu, do których należy pojazd, albo przez klucz dany w tej sesji.

Strona: serwer · Czeka: nie

Sygnatura
HasKeys(source: number, vehicle: number | string): boolean
Lua
local has = exports['ai-vehiclekeys']:HasKeys(source, vehicle)

Parametry

Prop

Type

Zwraca

true, gdy gracz ma klucz. W przeciwnym razie false, także dla encji, która nie istnieje.

Przykład

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;
  // ... otwórz bagażnik
});

GiveKeys

Daje graczowi klucz na tę sesję. Gracz ma go, dopóki nie wyjdzie z serwera lub nie zmieni postaci. Danie klucza, który gracz już ma, nic nie robi.

Strona: serwer · Czeka: nie

Sygnatura
GiveKeys(source: number, vehicle: number | string): void
Lua
exports['ai-vehiclekeys']:GiveKeys(source, vehicle)

Parametry

Prop

Type

Zwraca

Nic. Jeśli gracz siedzi teraz w tym pojeździe, jego klient jest informowany (ai-vehiclekeys:client:granted): blokada silnika się kończy i silnik startuje.

RemoveKeys

Zabiera graczowi klucz sesyjny. Kluczy własności (właściciel, flota pracy lub gangu) nie można usunąć: podążają za właścicielem pojazdu.

Strona: serwer · Czeka: nie

Sygnatura
RemoveKeys(source: number, vehicle: number | string): void
Lua
exports['ai-vehiclekeys']:RemoveKeys(source, vehicle)

Zwraca

Nic.

SetLockState

Zamyka lub otwiera pojazd na serwerze, bez żadnego sprawdzania klucza.

Strona: serwer · Czeka: nie

Sygnatura
SetLockState(vehicle: number, state: "lock" | "unlock" | boolean | number): void
Lua
exports['ai-vehiclekeys']:SetLockState(vehicle, 'lock')

Parametry

Prop

Type

Zwraca

Nic. Encja, która nie istnieje, nic nie robi.

IsPlayerNearVehicle

Czy gracz stoi w odległości do 5 m od pojazdu.

Strona: serwer · Czeka: nie

Sygnatura
IsPlayerNearVehicle(source: number, vehicle: number): boolean
Lua
local near = exports['ai-vehiclekeys']:IsPlayerNearVehicle(source, vehicle)

Zwraca

true w odległości do 5 m. false, gdy dalej albo gdy któryś argument nie jest liczbą.

Zdarzenia

Własne zdarzenia ai-vehiclekeys są wewnętrzne (callbacki klienta między jego klientem a serwerem). Nie wywołuj ich z innych skryptów.

NazwaRodzajCo robi
ai-vehiclekeys:checkcallback klienta(netId) -> boolean: czy gracz ma klucz, pytane, gdy zajmuje miejsce.
ai-vehiclekeys:toggleLockcallback klienta(netId) -> { ok, locked? }: klawisz zamka.
ai-vehiclekeys:giveNearestcallback klienta(netId) -> { ok }: przekaż klucze najbliższemu graczowi.
ai-vehiclekeys:client:grantedserwer do klienta(netId): klucz dotarł podczas siedzenia w tym pojeździe; silnik może wystartować.

Przedmiot do użycia

lockpick jest rejestrowany jako przedmiot do użycia przez warstwę ekwipunku ai-core. Przedmiot jest zużywany tylko wtedy, gdy się złamie.

Na tej stronie