ents

ents kütüphanesi, oyunda varlık (entity) oluşturmak ve bulmak için fonksiyonlar sağlar.

Metotlar

Entity ents.Create( string class )
Bir varlık oluşturur. Bu fonksiyon, ağ bağlantılı edict limiti aşıldığında (yaklaşık 8176) veya sağlanan varlık sınıfı mevcut olmadığında başarısız olur ve NULL döndürür. GM:InitPostEntity çağrılmadan önce kullanmayın, aksi takdirde sunucu çöker! Oyun başladığında varlık oluşturmanız gerekiyorsa, GM:InitPostEntity için bir hook oluşturun ve işlemi orada yapın.
Entity ents.CreateClientProp( string model = "models/error.mdl" )
İsteğe bağlı fizik özelliklerine sahip, yalnızca istemci tarafında (clientside) bir prop oluşturur. Fizik gerekmiyorsa ClientsideModel'e de bakın. Fiziğin çalışması için model argümanını kullanmalısınız, basit bir SetModel çağrısı yeterli olmayacaktır. Ebeveyn varlık PVS'den (Potansiyel Görünürlük Seti) ayrılırsa, ebeveyne bağlanmış istemci tarafı prop ayrılacaktır. Github sayfasında bir geçici çözüm mevcuttur. Sorun Takipçisi: 861
Entity ents.CreateClientRope( Entity ent1, number ent1attach, Entity ent2, Entity ent2attach, table extra = nil )
Half-Life 2'deki DOG modeli tarafından kullanılanlara benzer, yalnızca istemci tarafında bir ip oluşturur.
Yalnızca istemci tarafında çalışan betikli (scripted) bir varlık oluşturur. Betikli varlık "anim" türünde olmalıdır.
table ents.FindAlongRay( Vector start, Vector end, Vector mins = nil, Vector maxs = nil )
Işın (ray) boyunca tüm varlıkları içeren bir tablo döndürür. Işın, çarpışmalarda durmaz, yani duvarların/varlıkların içinden geçer. Bu fonksiyon, varsayılan olarak yalnızca istemci tarafındaki varlıkları tespit edebilir. Tüm varlıklar arasında döngü yapmaktan kaçınmak için dahili olarak uzaysal bölümleme (spatial partitioning) kullanır.
table ents.FindByClass( string class )
Verilen sınıfa sahip tüm varlıkları alır, joker karakterleri (wildcards) destekler. Bu fonksiyon sıralı bir tablo döndürür, bu da verimlilik nedenleriyle pairs yerine ipairs ile döngüye alınması gerektiği anlamına gelir. Bu, dahili olarak ents.GetAll üzerinde yineleme yaparak çalışır. ents.FindByClass, her zaman ents.GetAll veya ents.Iterator'dan daha hızlıdır.
table ents.FindByClassAndParent( string class, Entity parent )
Belirtilen sınıfa ait olan ve belirtilen varlığın çocuğu (child) olan tüm varlıkları bulur. Bu, dahili olarak ents.FindByClass üzerinde yineleme yaparak çalışır.
table ents.FindByModel( string model )
Verilen modele sahip tüm varlıkları alır, joker karakterleri (wildcards) destekler. Bu, dahili olarak ents.GetAll üzerinde yineleme yaparak çalışır.
table ents.FindByName( string name )
Verilen Hammer targetname'ine sahip tüm varlıkları alır. Bu, dahili olarak ents.GetAll üzerinde yineleme yaparak çalışır. İstemci tarafında hiçbir şey yapmaz.
table ents.FindInBox( Vector boxMins, Vector boxMaxs )
Belirtilen kutu (box) içindeki tüm varlıkları döndürür. Tüm varlıklar arasında döngü yapmaktan kaçınmak için dahili olarak bir Uzaysal Bölümleme (Spatial Partition) kullanır, bu nedenle bu amaç için ents.GetAll kullanmaktan daha verimlidir. İstemci tarafı (clientside) varlıklar bu fonksiyon tarafından döndürülmez. point_logic veya Constraints gibi ağ bağlantılı edict'leri (varlık indeksleri) olmayan yalnızca sunucu tarafı varlıklar da döndürülmez
table ents.FindInCone( Vector origin, Vector normal, number range, number angle_cos )
Belirtilen koni (cone) içindeki tüm varlıkları bulur ve döndürür. Yalnızca Entity:WorldSpaceCenter'ı koni içinde olan varlıklar içinde kabul edilir. "Koni" aslında eksenle hizalanmış bir kutunun (bakınız: ents.FindInBox) konik bir "dilimidir". Sağdaki resim, bu fonksiyonun 2D'de yaklaşık olarak nasıl görüneceğini gösterir. Bu nedenle, varlık belirtilen menzilden daha uzakta olabilir! İstemci tarafı varlıklar bu fonksiyon tarafından döndürülmez.
table ents.FindInPVS( Entity or Vector viewPoint )
Bir PVS (Potansiyel Görünürlük Seti) içinde bulunan tüm varlıkları bulur. Fonksiyon, AddOriginToPVS ve benzerlerini dikkate almaz.
table ents.FindInSphere( Vector origin, number radius )
Belirtilen küre (sphere) içindeki tüm varlıkları alır. Bu fonksiyon, haritadaki her varlık için Yönlendirilmiş Sınırlayıcı Kutu'larına (Orientated Bounding Box) dayanarak dahili olarak util.IsBoxIntersectingSphere'i çağırır.
ents.FireTargets( string target, Entity activator, Entity caller, number usetype, number value )
Bir kullanım (use) olayını tetikler.
table ents.GetAll()
Mevcut tüm varlıkların bir tablosunu döndürür. Daha iyi performans için bunun yerine ents.Iterator kullanmayı düşünün. Bu fonksiyon sıralı bir tablo döndürür, bu da verimlilik nedenleriyle pairs yerine ipairs ile döngüye alınması gerektiği anlamına gelir.
Entity ents.GetByIndex( number entIdx )
İndeksine göre bir varlık döndürür. Entity ile aynıdır.
number ents.GetCount( boolean IncludeKillMe = false )
Mevcut varlıkların sayısını verir. #ents.GetAll() ile benzerdir ancak varlık tablosunun oluşturulması gerekmediği için daha iyi performansa sahiptir. Eğer ents.GetAll zaten döngü için çağrılıyorsa, tablo üzerinde # operatörünü kullanmak, JIT derlendiği için bu fonksiyonu çağırmaktan daha hızlı olacaktır.
8192 ile sınırlı olan ağ bağlantılı varlıkların sayısını döndürür. ents.Create, 8064 ile 8176 arasında bir yerde başarısız olur - bu, mevcut geçici varlıkların (temp ents) sayısına bağlı olarak değişebilir.
Verilen Entity:MapCreationID'ye sahip varlığı döndürür.
Tüm varlıklar için bir Durumsuz Yineleyici (Stateless Iterator) döndürür. Genel For Döngülerinde (Generic For Loops) kullanılmak üzere tasarlanmıştır. Tüm oyuncular için benzer bir fonksiyon olan player.Iterator'a bakın. Dahili olarak bu fonksiyon, bir C++ fonksiyonu olan ents.GetAll'ın aksine, tamamen Lua içinde bulunan önbelleğe alınmış değerleri kullanır. Lua'dan C++'a geçiş (ve tersi) bir performans maliyeti getirdiğinden, bu fonksiyon ents.GetAll'dan biraz daha verimli olacaktır.

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