Problem mit dem Nummernschild

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
  • In dem du in Zeile 16 (Attach3DTextLabelToVehicle( vehicle3Dtext[vID] ,vID, 0.0, 0.0, 2.0);) die Z-Koordinate veränderst. Das ist die 2.0. Diese Koordinate gibt die Höhe an.

    Ok, Wird diese schrift auch weg gehen wenn das Auto nach 10 Minuten angemeldet ist?

  • Dazu nutzt du dann den Timer, den du ja sowieso brauchst. In dem löschst du dann direkt das Textlabel mit.

    Also z.b. so.



    vehicle3Dtext[vID] = Create3DTextLabel("Das Fahrzeug wird Angemeldet, Bitte haben sie Geduld.", 0xFF0000AA, 0.0, 0.0, 0.0, 50.0, 0, 1);
    Attach3DTextLabelToVehicle( vehicle3Dtext[vID] ,vID, 0.0, 0.0, 1.0);
    Delete3DTextLabel(vehicle3Dtext[vID] = gettime() + (60*10);

    • Offizieller Beitrag

    Nein, du musst einen richtigen Timer starten. Ich habe gerade gesehen, dass du auch noch gar keinen integriert hast.
    Starte mit der Funktion SetTimerEx einen Timer. Damit kannst du deine 10 Minuten einstellen und dann alles gewünschte abwickeln.
    Ich möchte dir ganz bewusst noch keine fertige Lösung präsentieren - versuch es erstmal selbst. Das Wiki zur Funktion bietet eine gute Basis. ;)

  • Nein, du musst einen richtigen Timer starten. Ich habe gerade gesehen, dass du auch noch gar keinen integriert hast.
    Starte mit der Funktion SetTimerEx einen Timer. Damit kannst du deine 10 Minuten einstellen und dann alles gewünschte abwickeln.
    Ich möchte dir ganz bewusst noch keine fertige Lösung präsentieren - versuch es erstmal selbst. Das Wiki zur Funktion bietet eine gute Basis. ;)

    Ok, Aber es würde so klappen oder?


    Delete3DTextLabel(vehicle3Dtext[vID] = gettime() + (60*10));

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
    • Offizieller Beitrag

    Nein, guck dir die Syntax von SetTimerEx bitte noch einmal an. Die Funktion Delete3DTextLabel verwendest du nicht als Parameter, sondern später im public, den du durch den Timer aufrufst.
    Im Wiki ist dazu ein gutes Beispiel. Du startest den Timer dort, wo du das Label erstellst. Und alles was nach 10 Minuten passieren soll, schreibst du in den erstellten public.

  • Nein, guck dir die Syntax von SetTimerEx bitte noch einmal an. Die Funktion Delete3DTextLabel verwendest du nicht als Parameter, sondern später im public, den du durch den Timer aufrufst.
    Im Wiki ist dazu ein gutes Beispiel. Du startest den Timer dort, wo du das Label erstellst. Und alles was nach 10 Minuten passieren soll, schreibst du in den erstellten public.

    D:\SAMP Server\Mein Selfmade\gamemodes\Selfmade.pwn(8961) : error 017: undefined symbol "vehicle3Dtext"D:\SAMP Server\Mein Selfmade\gamemodes\Selfmade.pwn(8961) : error 017: undefined symbol "vID"D:\SAMP Server\Mein Selfmade\gamemodes\Selfmade.pwn(8961) : error 029: invalid expression, assumed zeroD:\SAMP Server\Mein Selfmade\gamemodes\Selfmade.pwn(8961) : fatal error 107: too many error messages on one line


    case DIALOG_FPLAYAanmeldung: { if(response == 0)return 1; else { if(!strlen(inputtext) || strlen(inputtext) > 2) { ShowPlayerDialog(playerid,DIALOG_FPLAYAanmeldung,DIALOG_STYLE_INPUT,"Fahrzeuganmeldung","Gebe nun dein gewünschtes Kennzeichen ein.\nEs darf maximal 2 Zeichen haben!","Bestätigen","Abbrechen"); return SendClientMessage(playerid,GRAU,"Du musst schon etwas eingeben.\nDu kannst nur maximal zwei Zeichen benutzen!"); } else { new rSpawn = random(sizeof(Fahrzeuganmeldeamt)); for(new slot=0;slot<MAX_PLAYER_VEHS;slot++) { if(!strcmp(Spieler[playerid][pName],Pfahrzeug[slot][playerid][Besitzer],true)) { if(GetPlayerVehicleID(playerid) == Pfahrzeug[slot][playerid][Vehicle]) { if((GetACMoney(playerid) - fsteuern[FMeldePreis]) < 0)return SendClientMessage(playerid,GRAU,"Nicht genug Geld!"); ACMoney(playerid,-fsteuern[FMeldePreis]); fverwaltungen[16][Geld] += fsteuern[FMeldePreis]; Pfahrzeug[slot][playerid][AnmeldeTime] = gettime() + (60*10); SetTimerEx("anmeldesystem3DText", 600000, false, "i", playerid); Pfahrzeug[slot][playerid][AnAnmeldung] = 1; format(Pfahrzeug[slot][playerid][Nummernschild],64,"%s %i",inputtext,GetPlayerVehicleID(playerid)); SetVehicleNumberPlate(Pfahrzeug[slot][playerid][Vehicle],"----"); GetVehicleHealth(Pfahrzeug[slot][playerid][Vehicle],Pfahrzeug[slot][playerid][HP]); VehicleSpawner(playerid,slot); new vID = GetPlayerVehicleID(playerid); new vehicle3Dtext[MAX_VEHICLES]; RemovePlayerFromVehicle(playerid); vehicle3Dtext[vID] = Create3DTextLabel("Das Fahrzeug wird Angemeldet, Bitte haben sie Geduld.", 0xFF0000AA, 0.0, 0.0, 0.0, 50.0, 0, 1); Attach3DTextLabelToVehicle( vehicle3Dtext[vID] ,vID, 0.0, 0.0, 1.0); SetVehiclePosEx(Pfahrzeug[slot][playerid][Vehicle],Fahrzeuganmeldeamt[rSpawn][0],Fahrzeuganmeldeamt[rSpawn][1],Fahrzeuganmeldeamt[rSpawn][2]); SetVehicleZAngleEx(Pfahrzeug[slot][playerid][Vehicle],Fahrzeuganmeldeamt[rSpawn][3]); SendClientMessage(playerid,BLAU,"Dein Fahrzeug wurde auf den Stellplatz gestellt!"); SendClientMessage(playerid,BLAU,"Sobald die Anmeldung abgeschlossen ist kannst du dein Fahrzeug abholen."); SendClientMessage(playerid,GELB,"Info: Es dauert ungefähr 10 Minuten!"); return 1; } } } } return 1; } }


    /e Text Edit @shoxinat0r
    /e @shoxinat0r können sie mir bitte sagen, was ich änderen muss ?
    @shoxinat0r Push.



    forward anmeldesystem3DText(playerid);public anmeldesystem3DText{Delete3DTextLabel(vehicle3Dtext[vID];return 1;}

    3 Mal editiert, zuletzt von SyroX. ()

  • Klar, natürlich.Kannst du den Code oben nochmal formatieren? Dann bastele ich dir mal was.


    case DIALOG_FPLAYAanmeldung:
    {
    if(response == 0)return 1;
    else
    {
    if(!strlen(inputtext) || strlen(inputtext) > 2)
    {
    ShowPlayerDialog(playerid,DIALOG_FPLAYAanmeldung,DIALOG_STYLE_INPUT,"Fahrzeuganmeldung","Gebe nun dein gewünschtes Kennzeichen ein.\nEs darf maximal 2 Zeichen haben!","Bestätigen","Abbrechen");
    return SendClientMessage(playerid,GRAU,"Du musst schon etwas eingeben.\nDu kannst nur maximal zwei Zeichen benutzen!");
    }
    else
    {
    new rSpawn = random(sizeof(Fahrzeuganmeldeamt));
    for(new slot=0;slot<MAX_PLAYER_VEHS;slot++)
    {
    if(!strcmp(Spieler[playerid][pName],Pfahrzeug[slot][playerid][Besitzer],true))
    {
    if(GetPlayerVehicleID(playerid) == Pfahrzeug[slot][playerid][Vehicle])
    {
    if((GetACMoney(playerid) - fsteuern[FMeldePreis]) < 0)return SendClientMessage(playerid,GRAU,"Nicht genug Geld!");
    ACMoney(playerid,-fsteuern[FMeldePreis]);
    fverwaltungen[16][Geld] += fsteuern[FMeldePreis];
    Pfahrzeug[slot][playerid][AnmeldeTime] = gettime() + (60*10);
    Pfahrzeug[slot][playerid][AnAnmeldung] = 1;
    format(Pfahrzeug[slot][playerid][Nummernschild],64,"%s %i",inputtext,GetPlayerVehicleID(playerid));
    SetVehicleNumberPlate(Pfahrzeug[slot][playerid][Vehicle],"----");
    GetVehicleHealth(Pfahrzeug[slot][playerid][Vehicle],Pfahrzeug[slot][playerid][HP]);
    VehicleSpawner(playerid,slot);
    new vID = GetPlayerVehicleID(playerid);
    new vehicle3Dtext[MAX_VEHICLES];
    RemovePlayerFromVehicle(playerid);
    SetTimerEx("anmeldesystem3DText", 600000, false, "i", Delete3DTextLabel);
    vehicle3Dtext[vID] = Create3DTextLabel("Das Fahrzeug wird Angemeldet, Bitte haben sie Geduld.", 0xFF0000AA, 0.0, 0.0, 0.0, 50.0, 0, 1);
    Attach3DTextLabelToVehicle( vehicle3Dtext[vID] ,vID, 0.0, 0.0, 1.0);
    SetVehiclePosEx(Pfahrzeug[slot][playerid][Vehicle],Fahrzeuganmeldeamt[rSpawn][0],Fahrzeuganmeldeamt[rSpawn][1],Fahrzeuganmeldeamt[rSpawn][2]);
    SetVehicleZAngleEx(Pfahrzeug[slot][playerid][Vehicle],Fahrzeuganmeldeamt[rSpawn][3]);
    SendClientMessage(playerid,BLAU,"Dein Fahrzeug wurde auf den Stellplatz gestellt!");
    SendClientMessage(playerid,BLAU,"Sobald die Anmeldung abgeschlossen ist kannst du dein Fahrzeug abholen.");
    SendClientMessage(playerid,GELB,"Info: Es dauert ungefähr 10 Minuten!");
    return 1;
    }
    }
    }
    }
    return 1;
    }
    }

    P.S. Könntest du mir noch zwei gefallen tuen.
    Auto bekommt ja die CarID zugewiesen, aber wenn man sich ausloggt und ein anderer geht auf dem Server hat er die CarID vom Spieler.
    Könnteste das evtl so machen das die CarId sich immer Welchseln tut, sagen wir mal so Ich habe jetzt 407 ich log mich aus und logge mich wieder ein. und dann habe ich die CarID 408 aber auf dem kennzeichen steht noch immer 407.
    Dies soll ersetzt werden.


    Zweite
    Könnteste mir bei mein Prison Problem helfen?

    • Offizieller Beitrag

    Habe dir jetzt einen Timer erstellt und eingebaut. Musst du nur nochmal ausprobieren, da ich den Code blind geschrieben habe und daher kein Test stattgefunden hat.
    Den Code habe ich auf Pastebin hochgeladen: http://pastebin.com/T6kKztsB


    Das Problem mit der Car ID habe ich noch nicht ganz verstanden.
    Zu deinem Prison Problem: Ich habe dir oben einen Timer eingebaut, der einmal pro Sekunde aufgerufen wird. Darüber kannst du dann auch die Prisonzeit regeln. Schau dir mal an, wie ich das mit der Anmeldung gemacht habe.

  • Habe dir jetzt einen Timer erstellt und eingebaut. Musst du nur nochmal ausprobieren, da ich den Code blind geschrieben habe und daher kein Test stattgefunden hat.
    Den Code habe ich auf Pastebin hochgeladen: http://pastebin.com/T6kKztsB


    Das Problem mit der Car ID habe ich noch nicht ganz verstanden.
    Zu deinem Prison Problem: Ich habe dir oben einen Timer eingebaut, der einmal pro Sekunde aufgerufen wird. Darüber kannst du dann auch die Prisonzeit regeln. Schau dir mal an, wie ich das mit der Anmeldung gemacht habe.

    Ich meinte das mit der CarID, z.b. bin ich jetzt auf dem Game Server.
    Mein Auto hat die Car ID 407 nun logge ich mich aus, z.b. gehst du dann drauf mit ein Privat Fahrzeug und dann hat dein Car ID 407. Nun logge ich mich ein und mein Car hat die ID 408 aber dies hat sich nicht auf dem Kennzeichen geändert da dort noch steht 407.


    Da soll eigendlich immer die Aktuelle Car ID Stehen die das fahrzeug hat.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen