Beiträge von Jeffry

    savePlayer(playerid)
    {
    if(sInfo[playerid][eingeloggt]==0) return 1;
    //speichern level,adminlevel,geld,id
    new query[256];
    format(query,sizeof(query),"UPDATE user SET Adminlevel='%i' ,money='%i' ,level='%i' WHERE id='%i'",sInfo[playerid][Adminlevel],GetPlayerMoney(playerid),GetPlayerScore(playerid),sInfo[playerid][id]);
    mysql_function_query(dbhandle,query,false,"","");
    return 1;
    }


    id stand da doppelt drin.

    Lag daran, dass du die Datenbank ID laut Log nirgends ausließt.


    Mache es so:
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    //Login Register System
    if(dialogid == DIALOG_REGISTER)
    {
    {
    if(!response)
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Registrierung war nicht erfolgreich\nBitte registrieren sie sich um auf dem Server zu spielen.","Absenden","Abbrechen");
    return 1;
    }
    {
    //eingegebenes Passwort
    new name[MAX_PLAYER_NAME],passwort[35],query[256];
    GetPlayerName(playerid,name,sizeof(name));

    if(strlen(inputtext)>3)
    {
    //registrierungsfunktion
    SetPlayerScore(playerid,1);
    sInfo[playerid][level] = 1;
    GivePlayerMoney(playerid,15000);
    sInfo[playerid][geld] = 15000;
    sInfo[playerid][eingeloggt] = 1;
    //
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"INSERT INTO user (username,passwort) VALUES ('%s','%s')",name,inputtext);
    printf(query);
    mysql_function_query(dbhandle,query,false,"OnPlayerRegister","d",playerid);
    return 1;

    }
    else
    {

    return 1;
    }
    }
    }
    }
    if(dialogid == DIALOG_LOGIN)
    {
    if(!response)
    {
    new name[MAX_PLAYER_NAME],string[128],stringend[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"{FFFFFF}Der Accountname {37CD00}%s {FFFFFF}wurde gefunden.\nUm mit den Spielen zu beginnen, musst du dich einloggen.\nDu hast die ID: {37CD00}%i\n",name,playerid);
    strcat(stringend,string);
    format(string,sizeof(string),"{FFFFFF}Bitte gebe unten dein Passwort ein.");
    strcat(stringend,string);
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"{37CD00}Login System: {FFFFFF}Einloggen",stringend,"Login","Abbruch");
    strdel(stringend,0,sizeof(stringend));
    strdel(string,0,sizeof(string));
    return 1;
    }
    {
    new name[MAX_PLAYER_NAME],query[128],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>0)
    {
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND passwort='%s'",name,passwort);
    mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
    }
    return 1;
    }

    }

    return 1;
    }


    Und dann füge das hier noch drunter dazu:
    forward OnPlayerRegister(playerid);
    public OnPlayerRegister(playerid)
    {
    sInfo[playerid][id] = cache_insert_id();
    savePlayer(playerid);
    return 1;
    }

    Dann schreibe es beim Laden wieder so:
    sInfo[playerid][datum] = cache_get_field_content_int(0,"datum",dbhandle);


    und beim Speichern so:
    format(query,sizeof(query),"UPDATE user SET level='%i',cash='%i',datum='%i',geschlecht='%i',alevel='%i',skin='%i',fraktion='%i',rang='%i' WHERE id='%i'"

    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    //Login Register System
    if(dialogid == DIALOG_REGISTER)
    {
    {
    if(!response)
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Registrierung war nicht erfolgreich\nBitte registrieren sie sich um auf dem Server zu spielen.","Absenden","Abbrechen");
    return 1;
    }
    {
    //eingegebenes Passwort
    new name[MAX_PLAYER_NAME],passwort[35],query[256];
    GetPlayerName(playerid,name,sizeof(name));

    if(strlen(inputtext)>3)
    {
    //registrierungsfunktion
    SetPlayerScore(playerid,1);
    sInfo[playerid][level] = 1;
    GivePlayerMoney(playerid,15000);
    sInfo[playerid][geld] = 15000;
    sInfo[playerid][eingeloggt] = 1;
    //
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"INSERT INTO user (username,passwort) VALUES ('%s','%s')",name,inputtext);
    printf(query);
    mysql_function_query(dbhandle,query,false,"","");
    savePlayer(playerid); //Hinzugefügt
    return 1;

    }
    else
    {

    return 1;
    }
    }
    }
    }
    if(dialogid == DIALOG_LOGIN)
    {
    if(!response)
    {
    new name[MAX_PLAYER_NAME],string[128],stringend[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"{FFFFFF}Der Accountname {37CD00}%s {FFFFFF}wurde gefunden.\nUm mit den Spielen zu beginnen, musst du dich einloggen.\nDu hast die ID: {37CD00}%i\n",name,playerid);
    strcat(stringend,string);
    format(string,sizeof(string),"{FFFFFF}Bitte gebe unten dein Passwort ein.");
    strcat(stringend,string);
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"{37CD00}Login System: {FFFFFF}Einloggen",stringend,"Login","Abbruch");
    strdel(stringend,0,sizeof(stringend));
    strdel(string,0,sizeof(string));
    return 1;
    }
    {
    new name[MAX_PLAYER_NAME],query[128],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>0)
    {
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND passwort='%s'",name,passwort);
    mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
    }
    return 1;
    }

    }

    return 1;
    }


    Einfach dein gesamtes OnDialogResponse damit ersetzen.

    Ja, das ist das Gleiche, macht keinen Unterscheid.
    Nur:
    format(query, sizeof(query), "DELETE FROM FracVehicles WHERE ID = %d", vid);
    zu:
    format(query, sizeof(query), "DELETE FROM FracVehicles WHERE ID = %d", i);

    Was ist denn dein Alter jetzt? Du redest die ganze Zeit vom Alter, gibst aber dein Geburtsdatum an, bzw. die Variable heißt Datum. Im Code steht wiederum, dass man sein Alter eingeben soll, was dann in die Variable datum gespeichert wird.
    Das macht keinen Sinn.


    Ein Datum: 15.03.2015
    Ein Alter: 22


    In deinem Code ist das durcheinander, also was davon soll es sein?

    Teste es mal so:
    COMMAND:delfraktionscar(playerid,params[])
    {
    new vid;
    if(!strlen(params))
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,-1,"Du bist in keinem Fahrzeug!");
    vid = GetPlayerVehicleID(playerid);
    }
    else
    {
    vid = strval(params);
    if(!GetVehicleModel(vid)) return SendClientMessage(playerid,-1,"Dieses Fahrzeug existiert nicht!");
    }
    new idx = -1;
    for(new i=0; i<FRAC_VEHICLES; i++)
    {
    if(fracVehicle[i][e_vID] == vid)
    {
    idx = i;
    break;
    }
    }
    if(idx==-1) return SendClientMessage(playerid,-1,"Das Fahrzeug ist kein Fraktionsfahrzeug!");
    if(fracVehicle[idx][e_modelID] == 0) return SendClientMessage(playerid,-1,"Das Fahrzeug ist kein Fraktionsfahrzeug!");
    new query[256];
    format(query, sizeof(query), "DELETE FROM FracVehicles WHERE ID = %d", idx);
    mysql_tquery(handle, query);
    DestroyVehicle(fracVehicle[idx][e_vID]);
    LoadFracVehicles();
    SendClientMessage(playerid,-1,"Fraktionsfahrzeug entfernt!");
    return 1;
    }

    Schreibe den Teil so:
    if(strlen(inputtext)>3)
    {
    //registrierungsfunktion
    SetPlayerScore(playerid,1);
    sInfo[playerid][level] = 1;
    GivePlayerMoney(playerid,15000);
    sInfo[playerid][geld] = 15000;
    sInfo[playerid][eingeloggt] = 1;
    //
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"INSERT INTO user (username,passwort) VALUES ('%s','%s')",name,inputtext);
    printf(query);
    mysql_function_query(dbhandle,query,false,"","");
    savePlayer(playerid); //Hinzugefügt
    return 1;
    }

    sInfo[playerid][datum] = cache_get_field_content_int(0,"datum",dbhandle);
    zu:
    new tmp[16];
    cache_get_field_content(0,"datum",tmp,dbhandle);
    format(sInfo[playerid][datum], 16, tmp);


    Und dann poste den Code mit dem du OnPasswordResponse aufrufst (suche nach "OnPasswordResponse" (mit Anführungszeichen)).

    Debugge es bitte so:
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    for(new i=0; i<FRAC_VEHICLES; i++)
    {
    printf("%d == %d", fracVehicle[i][e_vID], vehicleid);
    if(fracVehicle[i][e_vID] == vehicleid)
    {
    printf("Frak: %d | vehFrak: %d", SpielerInfo[playerid][pFraktion], fracVehicle[i][e_fracID]);
    if(SpielerInfo[playerid][pFraktion] != fracVehicle[i][e_fracID])
    {
    printf("Kommt nicht rein.");
    TogglePlayerControllable(playerid, false);
    TogglePlayerControllable(playerid, true);
    SendClientMessage(playerid, COLOR_RED, "Du bist nicht in der Fraktion, die dieses Fahrzeug verwenden darf.");
    }
    break;
    }
    }
    return 1;
    }
    Dann poste was im Log steht, wenn du ein solches Fahrzeug betrittst.