Ana içeriğe geç

Üniforma Sistemi

Üniforma sistemi sunucuların:

  • iş üniformaları
  • çete üniformaları
  • fraksiyon kombinleri
  • departman kıyafetleri
  • kısıtlanmış kombin presetleri

sunabilmesini sağlar.

Tüm sistem kıyafet odaları ve yapılandırılmış kombin grupları üzerinden çalışır.


Sistem Amacı

Sistem özellikle şu roleplay odaklı yapılar için tasarlanmıştır:

polis departmanları
EMS
mekanikler
çeteler
organizasyonlar
güvenlik fraksiyonları

Üniformalar, kişisel kayıtlı kombinlerden ayrı şekilde yönetilir.


Üniforma İşleyişi

Tipik işleyiş:

1. Kıyafet odasına gir
2. Üniforma listesini aç
3. Üniforma seç
4. Kombin uygulanır
5. Appearance senkronize edilir

Kıyafet Odası Entegrasyonu

Üniformalar şu dosya üzerinden yüklenir:

shared/data/clothing_rooms.lua

Sistem aşağıdakileri doğrular:

  • oyuncu cinsiyeti
  • oyuncu mesleği
  • oyuncu çetesi
  • oyuncu rütbesi
  • oda erişimi

ve ardından üniforma kullanımına izin verir.


Kombin Kaynağı

Üniformalar şu dosya içerisinde tanımlanır:

shared/data/outfits.lua

Örnek yapı:

Config.Outfits = {
['police'] = {
['male'] = {
[0] = {
{
outfitLabel = 'Cadet Uniform',
outfitData = {}
}
}
}
}
}

Rütbe Desteği

Üniformalar rütbe tabanlı yapıları destekler.

Örnek:

[0] = { ... }
[1] = { ... }
[2] = { ... }

Bu yapı şunları sağlar:

  • rütbe üniformaları
  • ilerleme sistemleri
  • departman hiyerarşi kıyafetleri

Cinsiyet Desteği

Üniformalar aşağıdaki yapılar için ayrı yapılandırmaları destekler:

male
female

Her cinsiyet tamamen farklı kıyafet değerleri kullanabilir.


Parçalı Üniformalar

Üniformaların tüm kıyafet kategorilerini içermesi gerekmez.

Örnek:

outfitData = {
['vest'] = {item = 10, texture = 0}
}

Yalnızca belirtilen kategoriler değiştirilir.

Şunlar için kullanışlıdır:

  • taktik yelekler
  • montlar
  • aksesuarlar
  • roleplay ekipmanları

Prop Yönetimi

Prop sistemleri component sistemlerinden ayrı yönetilir.

Örnek:

['hat'] = {item = -1, texture = 0}

Şu kullanım:

item = -1

prop'u tamamen kaldırır.


Senkronizasyon İşleyişi

Üniforma uygulandığında:

1. Mevcut appearance okunur
2. Üniforma değerleri birleştirilir
3. Component'ler yeniden oluşturulur
4. Prop'lar yeniden oluşturulur
5. Appearance yenilemesi çalıştırılır

Bu yapı gereksiz appearance sıfırlamalarını engeller.


Appearance Koruması

Üniforma sistemi bilinçli olarak şunları değiştirmekten kaçınır:

head blend
yüz özellikleri
dövmeler
saç

özellikle yapılandırılmadığı sürece.

Bu sayede oyuncular üniforma değiştirirken karakter kimliklerini koruyabilir.


Clothes-Off Uyumluluğu

Üniforma sistemi clothes-off sistemiyle doğrudan entegre çalışır.

Fallback durumları şu yapıları kullanabilir:

kombin fallback değerleri

ve yapılandırılmış kombin verileri üzerinden çalışır.


Kısıtlı Erişim

Üniformalar şu yapılar kullanılarak sınırlandırılabilir:

requiredJob
isGang
gender

Örnekler:

requiredJob = 'police'

veya:

requiredJob = 'ballas',
isGang = true

Herkese Açık Üniforma Odaları

Eğer:

requiredJob = nil

olarak ayarlanırsa kıyafet odası herkese açık hale gelir.

Herhangi bir erişim kısıtlaması uygulanmaz.


Önerilen Kullanım Alanları

Önerilen kullanım alanları:

polis
ambulans
mekanikler
çeteler
güvenlik
staff üniformaları

Dahili Event Sistemleri

Üniforma uygulama işlemleri dahili olarak senkronizasyon eventlerini tetikleyebilir.

Şunlar için kullanışlıdır:

  • log sistemleri
  • inventory sistemleri
  • silah sistemleri
  • duty sistemleri

sunucu yapısına bağlı olarak kullanılabilir.


Framework Bağımsızlığı

Üniforma sistemi dahili tarafta özellikle framework bağımlı mantıklardan kaçınır.

Amaç:

daha kolay entegrasyonlar
özel yetki sistemleri
çete desteği
standalone uyumluluğu

Önerilen İşleyiş

Önerilen kurulum süreci:

1. Kıyafet odası oluştur
2. Kısıtlamaları yapılandır
3. Kombin gruplarını yapılandır
4. Rütbeleri yapılandır
5. Senkronizasyonu test et

Geliştirici Notları

Birçok appearance sisteminin aksine XDEV şu yapıları birbirinden ayırır:

üniforma mantığı
kombin mantığı
appearance mantığı

Bu mimari şunları geliştirir:

  • senkronizasyon güvenilirliği
  • modülerlik
  • uyumluluk desteği
  • entegrasyon esnekliği