AI Core
Temelai-hud

Geliştiriciler için ai-hud

ai-hud’un ihtiyaçlar (açlık, susuzluk, stres) ve HUD ayarları için export’ları ve diğer script’lerden okudukları.

İhtiyaçlar, karakterin metadata’sında tutulan 0 ile 100 arası sayılardır (hunger, thirst, stress, QB anahtarları). Açlık ve susuzluk geri sayar (100 = tok); stres ileri sayar (0 = sakin). Onları yazan tek script ai-hud’dur.

Script’inden stres eklemek için AI Core’un stres katmanını kullan (lib stress, AddStress export’u); hangi HUD çalışıyorsa onunla çalışır. Yiyecek ve içecek etkileri eşyaya aittir: eşyanın Hunger, Thirst ve Stress değerlerini ai-inventory’nin panelinde ayarla, eşya kullanıldığında ai-hud onları uygular.

Server export’ları

SetNeed ve AddNeed, @aicore-fivem/shared içinde AiHudServerExports olarak tiplenmiştir (TypeScript’te resourceExport("ai-hud")). GetNeeds tiplenmemiştir: lib callExport("ai-hud", "GetNeeds", source) ile çağır.

GetNeeds

Yüklü bir oyuncunun ihtiyaçlarını okur.

Taraf: Server · Bekler: hayır

Signature
GetNeeds(source: number): { hunger: number; thirst: number; stress: number } | null
Lua
local needs = exports['ai-hud']:GetNeeds(source) -- tablo veya nil

Parametreler

Prop

Type

Dönüş değeri

{ hunger, thirst, stress } | null: her değer 0-100 (ondalıklar korunur). Oyuncunun yüklü karakteri yoksa null.

SetNeed

Bir ihtiyacı bir değere ayarlar.

Taraf: Server · Bekler: hayır

Signature
SetNeed(source: number, need: "hunger" | "thirst" | "stress", value: number): void
Lua
exports['ai-hud']:SetNeed(source, 'hunger', 100)

Parametreler

Prop

Type

Dönüş değeri

Hiçbir şey. Oyuncunun yüklü karakteri yoksa ya da bir argüman geçersizse hiçbir şey yapmaz. Yeni değer karaktere kaydedilir ve yuvarlanmış değeri değiştiğinde oyuncunun HUD’una gönderilir.

AddNeed

Bir ihtiyacı bir miktar kadar değiştirir.

Taraf: Server · Bekler: hayır

Signature
AddNeed(source: number, need: "hunger" | "thirst" | "stress", delta: number): void
Lua
exports['ai-hud']:AddNeed(source, 'thirst', 25)

Parametreler

Prop

Type

Dönüş değeri

Hiçbir şey.

Örnek

import { callExport, resourceExport, onClientCallback } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";

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

// Bir kola makinesi: susuzluğu biraz doldurur, oyuncu susamamışsa reddeder.
onClientCallback("myscript:soda", (source) => {
  const needs = callExport("ai-hud", "GetNeeds", source) as { thirst: number } | null;
  if (!needs) return fail("NO_CHARACTER");
  if (needs.thirst > 90) return fail("NOT_THIRSTY");
  hud.AddNeed(source, "thirst", 20);
  return { ok: true };
});

Bu export’lar sadece ai-hud çalışırken çalışır. Sunucu sahibi ai-hud’un yerine başka bir HUD koyarsa çağrıların başarısız olur. AI Core’un stres katmanı (AddStress) diğer HUD’larla da çalışmaya devam eder.

Client export’ları

AiHudClientExports olarak tiplenmiştir.

ExportNe yapar
OpenSettings(): voidOyuncunun HUD ayarlarını açar (/hud ile aynı). Diğer script’ler hangi HUD çalışıyorsa onun ayarlarını AI Core’un OpenHudSettings() fonksiyonuyla açar.
SetMinimapAlways(on: boolean): voidBir adminin kendi anahtarı (ai-admin menüsü): panel ne derse desin mini haritayı yayayken açık tutar, sadece bu oyuncu için.
GetMinimapAlways(): booleanBu anahtarın açık olup olmadığı.

ai-hud neyi okur

KaynakNe için
AI Core server event’i itemUsed (source, name, status)Eşyanın hunger, thirst, stress değerlerini ekler.
AI Core client event’i CORE.clientHudVisibleEvent (visible)Tam ekran bir menü açıkken HUD’u gizler (herhangi bir script’ten lib hud.hide(reason)).
AI Core tuş ipuçları (ai-core:client:keyHints, GetKeyHints())Soldaki tuş listesi.
Araç state bag’i fuelYakıt göstergesi.
Oyuncu state bag’i proximity ve pma-voice:setTalkingMode / pma-voice:radioActive event’leriSes mesafesi, konuşma, telsiz.
Lib seatbelt (AI Core’un emniyet kemeri katmanı)Emniyet kemeri uyarısı.
Lib inventory.currentWeapon()Silah kutusu.

Event’ler

ai-hud’un kendi event’leri (resource/common/hud.ts) dahilidir. Biri sadece kendi client’ına açıktır: ai-hud:stress (client’tan server’a, 1 ile 5 puan, en fazla saniyede iki). Diğer script’ler stresi server’da AI Core üzerinden ekler.

Bu sayfada