// player is in the worse half, if >= half the players are better than him, or consequently, if < half of the players are worse
// use this rule here
-
+
if(players_worseeq >= players_total * captureshield_max_ratio)
return FALSE;
setattachment(self, world, "");
self.mdl = self.model;
- self.flags = FL_ITEM;
+ self.flags = FL_ITEM | FL_NOTARGET;
self.solid = SOLID_TRIGGER;
self.movetype = MOVETYPE_NONE;
self.velocity = '0 0 0';
e.angles = e.mangle;
e.cnt = FLAG_BASE;
e.owner = world;
- e.flags = FL_ITEM; // clear FL_ONGROUND and any other junk
+ e.flags = FL_ITEM | FL_NOTARGET; // clear FL_ONGROUND and any other junk
};
void ReturnFlag(entity e)
e.playerid = attacker.playerid;
e.ctf_droptime = time;
WaypointSprite_Spawn("flagdropped", 0, 0, e, '0 0 1' * 61, world, COLOR_TEAM1 + COLOR_TEAM2 - e.team, e, waypointsprite_attachedforcarrier, FALSE);
-
+
if(p.waypointsprite_attachedforcarrier)
{
WaypointSprite_Ping(p.waypointsprite_attachedforcarrier);
p.flagcarried = world;
e.owner = world;
- e.flags = FL_ITEM; // clear FL_ONGROUND and any other junk
+ e.flags = FL_ITEM | FL_NOTARGET; // clear FL_ONGROUND and any other junk
e.solid = SOLID_TRIGGER;
e.movetype = MOVETYPE_TOSS;
// setsize(e, '-16 -16 0', '16 16 74');
{
if (other.next_take_time > time)
return;
-
+
if (autocvar_g_ctf_flag_pickup_effects) // pickup effect
pointparticles(particleeffectnum("smoke_ring"), 0.5 * (self.absmin + self.absmax), '0 0 0', 1);
-
+
// pick up
self.flagpickuptime = time; // used for timing runs
self.speedrunning = other.speedrunning; // if speedrunning, flag will self-return and teleport the owner back after the record
if (self.cnt == FLAG_DROPPED)
{
- self.flags = FL_ITEM; // clear FL_ONGROUND and any other junk
+ self.flags = FL_ITEM | FL_NOTARGET; // clear FL_ONGROUND and any other junk
if (other.team == self.team || (other.team != COLOR_TEAM1 && other.team != COLOR_TEAM2))
{
// return flag
if (autocvar_g_ctf_flag_pickup_effects) // field pickup effect
pointparticles(particleeffectnum("smoke_ring"), 0.5 * (self.absmin + self.absmax), '0 0 0', 1);
-
+
// pick up
self.solid = SOLID_NOT;
setorigin(self, self.origin); // relink
if(self.team == COLOR_TEAM2)
// Blue
self.glow_color = 210;
-
+
self.glow_size = 25;
self.glow_trail = 1;
}
entity pl;
if(cteam != COLOR_TEAM1 || cteam != COLOR_TEAM2)
return world;
-
+
FOR_EACH_REALPLAYER(pl) {
if(pl.team == cteam && pl.iscommander) {
return pl;
void(float cteam) ctf_new_commander =
{
entity pl, plmax;
-
+
plmax = world;
FOR_EACH_REALPLAYER(pl) {
if(pl.team == cteam) {
void() ctf_clientconnect =
{
self.iscommander = FALSE;
-
+
if(!self.team || self.classname != "player") {
ctf_setstate(self, -1);
} else
ctf_setstate(self, 0);
self.team_saved = self.team;
-
+
if(self.team != 0 && self.classname == "player" && !ctf_team_has_commander(self.team)) {
ctf_new_commander(self.team);
}
ctf_setstate(self, -1);
ctf_new_commander(self.team_saved);
}
-
+
self.team_saved = self.team;
-
+
ctf_new_commander(self.team);
};