Hallo!
Ich hab mir einen Befehl gemacht, welcher es erlaubt User zu heilen. Er funktioniert fast perfekt, aber das System erkennt nicht´ wann der Spieler über 99 HP hat. Er heilt einfach weiter (was eigentlich bei über 99 Leben stoppen sollte).
Wie kann ich das beheben? Untenstehend findet ihr die Betreffenden Zeilen.
Dieser Bereich genau klappt nicht:
if (health > 99.0)
{
SendClientMessage(playerid,COLOR_LIGHTBLUE,"* Du wurdest vollständig geheilt.");
KillTimer(HealStep1(playerid));
KillTimer(HealStep2(playerid));
return 1;
}
Der rest klappt einwandfrei.
public HealStep1(playerid)
{
if(GetDistanceBetweenPlayers(playerid,HealOffer[playerid]) < 5.0)
{
new Float:health;
GetPlayerHealth(playerid,health);
if (health > 99.0)
{
SendClientMessage(playerid,COLOR_LIGHTBLUE,"* Du wurdest vollständig geheilt.");
KillTimer(HealStep1(playerid));
KillTimer(HealStep2(playerid));
return 1;
}
if (health < 100.0)
{
GivePlayerHealth(playerid, 10.0);
SetTimerEx("HealStep2",1999,0,"d",playerid);
}
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Die Heilung wurde abgebrochen, weil du zu weit vom Notarzt entfernt bist.");
KillTimer(HealStep1(playerid));
KillTimer(HealStep2(playerid));
return 1;
}
return 1;
}
public HealStep2(playerid)
{
if(GetDistanceBetweenPlayers(playerid,HealOffer[playerid]) < 5.0)
{
new Float:health;
GetPlayerHealth(playerid,health);
if (health > 99.0)
{
SendClientMessage(playerid,COLOR_LIGHTBLUE,"* Du wurdest vollständig geheilt.");
KillTimer(HealStep1(playerid));
KillTimer(HealStep2(playerid));
return 1;
}
if (health < 100.0)
{
GivePlayerHealth(playerid, 10.0);
SetTimerEx("HealStep1",1999,0,"d",playerid);
}
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Die Heilung wurde abgebrochen, weil du zu weit vom Notarzt entfernt bist.");
KillTimer(HealStep1(playerid));
KillTimer(HealStep2(playerid));
return 1;
}
return 1;
}
Danke für eure eventuelle Hilfe!