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
PauseWorldSync(reason: string): voidexports['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
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
ResumeWorldSync(reason: string): voidexports['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
IsWorldSyncPaused(): booleanlocal paused = exports['ai-core']:IsWorldSyncPaused() -- booleanParamètres
Aucun.
Retour
boolean : true tant qu’au moins une raison est posée, false quand la synchro tourne.
Exemple
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;Raccourcis et aides de touches
Lire la touche avec laquelle un Keybind de la lib a été enregistré, afficher et masquer des aides de touches sur le HUD, lire les aides qu’affichent les HUD, et ouvrir l’écran des touches.
Objets
Ouvrir l’inventaire du joueur, vérifier un objet, lire l’arme en main et ouvrir le sélecteur d’objets d’administration, quel que soit l’inventaire du serveur.