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
  • Guten Tag,


    Ich möchte das gerne so machen das auf dem Nummernschild nicht die modelid steht sondern die ID des Cars.
    also die CarID und nicht die modelid. Ich habs schon mit Carid versucht aber ich bekomme immer ein Error.



    format(Pfahrzeug[slot][playerid][Nummernschild],64,"%s-%i",inputtext,Pfahrzeug[slot][playerid][modelid]);



    Mit freundlichen Grüßen,
    Fronix_

  • Wie hast du es denn probiert und welchen Error hast du bekommen?

    D:\SAMP Server\Mein Selfmade\gamemodes\Selfmade.pwn(63624) : error 017: undefined symbol "carid"


    format(Pfahrzeug[slot][playerid][Nummernschild],64,"%s-%i",inputtext,Pfahrzeug[slot][playerid][carid]);

  • Das kann so auch nicht funktionieren. Probier mal die Funktion GetPlayerVehicleID aus. Mit dieser Funktion kannst du die ID auslesen, die das Fahrzeug hat, in dem der Spieler sitzt.
    format(Pfahrzeug[slot][playerid][Nummernschild],64,"%s-%i",inputtext,GetPlayerVehicleID(playerid));
    Stellst du dir das so vor?

    Jetzt funktioniert das System.
    Danke sehr.


    Was habe ich da den dran falsch gemacht, wenn ich fragen darf?

  • Du hast "carid" verwendet, obwohl das vorher nicht deklariert wurde.
    new carid = GetPlayerVehicleID(playerid);
    So hätte dein erster Versuch auch funktioniert. Dir fehlte einfach die Funktion. :)

    Ok, Danke schön für die Erklärung.
    Da habe ich aber noch eine kleine frage..


    SetVehicleNumberPlate(Pfahrzeug[slot][playerid][Vehicle],"Anmeldung");


    Wenn ich dies jetzt ersetzen möchte zu einem D3 Textdraw, Wie muss ich das machen.
    Das dort steht z.b. in der Fahrzeug mitte, "Das Auto wird Angemldet."

  • Ich verstehe das Problem nicht ganz. Du kannst einfach immer ein neues Label erstellen und es nach der Anmeldung löschen. Der Fahrzeugtyp spielt dann keine Rolle.


    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],"Anmeldung");
    GetVehicleHealth(Pfahrzeug[slot][playerid][Vehicle],Pfahrzeug[slot][playerid][HP]);
    VehicleSpawner(playerid,slot);
    RemovePlayerFromVehicle(playerid);
    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;
    }
    }


    Aber wies soll ich das da einfügen.

    • Offizieller Beitrag

    Nach Zeile 27 würde sich das anbieten. Erst erstellst du das Textlabel und dann nutzt du die Attach-Funktion. Das sollte ohne Probleme klappen. :)
    Die Koordination von dem Textlabel sind btw egal, da du es dann ja an das Fahrzeug "klebst".


    Hier ein Beispiel für die Verwendung der Funktionen aus dem SA-MP Wiki:
    vehicle3Dtext[ vehicle_id ] = Create3DTextLabel( "Example Text", 0xFF0000AA, 0.0, 0.0, 0.0, 50.0, 0, 1 );
    Attach3DTextLabelToVehicle( vehicle3Dtext[ vehicle_id ] , vehicle_id, 0.0, 0.0, 2.0);


    Du musst es jetzt nur noch entsprechend deinen Wünschen anpassen.

  • Nach Zeile 27 würde sich das anbieten. Erst erstellst du das Textlabel und dann nutzt du die Attach-Funktion. Das sollte ohne Probleme klappen. :)
    Die Koordination von dem Textlabel sind btw egal, da du es dann ja an das Fahrzeug "klebst".


    Hier ein Beispiel für die Verwendung der Funktionen aus dem SA-MP Wiki:
    vehicle3Dtext[ vehicle_id ] = Create3DTextLabel( "Example Text", 0xFF0000AA, 0.0, 0.0, 0.0, 50.0, 0, 1 );Attach3DTextLabelToVehicle( vehicle3Dtext[ vehicle_id ] , vehicle_id, 0.0, 0.0, 2.0);


    Du musst es jetzt nur noch entsprechend deinen Wünschen anpassen.


    D:\SAMP Server\Mein Selfmade\gamemodes\Selfmade.pwn(63629) : error 017: undefined symbol "vehicle3Dtext"
    D:\SAMP Server\Mein Selfmade\gamemodes\Selfmade.pwn(63629) : error 017: undefined symbol "vehicle_id"



    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);
    RemovePlayerFromVehicle(playerid);
    vehicle3Dtext[ vehicle_id ] = Create3DTextLabel( "Das Fahrzeug wird Angemeldet, Bitte haben sie Geduld.", 0xFF0000AA, 0.0, 0.0, 0.0, 50.0, 0, 1 );
    Attach3DTextLabelToVehicle( vehicle3Dtext[ vehicle_id ] , vehicle_id, 0.0, 0.0, 2.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;
    }

    • Offizieller Beitrag

    Du musst das natürlich anpassen. :)

    new vID = GetPlayerVehicleID(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, 2.0);

    So klappt es. Du hast vehicle_id vorher nicht definiert. In dem man jetzt vID definiert, kann der Code mit der korrekten Vehicle ID arbeiten.
    Aber Achtung: Diese Zeile new vID = GetPlayerVehicleID(playerid); bitte vor Zeile 12 setzen. Sonst kann keine Vehicle ID ausgelesen werden.

  • Du musst das natürlich anpassen. :)
    new vID = GetPlayerVehicleID(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, 2.0);
    So klappt es. Du hast vehicle_id vorher nicht definiert. In dem man jetzt vID definiert, kann der Code mit der korrekten Vehicle ID arbeiten.
    Aber Achtung: Diese Zeile new vID = GetPlayerVehicleID(playerid); bitte vor Zeile 12 setzen. Sonst kann keine Vehicle ID ausgelesen werden.



    D:\SAMP Server\Mein Selfmade\gamemodes\Selfmade.pwn(63630) : error 017: undefined symbol "vehicle3Dtext"
    D:\SAMP Server\Mein Selfmade\gamemodes\Selfmade.pwn(63630) : warning 215: expression has no effect
    D:\SAMP Server\Mein Selfmade\gamemodes\Selfmade.pwn(63630) : error 001: expected token: ";", but found "]"
    D:\SAMP Server\Mein Selfmade\gamemodes\Selfmade.pwn(63630) : error 029: invalid expression, assumed zero
    D:\SAMP Server\Mein Selfmade\gamemodes\Selfmade.pwn(63630) : fatal error 107: too many error messages on one line



    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase




    4 Errors.


    vehicle3Dtext[vID] = Create3DTextLabel( "Das Fahrzeug wird Angemeldet, Bitte haben sie Geduld.", 0xFF0000AA, 0.0, 0.0, 0.0, 50.0, 0, 1 );

  • Stimmt, das musst du auch noch deklarieren.
    new vehicle3Dtext[MAX_VEHICLES];

    Ich hab das jetzt mal so deklariert



    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);
    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, 2.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;
    }

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