ENTITY:OnRemove

  ENTITY:OnRemove( boolean fullUpdate )

Açıklama

Varlık (entity) kaldırılmak üzereyken çağrılır.

Ayrıca, motor (Lua olmayan) varlıklarda bile kullanılabilen Entity:CallOnRemove fonksiyonuna da bakınız.

Örnek

Varlık kaldırılacağı zaman bir patlama oluşturun. Bir varlık oluşturmak için ents.Create sayfasını okuyabilirsiniz.

function ENT:OnRemove() local explosion = ents.Create( "env_explosion" ) -- Patlama varlığı explosion:SetPos( self:GetPos() ) -- Patlamanın pozisyonunu varlığın pozisyonuna ayarla explosion:Spawn() -- Patlamayı spawn et explosion:SetKeyValue( "iMagnitude", "50" ) -- patlamanın büyüklüğü explosion:Fire( "Explode", 0, 0 ) -- patlat end

Argümanlar

1 boolean fullUpdate
Kaldırma işleminin istemci tarafında tam bir güncelleme (full update) nedeniyle olup olmadığını belirtir.

Varlık, yerel oyuncunun PVS'sinde olup olmadığına bağlı olarak hemen ardından yeniden oluşturulabilir veya oluşturul**maya**bilir. (Bkz. Entity:IsDormant)

İstemci Tarafı Davranış Notları

Bu kanca (hook) beklenmedik zamanlarda çağrılabilir (varlık aslında sunucudan henüz kaldırılmamışken). Bu durum, varlık yeniden ortaya çıktığında bile ENTITY:Initialize fonksiyonunun çağrılmadığı 'tam güncelleme' (full update) mekanizması sırasında meydana gelir. Bu tür çağrılar, bu kancanın fullUpdate argümanı aracılığıyla ayırt edilebilir. Bu davranışı sv_cheats komutunu etkinleştirerek ve istemcide cl_fullupdate komutunu çalıştırarak ayıklayabilirsiniz.

GM:NotifyShouldTransmit bu sorunu aşmak için kullanılabilir. ENTITY:Think de varlığın yeniden ortaya çıktığını tespit etmek için kullanılabilir. Gerekli verileri bu kancalar içinde yeniden başlatabilirsiniz. Bu sorunu çözmenin başka bir yolu aşağıda bulunabilir.

Örnek

İstemcinin, aslında kaldırılmamış bir varlığı kaldırılmış sanması sorununu aşmanın bir başka yolu, bir tick gecikmesi (tick delay) kullanarak varlığın geçerli olup olmadığını test etmektir.

function ENT:OnRemove() timer.Simple( 0, function() if not IsValid( self ) then -- Kaldırma kodunuz buraya end end) end

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