Allow multiple clients for sm_ftl

This commit is contained in:
Jackzie 2021-10-16 12:37:43 -05:00
parent 41efdd80d7
commit 01e6c7fe00
No known key found for this signature in database
GPG key ID: 1E834FE36520537A

View file

@ -316,50 +316,53 @@ public Action Command_ListTheTrolls(int client, int args) {
GetCmdArg(1, arg1, sizeof(arg1)); GetCmdArg(1, arg1, sizeof(arg1));
static char target_name[MAX_TARGET_LENGTH]; static char target_name[MAX_TARGET_LENGTH];
int target_list[1], target_count; int target_list[MAXPLAYERS], target_count;
bool tn_is_ml; bool tn_is_ml;
if ((target_count = ProcessTargetString( if ((target_count = ProcessTargetString(
arg1, arg1,
client, client,
target_list, target_list,
1, MAXPLAYERS,
COMMAND_FILTER_NO_MULTI, 0,
target_name, target_name,
sizeof(target_name), sizeof(target_name),
tn_is_ml)) <= 0 tn_is_ml)) <= 0
&& target_list[0] > 0) { || target_list[0] == 0) {
/* This function replies to the admin with a failure message */ /* This function replies to the admin with a failure message */
ReplyToTargetError(client, target_count); ReplyToTargetError(client, target_count);
return Plugin_Handled; return Plugin_Handled;
} }
int target = target_list[0];
if(IsPlayerAlive(target)) for(int p = 0; p < target_count; p++) {
ReplyToCommand(client, "> Active Trolls for %N:", target); int target = target_list[p];
else if(IsPlayerAlive(target))
ReplyToCommand(client, "> Active Trolls for %N: (Paused)", target); ReplyToCommand(client, "> Active Trolls for %N:", target);
else
ReplyToCommand(client, "> Active Trolls for %N: (Paused)", target);
if(IsFakeClient(target)) { if(IsFakeClient(target)) {
int player = GetRealClient(target); int player = GetRealClient(target);
if(player != -1) target = player; if(player != -1) target = player;
} }
for(int j = 1; j <= MAX_TROLLS; j++) { for(int j = 1; j <= MAX_TROLLS; j++) {
if(trollIds[j][0] != '\0' && IsTrollActive(target, trollIds[j])) { if(trollIds[j][0] != '\0' && IsTrollActive(target, trollIds[j])) {
if(Trolls[j].activeFlagClients[target] > 0) { if(Trolls[j].activeFlagClients[target] > 0) {
static char list[MAX_TROLL_FLAG_LENGTH*8]; //May in future need to up magic number 8 (supports 8 active flags ) static char list[MAX_TROLL_FLAG_LENGTH*8]; //May in future need to up magic number 8 (supports 8 active flags )
static char buffer[MAX_TROLL_FLAG_LENGTH]; static char buffer[MAX_TROLL_FLAG_LENGTH];
for(int i = 0; i < Trolls[j].flagNames.Length; i++) { for(int i = 0; i < Trolls[j].flagNames.Length; i++) {
int a = (1 << i); int a = (1 << i);
if(Trolls[j].activeFlagClients[target] & a) { if(Trolls[j].activeFlagClients[target] & a) {
Trolls[j].flagNames.GetString(i, buffer, sizeof(buffer)); Trolls[j].flagNames.GetString(i, buffer, sizeof(buffer));
Format(list, sizeof(list), "%s%s;", list, buffer); Format(list, sizeof(list), "%s%s;", list, buffer);
} else { } else {
Trolls[j].flagNames.GetString(i, buffer, sizeof(buffer)); Trolls[j].flagNames.GetString(i, buffer, sizeof(buffer));
}
} }
} ReplyToCommand(client, "\"%s\" Flags: %s", trollIds[j], list);
ReplyToCommand(client, "\"%s\" Flags: %s", trollIds[j], list); } else
} else ReplyToCommand(client, trollIds[j]);
ReplyToCommand(client, trollIds[j]); }
} }
} }
return Plugin_Handled; return Plugin_Handled;