[MySQL]Fraktions Vehicle 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
  • Hallo,
    ich habe mir mal ein MySQL-System gebastelt mit dem ich Autos laden will.
    enum FrakCars
    {
    Fraktion,
    Model,
    Float:x,
    Float:y,
    Float:z,
    Float:a,
    Color1,
    Color2
    }
    new FrakCarInfo[FrakCars];



    stock LoadFrakCars()
    {
    FrakCarInfo[Model] = mysql_GetInt("vehicles", "Model", "id", "1");
    FrakCarInfo[x] = mysql_GetFloat("vehicles", "x", "id", "1");
    FrakCarInfo[y] = mysql_GetFloat("vehicles", "y", "id", "1");
    FrakCarInfo[z] = mysql_GetFloat("vehicles", "z", "id", "1");
    FrakCarInfo[a] = mysql_GetFloat("Vehicles", "a", "id", "1");
    FrakCarInfo[Color1] = mysql_GetInt("vehicles", "Color1", "id", "1");
    FrakCarInfo[Color2] = mysql_GetInt("vehicles", "Color2", "id", "1");
    AddStaticVehicleEx(FrakCarInfo[Model], FrakCarInfo[x], FrakCarInfo[y], FrakCarInfo[z], FrakCarInfo[a], FrakCarInfo[Color1], FrakCarInfo[Color2], -1);
    return 1;
    }


    public OnGameModeInit()
    {
    SetGameModeText("Blank Script");
    AddPlayerClass(0, 1244.3230,-2038.6282,59.6752,179.8692, 0, 0, 0, 0, 0, 0);
    Connect_To_Database();
    LoadFrakCars();
    }


    So kann ich aber nur ein Car laden.
    Meine Frage jetzt an Euch: Wie bekomm ich es hin, dass ich mehrere Cars laden kann ohne das ich immer eine neuen LoadCar Stock machen muss?
    Thx im Vorraus.
    MfG Ber912

    Einmal editiert, zuletzt von Ber912 () aus folgendem Grund: AddStaticVehicleEx hinzugefügt

  • Eine Schleife mit der Anzahl deiner Frakcars erstellen wäre eventuell sinnvoll? ;) Du solltest dann aber in deiner DB eine ID Spalte einfügen, die sich mit AUTO_INCREMENT dann selber hochzählt. So kann man dann gezielter arbeiten.

  • Hey,
    danke für Deine Antwort.
    Meinst du so?:
    stock LoadFrakCars()
    {
    for(new i = 0; i<10; i++)
    {
    FrakCarInfo[Model] = mysql_GetInt("vehicles", "Model", "id", i);//390
    FrakCarInfo[x] = mysql_GetFloat("vehicles", "x", "id", i);
    FrakCarInfo[y] = mysql_GetFloat("vehicles", "y", "id", i);
    FrakCarInfo[z] = mysql_GetFloat("vehicles", "z", "id", i);
    FrakCarInfo[a] = mysql_GetFloat("Vehicles", "a", "id", i);
    FrakCarInfo[Color1] = mysql_GetInt("vehicles", "Color1", "id", i);
    FrakCarInfo[Color2] = mysql_GetInt("vehicles", "Color2", "id", i);
    AddStaticVehicleEx(FrakCarInfo[Model], FrakCarInfo[x], FrakCarInfo[y], FrakCarInfo[z], FrakCarInfo[a], FrakCarInfo[Color1], FrakCarInfo[Color2], -1);
    }
    return 1;
    }


    Da bekomme ich 7 errors


    C:\Users\Nikolai\Desktop\ServerSamp\gamemodes\MySQL(Test).pwn(390) : error 035: argument type mismatch (argument 4)
    C:\Users\Nikolai\Desktop\ServerSamp\gamemodes\MySQL(Test).pwn(391) : error 035: argument type mismatch (argument 4)
    C:\Users\Nikolai\Desktop\ServerSamp\gamemodes\MySQL(Test).pwn(392) : error 035: argument type mismatch (argument 4)
    C:\Users\Nikolai\Desktop\ServerSamp\gamemodes\MySQL(Test).pwn(393) : error 035: argument type mismatch (argument 4)
    C:\Users\Nikolai\Desktop\ServerSamp\gamemodes\MySQL(Test).pwn(394) : error 035: argument type mismatch (argument 4)
    C:\Users\Nikolai\Desktop\ServerSamp\gamemodes\MySQL(Test).pwn(395) : error 035: argument type mismatch (argument 4)
    C:\Users\Nikolai\Desktop\ServerSamp\gamemodes\MySQL(Test).pwn(396) : error 035: argument type mismatch (argument 4)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    7 Errors.


  • enum FrakCars
    {
    Fraktion,
    Model,
    Float:x,
    Float:y,
    Float:z,
    Float:a,
    Color1,
    Color2,
    CarID,
    }
    new FrakCarInfo[50][FrakCars];



    stock LoadFrakCars()
    {
    new fc;
    while(fc<10)
    {
    FrakCarInfo[fc][Model] = mysql_GetInt("vehicles", "Model", "id", "1");
    FrakCarInfo[fc][x] = mysql_GetFloat("vehicles", "x", "id", "1");
    FrakCarInfo[fc][y] = mysql_GetFloat("vehicles", "y", "id", "1");
    FrakCarInfo[fc][z] = mysql_GetFloat("vehicles", "z", "id", "1");
    FrakCarInfo[fc][a] = mysql_GetFloat("Vehicles", "a", "id", "1");
    FrakCarInfo[fc][Color1] = mysql_GetInt("vehicles", "Color1", "id", "1");
    FrakCarInfo[fc][Color2] = mysql_GetInt("vehicles", "Color2", "id", "1");
    if(FrakCarInfo[fc][Model] >= 400 && FrakCarInfo[fc][Model] <= 611)
    {
    FrakCarInfo[fc][CarID] = AddStaticVehicleEx(FrakCarInfo[fc][Model], FrakCarInfo[fc][x], FrakCarInfo[fc][y], FrakCarInfo[fc][z], FrakCarInfo[fc][a], FrakCarInfo[fc][Color1], FrakCarInfo[fc][Color2], -1);
    }
    }
    return 1;
    }

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Oben in dem Enum hab ich mal gemacht, dass du bis zu 50 Cars erstellen kannst, sofern du einen erstellen Befehl oder in der MySQL Tabelle die Fahrzeuge hast...


    Bei dem Stock hab ich ein wenig Mist gebaut :D


    Einfach das while(fc<10) zu deiner Fahrzeugzahl aus dem enum ändern, in diesem Fall 50 while(fc<50)

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • anstatt dem "1" einfach nur fc

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Weil kein fc++ eingebaut ist ^^



    stock LoadFrakCars()
    {
    new fc;
    while(fc<50)
    {
    FrakCarInfo[fc][Model] = mysql_GetInt("vehicles", "Model", "id", "1");
    FrakCarInfo[fc][x] = mysql_GetFloat("vehicles", "x", "id", "1");
    FrakCarInfo[fc][y] = mysql_GetFloat("vehicles", "y", "id", "1");
    FrakCarInfo[fc][z] = mysql_GetFloat("vehicles", "z", "id", "1");
    FrakCarInfo[fc][a] = mysql_GetFloat("Vehicles", "a", "id", "1");
    FrakCarInfo[fc][Color1] = mysql_GetInt("vehicles", "Color1", "id", "1");
    FrakCarInfo[fc][Color2] = mysql_GetInt("vehicles", "Color2", "id", "1");
    if(FrakCarInfo[fc][Model] >= 400 && FrakCarInfo[fc][Model] <= 611)
    {
    FrakCarInfo[fc][CarID] = AddStaticVehicleEx(FrakCarInfo[fc][Model], FrakCarInfo[fc][x], FrakCarInfo[fc][y], FrakCarInfo[fc][z], FrakCarInfo[fc][a], FrakCarInfo[fc][Color1], FrakCarInfo[fc][Color2], -1);
    }
    fc++;
    }
    return 1;
    }

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Okay wenn ich es so mache bekomme ich die tollen errors:


    C:\Users\Nikolai\Desktop\ServerSamp\gamemodes\MySQL(Test).pwn(392) : error 035: argument type mismatch (argument 4)
    C:\Users\Nikolai\Desktop\ServerSamp\gamemodes\MySQL(Test).pwn(393) : error 035: argument type mismatch (argument 4)
    C:\Users\Nikolai\Desktop\ServerSamp\gamemodes\MySQL(Test).pwn(394) : error 035: argument type mismatch (argument 4)
    C:\Users\Nikolai\Desktop\ServerSamp\gamemodes\MySQL(Test).pwn(395) : error 035: argument type mismatch (argument 4)
    C:\Users\Nikolai\Desktop\ServerSamp\gamemodes\MySQL(Test).pwn(396) : error 035: argument type mismatch (argument 4)
    C:\Users\Nikolai\Desktop\ServerSamp\gamemodes\MySQL(Test).pwn(397) : error 035: argument type mismatch (argument 4)
    C:\Users\Nikolai\Desktop\ServerSamp\gamemodes\MySQL(Test).pwn(398) : error 035: argument type mismatch (argument 4)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    7 Errors.



    stock LoadFrakCars()
    {
    new fc;
    while(fc<50)
    {
    FrakCarInfo[fc][Model] = mysql_GetInt("vehicles", "Model", "id",fc); //392
    FrakCarInfo[fc][x] = mysql_GetFloat("vehicles", "x", "id", fc);
    FrakCarInfo[fc][y] = mysql_GetFloat("vehicles", "y", "id", fc);
    FrakCarInfo[fc][z] = mysql_GetFloat("vehicles", "z", "id", fc);
    FrakCarInfo[fc][a] = mysql_GetFloat("Vehicles", "a", "id", fc);
    FrakCarInfo[fc][Color1] = mysql_GetInt("vehicles", "Color1", "id", fc);
    FrakCarInfo[fc][Color2] = mysql_GetInt("vehicles", "Color2", "id"," fc");
    if(FrakCarInfo[fc][Model] >= 400 && FrakCarInfo[fc][Model] <= 611)
    {
    FrakCarInfo[fc][CarID] = AddStaticVehicleEx(FrakCarInfo[fc][Model], FrakCarInfo[fc][x], FrakCarInfo[fc][y], FrakCarInfo[fc][z], FrakCarInfo[fc][a], FrakCarInfo[fc][Color1], FrakCarInfo[fc][Color2], -1);
    }
    fc++;
    }
    return 1;
    }


    mache ichs so:
    stock LoadFrakCars()
    {
    new fc;
    while(fc<50)
    {
    FrakCarInfo[fc][Model] = mysql_GetInt("vehicles", "Model", "id", "fc");
    FrakCarInfo[fc][x] = mysql_GetFloat("vehicles", "x", "id", "fc");
    FrakCarInfo[fc][y] = mysql_GetFloat("vehicles", "y", "id", "fc");
    FrakCarInfo[fc][z] = mysql_GetFloat("vehicles", "z", "id", "fc");
    FrakCarInfo[fc][a] = mysql_GetFloat("Vehicles", "a", "id", "fc");
    FrakCarInfo[fc][Color1] = mysql_GetInt("vehicles", "Color1", "id"," fc");
    FrakCarInfo[fc][Color2] = mysql_GetInt("vehicles", "Color2", "id", "fc");
    if(FrakCarInfo[fc][Model] >= 400 && FrakCarInfo[fc][Model] <= 611)
    {
    FrakCarInfo[fc][CarID] = AddStaticVehicleEx(FrakCarInfo[fc][Model], FrakCarInfo[fc][x], FrakCarInfo[fc][y], FrakCarInfo[fc][z], FrakCarInfo[fc][a], FrakCarInfo[fc][Color1], FrakCarInfo[fc][Color2], -1);
    }
    fc++;
    }
    return 1;
    }


    wird kein auto geladen...

  • mach mal so



    stock LoadFrakCars()
    {
    new fc;
    while(fc<50)
    {
    FrakCarInfo[fc][Model] = mysql_GetInt("vehicles", "Model", "id",valstr(fc)); //392
    FrakCarInfo[fc][x] = mysql_GetFloat("vehicles", "x", "id", valstr(fc));
    FrakCarInfo[fc][y] = mysql_GetFloat("vehicles", "y", "id", valstr(fc));
    FrakCarInfo[fc][z] = mysql_GetFloat("vehicles", "z", "id", valstr(fc));
    FrakCarInfo[fc][a] = mysql_GetFloat("Vehicles", "a", "id", valstr(fc));
    FrakCarInfo[fc][Color1] = mysql_GetInt("vehicles", "Color1", "id", valstr(fc));
    FrakCarInfo[fc][Color2] = mysql_GetInt("vehicles", "Color2", "id"," valstr(fc)");
    if(FrakCarInfo[fc][Model] >= 400 && FrakCarInfo[fc][Model] <= 611)
    {
    FrakCarInfo[fc][CarID] = AddStaticVehicleEx(FrakCarInfo[fc][Model], FrakCarInfo[fc][x], FrakCarInfo[fc][y], FrakCarInfo[fc][z], FrakCarInfo[fc][a], FrakCarInfo[fc][Color1], FrakCarInfo[fc][Color2], -1);
    }
    fc++;
    }
    return 1;
    }
    Denn ich denke, mysql_GetInt, GetFloat, was auch immer, erfordern einen String :)

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Sorry hab noch nicht so viel Ahnung mit MySQL...
    Jetzt kommt das hier:
    C:\Users\Nikolai\Desktop\ServerSamp\gamemodes\MySQL(Test).pwn(392) : error 035: argument type mismatch (argument 1)
    C:\Users\Nikolai\Desktop\ServerSamp\gamemodes\MySQL(Test).pwn(393) : error 035: argument type mismatch (argument 1)
    C:\Users\Nikolai\Desktop\ServerSamp\gamemodes\MySQL(Test).pwn(394) : error 035: argument type mismatch (argument 1)
    C:\Users\Nikolai\Desktop\ServerSamp\gamemodes\MySQL(Test).pwn(395) : error 035: argument type mismatch (argument 1)
    C:\Users\Nikolai\Desktop\ServerSamp\gamemodes\MySQL(Test).pwn(396) : error 035: argument type mismatch (argument 1)
    C:\Users\Nikolai\Desktop\ServerSamp\gamemodes\MySQL(Test).pwn(397) : error 035: argument type mismatch (argument 1)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    6 Errors.

  • Omg was isn das fürn Obernoob, der hier immer Rumspammt xDD
    Keine Hobbys, was?


    BTT: Hmm...
    Zeig mal bitte dein
    mysql_GetInt

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • einmal GetInt
    stock mysql_GetInt(Table[], Field[], Where[], Is[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    new sqlint = mysql_fetch_int();
    mysql_free_result();
    return sqlint;
    }


    und GetFloat
    stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
    {
    new query[128], Float:sqlfloat;
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_float(sqlfloat);
    mysql_free_result();
    return sqlfloat;
    }


    ich hab das von hier: [ SCRIPTING ] MySQL (Installation, Zugriff, Einstellungen, Login & Register Beispiel) ich wollte das mal ausprobieren


    //edit:
    hab da mal ne idee :
    stock LoadFrakCars()
    {
    new fc;
    new string[16];
    while(fc<50)
    format(string, sizeof(string),"%d",fc);
    {
    FrakCarInfo[fc][Model] = mysql_GetInt("vehicles", "Model", "id", string);
    FrakCarInfo[fc][x] = mysql_GetFloat("vehicles", "x", "id", string);
    FrakCarInfo[fc][y] = mysql_GetFloat("vehicles", "y", "id", string);
    FrakCarInfo[fc][z] = mysql_GetFloat("vehicles", "z", "id", string);
    FrakCarInfo[fc][a] = mysql_GetFloat("Vehicles", "a", "id", string);
    FrakCarInfo[fc][Color1] = mysql_GetInt("vehicles", "Color1", "id", string);
    FrakCarInfo[fc][Color2] = mysql_GetInt("vehicles", "Color2", "id", string);
    if(FrakCarInfo[fc][Model] >= 400 && FrakCarInfo[fc][Model] <= 611)
    {
    FrakCarInfo[fc][CarID] = AddStaticVehicleEx(FrakCarInfo[fc][Model], FrakCarInfo[fc][x], FrakCarInfo[fc][y], FrakCarInfo[fc][z], FrakCarInfo[fc][a], FrakCarInfo[fc][Color1], FrakCarInfo[fc][Color2], -1);
    }
    fc++;
    }
    return 1;
    }


    Aber dann startet der Server nicht mehr richtig.
    Es steht dort dann nicht ob vehicles geladen werden

    3 Mal editiert, zuletzt von Ber912 () aus folgendem Grund: Fehler verbessert

  • stock LoadFrakCars()
    {
    new fc;
    new string[16];
    while(fc<50)
    {
    format(string, sizeof(string),"%d",fc);
    FrakCarInfo[fc][Model] = mysql_GetInt("vehicles", "Model", "id", string);
    FrakCarInfo[fc][x] = mysql_GetFloat("vehicles", "x", "id", string);
    FrakCarInfo[fc][y] = mysql_GetFloat("vehicles", "y", "id", string);
    FrakCarInfo[fc][z] = mysql_GetFloat("vehicles", "z", "id", string);
    FrakCarInfo[fc][a] = mysql_GetFloat("Vehicles", "a", "id", string);
    FrakCarInfo[fc][Color1] = mysql_GetInt("vehicles", "Color1", "id", string);
    FrakCarInfo[fc][Color2] = mysql_GetInt("vehicles", "Color2", "id", string);
    if(FrakCarInfo[fc][Model] >= 400 && FrakCarInfo[fc][Model] <= 611)
    {
    FrakCarInfo[fc][CarID] = AddStaticVehicleEx(FrakCarInfo[fc][Model], FrakCarInfo[fc][x], FrakCarInfo[fc][y], FrakCarInfo[fc][z], FrakCarInfo[fc][a], FrakCarInfo[fc][Color1], FrakCarInfo[fc][Color2], -1);
    }
    fc++;
    }
    return 1;
    }So vielleicht?

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Jetzt geht es sooo halb :D es wird nur ein Vehicle von 2 geladen...
    Achso und danke, dass du mir soo hilfst ne :)
    //edit bzw. wird überhaupt nur eins geladen#
    //edit2 selbst mit ner for schleife nicht

    2 Mal editiert, zuletzt von Ber912 ()