TextDraw Hilfe Drigend...

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
  • Wie bringe ich mein Textdraw was sich zurzeit druch Leben ergibt so weniger Leben = weniger Länge des striches..


    Doch wie mache ich es nun andersrum = So mehr spielzeit = So länger der Strich?


    z.B


    16:00Uhr = Leerer Strich (TextDraw)
    16.10Uhr = 6% Strich
    16.30Uhr = 50% Strich
    16:45Uhr = 75% Strich
    17:00Uhr = 100% Strich


    Dann soll der Strich wieder auf 0 = 0% = Leerer Strich gehen und wieder von vorne 24h/7days/12Months/1Year/mylife...


    Mein TextDraw System:


    #include <a_samp>


    new Text:HealthBar[MAX_PLAYERS];


    public OnFilterScriptInit()
    {
    for(new i; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    OnPlayerConnect(i);
    }
    }
    return 1;
    }


    public OnFilterScriptExit()
    {
    for(new i; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    TextDrawDestroy(HealthBar[i]);
    }
    }
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    HealthBar[playerid] = TextDrawCreate(549.000000,52.000000,"..........");
    TextDrawAlignment(HealthBar[playerid],1);
    TextDrawBackgroundColor(HealthBar[playerid],0x00ff00ff);
    TextDrawFont(HealthBar[playerid],3);
    TextDrawLetterSize(HealthBar[playerid],0.569999,2.549999);
    TextDrawColor(HealthBar[playerid],0x00ff0033);
    TextDrawSetOutline(HealthBar[playerid],1);
    TextDrawSetProportional(HealthBar[playerid],1);
    TextDrawSetShadow(HealthBar[playerid],1);
    return 1;
    }


    public OnPlayerDisconnect(playerid)
    {
    TextDrawDestroy(HealthBar[playerid]);
    return 1;
    }


    public OnPlayerDeath(playerid)
    {
    TextDrawHideForPlayer(playerid,HealthBar[playerid]);
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    TextDrawSetString(HealthBar[playerid],"..........");
    TextDrawShowForPlayer(playerid,HealthBar[playerid]);
    return 1;
    }


    public OnPlayerUpdate(playerid)
    {
    new Float:Health;
    GetPlayerHealth(playerid,Health);
    if(Health >= 90)
    {
    TextDrawSetString(HealthBar[playerid],"..........");
    return 1;
    }
    if(Health >= 80)
    {
    TextDrawSetString(HealthBar[playerid],".........");
    return 1;
    }
    if(Health >= 70)
    {
    TextDrawSetString(HealthBar[playerid],"........");
    return 1;
    }
    if(Health >= 60)
    {
    TextDrawSetString(HealthBar[playerid],".......");
    return 1;
    }
    if(Health >= 50)
    {
    TextDrawSetString(HealthBar[playerid],"......");
    return 1;
    }
    if(Health >= 40)
    {
    TextDrawSetString(HealthBar[playerid],".....");
    return 1;
    }
    if(Health >= 30)
    {
    TextDrawSetString(HealthBar[playerid],"....");
    return 1;
    }
    if(Health >= 20)
    {
    TextDrawSetString(HealthBar[playerid],"...");
    return 1;
    }
    if(Health >= 10)
    {
    TextDrawSetString(HealthBar[playerid],"..");
    return 1;
    }
    if(Health > 0)
    {
    TextDrawSetString(HealthBar[playerid],".");
    return 1;
    }
    return 1;
    }


    Das soll aber jetzt anders halt pro 6Minuten auf der Uhr (16.06Uhr) = 10% vom Strich
    usw.???

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • Ahhh sehe jetzt erst ihr braucht sicher noch das Uhrensystem um das einzubringen^^


    Hier:
    public OnFilterScriptInit()
    {
    //Uhrzeit und Datum
    TimeTimer = SetTimer("TimeUpdate",1000,1);
    UhrzeitStundeMinute = TextDrawCreate(546.000000,22.000000, "--:--");
    TextDrawLetterSize(UhrzeitStundeMinute, 0.699999,1.800000);
    TextDrawFont(UhrzeitStundeMinute, 3);
    TextDrawSetShadow(UhrzeitStundeMinute, 1);
    TextDrawSetOutline(UhrzeitStundeMinute,1);
    DatumTagMonat = TextDrawCreate(501.000000,6.000000, "--.--.----");
    TextDrawLetterSize(DatumTagMonat, 0.699999,1.700000);
    TextDrawFont(DatumTagMonat, 3);
    TextDrawSetShadow(DatumTagMonat, 1);
    TextDrawSetOutline(DatumTagMonat,1);
    Return 1;
    }


    public OnFilterScriptExit()
    {
    KillTimer(TimeTimer);
    TextDrawDestroy(UhrzeitStundeMinute);
    TextDrawDestroy(DatumTagMonat);
    return 1;
    }


    public TimeUpdate()
    {
    new Hour, Min, Sec, Day, Month, Year;
    new TimeString[256], TimeString3[256];
    gettime(Hour, Min, Sec);
    getdate(Year, Month, Day);
    if(Min <= 9)
    {
    format(TimeString,25,"%d:0%d",Hour, Min);
    }else{
    format(TimeString,25,"%d:%d",Hour, Min);
    }
    if(Day <= 9)
    {
    format(TimeString3,25,"0%d.%d.%d", Day, Month, Year);
    }else{
    format(TimeString3,25,"%d.%d.%d", Day, Month, Year);
    }
    TextDrawSetString(UhrzeitStundeMinute,TimeString);
    TextDrawShowForAll(UhrzeitStundeMinute);
    TextDrawSetString(DatumTagMonat,TimeString3);
    TextDrawShowForAll(DatumTagMonat);
    return 1;
    }

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • //Wow 3ter Post und keine Antwort im Thema =S


    Müsste das nicht irgendwie so gehen?


    public OnPlayerUpdate(playerid)
    {
    new Float:Health;
    GetPlayerHealth(playerid,Time);
    if(Time >= 90)
    {
    TextDrawSetString(HealthBar[playerid],"..........");
    return 1;
    }
    if(Time >= 80)
    {
    TextDrawSetString(HealthBar[playerid],".........");
    return 1;
    }
    if(Time >= 70)
    {
    TextDrawSetString(HealthBar[playerid],"........");
    return 1;
    }
    if(Time >= 60)
    {
    TextDrawSetString(HealthBar[playerid],".......");
    return 1;
    }
    if(Time >= 50)
    {
    TextDrawSetString(HealthBar[playerid],"......");
    return 1;
    }
    if(Time >= 40)
    {
    TextDrawSetString(HealthBar[playerid],".....");
    return 1;
    }
    if(Time >= 30)
    {
    TextDrawSetString(HealthBar[playerid],"....");
    return 1;
    }
    if(Time >= 20)
    {
    TextDrawSetString(HealthBar[playerid],"...");
    return 1;
    }
    if(Time >= 10)
    {
    TextDrawSetString(HealthBar[playerid],"..");
    return 1;
    }
    if(Time > 0)
    {
    TextDrawSetString(HealthBar[playerid],".");
    return 1;
    }
    return 1;
    }

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • Die return 1; müssen da weg, ansonsten würde ich dafür einen eigenen Callback verwenden, nicht unter PlayerUpdate, das frisst sonst zuviel Speicher ; )

  • Höö kannst du mir ein Funzenden Beispiel als FS machen? Da ich das nicht hinbekomme verstehe so gut wie 2% nichtma davon^^

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25