[Problem] mit Digitaler HP-Anzeige

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo Breadfische,


    Ich habe folgendes Problem:


    [/URL]


    Die Digitale HP - Anzeige wird falsch wieder gegeben.


    Script / Codes:


    //new´s
    new PlayerText:hpanzeige[MAX_PLAYERS];


    //forward
    forward HpTimer();


    //OnGameModeInit
    {
    SetTimer("HpTimer",1000,true);
    }
    //OnPlayerConnect
    {
    hpanzeige[playerid] = CreatePlayerTextDraw(playerid,566.000000, 65.000000, "100");
    PlayerTextDrawBackgroundColor(playerid,hpanzeige[playerid], 255);
    PlayerTextDrawFont(playerid,hpanzeige[playerid], 1);
    PlayerTextDrawLetterSize(playerid,hpanzeige[playerid], 0.280000, 1.000000);
    PlayerTextDrawColor(playerid,hpanzeige[playerid], -1);
    PlayerTextDrawSetOutline(playerid,hpanzeige[playerid], 0);
    PlayerTextDrawSetProportional(playerid,hpanzeige[playerid], 1);
    PlayerTextDrawSetShadow(playerid,hpanzeige[playerid], 1);
    }
    //OnPlayerSpawn
    {
    PlayerTextDrawShow(playerid, hpanzeige[playerid]);
    }


    Ich hoffe es kann mir jemand helfen :D MFG German_ScripterHD


    Mit freundlichen Grüßen
    German_ScripterHD

  • sry.... ganz vergessen :D


    public HpTimer()
    {
    new hpstring[4];
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(GetPlayerState(i)==PLAYER_STATE_DRIVER)
    {
    new Float:hp;
    GetPlayerHealth(i, hp);
    format(hpstring,sizeof(hpstring),"%i",hp);
    PlayerTextDrawSetString(i,hpanzeige[i],hpstring);
    PlayerTextDrawShow(i, hpanzeige[i]);
    }
    if(GetPlayerState(i)==PLAYER_STATE_ONFOOT)
    {
    new Float:hp;
    GetPlayerHealth(i, hp);
    format(hpstring,sizeof(hpstring),"%d",hp);
    PlayerTextDrawSetString(i,hpanzeige[i],hpstring);
    PlayerTextDrawShow(i, hpanzeige[i]);
    }
    }
    return 1;
    }


    Mit freundlichen Grüßen
    German_ScripterHD

  • So sollte es passen:
    public HpTimer()
    {
    new hpstring[4], Float:hp;;
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(GetPlayerState(i)==PLAYER_STATE_DRIVER || GetPlayerState(i)==PLAYER_STATE_ONFOOT)
    {
    GetPlayerHealth(i, hp);
    format(hpstring,sizeof(hpstring),"%i",floatround(hp));
    PlayerTextDrawSetString(i,hpanzeige[i],hpstring);
    PlayerTextDrawShow(i, hpanzeige[i]);
    }
    }
    return 1;
    }