Entity:IsValid

  boolean Entity:IsValid()

Açıklama

Varlığın geçerli bir varlık olup olmadığını döndürür.

Bir varlık şu durumlarda geçerlidir:

  • NULL bir varlık değilse
  • Dünya varlığı (worldspawn entity) değilse (game.GetWorld)
Bu metodu doğrudan çağırmak yerine, genel IsValid fonksiyonunu kullanmak iyi bir fikirdir, ancak kullandığınız değişkenin her zaman bir varlık nesnesi olduğundan eminseniz bu metodu kullanmak daha iyidir

Verilen değişkenin bir nesne (bir Varlık) mi yoksa hiçbir şey mi içermediğini sizin için kontrol edecektir. Örneklere bakın.

NULL varlıklara anahtar/değer çiftleri atanabilir, ancak bunlar anında geçersiz kılınır. Örnek 3'e bakın

Bu durum, baş ağrısına neden olabilir. Genellikle ağ işlemleri (networking) vb. sırasında, tamamen geçerli varlıkların istemcide aniden geçersiz hale gelmesi, ancak hiçbir zaman IsValid() ile filtrelenmemesi durumunda meydana gelir. Daha fazla ayrıntı için GM:InitPostEntity sayfasına bakın.

Döndürdüğü Değer

1 boolean
eğer varlık geçerliyse true, değilse false

Örnek

Bu metodu doğrudan kullanmak yerine genel IsValid fonksiyonunun nasıl kullanılacağını gösterir.

if ( entity && entity:IsValid() ) then -- İşlemleri yap end -- Yukarıdaki kod, aynı etkiyi yaratmak için (ve daha temiz kod için) aşağıdakiyle değiştirilebilir if ( IsValid( entity ) ) then -- İşlemleri yap end

Örnek

Çıktı: Eğer oyuncu oyun içindeyse konsola 'true' yazdırır.

Örnek

local newPlayer = net.ReadEntity() --sunucu, sunucuda yeni bir oyuncu buldu ve bize gönderdi print( "1/4" ) -- geçerli olduğunu belirledikten sonra (newPlayer bu alanda NULL'dur) if not isnumber(newPlayer.ImportantGameData) then --Eğer belirli bir alana sahip değilse, ona bir değer ata print( "2/4" ) newPlayer.ImportantGameData = 42 end print( "3/4" ) print( newPlayer.ImportantGameData * 69 ) --Yeni alanda aritmetik işlem yapmaya çalışılıyor print( "4/4" )
Çıktı: 1/4 ... 3/4
  • 'ImportantGameData' değerinin nil olduğunu ve bu nedenle üzerinde matematiksel işlem yapılamayacağını belirten bir lua hatası

Ancak bu mümkün olmamalı, çünkü orada yeni bir değer oluşturduk. Bu noktaya kadar herhangi bir sorun belirtisi yok; bu noktaya kadarki tüm kod sorunsuz çalışacaktır. İmkansız gibi görünen bir durumla karşılaştığınızda bir IsValid() kontrolü eklediğinizden emin olun.

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