2017-09-09 11 views
-3

私は特定のプレーヤーを他のすべての上にレンダリングさせようとしています。 私は、ClientsideModel()、DrawModel()などを使用したり、そのようなものを無駄にすることを含め、複数のことをやろうとしました。 誰かが助けることができれば、それは素晴らしいでしょう!私は誰にもこれを尋ねることができませんでした。GMOD上の小道具/地図をレンダリングするモデルをオーバーライドしますか?

+1

ようこそスタックオーバーフロー。 [良い質問をするにはどうすればいいですか](https://stackoverflow.com/help/how-to-ask)をご覧ください。あなたの問題を調査し、投稿する前に自分でコードを書いてみることをお勧めします。特定のものに固執している場合は、あなたが試したことの概要と[最小限の、完全で検証可能な例](https://stackoverflow.com/help/mcve)を戻してください。 – FluffyKitten

+0

私はかつて偶然これをしました...私の古いコードを検索させてください。私はそれを見つけたときに答えを掲示するでしょう。 – Mischa

答えて

0

これを行う最善の方法は、最後のモデルドローではなく、プレーヤーのHUDPaintをモデルドローではなく使用することです。だから我々はして起動することもできます。

hook.Add("HUDPaint", "playerOverride", function() 

end) 

これは、2Dレンダリングコンテキストであるので、我々はcam.start3D()

hook.Add("HUDPaint", "playerOverride", function() 
    cam.Start3D() 
    cam.End3D() 
end) 

と十分に簡単である3D 1は、その後、もちろん、私たちはただ描く開始する必要があります上記のコード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

遅刻の応答、申し訳ありませんが、私はすでにそれをもう少し前に終わらせました。私は正しいのであなたの答えを受け入れるでしょう。 –

関連する問題