Entity:NetworkVar

  Entity:NetworkVar( string type, number slot, string name, table extended = nil )
  Entity:NetworkVar( string type, string name, table extended = nil )

Açıklama

Entity üzerinde bir ağ değişkeni (network variable) oluşturur ve bu değişken için Set/Get fonksiyonlarını ekler. Bu fonksiyon sadece ENTITY:SetupDataTables içinde çağrılmalıdır.

NetworkVar değişikliklerini yakalamak için Entity:NetworkVarNotify fonksiyonuna bakın.

Entity NetworkVar'ları, ENTITY:UpdateTransmitState fonksiyonunun dönüş değerinden etkilenir.
Bu nedenle, eğer PVS (varsayılan) kullanırsanız, NetworkVar'lar her istemci için farklı olabilir.
Ne yaptığınızı tam olarak bilmiyorsanız, istemci tarafında (client realm) SetDT* ve kendi özel set metotlarınızı çağırmadığınızdan emin olun.

Bu fonksiyonu util.TableToJSON ile birleştirmek, tabloları serileştirilmiş string'ler olarak ağ üzerinden göndermek için bir yol sağlayabilir.

Varsayılan Argümanlar

1 string type
Desteklenen seçenekler:
  • String (en fazla 511 karakter)
  • Bool
  • Float
  • Int (32-bit işaretli tamsayı)
  • Vector
  • Angle
  • Entity
2 number slot
Her ağ değişkeninin benzersiz bir slotu olmalıdır. Slot, türe özeldir - yani slot 0'da bir int, slot 0'da bir bool ve slot 0'da bir float olabilir. Slot 0'da iki int olamaz, bunun yerine slot 0'da bir int ve slot 1'de başka bir int kullanırsınız.

String'ler için maksimum slot sayısı 4'tür - bu nedenle 0 ile 3 arasında bir sayı seçmelisiniz.

Diğer her şey için maksimum slot sayısı 32'dir - bu nedenle 0 ile 31 arasında bir sayı seçmelisiniz.

Bu argüman tamamen atlanabilir (argümanlar kaydırılır) ve mevcut olan bir sonraki slot kullanılır.

3 string name
İsim, ona nasıl erişeceğinizi etkiler. Eğer Foo olarak adlandırırsanız, entity'nize iki yeni fonksiyon eklersiniz - SetFoo() ve GetFoo(). Bu yüzden, verdiğiniz ismin mevcut fonksiyonlarla çakışmamasına dikkat edin (örneğin, Pos olarak adlandırmayın).
4 table extended = nil
Genişletilmiş bilgileri içeren bir tablo.

KeyName

  • NetworkVar'ın Entity:SetKeyValue kullanılarak ayarlanmasına izin verir.
  • Bu, entity düzenlemesinin çalışması için gereklidir.

Bu, haritada yüklenmesini istediğiniz bir entity yapıyorsanız kullanışlıdır. Sky (gökyüzü) entity'si bunu kullanır.

Edit

  • Edit anahtarı, bu değişkeni düzenlenebilir olarak işaretlemenizi sağlar. Daha fazla bilgi için Düzenlenebilir Entity'ler sayfasına bakın.
Argüman Aşırı Yüklemesi: Slot argümanı atlandığında
1 string type
Desteklenen seçenekler:
  • String (en fazla 511 karakter)
  • Bool
  • Float
  • Int (32-bit işaretli tamsayı)
  • Vector
  • Angle
  • Entity
2 string name
İsim, ona nasıl erişeceğinizi etkiler. Eğer Foo olarak adlandırırsanız, entity'nize iki yeni fonksiyon eklersiniz - SetFoo() ve GetFoo(). Bu yüzden, verdiğiniz ismin mevcut fonksiyonlarla çakışmamasına dikkat edin (örneğin, Pos olarak adlandırmayın).
3 table extended = nil
Genişletilmiş bilgileri içeren bir tablo.

KeyName

  • NetworkVar'ın Entity:SetKeyValue kullanılarak ayarlanmasına izin verir.
  • Bu, entity düzenlemesinin çalışması için gereklidir.

Bu, haritada yüklenmesini istediğiniz bir entity yapıyorsanız kullanışlıdır. Sky (gökyüzü) entity'si bunu kullanır.

Edit

  • Edit anahtarı, bu değişkeni düzenlenebilir olarak işaretlemenizi sağlar. Daha fazla bilgi için Düzenlenebilir Entity'ler sayfasına bakın.

Örnek

Veri tablolarını ayarlama

function ENT:SetupDataTables() self:NetworkVar( "Float", 0, "Amount" ) self:NetworkVar( "Vector", "StartPos" ) -- not: slot atlanırsa argümanlar kayar self:NetworkVar( "Vector", "EndPos" ) end -- Kod... -- Entity üzerinde değerleri ayarlama self:SetStartPos( Vector( 1, 0, 0 ) ) self:SetAmount( 100 ) -- Kod... -- Değerleri alma local startpos = self:GetStartPos()

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