Registersystem ausprägen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo Botfische,
    ich möchte schon bisschen länger mein Registersystem ausprägen, dass man nicht nur ein Passwort eingeben muss, sondern folgendes:

    Code
    Passwort,
    Alter,
    Geschlecht,
    Wohnort


    leider weis ich noch nicht so ganz wie ich das machen soll. Folgende Dialoge sind dafür vorgesehen:

    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrierung","Bitte gib dein gewünschtes Passwort ein:","Register","Abbrechen");
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter","Gib bitte dein Alter an\nz.B. 23.05.1995","Weiter","Abbrechen");
    ShowPlayerDialog(playerid,DIALOG_GESCHLECHT,DIALOG_STYLE_MSGBOX,"Geschlecht","Bitte gib dein Geschlecht an","männlich","weiblich");
    ShowPlayerDialog(playerid,DIALOG_WOHNORT,DIALOG_STYLE_LIST,"Wohnort","Los Santos\nLas Venturas\nSan Fiero","Fertig","Abbrechen");

    Bis jetzt habe ich nur ein Register System wo man nur das Passwort angeben muss und das sieht wie folgt aus:

    //OnPlayerConnect
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    if(PlayerInfo[playerid][pBanned] == 1)
    {
    SendClientMessage(playerid,Rot,"Du bist auf diesem Server gebannt!");
    Kick(playerid);
    return 1;
    }
    else if(PlayerInfo[playerid][pBanned] == 0)
    {
    SendClientMessage(playerid,Weis,"STAATSVERWALTUNG: Willkommen auf RealLife Evolution. Viel Spaß beim spielen !");
    SendClientMessage(playerid,Rot,"SERVER: Dein Account wurde in unserer Datenbank gefunden.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Bitte gib dein Passwort ein:","Login","Abbrechen");
    }
    }
    else
    {
    if(PlayerInfo[playerid][pBanned] == 1)
    {
    SendClientMessage(playerid,Rot,"Du bist auf diesem Server gebannt!");
    Kick(playerid);
    return 1;
    }
    else if(PlayerInfo[playerid][pBanned] == 0)
    {
    SendClientMessage(playerid,Weis,"STAATSVERWALTUNG: Willkommen auf RealLife Evolution. Um zu spielen Registriere dich !");
    SendClientMessage(playerid,Rot,"SERVER: Du bist noch nicht Registriert.");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrierung","Bitte gib dein gewünschtes Passwort ein:","Register","Abbrechen");
    }
    }
    //OnDialogeResponse
    if(dialogid == DIALOG_REGISTER)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Grau,"Du hast den Registriervorgang abbgebrochen. Deswegen wirst du vom Server gekickt.");
    SetTimerEx("KickPlayer", 1000, false, "i", playerid);
    return 1;
    }
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,Grau,"Du hast kein Passwort in das Feld geschrieben !");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrierung","Bitte gib dein gewünschtes Passwort ein:","Register","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,inputtext);
    return 1;
    }
    }
    }
    //Register
    public Register(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"DUMMY","DUMMY");
    dini_Set(Spielerdatei,"Passwort",key);
    SetPlayerScore(playerid,1);
    GivePlayerMoney(playerid,10000);
    PlayerInfo[playerid][pAdminlevel] = 0;
    PlayerInfo[playerid][pPremium] = 0;
    PlayerInfo[playerid][pFraktion] = 0;
    PlayerInfo[playerid][pLeader] = 0;
    PlayerInfo[playerid][pRank] = 0;
    PlayerInfo[playerid][pMember] = 0;
    PlayerInfo[playerid][pEingeloggt] = 0;
    PlayerInfo[playerid][pSkin] = 0;
    PlayerInfo[playerid][pRespekt] = 0;
    PlayerInfo[playerid][pWarn] = 0;
    PlayerInfo[playerid][pBanned] = 0;
    PlayerInfo[playerid][pGeschlecht] = 0;
    PlayerInfo[playerid][pSpawnhealth] = 50;
    PlayerInfo[playerid][pBank] = 40000;
    PlayerInfo[playerid][pEhe] = 0;
    PlayerInfo[playerid][pSpielstunden] = 0;
    PlayerInfo[playerid][pJob] = 0;
    PlayerInfo[playerid][pFisch] = 0;
    PlayerInfo[playerid][pBiggestFisch] = 0;
    PlayerInfo[playerid][pLevelupgrade] = 0;
    PlayerInfo[playerid][pHartz4] = 0;
    PlayerInfo[playerid][pMorde] = 0;
    PlayerInfo[playerid][pTode] = 0;
    PlayerInfo[playerid][pVerbrechen] = 0;
    PlayerInfo[playerid][pKnastbesuche] = 0;
    PlayerInfo[playerid][pWantedtode] = 0;
    PlayerInfo[playerid][pWantedlevel] = 0;
    PlayerInfo[playerid][pDrogen] = 0;
    PlayerInfo[playerid][pAutoschein] = 0;
    PlayerInfo[playerid][pBikeschein] = 0;
    PlayerInfo[playerid][pFlugschein] = 0;
    PlayerInfo[playerid][pAngelschein] = 0;
    PlayerInfo[playerid][pK1schein] = 0;
    PlayerInfo[playerid][pK2schein] = 0;
    PlayerInfo[playerid][pLkwschein] = 0;
    PlayerInfo[playerid][pTogwhisper] = 0;
    SendClientMessage(playerid,Gruen,"Du hast dich erfolgreich registriert.");
    return 1;
    }

    Vielleicht kann mir ja jemand von euch weiter helfen.

  • Hab's nicht getestet
    new registerPasswort[MAX_PLAYERS][64];
    new registerAlter[MAX_PLAYERS];
    new registerGeschlecht[MAX_PLAYERS];
    new registerWohnort[MAX_PLAYERS];


    //OnDialogeResponse
    if(dialogid == DIALOG_REGISTER) {
    if(!response) {
    SendClientMessage(playerid,Grau,"Du hast den Registriervorgang abbgebrochen. Deswegen wirst du vom Server gekickt.");
    SetTimerEx("KickPlayer", 1000, false, "i", playerid);
    return 1;
    }
    if(!strlen(inputtext)) {
    SendClientMessage(playerid,Grau,"Du hast kein Passwort in das Feld geschrieben !");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrierung","Bitte gib dein gewünschtes Passwort ein:","Register","Abbrechen");
    return 1;
    } else {
    registerPasswort[playerid] = inputtext;
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter","Gib bitte dein Alter an\nz.B. 23.05.1995","Weiter","Abbrechen");
    return 1;
    }
    }

    if(dialogid == DIALOG_ALTER) {
    if(!response) {
    SendClientMessage(playerid,Grau,"Du hast den Registriervorgang abbgebrochen. Deswegen wirst du vom Server gekickt.");
    SetTimerEx("KickPlayer", 1000, false, "i", playerid);
    return 1;
    }
    if(!strlen(inputtext) || !isNumeric(inputtext)) {
    SendClientMessage(playerid,Grau,"Du musst deinen Alter angeben.");
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter","Gib bitte dein Alter an\nz.B. 23.05.1995","Weiter","Abbrechen");
    return 1;
    } else {
    registerAlter[playerid] = strval(inputtext);
    ShowPlayerDialog(playerid,DIALOG_GESCHLECHT,DIALOG_STYLE_MSGBOX,"Geschlecht","Bitte gib dein Geschlecht an","männlich","weiblich");
    return 1;
    }
    }

    if(dialogid == DIALOG_GESCHLECHT) {
    registerGeschlecht[playerid] = 0;
    if(!response) {
    registerGeschlecht[playerid] = 1;
    }
    ShowPlayerDialog(playerid,DIALOG_WOHNORT,DIALOG_STYLE_LIST,"Wohnort","Los Santos\nLas Venturas\nSan Fiero","Fertig","Abbrechen");
    return 1;
    }


    if(dialogid == DIALOG_WOHNORT) {
    if(!response) {
    SendClientMessage(playerid,Grau,"Du hast den Registriervorgang abbgebrochen. Deswegen wirst du vom Server gekickt.");
    SetTimerEx("KickPlayer", 1000, false, "i", playerid);
    return 1;
    }
    switch(listitem) {
    // Las Venturas
    case 1: {
    registerWohnort[playerid] = 1;
    }
    // San Fierro
    case 2: {
    registerWohnort[playerid] = 2;
    }
    // Los Santos
    default: {
    registerWohnort[playerid] = 0;
    }
    Register(playerid,inputtext);
    }
    }


    Edit:
    Hier noch mal die Funktion für isNumeric
    isNumeric(const string[]) {
    for(new i = 0, j = strlen(string); i < j; i++) {
    if (string[i] > '9' || string[i] < '0') return 0;
    }
    return 1;
    }

  • Tut mir leid, dass ich mich erst jetzt melde aber ich hatte anders keine Zeit.
    Ich verstehe nicht ganz, wie ich das jetzt machen soll den ich habe diese Variablen für das Alter, Geschlecht, Wohnort und das Passwort wird ja als key[] in dem Register public gespeichert

    PlayerInfo[playerid][pAlter]
    PlayerInfo[playerid][pGeschlecht]
    PlayerInfo[playerid][pWohnort]

    wie genau muss ich das dann einfügen?


  • Das habe ich für dich ja oben gemacht. Du kannst die Variablen auch anpassen, wo liegt das Problem?

  • Das heißt dann so?

    if(dialogid == DIALOG_REGISTER) {
    if(!response) {
    SendClientMessage(playerid,Grau,"Du hast den Registriervorgang abbgebrochen. Deswegen wirst du vom Server gekickt.");
    SetTimerEx("KickPlayer", 1000, false, "i", playerid);
    return 1;
    }
    if(!strlen(inputtext)) {
    SendClientMessage(playerid,Grau,"Du hast kein Passwort in das Feld geschrieben !");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrierung","Bitte gib dein gewünschtes Passwort ein:","Register","Abbrechen");
    return 1;
    } else {
    registerPasswort[playerid] = inputtext; //Passwort weis ich nicht wie ichs machen soll da ich das nicht mit PlayerInfo mache.
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter","Gib bitte dein Alter an\nz.B. 23.05.1995","Weiter","Abbrechen");
    return 1;
    }
    }

    if(dialogid == DIALOG_ALTER) {
    if(!response) {
    SendClientMessage(playerid,Grau,"Du hast den Registriervorgang abbgebrochen. Deswegen wirst du vom Server gekickt.");
    SetTimerEx("KickPlayer", 1000, false, "i", playerid);
    return 1;
    }
    if(!strlen(inputtext) || !isNumeric(inputtext)) {
    SendClientMessage(playerid,Grau,"Du musst deinen Alter angeben.");
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Alter","Gib bitte dein Alter an\nz.B. 23.05.1995","Weiter","Abbrechen");
    return 1;
    } else {
    PlayerInfo[playerid][pWohnort] = strval(inputtext);
    ShowPlayerDialog(playerid,DIALOG_GESCHLECHT,DIALOG_STYLE_MSGBOX,"Geschlecht","Bitte gib dein Geschlecht an","männlich","weiblich");
    return 1;
    }
    }

    if(dialogid == DIALOG_GESCHLECHT) {
    PlayerInfo[playerid][pGeschlecht] = 0;
    if(!response) {
    PlayerInfo[playerid][pGeschlecht] = 1;
    }
    ShowPlayerDialog(playerid,DIALOG_WOHNORT,DIALOG_STYLE_LIST,"Wohnort","Los Santos\nLas Venturas\nSan Fiero","Fertig","Abbrechen");
    return 1;
    }


    if(dialogid == DIALOG_WOHNORT) {
    if(!response) {
    SendClientMessage(playerid,Grau,"Du hast den Registriervorgang abbgebrochen. Deswegen wirst du vom Server gekickt.");
    SetTimerEx("KickPlayer", 1000, false, "i", playerid);
    return 1;
    }
    switch(listitem) {
    // Las Venturas
    case 1: {
    PlayerInfo[playerid][pWohnort] = 1;
    }
    // San Fierro
    case 2: {
    PlayerInfo[playerid][pWohnort] = 2;
    }
    // Los Santos
    default: {
    PlayerInfo[playerid][pWohnort] = 0;
    }
    Register(playerid,inputtext);
    }
    }