Beiträge von Jeffry

    Dann füge da drüber das ein:
    COMMAND:zeit(playerid, params[])
    {
    new h, m;
    if(sscanf(params, "dd", h, m)) return SendClientMessage(playerid, 0xFF0000FF, "Nutze: /zeit [Stunde] [Minute]");
    if(h > 23 || h < 0 || m > 59 || m < 0) return SendClientMessage(playerid, 0xFF0000FF, "Ungültiger Wert");
    for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerTime(i, h, m);
    return 1;
    }

    Im OnPlayerCarsLoad die Schleife zu:
    for(new i=0; i<num_rows; i++)
    {
    cache_get_field_content(i,"besitzer",cInfo[id][besitzer],dbhandle,50);
    cInfo[id][model]=cache_get_field_content_int(i,"model",dbhandle);
    cInfo[id][c_x]=cache_get_field_content_float(i,"x",dbhandle);
    cInfo[id][c_y]=cache_get_field_content_float(i,"y",dbhandle);
    cInfo[id][c_z]=cache_get_field_content_float(i,"z",dbhandle);
    cInfo[id][c_r]=cache_get_field_content_float(i,"r",dbhandle);
    cInfo[id][db_id]=cache_get_field_content_int(i,"id",dbhandle);
    cInfo[id][ci_tank]=cache_get_field_content_int(i,"tank",dbhandle);
    cInfo[id][id_x]=CreateVehicle(cInfo[id][model],cInfo[id][c_x],cInfo[id][c_y],cInfo[id][c_z],cInfo[id][c_r],-1,-1,-1);
    tank[cInfo[id][id_x]]=100;
    }


    Und:
    {507,2119.9333,1397.8513,10.6391,179.5709,6500,0,1,1"Elegant",45},
    zu:
    {507,2119.9333,1397.8513,10.6391,179.5709,6500,0,1,1,"Elegant",45},


    enum carEnum{
    id_x,
    model,
    besitzer,
    Float:c_x,
    Float:c_y,
    Float:c_z,
    Float:c_r,
    Color_1,
    Color_2,
    db_id,
    ci_tank



    Hatte dir das oben noch rein editiert, hast du aber wohl nicht mehr gesehen.

    public SavePlayerCar(playerid)
    {
    new pname[MAX_PLAYER_NAME], path[200];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(path, sizeof(path), "/PlayerCars/%s.ini", pname);
    dini_IntSet(path, "Fahrzeugid", cInfo[playerid][id_x]);
    dini_Set(path, "besitzer", cInfo[playerid][besitzer]);
    dini_FloatSet(path, "x", cInfo[playerid][c_x]);
    dini_FloatSet(path, "y", cInfo[playerid][c_y]);
    dini_FloatSet(path, "z", cInfo[playerid][c_z]);
    dini_FloatSet(path, "r", cInfo[playerid][c_r]);
    return 1;
    }

    new h, m;
    if(sscanf(params, "dd", h, m)) return SendClientMessage(playerid, 0xFF0000FF, "Nutze: /befehl [Stunde] [Minute]");
    if(h > 23 || h < 0 || m > 59 || m < 0) return SendClientMessage(playerid, 0xFF0000FF, "Ungültiger Wert");
    for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetPlayerTime(i, h, m);

    //Autohaus Cars notiz
    enum autohauscarEnum{
    model,
    Float:c_x,
    Float:c_y,
    Float:c_z,
    Float:c_r,
    c_preis,
    ah_id,
    Color_1,
    Color_2,
    c_name[50],
    c_tank,
    id_x //Das hier ganz am Ende, weil du ihm keinen Wert gibst.
    }


    cInfo[id][c_name]=cache_get_field_content(i,"name",dbhandle); //zeile 1673
    zu:
    cache_get_field_content(i,"name",cInfo[id][c_name],dbhandle,50); //zeile 1673


    Was bleibt dann an Errors übrig?

    public OnPlayerRequestClass(playerid)
    {
    //Wenn der Spieler die Class-Selection betritt prüfe, ob er bereits eingeloggt ist
    if(!PlayerInfo[playerid][pLoggedIn])
    {
    //Wenn nicht, dann prüfe ob der Spieler ein Konto hat
    //Dazu wird ein Query gesendet und ein neues Callback aufgerufen
    //%e steht für einen geprüften String (sollte anstatt %s in Queries verwendet werden)
    new query[128];
    mysql_format(handle, query, sizeof(query), "SELECT id FROM users WHERE name = '%e'", PlayerInfo[playerid][pName]);

    //Das Query wird abgesendet und die playerid an OnUserCheck übergeben
    mysql_pquery(handle, query, "OnUserCheck", "d", playerid);
    printf("Select Query: %s", query);
    }
    return 1;
    }


    Was steht so im Server Log?


    Poste bitte dein OnUserCheck dazu, und einen Screenshot der Daten aus der Datenbank.

    Nein, das ist kein Fehler. Ich lese nur die ID aus, das reicht um herauszufinden, ob der Spieler eine Zeile hat, man braucht nicht die ganze Zeile zu selektieren.
    Du nutzt ja den WHERE Teil um den Spieler zu finden.


    Der Code passt.
    Schalte mal den Debug Modus an und poste dann was im MySQL Log steht, wenn der Fehler auftritt.

    Poste den Code von deinem OnPlayerRequestClass (dort wo du den Dialog anzeigst).


    Zum OnDialogResponse:
    Beim mysql_format musst du ganz hinten "inputtext" mit "buf" ersetzen.

    Versuche es so:
    if(dialogid == DIALOG_VERSICHERN)
    {
    new string[512];
    if(response == 1)
    {
    for(new i=0; i<MAX_AUTOS; i++)
    {
    new pname[MAX_PLAYER_NAME], id;
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);

    if(!strcmp(CarInfo[i][Besitzer], pname) && strlen(CarInfo[i][Besitzer]) > 2 && CarInfo[i][modelID] > 0)
    {
    format(string, sizeof(string), "%s%s (ID: %d)\n", string, PlayerVehicle[CarInfo[i][modelID]-400], id);
    id++;
    }
    }
    if(id == 0) SendClientMessage(playerid, 0xFF0000FF, "Error: Du hast kein Fahrzeug.");
    else if(listitem == 0) ShowPlayerDialog(playerid, DIALOG_VERSICHERUNG1, DIALOG_STYLE_LIST, "Welches Fahrzeug?", string, "Ok", "Abbrechen");
    else if(listitem == 1) ShowPlayerDialog(playerid, DIALOG_VERSICHERUNG2, DIALOG_STYLE_LIST, "Welches Fahrzeug?", string, "Ok", "Abbrechen");
    else if(listitem == 2) ShowPlayerDialog(playerid, DIALOG_VERSICHERUNG3, DIALOG_STYLE_LIST, "Welches Fahrzeug?", string, "Ok", "Abbrechen");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, error, "Du hast den Vorgang abgebrochen.");
    }
    }


    Du hattest das return an der falschen Stelle drin. Ich habe den Code auch gleich etwas übersichtlicher gemacht.