Wetter- und Zeitsynchronisierung
Die Wetter- und Zeitsynchronisierung des Servers im Spiel eines Spielers anhalten, während dein Skript eigene Werte setzt (ein Interior, eine Szene), sie fortsetzen und lesen, ob sie angehalten ist.
Das Wetter-Skript (ai-weathersync oder eines eines Drittanbieters) hält jeden Spieler auf dem Wetter und der Uhr des Servers. Wenn dein Skript auf dem Bildschirm eines Spielers eigenes Wetter oder eine eigene Zeit braucht (ein dunkles Interior, ein Charakter-Editor, eine Zwischensequenz), halte zuerst die Synchronisierung an, sonst überschreibt das Wetter-Skript deine Werte einen Moment später.
Das Anhalten arbeitet mit Gründen, wie beim HUD: Die Synchronisierung bleibt angehalten, solange mindestens ein Grund gesetzt ist, und läuft wieder, wenn der letzte gelöscht ist. Gründe gehören der Ressource, die sie gesetzt hat, und werden entfernt, wenn sie stoppt. ai-core informiert das Wetter-Skript über sein eigenes Client-Event ai-core:client:worldSync und über die üblichen Pause-Events, auf die Wetter-Skripte von Drittanbietern hören (qb-weathersync, cd_easytime, vSync, av_weather). Umgekehrt zählt ai-core es ebenfalls als Grund, wenn ein Skript selbst eines dieser Events sendet, sodass das Fortsetzen eines Skripts nie die Pause eines anderen beendet.
PauseWorldSync
Hält die Wetter- und Zeitsynchronisierung im Spiel dieses Spielers unter einem Grund deiner Ressource an.
Seite: Client · Wartet: nein
PauseWorldSync(reason: string): voidexports['ai-core']:PauseWorldSync(reason) -- oder aiLib.world.pauseSync(reason)Parameter
Prop
Type
Rückgabe
Nichts. Ein reason, der kein String ist, wird ignoriert.
Beispiel
import { world } from "@aicore-fivem/lib/client";
// Eine dunkle, klare Nacht in einem eigenen Interior, beim Verlassen zurück zum Wetter des Servers.
export function enterInterior(): void {
world.pauseSync("interior"); // dasselbe wie resourceExport("ai-core").PauseWorldSync("interior")
NetworkOverrideClockTime(23, 0, 0);
SetWeatherTypeNowPersist("CLEAR");
}
export function leaveInterior(): void {
NetworkClearClockTimeOverride();
world.resumeSync("interior");
}Die Pause stoppt nur die Synchronisierung. Dein eigenes Wetter und deine eigene Zeit zu setzen und sie wieder zu löschen, wenn du fertig bist, ist Aufgabe deines Skripts.
ResumeWorldSync
Löscht einen Pause-Grund deiner Ressource. Die Synchronisierung läuft wieder, und das Wetter-Skript stellt Wetter und Uhr des Servers wieder her, wenn kein Grund mehr übrig ist.
Seite: Client · Wartet: nein
ResumeWorldSync(reason: string): voidexports['ai-core']:ResumeWorldSync(reason) -- oder aiLib.world.resumeSync(reason)Parameter
Prop
Type
Rückgabe
Nichts.
Beispiel
Siehe das Beispiel zu PauseWorldSync.
IsWorldSyncPaused
Sagt, ob die Synchronisierung gerade von irgendeiner Ressource oder einem Pause-Event eines Drittanbieters angehalten ist. Ein Wetter-Skript, das später startet, liest es einmal; danach folgt es dem Client-Event ai-core:client:worldSync.
Seite: Client · Wartet: nein
IsWorldSyncPaused(): booleanlocal paused = exports['ai-core']:IsWorldSyncPaused() -- booleanParameter
Keine.
Rückgabe
boolean: true, solange mindestens ein Grund gesetzt ist, false, wenn die Synchronisierung läuft.
Beispiel
import { resourceExport } from "@aicore-fivem/lib/client";
import { CORE } from "@aicore-fivem/shared";
const core = resourceExport("ai-core");
// Ein eigenes Wetter-Skript: das Wetter des Servers nicht anwenden, solange angehalten.
let paused = core.IsWorldSyncPaused();
on(CORE.clientWorldSyncEvent, (value: boolean) => {
paused = value;
});
export const shouldApplyWeather = (): boolean => !paused;Tastenbelegungen und Tastenhinweise
Die Taste lesen, mit der ein Keybind der Lib registriert wurde, Tastenhinweise im HUD ein- und ausblenden, die Hinweise lesen, die HUDs zeigen, und den Tastenbildschirm öffnen.
Items
Das Inventar des Spielers öffnen, ein Item prüfen, die Waffe in der Hand lesen und die Item-Auswahl für Admins öffnen, egal welches Inventar der Server nutzt.