]> icculus.org git repositories - divverent/nexuiz.git/blob - data/qcsrc/server/tturrets/units/turret_unit_machinegun.qc
tZork's turrets, code part (disabled by default, see includes for details). and a...
[divverent/nexuiz.git] / data / qcsrc / server / tturrets / units / turret_unit_machinegun.qc
1 void spawnfunc_turret_machinegun();\r
2 void turret_machinegun_std_init();\r
3 void turret_machinegun_attack();\r
4 \r
5 //.float bulletcounter;\r
6 void turret_machinegun_attack()\r
7 {\r
8 \r
9     entity flash;\r
10     sound (self, CHAN_BODY, "weapons/uzi_fire.wav", 1, ATTN_NORM);\r
11     fireBullet (self.tur_shotorg_updated, self.tur_shotdir_updated,self.shot_spread, self.shot_dmg, self.shot_force, DEATH_TURRET, FALSE);\r
12 \r
13     te_smallflash(self.tur_shotorg_updated);\r
14     trailparticles(self,particleeffectnum("EF_MINIGUNTRAIL"),self.tur_shotorg_updated,trace_endpos);\r
15 \r
16     // muzzle flash for 3rd person view\r
17     flash = spawn();\r
18     //setorigin(flash, '43 1 8');\r
19     setmodel(flash, "models/uziflash.md3"); // precision set below\r
20     setattachment(flash, self.tur_head, "tag_fire");\r
21     flash.think = W_Uzi_Flash_Go;\r
22     flash.nextthink = time + 0.02;\r
23     flash.frame = 2;\r
24     flash.angles_z = flash.v_angle_z + random() * 180;\r
25     flash.alpha = 1;\r
26     flash.effects = EF_ADDITIVE | EF_FULLBRIGHT | EF_LOWPRECISION;\r
27 }\r
28 \r
29 \r
30 void turret_machinegun_std_init()\r
31 {\r
32     if (self.netname == "")      self.netname     = "Machinegun Turret";\r
33 \r
34     precache_model ("models/turrets/machinegun.md3");\r
35     precache_model ("models/turrets/base.md3");\r
36 \r
37     self.ammo_flags = TFL_AMMO_BULLETS | TFL_AMMO_RECHARGE | TFL_AMMO_RECIVE;\r
38     self.turrcaps_flags = TFL_TURRCAPS_HITSCAN | TFL_TURRCAPS_PLAYERKILL;\r
39     self.aim_flags = TFL_AIM_LEAD | TFL_AIM_ZEASE;\r
40 \r
41     if (turret_stdproc_init("machinegun_std") == 0)\r
42     {\r
43         remove(self);\r
44         return;\r
45     }\r
46 \r
47     setmodel(self,"models/turrets/base.md3");\r
48     setmodel(self.tur_head,"models/turrets/machinegun.md3");\r
49 \r
50     if(!turret_tag_setup(0))\r
51         dprint("Warning: Turret ",self.classname, " faild to initialize md3 tags\n");\r
52 \r
53     // Our fire routine\r
54     self.turret_firefunc  = turret_machinegun_attack;\r
55 \r
56 }\r
57 \r
58 \r
59 \r
60 /*\r
61 * machinegun turret. does what you'd expect\r
62 */\r
63 \r
64 /*QUAKED turret_machinegun (0 .5 .8) ?\r
65 */\r
66 void spawnfunc_turret_machinegun()\r
67 {\r
68     self.think = turret_machinegun_std_init;\r
69     self.nextthink = time + 0.5;\r
70 }\r
71 \r