CUserCmd
Fare hareketi, bakış açıları, basılan IN enum tuşları ve analog hareket gibi oyuncu girdilerini depolamak için kullanılan bir sınıftır. Bu sınıftaki veriler, gerçek hareket simülasyonu sırasında bir CMoveData'ya aktarılır.
GM:CreateMove, GM:StartCommand sırasında değiştirilebilir ve GM:SetupMove ile Player:GetCurrentCommand ile salt okunur modda kullanılabilir.
Metotlar
Aktif tuşlar bitflag'ine tek bir tuş ekler. Ayrıca bakınız: CUserCmd:SetButtons.
CUserCmd:ClearButtons()
Komuttan tüm tuşları kaldırır.
Eğer oyuncu hareketini etkilemek istiyorsanız, tuşları temizlemek yerine CUserCmd:ClearMovement kullanmanız gerekebilir.
CUserCmd:ClearMovement()
Komuttan hareketi temizler.
Ayrıca bakınız: CUserCmd:SetForwardMove, CUserCmd:SetSideMove ve CUserCmd:SetUpMove.
number CUserCmd:CommandNumber()
Kullanıcı komutunun (user cmd) indeksini temsil eden artan bir sayı döndürür.
Döndürülen değer bazen GM:CreateMove ve GM:StartCommand içinde 0 olabilir. Doğru sayıyı almak istiyorsanız sıfır olmayan bir değeri kontrol etmeniz önerilir.
number CUserCmd:GetButtons()
Hangi tuşlara basıldığını gösteren bir bitflag döndürür.
number CUserCmd:GetForwardMove()
İstemcinin ileri doğru hareket etmek istediği hızdır, istemci geriye doğru gitmek istiyorsa negatif olur.
number CUserCmd:GetImpulse()
İstemciden mevcut impulse'ı alır, genellikle 0'dır. Impulse listesine ve bazı GMod'a özgü impulse'lara bakın.
number CUserCmd:GetMouseWheel()
Kaydırma deltasını tam sayı olarak döndürür.
number CUserCmd:GetSideMove()
İstemcinin yana doğru hareket etmek istediği hızdır, sağa gitmek istiyorsa pozitif, sola gitmek istiyorsa negatiftir.
İstemcinin yukarı doğru hareket etmek istediği hızdır, aşağı gitmek istiyorsa negatiftir.
Angle CUserCmd:GetViewAngles()
Oyuncunun baktığı yönü alır.
Oyuncular sunucuya kullanıcı komutları (usercommand) göndermediğinde (genellikle gecikmeden dolayı), son kullanıcı komutları yedek olarak birden çok kez yürütülür. Bu fonksiyon, bu durumun olup olmadığını belirtmek için true döndürür.
Bu fonksiyon istemci tarafında asla true döndürmez.
Mevcut tuş bitflag'inden bir tuş bitini kaldırır.
Hareket için CUserCmd:SetForwardMove, CUserCmd:SetUpMove ve CUserCmd:SetSideMove kullanmak isteyeceksiniz.
CUserCmd:SelectWeapon( Weapon weapon )
İlişkili oyuncuyu bir silah seçmeye zorlar. Bu, varsayılan HL2 silah seçimi arayüzünde (HUD) dahili olarak kullanılır.
Mevcut komut tahmin (prediction) modundaysa bu hemen çalışmayabilir. Bir sonraki uygun komut bunu yapabildiğinde istemciden silahı değiştirmek için input.SelectWeapon kullanın.
Bu, özel bir silah seçimi arayüzü oluşturmak için ideal fonksiyondur, çünkü WEAPON:Deploy ve GM:PlayerSwitchWeapon için tahminin (prediction) düzgün çalışmasını sağlar
CUserCmd:SetButtons( number buttons )
Tuşları bir bitflag olarak ayarlar. Ayrıca bakınız: CUserCmd:GetButtons.
Eğer oyuncu hareketini etkilemek istiyorsanız, tuşları ayarlamak yerine CUserCmd:SetForwardMove kullanmanız gerekebilir.
CUserCmd:SetForwardMove( number speed )
İstemcinin ileri doğru hareket etmek istediği hızı ayarlar, istemci geriye doğru gitmek istiyorsa negatif olur.
Ayrıca bakınız: CUserCmd:ClearMovement, CUserCmd:SetSideMove ve CUserCmd:SetUpMove.
CUserCmd:SetImpulse( number impulse )
Sunucuya gönderilecek impulse komutunu ayarlar.
İşte birkaç impulse numarası örneği:
100 el fenerini açıp kapatır
101, sv_cheats 1 olarak ayarlandığında oyuncuya tüm Half-Life 2 silahlarını verir
200 mevcut silahı kılıfına koyma / çıkarma işlemini değiştirir
Kılıfa konulduğunda, aktif silahta EF_NODRAW bayrağı ayarlanır.
154 noclip'i açıp kapatır
Tam listeye bakın
CUserCmd:SetMouseWheel( number speed )
Kaydırma deltasını ayarlar.
Oyuncunun açısal yatay fare hareketinin deltasını ayarlar.
Ayrıca bakınız: CUserCmd:SetMouseY.
Oyuncunun açısal dikey fare hareketinin deltasını ayarlar.
Ayrıca bakınız: CUserCmd:SetMouseX.
CUserCmd:SetSideMove( number speed )
İstemcinin yana doğru hareket etmek istediği hızı ayarlar, sağa gitmek için pozitif, sola gitmek için negatiftir.
Ayrıca bakınız: CUserCmd:SetForwardMove ve CUserCmd:SetUpMove.
İstemcinin yukarı doğru hareket etmek istediği hızı ayarlar, aşağı inmek için negatiftir.
Ayrıca bakınız: CUserCmd:SetSideMove ve CUserCmd:SetForwardMove.
Bu fonksiyon istemciyi merdivenlerde yukarı/aşağı hareket ettirmez. Merdiven hareketini zorlamak için CUserCmd:SetButtons'u ve IN enum'undan IN_FORWARD'ı kullanmayı düşünün.
CUserCmd:SetViewAngles( Angle viewAngle )
İstemcinin hareket etmek istediği yönü ayarlar.
İnsan oyuncular için, oyuncunun görüşünün bozulmasını (glitching) önlemek için pitch (dikey) açısı +/- 89° ile sınırlandırılmalıdır. Sahte istemciler (player.CreateNextBot ile oluşturulanlar) için bu, işlevsel olarak botun 'hareket açılarını' belirler. Bu genellikle halk dilindeki bakış açılarından ayrı olarak işlev görür. Bu, CUserCmd:SetForwardMove ve ilgili fonksiyonları tarafından kullanılabilir.
Sunucuya katıldığından beri geçen tick sayısını döndürür.
Bu, botlar için her zaman 0 döndürür. Tahmin (prediction) çağrıları sırasında istemci tarafında 0 döndürür. Eğer istemcide bir hareket veya komut hook'u içinde CUserCmd:Set*() kullanmaya çalışıyorsanız, tahmini sürdürmek için TickCount sıfır olmayan bir sayı döndürene kadar bunu yapmaya devam edin.
Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord