# GM:SetupMove

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

```lua
GM:SetupMove( Player ply, CMoveData mv, CUserCmd cmd )
```

> **NOT:** Bu hook [tahmin edilebilir](https://gmod.tr/wiki/Prediction) (predicted). Bu, tek oyunculu modda, İstemci (Client) tarafında **çağrılmayacağı** anlamına gelir.

## Açıklama

SetupMove, oyun motoru hareketleri işlemeden önce çağrılır. Bu, oyuncunun hareketini geçersiz kılmamıza olanak tanır.

Hareket sisteminin bir açıklaması için [Oyun Hareketi](https://gmod.tr/wiki/Game_Movement) sayfasına bakın.

## Argümanlar

1. [Player](https://gmod.tr/wiki/Player) **ply**: Hareketini işlemek üzere olduğumuz oyuncu
2. [CMoveData](https://gmod.tr/wiki/CMoveData) **mv**: Geçersiz kılınacak/kullanılacak hareket verisi
3. [CUserCmd](https://gmod.tr/wiki/CUserCmd) **cmd**: Komut verisi

### Örnek

Boğulmayı daha da eğlenceli hale getirin:

```lua
hook.Add( "SetupMove", "Drowning:HandleWaterInLungs", function( ply, mv, cmd )
	if ( ply:WaterLevel() >= 2 ) then
		mv:SetUpSpeed( -100 )
		cmd:SetUpMove( -100 )
	end
end )
```

### Örnek

CMoveData'dan bir tuşu kaldırarak oyuncunun zıplama yeteneğini devre dışı bırakın:

```lua
local CMoveData = FindMetaTable( "CMoveData" )

function CMoveData:RemoveKeys( keys )
	-- Tuş bitlerini temizlemek için bitsel (bitwise) işlemler kullanılıyor.
	local newbuttons = bit.band( self:GetButtons(), bit.bnot( keys ) )
	self:SetButtons( newbuttons )
end

hook.Add("SetupMove", "Disable Jumping", function(ply, mvd, cmd)
	if ( mvd:KeyDown( IN_JUMP ) ) then
		mvd:RemoveKeys( IN_JUMP )
	end
end)
```

- [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/GM:SetupMove
