Özel Varlık Oluşturma
Garry's Mod'da Özel Bir Varlık (Entity) Oluşturma
Giriş
Varlıklar (Entity) Nedir?
Garry's Mod'da görüp dokunabildiğiniz neredeyse her şey bir Varlık'tır (Entity). Oyun dünyasında bir konumu olan herhangi bir nesne bir Varlıktır. Oyuncu bir Varlıktır, proplar Varlıktır, hatta Oyun Dünyası'nın kendisi bile özel ve benzersiz bir Varlıktır.
Varlıklar, nasıl göründükleri ve onlarla nasıl etkileşime girilebileceği gibi şeyleri kontrol edebilen, geliştirici tarafından tanımlanmış özel davranışlara sahip olabilirler. Varlıklar genellikle Oyun Modlarının (Gamemode) ve Eklentilerin (Addon) temel parçalarıdır.
Bir Varlığın Bileşenleri Nelerdir?
Varlıkların 3 Alan'ın (Realm) hepsinde de özellikleri vardır:
- Client (İstemci) - Varlığın çizilmesi/görüntülenmesi.
- Server (Sunucu) - Varlığın davranışını ve etkileşimlerini kontrol etme.
- Shared (Paylaşılan) - Hem Sunucu hem de İstemci Alanları tarafından kullanılabilen yapılandırma ve özellikler.
Shared aslında bir Alan (Realm) değildir. Sadece hem İstemci'nin hem de Sunucu'nun Paylaşılan bir dosyada bulunan aynı kodu çalıştıracağı anlamına gelir.
Kurulum
Dosya Konumu
Bir Varlığı oluşturan dosya(lar) ya bir Eklenti (Addon) ya da bir Oyun Modu (Gamemode) içine yerleştirilmelidir.
Eklenti Varlık Konumu
Oyun Modu Varlık Konumu
Dosya Yapısı
Varlıklar şu yöntemlerden biri kullanılarak oluşturulabilir:
- Her biri bir Alan'ın (Realm) kodunu ve yapılandırmasını içeren 3 ayrı dosya.
- Bu yaklaşım kod organizasyonuna yardımcı olur.
- Bu dosyaları içeren klasörün adı (aşağıdaki örnekte
my-entity-name), Varlığın Sınıf Adı (Class Name) olarak kullanılacaktır.
- Dosyalar şunlardır:
cl_init.lua- İstemci Alanı (Client Realm)
init.lua- Sunucu Alanı (Server Realm)
shared.lua- Paylaşılan Alan (Shared Realm)
- Her 3 Alan (Realm) için tüm kodu ve yapılandırmayı içeren 1 dosya.
- Bu yaklaşım öncelikle basit varlıklar oluştururken kullanışlıdır.
- Dosyanın adı (aşağıdaki örnekte
my-entity-name), Varlığın Sınıf Adı (Class Name) olarak kullanılacaktır.
Bir Varlık Oluşturma
Ayrı Dosyalarla Bir Varlık Oluşturma
shared.lua örneği:
init.lua örneği:
cl_init.lua örneği:
Tek Bir Dosya ile Varlık Oluşturma
Bunlardan herhangi birinin ne işe yaradığından emin değil misiniz? Öğrenmek için mavi renkli fonksiyonlara() tıklamaktan çekinmeyin.
ENTITY:Initialize() ve ENTITY:Draw(), Hook olarak kabul edilir. Yukarıdaki örneklerde bunlar tıklanabilir değildir, ancak bu sayfanın sol üst köşesine is:event (iki boşluk) yazarak hook'ları arayabilirsiniz.
Bu Hook'lar oyun tarafından her çağrıldığında, Varlığınız onlar için tanımladığınız kodu çalıştırır. Varlığınızın nesne sınıfını kaydetmek için burada ENT olarak yazılırlar.
Sonuçlar
Varlığı ister tek bir dosyayla ister birkaç dosyayla oluşturmuş olun, nihai sonuç aynı olmalıdır.
Oluşturma menüsündeki Varlık

Varlığın kendisi

Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord