# Entity:NetworkVar

- **Ortam:** İstemci, Sunucu
- **İngilizce aslı:** https://wiki.facepunch.com/gmod/Entity:NetworkVar
- **Çeviri tarihi:** 2025-09-08

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

```lua
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](https://gmod.tr/wiki/ENTITY:SetupDataTables) içinde çağrılmalıdır.

NetworkVar değişikliklerini yakalamak için [Entity:NetworkVarNotify](https://gmod.tr/wiki/Entity:NetworkVarNotify) fonksiyonuna bakın.

> **NOT:** Entity NetworkVar'ları, [ENTITY:UpdateTransmitState](https://gmod.tr/wiki/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.

> **UYARI:** 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](https://gmod.tr/wiki/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](https://gmod.tr/wiki/string) **type**: Desteklenen seçenekler: - `String` (en fazla 511 karakter) - `Bool` - `Float` - `Int` (32-bit işaretli tamsayı) - `Vector` - `Angle` - `Entity`
2. [number](https://gmod.tr/wiki/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](https://gmod.tr/wiki/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](https://gmod.tr/wiki/table) **extended** = nil: Genişletilmiş bilgileri içeren bir tablo. `KeyName` - NetworkVar'ın [Entity:SetKeyValue](https://gmod.tr/wiki/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](https://gmod.tr/wiki/Editable_Entities) sayfasına bakın.

Argüman Aşırı Yüklemesi: Slot argümanı atlandığında

1. [string](https://gmod.tr/wiki/string) **type**: Desteklenen seçenekler: - `String` (en fazla 511 karakter) - `Bool` - `Float` - `Int` (32-bit işaretli tamsayı) - `Vector` - `Angle` - `Entity`
2. [string](https://gmod.tr/wiki/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](https://gmod.tr/wiki/table) **extended** = nil: Genişletilmiş bilgileri içeren bir tablo. `KeyName` - NetworkVar'ın [Entity:SetKeyValue](https://gmod.tr/wiki/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](https://gmod.tr/wiki/Editable_Entities) sayfasına bakın.

### Örnek

Veri tablolarını ayarlama

```lua
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()
```

- [GMod Wiki ana sayfası](https://gmod.tr/wiki)

---

[Tüm sunucular](https://gmod.tr/) · [GmodTR Launcher](https://gmod.tr/launcher) · [Rehber](https://gmod.tr/rehber) · [GMod Wiki](https://gmod.tr/wiki) · [GmodTR nedir?](https://gmod.tr/hakkinda) · [Sunucu ekle](https://gmod.tr/sunucu-ekle) · [Discord](https://discord.gg/gmodtr)

Kaynak: https://gmod.tr/wiki/Entity:NetworkVar
