Variable in GameText formatieren

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
  • 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;
    }

  • Im 1-sekündigen Timer


    Der GameText wird dir länger als 1ne Sekunde angezeigt, also kannst du das nicht für eine so präzise Aktualisierung verwenden.


    Nutze dafür TextDraws :)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Wie kommt es aber zustande, dass IMMER nur die 1 nicht angezeigt wird? Alle anderen Werte klappen wunderbar!


    Mach halt mal einen print-Debug und schau...ob bei dem Wert 1 das überhaupt aufgerufen wird? :huh:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Gesagt, getan.


    [14:29:12] 29
    [14:29:13] 28
    [14:29:14] 27
    [14:29:15] 26
    [14:29:16] 25
    [14:29:17] 24
    [14:29:18] 23
    [14:29:19] 22
    [14:29:20] 21
    [14:29:21] 20
    [14:29:22] 19
    [14:29:23] 18
    [14:29:24] 17
    [14:29:25] 16
    [14:29:26] 15
    [14:29:27] 14
    [14:29:28] 13
    [14:29:29] 12
    [14:29:30] 11
    [14:29:31] 10
    [14:29:32] 9
    [14:29:33] 8
    [14:29:34] 7
    [14:29:35] 6
    [14:29:36] 5
    [14:29:37] 4
    [14:29:38] 3
    [14:29:39] 2
    [14:29:40] 1
    [14:29:41] 0


    Aufgerufen wird es. Dennoch wird es nicht angezeigt. -.-

  • Aufgerufen wird es. Dennoch wird es nicht angezeigt. -.-


    Wo hast du den print eingefügt?


    Ich hoffe doch hier:


    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);
    printf(...); //<hier!

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ich habe printf am Ende der Timerfunktion eingefügt, das dürfte eigentlich dasselbe sein.
    Ich hab es jetzt noch einmal in der if-Abfrage gemacht.


    [14:36:18] 29
    [14:36:19] 28
    [14:36:20] 27
    [14:36:21] 26
    [14:36:22] 25
    [14:36:23] 24
    [14:36:24] 23
    [14:36:25] 22
    [14:36:26] 21
    [14:36:27] 20
    [14:36:28] 19
    [14:36:29] 18
    [14:36:30] 17
    [14:36:31] 16
    [14:36:32] 15
    [14:36:33] 14
    [14:36:34] 13
    [14:36:35] 12
    [14:36:36] 11
    [14:36:37] 10
    [14:36:38] 9
    [14:36:39] 8
    [14:36:40] 7
    [14:36:41] 6
    [14:36:42] 5
    [14:36:43] 4
    [14:36:44] 3
    [14:36:45] 2
    [14:36:46] 1
    [14:36:47] 0
    [14:36:48] -1