2 // changes by LordHavoc on 03/30/04
3 // cleaned up dummy code
4 // dummies are now removed eventually after being gibbed (norespawn = TRUE)
5 // dummy impulse now checks sv_cheats to prevent players from overwhelming server with dummies
6 // dummies now use player code where possible
8 void player_anim (void);
11 self.think = DummyThink;
12 self.nextthink = time;
19 void PlayerDamage (vector hitloc, float damage, entity inflictor, entity attacker, float deathtype);
20 void CreateDummy (vector org, float type)
25 self.norespawn = TRUE;
26 self.solid = SOLID_SLIDEBOX;
27 self.movetype = MOVETYPE_WALK;
28 self.classname = "corpse";
29 self.takedamage = DAMAGE_YES;
30 self.damageforcescale = oldself.damageforcescale;
32 self.weapon = IT_LASER;
33 setsize (self, oldself.mins, oldself.maxs);
34 setorigin (self, org);
36 setmodel (self, "models/player/marine.zym");
38 setmodel (self, "models/player/grunt.zym");
40 setmodel (self, "models/player/specop.zym");
42 setmodel (self, "models/player/pyria.zym");
44 setmodel (self, "models/player/lurk.zym");
46 setmodel (self, "models/player/visitant.zym");
48 setmodel (self, "models/player/headhunter.zym");
50 setmodel (self, "models/player/jeandarc.zym");
52 setmodel (self, "models/player/mulder.zym");
54 setmodel (self, "models/player/insurrectionist.zym");
56 setmodel (self, "models/player/robot.zym");
58 setmodel (self, "models/player/lycanthrope.zym");
59 setsize (self, PL_MIN, PL_MAX);
60 self.event_damage = PlayerDamage;
65 void ImpulseCommands (void)
67 if (self.impulse >= 1 && self.impulse <= 9)
68 W_SwitchWeapon (self.impulse);
70 else if (self.impulse == 10)
72 else if (self.impulse == 12)
74 else if (self.impulse == 13 && cvar("sv_cheats"))
76 makevectors (self.v_angle);
77 CreateDummy (self.origin + self.view_ofs + v_forward * 64, 1);
79 else if (self.impulse == 14 && cvar("sv_cheats"))
81 makevectors (self.v_angle);
82 CreateDummy (self.origin + self.view_ofs + v_forward * 64, 2);
84 else if (self.impulse == 15 && cvar("sv_cheats"))
86 makevectors (self.v_angle);
87 CreateDummy (self.origin + self.view_ofs + v_forward * 64, 3);
89 else if (self.impulse == 16 && cvar("sv_cheats"))
91 makevectors (self.v_angle);
92 CreateDummy (self.origin + self.view_ofs + v_forward * 64, 4);
94 else if (self.impulse == 17 && cvar("sv_cheats"))
96 makevectors (self.v_angle);
97 CreateDummy (self.origin + self.view_ofs + v_forward * 64, 5);
99 else if (self.impulse == 18 && cvar("sv_cheats"))
101 makevectors (self.v_angle);
102 CreateDummy (self.origin + self.view_ofs + v_forward * 64, 6);
104 else if (self.impulse == 19 && cvar("sv_cheats"))
106 makevectors (self.v_angle);
107 CreateDummy (self.origin + self.view_ofs + v_forward * 64, 7);
109 else if (self.impulse == 20 && cvar("sv_cheats"))
111 makevectors (self.v_angle);
112 CreateDummy (self.origin + self.view_ofs + v_forward * 64, 8);
114 else if (self.impulse == 21 && cvar("sv_cheats"))
116 makevectors (self.v_angle);
117 CreateDummy (self.origin + self.view_ofs + v_forward * 64, 9);
119 else if (self.impulse == 22 && cvar("sv_cheats"))
121 makevectors (self.v_angle);
122 CreateDummy (self.origin + self.view_ofs + v_forward * 64, 10);
124 else if (self.impulse == 23 && cvar("sv_cheats"))
126 makevectors (self.v_angle);
127 CreateDummy (self.origin + self.view_ofs + v_forward * 64, 11);
129 else if (self.impulse == 24 && cvar("sv_cheats"))
131 makevectors (self.v_angle);
132 CreateDummy (self.origin + self.view_ofs + v_forward * 64, 12);
134 else if (self.impulse == 25)
136 setmodel (self, "models/player/marine.zym");
137 setsize (self, PL_MIN, PL_MAX);
139 else if (self.impulse == 26)
141 setmodel (self, "models/player/grunt.zym");
142 setsize (self, PL_MIN, PL_MAX);
144 else if (self.impulse == 27)
146 setmodel (self, "models/player/specop.zym");
147 setsize (self, PL_MIN, PL_MAX);
149 else if (self.impulse == 28)
151 setmodel (self, "models/player/pyria.zym");
152 setsize (self, PL_MIN, PL_MAX);
154 else if (self.impulse == 29)
156 setmodel (self, "models/player/lurk.zym");
157 setsize (self, PL_MIN, PL_MAX);
159 else if (self.impulse == 30)
161 setmodel (self, "models/player/headhunter.zym");
162 setsize (self, PL_MIN, PL_MAX);
164 else if (self.impulse == 31)
166 setmodel (self, "models/player/visitant.zym");
167 setsize (self, PL_MIN, PL_MAX);
169 else if (self.impulse == 32)
171 setmodel (self, "models/player/jeandarc.zym");
172 setsize (self, PL_MIN, PL_MAX);
174 else if (self.impulse == 33)
176 setmodel (self, "models/player/mulder.zym");
177 setsize (self, PL_MIN, PL_MAX);
179 else if (self.impulse == 34)
181 setmodel (self, "models/player/insurrectionist.zym");
182 setsize (self, PL_MIN, PL_MAX);
184 else if (self.impulse == 35)
186 setmodel (self, "models/player/robot.zym");
187 setsize (self, PL_MIN, PL_MAX);
189 else if (self.impulse == 36)
191 setmodel (self, "models/player/lycanthrope.zym");
192 setsize (self, PL_MIN, PL_MAX);
194 else if (self.impulse == 99)
196 self.items = IT_LASER | IT_UZI | IT_SHOTGUN | IT_GRENADE_LAUNCHER | IT_ELECTRO | IT_CRYLINK | IT_NEX | IT_HAGAR | IT_ROCKET_LAUNCHER;
197 self.ammo_shells = 100;
198 self.ammo_nails = 100;
199 self.ammo_rockets = 100;
200 self.ammo_cells = 100;