Świat
Czas i pogoda przez dowolny skrypt pogody, który działa, routing buckety z alokatora ai-core, zamki drzwi i punkty spawnu zapisanych postaci.
import { world, buckets, doors, characters } from "@aicore-fivem/lib/server";world
Czas i pogoda przez ai-core, niezależnie od tego, jaki skrypt pogody działa (Renewed-Weathersync, av_weather, cd_easytime, qb-weathersync). Dopóki żaden nie działa, odczyty odpowiadają null, a zmiany false.
world.getWeather
Strona: Serwer · Czeka: nie
world.getWeather(): string | nulllocal weather = aiLib.world.getWeather()Zwraca bieżący typ pogody tak, jak podaje go skrypt pogody (CLEAR, RAIN...), albo null, dopóki żaden nie działa.
const raining = ["RAIN", "THUNDER"].includes(world.getWeather() ?? "");world.setWeather
Ustawia pogodę.
Strona: Serwer · Czeka: nie
world.setWeather(type: Weather): booleanlocal ok = aiLib.world.setWeather(weather)Prop
Type
Zwraca true, gdy ustawiono, false, dopóki nie działa żaden skrypt pogody albo wartość nie jest stringiem.
import { addCommand, world } from "@aicore-fivem/lib/server";
import { isWeather } from "@aicore-fivem/shared";
addCommand("weather", { restricted: true, params: [{ name: "type", type: "string" }] }, (_source, { type }) => {
const upper = type.toUpperCase();
if (isWeather(upper)) world.setWeather(upper);
});world.getTime
Strona: Serwer · Czeka: nie
world.getTime(): { hour: number; minute: number } | nulllocal time = aiLib.world.getTime() -- { hour, minute } albo nilZwraca czas w grze albo null, dopóki nie działa żaden skrypt pogody.
const time = world.getTime();
const night = time !== null && (time.hour >= 22 || time.hour < 6);world.setTime
Ustawia czas w grze.
Strona: Serwer · Czeka: nie
world.setTime(hour: number, minute?: number): booleanlocal ok = aiLib.world.setTime(hour, minute)Prop
Type
Zwraca true, gdy ustawiono, false, dopóki nie działa żaden skrypt pogody.
world.setTime(12, 30);world.setBlackout
Włącza albo wyłącza blackout w mieście.
Strona: Serwer · Czeka: nie
world.setBlackout(on: boolean): booleanlocal ok = aiLib.world.setBlackout(on)Zwraca true, gdy zastosowano, false, dopóki nie działa żaden skrypt pogody albo nie ma on blackoutu.
world.setBlackout(true); // elektrownia została sabotowanaworld.freezeTime
Zatrzymuje albo ponownie uruchamia zegar w grze.
Strona: Serwer · Czeka: nie
world.freezeTime(on: boolean): booleanlocal ok = aiLib.world.freezeTime(on)Zwraca true, gdy zastosowano, false, dopóki nie działa żaden skrypt pogody albo nie potrafi on zatrzymać czasu.
world.setTime(20, 0);
world.freezeTime(true);buckets
Routing buckety (osobne światy: wnętrze mieszkania, instancja) z alokatora ai-core, więc żadne dwa skrypty nigdy nie dzielą jednego. Nigdy nie wybieraj numerów bucketów sam (1000 + n). Brak odpowiednika w Lua: wywołaj eksporty ai-core AcquireBucket(tag) / ReleaseBucket(id).
buckets.acquire
Bierze wolny bucket dla tego zasobu. Nie ma populacji (żadnych pedów i aut w tle) i ma ścisłą blokadę encji.
Strona: Serwer · Czeka: nie
buckets.acquire(tag: string): numberProp
Type
Zwraca id bucketu.
import { buckets } from "@aicore-fivem/lib/server";
const bucket = buckets.acquire(`property:${propertyId}`);
SetPlayerRoutingBucket(String(source), bucket);buckets.release
Oddaje bucket, gdy jego gracze już z niego wyszli.
Strona: Serwer · Czeka: nie
buckets.release(id: number): booleanZwraca true, gdy zwolniono. Każdy bucket zatrzymanego zasobu wraca sam.
SetPlayerRoutingBucket(String(source), 0);
buckets.release(bucket);doors
Zamki drzwi przez warstwę zamków drzwi ai-core, według własnego id drzwi skryptu zamków. Brak odpowiednika w Lua: wywołaj eksporty ai-core SetDoorLocked, IsDoorLocked.
doors.setLocked
Zamyka albo otwiera drzwi.
Strona: Serwer · Czeka: nie
doors.setLocked(id: string, locked: boolean, by?: number): booleanProp
Type
Zwraca true, gdy skrypt drzwi to przyjął, w przeciwnym razie false.
if (outcome === "won") doors.setLocked("bank_vault", false, source);doors.isLocked
Strona: Serwer · Czeka: nie
doors.isLocked(id: string): boolean | nullZwraca true albo false lub null, gdy nie wiadomo (brak zamka drzwi, brak takich drzwi albo skrypt nie potrafi tego stwierdzić na serwerze).
if (doors.isLocked("bank_vault") === false) return fail("ALREADY_OPEN");doors.provider
Strona: Serwer · Czeka: nie
doors.provider(): string | nullZwraca skrypt zamków drzwi, który odpowiada, albo null, gdy żaden nie działa.
console.log(`doors through ${doors.provider() ?? "nothing"}`);characters
Zapisane postacie przez ai-core. Wczytane postacie przechodzą przez online i eksporty graczy ai-core.
characters.setOfflinePosition
Przenosi punkt spawnu zapisanej (niewczytanej) postaci, na przykład śpiącego ciała, które zostało przeniesione. ai-core zapisuje go, gdy żaden zapis przy wczytaniu ani wyładowaniu nie trzyma postaci.
Strona: Serwer · Czeka: nie
characters.setOfflinePosition(charId: number, position: { x: number; y: number; z: number; heading?: number }): booleanBrak odpowiednika w Lua: wywołaj eksport ai-core SetOfflinePosition(charId, position).
Prop
Type
Zwraca true, gdy przyjęto. false, gdy postać jest wczytana albo wartości są złe.
characters.setOfflinePosition(sleeperCharId, { x: 340.2, y: -1396.7, z: 32.5, heading: 50 });Prace i służby
Alerty policyjne, więzienie, rekordy MDT, medycy, wskrzeszanie i leczenie, stres, głód i pragnienie, definicje prac i gangów, prime time.
Telefon i wygląd
Telefon gracza przez ai-core (numery, maile, SMS-y, powiadomienia) i zapisany wygląd postaci przez dowolny skrypt ubrań, który działa.