Autos laden nicht

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
  • Hey kann mir jemand sagen wo ich einen Fehler habe?




    public OnPlayerCarsLoad(playerid)
    {
    new num_rows;
    if(!num_rows)return 1;
    for(new i=0; i<num_rows; i++)
    {
    new id=getFreeCarID();
    cInfo[id][carmodel] = mysql_GetIntByInt("Autos","model","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[id][besitzer] = mysql_GetIntByInt("Autos","besitzer","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[id][c_x] = mysql_GetFloatByInt("Autos","x","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[id][c_y] = mysql_GetFloatByInt("Autos","y","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[id][c_z] = mysql_GetFloatByInt("Autos","z","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[id][c_r] = mysql_GetFloatByInt("Autos","r","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[id][db_id] = mysql_GetIntByInt("Autos","id","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[id][id_x]=CreateVehicle(cInfo[id][carmodel],cInfo[id][c_x],cInfo[id][c_y],cInfo[id][c_z],cInfo[id][c_r],-1,-1,-1);
    }
    return 1;
    }



    loadPlayerCars(playerid)
    {
    new query[128];
    format(query,sizeof(query),"SELECT * FROM autos WHERE besitzer='%i'",PlayerInfo[playerid][pMySQLID]);
    mysql_function_query(dbhandle,query,true,"OnPlayerCarsLoad","i",playerid);
    return 1;
    }


    Sie werden gespeichert aber nicht aus der DB geladen

  • Also es muss hier irgendwo liegen



    public OnPlayerCarsLoad(playerid){ new query[128]; format(query,sizeof(query),"SELECT * FROM autos WHERE besitzer='%i'",PlayerInfo[playerid][pMySQLID]); mysql_query(query); SendClientMessage(playerid,COLOR_RED,"Bis hier geht es"); new num_rows = mysql_num_rows(); if(!num_rows)return 1; for(new i=0; i<num_rows; i++) { new id=getFreeCarID(); cInfo[i][carmodel] = mysql_GetIntByInt("autos","model","besitzer",PlayerInfo[playerid][pMySQLID]); cInfo[i][besitzer] = mysql_GetIntByInt("autos","besitzer","besitzer",PlayerInfo[playerid][pMySQLID]); cInfo[i][c_x] = mysql_GetFloatByInt("autos","x","besitzer",PlayerInfo[playerid][pMySQLID]); cInfo[i][c_y] = mysql_GetFloatByInt("autos","y","besitzer",PlayerInfo[playerid][pMySQLID]); cInfo[i][c_z] = mysql_GetFloatByInt("autos","z","besitzer",PlayerInfo[playerid][pMySQLID]); cInfo[i][c_r] = mysql_GetFloatByInt("autos","r","besitzer",PlayerInfo[playerid][pMySQLID]); cInfo[i][db_id] = mysql_GetIntByInt("autos","id","besitzer",PlayerInfo[playerid][pMySQLID]); cInfo[i][id_x]=CreateVehicle(cInfo[i][carmodel],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],-1,-1,-1); } return 1;}



    Du nachricht wird an dem Spieler Ingame gesendet




    SendClientMessage(playerid,COLOR_RED,"Bis hier geht es");
    new num_rows;
    if(!num_rows)return 1;
    for(new i=0; i<num_rows; i++)
    {
    new id=getFreeCarID();
    SendClientMessage(playerid,COLOR_RED,"Bis hier geht es auch");



    Die 2 Nachricht wird nicht mehr angezeigt

    Einmal editiert, zuletzt von timm462f ()


  • public OnPlayerCarsLoad(playerid)
    {
    new query[128];
    format(query,sizeof(query),"SELECT * FROM autos WHERE besitzer='%i'",PlayerInfo[playerid][pMySQLID]);
    mysql_query(query);
    SendClientMessage(playerid,COLOR_RED,"Bis hier geht es");
    new num_rows;
    for(new i=0; i<num_rows; i++)
    {
    new id=getFreeCarID();
    SendClientMessage(playerid,COLOR_RED,"Bis hier geht es auch");
    cInfo[i][carmodel] = mysql_GetIntByInt("autos","model","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[i][besitzer] = mysql_GetIntByInt("autos","besitzer","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[i][c_x] = mysql_GetFloatByInt("autos","x","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[i][c_y] = mysql_GetFloatByInt("autos","y","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[i][c_z] = mysql_GetFloatByInt("autos","z","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[i][c_r] = mysql_GetFloatByInt("autos","r","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[i][db_id] = mysql_GetIntByInt("autos","id","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[i][id_x]=CreateVehicle(cInfo[i][carmodel],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],-1,-1,-1);
    }
    return 1;
    }


    Habe es jetzt so geht aber immer noch nicht

    Einmal editiert, zuletzt von timm462f () aus folgendem Grund: edit text


  • zu


    und dann den server log posten

  • warum lädst du alles aufeinmal?


    Wäre es nicht so schlauer:



    Habe die 2 Sachen getrennt.
    Dann musst du nur noch unter GameModeInit unter deiner MySQL Verbindung das hinzufügen:

    Code
    GameModeCarsLoad();


    Eins musst du hier ändern undzwar habe ich hier MySQLHandle geschrieben, da ich nicht wusste wie du deine MySQL Verbindung benannt hast.
    Bitte ändere es so wie du das definiert hast :)

  • Wäre es nicht so schlauer:

    Nein, das sind dann X Anfragen an die Datenbank, anstatt einer. Das ist ressourcentechnisch nicht zu empfehlen.


    Zwecks dem Fehler, du hast mysql_free_result vergessen:
    public OnPlayerCarsLoad(playerid)
    {
    new query[128];
    format(query,sizeof(query),"SELECT * FROM autos WHERE besitzer='%i'",PlayerInfo[playerid][pMySQLID]);
    mysql_query(query);
    SendClientMessage(playerid,COLOR_RED,"Bis hier geht es");
    new num_rows = mysql_num_rows();
    printf("%i num rows",num_rows);
    for(new i=0; i<num_rows; i++)
    {
    new id=getFreeCarID();
    SendClientMessage(playerid,COLOR_RED,"Bis hier geht es auch");
    cInfo[i][carmodel] = mysql_GetIntByInt("autos","model","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[i][besitzer] = mysql_GetIntByInt("autos","besitzer","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[i][c_x] = mysql_GetFloatByInt("autos","x","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[i][c_y] = mysql_GetFloatByInt("autos","y","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[i][c_z] = mysql_GetFloatByInt("autos","z","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[i][c_r] = mysql_GetFloatByInt("autos","r","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[i][db_id] = mysql_GetIntByInt("autos","id","besitzer",PlayerInfo[playerid][pMySQLID]);
    cInfo[i][id_x]=CreateVehicle(cInfo[i][carmodel],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],-1,-1,-1);
    }
    mysql_free_result();
    return 1;
    }

  • Das kommt dann