Im 1-sekündigen Timer wird die Variable BleedOutPoints[playerid] für jeden Spieler herab gezählt und dann in den Gametext formatiert.
Komischerweise wird aber die Zahl "1" nicht angezeigt. Das sieht dann z.B. so aus:
"2~n~Druecke ENTER um zu respawnen!"
"~n~Druecke ENTER um zu respawnen""
"0~n~Druecke ENTER um zu respawnen!"
Hier der Quellcode:
forward BleedOut(playerid);
public BleedOut(playerid)
{
if(!BeingRezzed[playerid])
{
BleedOutPoints[playerid]--;
new string3D[3],
stringGT[65];
format(string3D, sizeof(string3D), "%d", BleedOutPoints[playerid]);
UpdateDynamic3DTextLabelText(RezzLabel[playerid], C_RED, string3D);
switch(pInfo[playerid][Language])
{
case LANGUAGE_DE: format(stringGT, sizeof(stringGT), "~r~%d~w~~n~Druecke ~r~~k~~VEHICLE_ENTER_EXIT~~w~ um zu respawnen!", BleedOutPoints[playerid]);
case LANGUAGE_EN: format(stringGT, sizeof(stringGT), "~r~%d~w~~n~Press ~r~~k~~VEHICLE_ENTER_EXIT~~w~ to respawn!", BleedOutPoints[playerid]);
}
GameTextForPlayer(playerid, stringGT, 1000, 5);
}
if(BleedOutPoints[playerid] < 0)
{
new stringGT[14];
switch(pInfo[playerid][Language])
{
case LANGUAGE_DE: format(stringGT, sizeof(stringGT), "Verblutet");
case LANGUAGE_EN: format(stringGT, sizeof(stringGT), "Bled to death");
}
GameTextForPlayer(playerid, stringGT, 3000, 5);
KillTimer(BleedOutTimer[playerid]);
DestroyDynamic3DTextLabel(RezzLabel[playerid]);
BleedOutPoints[playerid] = 30;
cmd_respawn(playerid, "");
}
if(BleedOutPoints[playerid] >= 100)
{
SetPlayerPos(playerid, pDeathLoc[playerid][0], pDeathLoc[playerid][1], pDeathLoc[playerid][2]);
SetPlayerFacingAngle(playerid, pDeathLoc[playerid][3]);
KillTimer(BleedOutTimer[playerid]);
DestroyDynamic3DTextLabel(RezzLabel[playerid]);
BleedOutPoints[playerid] = 30;
}
return 1;
}