GMOD覆盖模型渲染以上道具/地图?
问题描述:
我想让一个特定的播放器渲染高于一切。我试图做多件事情,包括使用ClientsideModel(),DrawModel()和类似的东西无济于事。 如果有人可以帮忙,那很好!我找不到其他人问这个问题。GMOD覆盖模型渲染以上道具/地图?
答
要做到这一点,最好的方法是使用玩家的HUDPaint
而不是模型绘制,因为这被称为last。因此,我们可以这样开始:
hook.Add("HUDPaint", "playerOverride", function()
end)
这是一个2D渲染环境,所以我们需要启动一个三维一体,这与cam.start3D()
hook.Add("HUDPaint", "playerOverride", function()
cam.Start3D()
cam.End3D()
end)
然后,当然很容易,我们只是画与Entity:DrawModel()
hook.Add("HUDPaint", "playerOverride", function()
cam.Start3D()
target:DrawModel()
cam.End3D()
end)
上面的代码目标模型假定你已经有了心中的目标,您可以设置target
,或者更换。
如果你喜欢这个适用于每一个人,(我希望你不写wallhacks),那么你可以通过玩家列表循环与player.getAll()
hook.Add("HUDPaint", "playerOverride", function()
cam.Start3D()
for k,v in pairs(player.GetAll()) do
if v ~= LocalPlayer() then -- Make sure we don't redraw ourselves
v:DrawModel()
end
end
cam.End3D()
end)
(注意,我目前无法对此进行测试,但我相当有信心)
+0
迟到回复,不好意思,但是我刚刚结束了。我会接受你的回答,因为它是正确的。 –
欢迎来到Stack Overflow。请回顾[我如何问一个好问题](https://*.com/help/how-to-ask)。预计您已经研究过您的问题,并尝试在发布之前亲自编写代码。如果您遇到某些特定问题,请回过头来包括您尝试过的内容以及[最小,完整和可验证示例]的摘要(https://*.com/help/mcve)。 – FluffyKitten
我曾经这样做过,是因为意外......让我搜索我的旧代码。将在我找到答案时发布答案。 – Mischa