# EFFECT

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

Bu kancalar (hook) bir Lua efekti içerisinde kullanılır. Lua efektleri ya `/lua/effects` dizininde ya da bir oyun modunda `/gamemodes/<oyunmoduadı>/entities/effects` dizininde saklanır.

Efektler, sınıf adı (classname) `class CLuaEffect` olan varlıklardır (entity) ve bu nedenle, [Entity](https://gmod.tr/wiki/Entity) fonksiyonları onlar üzerinde (`self` argümanı kullanılarak) kullanılabilir.

Bir `EFFECT`, [EFFECT:Init](https://gmod.tr/wiki/EFFECT:Init), [EFFECT:Render](https://gmod.tr/wiki/EFFECT:Render) ve isteğe bağlı olarak [EFFECT:Think](https://gmod.tr/wiki/EFFECT:Think) kancalarının bir kombinasyonu kullanılarak oluşturulur. Başka bir yol ise, tüm partikülleri `Init` kancasında tek seferde oluşturmak ve diğer kancaları hiç kullanmamaktır.

### Örnek

Init ve Think kancalarının bir kombinasyonunu kullanarak bir partikül efekti oluşturur.

```lua
function EFFECT:Init( data )
	-- CEffectData paylaşılan bir nesne olduğundan, onu sadece saklayıp özelliklerini daha sonra kullanamayız
	-- Bunun yerine, özelliklerin kendilerini saklarız
	self.offset = data:GetOrigin() + Vector( 0, 0, 0.2 )
	self.angles = data:GetAngles()
	self.particles = 4
end

function EFFECT:Think()
	return true
end

function EFFECT:Render()
	local emitter = ParticleEmitter( self.offset, false )
		for i=0, self.particles do
			local particle = emitter:Add( "effects/softglow", self.offset )
			if particle then
				particle:SetAngles( self.angles )
				particle:SetVelocity( Vector( 0, 0, 15 ) )
				particle:SetColor( 255, 102, 0 )
				particle:SetLifeTime( 0 )
				particle:SetDieTime( 0.2 )
				particle:SetStartAlpha( 255 )
				particle:SetEndAlpha( 0 )
				particle:SetStartSize( 1.6 )
				particle:SetStartLength( 1 )
				particle:SetEndSize( 1.2 )
				particle:SetEndLength( 4 )
			end
		end
	emitter:Finish()
end
```

### Örnek

Sadece Init kancasını kullanarak bir partikül efekti oluşturur. Bu efekti bir döngüde kullanmak için, her çizilen karede (frame) bu efektin yeni bir örneğini oluşturmak gerekir.

```lua
function EFFECT:Init( data )
	local vOffset = data:GetOrigin() + Vector( 0, 0, 0.2 )
	local vAngle = data:GetAngles()
	local emitter = ParticleEmitter( vOffset, false )
		for i=0,4 do
			local particle = emitter:Add( "effects/softglow", vOffset )
			if particle then
				particle:SetAngles( vAngle )
				particle:SetVelocity( Vector( 0, 0, 15 ) )
				particle:SetColor( 255, 102, 0 )
				particle:SetLifeTime( 0 )
				particle:SetDieTime( 0.2 )
				particle:SetStartAlpha( 255 )
				particle:SetEndAlpha( 0 )
				particle:SetStartSize( 1.6 )
				particle:SetStartLength( 1 )
				particle:SetEndSize( 1.2 )
				particle:SetEndLength( 4 )
			end
		end
	emitter:Finish()
end

function EFFECT:Think()
	return false
end

function EFFECT:Render()
end
```

Entity'den metotları miras alır.

## Olaylar

EFFECT:[EndTouch](https://gmod.tr/wiki/EFFECT:EndTouch)()

ENTITY:EndTouch fonksiyonunun efekt alternatifi.

[Vector](https://gmod.tr/wiki/Vector) EFFECT:[GetTracerShootPos](https://gmod.tr/wiki/EFFECT:GetTracerShootPos)( [Vector](https://gmod.tr/wiki/Vector) pos, [Weapon](https://gmod.tr/wiki/Weapon) ent, [number](https://gmod.tr/wiki/number) attachment )

Silah mermi izi (tracer) efektleri için, bir izin (trace) "gerçek" başlangıç pozisyonunu almak için kullanılır. "Gerçek" ile kastedilen, 3. şahıs görünümünde 3. şahıs pozisyonunun, 1. şahıs görünümünde ise 1. şahıs pozisyonunun kullanılacağıdır.

EFFECT:[Init](https://gmod.tr/wiki/EFFECT:Init)( [CEffectData](https://gmod.tr/wiki/CEffectData) effectData )

Efekt oluşturulduğunda çağrılır.

EFFECT:[PhysicsCollide](https://gmod.tr/wiki/EFFECT:PhysicsCollide)( [table](https://gmod.tr/wiki/table) colData, [PhysObj](https://gmod.tr/wiki/PhysObj) collider )

Efekt herhangi bir şeyle çarpıştığında çağrılır.

EFFECT:[Render](https://gmod.tr/wiki/EFFECT:Render)()

Efektin oluşturulması (render) gerektiğinde çağrılır.

EFFECT:[StartTouch](https://gmod.tr/wiki/EFFECT:StartTouch)()

ENTITY:StartTouch fonksiyonunun efekt alternatifi.

[boolean](https://gmod.tr/wiki/boolean) EFFECT:[Think](https://gmod.tr/wiki/EFFECT:Think)()

Efektin düşünmesi (think) gerektiğinde çağrılır, efekti sonlandırmak için false döndürün.

EFFECT:[Touch](https://gmod.tr/wiki/EFFECT:Touch)()

ENTITY:Touch fonksiyonunun efekt alternatifi.

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