Rekabetçi savaş tabanlı deneyimler oluşturmanıza yardımcı olmak için, herhangi bir deneyimde kullanılmak üzere birkaç onaylı silah mevcuttur. Temel sistem, omuzdan çekim yaparak mermi tabanlı silahlar sunar ve mermi hızını yeterince yüksek ayarlamak, lazer silahları gibi ışınlama silahlarını simüle edebilir.

Deneyiminizde onaylı bir silah kullanmak için:
- Aşağıdan bir silah seçin, varlık kütüphanesi bağlantısına gidin.
Silahın öğe sayfasında, yeşil Al butonuna tıklayın ve işlemi onaylayın.
Studio'da Araç Kutusunu açın.
Araç kutunuzun Envanter bölümünü seçin.
Silahı bulun ve 3D dünyaya almak için tıklayın. Eğer aracı başlangıç paketine koymak isteyip istemediğiniz sorulursa, oyuncuların sırt çantasında silahla başlamasını istiyorsanız Evet'e, sadece silahı 3D dünyada bir alım olarak bırakmak istiyorsanız Hayır'a tıklayın.
Eğer bu, onaylı bir silahı getirmenin ilk kez'i ise, WeaponsSystem klasörünü ServerScriptService'ye taşıyın, böylece deneyimdeki tüm onaylı silahlar için birleşik bir sistem klasörü olarak hizmet eder.

Sistem klasörü yapısı
WeaponsSystem klasörü, deneyimdeki tüm onaylı silahları çalıştıran varlıklar, yapılandırmalar ve betikler içeren birleşik bir klasördür. ServerScriptService içinde bulunduğunda, bireysel silahlar içinde varsa eşdeğer WeaponsSystem klasörlerini geçersiz kılar.

WeaponsSystem klasörü, aşağıdaki varlıkları içerir:
- WeaponTypes (Folder) – Tüm silah türlerini belirtir.
- ServerWeaponsScript (Script)
- Version (IntValue)
- ClientWeaponScript (LocalScript)
- NetworkingCallbacks (ModuleScript)
- WeaponData (RemoteEvent)
- WeaponsSystem (ModuleScript)
WeaponsSystem klasörü içinde, farklı yönler aşağıdaki ModuleScripts tarafından kontrol edilir:
| Yön | Ağırlıklı olarak içinde ele alınan... |
|---|---|
| Silah işlevselliği |
|
| Omuz kamerası |
|
| Silah GUI'si |
|
Silah yapısı
Onaylı silahlar, Tools ve oyuncunun sırt çantasında görünecek şekilde adlandırılmıştır. Her silah benzer bir hiyerarşiyle yapılandırılmıştır.
Silah türü
WeaponType StringValue, WeaponsSystem/WeaponTypes klasöründeki silahın ModuleScript'ine karşılık gelir. İki temel değer BulletWeapon ve BowWeapon'dır.
Silah modeli
Her silah, fiziksel silahı oluşturmak için bir veya daha fazla BaseParts'dan oluşan bir Model içerir. Bunlardan biri modelin PrimaryPart olarak ayarlanmalıdır.

Model ayrıca aşağıdaki önemli alt öğeleri içerir; bunlar modelin BaseParts'dan birine bağlı olabilir:
- TipAttachment – Attachment, ana BasePart üzerindeki konumu, mermilerin/projelerin nereden çıkacağını belirler.
- HandleAttachment – Attachment, ana BasePart üzerindeki konumu, Handle 'nın nerede kaynaklanacağını belirler.
- Herhangi bir özel seçenek için ek alt öğeler.
Silah Tutamağı
Handle parçası, oyuncu karakterinin silahı tutma şeklinin belirleyicisidir. Bu bir Part olmalı, ismi Handle olmalı ve silahın (aletin) doğrudan çocuğu olmalıdır.
Yapılandırma klasörü
Configuration klasörü, silah davranışları için spesifik "değer" türlerini içerir. Varsayılanların ötesinde, geçerli olduğunda özel seçenekler için ek yapılandırma maddeleri ekleyebilirsiniz.
Aşağıda, temel yapılandırmalar ve varsayılan değerleri listelenmiştir:
| Madde | Açıklama | Varsayılan |
|---|---|---|
| AmmoCapacity | Oyuncunun yeniden yüklemesi gereken her "mercek klibi" içinde atış sayısı. Ammo sınırsızdır ve bu, oyuncunun taşıdığı merminin miktarını belirtmez. | 30 |
| FireMode | Semiautomatik ( her tıklamada/tap'ta bir atış), Otomatik (kesintisiz ateş) veya Patlama (her tıklamada/tap'ta NumBurstShots kadar atışın patlaması) arasından seçim yapın. | Semiautomatik |
| ShotCooldown | Tıklamalar arasındaki minimum bekleme süresi. Otomatik ateş moduna sahip silahlar için bu, ateş butonunu basılı tutarken veya tıklarlarken atışlar arasındaki süreyi de ifade eder. | 0.1 |
| BurstShotCooldown | Patlama içindeki her atış arasındaki süre; sadece Ateş Modu'nu Patlama olarak ayarlarsanız önemlidir. | ShotCooldown'un değeri |
| NumBurstShots | Tıklamada/patlamada her atım için mermi sayısı; sadece Ateş Modu'nu Patlama olarak ayarlarsanız önemlidir. | 3 |
| HitDamage | Her direkt vuruşun ne kadar zarar verdiği. | 10 |
| FullDamageDistance | Atışların tam hasar vereceği maksimum mesafe. Bu mesafeden daha uzakta vurulanlar, ZeroDamageDistance'a yaklaşırken daha az zarar alacaktır. | 1000 |
| ZeroDamageDistance | Bu mesafede veya daha ileride vurulan hiçbir zarar almaz. | 10000 |
| BulletSpeed | Mermilerin/projelerin ateşlendiğinde hızı. Bunu 20000 gibi çok yüksek bir değere ayarlamak, lazer silahları gibi ışınlama silahlarını simüle eder. | 1000 |
| MaxDistance | Mermilerin/projelerin kaybolmadan önce gidebileceği maksimum mesafe. | 2000 |
| MinSpread | Silah için minimum yayılma miktarı. | 0 |
| MaxSpread | Silah için maksimum yayılma miktarı. | MinSpread'in değeri |
| GravityFactor | Ateş edilen her mermi/projeyi ne kadar yerçekiminin etkileyebileceği. Örneğin, Yaylı Tüfeğin bu değeri 1'dir çünkü ok tüyleri uçuş sırasında kavisleniyor, ancak Roketatarın bu değeri 0'dır çünkü itme gücüyle fırlatılan roketler düz bir hat izler. | 0 |
| HasScope | Silah sistemindeki Silah Sistemi GUI ile belirtilen dürbünü kullanmak istiyorsanız true olarak ayarlayın. | false |
| ReloadAnimation | Sistem klasörü içindeki Assets/Animations'da yeniden yükleme animasyonu parçasının adı. | RifleReload |
| AimTrack | Sistem klasörü içindeki Assets/Animations'da nişan animasyonu parçasının adı. | RifleAim |
| AimZoomTrack | Sistem klasörü içindeki Assets/Animations'da nişan zoom animasyonu parçasının adı. | RifleAimDownSights |
| RecoilMin | Her atış için eklenen minimum geri tepme. | 0.05 |
| RecoilMax | Her atış için eklenen maksimum geri tepme. | 0.5 |
| TotalRecoilMax | Toplam maksimum biriken geri tepme. Silahın mevcut geri tepmeleri bu değer kadar üst üste çıkamaz. | 2 |
| RecoilDecay | Geri tepme için düşüş çarpanı; aslında ateş ettikten sonra geri tepmenin ne kadar hızla azalacağıdır. | 0.825 |
| RecoilDelayTime | Ateş etme/tıklamadan sonra geri tepmenin kameraya eklenmeden önceki bekleme süresi. | 0.07 |
| StartupTime | Silahı takıp ateş edebileceğiniz zamana kadar geçen süre. Bu, oyuncuların hızlı bir şekilde birden çok farklı silah kullanımında bir tek atış yapmalarını engeller. | 0.2 |
| FiredPlaybackSpeedRange | Silahın Fire sesi için tonun ne kadar değişebileceği. Bunu, her zaman aynı ton ile çalması için 0 olarak ayarlayın. | 0.1 |
| NumProjectiles | Bir kez tıkladığınızda aynı anda ateşlenecek mermi/proje sayısı. Bu, aynı anda birden fazla mermiyi ateşleyen Pompalı Tüfek gibi silahlar için yararlıdır. Bir atışın, bu değere bakılmaksızın her zaman tam bir mermi kullanacağını unutmayın. | 1 |
Özel seçenekler
Herhangi bir silah için aşağıdaki seçenekleri ekleyebilir veya değiştirebilirsiniz. Bu özelleştirmeler, silahın Model'ini, silahın Configuration'ını veya her ikisini de değiştirmeyi gerektirir. Bazı yapılandırmalar diğerlerine bağlıdır; örneğin, Muzzle Particles için gerekli alt öğeleri gerektirir.
Makarna animasyonları ve sesleri
Bir silahın makarna'sı, her ateşlendiğinde geri ve ileri hareket eden parçadır.
- Silahın Silah Modeli alt öğeleri
| Bolt | BasePart geri hareket ederken. | |
| BoltMotor | Geri tepmeyi canlandırmak için kullanılan Motor6D. Motorun Part0'sını silah modelinin PrimaryPart'ına, Part1'ini ise Makarnaya ayarladığınızdan emin olun. | |
| BoltMotorStart | Dinlenme konumundaki makaranın nerede olduğunu belirleyen ana BasePart üzerindeki Attachment. | |
| BoltMotorTarget | Ateş ederken makarayı canlandırmak için ana BasePart'daki ilgili Attachment'tir. | |
| BoltOpenSound | Sound makara açılırken çalar. | optional |
| BoltCloseSound | Sound makara kapandığında çalar. | optional |
- Silahın Yapılandırma klasörü alt öğeleri
| Madde | Açıklama | Varsayılan |
|---|---|---|
| ActionOpenTime | Makarayı açmış konuma animasyon yapma süresi. | 0.025 |
| ActionCloseTime | Makarayı kapalı konuma animasyon yapma süresi. | 0.075 |
Mermi kovanı atma
Silahlar, ateşlandıklarında dışarı atılan ve yere düşen fiziksel mermi kovanları içerebilir.
- Silahın Silah Modeli alt öğeleri
| CasingEjectPoint | Ana BasePart üzerindeki konumu, mermi kovanlarının nereden çıkacağını belirleyen Attachment. |
- Silahın Yapılandırma klasörü alt öğeleri
| Madde | Açıklama | Varsayılan |
|---|---|---|
| CasingEffect | Assets/Effects/Casings içindeki kovanın BasePart adı sistem klasörü. | |
| CasingEjectSpeedMin | Kovanların minimum atış hızı. | 15 |
| CasingEjectSpeedMax | Kovanların maksimum atış hızı. | 18 |
| CasingHitSound | 'Yere düştüğünde ses çalan Sound. | optional |
Proje/vuruş efektleri ve sesleri
Herhangi bir silah için fiziksel projeler yapılandırabilir, ayrıca vuruş efektleri ve diğer özel efektler için Sesler, Işınlar ve Partikül Yayıcılar ekleyebilirsiniz.
- Silahın Yapılandırma klasörü alt öğeleri
| Madde | Açıklama | Varsayılan |
|---|---|---|
| ShotEffect | Assets/Effects/Shots klasörü altında saklanan bir atış efektinin adı. | |
| ShouldMovePart | Silahın ShotEffect'inin projeyle birlikte hareket etmesini istiyorsanız true olarak ayarlayın, aksi takdirde false olarak ayarlayın. Her atışla beraber hareket eden görünür bir nesne varsa, bu ayarı yalnızca true olarak ayarlamalısınız; örneğin, bir ok ya da roket. | false |
| BeamFadeTime | Merminin/projenin bir şeye çarptığında Beam0 veya Beam1'in kaybolması için geçen süre. Varsayılan olarak, kodla manuel olarak kaybolma uygulanmaz. | 0 |
| BeamWidth0 | Beam0 veya Beam1'in Attachment0'daki kalınlığı. | 1.5 |
| BeamWidth1 | Beam0 veya Beam1'in Attachment1'deki kalınlığı. | 1.8 |
| NumHitParticles | HitParticles (aşağıya bakın) yayıcısının yayacağı parça sayısı. | 3 |
| HitParticlesUsePartColor | Vuruş parçacıklarının, vurulan yüzeyin rengi olmasını istiyorsanız true, aksi takdirde parçacıkların renk değiştirmesini istemiyorsanız false olarak ayarlayın. | true |
ShotEffect Alt Öğeleri
Önceki bölümde belirtilen ShotEffect'in alt öğeleri
| Flying | Merminin/projenin hareket ettiği süre boyunca çalan Sound. | optional |
| Beam0 | Merminin/projenin arkasında takılan ilk Beam için ilk alan. Attachment0 ve Attachment1'i ayarladığınızdan emin olun. | optional |
| Beam1 | Merminin/projenin arkasında takılan ikinci Beam için alan. Attachment0 ve Attachment1'i ayarladığınızdan emin olun. | optional |
| Attachment0 | Aşağıdaki ile birlikte Beam0 üçüncü süper özelliğiyle bütünleştirildiğinde kullandığınızda mermi/şu anda çarpan projelerin önünü belirten Attachment. | optional |
| Attachment1 | Merminin/projenin uç kısmının arka tarafını Beam0 kadar tanımlayan Attachment. | optional |
| TrailParticles | Attachment0'in doğrudan çocuğu olarak ParticleEmitter; bu, merminin/projenin uçuşu sırasında yayım yapar. | optional |
| LeadingParticles | Attachment1'in doğrudan çocuğu olarak ParticleEmitter; bu, merminin/projenin uçuşu sırasında yayım yapar. | optional |
| HitEffect | Bir merminin/projenin bir şeye çarptığında Beam0'nin Beam.Attachment1'ine ayarlanacak olan Attachment. | optional |
| HitSound | Çarpma sırasında çalan Sound; bir merminin/projenin hasar yaptığı zaman. | optional |
| HitParticles | Çarpma sırasında yayılım yapan Sound; bir merminin/projenin hasar yaptığı zaman. | optional |
| [ProjectilePart] | Herhangi bir Part veya MeshPart'ın görünür bir fiziksel proje gibi görünmesini istediğinizde. Eğer bir nesne gözükürse, yukarıdaki bölümde belirtilen ShouldMovePart'nı true olarak ayarladığınızdan emin olun. | optional |
Muzzle parçacıkları
Bu seçenek, silahın TipAttachment Attachmentı ateşlendiğinde belirtilen ParticleEmitter'den parçacık yayar.
Yapılandırma alt öğeleri:

- ShotEffect (StringValue) — WeaponsSystem/Assets/Effects/Shots klasöründe saklanan bir atış efektinin adı.
- NumMuzzleParticles (IntValue) (isteğe bağlı) — Yayılacak maksimum mermi parçacığı sayısı; varsayılan 50'dir.
Belirtilen atış efekti için parçacık yayıcı varlıklarını WeaponsSystem/Assets/Effects/Shots klasörüne MuzzleParticles adıyla ekleyin.

Muzzle flaşları
Bu seçenek, silah ateşlendiğinde bir Beam flaş efekti oluşturur.
Model alt öğeleri:

- MuzzleFlash0 (Attachment) — Muzzle flaşın bir tarafını tanımlamak için kullanılır. Konum önemli değildir.
- MuzzleFlash1 (Attachment) — Muzzle flaşın opposite kısmını tanımlamak için kullanılır. Konum önemli değildir.
Yapılandırma alt öğeleri:

- MuzzleFlashTime (NumberValue) (isteğe bağlı) — Muzzle flaşının ne kadar süre boyunca gösterileceği; varsayılan 0.03'tür.
- MuzzleFlashRotation0 (NumberValue) (isteğe bağlı) — Muzzle flaşının minimum döngüsü; varsayılan -math.pi'dır.
- MuzzleFlashRotation1 (NumberValue) (isteğe bağlı) — Muzzle flaşının maksimum döngüsü; varsayılan math.pi'dir.
Parçacık izleri
Bu seçenek, silah ile proje çarpma noktasına kadar uzanan değişen uzunlukta bir iz oluşturur.
Yapılandırma alt öğeleri:

- TrailLength (NumberValue) (isteğe bağlı) — Mermi/projeden iz uzunluğu; varsayılan nil, bu da izin uzunluğunun bunun yerine TrailLengthFactor ile hesaplanacağı anlamına gelir.
- TrailLengthFactor (NumberValue) (isteğe bağlı) — İz uzunluğu, bu değerin merminin/projenin son çerçevede gittiği mesafe ile çarpılmasından oluşur; varsayılan 1'dir. Ancak, TrailLength uzunluğuna sahipseniz bu geçersiz kılınır.
- ShowEntireTrailUntilHit (BoolValue) (isteğe bağlı) — İz, silah ucundan merminin/projenin nereye kadar yol aldığını göstermek için true olarak ayarlayın; bu, izin uzunluğunu belirlemek için yukarıdaki iki seçeneğine göre geçersiz kılacak ve iz, ancak mermi bir yere çarparsa kaybolacaktır. false olarak ayarladığınızda, iz uzunluğunu hesaplamak için yukarıdaki iki seçeneği kullanır. Varsayılan false'dır.
Vuruş işaretleri
Bu görsel ilave, mermilerin/projelerin vurduğu yüzeylerde görünür ve oklar, mermi delikleri, yanık izleri vb. için yararlıdır.
Yapılandırma alt öğeleri:

- HitMarkEffect (StringValue) (isteğe bağlı) — WeaponsSystem/Assets/Effects/HitMarks içerisinde depolanan bir vuruş işaretinin adı; varsayılan BulletHole'dur.
- AlignHitMarkToNormal (BoolValue) (isteğe bağlı) — Vuruş işaretinin her zaman mermi deliği gibi yüzeye paralel görünmesini istiyorsanız true'ya ayarlayın, mermi yukarısındaki bölgeden geldiği gibi yüzeye oturursa false'ya ayarlayın. Varsayılan true'dur.
Aşağıdaki isteğe bağlı varlığı WeaponsSystem/Assets/Effects/HitMarks içerisine ekleyebilirsiniz:

- Glow (Decal) (isteğe bağlı) — Vuruş yapılan yüzeyde tam opakken görüntülenir, sonra hızlı bir şekilde daha şeffaflaşır, üst yüzeyde hemen hemen bu özellik yenilenecek. Patlayıcıların vurduğu yerde parlak kırmızı işaretin görünmesi gibi çalışabilir.
- BulletHole (Decal) (isteğe bağlı) — Vuruş yapılan yüzey tamamen opak ve 4 saniye sonra bir saniye içinde şeffaflaşır.
- ImpactBillboard (BillboardGui) (isteğe bağlı) — Vurulan yüzeyde görüntülenen ve her zaman kameraya doğru bakar.
- Impact (ImageLabel) (isteğe bağlı) — ImpactBillboard'in doğrudan çocuğu; bu, tam opak olarak başlar, ImpactBillboard'in tam boyutuna 0.1 saniyede büyür ve sonra yarı boyutuna küçülüp tamamen şeffaf hale gelir.
- Herhangi bir Part/MeshPart/SpecialMesh görüntülemek istediğiniz bir fiziksel projeyi görmek. Örneğin, bir ok MeshPart içerip yukarıda belirtilen AlignHitMarkToNormal'ı false yaparak okun, vurulduğu yüzey tarafından görünmesini sağlarsınız.
Patlayan projeler
Projeler, çarpma noktasında oyuncu karakterlerine hasar vermek için bir Patlama nesnesi içerebilir.
Yapılandırma alt öğeleri:

- ExplodeOnImpact (BoolValue) (isteğe bağlı) — Silah için mermilerin/projelerin çarpma anında patlamasını istiyorsanız true olarak ayarlayın, aksi halde false. Varsayılan false'dır.
- BlastDamage (NumberValue) (isteğe bağlı) — Patlama merkezindeki nesnelere verilen hasar. Patlama merkezinden uzaklaştıkça, patlamanın verdiği hasar azalır. Varsayılan 100'dür.
Şarjlı silah
Ray tüpü gibi bir şarjlı silahın tekrar ateş edebilmesi için, mermiden önce şarj edilmesi gerekir.
Model alt öğeleri:

- Charging (Sound) (isteğe bağlı) — Silah şarj edilirken çalar.
- Discharging (Sound) (isteğe bağlı) — Silah boşaltılırken çalar, örneğin silahı kısmen şarj edip ateş butonunu bırakırsanız.
- ChargeComplete (Sound) (isteğe bağlı) — Silah tamamen şarj olduğunda çalar.
- DischargeComplete (Sound) (isteğe bağlı) — Silah tamamen boşaldığında çalar.
- ChargeGlow (BasePart) (isteğe bağlı) — Bu nesne, silah tam olarak şarj olduğunda tamamen opak olana kadar daha az şeffaf hale gelir.
- ChargeCompleteParticles (ParticleEmitter) (isteğe bağlı) — Silah tamamen şarj olduğunda yayılır. Bu yayıcı, herhangi bir model BasePart veya Attachment içerisinde yer alabilir.
- DischargeCompleteParticles (ParticleEmitter) (isteğe bağlı) — Silah tamamen boşaldığında yayılır. Bu yayıcı, herhangi bir model BasePart veya Attachment içerisinde yer alabilir.
- ChargingParticles (ParticleEmitter) (isteğe bağlı) — Silah şarj edilirken yayılır. Bu isimle birçok yayıcı da dahil edebilirsiniz ve her biri şarj olurken yayılır. Bu yayıcı, herhangi bir model BasePart veya Attachment içine yerleştirilebilir.
Yapılandırma alt öğeleri:

- ChargeRate (NumberValue) — Silahın şarj olmadan önce miktarı. Bu değer, şarj edileceği anlamına gelmektedir.
- DischargeRate (NumberValue) (isteğe bağlı) — Silahın boşalmasının hızı; varsayılan 0, yani silah boşalamaz.
- ChargePassively (BoolValue) (isteğe bağlı) — Silahın, tıkladığınızda hemen şarj olmasını istiyorsanız true, aksi takdirde tıklayarak silahı şarj etmeyi ve tam şarj işlemine geçmek için ateş etmeyi istiyorsanız false yapın. Varsayılan false'dır.
- ChargingParticlesRatePerCharge (IntValue) (isteğe bağlı) — Tüm ChargingParticles yayıcılarından çıkacak partikel sayısını, silahın mevcut şarjına çarparak yayar. Varsayılan 20, yani silahın şarjı %10'daysa, her ChargingParticles yayıcı 2 parçacık yayılır (20×0.1), ve silahın şarjı %90'da, her yayıcı 18 parçacık yayar (20×0.9).
- FireDischarge (NumberValue) (isteğe bağlı) — Silahın tam şarjlı bir atışta kaybedeceği şarj miktarı; varsayılan 1'dir.
- NumChargeCompleteParticles (IntValue) (isteğe bağlı) — Silah tamamen şarj olduğunda ChargeCompleteParticles yayıcısının yayacağı toplam parçacık sayısı. Varsayılan 25'dir.
- NumDischargeCompleteParticles (IntValue) (isteğe bağlı) — Silah tamamen boşaldığında DischargeCompleteParticles yayıcısının yayacağı toplam parçacık sayısı. Varsayılan 25'dir.
Yay tüfeği
Yay tüfeği gibi bir silah, gerçek bir ip ve kollar yapısı içerebilir ve ayrıca ipte nişan almış görsel bir ok içerebilir.
Model alt öğelerini eklemenin yanı sıra, şunları uygulamanız gerekir:
- Silahı şarjlı silah yapın. Örneğin, ipin ne kadar hızlı çekildiğini belirten silahın Configuration'unda gerekli ChargeRate değerini ekleyin. Ayrıca, silahın Model'ına ipin/kolun çekildiğinde yankılanmasına izin veren bir Charging sesi gibi isteğe bağlı alt öğeler de eklemeyi düşünün.
Model alt öğeleri:

- LeftString (Beam) (isteğe bağlı) — Gerçek sol ip.
- RightString (Beam) (isteğe bağlı) — Gerçek sağ ip.
- Arrow (BasePart) (isteğe bağlı) — Yay tamamen çekildiğinde görünen ok. Unutmayın ki bu sadece yay üzerindeki görsel bir nesne (gerçekten ateş edilen ok, Proje/Vuruş Efektleri ve Sesleri içinde bir ShotEffect olarak belirtilecektir).
- String1 (Attachment) (isteğe bağlı) — İpin merkez noktası.
- StringLoose (Attachment) (isteğe bağlı) — Yay dinlendiği zaman String1'in hangi noktada olduğunu belirten bağlı.
- StringTight (Attachment) (isteğe bağlı) — Yay tamamen çekildiğinde String1'in hangi noktada olduğunu belirtir.
- Arms (Part) (isteğe bağlı) — Yayın çekim sırasında animasyon provasının yer almasını sağlayacak bir parça. Bu aşağıdaki doğrudan alt çocuk nesnelerini içerebilir:
- LeftString0 (Attachment) (isteğe bağlı) — Yay üzerindeki sol ip kısmının bağlantı noktası.
- RightString0 (Attachment) (isteğe bağlı) — Yay üzerindeki sağ ip kısmının bağlantı noktası.
- LeftLoose (Attachment) (isteğe bağlı) — Yay dinlendiğinde LeftString0'ın hangi noktada olacağını belirtir.
- RightLoose (Attachment) (isteğe bağlı) — Yay dinlendiğinde RightString0'ın hangi noktada olduğunu belirtir.
- LeftTight (Attachment) (isteğe bağlı) — Yay tamamen çekildiğinde LeftString0'ın hangi noktada olması gerektiğini belirtir.
- RightTight (Attachment) (isteğe bağlı) — Yay tamamen çekildiğinde RightString0'ın hangi noktada olması gerektiğini belirtir.
- [SpecialMesh] (SpecialMesh) (isteğe bağlı) — Yayı çekildiğinde gerçekten bükülen parça. Buna animasyon yapabilmeniz için aşağıdaki dört Vector3Value nesnesini belirtmelisiniz.
Silah sistemi GUI'si
Temel silah sistemi, GUI'yi güncellemek için bu sistemle etkileşimde bulunur; tabancanın yayılma durumu, vurulduğunuzu veya diğerlerini vurduğunuzda göstergeler gibi.
WeaponsSystemGui, WeaponsSystem/Assets içindeki bir ScreenGui nesnesidir ve deneyim başladığında PlayerGui'ya gelir. WeaponSystemGui'nın 4 alt öğesi vardır:
- ScalingElements - Ekranda bulunan unsurların bir Folderı.
- LargeTouchscreen - Büyük dokunmatik ekranlar için düğme içeren bir Frame.
- SmallTouchscreen - Küçük dokunmatik ekranlar için düğme içeren bir Frame.
Ölçekleme elemanları
ScalingElements, WeaponsSystemGui altında aşağıdaki alt öğelere sahip bir Folderdır:
| İsim | Örnek türü | Açıklama |
|---|---|---|
| DirectionalIndicators | Folder | Tüm yön gösterge nesnelerinin depolandığı bir Folder. |
| Crosshair | Frame | Şu nesneleri içeren bir Frame: [UIAspectRatioConstraint] - UIAspectRatioConstraint Alt - ImageLabel Sol - ImageLabel Sağ - ImageLabel Üst - ImageLabel |
| HitMarker | Frame | Şu nesneleri içeren bir Frame: [UIAspectRatioConstraint] - UIAspectRatioConstraint HitMarkerImage - Bir başka oyuncu karakterini vurduğunuzda görüntülenen ve kaybolan ImageLabel. |
LargeTouchscreen
LargeTouchscreen, büyük dokunmatik ekranlarda gösterilen düğmeleri içeren bir Framedir. LargeTouchscreen aşağıdaki alt öğeleri içerir:
- AimButton (ImageButton)
- FireButton (ImageButton)
Scope
Scope, HasScope'yu etkinleştirirken nişan alma sırasında görünecek bir ImageLabel içeren bir Frame'dir (bkz. Silah Yapısı).
Scope aşağıdaki alt öğelere sahiptir:
| İsim | Örnek türü | Açıklama |
|---|---|---|
| ScopeInstance | Frame | HasScope etkinleştirildiğinde bir silahla zoom yapıldığında kullanılan aşağıdaki varlıkları içeren bir Frame: [UIAspectRatioConstraint] - UIAspectRatioConstraint BottomBlack - Frame LeftBlack - Frame RightBlack - Frame TopBlack - Frame |
SmallTouchscreen
SmallTouchScreen, küçük dokunmatik ekranlarda gösterilen düğmeleri içeren bir Framedir. SmallTouchscreen aşağıdaki alt öğeleri içerir:
- AimButton (ImageButton)
- FireButton (ImageButton)
Yön göstergesi oluşturma
Yön gösterge nesneleri, oyuncunun nişan alma noktası çevresindeki yönü göstermek için kullanılır. Örneğin, birisi size ateş ederse, bu ateşin nereden geldiğini gösteren kırmızı yarım daire nişan alma noktanızın etrafında görünebilir. Diğer bir örnek, ayak seslerinin yönünü veya dolaylı mermilerin ya da çevresel şeylerin yönünü göstermek gibi.
Yeni bir gösterge oluşturmak için, WeaponsSystemGui/ScalingElements/DirectionalIndicators içinde şu yapıyı içeren yeni bir Gösterge Frame ekleyin:
| İsim | Örnek türü | Açıklama |
|---|---|---|
| [UIAspectRationConstraint] | UIAspectRatioConstraint | |
| [ImageLabel] | ImageLabel | Yön göstergesi görüntüsü. Görüntüyü Studio'da döndürmek gerekebilir, aksi takdirde görüntü düzgün işlenmeyebilir. Bu görüntü etiketi ayrıca kendi UIAspectRatioConstraint içine de sahip olmalıdır. |
| [Configuration] | Configuration | İsteğe bağlı ayarları içerir. Daha fazla bilgi için Göstergelerin Yapılandırılması bölümüne bakın. |
Oluşturduktan sonra, WeaponsSystem/Libraries/WeaponsGui içinde indicatorName'in etkinleştireceği gösterge adını ve yön gösterge görüntüsünün noktasındaki dünya konumunu belirtebilirsiniz:
self.DirectionalIndicatorGuiManager:ActivateDirectionalIndicator(indicatorName, worldPos)
Göstergelerin yapılandırması
Yön göstergeleri, [Gösterge] altındaki Configuration nesnesini ayarlayarak daha fazla düzenlenebilir. Bu ayarların tümü varsayılan bir değere sahiptir, bu nedenle bir ayarı değiştirmediğinizde bir yapılandırma ayarlamanıza gerek yoktur.
Aşağıdaki yapılandırmalar ayarlanabilir:
| İsim | Örnek türü | Açıklama |
|---|---|---|
| DistanceLevelFromCenter | NumberValue | Ekranın merkezinden uzaklığa göre mesafe seviyesi sayısı (her mesafe seviyesi yaklaşık 0.03 ekran ölçeğidir); varsayılan 6'dır. |
| FadeTime | NumberValue | Göstergenin etkinleştirildikten sonraki kaybolma süresi ve TimeBeforeFade süresi; varsayılan 1'dir. |
| Name | StringValue | Kodu referans alarak yön göstergesinin adını belirle; varsayılan, göstergenin en üst düzey Frame'ının adıdır. |
| TimeBeforeFade | NumberValue | Göstergenin kaybolmadan önce görüneceği süre (saniye cinsinden); varsayılan 1'dir. |
| TransparencyBeforeFade | NumberValue | Göstergenin kaybolmadan önceki şeffaflığı; varsayılan 0'dır. |
| WidthLevel | NumberValue | Merkezden uzaklığa göre genişlik düzeyleri sayısı (her genişlik düzeyi yaklaşık 0.03 ekran ölçeğidir); varsayılan DistanceLevelFromCenter'ın değeri. |
Hasar tabelasını göster
Hasar tabelası, bir karaktere hasar verildiğinde karakterin başının üstünde küçük sayıları göstermek için kullanılır. Bu, yalnızca başka bir oyuncunun karakterine hasar veren oyuncu için görüntülenecektir; seyirci oyuncular için gösterilmeyecek.
Hasar tabelası WeaponsSystem/Libraries/DamageBillboardHandler içinde işlenir ve herhangi bir istemci tarafı kodundan aşağıdaki gibi etkinleştirilebilir. Burada hasar, verilen hasarın miktarı ve adornmentPart, tabelanın hangi parçanın üzerine konulacağını gösterir; örneğin, kurbanın başı:
DamageBillboardHandler:ShowDamageBillboard(damage, adornmentPart)
Omuz kamerası
Omuz kamerası, oyuncu karakterinin sağ omuzunun üzerinden bakılırken üçüncü şahıs kamerasıdır. Omuz kameranızı özelleştirmek için, WeaponsSystem/Libraries/ShoulderCamera içindeki ShoulderCamera.new() fonksiyonundaki -- Configuration parameters (sabitler) yorumunun altındaki değişkenleri değiştirebilirsiniz. Alan derinliği, karakterden uzaklık, koşma veya koşma ve yakınlaştırma sırasında yürüyüş hızındaki gibi şeyleri değiştirmek mümkündür.
Sprint ve yakınlaştırma kontrolü
Varsayılan olarak, silah sistemi, oyuncuların Shift tuşuna basarak, dinamik parmağı tamamen yukarı kaldırarak (mobil) veya sol joystick'i (oyun kumandası) tamamen yukarı iterek koşma yeteneği ekler. Sprinti devre dışı bırakmak istiyorsanız, WeaponsSystem/Configuration içinde SprintEnabled değerini false olarak ayarlayın.
Sistem ayrıca, oyuncular nişan alırken/zoom yaparken hızlarını azaltır; ancak bu davranışı devre dışı bırakmak için SlowZoomWalkEnabled değerini false olarak ayarlayabilirsiniz.









