Login/Register Problem

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
  • Hi,
    ich habe irgendwie ein großes Problem. Wenn ich /register mache, steht da, dass ich mich registriert habe. Aber 1. der erstellt die Datei nicht.. Also %s.ini, 2. Wenn ich /login <Passwort> mache, passiert nix.


    Also einmal hier /Register & /Login:


    if (strcmp(cmd, "/login", true) ==0 )
    {
    if(IsPlayerConnected(playerid))
    {
    new tmppass[64];
    if(gPlayerLogged[playerid] == 1)
    {
    SendClientMessage(playerid, COLOR_WHITE, "SERVER: Du bist schon eingeloggt!");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "FEHLER: Der Befehl lautet: /login <Passwort>");
    return 1;
    }
    strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
    //Encrypt(tmppass);
    OnPlayerLogin(playerid,tmppass);
    }
    return 1;
    }
    if (strcmp(cmd, "/register", true) == 0 )
    {
    if(IsPlayerConnected(playerid))
    {
    if(gPlayerLogged[playerid] == 1)
    {
    SendClientMessage(playerid, COLOR_WHITE, "SERVER: Du bist schon eingeloggt!.");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "users/%s.ini", sendername);
    new File: hFile = fopen(string, io_read);
    if (hFile)
    {
    SendClientMessage(playerid, COLOR_YELLOW, "Dieser Benutzername ist schon vorhanden, bitte wähle dir einen anderen aus!");
    fclose(hFile);
    return 1;
    }
    new tmppass[64];
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "FEHLER: Der Befehl lautet: /register <Passwort>");
    return 1;
    }
    strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
    //Encrypt(tmppass);
    OnPlayerRegister(playerid,tmppass);
    }
    return 1;


    Und OnPlayerRegister & OnPlayerLogin:


    public OnPlayerRegister(playerid, password[])
    {
    if(IsPlayerConnected(playerid))
    {
    new string3[32];
    new playername3[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername3, sizeof(playername3));
    format(string3, sizeof(string3), "users/%s.ini", playername3);
    new File: hFile = fopen(string3, io_write);
    if (hFile)
    {
    strmid(PlayerInfo[playerid][pKey], password, 0, strlen(password), 255);
    new var[32];
    //BlaBla die Sachen
    if ((PlayerInfo[playerid][pPos_x]==0.0 && PlayerInfo[playerid][pPos_y]==0.0 && PlayerInfo[playerid][pPos_z]==0.0))
    {
    PlayerInfo[playerid][pPos_x] = 2246.6;
    PlayerInfo[playerid][pPos_y] = -1161.9;
    PlayerInfo[playerid][pPos_z] = 1029.7;
    }
    if(Spectate[playerid] != 255)
    {
    PlayerInfo[playerid][pPos_x] = Unspec[playerid][sPx];
    PlayerInfo[playerid][pPos_y] = Unspec[playerid][sPy];
    PlayerInfo[playerid][pPos_z] = Unspec[playerid][sPz];
    PlayerInfo[playerid][pInt] = Unspec[playerid][sPint];
    PlayerInfo[playerid][pLocal] = Unspec[playerid][sLocal];
    }
    //BlaBla die Sachen
    fclose(hFile);
    }
    ClearChatbox(playerid, 8);
    SendClientMessage(playerid, COLOR_YELLOW,"Herzlichen Glückwunsch, du hast dich erfolgreich registriert.");
    SendClientMessage(playerid, COLOR_YELLOW,"Bitte logge dich mit dem folgendem Befehl ein: /login <Passwort>");
    }
    return 1;


    public OnPlayerLogin(playerid,password[])
    {
    new tmp2[256];
    new string2[64];
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername2, sizeof(playername2));
    format(string2, sizeof(string2), "users/%s.ini", playername2);
    new File: UserFile = fopen(string2, io_read);
    if ( UserFile )
    {
    new PassData[256];
    new keytmp[256], valtmp[256];
    fread( UserFile , PassData , sizeof( PassData ) );
    keytmp = ini_GetKey( PassData );
    if( strcmp( keytmp , "Key" , true ) == 0 )
    {
    valtmp = ini_GetValue( PassData );
    strmid(PlayerInfo[playerid][pKey], valtmp, 0, strlen(valtmp)-1, 255);
    }
    if(strcmp(PlayerInfo[playerid][pKey],password, true ) == 0 )
    {
    new key[ 256 ] , val[ 256 ];
    new Data[ 256 ];
    while ( fread( UserFile , Data , sizeof( Data ) ) )
    {
    key = ini_GetKey( Data );
    //BlaBla Die Sachen
    }//end while
    fclose(UserFile);//close the file after everything has been read in the while
    }
    else
    {
    SendClientMessage(playerid, COLOR_WHITE, "SERVER: Das Passwort ist nicht korrekt.");
    fclose(UserFile);
    gPlayerLogTries[playerid] += 1;
    if(gPlayerLogTries[playerid] == 4)
    {
    Ban(playerid);
    SendClientMessage(playerid, COLOR_RED," Deine Ip wurde gespeichert. Du wurdest gebannt, weil du das Passwort öfter falsch eingegeben hast.");
    }
    return 1;
    }
    PlayerInfo[playerid][pAdjustable] = 0;
    ResetPlayerMoney(playerid);
    ConsumingMoney[playerid] = 1;
    PlayerMoney[playerid] = PlayerInfo[playerid][pCash];
    // CurrentMoney[playerid] = PlayerInfo[playerid][pCash];
    if(PlayerInfo[playerid][pReg] == 0)
    {
    PlayerInfo[playerid][pLevel] = 1;
    PlayerInfo[playerid][pSHealth] = 0.0;
    PlayerInfo[playerid][pHealth] = 50.0;
    PlayerInfo[playerid][pPos_x] = 2246.6;
    PlayerInfo[playerid][pPos_y] = -1161.9;
    PlayerInfo[playerid][pPos_z] = 1029.7;
    PlayerInfo[playerid][pInt] = 15;
    PlayerInfo[playerid][pLocal] = 255;
    PlayerInfo[playerid][pTeam] = 3;
    PlayerInfo[playerid][pModel] = 22;
    new randphone = 1000 + random(8999);//minimum 1000 max 9999 //giving one at the start
    PlayerInfo[playerid][pPnumber] = randphone;
    PlayerInfo[playerid][pPhousekey] = 255;
    PlayerInfo[playerid][pPbiskey] = 255;
    PlayerInfo[playerid][pAccount] = 50000;
    PlayerInfo[playerid][pReg] = 1;
    PlayerMoney[playerid] = PlayerMoney[playerid] +5000;
    }
    if(PlayerInfo[playerid][pGebannt] == 1) //autoban
    {
    SendClientMessage(playerid, COLOR_RED,"Du bist vom Server gebannt.");
    Ban(playerid);
    }
    else if(PlayerInfo[playerid][pCK] > 0)
    {
    Kick(playerid);
    }
    format(string2, sizeof(string2), "SERVER: Willkommen %s",playername2);
    SendClientMessage(playerid, COLOR_WHITE,string2);
    printf("%s hat sich eingeloggt.",playername2);


    if (PlayerInfo[playerid][pDonateRank] > 0)
    {
    SendClientMessage(playerid, COLOR_WHITE,"SERVER: Du bist ein Premiumnutzer.");
    }
    if (PlayerInfo[playerid][pAdmin] > 0)
    {
    format(string2, sizeof(string2), "SERVER: Du bist als Admin Level %d eingeloggt.",PlayerInfo[playerid][pAdmin]);
    SendClientMessage(playerid, COLOR_WHITE,string2);
    }
    SetSpawnInfo(playerid, PlayerInfo[playerid][pTeam], PlayerInfo[playerid][pModel], PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z], 1.0, -1, -1, -1, -1, -1, -1);
    if(gTeam[playerid] == 0)
    {
    gTeam[playerid] = 3;
    }
    else
    {
    gTeam[playerid] = PlayerInfo[playerid][pTeam];
    }
    gPlayerLogged[playerid] = 1;
    SpawnPlayer(playerid);
    format(tmp2, sizeof(tmp2), "~w~Willkommen ~n~~y~ %s", playername2);
    DateProp(playerid);
    if(WantedLevel[playerid] == 1) { WantedPoints[playerid] = 3; }
    else if(WantedLevel[playerid] == 2) { WantedPoints[playerid] = 5; }
    else if(WantedLevel[playerid] == 3) { WantedPoints[playerid] = 7; }
    else if(WantedLevel[playerid] == 4) { WantedPoints[playerid] = 9; }
    else if(WantedLevel[playerid] == 5) { WantedPoints[playerid] = 11; }
    else if(WantedLevel[playerid] == 6) { WantedPoints[playerid] = 13; }
    SetPlayerWantedLevel(playerid,WantedLevel[playerid]);
    GameTextForPlayer(playerid, tmp2, 5000, 1);
    SendClientMessage(playerid, COLOR_YELLOW, motd);
    if(PlayerInfo[playerid][pFMember] < 255)
    {
    format(tmp2, sizeof(tmp2), "Familie MOTD: %s.", FamilyInfo[PlayerInfo[playerid][pFMember]][FamilyMOTD]);
    SendClientMessage(playerid, COLOR_YELLOW, tmp2);
    }
    }
    return 1;


    Mfg

  • so dumm bin ich nun wieder auchmal nicht oO