Problem mit Kills/Deaths Textdraw

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,


    Kills/Deaths Textdraw klappt und updated auch immer. Zurzeit isses so, dass wenn ich z.B. ein Kill mache das ALLE ein Kill dazubekommen.
    Ich möchte aber, dass jeder seine eigenen Kills/Deaths hat. Das heißt, wenn ich einen kille bekomm ich einen Kill+ und der Tode - .
    Auch hab ich ein Problem, das die Kills/Deaths-Anzeige ständig blinkt. Weiß einer warum?


    Ich bedanke mich für jede hilfreiche Antwort!


    Und ja ich hab die SuFu benutzt und es hat nicht geholfen mein Problem zu lösen.

  • Du musst mit Arrays arbieten z.B kannst du nicht für alle Spieler eine Varibale Kills; erstellen wenn musst du ein Array nutzen:
    kills[MAX_PLAYERS];
    in diesem Array kann dann in der ersten Dimension (MAX_PLAYERS) die Anzahl an kills gespeichert werden bsp.:
    kills[3] = 2;
    Wenn man es so machen würde, würde dem Spieler mit der playerid ID 3 2 Kills zugewiesen.

  • Erstmal der Code:


    #include <a_samp>


    forward updateanzeige();


    new dkills[MAX_PLAYERS],
    ddeaths[MAX_PLAYERS],
    Text:kills[MAX_PLAYERS],
    Text:deaths[MAX_PLAYERS];


    public OnGameModeInit()
    {
    SetTimer("updateanzeige",1000,1);
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    kills[playerid] = TextDrawCreate(498.500000,100.000000,"Kills: ");
    TextDrawColor(kills[playerid],0x0041FFFF );

    deaths[playerid] = TextDrawCreate(575.00000,100.000000,"Tode: ");
    TextDrawColor(deaths[playerid],0x0041FFFF );


    return 1;
    }


    public updateanzeige()
    {
    for(new playerid=0; playerid<GetMaxPlayers(); playerid++)
    {
    if(IsPlayerConnected(playerid))
    {
    new s[16];
    format(s,sizeof(s),"Kills: %d",dkills;
    TextDrawSetString(kills[playerid],s);
    TextDrawShowForPlayer(playerid,kills[playerid]);
    format(s,sizeof(s),"Tode: %d",ddeaths);
    TextDrawSetString(deaths[playerid],s);
    TextDrawShowForPlayer(playerid,deaths[playerid]);
    }
    }
    return 1;
    }


    public OnPlayerDeath(playerid, killerid, reason)
    {
    dkills[killerid]++;
    ddeaths[playerid]++;
    return 1;
    }


    Das Problem mit speicherung und für alle User unterschiedlich hab ich jetzt auch gelöst.
    Ich möchte noch das Problem beheben, dass die Anzeige nicht mehr blinken soll.
    Manchmal blinkt Kills und manchmal Deaths. Liegt es an dem Timer?

  • Dann wird dieser Textdraw nicht mehr angezeigt.
    Ich will nochmal anmerken, dass ich noch mehr Textdraws habe und vllt. blocken sie sich gegenseiti. k.A.


    Dann wird halt keinem ein TextDraw angezeigt, auch nicht schlecht...
    formate die Strings auch mit den Variablen + dem Array
    also



    PAWN Quelltext
    1
    format(s,sizeof(s),"Kills: %d",dkills[playerid]);



    und
    PAWN Quelltext
    1
    format(s,sizeof(s),"Tode: %d",ddeaths[playerid]);


    Was bringt das jetzt? Es wird doch jetzt schon gespeichert und geupdated.
    Nur es blinkt, und das will ich wegmachen. Wird vllt. ein Video benötigt?