]> icculus.org git repositories - divverent/nexuiz.git/blob - TeamNexuiz/game/gamec/tfitems.c
- Fixed item_backpack
[divverent/nexuiz.git] / TeamNexuiz / game / gamec / tfitems.c
1 float (entity e, float healamount, float ignore) T_Heal =\r
2 {\r
3         if ((e.health <= 0))\r
4         {\r
5                 return (0);\r
6         }\r
7         if ((!ignore && (e.health >= e.max_health)))\r
8         {\r
9                 return (0);\r
10         }\r
11         healamount = ceil (healamount);\r
12         e.health = (e.health + healamount);\r
13         if ((!ignore && (e.health >= e.max_health)))\r
14         {\r
15                 e.health = e.max_health;\r
16         }\r
17         if ((e.health > 250))\r
18         {\r
19 \r
20                 e.health = 250;\r
21         }\r
22         /*                                      // There are no snipers in NexTF\r
23         if (e.leg_damage)\r
24         {\r
25                 if ((e.health > 95))\r
26                 {\r
27                         e.leg_damage = 0;\r
28                 }\r
29                 else\r
30                 {\r
31                         e.leg_damage = (e.leg_damage - ceil ((e.health / 20)));\r
32                 }\r
33                 if ((e.leg_damage < 1))\r
34                 {\r
35                         e.leg_damage = 0;\r
36                 }\r
37                 TeamFortress_SetSpeed (e);\r
38         }*/\r
39         return (1);\r
40 };\r
41 \r
42 // Pre-Packed TeamNexuiz items/entities :)\r
43 //backpack\r
44 .string cells;\r
45 .string shells;\r
46 .string rockets;\r
47 .string nails;\r
48 .string grenade1;\r
49 .string grenade2;\r
50 .string armor;\r
51 \r
52 // TF Map rules\r
53 .string team1limit;\r
54 .string team2limit;\r
55 .string team3limit;\r
56 .string team4limit;\r
57 \r
58 //      Moved the below to tfdefs. These are the "Map_Rules" entity's class restricts.\r
59 /*.float team1_scout, team1_soldier, team1_medic, team1_pyro, team1_spy, team1_engineer;\r
60 .float team2_scout, team2_soldier, team2_medic, team2_pyro, team2_spy, team2_engineer;\r
61 .float team3_scout, team3_soldier, team3_medic, team3_pyro, team3_spy, team3_engineer;\r
62 .float team4_scout, team4_soldier, team4_medic, team4_pyro, team4_spy, team4_engineer;*/\r
63 \r
64 void () Map_Rules =\r
65 {\r
66         local entity infoent;           // our class restricts info entity is spaned here\r
67         infoent = spawn();\r
68         infoent.classname = "class_restrictions";\r
69         copyentity (self, infoent);\r
70 \r
71         // Amount of teams available on a map are determined by spawn points\r
72         if (self.team1limit)\r
73                 self.ammo_medikit = stof(self.team1limit);\r
74         if (self.team2limit)\r
75                 self.ammo_detpack = stof(self.team2limit);\r
76         if (self.team3limit)\r
77                 self.maxammo_medikit = stof(self.team3limit);\r
78         if (self.team4limit)\r
79                 self.maxammo_detpack = stof(self.team4limit);\r
80 \r
81         info_tfdetect();\r
82 };\r
83 \r
84 // Team:Nexuiz backpack\r
85 void () item_backpack =\r
86 {\r
87         if ((!self.mdl) && (!self.model))\r
88         {\r
89                 self.model = "models/objects/backpack/backpack.md3";\r
90         }\r
91         if (self.cells)\r
92                 self.ammo_cells = stof(self.cells);\r
93         if (self.shells)\r
94                 self.ammo_shells = stof(self.shells);\r
95         if (self.rockets)\r
96                 self.ammo_rockets = stof(self.rockets);\r
97         if (self.nails)\r
98                 self.ammo_nails = stof(self.nails);\r
99         if (self.grenade1)\r
100                 self.no_grenades_1 = stof(self.grenade1);\r
101         if (self.grenade2)\r
102                 self.no_grenades_2 = stof(self.grenade2);\r
103         if (self.armor)\r
104                 self.armorvalue = stof(self.armor);\r
105         if ((!self.delay) && (!self.wait))\r
106                 self.wait = 10;                 // next time item can be used\r
107         self.give = "converted";\r
108 \r
109         ConvertToBackPack();            // finish conversion using q3f conversion func\r
110 };\r
111 \r
112 // Team:Nexuiz ctf flag (needs to be capped at an item_ctf_goal\r
113 void () item_ctf_flag =\r
114 {\r
115         if (!self.allowteams)\r
116         {\r
117                 bprint("Fixme!! Object located at ",vtos(self.origin)," has no allowteams property set!\n");\r
118                 return;\r
119         }\r
120         if ((!self.delay) && (!self.wait))\r
121         {\r
122                 self.wait = 45;                 // next time item can be used\r
123                 self.delay = 45;\r
124         }\r
125         if (!self.carried_message)\r
126                 self.carried_message = "You have the flag! Go capture it in your base!\n";\r
127         if (self.allowteams == "red")\r
128         {\r
129                 self.mdl = "models/flags/b_flag.md3";\r
130                 self.groupname = "redflag";\r
131         }\r
132         else if (self.allowteams == "blue")\r
133         {\r
134                 self.groupname = "blueflag";\r
135                 self.mdl = "models/flags/r_flag.md3";\r
136         }\r
137 \r
138         func_goalitem ();\r
139 };\r
140 \r
141 // where you cap item_ctf_flag or flags spawned by tfq3fitems.c\r
142 .string cap_message;\r
143 void () item_ctf_goal =\r
144 {\r
145         if (!self.teamscore)                    // how many frags are gained by capturing\r
146                 self.teamscore = 10;\r
147         if (!self.message)\r
148                 self.message = "You ÃÁÐÔÕÒÅÄ the ÅÎÅÍÙ flag!\n";\r
149         if (!self.cap_message)\r
150                 self.netname = "Blue brings home the Flag";\r
151         if (self.allowteams == "blue")\r
152                 ConvertToFlag(1);\r
153         else if (self.allowteams == "red")\r
154                 ConvertToFlag(2);\r
155 };