AI Core
Referência da APIExports de cliente do ai-core

Sincronização de clima e hora

Pause a sincronização de clima e hora do servidor no jogo de um jogador enquanto seu script define a própria (um interior, uma cena), retome-a e leia se está pausada.

O script de clima (ai-weathersync, ou um de terceiros) mantém cada jogador no clima e no relógio do servidor. Quando seu script precisa do próprio clima ou hora na tela de um jogador (um interior escuro, um criador de personagem, uma cutscene), pause a sincronização antes, senão o script de clima sobrescreve seus valores um momento depois.

Pausar funciona com motivos, como o HUD: a sincronização fica pausada enquanto pelo menos um motivo estiver definido e volta a rodar quando o último é limpo. Os motivos pertencem ao recurso que os definiu e são removidos quando ele para. O ai-core avisa o script de clima pelo próprio evento de cliente ai-core:client:worldSync e pelos eventos de pausa comuns que os scripts de clima de terceiros escutam (qb-weathersync, cd_easytime, vSync, av_weather). No sentido inverso, quando um script envia um desses eventos ele mesmo, o ai-core também o conta como um motivo, então o retomar de um script nunca encerra a pausa de outro.

PauseWorldSync

Pausa a sincronização de clima e hora no jogo deste jogador sob um motivo do seu recurso.

Lado: Cliente · Espera: não

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

Parâmetros

Prop

Type

Retorno

Nada. Um reason que não é string é ignorado.

Exemplo

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

// Uma noite escura e limpa dentro de um interior próprio, de volta ao clima do servidor ao sair.
export function enterInterior(): void {
  world.pauseSync("interior"); // o mesmo que resourceExport("ai-core").PauseWorldSync("interior")
  NetworkOverrideClockTime(23, 0, 0);
  SetWeatherTypeNowPersist("CLEAR");
}

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

A pausa só para a sincronização. Definir o próprio clima e hora, e limpá-los quando terminar, é tarefa do seu script.

ResumeWorldSync

Limpa um motivo de pausa do seu recurso. A sincronização volta a rodar, e o script de clima recoloca o clima e o relógio do servidor, quando nenhum motivo sobra.

Lado: Cliente · Espera: não

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

Parâmetros

Prop

Type

Retorno

Nada.

Exemplo

Veja o exemplo de PauseWorldSync.

IsWorldSyncPaused

Diz se a sincronização está pausada agora por qualquer recurso ou evento de pausa de terceiros. Um script de clima que inicia depois a lê uma vez; em seguida segue o evento de cliente ai-core:client:worldSync.

Lado: Cliente · Espera: não

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

Parâmetros

Nenhum.

Retorno

boolean: true enquanto pelo menos um motivo estiver definido, false quando a sincronização roda.

Exemplo

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

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

// Um script de clima próprio: para de aplicar o clima do servidor enquanto pausado.
let paused = core.IsWorldSyncPaused();
on(CORE.clientWorldSyncEvent, (value: boolean) => {
  paused = value;
});

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

Nesta página