void Ent_DamageEffect()
{
float type, specnum1, specnum2, entnumber;
- float is_body;
vector org;
string specstr, effectnum;
entity e;
e = get_weaponinfo(type);
- if(specnum1 >= 16)
- {
- // The server sends the specnum increased by 16 when the target is a dead body (a trick used to save bandwidth)
- // Species range from 0 to 15, so 16 could never be reached, and may be used for other info.
- // Revert the species back and mark that this is a dead body.
- specnum1 -= 16;
- is_body = TRUE;
- }
-
specnum2 = (specnum1 & 0x78) / 8; // blood type: using four bits (0..7, bit indexes 3,4,5)
specstr = species_prefix(specnum2);
// if this is a copied dead body, send the num of its player instead
if(pl.classname == "body")
- {
e.team = num_for_edict(pl.owner);
-
- // Use a trick to indicate this is a copied dead body and not an alive player to the client (saves an extra WriteByte).
- // Do this by increasing species with 16. Species range from 0 to 15, so 16 could never be reached, and may be used for other info.
- // The client will notice this and turn them back, while also noting what the server is trying to say.
- e.state += 16;
- }
else
e.team = num_for_edict(pl);