Untuk membantu menciptakan pengalaman kompetitif berdasarkan tema pertempuran, beberapa senjata yang didukung tersedia untuk digunakan dalam pengalaman apa pun. Core system menyertakan senjata berbasis proyektil dengan kamera di atas bahu, dan menetapkan kecepatan proyektil cukup tinggi untuk menyimulasikan senjata raycasting seperti senjata laser.
Untuk menggunakan senjata yang disetujui dalam pengalaman Anda:
- Pilih senjata dari bawah, menuju ke tautan library aset.
Pada halaman item senjata, klik tombol hijau Dapatkan dan konfirmasi transaksi.
Di Studio, buka Kotak Alat ( Lihat → Kotak Alat ).
Pilih toolbox Anda Inventaris bagian.
Temukan senjata dan klik untuk menambahkannya ke tempat. Ketika diminta apakah akan menempatkan alat ini ke dalam paket pemula, klik Ya jika Anda ingin pemain memulai dengan senjata di ransel mereka, atau klik Tidak untuk hanya menempatkan senjata di dunia 3D sebagai pilihan.
Jika ini adalah pertama kalinya membawa senjata yang disetujui, pindahkan WeaponsSystem folder ke ServerScriptService untuk menyajikan sebagai 2> sistem folder yang disetujui untuk semua senjata dalam pengalaman.
Struktur Folder Sistem
Folder WeaponsSystem adalah folder yang dikurungi yang berisi aset, konfigurasi, dan skrip yang mendukung semua senjata yang disetujui dalam pengalaman. Jika berada di ServerScriptService , itu menggeser overrides apa pun Folder WeaponsSystem yang mungkin berada di dalam senjata masing-masing.
Foldir WeaponsSystem berisi instans berikut:
- Aset ( Folder )
- Perpustakaan ( Folder ) – Menyimpan semua ModuleScripts lainnya yang digunakan dalam sistem senjata.
- Jenis Senjata ( Folder ) – Spesifikasi semua jenis senjata.
- ServerWeaponsScript ( Script )
- Versi ( IntValue )
- ClientWeaponScript ( LocalScript )
- Panggilan Jaringan ( ModuleScript )
- Data senjata ( RemoteEvent )
- Sistem Senjata ( ModuleScript )
Dalam Folder WeaponsSystem , berbagai aspek diperiksa oleh ModuleScripts berikut:
Aspek | Dihandling Secara Utama Dalam... |
---|---|
Kesesuaian Senjata |
|
Kamera Bahu |
|
Senjata GUI |
|
Struktur Senjata
Senjata yang didukung adalah Tools dan bernama seperti yang akan muncul di ransel pemain. Setiap senjata dibangun dengan hierarki serupa.
Jenis Senjata
The WeaponType StringValue correspond with the ModuleScript for the weapon in the 1> WeaponsSystem1> / 4> WeaponTypes4> folder. The two base values are 7> BulletWeapon7> and 0> BowWeapon0>.
Model Senjata
Setiap senjata berisi Model yang terdiri dari satu atau lebih BaseParts untuk membentuk senjata fisik. Salah satu dari ini harus diatur sebagai PrimaryPart .
Model ini juga mencakup beberapa anak yang penting yang mungkin berkaitan dengan salah satu dari model's BaseParts :
- TipAmount – Attachment whose position on the parent BasePart determines where bullets/projectiles come out.
- Penanganan Aksesori – Attachment whose posisi di bagian atas BasePart menentukan di mana penyambungan 0> Penanganan0> dibentuk.
- Dibakar – Sound yang bermain saat senjata diperang.
- Ulang Pemuatan Senjata – Sound yang dimainkan saat senjata diisi ulang.
- Anak cucu tambahan untuk setiap opsional khusus.
Penanganan Senjata
Bagian Penanganan menentukan di mana karakter pemain menahan senjata. Ini harus menjadi Part, dan harus bernama Penanganan , dan harus menjadi anak langsung dari senjata (alat).
Folder Konfigurasi
Folder Konfigurasi berisi jenis "值" tertentu untuk perilaku senjata. Selain default, Anda dapat menambahkan item konfigurasi tambahan untuk opsi khusus ketika berlaku.
Adalah sebagai berikut adalah konfigurasi dasar dan nilai default mereka:
Barang | Deskripsi | Standar |
---|---|---|
Kapasitas Amunisi | Jumlah tembakan di setiap "magazin peluru" sebelum pemain harus memuat ulang. Catat bahwa amunisi tidak terbatas dan ini tidak menguraikan berapa banyak amunisi yang dibawa pemain. | 30 |
Mode Api | Pilih dari Semiautomatis (satu tembakan per klik / tap), Otomatis (tembakan terus-menerus), atau Tembak Jitu (burst tembakan sama dengan 1> NumBurstShots1> di setiap klik / tap). | Semiautomatisasi |
Kurungan Dingin | Waktu tunggu minimum antara klik. Untuk senjata dengan Mode Api dari Otomatis , ini juga merupakan waktu antara tembakan saat menekan tombol fire atau menahan klik. | 0.1 |
Waktu Pemulihan Peluru Mainan | Waktu antara setiap tembakan dalam burst; hanya masalah jika Anda menetapkan Mode Api ke Burst . | Nilai ShotCooldown |
Tembakan NumBurst | Jumlah tembakan per klik / burst; hanya masalah jika Anda menetapkan Mode Api ke Tembakkan . | 3 |
Kerusakan Ketukan | Jumlah kerusakan setiap hit langsung yang dilakukan. | 10 |
Penuh Jarak Kerusakan | Jarak maksimum yang tembakan akan memberikan kerusakan penuh. Apa pun yang terkena di luar jarak ini akan menerima lebih sedikit dan lebih sedikit kerusakan saat jarak menjadi dekat NolDamageDistance . | 1.000 |
Nol Kerusakan Jarak | Apa pun yang terkena atau di luar jarak ini tidak akan menerima kerusakan. | 10.000 |
Kecepatan Peluru | Kecepatan proyektil/peluru saat ditembak. Mengatur ini ke nilai yang sangat tinggi seperti 20000 menyimulasikan senjata raycasting seperti senjata laser. | 1.000 |
Jarak Maksimal | Proyektil/peluru jarak maksimum menumpul sebelum menghilang. | 2000 |
MinSpread | Jumlah minimum penyebaran untuk senjata. | 0 |
MaxSpread. | Jumlah maksimum penyebaran untuk senjata. | Nilai MinSpread |
Faktor Gravitasi | Jumlah yang gravitasi harus menginflueni setiap peluru/proyektil. Misalnya, nilai ini untuk Crossbow adalah 1 karena panah berkembang selama penerbangan, tetapi nilai ini untuk Rocket Launcher adalah 0 karena roket diteleportasi lurus. | 0 |
Memiliki Skala | Tetapkan untuk benar jika Anda ingin menggunakan scope yang ditentukan dalam Weapons System GUI . | benar |
Animasi Ulang Daya | Nama animasi reload dalam Aset / Animasi dari sistem folder . | RifleReload |
Jalur Bidikan | Nama animasi tujuan dalam Aset / Animasi dari sistem folder . | Tujuan Rifle |
Jalur Pemandangan | Nama animasi zooming tujuan dalam Aset / Animasi dari sistem folder . | Tujuan RifleDownSights |
RecoilMin | Minimum recoil ditambahkan untuk setiap tembakan. | 0.05 |
RecoilMax | Maksimum recoil ditambahkan untuk setiap tembakan. | 0,5 |
TotalRecoilMax | Jumlah maksimum recoil yang dikumulkan. Recoil senjata saat ini tidak akan pernah melebihi nilai ini. | 2 |
RecoilDecay | Pengganda decay untuk mundur; pada dasarnya tingkat di mana decay berkurang setelah menembak. | 0,825 |
Waktu Penundaan Kembali | Waktu tunggu setelah menembak/klik sebelum mundur ditambahkan ke kamera. | 0.07 |
Waktu Pemulihan Penggunaan | Panjang waktu setelah melengkapi senjata sebelum pemain dapat menembak. Ini mencegah pemain menembak tembakan tunggal dari beberapa senjata berbeda dalam waktu cepat. | 0.2 |
Kecepatan Balik Nama Akuisisi Pelanggaran Api | Jumlah yang ketinggiannya dapat bervariasi untuk suara Fired senjata. Tetapkan ini ke 0 untuk selalu memainkannya pada ketinggian yang sama. | 0.1 |
NumProyektil | Jumlah peluru/proyektil yang akan menembak saat Anda mengklik/mengetuk sekali. Ini berguna untuk senjata seperti Shotgun yang menembak banyak peluru saat sama waktu. Catat bahwa satu tembakan akan selalu menggunakan persis satu amunisi terlepas dari nilai ini. | 1 |
Opsi Khusus
Anda dapat menambahkan/modifikasi opsi berikut untuk setiap senjata. Kustomisasi ini mengharuskan modifikasi salah satu Model , Configuration , atau kedua. Beberapa kustomisasi bergantung pada orang lain, seperti Muzzle Particles yang memerlukan anak-anak yang diperlukan unt
Animasi dan Suara Bolt
Baut sebuah senjata adalah bagian yang bergerak kembali dan ke atas setiap kali ditembak.
- Cetakan dari senjata Model Senjata
Bolt | BasePart yang bergerak saat senjata ditembak. | |
BoltMotor | Motor6D digunakan untuk menganimasikan baut. Pastikan untuk menetapkan motor's Part0 ke model senjata PrimaryPart dan 0> Class.Motor6D.Part1|Part1 | |
BoltMotorStart | Attachment cuyo posisi di posisi BasePart menentukan di mana baut saat beristirahat. | |
BoltMotorTarget | Attachment yang posisinya di bagian atas BasePart menentukan di mana posisi baut akan ditentukan saat menembak. | |
BoltOpenSound | Sound yang dimainkan saat baut terbuka. | optional |
BoltCloseSound | Sound yang dimainkan saat tutupan baut ditutup. | optional |
- Anak-anak dari Konfigurasi folder senjata
Barang | Deskripsi | Standar |
---|---|---|
Taktik Terbuka Waktu | Waktu yang dibutuhkan untuk membuat posisi terbuka. | 0,025 |
Tanggal Tertutup Tindakan | Waktu yang dibutuhkan untuk membuat baut tertutup menjadi posisi tertutup. | 0.075 |
Mengejectasi Peluru Pengurang
Senjata dapat mencakup kasus peluru fisik yang keluar saat menembak dan jatuh ke tanah.
- Cetakan dari senjata Model Senjata
Pengeluaran CasingEjectPoint | Attachment cuyo posisi di posisi utama BasePart menentukan di mana Anda ingin keluar kasus peluru. Catat bahwa orientasinya menentukan arah di mana kasus pop-out. |
- Anak-anak dari Konfigurasi folder senjata
Barang | Deskripsi | Standar |
---|---|---|
Efek Penggantungan | Nama kasasi BasePart di Aset / Efek / 1> Kasasi1> dari 4> sistem folder4> . | |
Kecepatan Pengeluaran CasingEjectSpeedMin | Kecepatan ejeksi minimum kasus | 15 |
Kecepatan Maksimum Penyelubung Dinding | Kecepatan ejeksi maksimum kas | 18 |
Suara Penggulungan Tertutup | Sound yang dimainkan ketika kasus menghantam tanah. | optional |
Efek Proyektil/Tekanan dan Suara
Anda dapat mengkonfigurasi proyektil fisik untuk setiap senjata, bersama dengan Sounds, Beams, dan ParticleEmitters untuk efek hit dan efek khusus lainnya.
- Anak-anak dari Konfigurasi folder senjata
Barang | Deskripsi | Standar |
---|---|---|
Efek Tembakan | Nama efek tembak yang disimpan di dalam Aset / Efek / Shot dari 2> sistem folder2> . | |
SeharusnyaMovePart | Tetapkan untuk benar jika ShotEffect senjata harus bergerak dengan proyektil atau false jika tidak. Anda hanya harus menetapkan ini menjadi 1> benar1> jika ada objek yang terlihat yang bergerak dengan setiap tembakan, seperti panah atau roket. | benar |
Waktu Pudar Cahaya | Waktu yang dibutuhkan untuk Beam0 atau Beam1 ( lihat di bawah ini ) untuk memudar setelah peluru/proyektil menghantam sesuatu. Secara default, tidak ada adegan pudaran manual akan diterapkan oleh kode. | 0 |
Lebar Luar Angkasa 0 | Ketebuhan dari Beam0 atau Beam1 di Attachment0 ( 1> lihat di bawah ini1> ). | 1.5 |
Lebar1 | Ketebuhan dari Beam0 atau Beam1 di Attachment1 ( 1> lihat di bawah ini1> ). | 1.8 |
NumHitParticles | Jumlah partikel yang dipancarkan oleh HitParticles ( lihat di bawah ) emitter akan dipancarkan. | 3 |
HitParticlesUsePartColor | Tetapkan untuk benar jika Anda ingin partikel hit berwarna hit; salah jika Anda ingin partikel hit berwarna tidak berubah warna. | benar |
- Cetakan turun dari ShotEffect yang ditunjukkan dalam bagian sebelumnya
Terbang | Sound yang bermain saat peluru/proyektil bepergian. | optional |
Sinar0 | Slot pertama untuk menyebarkan Beam di belakang peluru/proyektil. Jangan lupa untuk mengatur Attachment0 dan Attachment1 . | optional |
Sinar1 | Slot kedua untuk Beam mengikuti proyektil/peluru. Jangan lupa untuk mengatur Attachment0 dan Attachment1 . | optional |
Peralatan0 | Class.Rotation cuyo posisi di posisi utama BasePart menentukan posisi belakang sinar; pastikan untuk menetapkan Beam.Attachment0 di kedua 0> Beam00> dan Attachment3> ini. | optional |
Perlengkapan1 | Class.Rotation cuyo posisi di posisi utama BasePart menentukan bagian depan dari balok berikut; pastikan untuk menetapkan Beam.Attachment1 di kedua 0> Beam00> dan Attachment3> ini. | optional |
Partikel Jalanan | ParticleEmitter dianggap sebagai anak langsung dari Attachment0 ; ini akan mengeluarkan saat peluru/proyektil berpergian. | optional |
Partikel Pemimpin | ParticleEmitter dianggap sebagai anak langsung dari Attachment1 ; ini akan mengeluarkan saat peluru/proyektil berpergian. | optional |
Efek Hit | Attachment cuyo posisinya akan diatur menjadi Beam.Attachment1 dari Beam0 ketika proyektil/peluru menghantam. Anda harus menentukan 0> Beam00> dan aksesori untuk kinerjanya. | optional |
Suara Pukulan | Sound bermuatan sebagai anak langsung dari HitEffect ; bermain ketika peluru/proyektil menghantam. | optional |
HitParticles. | Sound bermantan sebagai anak langsung dari HitEffect ; bermits ketika peluru/proyektil menghantam. | optional |
[Bagian Proyek] | Setiap Part atau MeshPart yang ingin Anda tampilkan sebagai proyek fisik. Pastikan Anda menetapkan ShouldMovePart yang ditunjukkan dalam bagian sebelumnya menjadi 1> benar1> jika Anda memiliki objek yang terlihat di sini. | optional |
Partikel Muzzle
Pilihan ini menghasilkan partikel dari ParticleEmitter yang ditentukan di TipAmountAttachment ketika diaktifkan.
Desendants konfigurasi:
- ShotEffect ( StringValue ) — Nama efek tembak yang disimpan di dalam WeaponsSystem/Assets/Effects/Shots .
- PartikelNumMuzzle ( IntValue ) (opsional) — Jumlah partikel muzzle yang akan dipancarkan; default adalah 50 .
Untuk efek tembak yang ditentukan, tambahkan aset ParticleEmitter dalam WeaponsSystem/Assets/Effects/Shots bernama MuzzleParticles .
Mata Bulu
Opsi ini menciptakan efek Beam flash saat senjata ditembak.
Cetakan turun:
- MuzzleFlash0 ( Attachment ) — Digunakan untuk menentukan satu sisi muzzle flash. Posisi tidak masalah.
- MuzzleFlash1 ( Attachment ) — Digunakan untuk menentukan sisi berlawanan dari muzzle flash. Posisi tidak masalah.
- MuzzleFlash ( Beam ) — Pastikan untuk menetapkan Attachment0 ke 0> MuzzleFlash00> dan 3> Attach13> ke 6> MuzzleFlash1 6> .
Desendants konfigurasi:
- MuzzleFlashTime ( NumberValue ) (opsional) - Panjang waktu muzzle flash akan ditunjukkan untuk; default adalah 0.03 .
- MuzzleFlashRotation0 ( NumberValue ) (opsional) — Rotasi minimum muzzle flash; default adalah -math.pi .
- MuzzleFlashRotation1 ( NumberValue ) (opsional) — Rotasi maksimum muzzle flash; default adalah math.pi .
Jejak Partikel
Opsi ini menciptakan jejak panjang bervariasi dari senjata ke titik pengaruh proyektil.
Desendants konfigurasi:
- PanjangJalanTerowongan ( NumberValue ) (opsional) — Panjang jalan di balik peluru/proyektil; default adalah nil yang berarti panjang jalan akan dihitung menggunakan 0> TrailLengthFactor0> .
- TrailLengthFactor ( NumberValue ) (opsional) — Panjang jejak akan diatur ke nilai ini dikalikan dengan jarak yang ditempuh proyektil/peluru; default adalah 1 . Catat bahwa ini akan diatasi jika Anda meng включить 0> TrailLength 0> .
- Tampilkan seluruh jejak sampai hit ( BoolValue ) (opsional) — Tetapkan ke true untuk menyelesaikan jejak dari ujung senjata sampai ke mana proyektil berada; ini akan mengal
Tanda-tanda Hit
Addon visual ini muncul di permukaan di mana proyektil menghantam dan berguna untuk panah, lubang lempar, goresan, dll.
Desendants konfigurasi:
- HitMarkEffect ( StringValue ) (opsional) — Nama hit mark effect yang disimpan di dalam WeaponsSystem/Assets/Effects/HitMarks ; default adalah 0> BulletHole 0> .
- AlignHitMarkToNormal ( BoolValue ) (opsional) — Tetapkan untuk benar jika hit mark harus selalu berada di atas permukaan seperti lubang peluru, atau 0> benar 0> jika hit mark tampak terjebak di permukaan dari arah tembak (seperti panah). Standar adalah 3> benar </
Anda dapat menambahkan aset berikut yang opcional dalam WeaponsSystem/Assets/Effects/HitMarks :
- Bersinar ( Decal ) (opsional) — Muncul di permukaan pukulan sepenuhnya opake, lalu dengan cepat menjadi lebih transparan, seperti efek bersinar pada permukaan yang memudar dengan cepat. Berguna untuk hal-hal seperti menunjukkan tanda merah bersinar di mana ledakan.
- BulletHole ( Decal ) (opsional) — Muncul di permukaan pukulan sepenuhnya opake dan, setelah 4 detik, memudar menjadi transparan selama 1 detik.
- Papan Pengaruh影响 (BillboardGui ) (opsional) — Menampilkan di permukaan pukul, selalu menghadap ke kamera.
- Pengaruh ( ImageLabel ) (opsional) — Anak langsung dari Papan Masa Pengaruh ; ini dimulai sepenuhnya opake, tumbuh ke ukuran penuh 0> Papan Masa Pengaruh0> di atas 0,1 detik, lalu memudar menjadi setengah ukurannya dan menudar menjadi transparan penuh dalam 0,1 detik.
- Apa pun Part / MeshPart / SpecialMesh yang Anda inginkan untuk muncul sebagai proyektil fisik (opsional). Misalnya, termasuk panah 1> Class.MeshPart1> dan menetapkan 4> AlignHitMarkToNormal
Proyektil Berdetak
Proyektil dapat mencakup objek ledakan untuk menyebabkan kerusakan karakter pemain di area sekitar titik pengaruh.
Desendants konfigurasi:
- ExplodeOnImpact ( BoolValue ) (opsional) — Tetapkan untuk true jika Anda ingin proyektil/proyektil untuk senjata untuk meledak pada impact, 0> false 0> jika tidak. Standar adalah 3> false 3> .
- Kerusakan ledakan ( NumberValue ) (opsional) — Kerusakan yang dibagikan kepada benda di tengah ledakan. Catat bahwa ledakan menyebabkan lebih sedikit kerusakan saat benda-benda yang terkena jauh dari pusat ledakan. Standar adalah 100 .
Mengisi Senjata
Senjata pengisian daya seperti Railgun harus diisi ulang antara tembakan sebelum bisa menembak lagi.
Cetakan turun:
- Mengisi daya ( Sound ) (opsional) — Bermain saat senjata sedang mengisi daya.
- Discharging ( Sound ) (opsional) — Bermain saat senjata sedang discharge, misalnya jika Anda mengecharge senjata hanya sebagian dan melepaskan tombol menembak.
- Pengisian Daya Selesai ( Sound ) (opsional) — Memainkan ketika senjata mencapai pengisian kenakan biayapenuh.
- DischargeComplete ( Sound ) (opsional) — Memainkan ketika senjata telah sepenuhnya terisi daya.
- ChargeGlow ( BasePart ) (opsional) — Objekt ini akan menjadi kurang transparan saat senjata mengisi daya, sehingga akan menjadi benar-benar opak saat 100% mengisi kenakan biaya.
- ChargeCompleteParticles ( ParticleEmitter ) (opsional) — Diberitahu ketika senjata telah selesai mengisi. Emitter ini dapat menjadi anak dari setiap model BasePart atau anak dari setiap 0> Class.Attachment0> dalam 3> Class.BasePart 3> .
- DischargeCompleteParticles ( ParticleEmitter ) (opsional) — Diberikan ketika senjata telah sepenuhnya terisi. Emitter ini dapat menjadi anak dari setiap model BasePart atau anak dari setiap model 0> Class.Attachment0> dalam 3> Class.BasePart 3> .
- MengisiParticles) ( ParticleEmitter ) (opsional) — Menghasilkan saat senjata mengisi. Anda dapat meng包括 beberapa emitter dengan nama ini dan masing-masing akan menghasilkan saat mengisi. Emitter ini dapat menjadi anak dari setiap model Class.BasePart</
Desendants konfigurasi:
- TargeRate ( NumberValue ) — Targe di mana senjata akan kenakan biaya.Nilai ini harus ditentukan untuk menunjukkan bahwa senjata menggunakan pengisian.
- Tingkat Pengisian Daya Harapiah ( NumberValue ) (opsional) — Tingkat di mana senjata akan mengisi daya; default adalah 0 yang berarti senjata tidak akan mengisi daya sama semua.
- Mengisi Daya Secara Pasif ( BoolValue ) (opsional) — Tetapkan ke true jika Anda ingin senjata itu mengisi daya secara pasif sehingga akan menembak secara instan saat Anda mengklik, atau 0> false 0> jika Anda ingin mengklik / menyentuh untuk mengisi daya senjata dan mem
- MengisiParticlesRatePerCharge ( IntValue ) (opsional) — Jumlah partikel yang akan dikeluarkan dari semua MengisiParticles emitter dikalikan dengan charge saat ini senjata. Standar ad
- Pengisian Daya Berapi-api ( NumberValue ) (opsional) — Jumlah daya senjata akan hilang setelah menembakkan tembakan yang sepenuhnya terisi; default adalah 1 .
- NumChargeCompleteParticles ( IntValue ) (opsional) — Jumlah partikel yang dipancarkan oleh - ChargeCompleteParticles emitter setelah senjata benar-benar diisi daya. Standar adalah 25 .
- NumDischargeCompleteParticles ( IntValue ) (opsional) — Jumlah partikel yang dihasilkan - DischargeCompleteParticles emitter saat senjata benar-benar diisi ulang. Standar adalah 0> 25 0> .
Senjata Bow
Senjata busur seperti Crossbow dapat mencakup konstruksi string dan lengan yang realistis, serta panah visual yang dihantam ke string.
Selain menambahkan turunan model, Anda perlu menerapkan mengikuti:
- Buat senjata menjadi senjata pengisian daya . Misalnya, tambahkan tingkat pengisian daya yang diperlukan ChargeRate dalam senjata. Selain itu, pertimbangkan untuk menambahkan anak cucu opsi ke senjata Class.Configuration yang spesifikasi seberapa cepat string kembali. Sel
Cetakan turun:
- LeftString ( Beam ) (opsional) — Bagian kiri visual dari string.
- RightString ( Beam ) (opsional) — Bagian kanan visual dari string.
- Panah ( BasePart ) (opsional) — Panah yang muncul ketika busur benar-benar dirobek. Catat bahwa ini hanya untuk tampilan visual di busur (panah yang benar-benar diaktifkan akan menjadi ShotEffect seperti yang ditunjukkan dalam 0> Efek Proyektil/Tekanan0> .
- String1 ( Attachment ) (opsional) — Titik tengah dari string.
- Lengan ( Part ) (opsional) — Bagian yang hanya berfungsi sebagai indikator internal bahwa lengan bersarang akan di Animasi. Ini mungkin berisi anak-anak langsung berikut:
- LeftString0 ( Attachment ) (opsional) — Point di mana sisi kiri dari string ditempatkan di busur.
- RightString0 ( Attachment ) (opsional) — Point di mana sisi kanan string ditempatkan di jempol.
- LeftLoose ( Attachment ) (opsional) — Point di mana LeftString0 seharusnya saat jempol beristirahat.
- RightLoose ( Attachment ) (opsional) — Point di mana RightString0 seharusnya saat jempol beristirahat.
- RightTight ( Attachment ) (opsional) — Point di mana RightString0 seharusnya saat lengan ditarik sepenuhnya.
- [SpecialMesh] ( SpecialMesh ) (opsional) — Bagian dari busur yang akan benar-benar membungkuk saat busur ditarik. Catat bahwa Anda harus menyebutkan empat objek Vector3Value berikut untuk membuat animasi ini.
GUI Sistem Senjata
Sistem senjata inti berinteraksi dengan sistem ini untuk menyelesaikan GUI berdasarkan hal-hal seperti menyebar senjata, indikator untuk kapan Anda terkena atau memukul orang lain, dll.
The WeaponsSystemGui is a ScreenGui object in WeaponsSystem/Assets that is parented to 1> Class.PlayerGui1> when the experience starts. WeaponSystemGui has 4 descendants:
- ScalingElements - A Folder dari elemen on-screen.
- Tentang Besar Touchscreen - A Frame untuk tombol pada layar sentuh besar.
- Layar Kecil - A Frame untuk tombol pada layar sentuh kecil.
Skalasi Elemen
ScalingElements adalah Folder anak di bawah WeaponsSystemGui dengan pendahulun berikut:
Nama | Jenis Instans | Deskripsi |
---|---|---|
Indikator Arah | Folder | A Folder di mana semua indikator arah disimpan. |
Teropong | Frame | Sebuah Frame mengandung objek berikut: [UIAspectRationConstraint] - UIAspectRatioConstraint1> Bottom1> - 4> Class.ImageLabel4> < |
Pelacak Pukul | Frame | Sebuah Frame berisi objek berikut:[UIAspectRatioConstraint] - UIAspectRatioConstraint1> Hit MarkerImage1> - 4> Class.ImageLabel4> yang muncul dan memudar saat pemain berhasil memukul karakter pemain lain. |
Layar Besar
LargeTouchscreen adalah Frame yang berisi tombol yang ditampilkan di layar sentuh besar. LargeTouchscreen memiliki keturunan berikut:
- Tombol Bertujuan ( ImageButton )
- FireButton ( ImageButton )
Penglihatan
Skop adalah Frame yang berisi ScopeImage ( ImageLabel ) yang muncul saat zooming pada senjata dengan HasScope aktif (lihat 2> Struktur Senjata2>). Scope memiliki keturunan berikut:
Nama | Jenis Instans | Deskripsi |
---|---|---|
Kasus Penggunaan | Frame | Sebuah Frame yang berisi aset berikut yang digunakan saat zooming pada senjata dengan HasScope aktif: [UIAspectRationConstraint] - Class.UIAs |
Layar Kecil
SmallTouchScreen adalah Frame yang berisi tombol yang ditampilkan di touchscreen kecil. SmallTouchscreen memiliki keturunan berikut:
- Tombol Bertujuan ( ImageButton )
- FireButton ( ImageButton )
Buat Indikator Arah
Indikator arah digunakan untuk menunjukkan arah dari sesuatu di sekitar crosshair pemain. Misalnya, jika seseorang menembak Anda, setengah lingkaran merah muda bisa muncul di sekitar crosshair Anda dalam arah tembakan. Contoh lainnya termasuk indikator untuk menunjukkan arah langkah kaki, tembakan langsung, atau bahkan objek lingkungan seperti peti.
Untuk membuat indikator baru, tambahkan Indikator Frame dalam WeaponsSystemGui/ScalingElements/DirectionalIndicators dengan struktur berikut:
Nama | Jenis Instans | Deskripsi |
---|---|---|
[UIAspectRationLimit] | UIAspectRatioConstraint | |
[Label Gambar] | ImageLabel | Gambar dari indikator arah. Menyetel rotasi gambar di Studio mungkin diperlukan kecuali jika Anda mengunggah gambar sehingga menghadap ke bawah dan ada sedikit atau tidak ada ruang kosong di sekitarnya.Label gambar ini juga harus berisi UIAspectRatioConstraint . |
[Konfigurasi] | Configuration | Berisi proporsi pengaturan yang dapat disesuaikan. Lihat Konfigurasi Indikator untuk lebih banyak informasi. |
Setelah dibuat, Anda dapat mengaktifkan indikator melalui perintah berikut di dalam WeaponsSystem/Libraries/WeaponsGui di mana indicatorName adalah nama string dari indikator untuk mengaktifkan dan worldPos adalah posisi dunia di mana indikator arah harus menunjuk:
self.DirectionalIndicatorGuiManager:ActivateDirectionalIndicator(indicatorName, worldPos)
Konfigurasi Indikator
Indikator Arah dapat diubah lebih lanjut dengan menyesuaikan objek Configuration yang berada di bawah [Indicator] . Semua pengaturan ini memiliki nilai default, jadi tidak perlu menetapkan konfigurasi ketika tidak mengubah pengaturan.
Konfigurasi berikut dapat diatur:
Nama | Jenis Instans | Deskripsi |
---|---|---|
Tingkat Jarak Dari Pusat | NumberValue | Jumlah tingkat jarak dari tengah layar (setiap tingkat jarak sekitar 0,03 skala layar); default adalah 6 . |
Waktu Pudar | NumberValue | Waktu penyedotan indikator setelah aktivasi dan waktu TimeBeforeFade; default adalah 1 . |
Nama | StringValue | Nama indikator arah seperti yang Anda inginkan untuk mengacu pada kode; default adalah nama tingkat atas indikator Frame . |
WaktuSebelumFade | NumberValue | Jumlah detik yang penunjuk akan muncul sebelum memudar; default adalah 1 . |
TransparansiSebelumFade | NumberValue | Transparansi indikator sebelum memudar; default adalah 0 . |
Tingkat Lebar | NumberValue | Jumlah tingkat lebar dari tengah (setiap tingkat lebar adalah sekitar 0,03 skala gambar); default adalah nilai DistanceLevelFromCenter . |
Tampilkan Billboard Kerusakan
Billboard kerusakan digunakan untuk menunjukkan sedikit angka di atas kepala karakter saat mereka rusak. Ini hanya akan muncul untuk pemain yang merusak karakter pemain lain, bukan untuk menonton pemain.
Damage billboards di tangani dalam WeaponsSystem/Libraries/DamageBillboardHandler dan dapat diaktifkan dari kode pihak klien apa pun seperti berikut, di mana kerusakan adalah jumlah kerusakan yang dilakukan dan adornmentPart adalah bagian yang akan dihias billboard, seperti kepala korban:
DamageBillboardHandler:ShowDamageBillboard(damage, adornmentPart)
Kamera Bahu
Kamera bahu adalah kamera pihak ketiga yang melihat ke atas karakter pemain. Untuk menyesuaikan kamera bahu, modifikasi variabel di bawah komentar ShoulderCamera.new() dalam fungsi WeaponsSystem/Libraries/ShoulderCamera . Anda dapat mengubah hal-hal seperti panjang jangkauan, keberatan d
Sprint dan Zoom Kontrol
Secara default, sistem senjata menambahkan kemampuan "sprint", sehingga pemain dapat berlari dengan menahan Tombol Shift , menekan sepenuhnya di atas tombol dinamis (perangkat seluler), atau menekan sepenuhnya di kiri joystick (gamepad). Jika Anda ingin menonaktifkan sprint, tetapkan nilai S
Sistem juga mengurangi kecepatan pemain saat mereka bertujuan/berzoom, tetapi Anda dapat menonaktifkan perilaku ini dengan menetapkan nilai SlowZoomWalkEnabled menjadi false .