Kennzeichen Problem

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
  • Hi leute, hab ein kleines Problem.
    Hab es so gemacht das man sich ein Individuelles Kennzeichen erstellen kann für sein Auto natürlich.
    Ich speichere es erst in einem String und dann in meiner Datenbank.
    Dann lass ich beim erstellen des Fahrzeuges das Nummernschild hinzufügen:
    SetVehicleNumberPlate(CarInfo[i][c_vID], CarInfo[i][c_Schild]);


    Erstes Problem ist, dass es in der Datenbank zwar richtig gespeichert wird aber ausgelesen wird es falsch.
    Nämlich ist der zweite Buchstabe durch eine 4 ersetzt.


    Zweite Frage:
    Natürlich soll das Kennzeichen direkt "gewechselt" werden und nicht erst nach einem Restart.
    Muss ich das Auto jetzt zerstören und neu erstellen?
    Kann mir einer ein Beispiel dazu geben?



    Mit freundlichen Grüßen


    Jeffry:



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Laden:


    Spoiler anzeigen
    public LoadCars_Data()
    {
    new rows, id, createdVehs;
    rows = cache_num_rows();
    for(new i=0; i<rows; i++)
    {
    id = cache_get_field_content_int(i, "ID");
    if(id < 0 || id >= sizeof(CarInfo)) continue;
    cache_get_field_content(i, "Besitzer", CarInfo[id][Besitzer],handle,34);
    CarInfo[id][modelID] = cache_get_field_content_int(i, "ModelID");
    CarInfo[id][c_x] = cache_get_field_content_float(i, "PosX");
    CarInfo[id][c_y] = cache_get_field_content_float(i, "PosY");
    CarInfo[id][c_z] = cache_get_field_content_float(i, "PosZ");
    CarInfo[id][c_a] = cache_get_field_content_float(i, "PosA");
    CarInfo[id][c_color1] = cache_get_field_content_int(i, "Color1");
    CarInfo[id][c_color2] = cache_get_field_content_int(i, "Color2");
    CarInfo[id][c_Preis] = cache_get_field_content_int(i, "Preis");
    CarInfo[id][c_Gekauft] = cache_get_field_content_int(i, "Gekauft");
    CarInfo[id][c_Versicherung] = cache_get_field_content_int(i, "Versicherung");
    cache_get_field_content(i, "Schild", CarInfo[id][c_Schild],handle,34);

    Spoiler anzeigen
    if(CarInfo[id][modelID] >= 400 && CarInfo[id][modelID] <= 611)
    {
    new text[64];
    CarInfo[id][c_vID] = CreateVehicle(CarInfo[id][modelID], CarInfo[id][c_x], CarInfo[id][c_y], CarInfo[id][c_z], CarInfo[id][c_a], CarInfo[id][c_color1], CarInfo[id][c_color2], -1);
    format(text, sizeof(text), "Besitzer: %s\nKaufpreis: %d\nReparier Kosten: %d",CarInfo[id][Besitzer],CarInfo[id][c_Preis], CarInfo[id][c_Preis] / 10);
    CarInfo[id][Carlable] = Create3DTextLabel(text,0x0FFF00FF,CarInfo[id][c_x], CarInfo[id][c_y], CarInfo[id][c_z],20.0,0,1);
    Attach3DTextLabelToVehicle(CarInfo[id][Carlable],CarInfo[id][c_vID], 0.0, 0.0, 2.0);
    SetVehicleNumberPlate(CarInfo[i][c_vID], CarInfo[i][c_Schild]);
    }
    else
    {
    printf("[Error] Model-ID %d existiert nicht (ID: %d).", CarInfo[id][modelID], id);
    }
    if(GetVehicleModel(MAX_VEHICLES-1) != 0) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_VEHICLES) erreicht.");
    createdVehs++;
    if(createdVehs == MAX_AUTOS) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_AUTOS) erreicht.");
    }
    return 1;
    }


    Speichern:


    Spoiler anzeigen
    public LoadCars_Data()
    {
    new rows, id, createdVehs;
    rows = cache_num_rows();
    for(new i=0; i<rows; i++)
    {
    id = cache_get_field_content_int(i, "ID");
    if(id < 0 || id >= sizeof(CarInfo)) continue;
    cache_get_field_content(i, "Besitzer", CarInfo[id][Besitzer],handle,34);
    CarInfo[id][modelID] = cache_get_field_content_int(i, "ModelID");
    CarInfo[id][c_x] = cache_get_field_content_float(i, "PosX");
    CarInfo[id][c_y] = cache_get_field_content_float(i, "PosY");
    CarInfo[id][c_z] = cache_get_field_content_float(i, "PosZ");
    CarInfo[id][c_a] = cache_get_field_content_float(i, "PosA");
    CarInfo[id][c_color1] = cache_get_field_content_int(i, "Color1");
    CarInfo[id][c_color2] = cache_get_field_content_int(i, "Color2");
    CarInfo[id][c_Preis] = cache_get_field_content_int(i, "Preis");
    CarInfo[id][c_Gekauft] = cache_get_field_content_int(i, "Gekauft");
    CarInfo[id][c_Versicherung] = cache_get_field_content_int(i, "Versicherung");
    cache_get_field_content(i, "Schild", CarInfo[id][c_Schild],handle,34);

    Spoiler anzeigen
    if(CarInfo[id][modelID] >= 400 && CarInfo[id][modelID] <= 611)
    {
    new text[64];
    CarInfo[id][c_vID] = CreateVehicle(CarInfo[id][modelID], CarInfo[id][c_x], CarInfo[id][c_y], CarInfo[id][c_z], CarInfo[id][c_a], CarInfo[id][c_color1], CarInfo[id][c_color2], -1);
    format(text, sizeof(text), "Besitzer: %s\nKaufpreis: %d\nReparier Kosten: %d",CarInfo[id][Besitzer],CarInfo[id][c_Preis], CarInfo[id][c_Preis] / 10);
    CarInfo[id][Carlable] = Create3DTextLabel(text,0x0FFF00FF,CarInfo[id][c_x], CarInfo[id][c_y], CarInfo[id][c_z],20.0,0,1);
    Attach3DTextLabelToVehicle(CarInfo[id][Carlable],CarInfo[id][c_vID], 0.0, 0.0, 2.0);
    SetVehicleNumberPlate(CarInfo[i][c_vID], CarInfo[i][c_Schild]);
    }
    else
    {
    printf("[Error] Model-ID %d existiert nicht (ID: %d).", CarInfo[id][modelID], id);
    }
    if(GetVehicleModel(MAX_VEHICLES-1) != 0) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_VEHICLES) erreicht.");
    createdVehs++;
    if(createdVehs == MAX_AUTOS) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_AUTOS) erreicht.");
    }
    return 1;
    }



    Wie schicke ich das Auto in eine andere VWelt ? :)


    Jeffry:



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Jeffry:


    Habs bearbeitet :)




    Mit freundlichen Grüßen



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

    2 Mal editiert, zuletzt von ENEF ()

  • Nutze den C-Code Tag, bitte auch nochmal für die Codes oben.
    Das neue Design hat alle PWN Tags zerschossen. Die C-Codes zerlegt es zwar auch in der Einrückung, aber das kann ich lokal beheben.


    [.code=c] [/code]
    Ohne den Punkt. Oder über den Code-BB-Button.

  • Danke, daran hab ich vorhin auch noch gedacht aber war mir Unsicher :D


    Neues Problem :)
    Leider wird der letzte Dialog wo man das Kennzeichen dem jeweiligen Fahrzeug zuweist, nicht mehr aufgerufen.
    Das Dialog heisst "Dialog_Schild"


    Dieses wird noch aufgerufen, danach kommt leider nichts mehr(davor ging es, aber wieso jetzt nicht mehr keine Ahnung)




    //Push


    Problem besteht weiterhin
    Jeffry:



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

    2 Mal editiert, zuletzt von ENEF ()

  • Ah, sorry. Da das Thema auf erledigt steht bin ich davon ausgegangen, dass du das Problem selbst behoben hast.


    Füge die Prints mal so ein, werden die geprintet, wenn du den letzten Dialog andrückst?

  • Immer noch gleich, leider.
    Hab mal das hier gemacht:



    In der Log kommt dann das:
    [07:59:34] vID: 2 == 2 vehicleid
    [07:59:34] gekauft: 1 | macht: 0
    [07:59:38] Hier1
    [07:59:38] Hier1
    [07:59:38] Hier2
    [07:59:38] Hier3


    gekauft und macht und vid gehören doch garnicht zu dem print in dem Dialog, was hat das zu bedeuten, hängt es eventuell damit zusammen?


    Jeffry:
    Übrigens, danke für die schnelle Antwort.



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • 04. Oktober 2015 / 11:30:
    Die prints haben damit nichts zu tun, das siehst du an der Zeit.
    Poste bitte dein ganzes OnDialogResponse.



    EDIT:
    Er hat mir den ganzen Code via PN geschickt und wir haben es dann debuggt.
    Fehler war hier:

    C
    if(listitem == 0) ShowPlayerDialog(playerid, DIALOG_SCHILD, DIALOG_STYLE_LIST, "Wähle ein Fahrzeug", string, "Ok", "Abbrechen");


    Das

    C
    if(listitem == 0)

    musste weg.


    Geht nun alles.

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()