if(axh.owner == this && axh != NULL && !wasfreed(axh))
delete(axh);
}
-
+
if (mutator_returnvalue)
{
// mutator prevents resetting teams+score
{
SetPlayerTeam(this, -1, TEAM_CHANGE_SPECTATOR);
this.frags = FRAGS_SPECTATOR;
- }
+ }
+ if (CS(this).just_joined)
+ CS(this).just_joined = false;
}
int player_getspecies(entity this)
teamsay = false;
}
- if(game_stopped)
+ if (intermission_running)
teamsay = false;
if (!source) {
int privatemsgprefixlen = 0;
if (msgin != "")
{
+ bool found_me = false;
+ if(strstrofs(msgin, "/me", 0) >= 0)
+ {
+ string newmsgin = "";
+ string newnamestr = ((teamsay) ? strcat(colorstr, "(", colorprefix, namestr, colorstr, ")", "^7") : strcat(colorprefix, namestr, "^7"));
+ FOREACH_WORD(msgin, true,
+ {
+ if(strdecolorize(it) == "/me")
+ {
+ found_me = true;
+ newmsgin = cons(newmsgin, newnamestr);
+ }
+ else
+ newmsgin = cons(newmsgin, it);
+ });
+ msgin = newmsgin;
+ }
+
if(privatesay)
{
msgstr = strcat("\{1}\{13}* ", colorprefix, namestr, "^3 tells you: ^7");
}
else if(teamsay)
{
- if(strstrofs(msgin, "/me", 0) >= 0)
+ if(found_me)
{
//msgin = strreplace("/me", "", msgin);
//msgin = substring(msgin, 3, strlen(msgin));
- msgin = strreplace("/me", strcat(colorstr, "(", colorprefix, namestr, colorstr, ")^7"), msgin);
+ //msgin = strreplace("/me", strcat(colorstr, "(", colorprefix, namestr, colorstr, ")^7"), msgin);
msgstr = strcat("\{1}\{13}^4* ", "^7", msgin);
}
else
}
else
{
- if(strstrofs(msgin, "/me", 0) >= 0)
+ if(found_me)
{
//msgin = strreplace("/me", "", msgin);
//msgin = substring(msgin, 3, strlen(msgin));
- msgin = strreplace("/me", strcat(colorprefix, namestr), msgin);
- msgstr = strcat("\{1}^4* ", "^7", msgin);
+ //msgin = strreplace("/me", strcat(colorprefix, namestr), msgin);
+ msgstr = strcat("\{1}^4* ^7", msgin);
}
else {
msgstr = "\{1}";
MUTATOR_CALLHOOK(ChatMessage, source, ret);
ret = M_ARGV(1, int);
+ string event_log_msg = "";
+
if(sourcemsgstr != "" && ret != 0)
{
if(ret < 0) // faked message, because the player is muted
FOREACH_CLIENT(IS_REAL_CLIENT(it) && it != source && CS(it).active_minigame == CS(source).active_minigame && !MUTATOR_CALLHOOK(ChatMessageTo, it, source), {
sprint(it, msgstr);
});
+ event_log_msg = sprintf(":chat_minigame:%d:%s:%s", source.playerid, CS(source).active_minigame.netname, msgin);
+
}
else if(teamsay > 0) // team message, only sent to team mates
{
if(cmsgstr != "")
centerprint(it, cmsgstr);
});
+ event_log_msg = sprintf(":chat_team:%d:%d:%s", source.playerid, source.team, strreplace("\n", " ", msgin));
}
else if(teamsay < 0) // spectator message, only sent to spectators
{
FOREACH_CLIENT(!(IS_PLAYER(it) || it.caplayer) && IS_REAL_CLIENT(it) && it != source && !MUTATOR_CALLHOOK(ChatMessageTo, it, source), {
sprint(it, msgstr);
});
+ event_log_msg = sprintf(":chat_spec:%d:%s", source.playerid, strreplace("\n", " ", msgin));
}
else
{
FOREACH_CLIENT(IS_REAL_CLIENT(it) && it != source && !MUTATOR_CALLHOOK(ChatMessageTo, it, source), {
sprint(it, msgstr);
});
+ event_log_msg = sprintf(":chat:%d:%s", source.playerid, strreplace("\n", " ", msgin));
}
}
+ if (autocvar_sv_eventlog && (event_log_msg != "")) {
+ GameLogEcho(event_log_msg);
+ }
+
return ret;
}