Beiträge von Danger34

    Ja wenn ich da auf vorschau klicke dann verändert er die Einrückungen und setzt alles hinter einander...


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){new pname[MAX_PLAYER_NAME], path[200];GetPlayerName(playerid, pname, sizeof(pname));format(path, sizeof(path), "/Spieler/%s.ini", pname);
    switch(dialogid){ case DIALOG_REGISTER1: { if(!response) { Kick(playerid); } else { new pwlength = strlen(inputtext); if(pwlength > 0) { dini_Create(path); // Erstellt die .ini Datei dini_Set(path, "password", inputtext); // Schreibt das eingegebene Passwort in die .ini ShowPlayerDialog(playerid, DIALOG_REGISTER2, DIALOG_STYLE_LIST, "Geschlecht", "Männlich\r\nWeiblich", "Fertig", "Abbruch"); } else { ShowPlayerDialog(playerid, DIALOG_NOPW1, DIALOG_STYLE_MSGBOX, "Registrierung", "Sie müssen ein Passwort angeben!", "OK", "Abbrechen"); } } } case DIALOG_REGISTER2: { if(!response) { dini_Remove(path); // .ini löschen, da der User die registrierung abgebrochen hat. Kick(playerid); } else { dini_IntSet(path, "sex", listitem); // Schreibt entweder 0 oder 1 in die .ini (0 = Männlich, 1 = Weiblich) ShowPlayerDialog(playerid, DIALOG_REGISTER3, DIALOG_STYLE_INPUT, "Registrierung", "Geben Sie hier Ihr Alter an: (z.B. 16):", "OK", "Abbrechen"); } } case DIALOG_REGISTER3: { if(!response) { dini_Remove(path); // .ini löschen, da der User die registrierung abgebrochen hat. Kick(playerid); } else { dini_Set(path, "age", inputtext); ShowPlayerDialog(playerid, DIALOG_REGISTER4, DIALOG_STYLE_MSGBOX, "Registrierung", "Ihre Registrierung ist nun abgeschlossen!", "OK", "OK"); } } case DIALOG_REGISTER4: { Info[playerid][sex] = dini_Int(path, "sex"); Info[playerid][age] = dini_Int(path, "age"); Info[playerid][logged] = 1; } case DIALOG_LOGIN1:
    { if(!response)
    { Kick(playerid);
    } else
    { if(strlen(inputtext))
    { if(strcmp(inputtext, dini_Get(path, "password")) == 0) // Wenn das Passwort stimmt
    { Info[playerid][sex] = dini_Int(path, "sex"); Info[playerid][age] = dini_Int(path, "age"); Info[playerid][logged] = 1;
    } else
    { ShowPlayerDialog(playerid, DIALOG_WRONGPW, DIALOG_STYLE_MSGBOX, "Login", "Sie haben ein inkorrektes Passwort angegen!", "OK", "Abbrechen");
    }
    } else
    { ShowPlayerDialog(playerid, DIALOG_NOPW2, DIALOG_STYLE_MSGBOX, "Login", "Sie müssen ein Passwort angeben!", "OK", "Abbrechen");
    }
    }
    } case DIALOG_NOPW1: // Sollte das Passwort bei der Registrierung "Leer" sein: { if(!response) { Kick(playerid); } else { ShowPlayerDialog(playerid, DIALOG_REGISTER1, DIALOG_STYLE_INPUT, "Registrierung", "Geben Sie hier Ihr gewünschtes Passwort ein:", "OK", "Abbrechen"); } } case DIALOG_NOPW2: // Sollte das Passwort beim Login "Leer" sein: { if(!response) { Kick(playerid); } else { ShowPlayerDialog(playerid, DIALOG_LOGIN1, DIALOG_STYLE_INPUT, "Login", "Geben Sie hier Ihr Passwort ein:", "OK", "Abbrechen"); } } case DIALOG_WRONGPW: { if(!response) { Kick(playerid); } else { ShowPlayerDialog(playerid, DIALOG_LOGIN1, DIALOG_STYLE_INPUT, "Login", "Geben Sie hier Ihr Passwort ein:", "OK", "Abbrechen"); } }}
    }



    //Enum`S//--------------------------------------------------------------------------enum pInfo{ sex, // 0 = Männlich, 1 = Weiblich. age, // Das Alter password, logged // Ob der Spieler eingeloggt ist.}new Info[MAX_PLAYERS][pInfo];
    public OnPlayerConnect(playerid){ GameTextForPlayer(playerid,"~w~test server",5000,5); gettime(hour, minute); SetPlayerTime(playerid,hour,minute); new pname[MAX_PLAYER_NAME], path[200]; GetPlayerName(playerid, pname, sizeof(pname)); format(path, sizeof(path), "/Spieler.ini", pname); if(!dini_Exists(path)) { // Wenn der Spieler nicht registriert ist: ShowPlayerDialog(playerid, DIALOG_REGISTER1, DIALOG_STYLE_INPUT, "Registrierung", "Geben Sie hier Ihr gewünschtes Passwort ein:", "OK", "Abbrechen"); } else { // Wenn der Spieler registriert ist: ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Geben Sie hier Ihr Passwort ein:", "OK", "Abbrechen"); } return 1;}


    //OnPlayerDisconnect//------------------------------------------------------------------------------------------------------public OnPlayerDisconnect(playerid){new pname[MAX_PLAYER_NAME], path[200];GetPlayerName(playerid, pname, sizeof(pname));format(path, sizeof(path), "/Spieler/%s.ini", pname);
    dini_IntSet(path, "sex", Info[playerid][sex]);dini_IntSet(path, "age", Info[playerid][age]);dini_IntSet(path, "password", Info[playerid][password]);
    Info[playerid][logged] = 0;}

    Hallo Leute,
    ich habe etwas an dem login gebastelt jedoch weiß ich jetzt nicht wie ich mein Passwort abspeichern kann.
    In der Dini wird zwar ein Passwort abgefragt aber dort steht lediglich Passwort = 0
    hier ist der passende Code dazu.




    //SendClientMessageToAll(0xFFFF00AA, tmpbuf);
    //SendClientMessage(playerid, 0xFF004040, tmpbuf);
    /*Schreib mal ins "enum Info" noch rein "Admin"
    Dann einfach die if Abfrage "if(pInfo[playerid][Admin] >= 1)"
    Das wäre nun in dem Fall so:
    Falls der Spieler größer als Admin oder gleich Admin 1 ist.


    Du kannst das verwenden:
    > (Größer als)
    < (Kleiner als)
    >= (Größer als oder ist gleich)
    <= (Kleiner als oder ist gleich)
    == (Ist perfekt gleich)*/
    //--------------------------------------------------------------------------------------------------------------------------------------


    //Icludes
    //-------------------------
    #include <a_samp>
    #include <core>
    #include <float>
    #include <dini>
    #pragma tabsize 0


    //Defines
    //------------------------
    #define COLOR_GREY 0xAFAFAFAA
    #define COLOR_GREEN 0x33AA33AA
    #define COLOR_RED 0xAA3333AA
    #define COLOR_YELLOW 0xFFFF00AA
    #define COLOR_WHITE 0xFFFFFFAA
    #define DIALOG_REGISTER1 0
    #define DIALOG_REGISTER2 1
    #define DIALOG_REGISTER3 2
    #define DIALOG_REGISTER4 3
    #define DIALOG_LOGIN1 4
    #define DIALOG_NOPW1 5
    #define DIALOG_NOPW2 6
    #define DIALOG_WRONGPW 7
    #define DIALOG_LOGIN 8


    //New`s
    //-----------------------------
    new Text:txtTimeDisp;
    new hour, minute;
    new timestr[32];


    //Enum`S
    //--------------------------------------------------------------------------
    enum pInfo
    {
    sex, // 0 = Männlich, 1 = Weiblich.
    age, // Das Alter
    password,
    logged // Ob der Spieler eingeloggt ist.
    }
    new Info[MAX_PLAYERS][pInfo];


    //Forward`S
    //--------------------------
    forward UpdateTimeAndWeather();



    //OnPlayerRequestSpawn
    //-----------------------------------------
    public OnPlayerRequestSpawn(playerid)
    {
    return 1;
    }



    //OnPlayerPickUpPickup
    //-----------------------------------------
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    }


    //OnPlayerConnet
    //--------------------------------------------------------------------------
    public OnPlayerConnect(playerid)
    {
    GameTextForPlayer(playerid,"~w~test server",5000,5);
    gettime(hour, minute);
    SetPlayerTime(playerid,hour,minute);
    new pname[MAX_PLAYER_NAME], path[200];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(path, sizeof(path), "/Spieler.ini", pname);
    if(!dini_Exists(path))
    {
    // Wenn der Spieler nicht registriert ist:
    ShowPlayerDialog(playerid, DIALOG_REGISTER1, DIALOG_STYLE_INPUT, "Registrierung", "Geben Sie hier Ihr gewünschtes Passwort ein:", "OK", "Abbrechen");
    }
    else
    {
    // Wenn der Spieler registriert ist:
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Geben Sie hier Ihr Passwort ein:", "OK", "Abbrechen");
    }
    return 1;
    }



    //OnPlayerDisconnect
    //------------------------------------------------------------------------------------------------------
    public OnPlayerDisconnect(playerid)
    {
    new pname[MAX_PLAYER_NAME], path[200];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(path, sizeof(path), "/Spieler/%s.ini", pname);


    dini_IntSet(path, "sex", Info[playerid][sex]);
    dini_IntSet(path, "age", Info[playerid][age]);
    dini_IntSet(path, "password", Info[playerid][password]);


    Info[playerid][logged] = 0;
    }



    //Befehle
    //------------------------------------------------------------------------------------------------------
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    return 1;
    }



    //OnPlayerSpawn
    //------------------------------------------------------------------------------------------------------


    public OnPlayerSpawn(playerid)
    {
    GivePlayerMoney(playerid, 5000);
    SetPlayerInterior(playerid,0);
    TextDrawShowForPlayer(playerid,txtTimeDisp);
    gettime(hour, minute);
    SetPlayerTime(playerid,hour,minute);


    return 1;
    }



    //OnPlayerDeath
    //------------------------------------------------------------------------------------------------------
    public OnPlayerDeath(playerid, killerid, reason)
    {
    TextDrawHideForPlayer(playerid,txtTimeDisp);
    return 1;
    }



    //OnPlayerRequestClass
    //----------------------------------------------------------------------
    public OnPlayerRequestClass(playerid, classid)
    {
    return 1;
    }


    public OnGameModeInit()
    {
    SetGameModeText("Test");
    ShowPlayerMarkers(1);
    DisableInteriorEnterExits();
    ShowNameTags(1);
    EnableStuntBonusForAll(1);
    txtTimeDisp = TextDrawCreate(605.0,25.0,"00:00");
    TextDrawUseBox(txtTimeDisp, 0);
    TextDrawFont(txtTimeDisp, 3);
    TextDrawSetShadow(txtTimeDisp,0); // no shadow
    TextDrawSetOutline(txtTimeDisp,2); // thickness 1
    TextDrawBackgroundColor(txtTimeDisp,0x000000FF);
    TextDrawColor(txtTimeDisp,0xFFFFFFFF);
    TextDrawAlignment(txtTimeDisp,3);
    TextDrawLetterSize(txtTimeDisp,0.5,1.5);
    UpdateTimeAndWeather();
    SetTimer("UpdateTimeAndWeather",1000 * 60,1);


    // Car Spawns------------------------------------------------------------------
    AddStaticVehicle(451,2040.0520,1319.2799,10.3779,183.2439,16,16);
    }


    //UpdateTimeAndWeather
    //----------------------------------------------------------------------------
    public UpdateTimeAndWeather()
    {
    // Update time
    gettime(hour, minute);
    format(timestr,32,"%02d:%02d",hour,minute);
    TextDrawSetString(txtTimeDisp,timestr);
    SetWorldTime(hour);


    new x=0;
    while(x!=MAX_PLAYERS) {
    if(IsPlayerConnected(x) && GetPlayerState(x) != PLAYER_STATE_NONE) {
    SetPlayerTime(x,hour,minute);
    }
    x++;
    }


    }


    //OnDialogRespnse
    //----------------------------------------------------------------------------
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new pname[MAX_PLAYER_NAME], path[200];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(path, sizeof(path), "/Spieler/%s.ini", pname);


    switch(dialogid)
    {
    case DIALOG_REGISTER1:
    {
    if(!response)
    {
    Kick(playerid);
    }
    else
    {
    new pwlength = strlen(inputtext);
    if(pwlength > 0)
    {
    dini_Create(path); // Erstellt die .ini Datei
    dini_Set(path, "password", inputtext); // Schreibt das eingegebene Passwort in die .ini
    ShowPlayerDialog(playerid, DIALOG_REGISTER2, DIALOG_STYLE_LIST, "Geschlecht", "Männlich\r\nWeiblich", "Fertig", "Abbruch");
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_NOPW1, DIALOG_STYLE_MSGBOX, "Registrierung", "Sie müssen ein Passwort angeben!", "OK", "Abbrechen");
    }
    }
    }
    case DIALOG_REGISTER2:
    {
    if(!response)
    {
    dini_Remove(path); // .ini löschen, da der User die registrierung abgebrochen hat.
    Kick(playerid);
    }
    else
    {
    dini_IntSet(path, "sex", listitem); // Schreibt entweder 0 oder 1 in die .ini (0 = Männlich, 1 = Weiblich)
    ShowPlayerDialog(playerid, DIALOG_REGISTER3, DIALOG_STYLE_INPUT, "Registrierung", "Geben Sie hier Ihr Alter an: (z.B. 16):", "OK", "Abbrechen");
    }
    }
    case DIALOG_REGISTER3:
    {
    if(!response)
    {
    dini_Remove(path); // .ini löschen, da der User die registrierung abgebrochen hat.
    Kick(playerid);
    }
    else
    {
    dini_Set(path, "age", inputtext);
    ShowPlayerDialog(playerid, DIALOG_REGISTER4, DIALOG_STYLE_MSGBOX, "Registrierung", "Ihre Registrierung ist nun abgeschlossen!", "OK", "OK");
    }
    }
    case DIALOG_REGISTER4:
    {
    Info[playerid][sex] = dini_Int(path, "sex");
    Info[playerid][age] = dini_Int(path, "age");
    Info[playerid][logged] = 1;
    }
    case DIALOG_LOGIN1:


    {
    if(!response)


    {
    Kick(playerid);


    }
    else


    {
    if(strlen(inputtext))


    {
    if(strcmp(inputtext, dini_Get(path, "password")) == 0) // Wenn das Passwort stimmt


    {
    Info[playerid][sex] = dini_Int(path, "sex");
    Info[playerid][age] = dini_Int(path, "age");
    Info[playerid][logged] = 1;


    }
    else


    {
    ShowPlayerDialog(playerid, DIALOG_WRONGPW, DIALOG_STYLE_MSGBOX, "Login", "Sie haben ein inkorrektes Passwort angegen!", "OK", "Abbrechen");


    }


    }
    else


    {
    ShowPlayerDialog(playerid, DIALOG_NOPW2, DIALOG_STYLE_MSGBOX, "Login", "Sie müssen ein Passwort angeben!", "OK", "Abbrechen");


    }


    }


    }
    case DIALOG_NOPW1: // Sollte das Passwort bei der Registrierung "Leer" sein:
    {
    if(!response)
    {
    Kick(playerid);
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_REGISTER1, DIALOG_STYLE_INPUT, "Registrierung", "Geben Sie hier Ihr gewünschtes Passwort ein:", "OK", "Abbrechen");
    }
    }
    case DIALOG_NOPW2: // Sollte das Passwort beim Login "Leer" sein:
    {
    if(!response)
    {
    Kick(playerid);
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_LOGIN1, DIALOG_STYLE_INPUT, "Login", "Geben Sie hier Ihr Passwort ein:", "OK", "Abbrechen");
    }
    }
    case DIALOG_WRONGPW:
    {
    if(!response)
    {
    Kick(playerid);
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_LOGIN1, DIALOG_STYLE_INPUT, "Login", "Geben Sie hier Ihr Passwort ein:", "OK", "Abbrechen");
    }
    }
    }



    }




    //Stock`S
    //----------------------------------------------------------------------------

    C:\Users\Adrian\Desktop\SAMP Server\gamemodes\Skript.pwn(118) : error 028: invalid subscript (not an array or too many subscripts): "pInfo"
    C:\Users\Adrian\Desktop\SAMP Server\gamemodes\Skript.pwn(118) : warning 215: expression has no effect
    C:\Users\Adrian\Desktop\SAMP Server\gamemodes\Skript.pwn(118) : error 001: expected token: ";", but found "]"
    C:\Users\Adrian\Desktop\SAMP Server\gamemodes\Skript.pwn(118) : error 029: invalid expression, assumed zero
    C:\Users\Adrian\Desktop\SAMP Server\gamemodes\Skript.pwn(118) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.




    public OnPlayerDisconnect(playerid)
    {
    new pname[MAX_PLAYER_NAME], path[200];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(path, sizeof(path), "/Spieler/%s.ini", pname);


    dini_IntSet(path, "sex", pInfo[playerid][sex]);
    dini_IntSet(path, "age", pInfo[playerid][age]);


    pInfo[playerid][logged] = 0;
    }

    Meine Fehler:


    C:\Users\Adrian\Desktop\SAMP Server\gamemodes\Skript.pwn(46) : error 017: undefined symbol "Info"
    C:\Users\Adrian\Desktop\SAMP Server\gamemodes\Skript.pwn(46) : error 009: invalid array size (negative, zero or out of bounds)
    C:\Users\Adrian\Desktop\SAMP Server\gamemodes\Skript.pwn(51) : error 021: symbol already defined: "pInfo"
    C:\Users\Adrian\Desktop\SAMP Server\gamemodes\Skript.pwn(473) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Errors.





    Könnt ihr mir bei der Problem lösung helfen? :)
    Danke im vorraus


    PS: Dini ist scheiße öffnet für jede Aktion die Datei erneut das ist nen sehr großer Resourcen Aufwand nimm lieber ein Cached Based System.

    Klingt vllt komisch weil ich nicht genau weiß was du damit meinst (vllt mysql)
    naja jetzt darfst du mir das erklären. :D
    ich kenn nur noch die alte leier und es ist schon gut ein jahr her seit dem ich c++ benutzt habe und kenne nur noch meine alte Dini Methode. :wacko:

    Hey Leute,


    vor ein paar Monate hatte ich ein recht gutes Skript und hab den Server nach einiger Zeit wieder geschlossen aufgrund meiner schulischen Leistung etc.
    Jetzt habe ich wieder Zeit und fange von neuem an.
    Jedoch habe ich etwas vergessen und zwar will ich Sachen so simpel wie es nur geht abfragen.


    zb. Hat der Spieler sich im Pickup xy den Führerschein gekauft, schaltet es in seiner eigenen Dini auf 1.
    danach irgendwann die Abfrage ob der Spieler den Führerschein auf 1 stehen hat.
    Ganz simpel doch ich hab vollkommen vergessen wie es geht.
    Das selbe kann man für Befehle machen, ob der Player Leader ist also (1)
    kann diese und diese Befehle ausführen.


    Ich meine das ich das damals in Kombination mit dem gTeam oder sowas gemacht hab.
    Naja vielen dank im vorraus für eure hilfe.
    :love:



    Sorry für die Rechtschreibfehler.
    Ich musste alles relativ schnell verfassen.