.entity pusher;
.float pushltime;
+.float istypefrag;
.float CopyBody_nextthink;
.void(void) CopyBody_think;
// don't reset pushltime for self damage as it may be an attempt to
// escape a lava pit or similar
//self.pushltime = 0;
+ self.istypefrag = 0;
}
else if(attacker.classname == "player")
{
self.pusher = attacker;
self.pushltime = time + autocvar_g_maxpushtime;
+ self.istypefrag = self.BUTTON_CHAT;
}
else if(time < self.pushltime)
{
self.pushltime = max(self.pushltime, time + 0.6);
}
else
+ {
self.pushltime = 0;
+ self.istypefrag = 0;
+ }
float abot, vbot, awep;
abot = (clienttype(attacker) == CLIENTTYPE_BOT);
vbot = (clienttype(self) == CLIENTTYPE_BOT);
valid_damage_for_weaponstats = 0;
+ awep = 0;
+
if(vbot || clienttype(self) == CLIENTTYPE_REAL)
if(abot || clienttype(attacker) == CLIENTTYPE_REAL)
if(attacker && self != attacker)
// 0 = reject
// -1 = fake accept
{
- string msgstr, colorstr, cmsgstr, namestr, fullmsgstr, sourcemsgstr, fullcmsgstr, sourcecmsgstr, privatemsgprefix;
- float flood, privatemsgprefixlen;
+ string msgstr, colorstr, cmsgstr, namestr, fullmsgstr, sourcemsgstr, fullcmsgstr, sourcecmsgstr;
+ float flood;
var .float flood_field;
entity head;
float ret;
-
- if(Ban_MaybeEnforceBan(source))
- return 0;
+ string privatemsgprefix = string_null; float privatemsgprefixlen = 0;
if(!teamsay && !privatesay)
if(substring(msgin, 0, 1) == " ")
else if(teamplay)
colorstr = Team_ColorCode(source.team);
else
+ {
+ colorstr = "";
teamsay = FALSE;
+ }
if(intermission_running)
teamsay = FALSE;
// FLOOD CONTROL
flood = 0;
+ flood_field = floodcontrol_chat;
if(floodcontrol)
{
float flood_spl;
if(source.classname != "player")
{
if not(intermission_running)
- if(teamsay || (autocvar_g_chat_nospectators == 1) || (autocvar_g_chat_nospectators == 2 && !inWarmupStage))
+ if(teamsay || (autocvar_g_chat_nospectators == 1) || (autocvar_g_chat_nospectators == 2 && !(inWarmupStage || gameover)))
teamsay = -1; // spectators
}