Cstrike: cs_set_user_deaths - Add a param to choose whether scoreboard should be updated

This commit is contained in:
Arkshine 2015-07-04 16:21:48 +02:00
parent 71c6ac8c2e
commit b82588f081
2 changed files with 20 additions and 9 deletions

View File

@ -80,7 +80,7 @@ static cell AMX_NATIVE_CALL cs_get_user_deaths(AMX *amx, cell *params)
return get_pdata<int>(pPlayer, m_iDeaths);
}
// native cs_set_user_deaths(index, newdeaths);
// native cs_set_user_deaths(index, newdeaths, bool:scoreboard = true);
static cell AMX_NATIVE_CALL cs_set_user_deaths(AMX *amx, cell *params)
{
GET_OFFSET("CBasePlayer", m_iDeaths);
@ -94,6 +94,15 @@ static cell AMX_NATIVE_CALL cs_set_user_deaths(AMX *amx, cell *params)
set_pdata<int>(pPlayer, m_iDeaths, deaths);
bool updateScoreboard = true;
if (*params / sizeof(cell) >= 3)
{
updateScoreboard = params[3] != 0;
}
if (updateScoreboard)
{
MESSAGE_BEGIN(MSG_ALL, MessageIdScoreInfo);
WRITE_BYTE(index);
WRITE_SHORT(static_cast<int>(pPlayer->v.frags));
@ -101,6 +110,7 @@ static cell AMX_NATIVE_CALL cs_set_user_deaths(AMX *amx, cell *params)
WRITE_SHORT(0);
WRITE_SHORT(get_pdata<int>(pPlayer, m_iTeam));
MESSAGE_END();
}
*static_cast<int *>(MF_PlayerPropAddr(index, Player_Deaths)) = deaths;

View File

@ -152,13 +152,14 @@ native cs_get_user_deaths(index);
*
* @param index Client index
* @param newdeaths New value to set
* @param scoreboard If true the scoreboard will be updated to reflect the new value.
*
* @noreturn
* @error If the client index is not within the range of 1 to
* MaxClients, or the client is not connected, an error
* will be thrown.
*/
native cs_set_user_deaths(index, newdeaths);
native cs_set_user_deaths(index, newdeaths, bool:scoreboard = true);
/**
* Returns index of the entity that a hostage is following.