Fraktionsautos 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
  • Hallo.


    ich würde gerne meine Fraktionsfahrzeuge laden lassen. In OnGameModeInitd habe ich folgendes eingetragen


    LoadFrakCars();


    Hier einmal die LoadFrakCars



    loadFrakCars()
    {
    new query[128];
    format(query,sizeof(query),"SELECT * FROM fautos");
    mysql_pquery(handle,query,"OnFrakCarsLoad","i");
    return 1;
    }



    forward OnFrakCarsLoad();
    public OnFrakCarsLoad()
    {
    for(new i=0; i<cache_num_rows(); i++)
    {
    new id = getFreeCarID();
    cache_get_value_name_int(i, "id", cInfo[id][db_id] );//Integer
    cache_get_value_name_int(i, "model", cInfo[id][model]);//Integer
    cache_get_value_name_int(i, "kaufer", cInfo[id][pMember]);//Integer
    cache_get_value_name_float(i, "x", cInfo[id][c_x]); //Float
    cache_get_value_name_float(i, "y", cInfo[id][c_y]);//Float
    cache_get_value_name_float(i, "z", cInfo[id][c_z]);//Float
    cache_get_value_name_float(i, "r", cInfo[id][c_r]);//Float
    cache_get_value_name_int(i, "c1", cInfo[id][color1]);//Integer
    cache_get_value_name_int(i, "c2", cInfo[id][color2]);//Integer
    cache_get_value_name_int(i, "c3", cInfo[id][color3]);//Integer
    cache_get_value_name_int(i, "key", cInfo[id][key]);//Integer
    cache_get_value_name_int(i, "c_gesperrt", cInfo[id][c_gespeert] );//Integer
    if(cInfo[id][c_gespeert] == 0)
    {
    cInfo[id][id_x] = CreateVehicle(cInfo[id][model],cInfo[id][c_x],cInfo[id][c_y],cInfo[id][c_z],cInfo[id][c_r],cInfo[id][color1],cInfo[id][color2],cInfo[id][color3]);
    }
    }
    return 1;
    }


    Die Autos werden nicht erstellt. Ich weiß nicht welchen Fehler ich hier gemacht habe. Die Autos sollen beim Start des Server erstellt werden.

  • Welche MySQL Version nutzt du?


    Ist es außerdem korrekt, dass du einmal das LoadFrakCars mit großem L geschrieben hast, und einmal mit kleinem L? Prüfe das mal im Code. Das muss nämlich gleich sein, also beides mal LoadFrakCars oder beides mal loadFrakCars.

  • Ich nutze die MySQL R41.


    // Edit weil weitere Fragen kamen



    Das mit dem Groß & klein ist mir nicht aufgefallen. Habe es aber gerade getestet es beides gleich zu schreiben.
    Allerdings gibt es keine Änderung des Problems.

  • Die Funktion cache_num_rows gibt es da nicht mehr.
    for(new i=0; i<cache_num_rows(); i++)
    zu:
    new rows;
    cache_get_row_count(rows);
    for(new i=0; i<rows; i++)


    Außerdem kannst du die Funktion so schreiben:
    LoadFrakCars()
    {
    mysql_pquery(handle,"SELECT * FROM fautos","OnFrakCarsLoad"); //Hier musste das "i" weg
    return 1;
    }

  • Danke dir für deine Hilfe.


    Ich bekomme derzeit noch angezeigt das i nicht definiert ist bei der Abfrage der Daten aus der Datenbank.




    cache_get_value_name_int(i, "id", cInfo[id][db_id] );//Integer
    cache_get_value_name_int(i, "model", cInfo[id][model]);//Integer
    cache_get_value_name_int(i, "kaufer", cInfo[id][besitzer]);//Integer
    cache_get_value_name_float(i, "x", cInfo[id][c_x]); //Float
    cache_get_value_name_float(i, "y", cInfo[id][c_y]);//Float
    cache_get_value_name_float(i, "z", cInfo[id][c_z]);//Float
    cache_get_value_name_float(i, "r", cInfo[id][c_r]);//Float
    cache_get_value_name_int(i, "c1", cInfo[id][color1]);//Integer
    cache_get_value_name_int(i, "c2", cInfo[id][color2]);//Integer
    cache_get_value_name_int(i, "c3", cInfo[id][color3]);//Integer
    cache_get_value_name_int(i, "key", cInfo[id][key]);//Integer
    cache_get_value_name_int(i, "c_gesperrt", cInfo[id][c_gespeert] );//Integer

  • Hab gerade gesehen gehabt das ich die klammern vergessen habe wodurch der Fehler kam.


    So das ganze habe ich nun mal getestet bzw versuch.


    Ich kriege durch meine pawn.cfg folgendes angezeigt


    [11:28:05] [ERROR] mysql_pquery: invalid connection handle '0' (C:\Users\Rene\Desktop\Aktuell\mysql-R41-win32\gamemodes\beispiel.pwn:800)


    Zeile 800:
    loadFrakCars(){ mysql_pquery(handle,"SELECT * FROM fautos","OnFrakCarsLoad"); //Hier musste das "i" weg return 1;}



    //Edit


    Hat sich erledigt. Hatte in der OnGamemode init die Verbindung zur SQL nicht hergestellt.


    Ein hoch auf @Jeffry