# Varlık İletimini Kontrol Etme

- **İngilizce aslı:** https://wiki.facepunch.com/gmod/Controlling_Entity_Transmission
- **Çeviri tarihi:** 2025-09-08

Varsayılan olarak, entity'ler bir oyuncuya yalnızca aynı [PVS (Potansiyel Görünürlük Kümesi)](https://developer.valvesoftware.com/wiki/PVS) içindeyse iletilir. Bu, oyuncunun ağ üzerinden yalnızca görebileceği entity'ler hakkında bilgi aldığı anlamına gelir.

Bunun olmasını istemeyebilirsiniz.

## Her şeyden önce

Bu rehber hem scriptli hem de scriptli olmayan entity'leri ele almaktadır.

Scriptli bir entity üzerinde, [ENTITY:UpdateTransmitState](https://gmod.tr/wiki/ENTITY:UpdateTransmitState) fonksiyonunun çağrılması gereken her seferde [Entity:AddEFlags](https://gmod.tr/wiki/Entity:AddEFlags)( EFL_FORCE_CHECK_TRANSMIT ) fonksiyonunu çağırmanız gerekir. Bunu [ENTITY:Initialize](https://gmod.tr/wiki/ENTITY:Initialize) içinde yapabilirsiniz:

```lua
function ENT:Initialize()
	-- .....
	self:AddEFlags( EFL_FORCE_CHECK_TRANSMIT )
	-- .....
end
```

Scriptli olmayan entity'lerin [ENTITY:UpdateTransmitState](https://gmod.tr/wiki/ENTITY:UpdateTransmitState) fonksiyonu asla çağrılmaz, bu nedenle [Entity:AddEFlags](https://gmod.tr/wiki/Entity:AddEFlags)( EFL_FORCE_CHECK_TRANSMIT ) kullanmamalısınız.

## Her Zaman İlet

Entity'nizin her zaman tüm oyunculara iletilmesini istiyorsanız, bunu entity'nizin sunucu tarafına ekleyin.

```lua
function ENT:UpdateTransmitState()
	return TRANSMIT_ALWAYS
end
```

Bu, oyun kurallarını kontrol eden bir entity'niz varsa kullanışlıdır. Örneğin, oyun modunuzun bir tur zamanlayıcısı olduğunu hayal edin. Turun başlayıp başlamadığını ve ne zaman biteceğini belirten erişimcilere (accessor) sahip, tur zamanlayıcısını temsil eden bir entity'niz olabilir. İstemci tarafında, entity oluşturulduğunda, entity işaretçisiyle (pointer) genel bir değişken saklayabilir (değeri entity'nin Initialize fonksiyonunda ayarlayarak) ve bu entity'ye dayanarak HUD'daki bilgileri güncelleyebilirsiniz.

Scriptli olmayan bir entity'de, yalnızca onu her zaman [PVS (Potansiyel Görünürlük Kümesi)](https://developer.valvesoftware.com/wiki/PVS) içinde olmaya zorlayabilirsiniz:

```lua
entity:AddEFlags( EFL_IN_SKYBOX )
```

TRANSMIT_ALWAYS'in aksine, bu durum ağa bağlı olmayan bir entity'nin ağa bağlanmasını zorlamaz.

## Asla İletme

Bazen entity'ler sadece sunucu tarafında kullanım içindir. İstemciye asla gönderilmemelerini sağlamak için bunu entity'nize ekleyebilirsiniz.

```lua
function ENT:UpdateTransmitState()
	return TRANSMIT_NEVER
end
```

İstemci, entity'nin varlığından asla haberdar olmaz. Bu, sunucunun kullandığı ancak istemcinin bilmesine gerek olmayan oyuncu doğma noktaları gibi şeyler için kullanışlıdır.

Bu, nokta tabanlı (point based) entity'lerin varsayılan ayarıdır.

## PVS İletimi

Varsayılan ayar şudur..

```lua
function ENT:UpdateTransmitState()
	return TRANSMIT_PVS
end
```

`base_point` tabanlı bir entity oluşturursanız ve normal bir entity gibi iletilmesini isterseniz, bunu eklemeniz gerekir.

## Belirli oyunculardan gizleme

Belirli entity'lerin belirli oyunculara iletilmesini şu fonksiyonu çağırarak engelleyebilirsiniz:

```lua
entity:SetPreventTransmit( ply, true )
```

Tekrar iletilmesine izin vermek isterseniz şu fonksiyonu çağırabilirsiniz:

```lua
entity:SetPreventTransmit( ply, false )
```

Bu yalnızca oyuncunun veri almasını engellemek için çalışır - tam tersi için değil (entity'yi TRANSMIT_NEVER yapıp bu fonksiyonu sadece belirli oyunculara göndermek için kullanamazsınız).

- [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/Controlling_Entity_Transmission
