AI Core
Référence de l’APIExports client d’ai-core

Synchro de la météo et de l’heure

Mettre en pause la synchro de la météo et de l’heure du serveur dans le jeu d’un joueur pendant que votre script fixe les siennes (un intérieur, une scène), la reprendre, et savoir si elle est en pause.

Le script météo (ai-weathersync, ou un script tiers) garde chaque joueur sur la météo et l’horloge du serveur. Quand votre script a besoin de sa propre météo ou de sa propre heure sur l’écran d’un joueur (un intérieur sombre, un créateur de personnage, une cinématique), mettez d’abord la synchro en pause, sinon le script météo écrase vos valeurs un instant plus tard.

La pause fonctionne avec des raisons, comme le HUD : la synchro reste en pause tant qu’au moins une raison est posée et reprend quand la dernière est effacée. Les raisons appartiennent à la ressource qui les a posées et sont retirées quand elle s’arrête. ai-core prévient le script météo par son propre événement client ai-core:client:worldSync et par les événements de pause courants qu’écoutent les scripts météo tiers (qb-weathersync, cd_easytime, vSync, av_weather). Dans l’autre sens, quand un script envoie lui-même l’un de ces événements, ai-core le compte aussi comme une raison, si bien que la reprise d’un script ne met jamais fin à la pause d’un autre.

PauseWorldSync

Met en pause la synchro de la météo et de l’heure dans le jeu de ce joueur, sous une raison de votre ressource.

Côté : Client · Attend : non

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

Paramètres

Prop

Type

Retour

Rien. Une reason qui n’est pas une chaîne est ignorée.

Exemple

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

// Une nuit sombre et claire dans un intérieur personnalisé, retour à la météo du serveur en sortant.
export function enterInterior(): void {
  world.pauseSync("interior"); // identique à resourceExport("ai-core").PauseWorldSync("interior")
  NetworkOverrideClockTime(23, 0, 0);
  SetWeatherTypeNowPersist("CLEAR");
}

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

La pause ne fait qu’arrêter la synchro. Fixer votre propre météo et votre propre heure, puis les effacer quand vous avez terminé, est le travail de votre script.

ResumeWorldSync

Efface une raison de pause de votre ressource. La synchro reprend, et le script météo remet la météo et l’horloge du serveur, quand il ne reste plus aucune raison.

Côté : Client · Attend : non

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

Paramètres

Prop

Type

Retour

Rien.

Exemple

Voir l’exemple de PauseWorldSync.

IsWorldSyncPaused

Indique si la synchro est en pause en ce moment, par une ressource ou un événement de pause tiers. Un script météo qui démarre plus tard la lit une fois ; ensuite il suit l’événement client ai-core:client:worldSync.

Côté : Client · Attend : non

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

Paramètres

Aucun.

Retour

boolean : true tant qu’au moins une raison est posée, false quand la synchro tourne.

Exemple

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

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

// Votre propre script météo : cesser d’appliquer la météo du serveur pendant la pause.
let paused = core.IsWorldSyncPaused();
on(CORE.clientWorldSyncEvent, (value: boolean) => {
  paused = value;
});

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

Sur cette page