Skip to content

State Bags

Janto Phone, oyuncu ve cihaz durumlarını senkronize etmek için FiveM State Bags sistemini kullanır. Bu reaktif yapı sayesinde diğer scriptler döngülere (loops) ihtiyaç duymadan telefon durumlarını takip edebilir.

Oyuncu State'leri (Player State Bags)

Bu state'ler her oyuncu/ped objesi üzerinde tutulur ve hem istemci hem sunucu tarafında okunabilir.

isDead

Oyuncunun ölü olup olmadığını belirtir. Janto Phone bu değeri dinleyerek oyuncu öldüğünde telefonu otomatik olarak kapatır.

  • Tip: boolean
  • Erişim: Okuma (Tüm scriptler), Yazma (Framework/Adapter)
lua
-- Örnek: Ölüm durumunu kontrol etme
local isDead = Player(source).state.isDead

inLastStand

Oyuncunun yaralı veya baygınlık (last stand) modunda olup olmadığını belirtir.

  • Tip: boolean

activePhoneNumber

Oyuncunun o an envanterinde takılı olan ve kullandığı aktif telefon numarasını tutar.

  • Tip: string | nil
  • Erişim: Okuma (Tüm scriptler), Yazma (Janto Phone Server)
lua
-- Örnek: Yakındaki birinin numarasını öğrenme (Client)
local targetId = 12 -- Server ID
local number = Player(targetId).state.activePhoneNumber

Cihaz Özellikleri (Feature State Bags)

flashlightActive

Oyuncunun telefon el fenerinin açık olup olmadığını belirtir. Janto Phone bu state'i kullanarak diğer oyunculara ışığı render eder.

  • Tip: boolean
  • Erişim: Okuma/Yazma

liveLocation_{chatId}

WhatsApp veya Mesajlar üzerinden paylaşılan canlı konum verisini tutar.

  • Tip: object { x: number, y: number, endTime: number } | nil
  • Açıklama: Sadece konum paylaşımı yapan oyuncu üzerinde, paylaşılan chat ID'si ile dinamik olarak oluşur.

Örnek Kullanım: State Bag İzleme

Bir oyuncu telefonunu açtığında veya numara değiştirdiğinde anlık haberdar olmak için AddStateBagChangeHandler kullanabilirsiniz:

lua
AddStateBagChangeHandler('activePhoneNumber', nil, function(bagName, key, value, _unused, replicated)
    if not value then return end
    
    local source = tonumber(bagName:gsub('player:', ''))
    print(string.format("Oyuncu %s numarasını güncelledi: %s", source, value))
end)

Released under the MIT License.