AI Core
Vehículosai-vehiclekeys

ai-vehiclekeys para desarrolladores

Los exports de servidor de ai-vehiclekeys, la API de qbx_vehiclekeys a la que responde y sus eventos.

Para dar, quitar o comprobar llaves desde tu propio script, usa vehicleKeys.give(source, vehicle, purpose), vehicleKeys.remove y vehicleKeys.has de la lib (servidor). Pasan por la capa de llaves de ai-core y funcionan con el script de llaves que use el servidor. Los exports de abajo son los que llama esa capa mientras ai-vehiclekeys es el sistema de llaves activo.

Todos los exports están en el servidor, son síncronos y responden bajo ai-vehiclekeys y qbx_vehiclekeys. Un vehículo es un handle de entidad de servidor (número) o una matrícula (texto). Las matrículas se comparan normalizadas (no importan los espacios ni las mayúsculas).

TypeScript
import { resourceExport, callExport } from "@aicore-fivem/lib/server";
const keys = resourceExport("ai-vehiclekeys"); // tipados: HasKeys, GiveKeys, RemoveKeys
// SetLockState e IsPlayerNearVehicle no están tipados: callExport("ai-vehiclekeys", "SetLockState", vehicle, "lock")

Exports de servidor

HasKeys

Si un jugador tiene la llave de un vehículo: como dueño, como miembro del trabajo o banda propietarios, o mediante una llave dada en esta sesión.

Lado: Servidor · Espera: no

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

Parámetros

Prop

Type

Devuelve

true cuando el jugador tiene la llave. false en otro caso, también para una entidad que no existe.

Ejemplo

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;
  // ... abrir el maletero
});

GiveKeys

Da a un jugador una llave para esta sesión. El jugador la conserva hasta que sale del servidor o cambia de personaje. Dar una llave que el jugador ya tiene no hace nada.

Lado: Servidor · Espera: no

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

Parámetros

Prop

Type

Devuelve

Nada. Si el jugador está sentado en ese vehículo ahora mismo, se avisa a su cliente (ai-vehiclekeys:client:granted): termina el bloqueo del motor y el motor arranca.

RemoveKeys

Quita a un jugador una llave de sesión. Las llaves por propiedad (dueño, flota de trabajo o banda) no se pueden quitar: siguen al dueño del vehículo.

Lado: Servidor · Espera: no

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

Devuelve

Nada.

SetLockState

Cierra o abre un vehículo en el servidor, sin comprobar llaves.

Lado: Servidor · Espera: no

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

Parámetros

Prop

Type

Devuelve

Nada. Una entidad que no existe no hace nada.

IsPlayerNearVehicle

Si un jugador está a menos de 5 m de un vehículo.

Lado: Servidor · Espera: no

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

Devuelve

true a menos de 5 m. false si está más lejos, o cuando alguno de los argumentos no es un número.

Eventos

Los eventos propios de ai-vehiclekeys son internos (callbacks de cliente entre su cliente y su servidor). No los llames desde otros scripts.

NombreTipoQué hace
ai-vehiclekeys:checkcallback de cliente(netId) -> boolean: si el jugador tiene una llave, se pregunta cuando ocupa un asiento.
ai-vehiclekeys:toggleLockcallback de cliente(netId) -> { ok, locked? }: la tecla de cierre.
ai-vehiclekeys:giveNearestcallback de cliente(netId) -> { ok }: dar las llaves al jugador más cercano.
ai-vehiclekeys:client:grantedservidor a cliente(netId): llegó una llave estando sentado en ese vehículo; el motor puede arrancar.

Objeto usable

lockpick se registra como objeto usable a través de la capa de inventario de ai-core. El objeto solo se gasta cuando se rompe.

En esta página