Wie erstellt man so eine Lebens / Namens - 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
    • Offizieller Beitrag
  • Wie kann ich jetzt z.B.
    name bei dem ersten %s auslesen lassen? bei einem 3dlabel?
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    new Text3D:label = Create3DTextLabel("%s (%d)\n%d", 0x008080FF, 30.0, 40.0, 50.0, 40.0, 0);
    Attach3DTextLabelToPlayer(label, playerid, 0.0, 0.0, 0.7);

  • Beitrag von Manniac ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Habe das ja jetzt so


    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    new str[128];
    format(str, sizeof(str), "%s (%d)\n%d", name, playerid, 1); //Die 1 ersetzen mit der Variable die du da haben willst.
    new Text3D:label = Create3DTextLabel(str, 0xFFFFFFFF, 30.0, 40.0, 50.0, 40.0, 0);
    Attach3DTextLabelToPlayer(label, playerid, 0.0, 0.0, 0.2);


    Jetzt ist die Frage wie kann ich das aktuelle leben anzeigen lassen :o

  • new name[MAX_PLAYER_NAME], Float:pHP;
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerHealth(playerid,pHP);
    new str[128];
    format(str, sizeof(str), "%s (%d)\n%0.2f", name, playerid, pHP); //Die 1 ersetzen mit der Variable die du da haben willst.
    new Text3D:label = Create3DTextLabel(str, 0xFFFFFFFF, 30.0, 40.0, 50.0, 40.0, 0);
    Attach3DTextLabelToPlayer(label, playerid, 0.0, 0.0, 0.2);


    Habe das jetzt so
    aber InGame steht 0.00 hp

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen

  • OnPlayerConnect ist das alles


    mir wird geprintet:
    [16:23:24] pHP: 0.000000


    vil weil
    Update3DTextLabelText(mylabel, 0xFFFFFFFF, "New text.");
    sowas eingefügt werden muss für pHP da es ja ein 3dlabel ist aber wie mache ich das dann .. :(

  • Ok, das passt soweit schon, nur musst du das aktualisieren. (in OnPlayerConnect hat der Spieler noch keine HP).
    Entweder du updatest es in einem Sekundentimer,
    oder du updatest beim Login und bei OnPlayerTakeDamage (würde ich empfehlen)

  • sowas eingefügt werden muss für pHP da es ja ein 3dlabel ist aber wie mache ich das dann .. :(


    Du machst einen Timer (OnPlayerTakeDamage ist schlecht, da es dann 0 ist, bis du einen Schaden bekommst) von einer Sekunde bei OnGameModeInit:
    SetTimer("updateTimer", 1000, 1);


    Das Label erstellst du als Array unter den Includes:
    new Text3D:label[MAX_PLAYERS];


    Und das schreibst du ganz unten in den Gamemode.
    forward updateTimer();
    public updateTimer()
    {
    new str[128];
    new name[MAX_PLAYER_NAME], Float:pHP;
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
    GetPlayerName(i, name, sizeof(name));
    GetPlayerHealth(i,pHP);
    format(str, sizeof(str), "%s (%d)\n%0.2f", name, i, pHP);
    Update3DTextLabelText(label[i],0xFFFFFFFF,str);
    }
    return 1;
    }


    Außerdem musst du "label" zu "label[playerid]" bei OnPlayerConnect ändern, und das Label auch bei OnPlayerDisconnect wieder löschen.

  • Hab das jetzt alles eingefügt.


    Wenn ich das einfüge,


    public OnPlayerDisconnect(playerid)
    {
    DeletePlayer3DTextLabel(playerid, label);
    }


    Kriege ich einen error


    Und was genau muss ich hier machen :o


    new name[MAX_PLAYER_NAME], Float:pHP;
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerHealth(playerid,pHP);
    new str[128];
    format(str, sizeof(str), "%s (%d)\n%0.2f", name, playerid, pHP); //Die 1 ersetzen mit der Variable die du da haben willst.
    printf("pHP: %f", pHP);
    new Text3D:label = Create3DTextLabel(str, 0xFFFFFFFF, 30.0, 40.0, 50.0, 40.0, 0); //WARNING ZEILE
    Attach3DTextLabelToPlayer(label, playerid, 0.0, 0.0, 0.2);
    wenn ich hinter label[playerid] mache kriege ich ebenso auch einen error


    und habe einen warning C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(59) : warning 219: local variable "label" shadows a variable at a preceding level

  • public OnPlayerDisconnect(playerid)
    {
    DeletePlayer3DTextLabel(playerid, label[playerid]);
    return 1;
    }


    new name[MAX_PLAYER_NAME], Float:pHP;
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerHealth(playerid,pHP);
    new str[128];
    format(str, sizeof(str), "%s (%d)\n%0.2f", name, playerid, pHP); //Die 1 ersetzen mit der Variable die du da haben willst.
    printf("pHP: %f", pHP);
    label[playerid] = Create3DTextLabel(str, 0xFFFFFFFF, 30.0, 40.0, 50.0, 40.0, 0); //WARNING ZEILE
    Attach3DTextLabelToPlayer(label[playerid], playerid, 0.0, 0.0, 0.2);


  • Klappt danke an alle für die Hilfe.


    - > Habe es nun auch für rüstung gemacht^^


    screen:

  • habe das gleiche problem


    wie macht man das nochmal mit else


    forward updateTimer();
    public updateTimer()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    new str[128];
    new name[MAX_PLAYER_NAME], Float:pHP, Float:armour;
    if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
    {
    GetPlayerName(i, name, sizeof(name));
    GetPlayerHealth(i,pHP);
    GetPlayerArmour(i,armour);
    format(str, sizeof(str), "%s (%d)\n%0.2f HP | %0.2f R", name, i, pHP, armour);
    Update3DTextLabelText(label[i],0xFFFFFFFF,str);
    }
    else
    556 {
    if(IsPlayerOnDesktop(i))
    GetPlayerName(i, name, sizeof(name));
    GetPlayerHealth(i,pHP);
    GetPlayerArmour(i,armour);
    format(str, sizeof(str), "AFK/Desktop/%s (%d)\n%0.2f HP | %0.2f R", name, i, pHP, armour);
    Update3DTextLabelText(label[i],0xFFFFFFFF,str);
    }
    return 1;
    }



    errorcode



    gamemodes\grandlarc.pwn(95) : warning 213: tag mismatch
    gamemodes\grandlarc.pwn(104) : warning 204: symbol is assigned a value that is never used: "randSpawn"
    gamemodes\grandlarc.pwn(556) : error 029: invalid expression, assumed zero
    gamemodes\grandlarc.pwn(567) : error 030: compound statement not closed at the end of file (started at line 544)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen