Brauche eure Hilfe. Ich will per Dialog einen Passwortwechsel machen
//EDIT Geklärt
Brauche eure Hilfe. Ich will per Dialog einen Passwortwechsel machen
//EDIT Geklärt
mach einfach ein dialog mit input und denn machst du
dini_Set(sform,"Passwort",inputtext);
so hab ich es bei mir damals gemacht
Warte bei mir heist das Changepassword ich zeig dir mal den Befehl (ist ein Dialog)
ACHTUNG: Es ist relativ viel
Es sind nicht die ganzen Farben die du dafür brauchst, aber ich hab sie dir alle mal aufgezeigt
#define COLOR_LIGHTGREEN 0x81F628AA#define COLOR_LIGHTBLUE 0x33CCFFAA#define COLOR_YELLOW 0xFFFF00AA //Gelb#define COLOR_YELLOW2 0xFFFF00AA //Gelb#define COLOR_ADMCMD 0xFF4122FF#define COLOR_LIGHTRED 0xF60000AA#define COLOR_RED 0xF60000AA#define COLOR_PINK 0xFFC0CBAA //Pink#define COLOR_GREY 0xAFAFAFAA //Grau#define COLOR_WHITE 0xFFFFFFAA //weiß#define COLOR_BLUE 0x0000BBAA //Blau
Noch die Dialog IDs (BITTE ANPASSEN)
#define DIALOG_PASSWORT 1#define DIALOG_PASSWORT1 2
COMMAND:changepassword(playerid,params[])//der befehl{ ShowPlayerDialog(playerid,DIALOG_PASSWORT,DIALOG_STYLE_INPUT,"Passwort ändern","Um dein Passwort zu ändern, tippe bitte dein aktuelles Passwort ein!","OK","Abbrechen");//Der Dialog return 1;}
if(dialogid==DIALOG_PASSWORT) { if(response==0) { SendClientMessage(playerid,COLOR_LIGHTGREEN,"Du hast den Vorgang abgebrochen.");//Wenn er auf "Abbrechen" klickt return 1; } if(response==1) { if(!strlen(inputtext))//wenn er nichts eingibt kommt... { //das hier: SendClientMessage(playerid,COLOR_LIGHTRED,"ERROR: Falsches Passwort! Bitte gebe dein aktuelles Passwort ein!"); ShowPlayerDialog(playerid,DIALOG_PASSWORT,DIALOG_STYLE_INPUT,"~Passwort ändern~","Um dein Passwort zu ändern, tippe bitte dein aktuelles Passwort ein!","OK","Abbrechen"); } else { //wenn das etwas eingegeben wurde, kommt das hier: changepasswort(playerid,inputtext);//ein neuer stock wird erstellt return 1; } } }
stock changepasswort(playerid,key[])//der stock "changepasswort" (irrgendwo im Script reinkopieren){ new Spielerdatei[64]; new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name)); format(Spielerdatei,sizeof(Spielerdatei),"Dein Verzeichnis, wo du die Spieler speicherst",name); if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))//das alte Passwort wird erkannt { //wurde das Passwort richtig eingegeben passiert folgendes: ShowPlayerDialog(playerid,DIALOG_PASSWORT1,DIALOG_STYLE_INPUT,"~Passwort ändern~","Nun tippe bitte dein neues Passwort ein!\n(ACHTUNG: Achte auf Groß- und Kleinschreibung!)","OK","Abbrechen");//Der dialog, um das neue Passwort einzutippen (ein neuer Dialog wird erstellt!) return 1; } else { //wurde das Passwort falsch eingegeben passiert das hier: SendClientMessage(playerid,COLOR_LIGHTRED,"ERROR: Falsches Passwort!"); //die nachricht, dass das Passwort nicht das aktuelle Passwort ist! ShowPlayerDialog(playerid,DIALOG_PASSWORT,DIALOG_STYLE_INPUT,"~Passwort ändern~","Um dein Passwort zu ändern, tippe bitte dein aktuelles Passwort ein!","OK","Abbrechen");//der dialog um das Passwort erneut einzugeben. } return 0;}
if(dialogid==DIALOG_PASSWORT1)//der neue Dialog { if(response==0)//wenn er auf Abbrechen geht { SendClientMessage(playerid, COLOR_LIGHTRED, "Du hast den Vorgang abgebrochen!"); Kick(playerid); return 1; } if(response==1)//wenn er auf OK geht { if(!strlen(inputtext))//gibt er nichts ein, kommt: { SendClientMessage(playerid, COLOR_LIGHTRED, "ERROR: Das Passwort war zu kurz!"); ShowPlayerDialog(playerid,DIALOG_PASSWORT1,DIALOG_STYLE_INPUT,"~Passwort ändern~","Nun tippe bitte dein neues Passwort ein!\n(ACHTUNG: Achte auf Groß- und Kleinschreibung!)","OK","Abbrechen"); return 1; } else { //wurde etwas eingetippt, kommt unser zweiter stock changepasswort1(playerid,inputtext); return 1; } } }
stock changepasswort1(playerid,key[])//auch wieder irrgendwo im script reinkopieren{ new Spielerdatei[64]; new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name)); format(Spielerdatei,sizeof(Spielerdatei),"Dein Verzeichnis wo du die Spieler Speicherst(z.B.:/Accounts/%s.txt)",name); dini_Create(Spielerdatei); dini_Set(Spielerdatei,"Passwort",key);//die funktion das das was bei Passwort steht gelöscht und durch das neue ("key") ersetzt wird. SendClientMessage(playerid, COLOR_LIGHTBLUE,"Du hast dein Passwort geändert!"); new stringmsg[128]; format(stringmsg, sizeof(stringmsg),"{FFFFFF}~Hier ist dein neues Passwort~\n\nPasswort: %s",key);//eine nachricht, um das neue Passwort nochmals anzuzeigen. ShowPlayerDialog(playerid,9908,DIALOG_STYLE_MSGBOX,"~Passwort ändern~",stringmsg,"Weiter","Weiter"); return 1;}
Falls du es nicht hinbekommst, mache ich demnächst ein ausführliches Tutorial
Ich hoffe ich konnte dir helfen