- Katılım
- 3 yıl 2 ay 7 gün
- Mesajlar
- 24

Linkleri,görmek için
Giriş yap veya üye ol.
Linkleri,görmek için
Giriş yap veya üye ol.
Hemen İndir :
Linkleri,görmek için
Giriş yap veya üye ol.
Genel Bakış
Bu script, QBCore framework’ü üzerine inşa edilmiştir ve görevde olan fraksiyon personelinin harita üzerindeki konumlarını takip edip görüntülemek amacıyla tasarlanmıştır. Sistem, yalnızca belirli işlerde ("polis", "ambulans" vb.) aktif olarak "görevde" olan oyuncuların haritada görünmesini sağlar. Oyuncu görev dışı moda geçtiğinde, konumu haritadan anlık olarak kaldırılır. Sistem üç ana bileşenden oluşur: istemci (client.lua), sunucu (server.lua) ve bir yapılandırma dosyası (config.lua).
İstemci Tarafı Fonksiyonları (client.lua)
Başlatma ve QBCore Nesnesinin Alınması
- Script, çeşitli çekirdek işlevlere erişim sağlamak için QBCore nesnesini alarak başlar.
- Harita üzerindeki işaretleyicileri (blip) depolamak için bir blips tablosu ve oyuncunun görevde olup olmadığını takip etmek için currentDutyState adında bir değişken başlatılır.
Konum Verisi Alma ve Yönetme
- qb-gps:receiveLocations adlı bir event (olay), sunucudan gelen konum verilerini almak üzere kaydedilir. Bu veri, oyuncu ID’lerini koordinatlarıyla eşleştiren bir tablodur.
- Her bir oyuncu ID’si için script şu kontrolleri yapar:
- Kaldırma: Eğer bir oyuncuya ait veri artık gelmiyorsa (yani oyuncu görev dışı ya da çıkış yaptıysa), ilgili blip haritadan kaldırılır.
- Oluşturma/Güncelleme: Eğer daha önce blip oluşturulmamış bir oyuncu için yeni koordinatlar geldiyse, yapılandırma dosyasındaki ayarlara göre yeni bir blip oluşturulur. Blip zaten varsa, konumu güncellenir.
Görev Durumu Takibi ve Konum Güncellemeleri
- Sürekli çalışan bir döngü, oyuncunun görev durumunun değişip değişmediğini her saniye kontrol eder (QBCore üzerinden oyuncunun mesleği ve görev durumu kontrol edilir).
- Eğer görev durumu değiştiyse:
- Sunucuya qb-gps:toggleDuty olayı gönderilir.
- Oyuncu görev dışı olduysa, mevcut tüm blipler kaldırılır.
- Görevdeyse, istemci kendi konumunu düzenli olarak sunucuya qb-gps:sendLocation olayıyla gönderir. Bu sayede sunucu, her aktif oyuncunun en güncel koordinatlarını bilir.
Sunucu Tarafı Fonksiyonları (server.lua)
Görevdeki Oyuncuların Takibi
- Sunucu tarafı, OnDutyPlayers adlı bir tablo tutar. Bu tablo, izin verilen mesleklere göre organize edilmiştir. Her bir iş için alt tablolar bulunur ve her oyuncu (source ID ile) mevcut koordinatlarıyla birlikte burada saklanır.
- Sunucu, qb-gps:toggleDuty olayı geldiğinde:
- Oyuncunun mesleği izin verilen işler arasında mı kontrol eder.
- Göreve giriyorsa tabloya ekler, çıkıyorsa listeden kaldırır.
Oyuncu Koordinatlarının Güncellenmesi
- qb-gps:sendLocation olayıyla istemciden gelen güncel konum, eğer oyuncu görevdeyse, ilgili iş listesinde güncellenir.
Oyuncu Bağlantı Kesilme Durumu
- playerDropped olayı ile sunucu, bağlantısı kopan oyuncuları OnDutyPlayers listesinden otomatik olarak kaldırır.
Periyodik Veri Yayını
- Her saniyede bir çalışan bir iş parçacığı (thread), OnDutyPlayers tablosunu tarar ve tüm görevdeki oyuncuların koordinatlarını derler.
- Bu veri, ilgili meslek grubundaki her oyuncuya qb-gps:receiveLocations olayıyla gönderilir.
- Böylece, aynı meslek grubundaki tüm görevdeki oyuncular birbirlerinin konumlarını gerçek zamanlı olarak görebilir.
Yapılandırma Ayarları (config.lua)
İş Filtresi
- İzin verilen mesleklerin listesi burada tanımlanır (örnek: police, ambulance, lssd, sheriff, usng).
- Sadece bu mesleklere sahip olan oyuncular GPS sistemine dahil edilir.
Blip Görünümü
- Haritadaki işaretleyicilerin (blip) görsel özellikleri burada tanımlanır:
- BlipSprite: Haritada kullanılacak ikon.
- BlipScale: Blip boyutu.
- BlipColour: Renk kodu.
- BlipName: Haritada görünecek isim etiketi.
Sistemin İşleyişi
Aktivasyon ve Veri Akışı
- Oyuncu göreve geçtiğinde, istemci sunucuya bir bildirim gönderir ve oyuncu OnDutyPlayers listesine eklenir.
- Ardından istemci, her saniye kendi konumunu sunucuya göndermeye başlar.
Gerçek Zamanlı Harita Güncellemeleri
- Sunucu, aynı meslek grubundaki görevdeki tüm oyuncuların konum verilerini derler ve her oyuncuya gönderir.
- İstemci, bu verileri kullanarak harita üzerindeki blipleri oluşturur veya günceller.
Dinamik Yönetim
- Oyuncu görevden çıktığında veya sunucudan ayrıldığında, hem sunucu listesinden hem de istemci haritasından anında kaldırılır.
- Bu, sadece aktif oyuncuların konumlarının görünmesini sağlar ve operasyonel netliği korur.
Sonuç
Bu QBCore tabanlı fraksiyon GPS sistemi, görevdeki personelin gerçek zamanlı takibini sağlayan sağlam bir çözümdür. İstemci ve sunucu işlevlerinin ayrı tutulması ve periyodik konum güncellemeleri sayesinde sistem, performanslı ve güncel veri yönetimi sunar.
Modüler tasarımı ve yapılandırılabilir ayarları sayesinde, farklı roller ve operasyonel ihtiyaçlara kolayca uyarlanabilir.
