SpielerSpeichern || Neues Problem

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
  • Guten Tag liebe Community,
    ich habe schon wieder ein Problem mit diesem Register Login System. Ingame
    sieht alles super aus aber wenn ich die .txt Datei des Spielers öffne steht überall
    0. Ich glaube ich habe etwas übersehen und brauche euere Hilfe ..
    Hier der Screen von der .txt Datei

    Und hier mein Script
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    // Selfmade Script by DarkShadow .... Version 0.1
    // erstellt vom 5.07.2012 bis --.--.----#
    /////////////////////////////////////////////////////////////////////////////////////////////////////////
    // Features
    // Register Login / System


    // ==========
    #include <a_samp>
    #include <ocmd>
    #include <sscanf>
    #include <dini>
    // ==========
    #define ROT 0x910000FF
    #define ORANGE 0xFF9600FF
    #define GRAU 0xC8C8C8FF
    #define WEISS 0xFFFFFFFF
    // ==========
    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2
    #define DIALOG_WILKOMMENZ 3
    #define DIALOG_WILKOMMENB 4
    #define DIALOG_A 5
    #define DIALOG_B 6
    #define DIALOG_C 7
    // ==========
    main()
    {
    print(" Selfmade by DarkShadow ");
    }
    // ==========
    public OnGameModeInit()
    {
    SetGameModeText("German Reallife");
    return 1;
    }
    // ==========
    public OnGameModeExit()
    {
    return 1;
    }
    // ==========
    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
    }
    // ==========
    public OnPlayerConnect(playerid)
    {
    new Playerdatei[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.txt",name);
    if(dini_Exists(Playerdatei))
    {
    ShowPlayerDialog(playerid,DIALOG_WILKOMMENZ,DIALOG_STYLE_MSGBOX,"Wilkommen","Schön, dass du wieder einmal auf meinem Selfmade Server vorbeischaust.\nDrücke auf 'Login' und dich einzuloggen.\nViel Spaß","Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_WILKOMMENB,DIALOG_STYLE_MSGBOX,"Wilkommen","Erstmal wilkommen auf meinen Selfmade Server.\nDu bist neu hier und dein Account wurde noch nicht registriert. Drücke auf 'Registrieren'\num dir einen Account zu erstellen.\nWeitere Regeln und eine kleine Einführung erfolgen dann.\n\nBei Fragen melde dich bitte an einen Admin [/admins].\n\tDas Adminteam","Registrieren","Abbrechen");
    }
    return 1;
    }


    // ==========
    public OnPlayerDisconnect(playerid, reason)
    {
    if(GetPVarInt(playerid,"Eingeloggt")==1)
    {
    SpielerSpeichern(playerid);
    }
    return 1;
    }
    // ==========
    public OnPlayerSpawn(playerid)
    {
    return 1;
    }
    // ==========
    public OnPlayerDeath(playerid, killerid, reason)
    {
    return 1;
    }
    // ==========
    public OnVehicleSpawn(vehicleid)
    {
    return 1;
    }
    // ==========
    public OnVehicleDeath(vehicleid, killerid)
    {
    return 1;
    }
    // ==========
    public OnPlayerText(playerid, text[])
    {
    return 1;
    }
    // ==========
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/mycommand", cmdtext, true, 10) == 0)
    {
    // Do something here
    return 1;
    }
    return 0;
    }
    // ==========
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    return 1;
    }
    // ==========
    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    return 1;
    }
    // ==========
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    return 1;
    }
    // ==========
    public OnPlayerEnterCheckpoint(playerid)
    {
    return 1;
    }
    // ==========
    public OnPlayerLeaveCheckpoint(playerid)
    {
    return 1;
    }
    // ==========
    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    return 1;
    }
    // ==========
    public OnPlayerLeaveRaceCheckpoint(playerid)
    {
    return 1;
    }
    // ==========
    public OnRconCommand(cmd[])
    {
    return 1;
    }
    // ==========
    public OnPlayerRequestSpawn(playerid)
    {
    return 1;
    }
    // ==========
    public OnObjectMoved(objectid)
    {
    return 1;
    }
    // ==========
    public OnPlayerObjectMoved(playerid, objectid)
    {
    return 1;
    }
    // ==========
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    return 1;
    }
    // ==========
    public OnVehicleMod(playerid, vehicleid, componentid)
    {
    return 1;
    }
    // ==========
    public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
    {
    return 1;
    }
    // ==========
    public OnVehicleRespray(playerid, vehicleid, color1, color2)
    {
    return 1;
    }
    // ==========
    public OnPlayerSelectedMenuRow(playerid, row)
    {
    return 1;
    }
    // ==========
    public OnPlayerExitedMenu(playerid)
    {
    return 1;
    }
    // ==========
    public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
    {
    return 1;
    }
    // ==========
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    return 1;
    }
    // ==========
    public OnRconLoginAttempt(ip[], password[], success)
    {
    return 1;
    }
    // ==========
    public OnPlayerUpdate(playerid)
    {
    return 1;
    }
    // ==========
    public OnPlayerStreamIn(playerid, forplayerid)
    {
    return 1;
    }
    // ==========
    public OnPlayerStreamOut(playerid, forplayerid)
    {
    return 1;
    }
    // ==========
    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
    return 1;
    }
    // ==========
    public OnVehicleStreamOut(vehicleid, forplayerid)
    {
    return 1;
    }
    // ==========
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==DIALOG_WILKOMMENZ)
    {
    if(response==0)
    {
    Kick(playerid);
    }
    if(response==1)
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Einloggen","Bitte gebe nun dein Passwort ein","Einloggen","Abbrechen");
    }
    }
    if(dialogid==DIALOG_WILKOMMENB)
    {
    if(response==0)
    {
    Kick(playerid);
    }
    if(response==1)
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Dein Account wurde erstellt.\nBitte wähle ein Passwort um regelmäßig mit diesem Account zu spielen.","Einloggen","Abbrechen");
    }
    }
    if(dialogid==DIALOG_LOGIN)
    {
    if(response==0)
    {
    SendClientMessage(playerid,ROT,"Du hast den Log In Vorgang abgebrochen!");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,ORANGE,"Dein eingegebenes Passwort war nicht lang genug!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Log In Vorgang","Dein Account wurde in unserer Datenbank gefunden!\nBitte gib nun dein Passwort ein! ","LogIn", "Abbrechen");
    return 1;
    }
    else
    {
    Login(playerid,inputtext);
    return 1;
    }
    }
    }
    if(dialogid==DIALOG_REGISTER)
    {
    if(response==0)
    {
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,ORANGE,"Dein eingegebenes Passwort war nicht lang genug!");
    Kick(playerid);
    return 1;
    }
    else
    {
    Register(playerid,inputtext);
    ShowPlayerDialog(playerid,DIALOG_A,DIALOG_STYLE_LIST,"Informationen","männlich\nweiblich","Weiter","Abbrechen");
    return 1;
    }
    }
    }
    if(dialogid==DIALOG_A)
    {
    if(response==1)
    {
    switch(listitem)
    {
    case 0:
    {
    SetPVarInt(playerid,"Geschlecht",1);
    ShowPlayerDialog(playerid,DIALOG_B,DIALOG_STYLE_LIST,"Herkunft","Deutschland\nOesterreich\nSchweiz","Weiter","Abbrechen");
    }
    case 1:
    {
    SetPVarInt(playerid,"Geschlecht",2);
    ShowPlayerDialog(playerid,DIALOG_B,DIALOG_STYLE_LIST,"Herkunft","Deutschland\nOesterreich\nSchweiz","Weiter","Abbrechen");
    }
    }
    }
    }
    if(dialogid==DIALOG_B)
    {
    if(response==1)
    {
    switch(listitem)
    {
    case 0:
    {
    SetPVarInt(playerid,"Herkunft",1);
    ShowPlayerDialog(playerid,DIALOG_C,DIALOG_STYLE_MSGBOX,"Tutorial","Es wird nun ein kleines Tutorial folgen, was dir den Server zeigen soll.\nPass gut auf um einen guten Start in den Server zu haben.","Tutorial","Abbrechen");
    }
    case 1:
    {
    SetPVarInt(playerid,"Herkunft",2);
    ShowPlayerDialog(playerid,DIALOG_C,DIALOG_STYLE_MSGBOX,"Tutorial","Es wird nun ein kleines Tutorial folgen, was dir den Server zeigen soll.\nPass gut auf um einen guten Start in den Server zu haben.","Tutorial","Abbrechen");
    }
    case 2:
    {
    SetPVarInt(playerid,"Herkunft",3);
    ShowPlayerDialog(playerid,DIALOG_C,DIALOG_STYLE_MSGBOX,"Tutorial","Es wird nun ein kleines Tutorial folgen, was dir den Server zeigen soll.\nPass gut auf um einen guten Start in den Server zu haben.","Tutorial","Abbrechen");
    }
    }
    }
    }
    return 1;


    }



    // ==========
    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    return 1;
    }
    // ==========
    stock Register(playerid,key[])
    {
    new Playerdatei[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.txt",name);
    dini_Create(Playerdatei);
    SetPlayerScore(playerid,0);
    dini_Set(Playerdatei,"Passwort",key);
    dini_IntSet(Playerdatei,"Adminlevel",0);
    dini_IntSet(Playerdatei,"Geschlecht",0);
    dini_IntSet(Playerdatei,"Geld",0);
    dini_IntSet(Playerdatei,"Level",0);
    dini_IntSet(Playerdatei,"Herkunft",0);
    return 1;
    }
    stock Login(playerid,key[])
    {
    new Playerdatei[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.txt",name);
    if(!strcmp(key,dini_Get(Playerdatei,"Passwort"),false))
    {
    AccountLaden(playerid);
    }
    else
    {
    SendClientMessage(playerid,ORANGE,"Dein hast ein falsches Passwort eingegeben!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Log In Vorgang","Dein Account wurde in unserer Datenbank gefunden!\nBitte gib nun dein Passwort ein! ","LogIn", "Abbrechen");
    }
    return 1;
    }
    stock AccountLaden(playerid)
    {
    new Playerdatei[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.txt",name);
    SetPlayerScore(playerid,dini_Int(Playerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Playerdatei,"Geld"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Playerdatei,"Adminlevel"));
    SetPVarInt(playerid,"Geschlecht",dini_Int(Playerdatei,"Geschlecht"));
    SetPVarInt(playerid,"Herkunft",dini_Int(Playerdatei,"Herkunft"));
    SetPVarInt(playerid,"Eingeloggt",1);
    if(GetPVarInt(playerid,"Baned")==1)
    {
    SendClientMessage(playerid,ROT,"Du bist vom Server gebannt!");
    Kick(playerid);
    }
    return 1;
    }
    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"Eingeloggt")==1)
    {
    new Playerdatei[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Playerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Playerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Playerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Playerdatei,"Geschlecht",GetPVarInt(playerid,"Geschlecht"));
    dini_IntSet(Playerdatei,"Herkunft",GetPVarInt(playerid,"Herkunft"));
    dini_IntSet(Playerdatei,"Baned",GetPVarInt(playerid,"Baned"));
    }
    }
    stock IstSpielerEinAdmin(playerid,rang)
    {
    if(GetPVarInt(playerid,"Adminlevel")>=rang)return 1;
    return 0;
    }
    stock SpielerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    return name;
    }
    // ==========
    ocmd:makeadmin(playerid,params[])
    {
    new pID, rang, string[128];
    if(IsPlayerAdmin(playerid))return SendClientMessage(playerid,ROT,"Du bist kein Admin!");
    if(sscanf(params,"ui",pID,rang))return SendClientMessage(playerid,ROT,"Benutzung: /makeadmin [ID] [rang]");
    if(rang < 0 || rang > 5000)return SendClientMessage(playerid,ROT,"Der Rang darf nicht 0 oder unter 0 oder über 5000 sein!");
    SetPVarInt(pID,"Adminlevel",rang);
    format(string,sizeof(string),"Du hast %s zu einem Admin rang %d gemacht.",SpielerName(pID),rang);
    SendClientMessage(playerid,ROT,string);
    format(string,sizeof(string),"Admin %s hat dich zu einem Admin rang %d gemacht!",SpielerName(playerid),rang);
    SendClientMessage(pID,ROT,string);
    return 1;
    }
    Würde mich sehr freuen wenn jemand den Fehler schnell finden würde.


    Mit freundlichen Grüßen
    DarkShadow

  • ist doch richtig so bei deinem stock register setzt du doch alles auf 0


    dini_IntSet(Playerdatei,"Adminlevel",0);
    dini_IntSet(Playerdatei,"Geschlecht",0);
    dini_IntSet(Playerdatei,"Geld",0);
    dini_IntSet(Playerdatei,"Level",0);
    dini_IntSet(Playerdatei,"Herkunft",0);






    also ein fehler ist da nicht


    und bei dem makeadmin


    musst du SpielerSpeichern(playerid); noch mit einfügen


    MFG
    xDNGRSx


  • Aber schau mal in Dialog, nach registrieren kommt die Frage männlich/weiblich und da setze ich dann
    nicht auf 0 sondern auf 1 ^^

  • Hallo.
    Du setz ja bei (Stock register) Alles auf (0)
    Sprich: Der spieler Hat 0 Geld usw.
    Also das ist kein Fehler von deinem Login / Register System


    MFG
    ShiNuX

  • Zitat

    Naja du musst überall SpielerSpeichern(playerid); mit reinmachen sonst geht es ja auch logischer weise nicht da die acc-daten nicht gespeichert werden.


    Habe ich doch, es geht auch nicht wenn ich /Q mache ^^



    Zitat

    Hallo.
    Du setz ja bei (Stock register) Alles auf (0)
    Sprich: Der spieler Hat 0 Geld usw.
    Also das ist kein Fehler von deinem Login / Register System


    MFG
    ShiNuX


    Bitte keine solche Antworten mehr ich glaube das haben wir schon geklärt ... 8|


  • Also noch mal an dich, dass geht nicht?


    Zitat

    Ansonsten mach eben ein Fake CMD:

    PAWN Quelltext
    1
    ocmd:geld(playerid,params[]){ SetPVarInt(playerid,"Geld",50000);SpielerSpeichern(playerid);return 1;}


    Geht leider auch nicht, bitte woran kann das liegen? :cursing:

  • mach aus

    dini_IntSet(Playerdatei,"Adminlevel",0);
    dini_IntSet(Playerdatei,"Geschlecht",0);
    dini_IntSet(Playerdatei,"Geld",0);
    dini_IntSet(Playerdatei,"Level",0);
    dini_IntSet(Playerdatei,"Herkunft",0);


    bei Register



    dini_IntSet(Playerdatei,"Adminlevel",0);
    SetPlayerScore(playerid, 1);//Level 1
    ResetPlayerMoeny(playerid);
    GivePlayerMoney(playerid, 15000);//startgeld ändern
    SetPVarInt(playerid,"Eingeloggt",1);
    SpielerSpeichern(playerid);


    MFG Piet

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen

  • Ist eine gute Idee aber das bringt mich nicht gerade voran. Das Problem habe ich trotzdem immer
    noch X(

  • SpielerSpeichern(pID);


    Unter jeden Command, in dem du etwas veränderst ^^
    Dann sag uns obs funkt, falls nicht meldest dich wieder.

    Roleplay Network | Dᴇᴀᴅ.Nᴇᴛ