27.12.2014, 12:44
Hi all,
I have a problem with my callback OnPlayerTakeDamage.
I've created a basic custom damage system but he doesn't work.
Can you help me ?
I have a problem with my callback OnPlayerTakeDamage.
I've created a basic custom damage system but he doesn't work.
Can you help me ?
pawn Код:
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
{
if(issuerid != INVALID_PLAYER_ID)
{
switch(weaponid)
{
case 31, 30, 24, 29:
{
new Float:armure, Float:vie, Float:degats;
if(weaponid == 31) degats = 10.0;
else if(weaponid == 30) degats = 17.5;
else if(weaponid == 24) degats = 60.0;
else if(weaponid == 29) degats = 10.0;
GetPlayerHealth(playerid, vie);
GetPlayerArmour(playerid, armure);
if(armure > 0.0 && (armure-degats <= 0.0)) SetPlayerArmour(playerid, 0.0);
else if(armure > 0.0 && (armure-degats) > 0.0) SetPlayerArmour(playerid, armure+amount-degats);
else SetPlayerHealth(playerid, vie+amount-degats);
}
case 34:
{
if(bodypart == 9)
{
new Float:Position[3], Float:Distance, string[145];
SetPlayerHealth(playerid, 0.0);
SetPlayerArmour(playerid, 0.0);
GetPlayerPos(playerid, Position[0], Position[1], Position[2]);
Distance = GetPlayerDistanceFromPoint(issuerid, Position[0], Position[1], Position[2]);
format(string, sizeof(string), "(Administration) {FF5D47}%s a tuй %s d'un tir а la tкte а %.2fm de distance.", GetPseudoJoueur(issuerid), GetPseudoJoueur(playerid), Distance);
SendStaffMessage(COULEUR_ADMINISTRATION, string);
}
new Float:armure, Float:vie, Float:degats = 75.0;
GetPlayerHealth(playerid, vie);
GetPlayerArmour(playerid, armure);
if(armure > 0.0 && (armure-degats <= 0.0)) SetPlayerArmour(playerid, 0.0);
else if(armure > 0.0 && (armure-degats) > 0.0) SetPlayerArmour(playerid, armure+amount-degats);
else SetPlayerHealth(playerid, vie+amount-degats);
}
}
}
return 1;
}