Frage zu Mysql

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 Arbend








    Und zwar müchte ich mein Jetztiges Script in Mysql um schreiben, doch sitze ich hier vor einem Problem.




    Und zwar gibt es in der Datenbank ja die möglichkeit zu sagen, das der wert ein Float ist. So nun ist mein Problem, das wenn ich zb die Coordinaten




    -3.0527,5.0000,1.0000 schreibe dan, wird bei jedem nur die 1 zahl genommen. Alles was nach dem Punkt kommt, wird gelöscht.




    So nun wollte ich fragen wie ist es möglich die Floats richtig zu Speichern.

    2 Mal editiert, zuletzt von blackfire499 () aus folgendem Grund: Frage hat sich geändert

  • hab es jetzt anders gelöst hab sie jetzt als Varchar gespeichert und speicher sie in ein Float so nach dem Comprimieren habe ich gemerkt das sich der Server nicht mehr starten in der log steht nun folgendes [MySQL] Thread running. Threadsafe: Yes. vielleicht könnt ihr mir ja weiter helfen





    Hier mal der Code Schnippsel








    Der Define




    #define MAX_FRAKS 2




    Der Enum




    enum FInfo




    {




    FrakId,




    ModelId,




    Float:CarspawnX,




    Float:CarspawnY,




    Float:CarspawnZ,




    Float:CarspawnA




    }








    Unter OnGameModeInit steht




    for(new frakid = 0; frakid < MAX_FRAKS; frakid++)




    {




    LoadFrak(frakid);




    }








    und mein LoadFrak stock




    stock LoadFrak(frakid)




    {




    new query[128],data[128];




    format(query,sizeof(query),"SELECT * FROM `Fraktion` WHERE `FrakId`='%d' LIMIT 1",frakid);




    mysql_query(query);




    mysql_store_result();




    if(mysql_num_rows())




    {




    mysql_fetch_field("FrakId",data);




    FrakInfo[
    frakid
    ][FrakId] = strval(data);




    mysql_fetch_field("ModelId",data);




    FrakInfo[
    frakid
    ][ModelId] = strval(data);




    mysql_fetch_field("CarspawnX",data);




    FrakInfo[
    frakid
    ][CarspawnX] = strval(data);




    mysql_fetch_field("CarspawnY",data);




    FrakInfo[
    frakid
    ][CarspawnY] = strval(data);




    mysql_fetch_field("CarspawnZ",data);




    FrakInfo[
    frakid
    ][CarspawnZ] = strval(data);




    mysql_fetch_field("CarspawnA",data);




    FrakInfo[
    frakid
    ][CarspawnA] = strval(data);




    mysql_free_result();




    }




    return 1;




    }

  • Sry bin noch neu im Bereich Mysql Scripting und habe gedacht müsste bei Varchar strval nehmen.



    Edit: Habe es jetzt hin bekommen die Frakts werden geladen doch sobald ein Car die selbe ModelId hat Spawn nur eins.


    So sieht der stock LoadFrak nun aus


    stock LoadFrak(frakid)
    {
    new query[128],data[128];
    format(query,sizeof(query),"SELECT * FROM `Fraktion` WHERE `FrakId`='%d' LIMIT 1",frakid);
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows())
    {
    new int[128];
    mysql_fetch_field("FrakId",data);
    FrakInfo[frakid][FrakId] = strval(data);
    format(int,sizeof(int),"ID: %s",data);
    print(int);
    mysql_fetch_field("ModelId",data);
    FrakInfo[frakid][ModelId] = strval(data);
    format(int,sizeof(int),"ModelID: %s",data);
    print(int);
    mysql_fetch_field("CarspawnX",data);
    FrakInfo[frakid][CarspawnX] = floatstr(data);
    mysql_fetch_field("CarspawnY",data);
    FrakInfo[frakid][CarspawnY] = floatstr(data);
    mysql_fetch_field("CarspawnZ",data);
    FrakInfo[frakid][CarspawnZ] = floatstr(data);
    mysql_fetch_field("CarspawnA",data);
    FrakInfo[frakid][CarspawnA] = floatstr(data);
    if(frakid > 0)
    {
    for(new i = 0; i < 20; i++)
    {
    Frakcar[frakid][i] = CreateVehicle(FrakInfo[frakid][ModelId],FrakInfo[frakid][CarspawnX],FrakInfo[frakid][CarspawnY],FrakInfo[frakid][CarspawnZ],FrakInfo[frakid][CarspawnA],-1,-1,-1);
    if(Frakcar[frakid][i] <= 1)
    {
    print("Car Loadet");
    }
    }
    }
    mysql_free_result();
    }
    return 1;
    }