Text3D verschwindet nach doppel eingabe

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
  • Ich habe mal versucht etwas nach zu bauen und copy & paste oder nachschauen aufjeden fall habe ichs so gemacht:


    Code
    new Text3D:Warning[MAX_VEHICLES];


    Code
    new Warnschildmax = 0;


    if(strcmp(cmd, "/warnschild", true) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new x_nr[256];
    x_nr = strtok(cmdtext, idx);
    new carid = GetPlayerVehicleID(playerid);
    if(!strlen(x_nr))
    {
    SendClientMessage(playerid, COLOR_ORANGE, "Benutze: /Warnschild [An oder Aus]");
    return 1;
    }
    if(strcmp(x_nr,"an",true) == 0)
    {
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
    {
    if(IsALSPDCar(carid))
    {
    if(Warnschildmax != 20)
    {
    Delete3DTextLabel(Warning[carid]);
    Warning[carid] = Create3DTextLabel("[Polizei] \nBitte Folgen!", COLOR_YELLOW,0.0,0.0,0.0,15.0,0,1);
    Attach3DTextLabelToVehicle(Warning[carid], GetPlayerVehicleID(playerid), 0.0, 0.0, 0.5);
    Warnschildmax += 1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Es stehen maximal 20 stück zu verfügung!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Das ist nicht das Dienstfahrzeug des Lspd's!");
    return 1;
    }
    }
    if(PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2)
    {
    if(IsASFPDCar(carid))
    {
    if(Warnschildmax != 20)
    {
    Delete3DTextLabel(Warning[carid]);
    Warning[carid] = Create3DTextLabel("[Polizei] \nBitte Folgen!", COLOR_YELLOW,0.0,0.0,0.0,15.0,0,1);
    Attach3DTextLabelToVehicle(Warning[carid], GetPlayerVehicleID(playerid), 0.0, 0.0, 0.5);
    Warnschildmax += 1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Es stehen maximal 20 stück zu verfügung!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Das ist nicht das Dienstfahrzeug des Sfpd's!");
    return 1;
    }
    }
    if(PlayerInfo[playerid][pMember] == 21 || PlayerInfo[playerid][pLeader] == 21)
    {
    if(IsAFbiCar(carid))
    {
    if(Warnschildmax != 20)
    {
    Delete3DTextLabel(Warning[carid]);
    Warning[carid] = Create3DTextLabel("[FBI] \nBitte Folgen!", COLOR_YELLOW,0.0,0.0,0.0,15.0,0,1);
    Attach3DTextLabelToVehicle(Warning[carid], GetPlayerVehicleID(playerid), 0.0, 0.0, 0.5);
    Warnschildmax += 1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Es stehen maximal 20 stück zu verfügung!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Das ist nicht das Dienstfahrzeug des Fbi's!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist kein Beamter!");
    }
    return 1;
    }
    if(strcmp(x_nr,"aus",true) == 0)
    {
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
    {
    if(IsALSPDCar(carid))
    {
    Delete3DTextLabel(Warning[carid]);
    Warnschildmax -= 1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Das ist nicht das Dienstfahrzeug des Lspd's!");
    return 1;
    }
    }
    if(PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2)
    {
    if(IsASFPDCar(carid))
    {
    Delete3DTextLabel(Warning[carid]);
    Warnschildmax -= 1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Das ist nicht das Dienstfahrzeug des Sfpd's!");
    return 1;
    }
    }
    if(PlayerInfo[playerid][pMember] == 21 || PlayerInfo[playerid][pLeader] == 21)
    {
    if(IsAFbiCar(carid))
    {
    Delete3DTextLabel(Warning[carid]);
    Warnschildmax -= 1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Das ist nicht das Dienstfahrzeug des Fbi's!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist kein Beamter!");
    }
    }
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist nicht im Dienstfahrzeug!");
    }
    return 1;
    }


    doch mein problem steige ich ein mache es geht alles
    mache ich es danach in einem anderen car wenn dieses schon an ist
    verschwindet es ersten wieder wieso? kann mir jemand helfen?


    Frage:


    Ist es ressourcend fressen wenn ich diesen 3D text immer wieder lösche?

  • Also wenn ich als Polizist oder Fbi agent /warnschild an mache in einem copcar oder fbicar
    dann erscheint ein 3D text mit der aufschrift [Polizei] Bitte Folgen und bei Fbi [FBI] Bitte Folgen doch
    dann wenn ich es in einem car gemacht habe erscheint der text gehe ich dann in ein anderes dienstfahrzeug
    und mache nochmals /warnschild an geht das vom 1 auto weg und am 2 auto erscheint es und es soll bleiben also
    an car 1 und 2 doch igendwie funkioniert es nicht ich kenne leider diesen grund nicht.


    (E) Text neu geschrieben besser erklärt.

    Einmal editiert, zuletzt von Quini ()

  • Ohne mir nun den gesamten Code anzusehen, vermute ich mal, dass es an dieser Zeile liegt:
    Warnschildmax += 1;
    versuche es mit
    Warnschildmax ++;

    Achja:
    Da ihr nur eine Variable für alle Fraktionen habt, steht nicht jeder Fraktion 20 sondern allen zusammen 20 Zu verfügung ;)
    Wenns weiterhin nicht geht schau ich mir den Code gern nochmal in Ruhe an

  • (Edit)


    ja ich will nur das sie 20 stück verwenden das es nicht soviele ressourcend frisst
    den ich verwende schon 200 stück für mein haussystem und das sollte reichen ja
    es sollen also 20 stück für alle vorhanden sein. und naja wie gesagt es funzt immer
    noch nicht


    eine frage ist das schlimm wenn ichs immer delete beim auschalten oder gehts nicht anders?

  • Was mir jetzt erst auffällt:


    Du Benutzt
    new Text3D:Warning[MAX_VEHICLES];

    Das ist die Deklarierung für einen Textdraw.


    Für 3DLabels reicht eigentlich eine simple Id(Integer):
    new Warning[MAX_VEHICLES];


    Ich bin mir nicht sicher, ob dir das hilft, könnte aber sein :)

  • Da liegst du leider falsch das Text3D ist da schon richtig unter gebracht
    new Text:Name; für Textdraws
    new Text3D:Name; für 3D Texte


    doch leider gehts net mensch wehr sehr nett wenn mir noch jemand helfen könnte ich finde den fehler einfach nicht.
    bzw wieso er das andre löscht :whistling:


    (E) Text geändert
    (E) Edit zugefügt


    (E) Keiner mehr ne idee wehre mir sehr wichtig..

    2 Mal editiert, zuletzt von Quini ()

  • Das problem ist wenn er dann nochmal in diesem car es eingibt
    erstellt er es doch doppelt ^^ und ja es soll dran bleiben an jedem auto wo ich
    Warnschild an eingebe so lange soll es drann bleiben bis gmx oder mann es auschaltet oder
    das maximum erreicht ist

  • versuch es mal anders, wenn du eh nur 20 schilder machen willst benutz ein array von 20 für die schilder und ein array mit maxvehicles um einzutragen welche arrayid an welchem auto ist (id 20 = kein schild)
    nun kannst du auch einfach die 3d texte updaten und neu attachen als es immer neu zu erstellen also 1 mal erstellen. Ansonsten kann ich auch nicht weiter helfen.