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
PauseWorldSync(reason: string): voidexports['ai-core']:PauseWorldSync(reason) -- ou aiLib.world.pauseSync(reason)Parâmetros
Prop
Type
Retorno
Nada. Um reason que não é string é ignorado.
Exemplo
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
ResumeWorldSync(reason: string): voidexports['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
IsWorldSyncPaused(): booleanlocal paused = exports['ai-core']:IsWorldSyncPaused() -- booleanParâmetros
Nenhum.
Retorno
boolean: true enquanto pelo menos um motivo estiver definido, false quando a sincronização roda.
Exemplo
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;Keybinds e dicas de teclas
Leia a tecla com que um Keybind da lib foi registrado, mostre e esconda dicas de teclas no HUD, leia as dicas que os HUDs mostram e abra a tela de teclas.
Itens
Abra o inventário do jogador, verifique um item, leia a arma na mão e abra o seletor de itens do admin, seja qual for o inventário do servidor.