Czas i pogoda
Odczytuj i ustawiaj pogodę i czas gry, blackout i zamrożony czas przez skrypt pogody, którego używa serwer.
Czas i pogoda przechodzą przez ai-core, nigdy przez własne eksporty lub zdarzenia skryptu pogody. ai-core przekazuje każde wywołanie do pierwszego działającego skryptu pogody: Renewed-Weathersync, av_weather, cd_easytime, potem qb-weathersync (ai-weathersync odpowiada pod tą nazwą). Wszystkie trzymają się kontraktu qb-weathersync. Dopóki żaden nie działa, każde wywołanie odpowiada null lub false.
Aby wstrzymać synchronizację w grze jednego gracza (wnętrze z własnym światłem, przerywnik), użyj strony klienckiej (PauseWorldSync, world.pauseSync liba); zobacz Eksporty klienckie.
GetWeather
Bieżący typ pogody.
Strona: Serwer · Czeka: nie · Lib: world.getWeather
GetWeather(): string | nulllocal weather = exports['ai-core']:GetWeather() -- 'EXTRASUNNY', 'RAIN'... lub nilParametry
Brak.
Zwraca
string | null: typ pogody wielkimi literami (EXTRASUNNY, CLEAR, RAIN, THUNDER...). null, gdy nie działa żaden skrypt pogody.
Przykład
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
Ustawia pogodę dla wszystkich.
Strona: Serwer · Czeka: nie · Lib: world.setWeather (przyjmuje typowane nazwy Weather)
SetWeather(type: string): booleanlocal ok = exports['ai-core']:SetWeather('RAIN')Parametry
Prop
Type
Zwraca
boolean: true, gdy skrypt pogody go przyjął. false, gdy type nie jest tekstem, skrypt go odrzucił (nieznany typ) albo nie działa żaden skrypt pogody.
Przykład
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
Czas gry (zegar w grze).
Strona: Serwer · Czeka: nie · Lib: world.getTime
GetTime(): { hour: number; minute: number } | nulllocal time = exports['ai-core']:GetTime() -- { hour, minute } lub nilParametry
Brak.
Zwraca
{ hour, minute } | null: godzina 0-23 i minuta 0-59. null, gdy nie działa żaden skrypt pogody.
Przykład
import { onClientCallback, resourceExport } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";
const core = resourceExport("ai-core");
// Diler sprzedaje tylko w nocy (22:00 - 05:59 czasu gry).
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
Ustawia czas gry dla wszystkich.
Strona: Serwer · Czeka: nie · Lib: world.setTime
SetTime(hour: number, minute?: number): booleanlocal ok = exports['ai-core']:SetTime(12, 0)Parametry
Prop
Type
Zwraca
boolean: true, gdy skrypt pogody go przyjął. false, gdy hour nie jest liczbą, skrypt odmówił albo nie działa żaden skrypt pogody.
Przykład
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
Włącza lub wyłącza blackout miasta (wszystkie sztuczne światła wyłączone).
Strona: Serwer · Czeka: nie · Lib: world.setBlackout
SetBlackout(on: boolean): booleanlocal ok = exports['ai-core']:SetBlackout(true)Parametry
Prop
Type
Zwraca
boolean: true, gdy skrypt pogody go przyjął. false, gdy skrypt nie ma blackoutu, odmówił albo nie działa żaden skrypt pogody.
Przykład
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
Zatrzymuje lub ponownie uruchamia zegar gry.
Strona: Serwer · Czeka: nie · Lib: world.freezeTime
FreezeTime(on: boolean): booleanlocal ok = exports['ai-core']:FreezeTime(true)Parametry
Prop
Type
Zwraca
boolean: true, gdy skrypt pogody go przyjął. false, gdy skrypt nie umie zamrozić czasu, odmówił albo nie działa żaden skrypt pogody.
Przykład
import { addCommand, resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
// Wieczór eventowy: zawsze 21:00.
addCommand("eventnight", { help: "Freezes the clock at 21:00", restricted: true }, () => {
core.SetTime(21, 0);
core.FreezeTime(true);
});