OnPlayerGiveDamage ES
From SA-MP Wiki
Description:
playerid | ID del jugador que daña. |
damagedid | ID del jugador que es dañado. |
amount | El monto de vida/armadura que pierde el jugador |
weaponid | La razon que causo el daño (arma). |
bodypart | El body part es la parte en la que el jugador fue dañado. (NOTE: Este parametro fue agregado en la versión 0.3z, Remuevelo si utilizas una versión anterior!) |
Ejemplo:
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid, bodypart) { if(damagedid != INVALID_PLAYER_ID) { new string[128], victim[MAX_PLAYER_NAME], attacker[MAX_PLAYER_NAME]; new weaponname[24]; GetPlayerName(playerid, attacker, sizeof (attacker)); GetPlayerName(damagedid, victim, sizeof (victim)); GetWeaponName(weaponid, weaponname, sizeof (weaponname)); format(string, 128, "%s le causó un daño de %.0f al jugador %s, con el arma: %s | BodyPart: %d", attacker, amount, victim, weaponid, bodypart); SendClientMessageToAll(0xFFFFFFFF, string); } return 1; }
Note | Una cosa que puedes ahcer con este callback es detectar cuando otros jugadores reportan que han dañado a cierto jugador, y ese jugador no haya sido dañado. Puedes señalar a ese jugador como suspechoso.
Puedes también poner a todos los jugadores en el mismo equipo (por lo que no podrán dañarse entre ellos) y procesar toda perdida de vida por parte de los jugadores manualmente. Quizás tengas un server donde los jugadores obtienen nivel de búsqueda si atacan a los jugadores del equipo de Policias (o alguna clase específica). En ese caso, puedes confiar más en la información dada por OnPlayerGiveDamage que OnPlayerTakeDamage. Debe haber muchas cosas que puedes hacer con esto. Sólo mantén en mente los niveles de confianza entre clientes. En la mayoría de los casos es mejor confiar en el cliente que fue dañado para reportar su vida/armadura (OnPlayerTakeDamage). SA-MP normalmente hace esto. OnPlayerGiveDamage provee cierta información extra que puede ser útil cuando se requiera un nivel distinto de confianza. |
Callbacks relacionadas
Las siguientes callbacks pueden ser útiles, ya que éstas están relacionadas con esta función de alguna u otra manera.