Ich habe ein Team-DM Script und weiß einfach nicht warum da immer "Falsches Passwort" steht ...
Nach dem Registrieren einloggen funktioniert einwandfrei.
Aber dann gehts nicht mehr (wollte mit Adminrechte geben in der .ini).
Hier mal der PAWN-Code, wie die .ini angelegt wird usw.:
public OnPlayerRegister(playerid, password[])
{
if(IsPlayerConnected(playerid))
{
new name[MAX_PLAYER_NAME], str[128], ip[15];
GetPlayerName(playerid, name, sizeof name);
GetPlayerIp(playerid, ip, sizeof ip);
format(str, sizeof str, "%s.ini", name);
new File:account = fopen(str, io_write);
if (account)
{
strmid(AccountInfo[playerid][Password], password, 0, strlen(password), 255);
AccountInfo[playerid][Cash] = GetPlayerMoney(playerid);
new file[128];
{
format(file, sizeof file, "Password: %s\n\r", AccountInfo[playerid][Password]);
{fwrite(account, file); }
format(file, sizeof file, "AdminLevel: %d\n\r", 0);
{fwrite(account, file); AccountInfo[playerid][AdminLevel] = 0; }
format(file, sizeof file, "DonateRank: %d\n\r",AccountInfo[playerid][DonateRank]);
{fwrite(account, file); }
format(file, sizeof file, "Cash: %d\n\r", AccountInfo[playerid][Cash]);
{fwrite(account, file); }
format(file, sizeof file, "Warnings: %d\n\r",AccountInfo[playerid][Warns]);
{fwrite(account, file); }
format(file, sizeof file, "WarnReason1: %s\n\r",AccountInfo[playerid][WarnReason1]);
{fwrite(account, file); }
format(file, sizeof file, "WarnReason2: %s\n\r",AccountInfo[playerid][WarnReason2]);
{fwrite(account, file); }
format(file, sizeof file, "WarnReason3: %s\n\r",AccountInfo[playerid][WarnReason3]);
{fwrite(account, file); }
format(file, sizeof file, "Kills: %d\n\r",AccountInfo[playerid][Kills]);
{fwrite(account, file); }
format(file, sizeof file, "Deaths: %d\n\r",AccountInfo[playerid][Deaths]);
{fwrite(account, file); }
format(file, sizeof file, "IPAddress: %s\n\r",ip);
{fwrite(account, file); }
}
fclose(account);
SendClientMessage(playerid, GREEN, "Der Account wurde erfolgreich registriert, bitte wähle dein Team!");
}
}
return 1;
}
Und hier der /login und /register Command:
if (strcmp(cmd, "/register", true) == 0) // Registers an account
{
if(IsPlayerConnected(playerid))
{
if(AccountInfo[playerid][Logged] == 1)
{
SendClientMessage(playerid, GREEN, "Der Account wurde erfolgreich registriert, du bist automatisch eingeloggt viel Spaß");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s.ini", sendername);
new File: hFile = fopen(string, io_read);
if (hFile)
{
SendClientMessage(playerid, RED, "Dieser Nickname ist bereits vergeben.");
fclose(hFile);
return 1;
}
new tmppass[128];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "Verwende: /register [password]");
strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
OnPlayerRegister(playerid, MD5_Hash(tmppass));
GivePlayerMoney(playerid, 10000);
AccountInfo[playerid][Logged] = 1;
}
return 1;
}
if (strcmp(cmd, "/login", true) == 0) // Logins
{
new tmppass[128];
if(AccountInfo[playerid][Logged] == 1) return SendClientMessage(playerid, RED, "Du bist bereits eingeloggt.");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "Verwende: /login [password]");
new plname[MAX_PLAYER_NAME];
GetPlayerName(playerid, plname, sizeof(plname));
format(string, sizeof(string), "%s.ini", plname);
if(!fexist(string)) return SendClientMessage(playerid, RED, "Dieser Account ist noch nicht registriert Verwende: /register [password] um Ihn zu registrieren");
strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
OnPlayerLogin(playerid, MD5_Hash(tmppass));
return 1;
}
Bitte um Hilfe!
//edit
OnPlayerLogin(playerid, MD5_Hash(tmppass));
Was muss ich da ändern, damit der das aus der Datei das normale PW und nicht das verschlüsselte liest?
//edit2
RCON Login ganz vergessen!
Erledigt.