Fehler beim Fahrzeug Laden

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
  • for(new i=0;i<MAX_VEHICLES;i++)
    {
    new save[28];
    Vehicle[i][vBesitzer] = dini_Get(save,"vBesitzer"); //<< Betroffene Zeile
    format(save,sizeof(save),"/Fahrzeuge/%s.ini",Vehicle[i][vBesitzer]);
    printf("Debug: Save enthält: %s",save);
    Vehicle[i][vModel] = dini_Int(save,"vModel");
    Vehicle[i][vX] = dini_Float(save,"vX");
    Vehicle[i][vY] = dini_Float(save,"vY");
    Vehicle[i][vZ] = dini_Float(save,"vZ");
    Vehicle[i][vA] = dini_Float(save,"vA");
    Vehicle[i][vColor1] = dini_Int(save,"vColor1");
    Vehicle[i][vColor2] = dini_Int(save,"vColor2");
    GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(i,0,lights,alarm,doors,bonnet,boot,objective);
    MotorAn[i] = 0;
    if(dini_Exists(save))
    {
    CreateVehicle(Vehicle[i][vModel],Vehicle[i][vX],Vehicle[i][vY],Vehicle[i][vZ],Vehicle[i][vA],Vehicle[i][vColor1],Vehicle[i][vColor2],-1);
    }
    }


    Errorzeile:


    (263) : error 047: array sizes do not match, or destination array is too small


    Enum:

    enum eFahrzeugInfo
    {
    vID,
    Float:vX,
    Float:vY,
    Float:vZ,
    Float:vA,
    Float: vHP,
    vLock,
    vColor1,
    vColor2,
    vLocked,
    vModel,
    vBesitzer[28], // Hier ist der Besitzer
    //...
    }


    new Vehicle[MAX_VEHICLES][eFahrzeugInfo];


    Debug spuckt folgendes aus. Er kriegt den Name scheinbar nicht geladen.


    [01:50:10] Debug: Save enthält: /Fahrzeuge/.ini


    Ich habe versucht beide Größen zu ändern oder anzugleichen. Beide Wege halfen nichts und ich komme grad echt nicht für meine Kenntnisse auf die Lösung. Mag jemand helfen?

    "Dem wird befohlen, der sich nicht selbst gehorchen kann" - Friedrich Nietzsche

  • Vehicle[i][vBesitzer] = dini_Get(save,"vBesitzer"); //<< Betroffene Zeile
    dies erst mit einem String und dann weiterschicken ?

  • Wenn ich das richtig verstehe, ist der angegeben Arry zu klein. Mach mal aus der [28] eine [64] oder so :D

    Glaub keinem, der Dir sagt, dass Du nichts verändern kannst.
    Die, die das behaupten, haben nur vor der Veränderung Angst.
    Es sind dieselben, die erklären, es sei gut so, wie es ist.
    Und wenn Du etwas ändern willst, dann bist Du automatisch Terrorist (Die Ärzte - Deine Schuld)

  • Wie schon gesagt, ich habe die Größen durchprobiert, dass was jetzt da steht war die letzte Möglichkeit die ich durchprobiert habe. Ich verstehe das nicht. Save beinhaltet doch den Pfad + Usernamen. Das diese Variable größer sein muss ist ja klar. Wenn sie es ist, spinnt der Kompiler auch rum :thumbdown:

    "Dem wird befohlen, der sich nicht selbst gehorchen kann" - Friedrich Nietzsche

  • Ich habs dir mal verbessert.
    Versuch es so :



    for(new i=0;i<MAX_VEHICLES;i++)
    {
    new save[28];
    format(Vehicle[i][vBesitzer],MAX_PLAYER_NAME,dini_Get(save,"vBesitzer"));
    format(save,sizeof(save),"/Fahrzeuge/%s.ini",Vehicle[i][vBesitzer]);
    printf("Debug: Save enthält: %s",save);
    Vehicle[i][vModel] = dini_Int(save,"vModel");
    Vehicle[i][vX] = dini_Float(save,"vX");
    Vehicle[i][vY] = dini_Float(save,"vY");
    Vehicle[i][vZ] = dini_Float(save,"vZ");
    Vehicle[i][vA] = dini_Float(save,"vA");
    Vehicle[i][vColor1] = dini_Int(save,"vColor1");
    Vehicle[i][vColor2] = dini_Int(save,"vColor2");
    GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(i,0,lights,alarm,doors,bonnet,boot,objective);
    MotorAn[i] = 0;
    if(dini_Exists(save))
    {
    CreateVehicle(Vehicle[i][vModel],Vehicle[i][vX],Vehicle[i][vY],Vehicle[i][vZ],Vehicle[i][vA],Vehicle[i][vColor1],Vehicle[i][vColor2],-1);
    }
    }

    //Edit
    Damit wäre zwar der Error weg, aber die Fahrzeuge könnten so nicht geladen werden, weil du die Fahrzeuge als BESITZER.ini abspeicherst und in deiner Schleife zuerst den Besitzer des Fahrzeugs in die Variable setzt bevor du den Pfad zur Datei festlegst. Das kann ja so garnicht funktionieren.
    Mach am besten eine Abfrage, wenn der der Spieler connected bzw. sich einlogt und überprüfe ob eine Fahrzeugdatei zum jeweiligen Spielernamen exisitert.
    Falls ja kannst du das Fahrzeug dann erstellen.

    Einmal editiert, zuletzt von CoKeZ ()