]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/ent_cs.qc
Merge remote-tracking branch 'origin/master' into fruitiex/animations
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / ent_cs.qc
index 970f20a9205a1bdc3200fae83f477ed38dcc8226..f127fb26e83e7a4471b7f6dfe09faaacf648becd 100644 (file)
@@ -30,8 +30,8 @@ float entcs_customize()
                return FALSE;
        if(other == o)
                return FALSE;
-       if(other.classname == "player")
-               if(o.team != other.team)
+       if((other.classname == "player") || other.caplayer)
+               if(!teamplay || o.team != other.team)
                        if not (radar_showennemies)
                                return FALSE;
        return TRUE;
@@ -39,26 +39,28 @@ float entcs_customize()
 
 float entcs_send(entity to, float sf)
 {
-       entity o;
-       o = self.owner;
        WriteByte(MSG_ENTITY, ENT_CLIENT_ENTCS);
        WriteByte(MSG_ENTITY, sf);
        if(sf & 1)
-               WriteByte(MSG_ENTITY, num_for_edict(o));
+               WriteByte(MSG_ENTITY, num_for_edict(self.owner)-1);
        if(sf & 2)
        {
-               WriteShort(MSG_ENTITY, o.origin_x);
-               WriteShort(MSG_ENTITY, o.origin_y);
-               WriteShort(MSG_ENTITY, o.origin_z);
+               WriteShort(MSG_ENTITY, self.origin_x);
+               WriteShort(MSG_ENTITY, self.origin_y);
+               WriteShort(MSG_ENTITY, self.origin_z);
        }
        if(sf & 4)
-               WriteByte(MSG_ENTITY, o.angles_y * 256.0 / 360);
+               WriteByte(MSG_ENTITY, self.angles_y * 256.0 / 360);
+       if(sf & 8)
+               WriteByte(MSG_ENTITY, self.health / 10); // FIXME use a better scale?
+       if(sf & 16)
+               WriteByte(MSG_ENTITY, self.armorvalue / 10); // FIXME use a better scale?
        return TRUE;
 };
 
 void entcs_think()
 {
-       self.nextthink = time;
+       self.nextthink = time + 0.033333333333; // increase this to like 0.15 once the client can do smoothing
 
        entity o;
        o = self.owner;
@@ -73,6 +75,16 @@ void entcs_think()
                self.angles = o.angles;
                self.SendFlags |= 4;
        }
+       if(o.health != self.health)
+       {
+               self.health = o.health;
+               self.SendFlags |= 8;
+       }
+       if(o.armorvalue != self.armorvalue)
+       {
+               self.armorvalue = o.armorvalue;
+               self.SendFlags |= 16;
+       }
 };
 
 entity attach_entcs()