1.1 --- a/core/PlayerManager.cpp Sat Mar 01 06:33:25 2008 +0000
1.2 +++ b/core/PlayerManager.cpp Sat Mar 01 07:14:16 2008 +0000
1.3 @@ -961,10 +961,22 @@
1.4 }
1.5 }
1.6
1.7 + if (strcmp(info->pattern, "@me") == 0)
1.8 + {
1.9 + info->targets[0] = info->admin;
1.10 + info->num_targets = 1;
1.11 + strncopy(info->target_name,
1.12 + pAdmin ? pAdmin->GetName() : "Console",
1.13 + info->target_name_maxlength);
1.14 + info->target_name_style = COMMAND_TARGETNAME_RAW;
1.15 + return;
1.16 + }
1.17 +
1.18 if ((info->flags & COMMAND_FILTER_NO_MULTI) != COMMAND_FILTER_NO_MULTI)
1.19 {
1.20 bool is_multi = false;
1.21 bool bots_only = false;
1.22 + int skip_client = -1;
1.23
1.24 if (strcmp(info->pattern, "@all") == 0)
1.25 {
1.26 @@ -1018,6 +1030,13 @@
1.27 info->target_name_style = COMMAND_TARGETNAME_ML;
1.28 info->flags |= COMMAND_FILTER_NO_BOTS;
1.29 }
1.30 + else if (strcmp(info->pattern, "@!me") == 0)
1.31 + {
1.32 + is_multi = true;
1.33 + strncopy(info->target_name, "all players", info->target_name_maxlength);
1.34 + info->target_name_style = COMMAND_TARGETNAME_ML;
1.35 + skip_client = info->admin;
1.36 + }
1.37
1.38 if (is_multi)
1.39 {
1.40 @@ -1029,7 +1048,8 @@
1.41 }
1.42 if (FilterCommandTarget(pAdmin, pTarget, info->flags) > 0)
1.43 {
1.44 - if (!bots_only || pTarget->IsFakeClient())
1.45 + if ((!bots_only || pTarget->IsFakeClient())
1.46 + && skip_client != i)
1.47 {
1.48 info->targets[total++] = i;
1.49 }