Textdraw Problem

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,
    Ich habe folgendes Problem.
    Ich habe einen Server geschrieben der den CMD
    /DM % /Ende hat. Wenn man auf dem Server Connectet ist unten
    eine Leiste in der Steht Wieviele Leute gerade in DM Sind (DM:0 DM2:0 /dm3: 0 /dm4: 0)
    Wenn man ins /DM Geht wird die Leiste die anzeigt wieviele in DM sind gelöscht und durch eine
    Anzeige in der Steht wieviele Kills und Tode man hat ersetzt. Soweit funktioniert es auch.
    Wenn man das DM Dann wieder verlässt soll wieder die Anzeige kommen die Anzeigt wieviele Leute im DM sind.
    Hier ein /DM Befehl.



    if(strcmp(cmdtext, "/DM2", true) == 0)
    {
    if(InDMzone[playerid])
    return SendClientMessage(playerid, Rot, " Du bist in einem DM! Benutze /Ende oder /Exit um es zu verlassen! ");
    else
    {
    Textdraw0 = TextDrawCreate(3.000000,344.000000,">>Dm Zone<<");
    TextDrawAlignment(Textdraw0,0);
    TextDrawBackgroundColor(Textdraw0,0x0000ff33);
    TextDrawFont(Textdraw0,3);
    TextDrawColor(Textdraw0,0xffffffff);
    TextDrawSetProportional(Textdraw0,1);
    TextDrawShowForPlayer(playerid, Text:Textdraw0);
    InDMzone[playerid] = 1;
    InDMzone[playerid] = 2;
    DMzone2(playerid);
    SendClientMessage(playerid, Gelb, "Du bist zum /Dm2 gegangen.");
    new string[128];
    format(string, 256, "%s hat das /DM2 betreten. ", Player(playerid));
    SendClientMessageToAll(Gelb,string);
    DM[playerid] = 2;
    DM2Player ++;
    DMLeisteUpdate();
    KillsLeisteUpdate(playerid);
    }
    return 1;
    }



    Ein /Ende Befehl


    if (strcmp("/Ende", cmdtext, true) == 0)
    {
    if(!InDMzone[playerid])
    return SendClientMessage(playerid, Rot, " Das geht nur im DM!");
    if(!InDMzone[playerid])
    return SendClientMessage(playerid, Rot, " Das geht nur im DM!");
    TextDrawDestroy(KillsLeiste1[playerid]);
    SetPlayerInterior(playerid,0);
    SetPlayerPos(playerid, -1359.9694,-87.0047,14.1484);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerHealth(playerid, 0);
    InStuntzone[playerid] = 0;
    InDMzone[playerid] = 0;
    DMLeisteUpdate();
    TextDrawDestroy(Textdraw0);
    TextDrawShowForPlayer(playerid,DMLeiste);
    GivePlayerWeapon(playerid, 0, 0);
    return 1;
    }




    Meine Public´s


    public DMLeisteUpdate()
    {
    new count[4];
    for(new playerid=0; playerid<MAX_PLAYERS; playerid++)
    {
    if(InDMzone[playerid] == 1) count[0]=count[0]+1;
    else if(InDMzone[playerid] == 2) count[1]=count[1]+1;
    else if(InDMzone[playerid] == 3) count[2]=count[2]+1;
    else if(InDMzone[playerid] == 4) count[3]=count[3]+1;
    }
    new DMLeisteUpdates[256];
    format(DMLeisteUpdates, sizeof(DMLeisteUpdates), "Homepage: www.Flashs-Server.tk /dm: %d /dm2: %d /dm3: %d /dm4: %d", count[0],count[1],count[2],count[3]);
    TextDrawSetString(DMLeiste, DMLeisteUpdates);
    for(new playerid=0; playerid<MAX_PLAYERS; playerid++)TextDrawShowForPlayer(playerid,DMLeiste);
    return 1;
    }


    public KillsLeisteUpdate(playerid)
    {
    new KillLeisteUpdates[128];
    format(KillLeisteUpdates, sizeof(KillLeisteUpdates), "Homepage: www.Flashs-Server.tk Kills: %d Tode: %d", Kills[playerid],Deads[playerid]);
    TextDrawSetString(KillsLeiste1[playerid], KillLeisteUpdates);

    if(InDMzone[playerid])TextDrawShowForPlayer(playerid,KillsLeiste1[playerid]);
    else TextDrawHideForPlayer(playerid,KillsLeiste1[playerid]);


    return 1;
    }
    Bedanke mich jetzt schonmal für Hilfe.




    lgPascal

    Einmal editiert, zuletzt von Pascal1996 ()

  • Versuch es mal mit einem Timer der jede 2-3 Minuten die Anzeige resettet.


    //Edit 1.


    Wenn du den Code richtig einrücken willst, mache es als Quellcode und dann Pwn ^^

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward


  • 10000x Dank ^^
    Ich habe es die ganze zeit einfach in den /Ende Befehl geschrieben.
    Also TextDrawDestroy und TextDrawHideForPlayer aber an nem TImer habe ich garnicht gedacht. :D
    DANKE!!!
    lg
    Pascal

  • Kein ding :) wofür gibt es Helfer ;)




    P.S.@Team...Ihm wurde geholfen, kann //Closed werden.

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward