Silahlar kiti

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

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:

  1. Aşağıdan bir silah seçin, varlık kütüphanesi bağlantısına gidin.
Tabanca
Pompalı Tüfek
Otomatik Tüfek
Makarov Tüfeği
Keskin Nişancı Tüfeği
Yaylı Tüfek
El Bombası
Roketatar
Ray Tüpü
  1. Silahın öğe sayfasında, yeşil Al butonuna tıklayın ve işlemi onaylayın.

  2. Studio'da Araç Kutusunu açın.

  3. Araç kutunuzun Envanter bölümünü seçin.

  4. 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.

  5. 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:

WeaponsSystem klasörü içinde, farklı yönler aşağıdaki ModuleScripts tarafından kontrol edilir:

YönAğırlıklı olarak içinde ele alınan...
Silah işlevselliği
  • Libraries/BaseWeapon
  • WeaponTypes/BulletWeapon
  • WeaponTypes/BowWeapon
Omuz kamerası
  • Libraries/ShoulderCamera
Silah GUI'si
  • Libraries/WeaponsGui
  • Libraries/DirectionalIndicatorGuiManager
  • Libraries/DamageBillboardHandler

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:

  • TipAttachmentAttachment, ana BasePart üzerindeki konumu, mermilerin/projelerin nereden çıkacağını belirler.
  • HandleAttachmentAttachment, ana BasePart üzerindeki konumu, Handle 'nın nerede kaynaklanacağını belirler.
  • Fired
    optional
    – Silah ateşlediğinde çalan Sound.
  • Reload
    optional
    – Silah yeniden yüklendiğinde çalan Sound.
  • 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:

MaddeAçıklamaVarsayılan
AmmoCapacityOyuncunun 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
FireModeSemiautomatik ( 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
ShotCooldownTı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
BurstShotCooldownPatlama içindeki her atış arasındaki süre; sadece Ateş Modu'nu Patlama olarak ayarlarsanız önemlidir.ShotCooldown'un değeri
NumBurstShotsTıklamada/patlamada her atım için mermi sayısı; sadece Ateş Modu'nu Patlama olarak ayarlarsanız önemlidir.3
HitDamageHer direkt vuruşun ne kadar zarar verdiği.10
FullDamageDistanceAtışların tam hasar vereceği maksimum mesafe. Bu mesafeden daha uzakta vurulanlar, ZeroDamageDistance'a yaklaşırken daha az zarar alacaktır.1000
ZeroDamageDistanceBu mesafede veya daha ileride vurulan hiçbir zarar almaz.10000
BulletSpeedMermilerin/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
MaxDistanceMermilerin/projelerin kaybolmadan önce gidebileceği maksimum mesafe.2000
MinSpreadSilah için minimum yayılma miktarı.0
MaxSpreadSilah için maksimum yayılma miktarı.MinSpread'in değeri
GravityFactorAteş 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
HasScopeSilah sistemindeki Silah Sistemi GUI ile belirtilen dürbünü kullanmak istiyorsanız true olarak ayarlayın.false
ReloadAnimationSistem klasörü içindeki Assets/Animations'da yeniden yükleme animasyonu parçasının adı.RifleReload
AimTrackSistem klasörü içindeki Assets/Animations'da nişan animasyonu parçasının adı.RifleAim
AimZoomTrackSistem klasörü içindeki Assets/Animations'da nişan zoom animasyonu parçasının adı.RifleAimDownSights
RecoilMinHer atış için eklenen minimum geri tepme.0.05
RecoilMaxHer atış için eklenen maksimum geri tepme.0.5
TotalRecoilMaxToplam maksimum biriken geri tepme. Silahın mevcut geri tepmeleri bu değer kadar üst üste çıkamaz.2
RecoilDecayGeri tepme için düşüş çarpanı; aslında ateş ettikten sonra geri tepmenin ne kadar hızla azalacağıdır.0.825
RecoilDelayTimeAteş etme/tıklamadan sonra geri tepmenin kameraya eklenmeden önceki bekleme süresi.0.07
StartupTimeSilahı 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
FiredPlaybackSpeedRangeSilahı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
NumProjectilesBir 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.

BoltBasePart geri hareket ederken.
BoltMotorGeri 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.
BoltMotorStartDinlenme konumundaki makaranın nerede olduğunu belirleyen ana BasePart üzerindeki Attachment.
BoltMotorTargetAteş ederken makarayı canlandırmak için ana BasePart'daki ilgili Attachment'tir.
BoltOpenSoundSound makara açılırken çalar.
optional
BoltCloseSoundSound makara kapandığında çalar.
optional
MaddeAçıklamaVarsayılan
ActionOpenTimeMakarayı açmış konuma animasyon yapma süresi.0.025
ActionCloseTimeMakarayı 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.

CasingEjectPointAna BasePart üzerindeki konumu, mermi kovanlarının nereden çıkacağını belirleyen Attachment.
MaddeAçıklamaVarsayılan
CasingEffectAssets/Effects/Casings içindeki kovanın BasePart adı sistem klasörü.
CasingEjectSpeedMinKovanların minimum atış hızı.15
CasingEjectSpeedMaxKovanların maksimum atış hızı.18
  • Assets/Effects/Casings içindeki kovanın BasePart'inin altı
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.

MaddeAçıklamaVarsayılan
ShotEffectAssets/Effects/Shots klasörü altında saklanan bir atış efektinin adı.
ShouldMovePartSilahı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
BeamFadeTimeMerminin/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
BeamWidth0Beam0 veya Beam1'in Attachment0'daki kalınlığı. 1.5
BeamWidth1Beam0 veya Beam1'in Attachment1'deki kalınlığı.1.8
NumHitParticlesHitParticles (aşağıya bakın) yayıcısının yayacağı parça sayısı.3
HitParticlesUsePartColorVuruş 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

FlyingMerminin/projenin hareket ettiği süre boyunca çalan Sound.
optional
Beam0Merminin/projenin arkasında takılan ilk Beam için ilk alan. Attachment0 ve Attachment1'i ayarladığınızdan emin olun.
optional
Beam1Merminin/projenin arkasında takılan ikinci Beam için alan. Attachment0 ve Attachment1'i ayarladığınızdan emin olun.
optional
Attachment0Aş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
Attachment1Merminin/projenin uç kısmının arka tarafını Beam0 kadar tanımlayan Attachment.
optional
TrailParticlesAttachment0'in doğrudan çocuğu olarak ParticleEmitter; bu, merminin/projenin uçuşu sırasında yayım yapar.
optional
LeadingParticlesAttachment1'in doğrudan çocuğu olarak ParticleEmitter; bu, merminin/projenin uçuşu sırasında yayım yapar.
optional
HitEffectBir 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.
  • MuzzleFlash (Beam) — MuzzleFlash0 için Attachment0 ve MuzzleFlash1 için Attachment1 ayarlayın.

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.
  • MuzzleFlashSize0 (NumberValue) (isteğe bağlı) — Muzzle flaşının minimum boyutu; varsayılan 1'dir.
  • MuzzleFlashSize1 (NumberValue) (isteğe bağlı) — Muzzle flaşının maksimum boyutu; varsayılan 1'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 AlignHitMarkToNormalfalse 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.
  • BlastRadius (NumberValue) (isteğe bağlı) — Patlama alanı; varsayılan 8'dir.
  • BlastPressure (NumberValue) (isteğe bağlı) — Patlama basıncı; varsayılan 10000'dir.
  • 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.
  • WeaponType kodunu BowWeapon olarak ayarlayın, böylece Silah Yapısı belirtilebilir.

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.
  • LooseOffset (Vector3Value) (isteğe bağlı) — Yay dinlendiğinde SpecialMesh'in ofseti.
  • TightOffset (Vector3Value) (isteğe bağlı) — Yay tamamen çekildiğinde SpecialMesh'in ofseti.
  • LooseScale (Vector3Value) (isteğe bağlı) — Yay dinlendiğinde SpecialMesh'in ölçeği.
  • TightScale (Vector3Value) (isteğe bağlı) — Yay tamamen çekildiğinde SpecialMesh'in ölçeği.

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:

Ölçekleme elemanları

ScalingElements, WeaponsSystemGui altında aşağıdaki alt öğelere sahip bir Folderdır:

İsimÖrnek türüAçıklama
DirectionalIndicatorsFolderTüm yön gösterge nesnelerinin depolandığı bir Folder.
CrosshairFrameŞu nesneleri içeren bir Frame:

[UIAspectRatioConstraint] - UIAspectRatioConstraint
Alt - ImageLabel
Sol - ImageLabel
Sağ - ImageLabel
Üst - ImageLabel
HitMarkerFrameŞ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:

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
ScopeInstanceFrameHasScope 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:

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]ImageLabelYö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
DistanceLevelFromCenterNumberValueEkranı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.
FadeTimeNumberValueGöstergenin etkinleştirildikten sonraki kaybolma süresi ve TimeBeforeFade süresi; varsayılan 1'dir.
NameStringValueKodu referans alarak yön göstergesinin adını belirle; varsayılan, göstergenin en üst düzey Frame'ının adıdır.
TimeBeforeFadeNumberValueGöstergenin kaybolmadan önce görüneceği süre (saniye cinsinden); varsayılan 1'dir.
TransparencyBeforeFadeNumberValueGöstergenin kaybolmadan önceki şeffaflığı; varsayılan 0'dır.
WidthLevelNumberValueMerkezden 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.

©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.