diff --git a/amxmodx/amxmodx.cpp b/amxmodx/amxmodx.cpp index a22422a0..d1695dcb 100755 --- a/amxmodx/amxmodx.cpp +++ b/amxmodx/amxmodx.cpp @@ -132,6 +132,7 @@ static cell AMX_NATIVE_CALL engclient_print(AMX *amx, cell *params) /* 3 param * { int len = 0; char *msg; + PRINT_TYPE type = (PRINT_TYPE)params[2]; if (params[1] == 0) { @@ -139,13 +140,13 @@ static cell AMX_NATIVE_CALL engclient_print(AMX *amx, cell *params) /* 3 param * { CPlayer* pPlayer = GET_PLAYER_POINTER_I(i); - if (pPlayer->ingame) + if ((type == print_console && pPlayer->initialized) || pPlayer->ingame) { g_langMngr.SetDefLang(i); msg = format_amxstring(amx, params, 3, len); msg[len++] = '\n'; msg[len] = 0; - CLIENT_PRINT(pPlayer->pEdict, (PRINT_TYPE)(int)params[2], msg); + CLIENT_PRINT(pPlayer->pEdict, type, msg); } } } else { @@ -159,13 +160,13 @@ static cell AMX_NATIVE_CALL engclient_print(AMX *amx, cell *params) /* 3 param * CPlayer* pPlayer = GET_PLAYER_POINTER_I(index); - if (pPlayer->ingame) + if ((type == print_console && pPlayer->initialized) || pPlayer->ingame) { g_langMngr.SetDefLang(index); msg = format_amxstring(amx, params, 3, len); msg[len++] = '\n'; msg[len] = 0; - CLIENT_PRINT(pPlayer->pEdict, (PRINT_TYPE)(int)params[2], msg); + CLIENT_PRINT(pPlayer->pEdict, type, msg); } } @@ -2260,7 +2261,7 @@ static cell AMX_NATIVE_CALL get_players(AMX *amx, cell *params) /* 4 param */ for (int i = 1; i <= gpGlobals->maxClients; ++i) { CPlayer* pPlayer = GET_PLAYER_POINTER_I(i); - if (pPlayer->ingame) + if (pPlayer->ingame || ((flags & 256) && pPlayer->initialized)) { if (pPlayer->IsAlive() ? (flags & 2) : (flags & 1)) continue; @@ -2316,7 +2317,7 @@ static cell AMX_NATIVE_CALL find_player(AMX *amx, cell *params) /* 1 param */ { CPlayer* pPlayer = GET_PLAYER_POINTER_I(i); - if (pPlayer->ingame) + if (pPlayer->ingame || ((flags & 4096) && pPlayer->initialized)) { if (pPlayer->IsAlive() ? (flags & 64) : (flags & 32)) continue; diff --git a/plugins/include/amxmodx.inc b/plugins/include/amxmodx.inc index 7ca7a418..dd86e3b5 100755 --- a/plugins/include/amxmodx.inc +++ b/plugins/include/amxmodx.inc @@ -1215,6 +1215,7 @@ native get_playersnum(flag=0); * "f" - match with part of name * "g" - match case insensitive * "h" - do not include HLTV proxies + * "i" - include connecting clients * @param team String to match against if the "e" or "f" flag is specified * * @noreturn @@ -1301,8 +1302,10 @@ native get_flags(flags, output[], len); * "j" - return last matched client instead of the first * "k" - match with userid * "l" - match case insensitively + * "m" - include connecting clients * @param ... String to match against (integer if "k" flag is specified) * + * @return Client index, or 0 if no client was found */ native find_player(const flags[], ...);