Hallo,
ich bins mal wieder. Könnte einer von euch mir eventuell einen Befehl scripten, mit dem man InGame sein PW ändern kann (nur sein eigenes PW, versteht sich ...)
Würde mich freuen, danke schonmal im voraus.
Zilla
Hallo,
ich bins mal wieder. Könnte einer von euch mir eventuell einen Befehl scripten, mit dem man InGame sein PW ändern kann (nur sein eigenes PW, versteht sich ...)
Würde mich freuen, danke schonmal im voraus.
Zilla
der Spieler gibt ein neues PAsswort ein, das dann in der .ini, MySQL Tabelle, wie auch immer, das alter ersetzt und fertig is das ganze
schön und gut aber du musst wissen, dass ichs nicht weiß wies geht, sonst würde ich nicht fragen ...
könntest mir des vielleicht machen ?
defines:
#define changepw 2012
OnPlayerCommand:
if (strcmp("/changepw", cmdtext, true, 10) == 0)
{
ShowPlayerDialog(playerid, changepw, DIALOG_STYLE_INPUT, "{FFFF00}Passwort ändern", "Gebe hier dein NEUES Passwort ein:", "Fortfahren", "Abbrechen");
return 1;
}
OnDialogResponse:
if(dialogid == changepw){
if(response){
new datei[120], playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof playername);
format(datei, sizeof datei, "PFADZUDENUSERFILES/%s.ini", playername);
dini_Set(datei, "Passwort", inputtext);
SendClientMessage(playerid, 0xffffffff, "SERVER: Passwort geändert.");
}
}
Danke für deine Antwort. Werds gleich mal testen und berichten.
LG Zilla
/edit ergebnis
Also hab alles brav eingefügt, geht auch ingame alles nur das pw ändert sich ned. bei mir in der account datei heißt das Passwort "Key", ich habs auch umbenannt. nur es ändert sich einfach ned. Woran liegts?
Du musst den Pfad zu deinen Userfiles auch ändern.
Du musst auch bei PlayerSave(playerid); die enum wodrin das PW gespeichert wird eg. PlayerInfo[playerid][key] // das passwort
musst dementsprechen setzen mit
format(PlayerInfo[playerid][key], sizeof PlayerInfo[playerid][key], "%s", inputtext);
Da ja bei deinem PlayerSave(playerid), bzw, SpielcerSpeicher, oder wie auch immer du die Funktion genannt hast, das PW NOCHMALS überschrieben wird mit dem alten, das kannst wie gesagt mit der redifinieren der Vairable verhindern.
hab ich ich habs so umgeändert:
format(datei, sizeof datei, "/Accounts/%s.ini", playername);
dini_Set(datei, "Key", inputtext);
in den acc datein ist das pw Key=blablabla deshalb hab ich auch Key hingeschrieben .. stimmt das so?
Es wird mit sicherheit richtig abgespeichert aber bei OnPlayerDisconnect denke ich das es wie im vorherigen Post abermals überschrieben wird, überprüfe dies.
ehrlich gesagt weiß ich ned so ganz wo ich das
Zitatformat(PlayerInfo[playerid][key], sizeof PlayerInfo[playerid][key], "%s", inputtext);
hinpacken soll. unter dem enum pInfo gibt es pKey, das taucht unter onplayerregister, playerupdate und unter onplayerlogin auf.
PlayerUpdate{
//BLA BLA bissle code
//BEVOR PlayerInfo[playerid][pKey] GESETZT wird:
new datei[120], playername[MAX_PLAYERNAME];
GetPlayerName(playerid, playername, sizeof playername);
format(datei, sizeof datei, "PFADZUDENUSERFILES/%s.ini", playername);
format(PlayerInfo[playerid][pKey], sizeof PlayerInfo[playerid][pKey], "%s", dini_Get(datei, "Key"));