Gmod | 实体生成

如果是服务器端
    function SWEP:PrimaryAttack()
        如果  self.Owner:GetEyeTrace().HitPos:Distance(self.Owner:GetPos()) < 100 then
            local entity = ents.Create( "gred_emp_grw34" )
            如果 ( !IsValid( entity ) ) then return end
            entity:SetPos( self.Owner:GetEyeTrace().HitPos )
            local entang = self.Owner:GetAngles()
            entity:SetAngles(Angle(0, entang.y, 0) +Angle(0, 180, 0))
            entity:SetModel("models/props_artillery/german/r_mortar_gw34.mdl" )
            entity:Spawn()
            self.Owner:StripWeapon( "turret_entplace" )
        end
    end
    function SWEP:SecondaryAttack() end
end

这是我的生成实体的代码,但是它生成的实体在地板上,所以我想给它添加一些高度,有人能帮助我吗?

点赞
用户9068464
用户9068464

实体的位置是 self.Owner:GetEyeTrace().HitPos,由于你可能正在看地板,因此实体将在地板上生成。 我认为你有类似这样的东西

你需要偏移位置。可以像这样完成:

local z_offset = 5 -- 你需要的偏移值(取决于实体)

hitPos = self.Owner:GetEyeTrace().HitPos -- 眼睛击中点的位置
spawnPos = hitPos:Add(Vector(0, 0, z_offset) -- 偏移位置

entity:SetPos( spawnPos )

关于偏移,我在 gmod wiki 上什么都找不到,无法确定... 我想你需要尝试不同的偏移值... 另外,如果你有其他要生成的实体,你可能还需要制作一张带有不同偏移值的表。

2021-01-10 17:20:18