Fahrzeuge in einer Datenbank speichern

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
  • Hallo liebe Brotfische!
    Ich wollte mal fragen wie man am besten Fahrzeuge in einer MySQL Datenbank speichert.
    Also damit meine ich, mach ich besser eine ganz neue Datenbank oder reicht eine neue Tabelle?
    Wie trage ich da am besten die Position ein?
    Wie trage ich am besten die Fraktionein?...


    Und wenn jemand noch Zeit hat, könnte er mir dann erklären, wie ich das Fahrzeug InGame per Command erstelle(mit OCMD und SCCANF)?


    Mit freundlichen Grüßen!

  • eine Tabelle brauchst du sowieso, warum eine neue Datenbank? 8|
    Die Positionen als Float eintragen, und die Fraktion als Integer, was ist daran so schwer?

    Wirklich hilfreich war das jetzt nicht...
    Soll ich die X,Y,Z,A jeweils in eine extra Spalte machen oder alles in eine packen?
    Könnte noch einer einen Command dazu erklären?

  • Deine Tabelle könnte folgendermaßen aussehen


    Fahrzeuge = {TableRowID,Vehiclemodel,x,y,z,rotation,farbe1,farbe2,fraktion}


    Damit wäre deine Tabelle in allen drei Normalisierungen korrekt.


    TableRowID kannst du auf AutoIncrement setzen, da du die eigentlich nicht auslesen brauchst, sie aber als Primärschlüssel unabdingbar ist.


    Vehiclemodel,farbe1,farbe2 als Integer
    x,y,z,rotation als Float
    Fraktion als Varchar oder als Integer (je nachdem wie du das verwalten willst)


    Damit ist dann ein Fahrzeug in einem Tupel abgebildet

  • Also ich die Tabelle hab ich, nur das mit dem Spawnen... das klappt noch nicht so ganz.


    Also, ich poste mal das was ich versucht habe.
    Datenbank:
    Tabellenname: cars
    Spalten: carid(INT, AI), modelid(INT), floatx(FLOAT), floaty(FLOAT), floatz(FLOAT), floata(FLOAT), ccolor1(INT), ccolor2(INT), fraktionsid(INT)


    news + enums + forwards
    forward OnCarSpawning(carid);
    new cInfo[MAX_VEHICLES][carInfo];
    enum carInfo{
    floatx,
    floaty,
    floatz,
    floata,
    carid,
    fraktion,
    ccolor1,
    ccolor2,
    modelid
    }


    Unter OnGameModeInit
    new query[128];
    format(query,sizeof(query),"SELECT * FROM cars");
    mysql_function_query(dbhandle,query,true,"OnCarSpawning","i", carid);



    public OnCarSpawning(carid)
    {
    cInfo[carid][modelid] = cache_get_field_content_int(500,"modelid",dbhandle);
    cInfo[carid][floatx] = cache_get_field_content_int(500,"floatx",dbhandle);
    cInfo[carid][floaty] = cache_get_field_content_int(500,"floaty",dbhandle);
    cInfo[carid][floatz] = cache_get_field_content_int(500,"floatz",dbhandle);
    cInfo[carid][floata] = cache_get_field_content_int(500,"floata",dbhandle);
    cInfo[carid][ccolor1] = cache_get_field_content_int(500,"color1",dbhandle);
    cInfo[carid][ccolor2] = cache_get_field_content_int(500,"color2",dbhandle);
    AddStaticVehicle(cInfo[carid][modelid],cInfo[carid][floatx],cInfo[carid][floaty],cInfo[carid][floatz],cInfo[carid][floata],cInfo[carid][ccolor1],cInfo[carid][ccolor2]);
    return 1;
    }