AI Core
Referencia de la APIExports de cliente de ai-core

Sincronización de clima y hora

Pausa la sincronización de clima y hora del servidor en el juego de un jugador mientras tu script pone los suyos (un interior, una escena), reanúdala y lee si está en pausa.

El script de clima (ai-weathersync, o uno de terceros) mantiene a cada jugador con el clima y el reloj del servidor. Cuando tu script necesita su propio clima u hora en la pantalla de un jugador (un interior oscuro, un creador de personajes, una cinemática), pausa primero la sincronización; si no, el script de clima sobrescribe tus valores un momento después.

La pausa funciona con motivos, como el HUD: la sincronización sigue en pausa mientras haya al menos un motivo puesto y vuelve a correr cuando se quita el último. Los motivos pertenecen al recurso que los puso y se quitan cuando se detiene. ai-core avisa al script de clima con su propio evento de cliente ai-core:client:worldSync y con los eventos de pausa comunes que escuchan los scripts de clima de terceros (qb-weathersync, cd_easytime, vSync, av_weather). En sentido contrario, cuando un script envía él mismo uno de esos eventos, ai-core también lo cuenta como un motivo, así que la reanudación de un script nunca termina la pausa de otro.

PauseWorldSync

Pausa la sincronización de clima y hora en el juego de este jugador bajo un motivo de tu recurso.

Lado: Cliente · Espera: no

Firma
PauseWorldSync(reason: string): void
Lua
exports['ai-core']:PauseWorldSync(reason) -- o aiLib.world.pauseSync(reason)

Parámetros

Prop

Type

Devuelve

Nada. Un reason que no es una cadena se ignora.

Ejemplo

resource/client/interior.ts
import { world } from "@aicore-fivem/lib/client";

// Una noche oscura y despejada dentro de un interior propio, y de vuelta al clima del servidor al salir.
export function enterInterior(): void {
  world.pauseSync("interior"); // igual que resourceExport("ai-core").PauseWorldSync("interior")
  NetworkOverrideClockTime(23, 0, 0);
  SetWeatherTypeNowPersist("CLEAR");
}

export function leaveInterior(): void {
  NetworkClearClockTimeOverride();
  world.resumeSync("interior");
}

La pausa solo detiene la sincronización. Poner tu propio clima y hora, y quitarlos cuando termines, es trabajo de tu script.

ResumeWorldSync

Quita un motivo de pausa de tu recurso. Cuando no queda ningún motivo, la sincronización vuelve a correr y el script de clima restablece el clima y el reloj del servidor.

Lado: Cliente · Espera: no

Firma
ResumeWorldSync(reason: string): void
Lua
exports['ai-core']:ResumeWorldSync(reason) -- o aiLib.world.resumeSync(reason)

Parámetros

Prop

Type

Devuelve

Nada.

Ejemplo

Consulta el ejemplo de PauseWorldSync.

IsWorldSyncPaused

Indica si la sincronización está en pausa ahora mismo por algún recurso o evento de pausa de terceros. Un script de clima que se inicia más tarde lo lee una vez; después sigue el evento de cliente ai-core:client:worldSync.

Lado: Cliente · Espera: no

Firma
IsWorldSyncPaused(): boolean
Lua
local paused = exports['ai-core']:IsWorldSyncPaused() -- boolean

Parámetros

Ninguno.

Devuelve

boolean: true mientras haya al menos un motivo puesto, false cuando la sincronización corre.

Ejemplo

resource/client/weather.ts
import { resourceExport } from "@aicore-fivem/lib/client";
import { CORE } from "@aicore-fivem/shared";

const core = resourceExport("ai-core");

// Un script de clima propio: deja de aplicar el clima del servidor mientras está en pausa.
let paused = core.IsWorldSyncPaused();
on(CORE.clientWorldSyncEvent, (value: boolean) => {
  paused = value;
});

export const shouldApplyWeather = (): boolean => !paused;

En esta página