CameraYeniÜcretsiz

Camera: Export ve Event'ler

Kamera izleme ekranını aç, kameraları açıp kapat, soygun sırasında devre dışı bırak ve vurulan kameraları kendi kaynaklarından dinle.

v1.0.0Açık kaynakÜcretsizQBox · QBCore · ESX

Kaynak adı

Export'lar kaynak adı üzerinden çağrıldığı için klasörün adı hype-camera olarak kalmalı. İsimde tire olduğu için export'ları exports.hype-camera değil exports["hype-camera"] şeklinde çağır.

ExportTarafNe işe yarar
OpenİstemciKamera listesini açar
Closeİstemciİzlemeyi ve listeyi kapatır
IsOpenİstemciListe veya bir kamera açık mı
GetViewingCameraİstemciO an izlenen kameranın id'si
SetCameraOnlineSunucuBir kamerayı açar / kapatır
DestroyCameraSunucuBir kamerayı hasarlı olarak devre dışı bırakır
IsCameraOnlineSunucuBir kamera çevrimiçi mi
GetViewersSunucuBir kamerayı izleyen oyuncular

Kamera id'leri

Her kameraya config/cameras.lua içindeki id değeriyle ulaşılır, örn. pacific_vault, fleeca_legion veya vangelico_1.

İstemci export'ları

Open

Kamera listesini açar. Terminale bağlı değildir, oyuncu uzaklaşsa bile izleme kapanmaz. Bu yüzden kendi tablet, telefon veya MDT'n için doğru seçimdir. Sunucu önce Access kontrolü yapar; yetki yoksa oyuncuya hata bildirimi gider ve hiçbir şey açılmaz.

client.lua
exports["hype-camera"]:Open()

Önce NUI odağını bırak

Duraklatma menüsü açıkken, kameralar zaten açıkken veya başka bir kaynak NUI odağını tutarken hiçbir şey açılmaz. Open çağırmadan önce tabletini kapat ya da SetNuiFocus(false, false) çağır.

Close

İzlemeyi ve listeyi kapatır: kamerayı yok eder, görüntü filtresini kaldırır, radarı geri getirir ve sunucudaki izleyici kaydını siler. Oyuncuyu kameralardan zorla çıkarman gerektiğinde (kelepçe, cutscene, başka bir menünün açılması) çağır. Bir kamera izlenirken ölüm ve ragdoll izlemeyi zaten kendiliğinden kapatır.

client.lua
exports["hype-camera"]:Close()

IsOpen

Kamera listesi veya bir kamera ekrandayken true döndürür. Çakışmayı önlemek için kendi menülerini açmadan önce kontrol et.

client.lua
local open = exports["hype-camera"]:IsOpen()

GetViewingCamera

İzlenen kameranın id'sini döndürür; sadece liste açıksa veya hiçbir şey izlenmiyorsa nil döner.

client.lua
local id = exports["hype-camera"]:GetViewingCamera() -- "pacific_lobby" veya nil

Sunucu export'ları

SetCameraOnline

Bir kamerayı çevrimiçi veya çevrimdışı yapar; örneğin soygun sırasında kameraları kesmek için. Kamerayı izleyenler SİNYAL KESİLDİ ekranını görür, listede de çevrimdışı görünür. Bu şekilde kapatılan bir kamera, sen tekrar açana kadar kapalı kalır. Hasarlı bir kamerayı açmak onu hemen geri getirir.

server.lua
exports["hype-camera"]:SetCameraOnline("pacific_vault", false)

Seçenek

Tür

Dönüş boolean: kamera id'si yoksa false.

DestroyCamera

Bir kamerayı, vurulmuş gibi hasarlı olarak devre dışı bırakır. İzleyenler geri sayımla HASARLI ekranını görür, yakındaki oyuncular kıvılcımları görür (Destroy.effects açıksa) ve cameraDestroyed event'i tetiklenir. Süre dolunca kamera kendiliğinden geri gelir. Bu export Destroy.enabled false iken de çalışır.

server.lua
exports["hype-camera"]:DestroyCamera("fleeca_legion", 300)

Seçenek

Tür

Dönüş boolean: kamera id'si yoksa veya kamera zaten çevrimdışıysa false.

IsCameraOnline

Kamera varsa ve ne kapatılmış ne de hasarlıysa true döndürür.

server.lua
if exports["hype-camera"]:IsCameraOnline("vangelico_1") then
    -- kuyumcu izleniyor
end

Seçenek

Tür

GetViewers

Kamera izleyen oyuncuların sunucu id'lerini döndürür. Id verirsen sadece o kamerayı izleyenleri, vermezsen herhangi bir kamerayı izleyen herkesi döndürür. Sadece listeye bakan oyuncular sayılmaz.

server.lua
local all = exports["hype-camera"]:GetViewers()
local watchers = exports["hype-camera"]:GetViewers("pacific_vault")

Seçenek

Tür

Dönüş number[]: oyuncu sunucu id'lerinin listesi.

Event'ler

hype-camera:server:cameraDestroyed

Bir kamera vurulduğunda veya DestroyCamera ile devre dışı bırakıldığında sunucuda tetiklenir. Dispatch'e haber vermek veya log yazmak için kullan.

server.lua
AddEventHandler('hype-camera:server:cameraDestroyed', function(id, source, coords, label)
    print(('%s, %s tarafından vuruldu (%s)'):format(label, source or 'script', coords))
end)

Seçenek

Tür

Sadece sunucu

Bu yerel bir sunucu event'idir. İstemciden asla tetikleme. Diğer hype-camera:* event'leri ve callback'leri dahili kullanım içindir ve sunucuda doğrulanır; bunları kendin çağırma.

State bag

Sunucu çevrimdışı kameraları global bir state bag üzerinden paylaşır, yani iki taraf da aynı listeyi okuyabilir. Sadece okunur.

client.lua
local offline = GlobalState["hype-camera:offline"] or {}

for id, value in pairs(offline) do
    if value == true then
        print(id, 'kapatıldı')
    else
        print(id, 'hasarlı, geri geliş:', value) -- os.time
    end
end
DeğerAnlamı
trueSetCameraOnline, yönetici komutu veya online = false ile kapatıldı
numberVuruldu veya devre dışı bırakıldı, geri geleceği os.time değeri

Çevrimiçi kameralar tabloda yer almaz.

Komutlar

KomutKimNe işe yarar
Command (varsayılan kapalı)Yetkili oyuncularKamera listesini açar, "cameras" gibi bir isim ver
/camerastatus [id] [state]group.admin1 = çevrimiçi, 0 = çevrimdışı. İsmi AdminCommand ile ayarlanır
/cameraposHerkes, sadece DebugO anki görüşünün konumunu kamera satırı olarak kopyalar
/camerastatus pacific_vault 0

Köprü export'ları

frameworks/ içindeki framework köprüleri ve modules/ içindeki modüller açık kaynaktır. Karakter sistemin özelleştirilmişse scriptin oyuncuları nasıl okuduğunu burada değiştirebilirsin. Yüz tanıma verisini GetCharacterInfo fonksiyonundan okur.

main.lua
main.lua
ExportTarafNe işe yarar
GetCharacterInfo(playerId)SunucuAd, doğum tarihi, cinsiyet, uyruk, telefon, kimlik ve meslek adı
GetPlayerJob(playerId)SunucuMeslek adı, etiketi, rütbesi ve mesai durumu; yetki kontrolü kullanır
GetPlayer(playerId)SunucuFramework oyuncu nesnesi
GetPlayers()SunucuYüklenmiş tüm oyuncuların sunucu id'leri
GetCharacterName(playerId, split?)SunucuKarakter adı, split ile ad ve soyad ayrı
GetPlayerIdentifier(playerId)SunucuQB/QBox'ta citizenid, ESX'te identifier
GetPlayerCallsign(playerId)SunucuOyuncu metadata'sındaki çağrı kodu, yoksa nil
GetPlayerData()İstemciYerel oyuncunun framework verisi
GetPlayerJob()İstemciYerel oyuncunun mesleği
GetFrameworkObject()İkisi deBulunulan tarafın köprü tablosu
AddSphereZone(name, coords, radius, options)İstemciox_target veya qb-target üzerinden alan oluşturur
RemoveZone(name)İstemciAddSphereZone ile oluşturulan alanı siler

SendNotify

Notifications ayarındaki kaynakla (okokNotify, ps-ui veya ox_lib) bildirim gösterir. Sunucuda ilk parametre oyuncudur; herkese göndermek için -1 ver.

client.lua
exports["hype-camera"]:SendNotify("Güvenlik Kameraları", "Kamera görüntüsü geri geldi.", 5000, "success")
server.lua
exports["hype-camera"]:SendNotify(source, "Güvenlik Kameraları", "Banka kameraları devre dışı!", 5000, "error")

Seçenek

Tür

GetModules

Çağrıldığı tarafın modül tablosunu döndürür. İsim verirsen sadece o modülü döndürür: iki tarafta "Notify", istemcide "Target".

server.lua
local notify = exports["hype-camera"]:GetModules("Notify")
notify.SendNotify(source, "Güvenlik Kameraları", "Merhaba!", 5000, "success")

Seçenek

Tür

Bu sayfada