2 void Item_Respawn (void)
4 self.model = self.mdl; // restore original model
5 self.solid = SOLID_TRIGGER; // allow it to be touched again
6 sound (self, CHAN_VOICE, "misc/itemrespawn.wav", 1, ATTN_NORM); // play respawn sound
7 setorigin (self, self.origin);
10 void Item_Touch (void)
14 if (self.solid != SOLID_TRIGGER)
17 if (other.classname != "player" && other.classname != "bot")
19 if (other.health <= 0)
22 if (self.ammo_shells){
23 other.ammo_shells = min (other.ammo_shells + self.ammo_shells, 100);
24 sound (self, CHAN_BODY, "misc/itempickup.wav", 1, ATTN_NORM); }
26 other.ammo_nails = min (other.ammo_nails + self.ammo_nails, 200);
27 sound (self, CHAN_BODY, "misc/itempickup.wav", 1, ATTN_NORM); }
28 if (self.ammo_rockets){
29 other.ammo_rockets = min (other.ammo_rockets + self.ammo_rockets, 100);
30 sound (self, CHAN_BODY, "misc/itempickup.wav", 1, ATTN_NORM); }
31 if (self.ammo_cells) {
32 other.ammo_cells = min (other.ammo_cells + self.ammo_cells, 100);
33 sound (self, CHAN_BODY, "misc/itempickup.wav", 1, ATTN_NORM); }
35 if (self.flags & FL_WEAPON)
37 sound (self, CHAN_BODY, "weapons/weaponpickup.wav", 1, ATTN_NORM);
38 if (self.items & IT_UZI) W_GiveWeapon (other, IT_UZI);
39 else if (self.items & IT_SHOTGUN) W_GiveWeapon (other, IT_SHOTGUN);
40 else if (self.items & IT_GRENADE_LAUNCHER) W_GiveWeapon (other, IT_GRENADE_LAUNCHER);
41 else if (self.items & IT_ELECTRO) W_GiveWeapon (other, IT_ELECTRO);
42 else if (self.items & IT_NEX) W_GiveWeapon (other, IT_NEX);
43 else if (self.items & IT_HAGAR) W_GiveWeapon (other, IT_HAGAR);
44 else if (self.items & IT_ROCKET_LAUNCHER) W_GiveWeapon (other, IT_ROCKET_LAUNCHER);
45 else if (self.items & IT_CRYLINK) W_GiveWeapon (other, IT_CRYLINK);
49 other.health = min (other.health + self.max_health, 250);
50 sound (self, CHAN_BODY, self.noise, 1, ATTN_NORM);}
52 if (other.classname == "player")
54 sprint (other, "You got the ");
55 sprint (other, self.netname);
74 self.solid = SOLID_NOT;
75 self.model = string_null;
76 self.nextthink = time + self.respawntime;
77 self.think = Item_Respawn;
83 self.flags = self.flags | FL_ITEM;
84 setmodel (self, self.mdl);
85 setsize (self, '-8 -8 -8', '8 8 8');
86 self.movetype = MOVETYPE_TOSS;
87 self.solid = SOLID_TRIGGER;
88 self.touch = Item_Touch;
91 void StartWeapon (void)
93 if (game & (GAME_INSTAGIB | GAME_ROCKET_ARENA))
99 self.flags = FL_ITEM | FL_WEAPON;
100 setmodel (self, self.mdl);
101 setsize (self, '-12 -12 -12', '12 12 12');
102 self.movetype = MOVETYPE_TOSS;
103 self.solid = SOLID_TRIGGER;
104 self.touch = Item_Touch;
107 void weapon_uzi (void)
109 self.mdl = "models/weapons/g_uzi.md3";
111 self.ammo_nails = 50;
112 self.netname = "Uzi";
113 self.respawntime = 30;
117 void weapon_shotgun (void)
119 self.mdl = "models/weapons/g_shotgun.md3";
120 self.items = IT_SHOTGUN;
121 self.ammo_shells = 10;
122 self.netname = "Shotgun";
123 self.respawntime = 30;
127 void weapon_grenadelauncher (void)
129 self.mdl = "models/weapons/g_gl.md3";
130 self.items = IT_GRENADE_LAUNCHER;
131 self.ammo_rockets = 3;
132 self.netname = "Grenade Launcher";
133 self.respawntime = 30;
137 void weapon_electro (void)
139 self.mdl = "models/weapons/g_electro.md3";
140 self.items = IT_ELECTRO;
141 self.ammo_cells = 10;
142 self.netname = "Electro";
143 self.respawntime = 30;
147 void weapon_crylink (void)
149 self.mdl = "models/weapons/g_crylink.md3";
150 self.items = IT_CRYLINK;
151 self.ammo_cells = 10;
152 self.netname = "Crylink";
153 self.respawntime = 30;
157 void weapon_nex (void)
159 self.mdl = "models/weapons/g_nex.md3";
161 self.ammo_cells = 10;
162 self.netname = "Nex Gun";
163 self.respawntime = 30;
167 void weapon_hagar (void)
169 self.mdl = "models/weapons/g_hagar.md3";
170 self.items = IT_HAGAR;
171 self.ammo_rockets = 6;
172 self.netname = "Hagar";
173 self.respawntime = 30;
177 void weapon_rocketlauncher (void)
179 self.mdl = "models/weapons/g_rl.md3";
180 self.items = IT_ROCKET_LAUNCHER;
181 self.ammo_rockets = 5;
182 self.netname = "Rocket Launcher";
183 self.respawntime = 30;
187 void item_rockets (void)
189 if (game & (GAME_INSTAGIB | GAME_ROCKET_ARENA))
195 self.mdl = "models/items/a_rockets.md3";
196 self.ammo_rockets = 25;
197 self.netname = "rockets";
198 self.respawntime = 30;
202 void item_bullets (void)
204 if (game & (GAME_INSTAGIB | GAME_ROCKET_ARENA))
210 self.mdl = "models/items/a_bullets.zym";
211 self.ammo_nails = 100;
212 self.netname = "bullets";
213 self.respawntime = 30;
217 void item_cells (void)
219 if (game & (GAME_INSTAGIB | GAME_ROCKET_ARENA))
225 self.mdl = "models/items/a_cells.md3";
226 self.ammo_cells = 50;
227 self.netname = "cells";
228 self.respawntime = 30;
232 void item_shells (void)
234 if (game & (GAME_INSTAGIB | GAME_ROCKET_ARENA))
240 self.mdl = "models/items/a_shells.md3";
241 self.ammo_shells = 50;
242 self.netname = "shells";
243 self.respawntime = 30;
247 void item_strength (void)
249 self.mdl = "models/items/g_strength.zym";
250 self.items = IT_STRENGTH;
251 self.netname = "Strength Powerup";
252 self.respawntime = 120;
256 void item_invincible (void)
258 self.mdl = "models/items/g_invincible.zym";
259 self.items = IT_INVINCIBLE;
260 self.netname = "Invulnerability";
261 self.respawntime = 120;
265 void item_speed (void)
267 self.mdl = "models/items/g_speed.zym";
268 self.items = IT_SPEED;
269 self.netname = "Speed Powerup";
270 self.respawntime = 120;
274 void item_slowmo (void)
276 self.mdl = "models/items/g_slowmo.zym";
277 self.items = IT_SLOWMO;
278 self.netname = "Slow Motion!";
279 self.respawntime = 120;
283 void item_armor1 (void)
285 self.mdl = "models/items/g_a1.md3";
287 self.netname = "Armor Shard";
288 self.respawntime = 120;
292 void item_armor25 (void)
294 self.mdl = "models/items/g_a25.md3";
295 self.armorvalue = 25;
296 self.netname = "Armor";
297 self.respawntime = 120;
301 void item_health1 (void)
303 self.mdl = "models/items/g_h1.md3";
305 self.netname = "1 health";
306 self.respawntime = 120;
310 void item_health25 (void)
312 self.mdl = "models/items/g_h25.md3";
313 self.noise = "misc/mediumhealth.wav";
314 self.max_health = 25;
315 self.netname = "25 health";
316 self.respawntime = 120;
320 void item_health100 (void)
322 self.mdl = "models/items/g_h100.md3";
323 self.noise = "misc/megahealth.wav";
324 self.max_health = 100;
325 self.netname = "100 health";
326 self.respawntime = 120;
330 void misc_models (void)
332 precache_model (self.model);
333 setmodel (self, self.model);
334 setsize (self, self.mins, self.maxs);