· 7 years ago · Nov 12, 2018, 10:16 AM
1if CustomizableWeaponry then
2
3
4
5AddCSLuaFile()
6
7AddCSLuaFile("sh_sounds.lua")
8
9include("sh_sounds.lua")
10
11
12
13util.PrecacheModel("models/weapons/therambotnic09/v_cw2_auga3.mdl")
14
15util.PrecacheModel("models/weapons/therambotnic09/w_cw2_auga3.mdl")
16
17
18
19local USE_OLD_WELEMENTS = true
20
21
22
23if CLIENT then
24
25 SWEP.DrawCrosshair = false
26
27 SWEP.PrintName = "Steyr AUG A3"
28
29 SWEP.CSMuzzleFlashes = true
30
31 SWEP.ViewModelMovementScale = 1
32
33
34
35 SWEP.magType = "arMag"
36
37
38
39 SWEP.IconLetter = "w"
40
41 killicon.Add("cw_tr09_auga3", "vgui/kills/cw_tr09_auga3_kill", Color(255, 80, 0, 150))
42
43 SWEP.SelectIcon = surface.GetTextureID("vgui/kills/cw_tr09_auga3_select")
44
45
46
47 SWEP.MuzzleEffect = "muzzleflash_6"
48
49 SWEP.PosBasedMuz = true
50
51 SWEP.SnapToGrip = true
52
53 SWEP.ShellScale = 0.6
54
55 SWEP.ShellOffsetMul = 1
56
57 SWEP.ShellPosOffset = {x = 0, y = 0, z = -3}
58
59 SWEP.ForeGripOffsetCycle_Draw = 0.5
60
61 SWEP.ForeGripOffsetCycle_Reload = 0.85
62
63 SWEP.ForeGripOffsetCycle_Reload_Empty = 0.85
64
65 SWEP.M203OffsetCycle_Reload = 0.8
66
67 SWEP.M203OffsetCycle_Reload_Empty = 0.87
68
69 SWEP.M203OffsetCycle_Draw = 0
70
71
72
73 SWEP.CustomizePos = Vector(6, -1, 0)
74
75 SWEP.CustomizeAng = Vector(23, 40, 20)
76
77
78
79 SWEP.IronsightPos = Vector(-3, -2, 0.1)
80
81 SWEP.IronsightAng = Vector(-0.17, 0.1, 0)
82
83 SWEP.FOVPerShot = 0.3
84
85
86
87 SWEP.MicroT1Pos = Vector(-3.03, 2, 0.34)
88
89 SWEP.MicroT1Ang = Vector(0, 0, 0)
90
91
92
93 SWEP.TR09_CMorePos = Vector(-3.015, -3, 0.22)
94
95 SWEP.TR09_CMoreAng = Vector(0, 0, 0)
96
97
98
99 SWEP.TR09_HD33Pos = Vector(-3.02, -3, 0.33)
100
101 SWEP.TR09_HD33Ang = Vector(0, 0, 0)
102
103
104
105 SWEP.TR09_MWRRedDotPos = Vector(-3.01, -2, 0.275)
106
107 SWEP.TR09_MWRRedDotAng = Vector(0, 0, 0)
108
109
110
111 SWEP.TR09_CoyotePos = Vector(-3.02, -3, 0.32)
112
113 SWEP.TR09_CoyoteAng = Vector(0, 0, 0)
114
115
116
117 SWEP.TR09_TrijiconPos = Vector(-3.02, -3, 0.17)
118
119 SWEP.TR09_TrijiconAng = Vector(0, 0, 0)
120
121
122
123 SWEP.EoTechPos = Vector(-3.02, -2, 0.07)
124
125 SWEP.EoTechAng = Vector(0, 0, 0)
126
127
128
129 SWEP.EoTech553Pos = Vector(-3.02, -3, 0.05)
130
131 SWEP.EoTech553Ang = Vector(0, 0, 0)
132
133
134
135 SWEP.HoloPos = Vector(-3.01, -3, 0.16)
136
137 SWEP.HoloAng = Vector(0, 0, 0)
138
139
140
141 SWEP.AimpointPos = Vector(-3.04, -3, 0.17)
142
143 SWEP.AimpointAng = Vector(0, 0, 0)
144
145
146
147 SWEP.CoD4TascoPos = Vector(-3.03, -3, 0.595)
148
149 SWEP.CoD4TascoAng = Vector(0, 0, 0)
150
151
152
153 SWEP.FAS2AimpointPos = Vector(-3, -3, 0.37)
154
155 SWEP.FAS2AimpointAng = Vector(0, 0, 0)
156
157
158
159 SWEP.ShortDotPos = Vector(-2.985, -3, 0.33)
160
161 SWEP.ShortDotAng = Vector(0, 0, 0)
162
163 SWEP.SchmidtShortDotAxisAlign = {right = 0, up = 0.2, forward = 0}
164
165
166
167 SWEP.ACOGPos = Vector(-3.005, -3, 0.04)
168
169 SWEP.ACOGAng = Vector(0, 0, 0)
170
171 SWEP.ACOGAxisAlign = {right = 0, up = 0.25, forward = 0}
172
173
174
175 SWEP.LeupoldPos = Vector(-3.025, -3, 0.175)
176
177 SWEP.LeupoldAng = Vector(0, 0, 0)
178
179 SWEP.LeupoldAxisAlign = {right = 0, up = 0, forward = 0}
180
181
182
183 SWEP.BackupReflexPos = Vector(-4.58, -5, 1.73)
184
185 SWEP.BackupReflexAng = Vector(0, 0, -45)
186
187
188
189 -- /*Knife Kitty's Magnifier Scope Aim Position Code*\ --
190
191 SWEP.MagnifierPos = Vector(-3, -3, 0.15)
192
193 SWEP.MagnifierAng = Vector(0, 0, 0)
194
195 SWEP.MagnifierScopeAxisAlign = {right = 0, up = 0, forward = 0}
196
197
198
199 SWEP.EoTechPos_mag3x = Vector(-3.02, -2, 0.07)
200
201 SWEP.EoTechAng_mag3x = Vector(0, 0, 0)
202
203
204
205 SWEP.EoTech553Pos_mag3x = Vector(-3.02, -3, 0.05)
206
207 SWEP.EoTech553Ang_mag3x = Vector(0, 0, 0)
208
209
210
211 SWEP.HoloPos_mag3x = Vector(-3.01, -3, 0.16)
212
213 SWEP.HoloAng_mag3x = Vector(0, 0, 0)
214
215
216
217 SWEP.AimpointPos_mag3x = Vector(-3.04, -3, 0.17)
218
219 SWEP.AimpointAng_mag3x = Vector(0, 0, 0)
220
221
222
223 SWEP.FAS2AimpointPos_mag3x = Vector(-3.01, -3, 0.35)
224
225 SWEP.FAS2AimpointAng_mag3x = Vector(0, 0, 0)
226
227 --[[==================================================]]--
228
229
230
231 SWEP.M203Pos = Vector(-1.5, -3, 0.8)
232
233 SWEP.M203Ang = Vector(0, 0, 0)
234
235
236
237 SWEP.SprintPos = Vector(2, -1, 0)
238
239 SWEP.SprintAng = Vector(-20, 35, -15)
240
241
242
243 SWEP.AlternativePos = Vector(-0.5, 1, -0.5)
244
245 SWEP.AlternativeAng = Vector(0, 0, 0)
246
247
248
249 SWEP.BackupSights = {["md_acog"] = {[1] = Vector(-2.995, -4, -0.86), [2] = Vector(0, 0.2, 0)}}
250
251
252
253 SWEP.M203CameraRotation = {p = -90, y = 0, r = -90}
254
255
256
257 SWEP.BaseArm = "l_upperarm"
258
259 SWEP.BaseArmBoneOffset = Vector(-50, 0, 0)
260
261 SWEP.CustomizationMenuScale = 0.0105
262
263
264
265 SWEP.AttachmentModelsVM = {
266
267 ["md_magnifier_scope"] = {type = "Model", model = "models/c_magnifier_scope.mdl", bone = "body", rel = "", pos = Vector(0.01, 6.5, -1), angle = Angle(0, -90, 0), size = Vector(1, 1, 1)},
268
269 ["md_backup_reflex_rail"] = {type = "Model", model = "models/c_angled_rails.mdl", bone = "body", rel = "", pos = Vector(-0.4, 8.5, -2.03), angle = Angle(180, -90, 90), size = Vector(1, 1, 1)},
270
271 ["md_backup_reflex"] = {type = "Model", model = "models/c_docter.mdl", bone = "body", rel = "", pos = Vector(-1.05, 9.25, -1.6), angle = Angle(0, -90, 45), size = Vector(0.7, 0.7, 0.7)},
272
273 ["md_fas2_leupold"] = {type = "Model", model = "models/v_fas2_leupold.mdl", bone = "body", rel = "", pos = Vector(-0.03, 0.75, 0.44), angle = Angle(0, -90, 0), size = Vector(1.4, 1.4, 1.4)},
274
275 ["md_fas2_leupold_mount"] = {type = "Model", model = "models/v_fas2_leupold_mounts.mdl", bone = "body", rel = "", pos = Vector(-0.03, 0.75, 0.44), angle = Angle(0, -90, 0), size = Vector(1.4, 1.4, 1.4)},
276
277 ["md_schmidt_shortdot"] = {type = "Model", model = "models/cw2/attachments/schmidt.mdl", bone = "body", rel = "", pos = Vector(-0.26, -2.3, -4.8), angle = Angle(0, -90, 0), size = Vector(0.75, 0.75, 0.75)},
278
279 ["md_acog"] = {type = "Model", model = "models/wystan/attachments/2cog.mdl", bone = "body", pos = Vector(-0.3, -2.6, -5.1), angle = Angle(0, 0, 0), size = Vector(0.8, 0.8, 0.8)},
280
281 ["md_aimpoint"] = {type = "Model", model = "models/wystan/attachments/aimpoint.mdl", bone = "body", rel = "", pos = Vector(-0.23, -4, -5.32), angle = Angle(0, 0, 0), size = Vector(0.85, 0.85, 0.85)},
282
283 ["md_eotech"] = {type = "Model", model = "models/wystan/attachments/2otech557sight.mdl", bone = "body", rel = "", pos = Vector(0.25, -8.2, -10.66), angle = Angle(3, -90, 0), size = Vector(0.9, 0.9, 0.9)},
284
285 ["md_foregrip"] = {type = "Model", model = "models/wystan/attachments/foregrip1.mdl", bone = "body", rel = "", pos = Vector(-0.34, -0.5, -4.98), angle = Angle(0, 0, 0), size = Vector(0.6, 0.65, 0.7)},
286
287 ["md_saker"] = {type = "Model", model = "models/cw2/attachments/556suppressor.mdl", bone = "body", pos = Vector(-0.02, 0.85, -4.08), angle = Angle(0, 0, 0), size = Vector(0.7, 0.7, 0.7)},
288
289 ["md_fas2_eotech"] = {type = "Model", model = "models/c_fas2_eotech.mdl", bone = "body", rel = "", pos = Vector(0.02, 4.5, -1), angle = Angle(0, -90, 0), size = Vector(1, 1, 1)},
290
291 ["md_fas2_aimpoint"] = {type = "Model", model = "models/c_fas2_aimpoint_rigged.mdl", bone = "body", rel = "", pos = Vector(0.02, 4.3, -1.23), angle = Angle(0, -90, 0), size = Vector(1, 1, 1)},
292
293 ["md_fas2_holo_aim"] = {type = "Model", model = "models/v_holo_sight_orig_hx.mdl", bone = "body", rel = "", pos = Vector(0, -1, -4.15), angle = Angle(0, -90, 0), size = Vector(0.65, 0.65, 0.65)},
294
295 ["md_fas2_holo"] = {type = "Model", model = "models/v_holo_sight_kkrc.mdl", bone = "body", rel = "", pos = Vector(0, -1, -4.15), angle = Angle(0, -90, 0), size = Vector(0.65, 0.65, 0.65)},
296
297 ["md_cod4_aimpoint_v2"] = {type = "Model", model = "models/v_cod4_aimpoint.mdl", bone = "body", rel = "", pos = Vector(0, -2.2, -3.2), angle = Angle(0, 90, 0), size = Vector(0.8, 0.8, 0.8)},
298
299 ["angled_foregrip"] = {type = "Model", model = "models/attachments/angled_foregrip.mdl", bone = "body", rel = "", pos = Vector(1.81, -3.7, 0.6), angle = Angle(0, 0, 0), size = Vector(0.8, 0.9, 0.8)},
300
301 ["trijicon_rx01"] = {type = "Model", model = "models/attachments/trijicon_rx01.mdl", bone = "body", rel = "", pos = Vector(-0.01, 1.1, -0.48), angle = Angle(0, -90, 0), size = Vector(0.8, 0.8, 0.8)},
302
303 ["cmore_railway"] = {type = "Model", model = "models/attachments/cmore_railway.mdl", bone = "body", rel = "", pos = Vector(0, 1.3, -0.44), angle = Angle(0, -90, 0), size = Vector(0.85, 0.85, 0.85)},
304
305 ["codmwr_red_dot"] = {type = "Model", model = "models/attachments/codmwr_red_dot.mdl", bone = "body", rel = "", pos = Vector(0, 1.4, -0.61), angle = Angle(0, -90, 0), size = Vector(0.82, 0.82, 0.82)},
306
307 ["coyote_reddot"] = {type = "Model", model = "models/attachments/coyote_reddot.mdl", bone = "body", rel = "", pos = Vector(0, 1.15, -0.59), angle = Angle(0, -90, 0), size = Vector(0.95, 0.95, 0.95)},
308
309 ["hd33_sight"] = {type = "Model", model = "models/attachments/hd33.mdl", bone = "body", rel = "", pos = Vector(0, 2.1, -4.36), angle = Angle(0, -90, 0), size = Vector(0.55, 0.55, 0.55)},
310
311 ["grip_pod"] = {type = "Model", model = "models/attachments/grip_pod.mdl", bone = "body", rel = "", pos = Vector(1.5, -4.5, 0.6), angle = Angle(0, 0, 0), size = Vector(0.7, 0.8, 0.85)},
312
313 ["md_microt1"] = {type = "Model", model = "models/cw2/attachments/microt1.mdl", bone = "body", pos = Vector(0, 1.1, -0.4), angle = Angle(0, -180, 0), size = Vector(0.35, 0.35, 0.35)},
314
315 ["md_anpeq15"] = {type = "Model", model = "models/cw2/attachments/anpeq15.mdl", bone = "body", pos = Vector(0.8, 10.45, -1.9), angle = Angle(-180, -90, -90), size = Vector(0.5, 0.5, 0.5)},
316
317 ["harris_bipod"] = {type = "Model", model = "models/attachments/harris_bipod.mdl", bone = "body", rel = "", pos = Vector(0.02, 9.2, -3.25), angle = Angle(0, -90, 0), size = Vector(0.55, 0.55, 0.55)},
318
319 ["md_m203"] = {type = "Model", model = "models/cw2/attachments/m203.mdl", bone = "body", pos = Vector(1.65, -3.6, -0.7), angle = Angle(0, -90, 0), size = Vector(0.7, 0.7, 0.7), animated = true}
320
321 }
322
323
324
325 SWEP.WElements = {
326
327 ["md_magnifier_scope"] = {type = "Model", model = "models/c_magnifier_scope.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(12.3, 0.85, -4.95), angle = Angle(0, 0, 180), size = Vector(1.6, 1.6, 1.6), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
328
329 ["md_backup_reflex_rail"] = {type = "Model", model = "models/c_angled_rails.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(17, 0.250, -3.600), angle = Angle(-180, 0, -90), size = Vector(1.4, 1.4, 1.4), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
330
331 ["md_backup_reflex"] = {type = "Model", model = "models/c_docter.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(18.2, -0.72, -4.2), angle = Angle(0, 0, -135), size = Vector(1.1, 1.1, 1.1), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
332
333 ["md_fas2_leupold"] = {type = "Model", model = "models/v_fas2_leupold.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(3.3, 0.8, -7.2), angle = Angle(0, 0, -180), size = Vector(2.1, 2.1, 2.1), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
334
335 ["md_fas2_leupold_mount"] = {type = "Model", model = "models/v_fas2_leupold_mounts.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(3.3, 0.8, -7.2), angle = Angle(0, 0, -180), size = Vector(2.1, 2.1, 2.1), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
336
337 ["md_schmidt_shortdot"] = {type = "Model", model = "models/cw2/attachments/schmidt.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(-2.6, 0.42, 0.53), angle = Angle(0, 0, -180), size = Vector(1.1, 1.1, 1.1), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
338
339 ["md_acog"] = {type = "Model", model = "models/wystan/attachments/2cog.mdl", bone = "ValveBiped.Bip01_R_Hand", pos = Vector(-2.23, 0.42, 0.53), angle = Angle(0, -90, -180), size = Vector(1.1, 1.1, 1.1), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
340
341 ["md_aimpoint"] = {type = "Model", model = "models/wystan/attachments/aimpoint.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(-3.2, 0.5, 1.07), angle = Angle(0, -90, -180), size = Vector(1.2, 1.2, 1.2), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
342
343 ["md_eotech"] = {type = "Model", model = "models/wystan/attachments/2otech557sight.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(-9.7, 1.2, 8.9), angle = Angle(-3, 0, -180), size = Vector(1.3, 1.3, 1.3), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
344
345 ["md_foregrip"] = {type = "Model", model = "models/wystan/attachments/foregrip1.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(24.7, 1.1, -0.4), angle = Angle(0, 90, 180), size = Vector(0.7, 0.7, 0.8), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
346
347 ["md_saker"] = {type = "Model", model = "models/cw2/attachments/556suppressor.mdl", bone = "ValveBiped.Bip01_R_Hand", pos = Vector(2.8, 0.75, -6.55), angle = Angle(0, 90, 0), size = Vector(0.95, 0.95, 0.95), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
348
349 ["md_fas2_eotech"] = {type = "Model", model = "models/c_fas2_eotech.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(8.8, 0.82, -5.03), angle = Angle(0, 0, -180), size = Vector(1.5, 1.5, 1.5), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
350
351 ["md_fas2_aimpoint"] = {type = "Model", model = "models/c_fas2_aimpoint_rigged.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(8.9, 0.82, -4.7), angle = Angle(0, 0, -180), size = Vector(1.5, 1.5, 1.5), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
352
353 ["md_fas2_holo_aim"] = {type = "Model", model = "models/v_holo_sight_orig_hx.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(0.9, 0.82, -0.73), angle = Angle(0, 0, -180), size = Vector(0.9, 0.9, 0.9), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
354
355 ["md_fas2_holo"] = {type = "Model", model = "models/v_holo_sight_kkrc.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(0.9, 0.82, -0.73), angle = Angle(0, 0, -180), size = Vector(0.9, 0.9, 0.9), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
356
357 ["angled_foregrip"] = {type = "Model", model = "models/attachments/angled_foregrip.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(-3.4, 3.25, -7.2), angle = Angle(0, -90, 180), size = Vector(1.1, 1.2, 1.1), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
358
359 ["trijicon_rx01"] = {type = "Model", model = "models/attachments/trijicon_rx01.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(2.9, 0.78, -5.8), angle = Angle(0, 0, -180), size = Vector(1.2, 1.2, 1.2), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
360
361 ["cmore_railway"] = {type = "Model", model = "models/attachments/cmore_railway.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(2.9, 0.82, -5.85), angle = Angle(180, -180, 0), size = Vector(1.2, 1.2, 1.2), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
362
363 ["codmwr_red_dot"] = {type = "Model", model = "models/attachments/codmwr_red_dot.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(3.6, 0.8, -5.6), angle = Angle(0, 0, -180), size = Vector(1.1, 1.1, 1.1), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
364
365 ["coyote_reddot"] = {type = "Model", model = "models/attachments/coyote_reddot.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(2.9, 0.8, -5.65), angle = Angle(0, 0, -180), size = Vector(1.4, 1.4, 1.4), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
366
367 ["hd33_sight"] = {type = "Model", model = "models/attachments/hd33.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(4.7, 0.8, -0.16), angle = Angle(180, -180, 0), size = Vector(0.8, 0.8, 0.8), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
368
369 ["grip_pod"] = {type = "Model", model = "models/attachments/grip_pod.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(0.46, 2.5, -6.35), angle = Angle(0, -90, 180), size = Vector(0.8, 0.8, 0.95), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
370
371 ["md_cod4_aimpoint_v2"] = {type = "Model", model = "models/v_cod4_aimpoint.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(-0.6, 0.82, -2.05), angle = Angle(0, -180, -180), size = Vector(1.1, 1.1, 1.1), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
372
373 ["md_microt1"] = {type = "Model", model = "models/cw2/attachments/microt1.mdl", bone = "ValveBiped.Bip01_R_Hand", pos = Vector(3.3, 0.82, -5.92), angle = Angle(180, -90, 0), size = Vector(0.5, 0.5, 0.5), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
374
375 ["md_anpeq15"] = {type = "Model", model = "models/cw2/attachments/anpeq15.mdl", bone = "ValveBiped.Bip01_R_Hand", pos = Vector(17, 1.8, -3.9), angle = Angle(180, 0, 90), size = Vector(0.6, 0.6, 0.6), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
376
377 ["harris_bipod"] = {type = "Model", model = "models/attachments/harris_bipod.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(17, 0.8, -2), angle = Angle(0, 0, -180), size = Vector(0.6, 0.6, 0.6), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}},
378
379 ["md_m203"] = {type = "Model", model = "models/attachments/w_m203.mdl", bone = "ValveBiped.Bip01_R_Hand", pos = Vector(-1.65, 2.75, -5.2), angle = Angle(0, 0, -180), size = Vector(0.85, 0.85, 0.85), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {}}
380
381 }
382
383
384
385 SWEP.M203HoldPos = {
386
387 ["l_ring_low"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-40, 7, -15) },
388
389 ["l_middle_low"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-50, 20, -20) },
390
391 ["l_upperarm"] = { scale = Vector(1, 1, 1), pos = Vector(3.2, 0.899, -0.25), angle = Angle(0, 0, 0) },
392
393 ["l_ring_mid"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(5, -5, 0) },
394
395 ["l_index_mid"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-10, -10, 0) },
396
397 ["l_thumb_low"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(25, -7, 0) },
398
399 ["l_wrist"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(15, 0, -60) },
400
401 ["l_index_tip"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-7, 0, 0) },
402
403 ["l_ring_tip"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-65, 0, 0) },
404
405 ["l_thumb_mid"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(0, -20, 0) },
406
407 ["l_middle_tip"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-35, 0, 0) },
408
409 ["l_middle_mid"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(5, -10, 0) },
410
411 ["l_pinky_tip"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-45, 0, 0) },
412
413 ["l_pinky_low"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-15, 0, 0) },
414
415 ["l_armtwist_1"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(0, 0, -50) },
416
417 ["l_pinky_mid"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-20, 0, 0) },
418
419 ["l_index_low"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-60, 10, -10) }
420
421 }
422
423
424
425 SWEP.ForeGripHoldPos = {
426
427 ["l_ring_low"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(0, 0, -10) },
428
429 ["l_middle_low"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(0, 0, -15) },
430
431 ["l_upperarm"] = { scale = Vector(1, 1, 1), pos = Vector(1.5, -0.08, -1.701), angle = Angle(0, 0, 0) },
432
433 ["l_ring_mid"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(20, 0, -5) },
434
435 ["l_middle_tip"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(50, 0, 0) },
436
437 ["l_thumb_low"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(35, 20, 0) },
438
439 ["l_wrist"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-5, -15, 45) },
440
441 ["l_pinky_tip"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(55, 0, 0) },
442
443 ["l_thumb_tip"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(0, 85, 0) },
444
445 ["l_index_mid"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-5, 0, 0) },
446
447 ["l_ring_tip"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(60, 0, 0) },
448
449 ["l_thumb_mid"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-35, 30, 0) },
450
451 ["l_index_tip"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(30, 0, 0) },
452
453 ["l_middle_mid"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(25, 0, 0) },
454
455 ["l_pinky_low"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(0, 5, -7) },
456
457 ["l_index_low"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(25, -5, -15) },
458
459 ["l_pinky_mid"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(10, 0, -10) },
460
461 ["l_forearm"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-10, 10, -15) },
462
463 ["l_armtwist_1"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(0, 0, 40) }
464
465 }
466
467
468
469 SWEP.ForegripOverridePos = {
470
471 ["angled_foregrip"] = {
472
473 ["l_ring_low"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-45, -3, -15) },
474
475 ["l_middle_low"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-60, 5, -20) },
476
477 ["l_upperarm"] = { scale = Vector(1, 1, 1), pos = Vector(4.3, 0.5, 0.449), angle = Angle(3.2, 0, 0) },
478
479 ["l_ring_mid"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(5, -5, 0) },
480
481 ["l_middle_tip"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-35, 0, 0) },
482
483 ["l_index_mid"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-10, -10, -30) },
484
485 ["l_thumb_low"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-5, -3, 0) },
486
487 ["l_wrist"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(20, -7, -35) },
488
489 ["l_armtwist_1"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(0, 0, -35) },
490
491 ["l_ring_tip"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-65, 0, 0) },
492
493 ["l_pinky_tip"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-45, 0, 0) },
494
495 ["l_index_tip"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(10, 0, 0) },
496
497 ["l_pinky_low"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-10, -15, 0) },
498
499 ["l_middle_mid"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(5, -10, 0) },
500
501 ["l_index_low"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-70, 10, -10) },
502
503 ["l_pinky_mid"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-20, 0, 0) },
504
505 ["l_thumb_mid"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(0, -20, 0) }},
506
507
508
509 ["grip_pod"] = {
510
511 ["l_ring_low"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(0, 0, -10) },
512
513 ["l_middle_low"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(0, 0, -15) },
514
515 ["l_upperarm"] = { scale = Vector(1, 1, 1), pos = Vector(1.5, -0.08, -1.701), angle = Angle(0, 0, 0) },
516
517 ["l_ring_mid"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(20, 0, -5) },
518
519 ["l_middle_tip"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(50, 0, 0) },
520
521 ["l_thumb_low"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(35, 20, 0) },
522
523 ["l_wrist"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-5, -15, 45) },
524
525 ["l_pinky_tip"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(55, 0, 0) },
526
527 ["l_thumb_tip"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(0, 85, 0) },
528
529 ["l_index_mid"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-5, 0, 0) },
530
531 ["l_ring_tip"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(60, 0, 0) },
532
533 ["l_thumb_mid"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-35, 30, 0) },
534
535 ["l_index_tip"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(30, 0, 0) },
536
537 ["l_middle_mid"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(25, 0, 0) },
538
539 ["l_pinky_low"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(0, 5, -7) },
540
541 ["l_index_low"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(25, -5, -15) },
542
543 ["l_pinky_mid"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(10, 0, -10) },
544
545 ["l_forearm"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(-10, 10, -15) },
546
547 ["l_armtwist_1"] = { scale = Vector(1, 1, 1), pos = Vector(0, 0, 0), angle = Angle(0, 0, 40) }
548
549 }
550
551 }
552
553
554
555 SWEP.LaserPosAdjust = Vector(0, 0, 0)
556
557 SWEP.LaserAngAdjust = Angle(0, 180, 0)
558
559end
560
561
562
563SWEP.MuzzleVelocity = 970 -- in meter/s
564
565
566
567//lua_run Entity(1):GetViewModel():SetBodygroup(BG, Subcategory)
568
569
570
571SWEP.SightBGs = {main = 2, regular = 0, none = 1}
572
573SWEP.MagBGs = {main = 3, regular = 0, extmag = 1}
574
575SWEP.BarrelBGs = {main = 4, regular = 0, long = 1}
576
577SWEP.SilencerBGs = {main = 5, none = 0, sil = 1, long_sil = 2}
578
579SWEP.LuaViewmodelRecoil = true
580
581SWEP.BipodFireAnim = true
582
583
584
585function SWEP:IndividualThink()
586
587 self.Animations.draw = "draw"
588
589
590
591 if self.Animations.draw == "draw" then
592
593 self.DeployTime = 0.5
594
595 self.ForeGripOffsetCycle_Draw = 0
596
597 end
598
599
600
601 if self.dt.State == CW_AIMING then
602
603 self.ViewModelMovementScale = 0.3
604
605 else
606
607 self.ViewModelMovementScale = 1
608
609 end
610
611
612
613 if self.ActiveAttachments.md_foregrip or self.ActiveAttachments.grip_pod then
614
615 self.NormalHoldType = "smg"
616
617 else
618
619 self.NormalHoldType = "ar2"
620
621 end
622
623
624
625 if self.ActiveAttachments.auga3_silencer then
626
627 if self.ActiveAttachments.auga3_longbarrel then
628
629 self:setBodygroup(self.SilencerBGs.main, self.SilencerBGs.long_sil)
630
631 else
632
633 self:setBodygroup(self.SilencerBGs.main, self.SilencerBGs.sil)
634
635 end
636
637 end
638
639end
640
641
642
643function SWEP:fireAnimFunc()
644
645 local cyc = 0
646
647 local clip = self:Clip1()
648
649
650
651 if self:isAiming() or self.ActiveAttachments.md_m203 then
652
653 cyc = 1
654
655 end
656
657
658
659 if clip > 1 then
660
661 self:sendWeaponAnim("fire",1,cyc)
662
663 end
664
665end
666
667
668
669SWEP.AttachmentDependencies = {
670
671 ["md_magnifier_scope"] = {"md_eotech", "md_fas2_eotech", "md_fas2_holo", "md_aimpoint", "md_fas2_aimpoint"}
672
673}
674
675
676
677SWEP.AttachmentPosDependency = {
678
679 ["md_saker"] = {["auga3_longbarrel"] = Vector(-0.02, 4.3, -4.08)},
680
681 ["md_eotech"] = {["md_magnifier_scope"] = Vector(0.25, -6.1, -10.66)},
682
683 ["md_fas2_eotech"] = {["md_magnifier_scope"] = Vector(0.02, 6.8, -1)},
684
685 ["md_fas2_holo"] = {["md_magnifier_scope"] = Vector(0, 1.6, -4.15)},
686
687 ["md_aimpoint"] = {["md_magnifier_scope"] = Vector(-0.23, -1.1, -5.32)},
688
689 ["md_fas2_aimpoint"] = {["md_magnifier_scope"] = Vector(0.02, 6.7, -1.2)},
690
691}
692
693
694
695SWEP.AttachmentExclusions = {
696
697 ["md_backup_reflex"] = {"md_microt1", "md_fas2_holo", "md_acog"}
698
699}
700
701
702
703if CustomizableWeaponry_KK_HK416 then
704
705 SWEP.Attachments = {[1] = {header = "Sight", offset = {500, -400}, atts = {"md_microt1", "cmore_railway", "hd33_sight", "codmwr_red_dot", "coyote_reddot", "trijicon_rx01", "md_eotech", "md_fas2_eotech", "md_aimpoint", "md_cod4_aimpoint_v2", "md_fas2_aimpoint", "md_schmidt_shortdot", "md_acog", "md_fas2_leupold"}},
706
707 [2] = {header = "Suppressor", offset = {-550, -400}, atts = {"md_saker", "auga3_silencer"}},
708
709 [3] = {header = "Laser", offset = {-550, 20}, atts = {"md_anpeq15"}},
710
711 [4] = {header = "Handguard", offset = {-550, 450}, atts = {"md_foregrip", "grip_pod", "angled_foregrip", "md_m203", "harris_bipod"}},
712
713 [5] = {header = "Hybrid Sights", offset = {300, 100}, atts = {"md_backup_reflex", "md_magnifier_scope"}},
714
715 [6] = {header = "Barrel", offset = {-100, -400}, atts = {"auga3_longbarrel"}},
716
717 [7] = {header = "Magazine", offset = {1200, 600}, atts = {"auga3_extmag"}},
718
719 [8] = {header = "Reloading Method", offset = {1800, 100}, atts = {"auga3_clatch"}},
720
721 ["impulse 100"] = {header = "Skins", offset = {450, 600}, atts = {"auga3_white", "auga3_tan", "auga3_green"}},
722
723 ["+reload"] = {header = "Ammo", offset = {1200, 100}, atts = {"am_magnum", "am_matchgrade"}}
724
725 }
726
727else
728
729 SWEP.Attachments = {[1] = {header = "Sight", offset = {650, -400}, atts = {"md_microt1", "cmore_railway", "hd33_sight", "codmwr_red_dot", "coyote_reddot", "trijicon_rx01", "md_eotech", "md_aimpoint", "md_schmidt_shortdot", "md_acog"}},
730
731 [2] = {header = "Suppressor", offset = {-450, -400}, atts = {"md_saker", "auga3_silencer"}},
732
733 [3] = {header = "Laser", offset = {-450, 20}, atts = {"md_anpeq15"}},
734
735 [4] = {header = "Handguard", offset = {-450, 450}, atts = {"md_foregrip", "grip_pod", "angled_foregrip", "md_m203", "harris_bipod"}},
736
737 [5] = {header = "Barrel", offset = {50, -400}, atts = {"auga3_longbarrel"}},
738
739 [6] = {header = "Magazine", offset = {1200, 600}, atts = {"auga3_extmag"}},
740
741 [7] = {header = "Reloading Method", offset = {1200, 100}, atts = {"auga3_clatch"}},
742
743 ["impulse 100"] = {header = "Skins", offset = {450, 600}, atts = {"auga3_white", "auga3_tan", "auga3_green"}},
744
745 ["+reload"] = {header = "Ammo", offset = {650, 100}, atts = {"am_magnum", "am_matchgrade"}}
746
747 }
748
749end
750
751
752
753SWEP.Animations = {fire = {"shoot1", "shoot2", "shoot3"},
754
755 reload = "reload",
756
757 reload_empty = "reload_empty",
758
759 idle = "idle",
760
761 draw = "first_draw"}
762
763
764
765SWEP.Sounds = {first_draw = {[1] = {time = 0, sound = "CW_AUGA3_DEPLOY"},
766
767 [2] = {time = 0.4, sound = "CW_AUGA3_BOLTPULL"},
768
769 [3] = {time = 0.55, sound = "CW_AUGA3_BOLTRELEASE"}},
770
771
772
773 draw = {{time = 0, sound = "CW_AUGA3_CLOTH"}},
774
775
776
777 reload = {[1] = {time = 0.5, sound = "CW_AUGA3_MAGRELEASE"},
778
779 [2] = {time = 1.07, sound = "CW_AUGA3_MAGOUT"},
780
781 [3] = {time = 1.6, sound = "CW_AUGA3_MAGDROP"},
782
783 [4] = {time = 2.3, sound = "CW_AUGA3_MAGIN"},
784
785 [5] = {time = 2.8, sound = "CW_AUGA3_MAGHIT"},
786
787 [6] = {time = 3.2, sound = "CW_AUGA3_CLOTH"}},
788
789
790
791 reload_boltclatch = {[1] = {time = 0.5, sound = "CW_AUGA3_MAGRELEASE"},
792
793 [2] = {time = 1.07, sound = "CW_AUGA3_MAGOUT"},
794
795 [3] = {time = 1.6, sound = "CW_AUGA3_MAGDROP"},
796
797 [4] = {time = 2.3, sound = "CW_AUGA3_MAGIN"},
798
799 [5] = {time = 2.8, sound = "CW_AUGA3_MAGHIT"},
800
801 [6] = {time = 3.6, sound = "CW_AUGA3_BOLTRELEASE"}},
802
803
804
805 reload_empty = {[1] = {time = 0.5, sound = "CW_AUGA3_MAGRELEASE"},
806
807 [2] = {time = 1.07, sound = "CW_AUGA3_MAGOUT"},
808
809 [3] = {time = 1.6, sound = "CW_AUGA3_MAGDROP"},
810
811 [4] = {time = 2.3, sound = "CW_AUGA3_MAGIN"},
812
813 [5] = {time = 2.8, sound = "CW_AUGA3_MAGHIT"},
814
815 [6] = {time = 3.4, sound = "CW_AUGA3_BOLTPULL"},
816
817 [7] = {time = 3.7, sound = "CW_AUGA3_BOLTRELEASE"}}}
818
819
820
821SWEP.SpeedDec = 30
822
823SWEP.MoveType = 0
824
825
826
827SWEP.Slot = 2
828
829SWEP.SlotPos = 0
830
831SWEP.NormalHoldType = "ar2"
832
833SWEP.RunHoldType = "passive"
834
835SWEP.FireModes = {"auto", "3burst", "semi"}
836
837SWEP.Base = "cw_base"
838
839SWEP.Category = "CW 2.0 - TheRambotnic09"
840
841
842
843SWEP.Author = "TheRambotnic09"
844
845SWEP.Contact = "Via Steam: http://steamcommunity.com/id/therambotniczeronove/"
846
847SWEP.Purpose = "To kill bad guys. Duh!"
848
849SWEP.Instructions = "Press your primary PEW-PEW key to kill the bad guys."
850
851
852
853SWEP.ViewModelFOV = 70
854
855SWEP.ViewModelFlip = false
856
857SWEP.ViewModel = "models/weapons/therambotnic09/v_cw2_auga3.mdl"
858
859SWEP.WorldModel = "models/weapons/therambotnic09/w_cw2_auga3.mdl"
860
861SWEP.DrawTraditionalWorldModel = false
862
863SWEP.WM = "models/weapons/therambotnic09/w_cw2_auga3.mdl"
864
865SWEP.WMPos = Vector(-0.5, -5, -1)
866
867SWEP.WMAng = Vector(0, 0, 180)
868
869
870
871SWEP.Spawnable = true
872
873SWEP.AdminSpawnable = true
874
875
876
877SWEP.Primary.ClipSize = 30
878
879SWEP.Primary.DefaultClip = 150
880
881SWEP.Primary.Automatic = true
882
883SWEP.Primary.Ammo = "ar2"
884
885
886
887SWEP.FireDelay = 0.08
888
889SWEP.FireSound = "CW_AUGA3_FIRE"
890
891SWEP.FireSoundSuppressed = "CW_AUGA3_FIRE_SUPPRESSED"
892
893SWEP.Recoil = 0.9
894
895
896
897SWEP.HipSpread = 0.045
898
899SWEP.AimSpread = 0.0025
900
901SWEP.VelocitySensitivity = 1.8
902
903SWEP.MaxSpreadInc = 0.04
904
905SWEP.SpreadPerShot = 0.007
906
907SWEP.SpreadCooldown = 0.1
908
909SWEP.Shots = 1
910
911SWEP.Damage = 30
912
913SWEP.DeployTime = 1.1
914
915
916
917SWEP.ReloadSpeed = 1
918
919SWEP.ReloadTime = 3.8
920
921SWEP.ReloadHalt = 3.8
922
923SWEP.ReloadTime_Empty = 4.7
924
925SWEP.ReloadHalt_Empty = 4.7
926
927SWEP.SnapToIdlePostReload = true
928
929
930
931if USE_OLD_WELEMENTS then
932
933
934
935if CLIENT then
936
937
938
939 CustomizableWeaponry.callbacks:addNew("initialize", "cw_tr09_auga3", function(wep) -- instead of copy pasting 50+ lines of func, 5 lines can do even more
940
941 if wep and wep:GetClass() == "cw_tr09_auga3" then
942
943 wep:CreateModels(wep.WElements)
944
945 end
946
947 end)
948
949
950
951 function SWEP:WElementThink()
952
953
954
955 if (self.ActiveAttachments.md_microt1 or self.ActiveAttachments.cmore_railway or self.ActiveAttachments.hd33_sight or self.ActiveAttachments.codmwr_red_dot
956
957 or self.ActiveAttachments.coyote_reddot or self.ActiveAttachments.trijicon_rx01 or self.ActiveAttachments.md_eotech or self.ActiveAttachments.md_fas2_eotech
958
959 or self.ActiveAttachments.md_fas2_holo or self.ActiveAttachments.md_aimpoint or self.ActiveAttachments.md_cod4_aimpoint_v2 or self.ActiveAttachments.md_fas2_aimpoint
960
961 or self.ActiveAttachments.md_schmidt_shortdot or self.ActiveAttachments.md_acog or self.ActiveAttachments.md_fas2_leupold) then
962
963 if IsValid(self.WMEnt) then
964
965 self.WMEnt:SetBodygroup(1,1)
966
967 end
968
969 else
970
971 if self.WMEnt and IsValid(self.WMEnt) then
972
973 self.WMEnt:SetBodygroup(1,0)
974
975 end
976
977 end
978
979
980
981 if self.ActiveAttachments.md_microt1 then
982
983 self.WElements.md_microt1.hide = false
984
985 else
986
987 self.WElements.md_microt1.hide = true
988
989 end
990
991
992
993 if self.ActiveAttachments.cmore_railway then
994
995 self.WElements.cmore_railway.hide = false
996
997 else
998
999 self.WElements.cmore_railway.hide = true
1000
1001 end
1002
1003
1004
1005 if self.ActiveAttachments.hd33_sight then
1006
1007 self.WElements.hd33_sight.hide = false
1008
1009 else
1010
1011 self.WElements.hd33_sight.hide = true
1012
1013 end
1014
1015
1016
1017 if self.ActiveAttachments.codmwr_red_dot then
1018
1019 self.WElements.codmwr_red_dot.hide = false
1020
1021 else
1022
1023 self.WElements.codmwr_red_dot.hide = true
1024
1025 end
1026
1027
1028
1029 if self.ActiveAttachments.coyote_reddot then
1030
1031 self.WElements.coyote_reddot.hide = false
1032
1033 else
1034
1035 self.WElements.coyote_reddot.hide = true
1036
1037 end
1038
1039
1040
1041 if self.ActiveAttachments.trijicon_rx01 then
1042
1043 self.WElements.trijicon_rx01.hide = false
1044
1045 else
1046
1047 self.WElements.trijicon_rx01.hide = true
1048
1049 end
1050
1051
1052
1053 if self.ActiveAttachments.md_eotech then
1054
1055 self.WElements.md_eotech.hide = false
1056
1057 else
1058
1059 self.WElements.md_eotech.hide = true
1060
1061 end
1062
1063
1064
1065 if self.ActiveAttachments.md_fas2_eotech then
1066
1067 self.WElements.md_fas2_eotech.hide = false
1068
1069 else
1070
1071 self.WElements.md_fas2_eotech.hide = true
1072
1073 end
1074
1075
1076
1077 if self.ActiveAttachments.md_fas2_holo then
1078
1079 self.WElements.md_fas2_holo.hide = false
1080
1081 self.WElements.md_fas2_holo_aim.hide = false
1082
1083 else
1084
1085 self.WElements.md_fas2_holo.hide = true
1086
1087 self.WElements.md_fas2_holo_aim.hide = true
1088
1089 end
1090
1091
1092
1093 if self.ActiveAttachments.md_aimpoint then
1094
1095 self.WElements.md_aimpoint.hide = false
1096
1097 else
1098
1099 self.WElements.md_aimpoint.hide = true
1100
1101 end
1102
1103
1104
1105 if self.ActiveAttachments.md_cod4_aimpoint_v2 then
1106
1107 self.WElements.md_cod4_aimpoint_v2.hide = false
1108
1109 else
1110
1111 self.WElements.md_cod4_aimpoint_v2.hide = true
1112
1113 end
1114
1115
1116
1117 if self.ActiveAttachments.md_fas2_aimpoint then
1118
1119 self.WElements.md_fas2_aimpoint.hide = false
1120
1121 else
1122
1123 self.WElements.md_fas2_aimpoint.hide = true
1124
1125 end
1126
1127
1128
1129 if self.ActiveAttachments.md_schmidt_shortdot then
1130
1131 self.WElements.md_schmidt_shortdot.hide = false
1132
1133 else
1134
1135 self.WElements.md_schmidt_shortdot.hide = true
1136
1137 end
1138
1139
1140
1141 if self.ActiveAttachments.md_acog then
1142
1143 self.WElements.md_acog.hide = false
1144
1145 else
1146
1147 self.WElements.md_acog.hide = true
1148
1149 end
1150
1151
1152
1153 if self.ActiveAttachments.md_fas2_leupold then
1154
1155 self.WElements.md_fas2_leupold.hide = false
1156
1157 self.WElements.md_fas2_leupold_mount.hide = false
1158
1159 else
1160
1161 self.WElements.md_fas2_leupold.hide = true
1162
1163 self.WElements.md_fas2_leupold_mount.hide = true
1164
1165 end
1166
1167
1168
1169 if self.ActiveAttachments.md_saker then
1170
1171 self.WElements.md_saker.hide = false
1172
1173 else
1174
1175 self.WElements.md_saker.hide = true
1176
1177 end
1178
1179
1180
1181 if self.ActiveAttachments.md_backup_reflex then
1182
1183 self.WElements.md_backup_reflex.hide = false
1184
1185 self.WElements.md_backup_reflex_rail.hide = false
1186
1187 else
1188
1189 self.WElements.md_backup_reflex.hide = true
1190
1191 self.WElements.md_backup_reflex_rail.hide = true
1192
1193 end
1194
1195
1196 local att_magnifier = {}
1197
1198 att_magnifier.aimPos = {"MagnifierPos", "MagnifierAng"}
1199
1200 local isScopePos = (self.AimPos == self[att_magnifier.aimPos[1]] and self.AimAng == self[att_magnifier.aimPos[2]])
1201
1202 if self.ActiveAttachments.md_magnifier_scope then
1203
1204 if isScopePos then
1205
1206 self.WElements.md_magnifier_scope.modelEnt:ManipulateBoneAngles(self.WElements.md_magnifier_scope.modelEnt:LookupBone("scope"), Angle(0, 0, 0))
1207
1208 self.WElements.md_magnifier_scope.modelEnt:ManipulateBoneAngles(self.WElements.md_magnifier_scope.modelEnt:LookupBone("lock"), Angle(0, 0, 0))
1209
1210 elseif !isScopePos then
1211
1212 self.WElements.md_magnifier_scope.modelEnt:ManipulateBoneAngles(self.WElements.md_magnifier_scope.modelEnt:LookupBone("scope"), Angle(self.MagnifierFoldAngle or -95, 0, 0))
1213
1214 self.WElements.md_magnifier_scope.modelEnt:ManipulateBoneAngles(self.WElements.md_magnifier_scope.modelEnt:LookupBone("lock"), Angle(-33.2, 0, 0))
1215
1216 end
1217
1218 self.WElements.md_magnifier_scope.hide = false
1219
1220 else
1221
1222 self.WElements.md_magnifier_scope.hide = true
1223
1224 end
1225
1226
1227
1228 if self.ActiveAttachments.md_magnifier_scope then
1229
1230 if self.ActiveAttachments.md_eotech then
1231
1232 self.WElements.md_eotech.hide = false
1233
1234 self.WElements.md_eotech.pos = Vector(-6.6, 1.2, 8.9)
1235
1236 end
1237
1238 if self.ActiveAttachments.md_fas2_eotech then
1239
1240 self.WElements.md_fas2_eotech.hide = false
1241
1242 self.WElements.md_fas2_eotech.pos = Vector(12.2, 0.82, -5.03)
1243
1244 end
1245
1246 if self.ActiveAttachments.md_fas2_holo then
1247
1248 self.WElements.md_fas2_holo.hide = false
1249
1250 self.WElements.md_fas2_holo.pos = Vector(4.2, 0.82, -0.73)
1251
1252 self.WElements.md_fas2_holo_aim.pos = Vector(4.2, 0.82, -0.73)
1253
1254 end
1255
1256 if self.ActiveAttachments.md_aimpoint then
1257
1258 self.WElements.md_aimpoint.hide = false
1259
1260 self.WElements.md_aimpoint.pos = Vector(0.6, 0.5, 1.07)
1261
1262 end
1263
1264 if self.ActiveAttachments.md_fas2_aimpoint then
1265
1266 self.WElements.md_fas2_aimpoint.hide = false
1267
1268 self.WElements.md_fas2_aimpoint.pos = Vector(12, 0.82, -4.7)
1269
1270 end
1271
1272
1273
1274 else
1275
1276
1277
1278 if self.ActiveAttachments.md_eotech then
1279
1280 self.WElements.md_eotech.hide = false
1281
1282 self.WElements.md_eotech.pos = Vector(-9.7, 1.2, 8.9)
1283
1284 end
1285
1286 if self.ActiveAttachments.md_fas2_eotech then
1287
1288 self.WElements.md_fas2_eotech.hide = false
1289
1290 self.WElements.md_fas2_eotech.pos = Vector(8.8, 0.82, -5.03)
1291
1292 end
1293
1294 if self.ActiveAttachments.md_fas2_holo then
1295
1296 self.WElements.md_fas2_holo.hide = false
1297
1298 self.WElements.md_fas2_holo.pos = Vector(0.9, 0.82, -0.73)
1299
1300 self.WElements.md_fas2_holo_aim.pos = Vector(0.9, 0.82, -0.73)
1301
1302 end
1303
1304 if self.ActiveAttachments.md_aimpoint then
1305
1306 self.WElements.md_aimpoint.hide = false
1307
1308 self.WElements.md_aimpoint.pos = Vector(-3.2, 0.5, 1.07)
1309
1310 end
1311
1312 if self.ActiveAttachments.md_fas2_aimpoint then
1313
1314 self.WElements.md_fas2_aimpoint.hide = false
1315
1316 self.WElements.md_fas2_aimpoint.pos = Vector(8.9, 0.82, -4.7)
1317
1318 end
1319
1320 end
1321
1322 if self.ActiveAttachments.auga3_longbarrel then
1323 if self.ActiveAttachments.md_saker then
1324
1325 self.WElements.md_saker.hide = false
1326
1327 self.WElements.md_saker.pos = Vector(7.5, 0.75, -6.55)
1328
1329 end
1330
1331 else
1332
1333
1334 if self.ActiveAttachments.md_saker then
1335
1336 self.WElements.md_saker.hide = false
1337
1338 self.WElements.md_saker.pos = Vector(2.8, 0.75, -6.55)
1339
1340 end
1341
1342 end
1343
1344
1345
1346 if self.ActiveAttachments.md_anpeq15 then
1347
1348 self.WElements.md_anpeq15.hide = false
1349
1350 else
1351
1352 self.WElements.md_anpeq15.hide = true
1353
1354 end
1355
1356
1357
1358 if self.ActiveAttachments.md_foregrip then
1359
1360 self.WElements.md_foregrip.hide = false
1361
1362 else
1363
1364 self.WElements.md_foregrip.hide = true
1365
1366 end
1367
1368
1369
1370 if self.ActiveAttachments.grip_pod then
1371
1372 self.WElements.grip_pod.hide = false
1373 else
1374
1375 self.WElements.grip_pod.hide = true
1376
1377 end
1378
1379
1380
1381 if self.ActiveAttachments.angled_foregrip then
1382
1383 self.WElements.angled_foregrip.hide = false
1384
1385 else
1386
1387 self.WElements.angled_foregrip.hide = true
1388
1389 end
1390
1391
1392
1393 if self.ActiveAttachments.md_m203 then
1394
1395 self.WElements.md_m203.hide = false
1396
1397 else
1398
1399 self.WElements.md_m203.hide = true
1400
1401 end
1402
1403
1404
1405 if self.ActiveAttachments.harris_bipod then
1406
1407 self.WElements.harris_bipod.hide = false
1408
1409 else
1410
1411 self.WElements.harris_bipod.hide = true
1412
1413 end
1414
1415 end
1416
1417
1418 local Vec0, Ang0 = Vector(0, 0, 0), Angle(0, 0, 0)
1419
1420 local TargetPos, TargetAng, cos1, sin1, tan, ws, rs, mod, EA, delta, sin2, mul, vm, muz, muz2, tr, att
1421
1422 local td = {}
1423
1424 local LerpVector, LerpAngle, Lerp = LerpVector, LerpAngle, Lerp
1425
1426
1427
1428 local reg = debug.getregistry()
1429
1430 local GetVelocity = reg.Entity.GetVelocity
1431
1432 local Length = reg.Vector.Length
1433
1434 local Right = reg.Angle.Right
1435
1436 local Up = reg.Angle.Up
1437
1438 local Forward = reg.Angle.Forward
1439
1440 local RotateAroundAxis = reg.Angle.RotateAroundAxis
1441
1442 local GetBonePosition = reg.Entity.GetBonePosition
1443
1444
1445
1446 local ManipulateBonePosition, ManipulateBoneAngles = reg.Entity.ManipulateBonePosition, reg.Entity.ManipulateBoneAngles
1447
1448
1449
1450 local wm, pos, ang
1451
1452 SWEP.wRenderOrder = nil
1453
1454
1455
1456 function SWEP:DrawWorldModel()
1457
1458 if self.dt.Safe then
1459
1460 if self.CHoldType != self.RunHoldType then
1461
1462 self:SetHoldType(self.RunHoldType)
1463
1464 self.CHoldType = self.RunHoldType
1465
1466 end
1467
1468 else
1469
1470 if self.dt.State == CW_RUNNING or self.dt.State == CW_ACTION then
1471
1472 if self.CHoldType != self.RunHoldType then
1473
1474 self:SetHoldType(self.RunHoldType)
1475
1476 self.CHoldType = self.RunHoldType
1477
1478 end
1479
1480 else
1481
1482 if self.CHoldType != self.NormalHoldType then
1483
1484 self:SetHoldType(self.NormalHoldType)
1485
1486 self.CHoldType = self.NormalHoldType
1487
1488 end
1489
1490 end
1491
1492 end
1493
1494
1495
1496 if self.DrawTraditionalWorldModel then
1497
1498 self:DrawModel()
1499
1500 else
1501
1502 wm = self.WMEnt
1503
1504
1505
1506 if IsValid(wm) then
1507
1508 if IsValid(self.Owner) then
1509
1510 pos, ang = GetBonePosition(self.Owner, self.Owner:LookupBone("ValveBiped.Bip01_R_Hand"))
1511
1512
1513
1514 if pos and ang then
1515
1516 RotateAroundAxis(ang, Right(ang), self.WMAng[1])
1517
1518 RotateAroundAxis(ang, Up(ang), self.WMAng[2])
1519
1520 RotateAroundAxis(ang, Forward(ang), self.WMAng[3])
1521
1522
1523
1524 pos = pos + self.WMPos[1] * Right(ang)
1525
1526 pos = pos + self.WMPos[2] * Forward(ang)
1527
1528 pos = pos + self.WMPos[3] * Up(ang)
1529
1530
1531
1532 wm:SetRenderOrigin(pos)
1533
1534 wm:SetRenderAngles(ang)
1535
1536 wm:DrawModel()
1537
1538 end
1539
1540 else
1541
1542 wm:SetRenderOrigin(self:GetPos())
1543
1544 wm:SetRenderAngles(self:GetAngles())
1545
1546 wm:DrawModel()
1547
1548 wm:DrawShadow()
1549
1550 end
1551
1552 else
1553
1554 self:DrawModel()
1555
1556 end
1557
1558 end
1559
1560
1561
1562 self:WElementThink()
1563
1564
1565
1566 if (!self.WElements) then return end
1567
1568
1569
1570 if (!self.wRenderOrder) then
1571
1572 self.wRenderOrder = {}
1573
1574
1575
1576 for k, v in pairs( self.WElements ) do
1577
1578 if (v.type == "Model") then
1579
1580 table.insert(self.wRenderOrder, 1, k)
1581
1582 elseif (v.type == "Sprite" or v.type == "Quad") then
1583
1584 table.insert(self.wRenderOrder, k)
1585
1586 end
1587
1588 end
1589
1590 end
1591
1592
1593
1594 if (IsValid(self.Owner)) then
1595
1596 bone_ent = self.Owner
1597
1598 else
1599
1600 -- when the weapon is dropped
1601
1602 bone_ent = self
1603
1604 end
1605
1606
1607
1608 for k, name in pairs( self.wRenderOrder ) do
1609
1610
1611
1612 local v = self.WElements[name]
1613
1614 if (!v) then self.wRenderOrder = nil break end
1615
1616 if (v.hide) then continue end
1617
1618
1619
1620 local pos, ang
1621
1622
1623
1624 if (v.bone) then
1625
1626 pos, ang = self:GetBoneOrientation( self.WElements, v, bone_ent )
1627
1628 else
1629
1630 pos, ang = self:GetBoneOrientation( self.WElements, v, bone_ent, "ValveBiped.Bip01_R_Hand" )
1631
1632 end
1633
1634
1635
1636 if (!pos) then continue end
1637
1638
1639
1640 local model = v.modelEnt
1641
1642 local sprite = v.spriteMaterial
1643
1644
1645
1646 if (v.type == "Model" and IsValid(model)) then
1647
1648
1649
1650 if IsValid(self.Owner) then
1651
1652 model:SetPos(pos + ang:Forward() * v.pos.x + ang:Right() * v.pos.y + ang:Up() * v.pos.z )
1653
1654 ang:RotateAroundAxis(ang:Up(), v.angle.y)
1655
1656 ang:RotateAroundAxis(ang:Right(), v.angle.p)
1657
1658 ang:RotateAroundAxis(ang:Forward(), v.angle.r)
1659
1660 else
1661
1662 model:SetPos(pos + ang:Forward() * v.pos_dropped.x + ang:Right() * v.pos_dropped.y + ang:Up() * v.pos_dropped.z )
1663
1664 ang:RotateAroundAxis(ang:Up(), v.angle_dropped.y)
1665
1666 ang:RotateAroundAxis(ang:Right(), v.angle_dropped.p)
1667
1668 ang:RotateAroundAxis(ang:Forward(), v.angle_dropped.r)
1669
1670 end
1671
1672
1673
1674 model:SetAngles(ang)
1675
1676 local matrix = Matrix()
1677
1678 matrix:Scale(v.size)
1679
1680 model:EnableMatrix( "RenderMultiply", matrix )
1681
1682
1683
1684 if (v.material == "") then
1685
1686 model:SetMaterial("")
1687
1688 elseif (model:GetMaterial() != v.material) then
1689
1690 model:SetMaterial( v.material )
1691
1692 end
1693
1694
1695
1696 if (v.skin and v.skin != model:GetSkin()) then
1697
1698 model:SetSkin(v.skin)
1699
1700 end
1701
1702
1703
1704 if (v.bodygroup) then
1705
1706 for k, v in pairs( v.bodygroup ) do
1707
1708 if (model:GetBodygroup(k) != v) then
1709
1710 model:SetBodygroup(k, v)
1711
1712 end
1713
1714 end
1715
1716 end
1717
1718
1719
1720 if (v.surpresslightning) then
1721
1722 render.SuppressEngineLighting(true)
1723
1724 end
1725
1726
1727
1728 render.SetColorModulation(v.color.r/255, v.color.g/255, v.color.b/255)
1729
1730 render.SetBlend(v.color.a/255)
1731
1732 model:DrawModel()
1733
1734 render.SetBlend(1)
1735
1736 render.SetColorModulation(1, 1, 1)
1737
1738
1739
1740 if (v.surpresslightning) then
1741
1742 render.SuppressEngineLighting(false)
1743
1744 end
1745
1746 end
1747
1748 end
1749
1750 end
1751
1752
1753
1754 function SWEP:GetBoneOrientation( basetab, tab, ent, bone_override )
1755
1756
1757
1758 local bone, pos, ang
1759
1760 if (tab.rel and tab.rel != "") then
1761
1762
1763
1764 local v = basetab[tab.rel]
1765
1766
1767
1768 if (!v) then return end
1769
1770
1771
1772 -- Technically, if there exists an element with the same name as a bone
1773
1774 -- you can get in an infinite loop. Let's just hope nobody's that stupid.
1775
1776 pos, ang = self:GetBoneOrientation( basetab, v, ent )
1777
1778
1779
1780 if (!pos) then return end
1781
1782
1783
1784 pos = pos + ang:Forward() * v.pos.x + ang:Right() * v.pos.y + ang:Up() * v.pos.z
1785
1786 ang:RotateAroundAxis(ang:Up(), v.angle.y)
1787
1788 ang:RotateAroundAxis(ang:Right(), v.angle.p)
1789
1790 ang:RotateAroundAxis(ang:Forward(), v.angle.r)
1791
1792
1793
1794 else
1795
1796
1797
1798 bone = ent:LookupBone(bone_override or tab.bone)
1799
1800
1801
1802 if (!bone) then return end
1803
1804
1805
1806 pos, ang = Vector(0,0,0), Angle(0,0,0)
1807
1808 local m = ent:GetBoneMatrix(bone)
1809
1810 if (m) then
1811
1812 pos, ang = m:GetTranslation(), m:GetAngles()
1813
1814 end
1815
1816
1817
1818 if (IsValid(self.Owner) and self.Owner:IsPlayer() and
1819
1820 ent == self.Owner:GetViewModel() and self.ViewModelFlip) then
1821
1822 ang.r = -ang.r -- Fixes mirrored models
1823
1824 end
1825
1826
1827
1828 end
1829
1830
1831
1832 return pos, ang
1833
1834 end
1835
1836
1837
1838 function SWEP:CreateModels( tab )
1839
1840
1841
1842 if (!tab) then return end
1843
1844
1845
1846 -- Create the clientside models here because Garry says we cannot do it in the render hook
1847
1848 for k, v in pairs( tab ) do
1849
1850 if (v.type == "Model" and v.model and v.model != "" and (!IsValid(v.modelEnt) or v.createdModel != v.model) and
1851
1852 string.find(v.model, ".mdl") and file.Exists (v.model, "GAME") ) then
1853
1854
1855
1856 v.modelEnt = ClientsideModel(v.model, RENDER_GROUP_VIEW_MODEL_OPAQUE)
1857
1858 if (IsValid(v.modelEnt)) then
1859
1860 v.modelEnt:SetPos(self:GetPos())
1861
1862 v.modelEnt:SetAngles(self:GetAngles())
1863
1864 v.modelEnt:SetParent(self)
1865
1866 v.modelEnt:SetNoDraw(true)
1867
1868 v.createdModel = v.model
1869
1870 else
1871
1872 v.modelEnt = nil
1873
1874 end
1875
1876
1877
1878 elseif (v.type == "Sprite" and v.sprite and v.sprite != "" and (!v.spriteMaterial or v.createdSprite != v.sprite)
1879
1880 and file.Exists ("materials/"..v.sprite..".vmt", "GAME")) then
1881
1882
1883
1884 local name = v.sprite.."-"
1885
1886 local params = { ["$basetexture"] = v.sprite }
1887
1888 -- make sure we create a unique name based on the selected options
1889
1890 local tocheck = { "nocull", "additive", "vertexalpha", "vertexcolor", "ignorez" }
1891
1892 for i, j in pairs( tocheck ) do
1893
1894 if (v[j]) then
1895
1896 params["$"..j] = 1
1897
1898 name = name.."1"
1899
1900 else
1901
1902 name = name.."0"
1903
1904 end
1905
1906 end
1907
1908
1909
1910 v.createdSprite = v.sprite
1911
1912 v.spriteMaterial = CreateMaterial(name,"UnlitGeneric",params)
1913
1914
1915
1916 end
1917
1918 end
1919
1920
1921
1922 end
1923
1924
1925
1926 /**************************
1927
1928 Global utility code
1929
1930 **************************/
1931
1932
1933
1934 // Fully copies the table, meaning all tables inside this table are copied too and so on (Normal table. Copy copies only their reference).
1935
1936 // Does not copy entities of course.
1937
1938 // WARNING: do not use on tables that contain themselves somewhere down the line or you will get an infinite loop
1939
1940 function table.FullCopy( tab )
1941
1942
1943
1944 if (!tab) then return nil end
1945
1946
1947
1948 local res = {}
1949
1950 for k, v in pairs( tab ) do
1951
1952 if (type(v) == "table") then
1953
1954 res[k] = table.FullCopy(v) -- recursion ho!
1955
1956 elseif (type(v) == "Vector") then
1957
1958 res[k] = Vector(v.x, v.y, v.z)
1959
1960 elseif (type(v) == "Angle") then
1961
1962 res[k] = Angle(v.p, v.y, v.r)
1963
1964 else
1965
1966 res[k] = v
1967
1968 end
1969
1970 end
1971
1972
1973
1974 return res
1975
1976 end
1977
1978 end
1979
1980 end
1981
1982end