3DTextLabel mit Timer?

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
  • Hayho... ich habe mir was ausgedacht und es vollbracht....
    Aber wenn ich den befehl nutze läggts bei mir ich wieß auch Warum!
    meine Frage ist es nun diesen befehl
    |
    \/
    if(strcmp(cmd, "/bittefolgen", true) == 0)
    {
    if(IsACop(playerid) && OnDuty[playerid]==1)
    {
    for(new i = 0; i<MAX_VEHICLES; i++)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new veh = GetPlayerVehicleID(playerid);
    Attach3DTextLabelToVehicle(bf[i], veh, 0.0, 0.0, 0.45);
    Update3DTextLabelText(bf[i],COLOR_RED,"Allgemeine Verkehrskontrolle!\nBitte dem Fahrzeug folgen!");
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"Du befindest dich in keinem Fahrzeug!");
    }
    }
    }
    return 1;
    }


    ich glaube der Befehl erklärt sich von selber! :D
    Nur es läggt nun meine Frage


    Frage: Kann ich es machen das ich mit eienn Timer eine Zeit mache z..b ich gebe den befehl ein und dort steht am Auto => Allgemine Vehrkehrs Kontrolle und nach ein paar sekunden Bitte Folgen! Und das wiederholt sich ein paar mal? Wie mache ich sowas? Ohne das es läggt!



    EDIT 1# => Error Behoben => Update3DTextLabel zu Update3dTextLabelTEXT


    LG Tim

  • Nimm doch anstatt Max_Vehicles nur das Vehicle vom Spieler, also die Schleife entfernen
    Zum Timer, ja das Kannst du machen.
    Dazu könntest du 2 Variablen abfragen und ggf. den einen oder den anderen Text setzen

    Back to the roots!

  • Mir wäre beides recht...


    ich suche nach ner Lösung zum entbuggen... denn ich habe das problem.. wenn ich den Befehl eingeben läägggt der Server bei mir da so viele Befehle gleichzeitig eingegeben werden.... Ich möchte eigentlich nur das es aufhört zu laggen mit Timer oder mit MAX VEHICLES

  • Also so sollte der Command gehen ohne den wechsel:


    if(strcmp(cmd, "/bittefolgen", true) == 0)
    {
    if(IsACop(playerid) && OnDuty[playerid] == 1)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new veh = GetPlayerVehicleID(playerid);
    Attach3DTextLabelToVehicle(bf[veh], veh, 0.0, 0.0, 0.45);
    Update3DTextLabelText(bf[veh],COLOR_RED,"Allgemeine Verkehrskontrolle!\nBitte dem Fahrzeug folgen!");
    }
    else SendClientMessage(playerid,COLOR_GRAD2,"Du befindest dich in keinem Fahrzeug!");
    }
    return 1;
    }

    Back to the roots!

  • Ich würde es in etwa so machen:


    new new Folgen[MAX_VEHICLES];
    new Text3D:folgetext;
    forward FolgeTimer;



    if(strcmp(cmd, "/bittefolgen", true) == 0)
    {
    if(IsACop(playerid) && OnDuty[playerid] == 1)
    {
    new veh = GetPlayerVehicleID(playerid);
    if(IsPlayerInAnyVehicle(playerid))
    {
    folgetext = Create3DTextLabel( "Allgemeine Verkehrskontrolle!\nBitte dem Fahrzeug folgen!",COLOR_RED, 0.0, 0.0, 0.0, 50.0, 0, 1 );
    Attach3DTextLabelToVehicle(folgetext,veh, 0.0, 0.0, 2.0);
    SetTimerEx("FolgeTimer",8000,0,"i",playerid);
    Folgen[veh] = 1;
    }
    else SendClientMessage(playerid,COLOR_GRAD2,"Du befindest dich in keinem Fahrzeug!");
    }
    return 1;
    }


    public FolgeTimer()
    {
    for(new v; v < MAX_VEHICLES; v++)
    {
    if(Folgen[v] == 1)
    {
    Delete3DTextLabel(folgetext);
    Folgen[v] = 0;
    }
    }
    return 1;
    }


    Ob es klappt, werden wir ja sehen.


    MfG

    Back to the roots!

  • //Closed... habe sie selber rausbekommen.... Für die die es haben wollen


    new Folgen[MAX_VEHICLES];
    new Text3D:folgetext;
    forward FolgeTimer();



    if(strcmp(cmd, "/bittefolgen", true) == 0)
    {
    if(IsACop(playerid) && OnDuty[playerid] == 1)
    {
    new veh = GetPlayerVehicleID(playerid);
    if(IsPlayerInAnyVehicle(playerid))
    {
    folgetext = Create3DTextLabel( "Allgemeine Verkehrskontrolle!\nBitte dem Fahrzeug folgen!",COLOR_RED, 0.0, 0.0, 0.0, 50.0, 0, 1 );
    Attach3DTextLabelToVehicle(folgetext,veh, 0.0, 0.0, 2.0);
    SetTimerEx("FolgeTimer",8000,0,"i",playerid);
    Folgen[veh] = 1;
    }
    else SendClientMessage(playerid,COLOR_GRAD2,"Du befindest dich in keinem Fahrzeug!");
    }
    return 1;
    }



    public FolgeTimer()
    {
    for(new v; v < MAX_VEHICLES; v++)
    {
    if(Folgen[v] == 1)
    {
    Delete3DTextLabel(folgetext);
    Folgen[v] = 0;
    }
    }
    return 1;
    }



    Edit 1: Weitere Errors
    Edit 2: Closed

    Einmal editiert, zuletzt von Der_Tim () aus folgendem Grund: Closed