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