Entity:TakeDamageInfo
Açıklama
Hasar bilgisi tarafından belirtilen hasarı varlığa uygular.
Bu fonksiyonu kurban varlık üzerinde ENTITY:OnTakeDamage içerisinde çağırmak sonsuz döngülere neden olabilir.
Bu fonksiyon, prop_vehicle_jeep veya prop_vehicle_jeep_old aracını süren bir oyuncuya uygulandığında herhangi bir hasar vermiyor gibi görünmektedir. Bunun yerine araca çağırmanız gerekir.
Bu fonksiyon, func_breakable_surf varlıklarına doğru şekilde hasar uygulamaz. Bunu yapmak için, bunun yerine Entity:DispatchTraceAttack kullanmanız gerekecektir.
Argümanlar
Örnek
Hedefi eriterek yok eder.
function DissolveIt( ent, ply )
local d = DamageInfo()
d:SetDamage( ent:Health() )
d:SetAttacker( ply or ent )
d:SetDamageType( DMG_DISSOLVE )
ent:TakeDamageInfo( d )
end
concommand.Add( "dissolve_it", function( ply, cmd, arg )
local ent = ply:GetEyeTrace().Entity
if ( !IsValid( ent ) ) then return end -- Geçerli bir varlığa bakılmıyor
DissolveIt( ent, ply )
end )
Örnek
İçindeki oyuncuyu öldürmeniz gerekiyorsa araca hasar verin.
function TakeDamage( victim, damage, attacker, inflictor )
local dmg = DamageInfo() -- Sunucu taraflı bir hasar bilgisi sınıfı oluşturur
dmg:SetDamage( damage )
dmg:SetAttacker( attacker )
dmg:SetInflictor( inflictor )
dmg:SetDamageType( DMG_ENERGYBEAM )
victim:TakeDamageInfo( dmg )
end
concommand.Add( "kill_this_entity", function( ply, cmd, args )
local target = ply:GetEyeTrace().Entity
if ( target:IsVehicle() ) then
target = target:GetDriver() -- Bunu içerideki oyuncuya hasar vermek için dönüştürün
end
-- Hedef bir araç içindeki oyuncu olduğunda hasar almaz
TakeDamage( target, target:Health(), ply, ply:GetActiveWeapon() )
end )
Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord