[MySQL] Autos bei OnGameModeInit erstellen

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
  • Wie in der Überschrift gesagt, möchte ich alle Fahrzeuge, welche in einer Datenbank gespeichert sind beim OngameModeInit erstellen.


    Ich weiß, dass es so falsch ist, aber bin gerade etwas durcheinander und weiß nicht wie ich was ändern soll.
    Denke mal es liegt an dem hinteren

    Code
    AutoDaten[i][aBesitzer]


    stock AutosLaden()
    {
    for(new i=0; i<MAX_VEHICLES; i++)
    {
    format(AutoDaten[i][aBesitzer],64,mysql_GetString("grra", "Besitzer", "Besitzer", AutoDaten[i][aBesitzer]));
    AutoDaten[i][aModel] = mysql_GetInt("grra", "Model", "Besitzer", AutoDaten[i][aBesitzer]);
    AutoDaten[i][aFarbe1] = mysql_GetInt("grra", "Farbe_1", "Besitzer", AutoDaten[i][aBesitzer]);
    AutoDaten[i][aFarbe2] = mysql_GetInt("grra", "Farbe_2", "Besitzer", AutoDaten[i][aBesitzer]);
    AutoDaten[i][aTueren] = mysql_GetInt("grra", "Tueren", "Besitzer", AutoDaten[i][aBesitzer]);
    AutoDaten[i][aPosX] = mysql_GetFloat("grra", "PosX", "Besitzer", AutoDaten[i][aBesitzer]);
    AutoDaten[i][aPosY] = mysql_GetFloat("grra", "PosY", "Besitzer", AutoDaten[i][aBesitzer]);
    AutoDaten[i][aPosZ] = mysql_GetFloat("grra", "PosZ", "Besitzer", AutoDaten[i][aBesitzer]);
    AutoDaten[i][aPosA] = mysql_GetFloat("grra", "PosA", "Besitzer", AutoDaten[i][aBesitzer]);
    AutoDaten[i][aRespawn] = mysql_GetInt("grra", "Respawn", "Besitzer", AutoDaten[i][aBesitzer]);
    AutoDaten[i][aID] = AddStaticVehicleEx(AutoDaten[i][aModel], AutoDaten[i][aPosX], AutoDaten[i][aPosY], AutoDaten[i][aPosZ], AutoDaten[i][aPosA], AutoDaten[i][aFarbe1], AutoDaten[i][aFarbe2], AutoDaten[i][aRespawn]);
    }
    return 1;
    }

  • Versuch es ma so:


    stock AutosLaden()
    {
    for(new i=0; i != MAX_VEHICLES; i++)//Diese schleife ist viel schneller und besser als < MAX_VEHICLES;
    {
    AutoDaten[i][aBesitzer] = mysql_GetString("grra","Besitzer","Besitzer",AutoDaten[i][aBesitzer]);
    AutoDaten[i][aModel] = mysql_GetInt("grra", "Model", "Besitzer", AutoDaten[i][aBesitzer]);
    AutoDaten[i][aFarbe1] = mysql_GetInt("grra", "Farbe_1", "Besitzer", AutoDaten[i][aBesitzer]);
    AutoDaten[i][aFarbe2] = mysql_GetInt("grra", "Farbe_2", "Besitzer", AutoDaten[i][aBesitzer]);
    AutoDaten[i][aTueren] = mysql_GetInt("grra", "Tueren", "Besitzer", AutoDaten[i][aBesitzer]);
    AutoDaten[i][aPosX] = mysql_GetFloat("grra", "PosX", "Besitzer", AutoDaten[i][aBesitzer]);
    AutoDaten[i][aPosY] = mysql_GetFloat("grra", "PosY", "Besitzer", AutoDaten[i][aBesitzer]);
    AutoDaten[i][aPosZ] = mysql_GetFloat("grra", "PosZ", "Besitzer", AutoDaten[i][aBesitzer]);
    AutoDaten[i][aPosA] = mysql_GetFloat("grra", "PosA", "Besitzer", AutoDaten[i][aBesitzer]);
    AutoDaten[i][aRespawn] = mysql_GetInt("grra", "Respawn", "Besitzer", AutoDaten[i][aBesitzer]);
    AutoDaten[i][aID] = AddStaticVehicleEx(AutoDaten[i][aModel], AutoDaten[i][aPosX], AutoDaten[i][aPosY], AutoDaten[i][aPosZ], AutoDaten[i][aPosA], AutoDaten[i][aFarbe1], AutoDaten[i][aFarbe2], AutoDaten[i][aRespawn]);
    }
    return 1;
    }


  • Das muss aber mit format gemacht werden, da es ein string ist. Und außerdem ist dann noch der Fehler des EInrückens

  • z.B so:
    for(new i = 0; i != MAX_VEHICLES; i++) {
    new query[128],data[128],bedienung[40],string[40];
    format(bedienung,sizeof(bedienung),"aID='%i'",i);
    format(query,sizeof(query),"SELECT * FROM `grra` WHERE %s", bedienung);
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows()) {
    mysql_fetch_field("aID",data);
    AutoDaten[i][aID]=strval(data);
    strdel(data,0,100);// Für Variablen



    mysql_fetch_field("PosX",data);
    AutoDaten[i][PosX]=floatstr(data);
    strdel(data,0,100);// Für Floats


    mysql_fetch_field("Besitzer",data);
    strins(AutoDaten[i][aBesitzer],data,100);
    strdel(data,0,100);// Für Texte / strings


    }
    mysql_free_result();
    }
    So habe ich es nur halt mit anderen Variablen




    Edit: Kleine Texte


  • Macht ja natürlich Sinn,den aBesitzer auszulesen in dem man in der Datenbank nach dem aBesitzer sucht den wir bereits im Script kennen :wacko: .

    Spoiler anzeigen
    Natürlich nicht

    Vorausgesetzt du kennst den aBesitzer noch nicht bei AutosLaden() ( davon gehe ich aus, sonst macht es noch weniger Sinn ), dann wird dort der Wert hinter der Variable <LEER> sein.
    Jetzt den Besitzer mit dem Namen <LEER> ( Also nichts ) zu suchen wird nicht funktionieren und somit alles weitere auch nicht.


    Hättest besser mal mit der ID gearbeitet. Je nachdem wie du das Ganze aufgezogen hast,gibt es aber auch keine ID.


    eVasi0n Vorschlag ist da definitiv besser.


  • Ich weiß, dass das komplett falsch ist. Hatte das nur so reingeschrieben, um den Aufbau zu zeigen ;)


    Edit: Problem gelöst.


    stock AutosLaden()
    {
    for(new i=0; i!=MAX_VEHICLES; i++)
    {
    new str[16];
    valstr(str, i);
    format(AutoDaten[i][aBesitzer],64,mysql_GetString("grra", "Besitzer", "id", str));
    AutoDaten[i][aModel] = mysql_GetInt("grra", "Model", "ID", str);
    AutoDaten[i][aFarbe1] = mysql_GetInt("grra", "Farbe_1", "ID", str);
    AutoDaten[i][aFarbe2] = mysql_GetInt("grra", "Farbe_2", "ID", str);
    AutoDaten[i][aTueren] = mysql_GetInt("grra", "Tueren", "ID", str);
    AutoDaten[i][aPosX] = mysql_GetFloat("grra", "PosX", "ID", str);
    AutoDaten[i][aPosY] = mysql_GetFloat("grra", "PosY", "ID", str);
    AutoDaten[i][aPosZ] = mysql_GetFloat("grra", "PosZ", "ID", str);
    AutoDaten[i][aPosA] = mysql_GetFloat("grra", "PosA", "ID", str);
    AutoDaten[i][aRespawn] = mysql_GetInt("grra", "Respawn", "ID", str);
    AutoDaten[i][aID] = AddStaticVehicleEx(AutoDaten[i][aModel], AutoDaten[i][aPosX], AutoDaten[i][aPosY], AutoDaten[i][aPosZ], AutoDaten[i][aPosA], AutoDaten[i][aFarbe1], AutoDaten[i][aFarbe2], AutoDaten[i][aRespawn]);
    }
    return 1;
    }

    Einmal editiert, zuletzt von Artus ()