Heure et météo
Lire et fixer la météo et l’heure du jeu, la coupure de courant et l’heure figée, via le script météo qu’utilise le serveur.
L’heure et la météo passent par ai-core, jamais par les exports ou événements propres à un script météo. ai-core transmet chaque appel au premier script météo qui tourne : Renewed-Weathersync, av_weather, cd_easytime, puis qb-weathersync (ai-weathersync répond sous ce nom). Ils suivent tous le contrat de qb-weathersync. Tant qu’aucun ne tourne, chaque appel répond null ou false.
Pour mettre la synchro en pause dans le jeu d’un joueur (un intérieur avec son propre éclairage, une cinématique), utilisez le côté client (PauseWorldSync, world.pauseSync de la lib) ; voir Exports client.
GetWeather
Le type de météo actuel.
Côté : Serveur · Attend : non · Lib : world.getWeather
GetWeather(): string | nulllocal weather = exports['ai-core']:GetWeather() -- 'EXTRASUNNY', 'RAIN'... ou nilParamètres
Aucun.
Retour
string | null : le type de météo en majuscules (EXTRASUNNY, CLEAR, RAIN, THUNDER...). null quand aucun script météo ne tourne.
Exemple
import { resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
/** Street races pay more in the rain. */
export function raceBonus(): number {
const weather = core.GetWeather();
return weather === "RAIN" || weather === "THUNDER" ? 1.25 : 1;
}SetWeather
Fixe la météo pour tout le monde.
Côté : Serveur · Attend : non · Lib : world.setWeather (prend les noms typés Weather)
SetWeather(type: string): booleanlocal ok = exports['ai-core']:SetWeather('RAIN')Paramètres
Prop
Type
Retour
boolean : true quand le script météo l’a accepté. false quand type n’est pas un texte, que le script l’a refusé (un type inconnu) ou qu’aucun script météo ne tourne.
Exemple
import { addCommand, resourceExport } from "@aicore-fivem/lib/server";
import { isWeather } from "@aicore-fivem/shared";
const core = resourceExport("ai-core");
addCommand("weather", { help: "Sets the weather", params: [{ name: "type", type: "string" }], restricted: true }, (_source, args) => {
const type = args.type.toUpperCase();
if (!isWeather(type)) return console.log("unknown weather type");
core.SetWeather(type);
});GetTime
L’heure du jeu (l’horloge en jeu).
Côté : Serveur · Attend : non · Lib : world.getTime
GetTime(): { hour: number; minute: number } | nulllocal time = exports['ai-core']:GetTime() -- { hour, minute } ou nilParamètres
Aucun.
Retour
{ hour, minute } | null : heure 0-23 et minute 0-59. null quand aucun script météo ne tourne.
Exemple
import { onClientCallback, resourceExport } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";
const core = resourceExport("ai-core");
// Le dealer ne vend que la nuit (22:00 - 05:59 heure du jeu).
onClientCallback("myscript:dealer", (source) => {
const time = core.GetTime();
const night = time !== null && (time.hour >= 22 || time.hour < 6);
return night ? { ok: true } : fail("COME_BACK_AT_NIGHT");
});SetTime
Fixe l’heure du jeu pour tout le monde.
Côté : Serveur · Attend : non · Lib : world.setTime
SetTime(hour: number, minute?: number): booleanlocal ok = exports['ai-core']:SetTime(12, 0)Paramètres
Prop
Type
Retour
boolean : true quand le script météo l’a acceptée. false quand hour n’est pas un nombre, que le script a refusé ou qu’aucun script météo ne tourne.
Exemple
import { addCommand, resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
addCommand("noon", { help: "Sets the time to 12:00", restricted: true }, () => {
core.SetTime(12, 0);
});SetBlackout
Active ou désactive la coupure de courant de la ville (toutes les lumières artificielles éteintes).
Côté : Serveur · Attend : non · Lib : world.setBlackout
SetBlackout(on: boolean): booleanlocal ok = exports['ai-core']:SetBlackout(true)Paramètres
Prop
Type
Retour
boolean : true quand le script météo l’a acceptée. false quand le script n’a pas de coupure de courant, a refusé, ou qu’aucun script météo ne tourne.
Exemple
import { resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
/** The power plant was sabotaged: 5 minutes of darkness. */
export function sabotagePowerPlant(): void {
if (!core.SetBlackout(true)) return;
setTimeout(() => core.SetBlackout(false), 5 * 60_000);
}FreezeTime
Arrête ou relance l’horloge du jeu.
Côté : Serveur · Attend : non · Lib : world.freezeTime
FreezeTime(on: boolean): booleanlocal ok = exports['ai-core']:FreezeTime(true)Paramètres
Prop
Type
Retour
boolean : true quand le script météo l’a accepté. false quand le script ne sait pas figer l’heure, a refusé, ou qu’aucun script météo ne tourne.
Exemple
import { addCommand, resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
// Une soirée événement : toujours 21:00.
addCommand("eventnight", { help: "Freezes the clock at 21:00", restricted: true }, () => {
core.SetTime(21, 0);
core.FreezeTime(true);
});