Geliştiriciler için ai-cityhall
ai-cityhall’un yazdığı belge eşyası metadata’sı (kimlik kartı, ehliyet), başka bir script’ten belge vermek ve özel event’leri.
ai-cityhall’un hiç export’u yoktur. İş merkezinde alınan meslekler ai-core’un meslek fonksiyonlarıyla ayarlanır, belgeler de sıradan envanter eşyalarıdır; bu yüzden başka bir script onlarla AI Core üzerinden çalışır.
Belge eşyası metadata’sı
Bir belge (id_card, driver_license ya da Documents altında listelenen herhangi bir eşya), metadata’sı sahibini taşıyan tek bir benzersiz eşyadır. Alanlar qbx_idcard’ınkilerdir, bu yüzden Qbox için yazılmış script’ler onları olduğu gibi okur.
Prop
Type
Başka bir script’ten belge vermek
Eşyayı kim vermiş olursa olsun, kullanmak kartı gösterir: ai-cityhall her belge eşyasını kullanılabilir olarak kaydeder. Eşyayı aynı metadata ile ver, gişeden satın alınmış gibi davranır.
Taraf: Server · Bekler: hayır
Örnek
Bir polis script’i bir sınavdan sonra yeni bir ehliyet verir:
import { inventory, notify, online } from "@aicore-fivem/lib/server";
function giveLicense(source: number): boolean {
const c = online.character(source);
if (!c) return false;
const metadata = {
name: `${c.firstname} ${c.lastname}`,
firstname: c.firstname,
lastname: c.lastname,
birthdate: c.birthdate,
sex: c.sex,
nationality: c.nationality,
citizenid: c.citizenid,
};
if (!inventory.canCarryItem(source, "driver_license", 1, metadata)) {
notify(source, "No room in your inventory", "error");
return false;
}
return inventory.addItem(source, "driver_license", 1, metadata);
}ai-cityhall sadece paneldeki Documents altında listelenen eşyaları kullanılabilir olarak kaydeder. Bu listede olmayan bir eşya kullanıldığında kart göstermez.
Para
Belgelerin ücreti ai-core’un RemoveMoney fonksiyonuyla paneldeki hesaplardan alınır; hesap defteri sebebi cityhall:<item> olur (örneğin cityhall:id_card).
Özel event’ler ve callback’ler
Script’in kendi sözleşmesi (resource/common/hall.ts). Server her çağrıda binaya olan mesafeyi kontrol eder. Sürümler arasında değişebilirler: başka resource’lardan tetikleme ya da dinleme.
| Ad | Yön | Ne taşır |
|---|---|---|
ai-cityhall:offer | client callback’i | (hallId): { ok, jobs, documents } ile cevap verir, bu binanın sundukları. |
ai-cityhall:takeJob | client callback’i | (hallId, job): iş merkezinden bir meslek al. |
ai-cityhall:buy | client callback’i | (hallId, item): bir belge satın al. |
ai-cityhall:client:showCard | server -> gösterilen belgenin yakınındaki her oyuncu | (card): kartı ekranda göster. |
ai-cityhall:client:showing | server -> gösteren oyuncu | (): gösterme animasyonunu oynat. |