AI Core
Araçlarai-fuel

Geliştiriciler için ai-fuel

ai-fuel çalışırken yakıtın nasıl okunup ayarlandığı, state bag’leri ve iç event’leri.

ai-fuel’in export’u yoktur. Bir aracın yakıtı, server’ın tuttuğu fuel entity state bag’idir (0-100).

Yakıtı lib’in fuel.get(vehicle) ve fuel.set(vehicle, level) fonksiyonlarıyla oku ve ayarla (server; fuel.get client’ta da var). Bunlar ai-core’un yakıt katmanından geçer (Lua’da ai-core üzerindeki GetVehicleFuel ve SetVehicleFuel export’larını çağır); bu katman ai-fuel çalışırken fuel bag’ini okuyup yazar, server onun yerine başka bir yakıt script’i çalıştırıyorsa o script’le konuşur. Böylece script’in her yakıt script’iyle çalışır.

Yakıtı okuma ve ayarlama

import { fuel } from "@aicore-fivem/lib/server";

// Oyuncunun özel bir istasyonda parasını ödediği aracı doldur.
export function fillUp(vehicle: number): void {
  const before = fuel.get(vehicle);
  fuel.set(vehicle, 100);
  console.log(`fuel ${before} -> 100`);
}

fuel bag’ini client’tan yazma: server client yazmalarını reddeder (strict state bag modu), ai-fuel de zaten sürücünün client’ından sadece daha düşük değerleri kabul eder.

State bag’ler

BagNeredeTipAnlamı
fuelaraç entity’sinumberYakıt 0-100. Server ayarlar. ai-vehicles sahipli bir aracı spawn ettiğinde ilk değerini verir.
aiFuelNozzleoyuncu{ x, y, z, netId } | undefinedOyuncunun elinde tuttuğu tabancanın pompası (x, y, z) ve tabancanın takılı olduğu aracın network id’si (netId, eldeyken null). Yakındaki her client tabancayı ve hortumu çizmek için bunu kullanır.
Lua (client)
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
local level = Entity(vehicle).state.fuel -- 0-100 arası number, ilk ayarlamadan önce nil

Event’ler

Bunlar ai-fuel’in kendi client’tan server’a event’leridir. Loglarda tanıyabilmen için listelenmiştir; başka script’lerden çağırma.

AdTürNe yapar
ai-fuel:consumeclient event’i(netId, fuel): sürücü daha düşük bir seviye bildirir. Saniyede en fazla 2 kez; sadece daha düşük değerler kabul edilir.
ai-fuel:takeNozzleclient callback’i(x, y, z): bir pompanın tabancasını al. Saniyede en fazla 1 kez.
ai-fuel:plugclient callback’i(netId | null): tabancayı bir araca tak ya da çıkar. Saniyede en fazla 2 kez.
ai-fuel:returnNozzleclient event’iTabancayı yerine as. Saniyede en fazla 1 kez.
ai-fuel:refuelclient callback’iİlerleme çubuğunu çalıştırır, ücreti alır ve depoyu doldurur.

Bu sayfada