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
38 if (self.impulse == 71)
\r
41 whee = ftos (self.maxammo_rockets);
\r
46 if (self.impulse == 73)
\r
48 stuffcmd(self, "cmd changeclass\n");
\r
52 if (self.impulse == 70) { // reload impulse
\r
54 if(self.class == CLASS_SOLDIER)
\r
57 DoReload (3, (CLIP_MAX_ROCKETS - self.clip_rockets)); // weapon type 3 is RL, and reload X rockets.
\r
59 else if(self.class == CLASS_PYRO)
\r
62 DoReload (4, (CLIP_MAX_PIPEGRENADES - self.clip_pipegrenades));
\r
64 else if(self.class == CLASS_SCOUT || self.class == CLASS_ENGINEER)
\r
67 DoReload (2, (CLIP_MAX_CRYLINK - self.clip_crylink));
\r
70 if (self.impulse == 68) {
\r
71 local entity barrel;
\r
73 barrel.mdl = "models/sentry/turr1_barrel.md3";
\r
74 barrel.yaw_speed = 10;
\r
75 setmodel(barrel, barrel.mdl);
\r
76 setorigin(barrel, self.origin + '8 0 8');
\r
77 barrel.angles_y = barrel.angles_y;
\r
79 local entity barrel2;
\r
81 barrel2.mdl = "models/sentry/turr1_barrel.md3";
\r
82 barrel2.yaw_speed = 10;
\r
83 barrel2.angles_y = barrel2.angles_z + 90;
\r
84 setmodel(barrel2, barrel.mdl);
\r
85 setorigin(barrel2, '0 0 0');
\r
87 setattachment(barrel2, barrel, "tag_barrel_bullet1");
\r
89 local float barrel_tag;
\r
90 local vector fire_from;
\r
91 barrel_tag = gettagindex (barrel2, "tag_barrel_bullet1");
\r
92 fire_from = gettaginfo (barrel2, barrel_tag);
\r
93 bprint(vtos(fire_from));
\r
99 setmodel(e, "models/plasmatrail.mdl");
\r
100 setorigin (e, fire_from);
\r
101 bprint(vtos(e.origin));
\r
105 if (self.impulse == 67) {
\r
106 TeamFortress_Build (3);
\r
107 //self.current_menu = 18;
\r
109 if (self.impulse == 69) {
\r
110 /* local entity isneardoor;
\r
112 isneardoor = findradius (self.origin, 200);
\r
115 if ((isneardoor.classname == "door"))
\r
117 // st = stos(isneardoor.model);
\r
118 sprint (self, isneardoor.model);
\r
119 sprint (self, "\n");
\r
123 isneardoor = isneardoor.chain;
\r
125 TeamFortress_Build (2);
\r
127 if (self.impulse == 8) {
\r
128 TeamFortress_ThrowGrenade(); }
\r
129 if ((self.impulse == 150)) // GREN TYPE 1
\r
131 TeamFortress_PrimeGrenade();
\r
133 if ((self.impulse == 151)) // GREN TYPE 2
\r
135 TeamFortress_PrimeGrenade();
\r
137 if ((self.impulse == 152))
\r
139 TeamFortress_ThrowGrenade();
\r
142 if (self.impulse >= 1 && self.impulse <= 5)
\r
146 if(self.impulse == 5 && self.wpn5.weapon)
\r
148 weapon_action(self.weapon, WR_DROP);
\r
149 SpawnThrownWeapon (self.origin + (self.mins + self.maxs) * 0.5, self.wpn5.weapon);
\r
151 ResetExtraWeapon();
\r
152 self.switchweapon = w_getbestweapon(self);
\r
153 if(self.switchweapon == WEP5)
\r
154 self.switchweapon = WEP1;
\r
158 if (self.reload_time < time) {
\r
159 W_SwitchWeapon (self.impulse); }
\r
161 else if (self.impulse == 10)
\r
162 if (self.reload_time < time) {
\r
164 else if (self.impulse == 12)
\r
165 if (self.reload_time < time) {
\r
166 W_PreviousWeapon (); }
\r
167 else if (self.impulse == 13 && cvar("sv_cheats"))
\r
169 makevectors (self.v_angle);
\r
170 self.velocity = self.velocity + v_forward * 300;
\r
171 CopyBody2(1, TRUE);
\r
172 self.velocity = self.velocity - v_forward * 300;
\r
174 else if (self.impulse == 14 && cvar("sv_cheats"))
\r
175 CopyBody2(0, TRUE);
\r
176 else if (self.impulse == 99 && cvar("sv_cheats"))
\r
178 self.items = IT_WEP1 | IT_WEP2 | IT_WEP3 | IT_WEP4 | IT_WEP5;
\r
179 self.ammo_shells = 999;
\r
180 self.ammo_nails = 999;
\r
181 self.ammo_rockets = 999;
\r
182 self.ammo_cells = 999;
\r
185 if(self.impulse == 20)
\r
190 if(self.impulse == 30)
\r
192 ClassGrenade(WR_GRENADE1);
\r
194 if(self.impulse == 31)
\r
196 ClassGrenade(WR_GRENADE2);
\r
199 // model/class test
\r
200 if(self.impulse == 57)
\r
202 //self.class = GetPlayerClass();
\r
203 sprint(self, "Current class: ");
\r
204 sprint(self, NameOfClass(self.class));
\r
205 sprint(self, ", model: ");
\r
206 sprint(self, self.playermodel);
\r
207 sprint(self, "\n");
\r
209 if(self.impulse == 211) // XavioR test impulse
\r
211 local string woottest;
\r
212 woottest = ftos(self.team_no);
\r
213 sprint (self, woottest);
\r
214 sprint (self, "\n");
\r
216 //TetrisImpulses();
\r