OnPlayerGiveDamage ES

From SA-MP Wiki

Jump to: navigation, search



Description:

Este callback es llamado cuando un jugador reporta que ha dañado a otro.


OnPlayerGiveDamage ES was added in SA-MP 0.3d Este callback fue agregado en la version SA-MP 0.3d y no funcionara en versiones anteriores!


Parámetros:
(playerid, damagedid, Float:amount, weaponid)
playeridID del jugador que daña.
damagedidID del jugador que es dañado.
amountEl monto de vida/armadura que pierde el jugador
weaponidLa razon que causo el daño (arma).
bodypartEl 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!)


Este callback no maneja returns


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


Image:32px-Ambox_warning_orange.png

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.

Template:OnPlayerTakeDamage ES