1 void CopyBody(float keepvelocity);
\r
3 // changes by LordHavoc on 03/30/04
\r
4 // cleaned up dummy code
\r
5 // dummies are now removed eventually after being gibbed (norespawn = TRUE)
\r
6 // dummy impulse now checks sv_cheats to prevent players from overwhelming server with dummies
\r
7 // dummies now use player code where possible
\r
9 void player_anim (void);
\r
10 void DummyThink(void)
\r
12 self.think = DummyThink;
\r
13 self.nextthink = time;
\r
20 void CopyBody2(float keepvelocity, float testbody);
\r
21 void ImpulseCommands (void)
\r
25 if (self.playerclass < 1) // Bring up menu if no team/class
\r
27 if (self.team_no < 1)
\r
29 stuffcmd(self, "set scmenu_directmenu TeamSelect; togglemenu\n");
\r
33 stuffcmd(self, "set scmenu_directmenu ClassSelect; togglemenu\n");
\r
39 if (self.impulse == 71)
\r
42 whee = ftos (self.maxammo_rockets);
\r
47 if (self.impulse == 73)
\r
49 stuffcmd(self, "cmd changeclass\n");
\r
53 if (self.impulse == 70) { // reload impulse
\r
55 if(self.class == CLASS_SOLDIER)
\r
58 DoReload (3, (CLIP_MAX_ROCKETS - self.clip_rockets)); // weapon type 3 is RL, and reload X rockets.
\r
60 else if(self.class == CLASS_PYRO)
\r
63 DoReload (4, (CLIP_MAX_PIPEGRENADES - self.clip_pipegrenades));
\r
65 else if(self.class == CLASS_SCOUT || self.class == CLASS_ENGINEER)
\r
68 DoReload (2, (CLIP_MAX_CRYLINK - self.clip_crylink));
\r
71 if (self.impulse == 69) {
\r
72 local entity isneardoor;
\r
74 isneardoor = findradius (self.origin, 200);
\r
77 if ((isneardoor.classname == "door"))
\r
79 // st = stos(isneardoor.model);
\r
80 sprint (self, isneardoor.model);
\r
81 sprint (self, "\n");
\r
85 isneardoor = isneardoor.chain;
\r
88 if (self.impulse == 8) {
\r
89 TeamFortress_ThrowGrenade(); }
\r
90 if ((self.impulse == 150)) // GREN TYPE 1
\r
92 TeamFortress_PrimeGrenade();
\r
94 /* if ((self.impulse == 151)) // GREN TYPE 2
\r
96 TeamFortress_PrimeGrenade();
\r
98 if ((self.impulse == 152))
\r
100 TeamFortress_ThrowGrenade();
\r
103 if (self.impulse >= 1 && self.impulse <= 5)
\r
107 if(self.impulse == 5 && self.wpn5.weapon)
\r
109 weapon_action(self.weapon, WR_DROP);
\r
110 SpawnThrownWeapon (self.origin + (self.mins + self.maxs) * 0.5, self.wpn5.weapon);
\r
112 ResetExtraWeapon();
\r
113 self.switchweapon = w_getbestweapon(self);
\r
114 if(self.switchweapon == WEP5)
\r
115 self.switchweapon = WEP1;
\r
119 if (self.reload_time < time) {
\r
120 W_SwitchWeapon (self.impulse); }
\r
122 else if (self.impulse == 10)
\r
123 if (self.reload_time < time) {
\r
125 else if (self.impulse == 12)
\r
126 if (self.reload_time < time) {
\r
127 W_PreviousWeapon (); }
\r
128 else if (self.impulse == 13 && cvar("sv_cheats"))
\r
130 makevectors (self.v_angle);
\r
131 self.velocity = self.velocity + v_forward * 300;
\r
132 CopyBody2(1, TRUE);
\r
133 self.velocity = self.velocity - v_forward * 300;
\r
135 else if (self.impulse == 14 && cvar("sv_cheats"))
\r
136 CopyBody2(0, TRUE);
\r
137 else if (self.impulse == 99 && cvar("sv_cheats"))
\r
139 self.items = IT_WEP1 | IT_WEP2 | IT_WEP3 | IT_WEP4 | IT_WEP5;
\r
140 self.ammo_shells = 999;
\r
141 self.ammo_nails = 999;
\r
142 self.ammo_rockets = 999;
\r
143 self.ammo_cells = 999;
\r
146 if(self.impulse == 20)
\r
151 if(self.impulse == 30)
\r
153 ClassGrenade(WR_GRENADE1);
\r
155 if(self.impulse == 31)
\r
157 ClassGrenade(WR_GRENADE2);
\r
160 // model/class test
\r
161 if(self.impulse == 57)
\r
163 //self.class = GetPlayerClass();
\r
164 sprint(self, "Current class: ");
\r
165 sprint(self, NameOfClass(self.class));
\r
166 sprint(self, ", model: ");
\r
167 sprint(self, self.playermodel);
\r
168 sprint(self, "\n");
\r
170 if(self.impulse == 211) // XavioR test impulse
\r
172 local string woottest;
\r
173 woottest = ftos(self.team_no);
\r
174 sprint (self, woottest);
\r
175 sprint (self, "\n");
\r
177 //TetrisImpulses();
\r