Alles anzeigenpublic OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
if(bodypart != 9)
{
new Float:h;
GetPlayerHealth(playerid, h);
SetPlayerHealth(playerid, h+amount);
}
return 1;
}
Das würde dir die Leben immer wieder hoch setzen, außer du bekommst einen Schuss in den Kopf.
So wie ich meine Erfahrungen habe hat er beim Aufruf des Callbacks noch das Leben, das bedeutet er würde mehr Leben bekomme als es eigentlich sein solle
Das lässt sich aber alternativ mit einem Timer lösen
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
if(bodypart != 9)
{
new Float:h;
GetPlayerHealth(playerid, h);
SetPlayerHealth(playerid, h+amount);
}
return 1;
}
zu
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
if(bodypart != 9)
{
new Float:h;
GetPlayerHealth(playerid, h);
SetPVarFloat(playerid, "health", h);
SetTimerEx("@Health", 500, false, "i", playerid);
}
return 1;
}
@Health(id); @Health(id){
SetPlayerHealth(playerid, GetPVarFloat(playerid, "health"));
}