1 //***********************
\r
2 //QUAKE 3 ENTITIES - So people can play quake3 maps with the voretournament weapons
\r
3 //***********************
\r
5 // NOTE: for best experience, you need to swap MGs with SGs in the map or it won't have a MG
\r
8 void spawnfunc_ammo_shells() { spawnfunc_item_fuel(); }
\r
11 void spawnfunc_weapon_machinegun() { spawnfunc_weapon_grabber(); }
\r
12 void spawnfunc_ammo_bullets() { spawnfunc_item_fuel(); }
\r
15 void spawnfunc_ammo_grenades() { spawnfunc_item_fuel(); }
\r
18 void spawnfunc_weapon_lightning() { spawnfunc_weapon_grabber(); }
\r
19 void spawnfunc_ammo_lightning() { spawnfunc_item_fuel(); }
\r
21 // Plasma -> Grabber
\r
22 void spawnfunc_weapon_plasmagun() { spawnfunc_weapon_grabber(); }
\r
23 void spawnfunc_ammo_cells() { spawnfunc_item_fuel(); }
\r
26 void spawnfunc_weapon_railgun() { spawnfunc_weapon_grabber(); }
\r
27 void spawnfunc_ammo_slugs() { spawnfunc_item_fuel(); }
\r
30 void spawnfunc_weapon_bfg() { spawnfunc_weapon_grabber(); }
\r
31 void spawnfunc_ammo_bfg() { spawnfunc_item_fuel(); }
\r
34 void spawnfunc_ammo_rockets() { spawnfunc_item_fuel(); }
\r
37 void spawnfunc_item_armor_body() { spawnfunc_item_armor_large(); }
\r
38 void spawnfunc_item_armor_combat() { spawnfunc_item_armor_big(); }
\r
39 void spawnfunc_item_armor_shard() { spawnfunc_item_armor_small(); }
\r
40 void spawnfunc_item_enviro() { spawnfunc_item_invincible(); }
\r
42 // weapon remove ent from defrag
\r
43 void spawnfunc_target_init()
\r
45 self.spawnflags = 0; // remove all weapons except the ones listed below
\r
46 self.netname = "laser uzi"; // keep these weapons through the remove trigger
\r
47 spawnfunc_target_items();
\r
50 // weapon give ent from defrag
\r
51 void target_give_init()
\r
54 for (targ = world; (targ = find(targ, targetname, self.target)); ) {
\r
55 if (targ.classname == "weapon_rocketlauncher") {
\r
56 self.ammo_fuel += targ.count * cvar("g_balance_grabber_primary_ammo");
\r
57 self.netname = "grabber";
\r
59 else if (targ.classname == "weapon_plasmagun") {
\r
60 self.ammo_fuel += targ.count * cvar("g_balance_grabber_primary_ammo");
\r
61 if(self.netname == "")
\r
62 self.netname = "grabber";
\r
64 self.netname = strcat(self.netname, " grabber");
\r
66 else if (targ.classname == "weapon_bfg") {
\r
67 self.ammo_fuel += targ.count * cvar("g_balance_grabber_primary_ammo");
\r
68 if(self.netname == "")
\r
69 self.netname = "grabber";
\r
71 self.netname = strcat(self.netname, " grabber");
\r
73 else if (targ.classname == "weapon_grenadelauncher") {
\r
74 self.ammo_fuel += targ.count * cvar("g_balance_grabber_primary_ammo");
\r
75 if(self.netname == "")
\r
76 self.netname = "grabber";
\r
78 self.netname = strcat(self.netname, " grabber");
\r
80 else if (targ.classname == "item_armor_body")
\r
81 self.armorvalue = 100;
\r
82 else if (targ.classname == "item_health_mega")
\r
86 self.spawnflags = 2;
\r
87 spawnfunc_target_items();
\r
90 void spawnfunc_target_give()
\r
92 InitializeEntity(self, target_give_init, INITPRIO_FINDTARGET);
\r
95 //void spawnfunc_item_flight() /* not supported */
\r
96 //void spawnfunc_item_haste() /* not supported */
\r
97 //void spawnfunc_item_health() /* handled in t_quake.qc */
\r
98 //void spawnfunc_item_health_large() /* handled in t_items.qc */
\r
99 //void spawnfunc_item_health_small() /* handled in t_items.qc */
\r
100 //void spawnfunc_item_health_mega() /* handled in t_items.qc */
\r
101 //void spawnfunc_item_invis() /* not supported */
\r
102 //void spawnfunc_item_regen() /* not supported */
\r
103 void spawnfunc_team_CTF_redflag() { spawnfunc_item_flag_team1(); }
\r
104 void spawnfunc_team_CTF_blueflag() { spawnfunc_item_flag_team2(); }
\r
105 void spawnfunc_team_CTF_redplayer() { spawnfunc_info_player_team1(); }
\r
106 void spawnfunc_team_CTF_blueplayer() { spawnfunc_info_player_team2(); }
\r
107 void spawnfunc_team_CTF_redspawn() { spawnfunc_info_player_team1(); }
\r
108 void spawnfunc_team_CTF_bluespawn() { spawnfunc_info_player_team2(); }
\r
110 void spawnfunc_item_flight() { spawnfunc_item_jetpack(); }
\r