Blog
FiveM Polis Cephaneliği: Zimmet, Seri Numarası ve İade
Yayın tarihi:
Rütbeye göre hazır setler
Memur cephaneliğe yürür ve rütbesine açık setleri görür. Varsayılan setler devriye, pompalı devriye, devriye tüfeği ve SWAT; hepsi config.lua içinden değiştirilebilir. Set yerine tek tek ekipman da alınabilir: tabanca, şok tabancası, cop, el feneri, yelek, sargı, telsiz.
Ek parçalar da rütbeye bağlı. Örneğin susturucu varsayılan olarak yalnız komiser yardımcısı ve üstüne açık. Parçalar, karanlık bir stüdyoda dönen 3D silah modelinin üzerinde seçildikçe görünür; memur silahı fareyle çevirip bakabilir.
Her silahın seri numarası var
Cephanelikten çıkan her silaha ARM- ile başlayan bir seri numarası verilir. Numara ox_inventory ve QBCore envanterinde silahın bilgisinde görünür. Böylece sahada bulunan bir silahın cephanelikten çıkıp çıkmadığı, kime zimmetli olduğu anlaşılır.
Bunu MDT ve delil scriptleri de kullanabilsin diye iki export ekledik: GetIssued(source) bir memurun üzerindeki zimmeti, IsArmoryWeapon(serial) bir seri numarasının cephanelik silahı olup olmadığını ve kime ait olduğunu döndürür.
İade, verilenle karşılaştırılır
Memur aynı anda tek set alabilir ve bir silahı geri vermeden ikinci kez alamaz. İade sırasında cephanelik, verdiği silahları seri numarasıyla tek tek arar. Ek parçalar silahın üstünde mi, sökülüp eşya olarak mı geri geldi, ona bakar. Kullanılmayan mermi ve telsiz gibi iade edilen eşyalar da geri alınır; memurun kendi mermisine dokunulmaz.
Geri gelmeyen ne varsa memurun kaydında eksik olarak kalır ve yeni set alması kilitlenir. Amir /armorylist ile açık kayıtları görür, kaybolan ya da el konan bir şey için /armoryclear ile kaydı kapatır. Geri gelmeyen mermi de kayda yazılır ve böyle bir iadeden sonra kısa bir bekleme süresi başlar; böylece aynı memur cephanelikten tekrar tekrar mermi çekemez.
Kayıt ve Discord bildirimi
Her çıkış ve iade data/log.json dosyasına yazılır. İstenirse aynı kayıt bir Discord kanalına da düşer. Discord webhook adresi config.lua dosyasına değil server.cfg dosyasına yazılır, çünkü config.lua her oyuncunun oyununa iner ve okunabilir: set armory_webhook "..." satırı yeterli.
İsteğe bağlı olarak her silah için stok da tutulabilir. Kayıttan düşülen silahlar, /armoryrestock komutu çalışana kadar stoğa geri dönmez.
Her istek sunucuda doğrulanır
Cephanelik, sunucuya silah veren bir script olduğu için hile yapanların ilk denediği yerdir. Armory her istekte memurun mesleğini, rütbesini, cephaneliğe uzaklığını ve bekleme süresini sunucuda kontrol eder. QBCore ve Qbox sunucularında yalnız mesaide olan memur ekipman alabilir; üzerinde zimmet olan biri ise mesai dışında da geri getirebilir.
ox_target ya da qb-target ile kullanıldığında hiç döngü çalışmaz. Hedef scripti yoksa yerde bir işaret ve E tuşuyla açılır; o durumda uzaklık 800 ms'de bir ölçülür, işaret yalnız cephaneliğin 12 metre yakınında çizilir.
Kurarken dikkat edilecek iki şey
qb-policejob ve esx_policejob, Mission Row karakolunda kendi cephanelik noktasıyla gelir. ox_inventory'nin de aynı yerde "Police Armoury" adlı bir dükkânı vardır (ox_inventory/data/shops.lua). Bunları kapatmazsanız memurlar aynı tezgâhta iki seçenek görür ve zimmet takibi anlamını yitirir.
Armory ESX Legacy, QBCore, Qbox, ox_inventory ve çerçevesiz kullanımla çalışır, OneSync ister. Script Cfx asset escrow ile kod kilitlidir; config.lua, dil dosyaları ve çerçeve ile envanter köprüleri açıktır. Türkçe dahil dokuz dil hazır gelir. Gunrack ile birlikte kullanıldığında memur, aldığı uzun silahları cephanelikten doğrudan aracın rafına yükleyebilir; raftaki silahlar iade sırasında sayılır.
Ürün
ArmoryFiveM için polis cephaneliği. Memurlar rütbesine uygun teçhizatı alır, her silah seri numarasıyla zimmetlenir.
İlgili hizmet
FiveM Script Yaptırma