Ga naar hoofdinhoud

OnPlayerTakeDamage

Beschrijving

Deze callback wordt aangeroepen wanneer een speler schade ontvangt.

NaamBeschrijving
playeridHet ID van de speler die schade ontving.
issueridHet ID van de speler die de schade veroorzaakte. INVALID_PLAYER_ID bij zelfschade.
Float:amountDe hoeveelheid ontvangen schade (health en armor gecombineerd).
WEAPON:weaponidHet ID van het wapen/de reden voor de schade.
bodypartHet lichaamsdeel dat geraakt werd.

Returns

1 - Callback wordt niet in andere filterscripts aangeroepen.

0 - Staat toe dat deze callback in andere filterscripts wordt aangeroepen.

Wordt altijd als eerste aangeroepen in filterscripts; return 1 blokkeert verdere verwerking.

Voorbeelden

public OnPlayerTakeDamage(playerid, issuerid, Float:amount, WEAPON:weaponid, bodypart)
{
if (issuerid != INVALID_PLAYER_ID) // Niet zelfschade
{
new
infoString[128],
weaponName[24],
victimName[MAX_PLAYER_NAME],
attackerName[MAX_PLAYER_NAME];

GetPlayerName(playerid, victimName, sizeof (victimName));
GetPlayerName(issuerid, attackerName, sizeof (attackerName));

GetWeaponName(weaponid, weaponName, sizeof (weaponName));

format(infoString, sizeof(infoString), "%s has made %.0f damage to %s, weapon: %s, bodypart: %d", attackerName, amount, victimName, weaponName, bodypart);
SendClientMessageToAll(-1, infoString);
}
return 1;
}
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, WEAPON:weaponid, bodypart)
{
if (issuerid != INVALID_PLAYER_ID && weaponid == 34 && bodypart == 9)
{
// Eén headshot met sniper killt
SetPlayerHealth(playerid, 0.0);
}
return 1;
}

Notities

tip
  • weaponid is 37 (flamethrower) voor vuurbronnen (bijv. molotov, 18).
  • weaponid is 51 voor wapens die explosies veroorzaken (bijv. RPG, granaat).
  • playerid is de enige die de callback kan aanroepen.
  • amount is altijd de maximale schade die weaponid kan doen, zelfs als er minder health over is (zie uitleg bij Desert Eagle 46.2).
waarschuwing
  • GetPlayerHealth en GetPlayerArmour geven de oude waarden terug vóór deze callback.
  • Controleer altijd of issuerid geldig is voordat je het als array-index gebruikt.

Gerelateerde Callbacks

  • OnPlayerGiveDamage: Deze callback wordt aangeroepen wanneer een speler schade toebrengt.
  • OnPlayerWeaponShot: Deze callback wordt aangeroepen wanneer een speler een wapen afvuurt.

Gerelateerde Resources