Samp server stürtzt im login system nach falscher pw eingabe ab!

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,


    Ich habe ein problem, in meinen server (root server) im login system gibt es ein problem. Am anfang müssen Sie sich registrieren und ein pw eingeben.Doch die meisten vergessen das, und geben das beim nächsten login falsch ein, und dan stürtzt der ganze server ab und im Terminal von Putty steht ( Segmentation fault) alle fliegen dan raus, dan starte ich den server neu (./samp03svr) und manche geben es dan wieder falsch ein.


    Dan haben es die leute satt und gehen. Ich weiß nicht woran das liegt :(


    Ich hoffe jmd kann mir helfen.



    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.ini",pname);
    if(response)
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Gebe dein Passwort ein","Einloggen","Abbrechen");
    return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!");
    }
    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0)
    {
    GivePlayerMoney(playerid,dini_Int(accFormat,"Geld"));
    SetPlayerScore(playerid,dini_Int(accFormat,"Score"));
    Spieler[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,0xFFFFFFFF,"du wurdest eingeloggt!.");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Gebe dein Passwort ein","Einloggen","Abbrechen");
    return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
    }
    }
    case DIALOG_REG:
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Registrieren","Abbrechen");
    return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist zu kurz!");
    }
    dini_Create(accFormat);
    dini_Set(accFormat,"Passwort",inputtext);
    Spieler[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,0xFFFFFFFF,"Account wurde angelegt und du wurdest eingelogt.");
    }
    }
    }
    else
    {
    switch(dialogid)
    {
    case DIALOG_LOGINhowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Gebe dein Passwort ein","Einloggen","Abbrechen");
    case DIALOG_REGhowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich (Achtung! du kannst das Passwort nich mehr ändern!)","Registrieren","Abbrechen");
    }
    }
    return 1;
    }



    public OnPlayerConnect(playerid)
    {
    GameTextForPlayer(playerid,"~w~Willkommen zum Gangwar 2.0",5000,5);
    SendClientMessage(playerid,COLOR_BLUE,"Herzlich Willkommen beim Gangwar 2011!");
    SendClientMessage(playerid,COLOR_BLUE,"Wen Sie fragen haben geben Sie bitte /help ein");
    SendClientMessage(playerid,COLOR_BLUE,"Wir Wünschen euch viel Spaß auf unseren Server eure Admins Comet und Marten");
    TextDrawShowForPlayer(playerid, Forum);
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.ini",pname);
    if(fexist(accFormat))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte gebe dein Passwort ein!","Einloggen","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich (Achtung du kannst das Passwort nicht mehr ändern!","Registrieren","Abbrechen");
    }
    new string[100];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(string, sizeof(string), "%s ist dem Server Beigetreten!", pname);
    SendClientMessageToAll(0xAAAAAAAA, string);
    return 1;
    }


    Danke im vorraus!

  • ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Registrieren","Abbrechen");

    Versuch mal anstatt eine 1 DIALOG_STYLE_INPUT oder DIALOG_STYLE_PASSWORD


    bei den andern alen auch


    vllt klappts dann...


    MfG
    Deagle


    /edit
    Auch fehler vllt:D


    format(accFormat,sizeof accFormat,"%s.ini",pname);

    mach in dem Ordner "Scriptfiles" einen Ordner namens Accounts"


    und dann machs so:
    format(accFormat,sizeof accFormat,"/Accounts/%s.ini",pname);

  • geht leider nicht, er stürtzt immer noch bei falscher pw eingabe ab. So sieht es momentan aus :




    public OnPlayerConnect(playerid)
    {
    GameTextForPlayer(playerid,"~w~Willkommen zum Gangwar 2.0",5000,5);
    SendClientMessage(playerid,COLOR_BLUE,"Herzlich Willkommen beim Gangwar 2011!");
    SendClientMessage(playerid,COLOR_BLUE,"Wen Sie fragen haben geben Sie bitte /help ein");
    SendClientMessage(playerid,COLOR_BLUE,"Wir Wünschen euch viel Spaß auf unseren Server eure Admins Comet und Marten");
    TextDrawShowForPlayer(playerid, Forum);
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"/Accounts/%s.ini",pname);
    if(fexist(accFormat))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT ,"Login","Bitte gebe dein Passwort ein!","Einloggen","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REG,DIALOG_STYLE_INPUT ,"Registrieren","Bitte Registriere dich (Achtung du kannst das Passwort nicht mehr ändern!","Registrieren","Abbrechen");
    }
    new string[100];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(string, sizeof(string), "%s ist dem Server Beigetreten!", pname);
    SendClientMessageToAll(0xAAAAAAAA, string);
    return 1;
    }



    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"/Accounts/%s.ini",pname);
    if(response)
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Gebe dein Passwort ein","Einloggen","Abbrechen");
    return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!");
    }
    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0)
    {
    GivePlayerMoney(playerid,dini_Int(accFormat,"Geld"));
    SetPlayerScore(playerid,dini_Int(accFormat,"Score"));
    Spieler[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,0xFFFFFFFF,"du wurdest eingeloggt!.");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT ,"Gebe dein Passwort ein","Einloggen","Abbrechen");
    return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
    }
    }
    case DIALOG_REG:
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_REG,DIALOG_STYLE_INPUT ,"Registrieren","Bitte Registriere dich","Registrieren","Abbrechen");
    return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist zu kurz!");
    }
    dini_Create(accFormat);
    dini_Set(accFormat,"Passwort",inputtext);
    Spieler[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,0xFFFFFFFF,"Account wurde angelegt und du wurdest eingelogt.");
    }
    }
    }
    else
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT ,"Login","Gebe dein Passwort ein","Einloggen","Abbrechen");
    case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,DIALOG_STYLE_INPUT ,"Registrieren","Bitte Registriere dich (Achtung! du kannst das Passwort nich mehr ändern!)","Registrieren","Abbrechen");
    }
    }
    return 1;
    }

  • da fehlt ein paramete roder nicht


    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Gebe dein Passwort ein","Einloggen","Abbrechen");


    muss das nicht so


    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login2345678 oder so""Gebe dein Passwort ein","Einloggen","Abbrechen");


  • Ja so müsste das eig gehn...

  • Stürtzt leider immer noch ab...


    so sieht es jetzt bei mir aus:



    public OnPlayerConnect(playerid)
    {
    GameTextForPlayer(playerid,"~w~Willkommen zum Gangwar 2.0",5000,5);
    SendClientMessage(playerid,COLOR_BLUE,"Herzlich Willkommen beim Gangwar 2011!");
    SendClientMessage(playerid,COLOR_BLUE,"Wen Sie fragen haben geben Sie bitte /help ein");
    SendClientMessage(playerid,COLOR_BLUE,"Wir Wünschen euch viel Spaß auf unseren Server eure Admins Comet und Marten");
    TextDrawShowForPlayer(playerid, Forum);
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"/Accounts/%s.ini",pname);
    if(fexist(accFormat))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login""Gebe dein Passwort ein","Einloggen","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Registrieren","Bitte Registriere dich (Achtung du kannst das Passwort nicht mehr ändern!","Registrieren","Abbrechen");
    }
    new string[100];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(string, sizeof(string), "%s ist dem Server Beigetreten!", pname);
    SendClientMessageToAll(0xAAAAAAAA, string);
    return 1;
    }



    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"/Accounts/%s.ini",pname);
    if(response)
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login""Gebe dein Passwort ein","Einloggen","Abbrechen");
    return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!");
    }
    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0)
    {
    GivePlayerMoney(playerid,dini_Int(accFormat,"Geld"));
    SetPlayerScore(playerid,dini_Int(accFormat,"Score"));
    Spieler[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,0xFFFFFFFF,"du wurdest eingeloggt!.");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login""Gebe dein Passwort ein","Einloggen","Abbrechen");
    return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
    }
    }
    case DIALOG_REG:
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Registrieren","Bitte Registriere dich","Registrieren","Abbrechen");
    return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist zu kurz!");
    }
    dini_Create(accFormat);
    dini_Set(accFormat,"Passwort",inputtext);
    Spieler[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,0xFFFFFFFF,"Account wurde angelegt und du wurdest eingelogt.");
    }
    }
    }
    else
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Gebe dein Passwort ein","Einloggen","Abbrechen");
    case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Registrieren","Bitte Registriere dich (Achtung! du kannst das Passwort nich mehr ändern!)","Registrieren","Abbrechen");
    }
    }
    return 1;
    }





    Es kommen auch 4 Warnungen:


    warning 202: number of arguments does not match definition
    warning 202: number of arguments does not match definition
    warning 202: number of arguments does not match definition
    warning 203: symbol is never used: "total_vehicles_from_files"


    ich hoffe ier könnt mir helfen, es ist ja echt blöd wen einer das pw falsch eingiebt und alle fliegen raus.

    2 Mal editiert, zuletzt von Jimmy93432 ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Hast du den Ordner "Accounts" im Ordner "Scriptfiles" erstellt? XDDD