Player:LagCompensation
Açıklama
Bu fonksiyon, sunucunun, gecikme telafisi (lag compensation) uygulanabilen tüm varlıkları, oyuncunun silahıyla saldırdığı zamana geri taşıyarak oyuncunun gecikmesini azaltmasına olanak tanır.
Bu teknik en yaygın olarak, izler (traces) gibi diğer varlıklara anında vuran şeylerde kullanılır.
Entity:FireBullets bu fonksiyonu dahili olarak çağırır.
Gecikme telafisi yalnızca oyuncular ve Entity:SetLagCompensated ile etkinleştirilmiş varlıklar için çalışır.
Paylaşımlı (shared) olarak tanımlanmasına rağmen, yalnızca sunucu tarafında bir Predicted Hook içinde kullanılabilir.
Bu fonksiyonla işiniz bittikten sonra devre dışı bırakılması GEREKİR, aksi takdirde etkilenen varlıkların hareketini bozar!
Gecikme telafisi, duruş parametrelerini (pose parameters) desteklemez.
Hata Takipçisi (Issue Tracker): 3683
Hata Takipçisi (Issue Tracker): 3683
Argümanlar
1 boolean lagCompensation
Gecikme telafisinin durumu, etkinleştirmek için true, devre dışı bırakmak için false.
Örnek
Levye benzeri bir yakın dövüş izi (melee trace) oluşturun ve bunu yapmadan önce gecikme telafisini etkinleştirin.
function SWEP:PrimaryAttack()
local tracedata = {}
tracedata.start = self:GetOwner():GetShootPos()
tracedata.endpos = self:GetOwner():GetShootPos() + self:GetOwner():GetAimVector() * 75
tracedata.filter = self:GetOwner()
tracedata.mins = Vector( -8 , -8 , -8 )
tracedata.maxs = Vector( 8 , 8 , 8 )
-- Silahın bir NPC tarafından kullanılması ihtimaline karşı bir IsPlayer kontrolü yapılması önerilir.
if ( self:GetOwner():IsPlayer() ) then
self:GetOwner():LagCompensation( true )
end
local tr = util.TraceHull( tracedata )
if ( self:GetOwner():IsPlayer() ) then
self:GetOwner():LagCompensation( false )
end
if tr.Hit then
print( tr.Entity ) --kodunuzu buraya yazın
end
self:SetNextPrimaryFire( CurTime() + 0.5 )
end
Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord