Merge pull request #126 from Arkshine/feature-find-player-engclient_print

Allow some natives to be used on connecting players (bug 6229).
This commit is contained in:
Vincent Herbet
2014-08-19 18:35:52 +02:00
2 changed files with 10 additions and 6 deletions

View File

@@ -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;