aboutsummaryrefslogtreecommitdiff
path: root/entities/weapons
diff options
context:
space:
mode:
authorApickx <apickx@cogarr.com>2018-03-08 20:17:32 -0500
committerApickx <apickx@cogarr.com>2018-03-08 20:17:32 -0500
commitae57e4ea207da17023bf418dfdd3822527051b6f (patch)
tree0c594405a2bba6371f9af149b26e493c7db2d39d /entities/weapons
parent39ff835f0672e8bf30d28eddbc89254ad822a77d (diff)
downloadwintersurvival2-ae57e4ea207da17023bf418dfdd3822527051b6f.tar.gz
wintersurvival2-ae57e4ea207da17023bf418dfdd3822527051b6f.tar.bz2
wintersurvival2-ae57e4ea207da17023bf418dfdd3822527051b6f.zip
Fixed a bug with viewmodel
Fixed a bug where switching between weapons would sometimes error.
Diffstat (limited to 'entities/weapons')
-rw-r--r--entities/weapons/hands.lua49
1 files changed, 25 insertions, 24 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