Beiträge von timm462f

    Also ich habe die DB so:



    Das letzte Fahrzeug einfach kurz wegdenken.


    Ich will jetzt wenn sich der User ein neues Fahrzeug zulegt, dass der Slot +1 Geht aber das soll auch nur bei diesen Spieler passieren und nicht die ganze Spalte immer +1

    Habe den Fehler gefunden


    mysql_fetch_field("kennzeichen",data); format(cInfo[i][kennzeichen], 64, data);


    Musste so (großes K)


    mysql_fetch_field("Kennzeichen",data); format(cInfo[i][Kennzeichen], 64, data);



    //EDIT


    Jetzt hätte ich noch die Frage, ein Spieler soll maximal 5 Autos besitzen, und das soll in die spalte slot eingetragen werden sprich bei dem user in der Tabelle Autos wie kann ich das machen?

    Wie sieht dein OnPlayerCarsLoad aktuell aus?


    public OnPlayerCarsLoad(playerid)
    {
    new query[128], data[356];
    format(query,sizeof(query),"SELECT * FROM autos WHERE besitzer='%i'",PlayerInfo[playerid][pMySQLID]);
    mysql_query(query);
    printf("query = %s", query);
    mysql_store_result();
    new num_rows = mysql_num_rows();
    printf("%i num rows",num_rows);
    if(num_rows > 0)
    {
    while(mysql_fetch_row(data))
    {
    new i=getFreeCarID();
    mysql_fetch_field("model",data); cInfo[i][carmodel] = strval(data);
    mysql_fetch_field("besitzer",data); cInfo[i][besitzer] = strval(data);
    mysql_fetch_field("Farbe1",data); cInfo[i][color_1] = strval(data);
    mysql_fetch_field("Farbe2",data); cInfo[i][color_2] = strval(data);
    mysql_fetch_field("x",data); cInfo[i][c_x] = floatstr(data);
    mysql_fetch_field("y",data); cInfo[i][c_y] = floatstr(data);
    mysql_fetch_field("z",data); cInfo[i][c_z] = floatstr(data);
    mysql_fetch_field("r",data); cInfo[i][c_r] = floatstr(data);
    mysql_fetch_field("id",data); cInfo[i][db_id] = strval(data);
    mysql_fetch_field("kennzeichen",data); format(cInfo[i][kennzeichen], 64, data);
    cInfo[i][id_x] = CreateVehicle(cInfo[i][carmodel],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][color_1],cInfo[i][color_2],-1);
    SetVehicleNumberPlate(cInfo[i][id_x],cInfo[i][kennzeichen]);
    }
    }
    mysql_free_result();
    return 1;
    }

    Ja habe ich



    enum carEnum{
    id_x,
    carmodel,
    besitzer,
    Float:c_x,
    Float:c_y,
    Float:c_z,
    Float:c_r,
    color_1,
    color_2,
    db_id,
    kennzeichen[64],
    zugelassen,
    }

    Danke, das geht schon mal und wie kann ich das Kennzeichen aus der DB lesen lassen und dann so setzten lassen?



    SetVehicleNumberPlate(cInfo[i][id_x],cInfo[i][kennzeichen]);

    Müsste das dann so?



    cInfo[i][carmodel] = mysql_GetIntByInt("autos","model","besitzer","model",PlayerInfo[playerid][pMySQLID],cInfo[i][carmodel]);
    cInfo[i][besitzer] = mysql_GetIntByInt("autos","besitzer","besitzer","model",PlayerInfo[playerid][pMySQLID],cInfo[i][carmodel]);
    cInfo[i][color_1] = mysql_GetIntByInt("autos","farbe1","besitzer","model",PlayerInfo[playerid][pMySQLID],cInfo[i][carmodel]);
    cInfo[i][color_2] = mysql_GetIntByInt("autos","farbe2","besitzer","model",PlayerInfo[playerid][pMySQLID],cInfo[i][carmodel]);
    cInfo[i][c_x] = mysql_GetFloatByInt("autos","x","besitzer","model",PlayerInfo[playerid][pMySQLID],cInfo[i][carmodel]);
    cInfo[i][c_y] = mysql_GetFloatByInt("autos","y","besitzer","model",PlayerInfo[playerid][pMySQLID],cInfo[i][carmodel]);
    cInfo[i][c_z] = mysql_GetFloatByInt("autos","z","besitzer","model",PlayerInfo[playerid][pMySQLID],cInfo[i][carmodel]);
    cInfo[i][c_r] = mysql_GetFloatByInt("autos","r","besitzer","model",PlayerInfo[playerid][pMySQLID],cInfo[i][carmodel]);
    cInfo[i][db_id] = mysql_GetIntByInt("autos","id","besitzer","model",PlayerInfo[playerid][pMySQLID],cInfo[i][carmodel]);
    cInfo[i][id_x]=CreateVehicle(cInfo[i][carmodel],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][color_1],cInfo[i][color_2],-1);

    Code
    [10:29:06] [join] Tim has joined the server ()
    [10:29:15] query = SELECT * FROM autos WHERE besitzer='12'
    [10:29:15] 1 num rows
    [10:29:15] Tim hat sich eingeloggt.

    Jetzt wurde es geladen



    // Edit es lädt aber immer noch die gleiche Vehicleid und kein anderes

    Das kommt dann

    Zwecks dem Fehler, du hast mysql_free_result vergessen:

    Habe es jetzt so gemacht laden aber immer noch nicht



    /Edit


    Würde euch eine Funktion helfen wo auch so ähnlich sachen geladen werden wie navi punkte aus der Datenbank ?


    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

    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