AI Core
Dokumentacja APILib: shared i fivem

Pojazdy

plateOf, normalizePlate, vehicleTypeOfClass, toVehicleProps i toVehicleSetup: tablice jako klucze, typy spawnu i wygląd pojazdu z niezaufanych danych.

TypeScript
import { plateOf } from "@aicore-fivem/lib/fivem"; // także w /client i /server
import { normalizePlate, vehicleTypeOfClass, toVehicleProps, toVehicleSetup } from "@aicore-fivem/lib/shared";

Tablice rejestracyjne

GTA dopełnia tablice spacjami do 8 znaków (" AI 1 "). Każdy skrypt, który trzyma dane według tablicy (klucze, paliwo, garaże), używa jako klucza tablicy przyciętej i zapisanej wielkimi literami, więc ten sam pojazd pasuje wszędzie.

plateOf

Tablica pojazdu w formie używanej przez klucze: odczytana z encji, przycięta, wielkimi literami.

Strona: Klient i serwer · Czeka: nie

Sygnatura
plateOf(vehicle: number): string

Lua: brak odpowiednika; użyj GetVehicleNumberPlateText(vehicle):match('^%s*(.-)%s*$'):upper().

Parametry

Prop

Type

Zwracana wartość

string: tablica, przycięta i wielkimi literami.

Przykład

resource/server/index.ts
import { plateOf, vehicleOf } from "@aicore-fivem/lib/server";

function plateOfPlayerVehicle(source: number): string | null {
  const vehicle = vehicleOf(source);
  return vehicle === 0 ? null : plateOf(vehicle);
}

normalizePlate

To samo przycięcie i wielkie litery dla tablicy, którą masz już jako tekst (wpisaną przez gracza, zapisaną w bazie danych, wysłaną przez inny skrypt).

Strona: Klient, serwer i NUI · Czeka: nie

Sygnatura
normalizePlate(plate: string): string

Lua: brak odpowiednika; użyj plate:match('^%s*(.-)%s*$'):upper().

Parametry

Prop

Type

Zwracana wartość

string: przycięta, wielkimi literami.

Przykład

import { normalizePlate } from "@aicore-fivem/lib/shared";

normalizePlate("  ai 123 "); // "AI 123"

Spawnowanie

vehicleTypeOfClass

Zamienia klasę pojazdu GTA (GetVehicleClassFromName) w typ potrzebny CreateVehicleServerSetter: "bike", "boat", "heli", "plane", "train" albo "automobile". spawnVehicle liba robi to za ciebie; używaj jej tylko wtedy, gdy sam wywołujesz CreateVehicleServerSetter.

Strona: Klient, serwer i NUI · Czeka: nie

Sygnatura
vehicleTypeOfClass(vehicleClass: number): string

Lua: brak odpowiednika.

Parametry

Prop

Type

Zwracana wartość

string: typ spawnu. Każda klasa niewymieniona wyżej to "automobile".

Przykład

resource/client/index.ts
import { vehicleTypeOfClass } from "@aicore-fivem/lib/shared";

const type = vehicleTypeOfClass(GetVehicleClassFromName("frogger")); // "heli"

GetVehicleClassFromName to natywka klienta. Serwer poznaje typ modelu od klienta (spawnVehicle liba pyta o to klienta ai-core za ciebie).

Wygląd z niezaufanych danych

toVehicleProps

Sprawdza zapisane albo otrzymane właściwości pojazdu i zwraca czysty obiekt VehicleProps albo null, gdy dane nie mają tego kształtu. Brakujące części opcjonalne dostają wartości domyślne (fabryczne modyfikacje, brak malowania, pełne zdrowie); nieznane pola są usuwane; tablica jest skracana do 8 znaków.

Strona: Klient, serwer i NUI · Czeka: nie

Sygnatura
toVehicleProps(value: unknown): VehicleProps | null

Lua: brak odpowiednika.

Parametry

Prop

Type

Zwracana wartość

VehicleProps albo null, gdy value nie jest obiektem, v nie wynosi 1, brakuje model albo plate lub gdy brakuje jednego z colors, extraColors, neonColor, tyreSmoke, mods, extras, neon albo ma on złą długość.

Przykład

resource/server/index.ts
import { optionalExport } from "@aicore-fivem/lib/server";
import { toVehicleProps } from "@aicore-fivem/lib/shared";

function storedColors(vehicleId: number): [number, number] | null {
  const vehicle = optionalExport("ai-vehicles")?.GetVehicle(vehicleId);
  const props = toVehicleProps(vehicle?.props);
  return props ? props.colors : null;
}

toVehicleSetup

Sprawdza otrzymany VehicleSetup pole po polu: złe pola są usuwane, poprawne zostają. Używaj jej na konfiguracji, która przychodzi od klienta albo innego zasobu, zanim przekażesz ją do spawnVehicle.

Strona: Klient, serwer i NUI · Czeka: nie

Sygnatura
toVehicleSetup(value: unknown): VehicleSetup | null

Lua: brak odpowiednika.

Parametry

Prop

Type

Zwracana wartość

VehicleSetup tylko z poprawnymi polami (kolory 0-255, livery 0-100, windowTint 0-6, dirt 0-15; maxed i engineOn tylko gdy są dokładnie true). null, gdy value nie jest obiektem.

Przykład

import { toVehicleSetup } from "@aicore-fivem/lib/shared";

toVehicleSetup({ colors: [27, 27], windowTint: 9, maxed: "yes" });
// { colors: [27, 27], windowTint: undefined, maxed: undefined, ... }: złe pola są usuwane

Klient nigdy nie może wybrać maxed: true ani darmowego koloru dla pojazdu, za który płaci: sprawdź na serwerze cenę tego, co zawiera konfiguracja.

Na tej stronie