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
PauseWorldSync(reason: string): voidexports['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
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
ResumeWorldSync(reason: string): voidexports['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
IsWorldSyncPaused(): booleanlocal paused = exports['ai-core']:IsWorldSyncPaused() -- booleanParámetros
Ninguno.
Devuelve
boolean: true mientras haya al menos un motivo puesto, false cuando la sincronización corre.
Ejemplo
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;Keybinds y ayudas de teclas
Lee la tecla con la que se registró un Keybind de la lib, muestra y oculta ayudas de teclas en el HUD, lee las ayudas que muestran los HUD y abre la pantalla de teclas.
Objetos
Abre el inventario del jugador, comprueba un objeto, lee el arma en la mano y abre el selector de objetos de admin, sea cual sea el inventario del servidor.