12 .void(entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force) event_damage;
\r
31 .float jump_flag; // storing velocity_z for falling damage
\r
32 .float attack_finished;
\r
33 .float pain_finished; //Added by Supajoe
\r
34 .float pain_frame; //"
\r
35 .float statdraintime; // record the one-second intervals between draining health and armour when they're over 100
\r
36 .float crouch; // Crouching or not?
\r
38 .float strength_finished;
\r
39 //.float speed_finished;
\r
40 .float invincible_finished;
\r
41 //.float slowmo_finished;
\r
43 .vector finaldest, finalangle; //plat.qc stuff
\r
46 .float t_length, t_width;
\r
50 .vector destvec; // for rain
\r
51 .float cnt; // for rain
\r
64 .string playermodel;
\r
70 .float electrocount;
\r
71 //.float crylinkcount;
\r
73 .float damageforcescale;
\r
79 // for railgun damage (hitting multiple enemies)
\r
81 .float railgunhitsolidbackup;
\r
82 .vector railgunhitloc;
\r
84 .float air_finished;
\r
89 // definistions for weaponsystem
\r
91 .entity weaponentity;
\r
92 .entity exteriorweaponentity;
\r
93 .float switchweapon;
\r
94 void(float wpn, float wrequest) weapon_action;
\r
95 float(entity cl, float wpn, float andammo) client_hasweapon;
\r
97 // VorteX: standalone think for weapons, so normal think on weaponentity can be reserved by weaponflashes (which needs update even player dies)
\r
98 .float weapon_nextthink;
\r
99 .void() weapon_think;
\r
100 .vector shotdir, shotorg; // new generic aiming system for all weapons (not finished yet, can be removed)
\r
101 float weapon_hasammo; // sets by WR_CHECKAMMO request
\r
103 //float PLAYER_WEAPONSELECTION_DELAY = );
\r
104 float PLAYER_WEAPONSELECTION_SPEED = 18;
\r
105 vector PLAYER_WEAPONSELECTION_RANGE = '0 20 -40';
\r
107 // weapon states (self.weaponentity.state)
\r
108 float WS_CLEAR = 0; // no weapon selected
\r
109 float WS_RAISE = 1; // raise frame
\r
110 float WS_DROP = 2; // deselecting frame
\r
111 float WS_INUSE = 3; // fire state
\r
112 float WS_READY = 4; // idle frame
\r
115 float WR_SETUP = 1; // setup weapon data
\r
116 float WR_UPDATECOUNTS = 2; // update ammo display
\r
117 float WR_IDLE = 3; // idle frame
\r
118 float WR_DROP = 4; // deselect frame
\r
119 float WR_RAISE = 5; // select frame
\r
120 float WR_FIRE1 = 6; // primary fire frame
\r
121 float WR_FIRE2 = 7; // secondary fire
\r
122 float WR_FIRE3 = 8; // third fire
\r
123 float WR_CHECKAMMO = 9; // checks ammo for weapon
\r
124 float WR_CLEAR = 10; // runs afted deselecting frames, remove weapon parts (if presented). This useful for quake3-style chaingun
\r
126 // not part of weapon requests, but almost was, thus the naming convention
\r
127 float WR_GRENADE1 = 11;
\r
128 float WR_GRENADE2 = 12;
\r
131 float WEP_LASER = 1; // float IT_LASER = 4096;
\r
132 float WEP_SHOTGUN = 2; // float IT_SHOTGUN = 1;
\r
133 float WEP_UZI = 3; // float IT_UZI = 2;
\r
134 float WEP_GRENADE_LAUNCHER = 4; // float IT_GRENADE_LAUNCHER = 4;
\r
135 float WEP_ELECTRO = 5; // float IT_ELECTRO = 8;
\r
136 float WEP_CRYLINK = 6; // float IT_CRYLINK = 16;
\r
137 float WEP_NEX = 7; // float IT_NEX = 32;
\r
138 float WEP_HAGAR = 8; // float IT_HAGAR = 64;
\r
139 float WEP_ROCKET_LAUNCHER = 9; // float IT_ROCKET_LAUNCHER = 128;
\r
140 float WEP_BOMBLETTS = 10;
\r
141 float WEP_ROCKET_INCENDIARY = 11;
\r
142 float WEP_FLAMER = 12;
\r
143 float WEP_HOTBOMBS = 13;
\r
144 float WEP_GRAPPLE = 14;
\r
145 float WEP_NAMEK = 15;
\r
146 float WEP_RAILGUN = 16;
\r
147 float WEP_HEALGUN = 17;
\r
148 float WEP_MAC = 18;
\r
150 float WEP_SCOUT_SPECIAL = 50;
\r
151 float WEP_SPY_SPECIAL = 51;
\r
152 float WEP_SOLDIER_SPECIAL = 52;
\r
153 float WEP_PYRO_SPECIAL = 53;
\r
154 float WEP_MEDIC_SPECIAL = 54;
\r
155 float WEP_ENGINEER_SPECIAL = 55;
\r
157 float WEP_GRENADE_MIRV = 60;
\r
158 float WEP_GRENADE_FRAG = 61;
\r
166 // For weapon cycling commands
\r
167 float WEP_FIRST = 1;
\r
168 float WEP_LAST = 5;//9;
\r
176 // class definitions
\r
178 float CLASS_SCOUT = 1;
\r
179 float CLASS_SPY = 2;
\r
180 float CLASS_SOLDIER = 4;
\r
181 float CLASS_PYRO = 8;
\r
182 float CLASS_MEDIC = 16;
\r
183 float CLASS_ENGINEER = 32;
\r
191 .float wpn; // the weapon that's in the slot I've selected
\r
192 .entity wpn5; // what weapon I'm holding in my extra (5th) slot
\r
194 .string change_mdl_on_respawn; // for changing class after death
\r
196 .float special_active;
\r
197 .float special_time;
\r
199 .float grenade_time;
\r
201 .float jump_pad; // true if just hit a jump pad (don't slow player when jump pads launch him)
\r
203 .entity onfire; // world if not on fire, otherwise points to entity burning you
\r
204 .float flame_heat; // starts at 0. Being near someone on fire raises it. When it hits 1, the flame spreads to you.
\r
205 .float flame_heat_time; // set when near a fire so code elsewhere knows to heat up instead of cool down
\r
207 .float poison_damage; // total damage poison will deal over time
\r
208 .float poison_rate; // how fast to deal the poison
\r
210 .float create_time; // tracks the time an entity was created to we can know which
\r
211 // is the oldest when limiting the player's # of turrets or
\r
212 // hotbombs, for example
\r
215 .float buttonuse; // 1 if player is using +use
\r
218 // health regen/rot
\r
219 .float health_regen_delay;
\r
220 .float health_rot_delay;
\r
221 .float armor_regen_delay;
\r
222 .float armor_rot_delay;
\r
224 void DelayHealthRegen(entity e);
\r
225 void DelayHealthRot(entity e);
\r
226 void DelayArmorRegen(entity e);
\r
227 void DelayArmorRot(entity e);
\r
232 void GrapplingHookFrame();
\r
233 void RemoveGrapplingHook(entity pl);
\r
237 string NameOfClass(float cl);
\r
238 float GetPlayerClass();
\r
239 void ResetPlayerModel(entity pl);
\r
240 void SetPlayerSpeed(entity pl);
\r
243 // entity limiting function, to limit # of bombs etc a player can have.
\r
244 float W_LimitNumEnts(string clname, float num_allowed, void() DeathFunc);
\r
246 // functions to let players cross lasergates
\r
247 void PlayerLasergatePreThink();
\r
248 void PlayerLasergatePostThink();
\r
250 void SpyCloakFlicker(entity pl);
\r