Fix user_slap/amx_slap unexpected behavior using large negative damage (bug 4975, r=joropito)

Former-commit-id: 1e4d0e216eef3d556c68eeca7362562c663e2dd1
This commit is contained in:
Vincent HERBET 2013-06-25 11:45:00 +02:00
parent 38fb271c83
commit 17a8e7f56e
2 changed files with 7 additions and 3 deletions

View File

@ -1541,7 +1541,11 @@ static cell AMX_NATIVE_CALL user_slap(AMX *amx, cell *params) /* 2 param */
if (index < 1 || index > gpGlobals->maxClients) if (index < 1 || index > gpGlobals->maxClients)
return 0; return 0;
int power = abs((int)params[2]); int power = (int)params[2];
if (power < 0)
power = 0;
CPlayer* pPlayer = GET_PLAYER_POINTER_I(index); CPlayer* pPlayer = GET_PLAYER_POINTER_I(index);
if (pPlayer->ingame && pPlayer->IsAlive()) if (pPlayer->ingame && pPlayer->IsAlive())

View File

@ -605,7 +605,7 @@ public cmdSlap(id, level, cid)
read_argv(2, spower, 31) read_argv(2, spower, 31)
new damage = str_to_num(spower) new damage = clamp( str_to_num(spower), 0)
user_slap(player, damage) user_slap(player, damage)