Textdraw - Subtraktion

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

    Moin,
    ich hab in meinem Reportsystem ein Textdraw erstellt, dass die offenen Reports zeigen soll.


    new Report = 0;


    So habe ich die Startzahl als new definiert beim Gamemodestart. Wenn man einen Report absendet, funktioniert auch alles wunderbar, nur sobald ein Report geöffnet oder gelöscht wird, setzt sich die Report - Variable auf -1. Wie behebe ich das?
    Gruß

  • Code beim Absenden eines Reports?

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

    • Offizieller Beitrag

    for(new i=0;i<MAX_PLAYERS;i++)
    {
    format(str,144,"[Report] %s hat einen Report eingesendet: %s",PlayerName[playerid],inputtext);
    SCM(i,COLOR_YELLOW,str);
    SCM(i,COLOR_YELLOW,"[Report] Mit /oreport kannst du den Report öffnen");
    TextDrawHideForPlayer(i,Textdraw1);
    format(str,144,"offene Reports: %i",Report++);
    TextDrawSetString(Textdraw1,str);
    TextDrawShowForPlayer(i,Textdraw1);
    }
    }


    Der BBCode hat die Schleife oben gefressen, tut mir Leid :/

    #edit: Code eingerückt

    #edtit²: Editiert, Code hinzugefügt

    • Offizieller Beitrag

    COMMAND:oreport(playerid,params[])
    {
    new pID, string[128];
    if(GetPVarInt(playerid,"Admin") == 0) return SendClientMessage(playerid,COLOR_RED,"Du besitzt nicht die nötigen Rechte um diesen Befehl ausführen zu können!");
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,COLOR_RED,"Benutze /oreport [id]!");
    format(string,sizeof(string),"%s bearbeitet nun deinen Report.",PlayerName[playerid]);
    SendClientMessage(pID,COLOR_YELLOW,string);
    SendClientMessage(pID,COLOR_LILA,"Um eine Nachricht oder eine Antwort an den Supporter zu senden nutze bitte /rc.");
    SendClientMessage(playerid,COLOR_WHITE,"Du hast den Report geöffnet und beginnst den Live Chat, nutze /ra!");
    SetPVarInt(playerid,"LiveChat",1);
    SetPVarInt(pID,"LiveChat",1);
    SetPVarInt(pID,"Report",0);
    SetPVarInt(playerid,"RPartner",pID);
    SetPVarInt(pID,"RPartner",playerid);
    for(new i=0;i 0)
    {
    format(str,144,"[Admin] %s hat den Report von %s geöffnet",PlayerName[playerid],PlayerName[pID]);
    SCM(i,COLOR_YELLOW,str);
    }
    }
    SetPlayerChatBubble(playerid,"Im Support",COLOR_LILA,50.0,999999999999999);
    SetPlayerChatBubble(pID,"Im Support",COLOR_LILA,50.0,999999999999999);
    TextDrawShowForPlayer(playerid,Textdraw0);
    TextDrawShowForPlayer(pID,Textdraw0);
    for(new i=0;i 0)
    {
    TextDrawHideForPlayer(i,Textdraw1);
    format(str,144,"offene Reports: %i",Report =- 1);
    TextDrawSetString(Textdraw1,str);
    TextDrawShowForPlayer(i,Textdraw1);
    }
    }
    return 1;
    }

  • Also.
    Da ich gerade eh die Konsole offen hatte,
    habe ich es mit Debug versucht.
    ++ bringt beim formatieren nichts, zumindest war der wert weiterhin 0.


    Habe ich es aber mit dem Operator += erhöht.
    So:

    new Report = 0;
    printf("Offene Reports: %d",Report += 1);

    Hat er mir den Wert 1 angegeben.


    #e:
    Noch praktischer wäre es so:
    Denn die Variable wird nur als 1 angezeigt hat aber einen anderen Wert.
    Report += 1
    und dann den Textdraw anzeigen nur mit "Report".

  • format(str,144,"offene Reports: %i",Report =- 1);
    Zu
    format(str,144,"offene Reports: %i",Report -= 1);


    Du hattest sozusagen folgendes geschrieben: Report = -1


    //EDIT:
    Würde so aber auch nicht gespeichert.
    Machs so:

    Report -= 1;
    format(str,144,"offene Reports: %i",Report );




    MfG Firer

  • Oder wie oben: ++ bzw. hier --

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.