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
24 local float swpn; // returns self.weapon amount -- the slot that weapon is in (WEP1, WEP2 etc)
\r
25 local float awpn; // returns self.wpn amount (WEP_PISTOL, WEP_NEX etc.)
\r
27 if (self.impulse_wait > time) // So the GUI menus doesnt flicker
\r
30 if (self.playerclass < 1) // Bring up menu if no team/class
\r
32 if (self.team_no < 1)
\r
34 stuffcmd(self, "set scmenu_directmenu TeamSelect; togglemenu\n");
\r
38 stuffcmd(self, "set scmenu_directmenu ClassSelect; togglemenu\n");
\r
41 self.impulse_wait = time + .5;
\r
44 if (self.impulse == DROP_FLAG_IMPULSE)
\r
49 if (self.impulse == 71)
\r
52 whee = ftos (self.maxammo_rockets);
\r
57 if (self.impulse == 73)
\r
59 stuffcmd(self, "cmd changeclass\n");
\r
63 if (self.impulse == 70) { // reload impulse
\r
67 if (awpn == WEP_PISTOL)
\r
68 DoReload (1, (CLIP_MAX_PISTOL - self.clip_pistol));
\r
70 if(self.class == CLASS_SOLDIER)
\r
73 DoReload (3, (CLIP_MAX_ROCKETS - self.clip_rockets)); // weapon type 3 is RL, and reload X rockets.
\r
75 else if(self.class == CLASS_PYRO)
\r
78 DoReload (4, (CLIP_MAX_PIPEGRENADES - self.clip_pipegrenades));
\r
80 else if(self.class == CLASS_SCOUT || self.class == CLASS_ENGINEER)
\r
83 DoReload (2, (CLIP_MAX_CRYLINK - self.clip_crylink));
\r
86 if (self.impulse == 68) {
\r
87 local entity barrel;
\r
89 barrel.mdl = "models/sentry/turr1_barrel.md3";
\r
90 barrel.yaw_speed = 10;
\r
91 setmodel(barrel, barrel.mdl);
\r
92 setorigin(barrel, self.origin + '8 0 8');
\r
93 barrel.angles_y = barrel.angles_y;
\r
95 local entity barrel2;
\r
97 barrel2.mdl = "models/sentry/turr1_barrel.md3";
\r
98 barrel2.yaw_speed = 10;
\r
99 barrel2.angles_y = barrel2.angles_z + 90;
\r
100 setmodel(barrel2, barrel.mdl);
\r
101 setorigin(barrel2, '0 0 0');
\r
103 setattachment(barrel2, barrel, "tag_barrel_bullet1");
\r
105 local float barrel_tag;
\r
106 local vector fire_from;
\r
107 barrel_tag = gettagindex (barrel2, "tag_barrel_bullet1");
\r
108 fire_from = gettaginfo (barrel2, barrel_tag);
\r
109 bprint(vtos(fire_from));
\r
115 setmodel(e, "models/plasmatrail.mdl");
\r
116 setorigin (e, fire_from);
\r
117 bprint(vtos(e.origin));
\r
121 if (self.impulse == 67) {
\r
122 TeamFortress_Build (6);
\r
123 //self.current_menu = 18;
\r
125 if (self.impulse == 69) {
\r
126 /* local entity isneardoor;
\r
128 isneardoor = findradius (self.origin, 200);
\r
131 if ((isneardoor.classname == "door"))
\r
133 // st = stos(isneardoor.model);
\r
134 sprint (self, isneardoor.model);
\r
135 sprint (self, "\n");
\r
139 isneardoor = isneardoor.chain;
\r
141 TeamFortress_Build (2);
\r
143 if (self.impulse == 8) {
\r
144 TeamFortress_ThrowGrenade(); }
\r
145 if ((self.impulse == 150)) // GREN TYPE 1
\r
147 TeamFortress_PrimeGrenade();
\r
149 if ((self.impulse == 151)) // GREN TYPE 2
\r
151 TeamFortress_PrimeGrenade();
\r
153 if ((self.impulse == 152))
\r
155 TeamFortress_ThrowGrenade();
\r
158 if (self.impulse == FEIGN_IMPULSE)
\r
160 TeamNexuiz_Feign();
\r
162 if (self.impulse == 153)
\r
163 TeamNexuiz_HUD_ShowGrenadeOne();
\r
164 if (self.impulse >= 1 && self.impulse <= 5)
\r
168 if(self.impulse == 5 && self.wpn5.weapon)
\r
170 weapon_action(self.weapon, WR_DROP);
\r
171 SpawnThrownWeapon (self.origin + (self.mins + self.maxs) * 0.5, self.wpn5.weapon);
\r
173 ResetExtraWeapon();
\r
174 self.switchweapon = w_getbestweapon(self);
\r
175 if(self.switchweapon == WEP5)
\r
176 self.switchweapon = WEP1;
\r
179 else if (self.reload_time < time) {
\r
180 W_SwitchWeapon (self.impulse); }
\r
182 else if (self.impulse == 10) {
\r
183 if (self.reload_time < time) {
\r
186 else if (self.impulse == 12) {
\r
187 if (self.reload_time < time) {
\r
188 W_PreviousWeapon (); }
\r
191 if (self.impulse == 13 && cvar("sv_cheats"))
\r
193 makevectors (self.v_angle);
\r
194 self.velocity = self.velocity + v_forward * 300;
\r
195 CopyBody2(1, TRUE);
\r
196 self.velocity = self.velocity - v_forward * 300;
\r
198 else if (self.impulse == 14 && cvar("sv_cheats"))
\r
199 CopyBody2(0, TRUE);
\r
200 else if (self.impulse == 99 && cvar("sv_cheats"))
\r
202 self.items = IT_WEP1 | IT_WEP2 | IT_WEP3 | IT_WEP4 | IT_WEP5;
\r
203 self.ammo_shells = 999;
\r
204 self.ammo_nails = 999;
\r
205 self.ammo_rockets = 999;
\r
206 self.ammo_cells = 999;
\r
209 if(self.impulse == 20)
\r
214 if(self.impulse == 30)
\r
216 ClassGrenade(WR_GRENADE1);
\r
218 if(self.impulse == 31)
\r
220 ClassGrenade(WR_GRENADE2);
\r
223 // model/class test
\r
224 if(self.impulse == 57)
\r
226 //self.class = GetPlayerClass();
\r
227 sprint(self, "Current class: ");
\r
228 sprint(self, NameOfClass(self.class));
\r
229 sprint(self, ", model: ");
\r
230 sprint(self, self.playermodel);
\r
231 sprint(self, "\n");
\r
233 if(self.impulse == 211) // XavioR test impulse
\r
235 local string woottest;
\r
236 woottest = ftos(self.team_no);
\r
237 sprint (self, woottest);
\r
238 sprint (self, "\n");
\r
240 //TetrisImpulses();
\r