1 void CopyBody(float keepvelocity);
\r
4 // changes by LordHavoc on 03/30/04
\r
5 // cleaned up dummy code
\r
6 // dummies are now removed eventually after being gibbed (norespawn = TRUE)
\r
7 // dummy impulse now checks sv_cheats to prevent players from overwhelming server with dummies
\r
8 // dummies now use player code where possible
\r
10 void player_anim (void);
\r
11 void DummyThink(void)
\r
13 self.think = DummyThink;
\r
14 self.nextthink = time;
\r
21 void CopyBody2(float keepvelocity, float testbody);
\r
22 void ImpulseCommands (void)
\r
26 if (self.impulse_wait > time) // So the GUI menus doesnt flicker
\r
29 if (self.playerclass < 1) // Bring up menu if no team/class
\r
31 if (self.team_no < 1)
\r
33 stuffcmd(self, "set scmenu_directmenu TeamSelect; togglemenu\n");
\r
37 stuffcmd(self, "set scmenu_directmenu ClassSelect; togglemenu\n");
\r
40 self.impulse_wait = time + .5;
\r
43 if (self.impulse == DROP_FLAG_IMPULSE)
\r
48 if (self.impulse == 71)
\r
51 whee = ftos (self.maxammo_rockets);
\r
56 if (self.impulse == 73)
\r
58 stuffcmd(self, "cmd changeclass\n");
\r
62 if (self.impulse == 70) { // reload impulse
\r
64 if(self.class == CLASS_SOLDIER)
\r
67 DoReload (3, (CLIP_MAX_ROCKETS - self.clip_rockets)); // weapon type 3 is RL, and reload X rockets.
\r
69 else if(self.class == CLASS_PYRO)
\r
72 DoReload (4, (CLIP_MAX_PIPEGRENADES - self.clip_pipegrenades));
\r
74 else if(self.class == CLASS_SCOUT || self.class == CLASS_ENGINEER)
\r
77 DoReload (2, (CLIP_MAX_CRYLINK - self.clip_crylink));
\r
80 if (self.impulse == 68) {
\r
81 local entity barrel;
\r
83 barrel.mdl = "models/sentry/turr1_barrel.md3";
\r
84 barrel.yaw_speed = 10;
\r
85 setmodel(barrel, barrel.mdl);
\r
86 setorigin(barrel, self.origin + '8 0 8');
\r
87 barrel.angles_y = barrel.angles_y;
\r
89 local entity barrel2;
\r
91 barrel2.mdl = "models/sentry/turr1_barrel.md3";
\r
92 barrel2.yaw_speed = 10;
\r
93 barrel2.angles_y = barrel2.angles_z + 90;
\r
94 setmodel(barrel2, barrel.mdl);
\r
95 setorigin(barrel2, '0 0 0');
\r
97 setattachment(barrel2, barrel, "tag_barrel_bullet1");
\r
99 local float barrel_tag;
\r
100 local vector fire_from;
\r
101 barrel_tag = gettagindex (barrel2, "tag_barrel_bullet1");
\r
102 fire_from = gettaginfo (barrel2, barrel_tag);
\r
103 bprint(vtos(fire_from));
\r
109 setmodel(e, "models/plasmatrail.mdl");
\r
110 setorigin (e, fire_from);
\r
111 bprint(vtos(e.origin));
\r
115 if (self.impulse == 67) {
\r
116 TeamFortress_Build (3);
\r
117 //self.current_menu = 18;
\r
119 if (self.impulse == 69) {
\r
120 /* local entity isneardoor;
\r
122 isneardoor = findradius (self.origin, 200);
\r
125 if ((isneardoor.classname == "door"))
\r
127 // st = stos(isneardoor.model);
\r
128 sprint (self, isneardoor.model);
\r
129 sprint (self, "\n");
\r
133 isneardoor = isneardoor.chain;
\r
135 TeamFortress_Build (2);
\r
137 if (self.impulse == 8) {
\r
138 TeamFortress_ThrowGrenade(); }
\r
139 if ((self.impulse == 150)) // GREN TYPE 1
\r
141 TeamFortress_PrimeGrenade();
\r
143 if ((self.impulse == 151)) // GREN TYPE 2
\r
145 TeamFortress_PrimeGrenade();
\r
147 if ((self.impulse == 152))
\r
149 TeamFortress_ThrowGrenade();
\r
152 if (self.impulse >= 1 && self.impulse <= 5)
\r
156 if(self.impulse == 5 && self.wpn5.weapon)
\r
158 weapon_action(self.weapon, WR_DROP);
\r
159 SpawnThrownWeapon (self.origin + (self.mins + self.maxs) * 0.5, self.wpn5.weapon);
\r
161 ResetExtraWeapon();
\r
162 self.switchweapon = w_getbestweapon(self);
\r
163 if(self.switchweapon == WEP5)
\r
164 self.switchweapon = WEP1;
\r
167 else if (self.reload_time < time) {
\r
168 W_SwitchWeapon (self.impulse); }
\r
170 else if (self.impulse == 10) {
\r
171 if (self.reload_time < time) {
\r
174 else if (self.impulse == 12) {
\r
175 if (self.reload_time < time) {
\r
176 W_PreviousWeapon (); }
\r
179 if (self.impulse == 13 && cvar("sv_cheats"))
\r
181 makevectors (self.v_angle);
\r
182 self.velocity = self.velocity + v_forward * 300;
\r
183 CopyBody2(1, TRUE);
\r
184 self.velocity = self.velocity - v_forward * 300;
\r
186 else if (self.impulse == 14 && cvar("sv_cheats"))
\r
187 CopyBody2(0, TRUE);
\r
188 else if (self.impulse == 99 && cvar("sv_cheats"))
\r
190 self.items = IT_WEP1 | IT_WEP2 | IT_WEP3 | IT_WEP4 | IT_WEP5;
\r
191 self.ammo_shells = 999;
\r
192 self.ammo_nails = 999;
\r
193 self.ammo_rockets = 999;
\r
194 self.ammo_cells = 999;
\r
197 if(self.impulse == 20)
\r
202 if(self.impulse == 30)
\r
204 ClassGrenade(WR_GRENADE1);
\r
206 if(self.impulse == 31)
\r
208 ClassGrenade(WR_GRENADE2);
\r
211 // model/class test
\r
212 if(self.impulse == 57)
\r
214 //self.class = GetPlayerClass();
\r
215 sprint(self, "Current class: ");
\r
216 sprint(self, NameOfClass(self.class));
\r
217 sprint(self, ", model: ");
\r
218 sprint(self, self.playermodel);
\r
219 sprint(self, "\n");
\r
221 if(self.impulse == 211) // XavioR test impulse
\r
223 local string woottest;
\r
224 woottest = ftos(self.team_no);
\r
225 sprint (self, woottest);
\r
226 sprint (self, "\n");
\r
228 //TetrisImpulses();
\r