Hallo Leute,
ich habe schon Meister Google gefragt, doch der weiß auch nicht´s.
Kurze Erklärung:
Ich bin auf einem Server Scripter und die haben ein "vermutlich" editiertes Script. Und da stellt sich folgendes Problem:
Wenn ich mich einloggen will und auch das richtige Passwort habe steht da immer: Dein Passwort ist falsch. - was ja auch sein soll WENN ES FALSCH IST. Aber es ist nicht falsch.
Code vom Login:
public OnPlayerLogin(playerid,password[])
{
new tmp2[128];
new string2[128];
new string[128];
new playername2[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername2, sizeof(playername2));
format(string2, sizeof(string2), "/Accounts/%s.ini", playername2);
new File: UserFile = fopen(string2, io_read);
if ( UserFile )
{
new PassData[128];
new keytmp[128], valtmp[128];
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 );
if( strcmp( key , "Level" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pLevel] = strval( val ); }
{
new tmp2[128];
new string2[128];
new string[128];
new playername2[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername2, sizeof(playername2));
format(string2, sizeof(string2), "/Accounts/%s.ini", playername2);
new File: UserFile = fopen(string2, io_read);
if ( UserFile )
{
new PassData[128];
new keytmp[128], valtmp[128];
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 );
if( strcmp( key , "Level" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pLevel] = strval( val ); }
if( strcmp( key , "Bombe" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pBombe] = strval( val ); }
}//end while
fclose(UserFile);//close the file after everything has been read in the while
}
else
{
format(string,sizeof(string),"{ff0000}Dein eingegebendes Passwort war fasch, bitte gib dein richtiges Passwort im den unterigen Fenster ein:");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"{00ff00}[{ff0000}Mein Server{00ff00}]{ffffff}- Account",string,"Einloggen","Abbrechen");
fclose(UserFile);
gPlayerLogTries[playerid] += 1;
if(gPlayerLogTries[playerid] == 3) { Kick(playerid); }
return 1;
}
PlayerInfo[playerid][pAdjustable] = 0;
ResetPlayerMoney(playerid);
ConsumingMoney[playerid] = 1;
GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
CurrentMoney[playerid] = PlayerInfo[playerid][pCash];
}//end while
fclose(UserFile);//close the file after everything has been read in the while
}
else
{
format(string,sizeof(string),"{ff0000}Dein eingegebendes Passwort war fasch, bitte gib dein richtiges Passwort im den unterigen Fenster ein:");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"{00ff00}[{ff0000}Mein Server{00ff00}]{ffffff}- Account",string,"Einloggen","Abbrechen");
fclose(UserFile);
gPlayerLogTries[playerid] += 1;
if(gPlayerLogTries[playerid] == 3) { Kick(playerid); }
return 1;
}
PlayerInfo[playerid][pAdjustable] = 0;
ResetPlayerMoney(playerid);
ConsumingMoney[playerid] = 1;
GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
CurrentMoney[playerid] = PlayerInfo[playerid][pCash];
P.S.: DIe letzte zeile beim Anfangsteil ist die, wo dann die .ini-Datei ausgelesen wird. Ich hab SIe deshalb nicht hier drin, weil der Text sonst zu lange ist (Zeichen) Das gleich gilt auch beim Entteil, da ist es die erste zeile die letzte von der Auslesung von der .ini datei also Adminlevel, LIzenze etc.