From ae57e4ea207da17023bf418dfdd3822527051b6f Mon Sep 17 00:00:00 2001 From: Apickx Date: Thu, 8 Mar 2018 20:17:32 -0500 Subject: Fixed a bug with viewmodel Fixed a bug where switching between weapons would sometimes error. --- entities/weapons/hands.lua | 49 ++++++++++++++++++------------------ gamemode/client/render_viewmodel.lua | 2 -- 2 files changed, 25 insertions(+), 26 deletions(-) diff --git a/entities/weapons/hands.lua b/entities/weapons/hands.lua index 02c2500..02fc0a0 100644 --- a/entities/weapons/hands.lua +++ b/entities/weapons/hands.lua @@ -100,31 +100,32 @@ if (CLIENT) then if (!self.Owner.Weapons or !self.Owner.Weapons[self.Owner.Select]) then return end local item = self.Owner.Weapons[self.Owner.Select].Item - - for k,v in pairs(item.Structure) do - local ID = self.Owner:LookupBone(v.Bone) - local Pos,Ang = self.Owner:GetBonePosition(ID) - - local Offset = v.Pos*1 - Offset:Rotate(Ang) - Pos = Pos + Offset - - local Dang = Ang*1 - - Ang:RotateAroundAxis(Dang:Right(),v.Ang.p) - Ang:RotateAroundAxis(Dang:Up(),v.Ang.y) - Ang:RotateAroundAxis(Dang:Forward(),v.Ang.r) - - self.MOB:SetModel(v.Model) - self.MOB:SetRenderOrigin(Pos) - self.MOB:SetRenderAngles(Ang) + if item.Structure ~= nil then + for k,v in pairs(item.Structure) do + local ID = self.Owner:LookupBone(v.Bone) + local Pos,Ang = self.Owner:GetBonePosition(ID) + + local Offset = v.Pos*1 + Offset:Rotate(Ang) + Pos = Pos + Offset + + local Dang = Ang*1 + + Ang:RotateAroundAxis(Dang:Right(),v.Ang.p) + Ang:RotateAroundAxis(Dang:Up(),v.Ang.y) + Ang:RotateAroundAxis(Dang:Forward(),v.Ang.r) + + self.MOB:SetModel(v.Model) + self.MOB:SetRenderOrigin(Pos) + self.MOB:SetRenderAngles(Ang) + + local mat = Matrix() + mat:Scale( v.Size or Zero ) - local mat = Matrix() - mat:Scale( v.Size or Zero ) - - self.MOB:EnableMatrix( "RenderMultiply", mat ) - self.MOB:SetupBones() - self.MOB:DrawModel() + self.MOB:EnableMatrix( "RenderMultiply", mat ) + self.MOB:SetupBones() + self.MOB:DrawModel() + end end end end diff --git a/gamemode/client/render_viewmodel.lua b/gamemode/client/render_viewmodel.lua index 3ab1230..7eb403f 100644 --- a/gamemode/client/render_viewmodel.lua +++ b/gamemode/client/render_viewmodel.lua @@ -45,5 +45,3 @@ function GM:PostDrawOpaqueRenderables() Ent:DrawModel() end end - - -- cgit v1.2.3-70-g09d2