HSA Multi - Einfach und schnell speichern! v. 2.2.0

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

  • public OnPlayerConnect(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s",name);
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.hsa",name);
    if(fexist(Spielerdatei))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Schön das du wieder da bist","Dein Account wurde wieder gefunden.Bitte gib das Passwort ein.","Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT," Du musst dich Regestrieren"," Hallo und Herzlich Wilkommen auf meinem Server. Bitte gib das gewünschte Passwort ein.","Regestrieren","Abbrechen");
    }
    return 1;
    }





    stock Register(playerid,key[])
    {
    new Spielerdatei[64];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.",SpielerName);
    setString:Spielerdatei("Passwort",key);
    SendClientMessage(playerid,Grau,"Du hast dich erfolgreich regestriert.Viel Spaß beim Zocken!");
    SetPlayerScore(playerid,2);
    setInt:Spielerdatei("Geld",500);
    setInt:Spielerdatei("Adminlevel",0);
    setInt:Spielerdatei("Leader",0);
    setInt:Spielerdatei("Fraktion",0);
    setInt:Spielerdatei("Banned",0);
    setInt:Spielerdatei("fRank",0);
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }


    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s",SpielerName);
    if(!strcmp(key,getString:Spielerdatei("Passwort"), false))
    {
    LoadAccount(playerid);
    SendClientMessage(playerid,Grau,"Erfolgreich eingeloogt");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,Grau,"Falsches Passwort.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Wilkommen Zurück","Dein Account wurde wieder gefunden.Bitte gib das Passwort ein.","Login","Abbrechen");
    return 1;
    }


    }


    stock LoadAccount(playerid)
    {
    new SpielerDatei[64];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,MAX_PLAYER_NAME);
    SetPlayerScore(playerid,getInt:SpielerDatei("Level"));
    GivePlayerMoney(playerid,getInt:SpielerDatei("Geldboerse"));
    SetPVarInt(playerid,"Fraktion",getInt:SpielerDatei("Fraktion"));
    SetPVarInt(playerid,"fRank",getInt:SpielerDatei("fRank"));
    SetPVarInt(playerid,"Adminlevel",getInt:SpielerDatei("Adminlevel"));
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }
    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new SpielerDatei[64];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,MAX_PLAYER_NAME);
    setInt:SpielerDatei("Level",GetPlayerScore(playerid));
    setInt:SpielerDatei("Geld",GetPlayerMoney(playerid));
    setInt:SpielerDatei("Fraktion",GetPVarInt(playerid,"Fraktion"));
    setInt:SpielerDatei("fRank",GetPVarInt(playerid,"fRank"));
    setInt:SpielerDatei("Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    setInt:SpielerDatei("Banned",GetPVarInt(playerid,"Banned"));
    setInt:SpielerDatei("Leader",GetPVarInt(playerid,"Leader"));
    setInt:SpielerDatei("Geschlecht",GetPVarInt(playerid,"Geschlecht"));
    Save(SpielerDatei);
    }
    return 1;
    }

  • Ich habe ein Problem. Erstmal ich finde dein Speichersystem echt klasse. 10/10
    Nun zum Problem:
    Ich möchte 1. Dateien in .ini und nicht in .HSA (auch nicht in .ini.hsa ^^) Datein speichern.
    Ich weiß nur nicht ob das möglich ist.
    Zum zweiten:
    stock Register(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"A/%s.ini",name);
    setString:Spielerdatei("Passwort",key);
    SetPlayerScore(playerid,1);
    GivePlayerMoney(playerid,1000);
    setInt:Spielerdatei("Geld",1000);
    setInt:Spielerdatei("Adminlevel",0);
    setInt:Spielerdatei("Fraktion",0);
    setInt:Spielerdatei("Geschlecht",0);
    setInt:Spielerdatei("Alter",0);
    setInt:Spielerdatei("Verwarnungen",0);
    setInt:Spielerdatei("Leader",0);
    setInt:Spielerdatei("Baned",0);
    setInt:Spielerdatei("FRank",0);
    setInt:Spielerdatei("Respektpunkte",0);
    setInt:Spielerdatei("Perso",0);
    setInt:Spielerdatei("Skin",0);
    setInt:Spielerdatei("Muted",0);
    setInt:Spielerdatei("Wanteds",0);
    SetPVarInt(playerid,"Eingeloggt",1);
    return 1;
    }
    er erstellt zwar die Datei, aber er beschreibt sie nicht.
    Ich hoffe man kann mir schnell helfen =)
    MFG.
    //E Rechtschreibung muss ein ^^

    Dieser Beitrag wurde bereits 763 mal editiert, zuletzt von »Anker.« (Vor einem Moment)


    "eingetragende Stand -Ins"


    Einmal editiert, zuletzt von Anker. ()

  • Zitat

    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s",name);
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.hsa",name);
    Fällt es dir selber auf?


    hahahah :D :thumbup:



    Nice Include sehr einfach gemacht und super nützlich
    10/10

  • Ich finde diese Speicherart echt toll und sie läuft schnell.
    Seid dem ich sie Kenne, benutze ich sie bei jeden Selfmade und schreibe Godfathers auf
    diese Speichertart um.
    sie lohnt sich echt und ist auch sehr schnell und einfach zu benutzen.
    Danke Hauke!

  • Hay Leute ich find dein System echt klasse und einfach aber ich habe trozdem ein Problem. Und zwar Mit Speichern klappt alles aber mit dem Laden nicht. Ich möchte bei meinem Register und Login halt ganz normal speichern und laden . Das speichern klappt die datei ist erstellt aber wenn ich mich einloggen will kommt wieder das Regestrierenfenster obwohl schon eine Acc datei besteht. Ich zeig euch mal den code


    public OnPlayerConnect(playerid)
    {
    new Spielerdatei[64];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s",SpielerName);
    if(fexist(Spielerdatei))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde wiedergefunden. Bitte gib nun dein Passwort ein.","Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Regestrieren","Herzlich Wilkommen auf meinem Server. Dieser Server befindet sich zurzeit in der Aufbau Phase.\nGib bitte das gewünschte Passwort ein.","Regestrieren","Abbrechen");
    }
    return 1;
    }


    stock Register(playerid,key[])
    {
    new Spielerdatei[64];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s",SpielerName);
    setString:Spielerdatei("Passwort",key);
    SetPlayerScore(playerid,1);
    GivePlayerMoney(playerid,500);
    SendClientMessage(playerid,0x00A5FFFF,"Du hast dich erfolgreich Regestriert.");
    return 1;
    }


    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s",SpielerName);
    if(!strcmp(key,getString:Spielerdatei("Passwort"), false))
    {
    LoadAccount(playerid);
    SendClientMessage(playerid,0x00B9FFFF,"Du hast dich erfolgreich eingeloggt.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,0xFF0023FF,"Falsches Passwort!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde wiedergefunden. Bitte gib nun dein Passwort ein.","Login","Abbrechen");
    return 1;
    }


    }


    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s",SpielerName);
    SetPlayerScore(playerid,getInt:Spielerdatei("Level"));
    GivePlayerMoney(playerid,getInt:Spielerdatei("Money"));
    SetPVarInt(playerid,"Adminlevel",getInt:Spielerdatei("Adminlevel"));
    return 1;
    }


    stock SaveAccount(playerid)
    {
    new Spielerdatei[64];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s",SpielerName);
    setInt:Spielerdatei("Level",GetPlayerScore(playerid));
    setInt:Spielerdatei("Money",GetPlayerMoney(playerid));
    setInt:Spielerdatei("Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    Save(Spielerdatei);
    return 1;
    }



    Ich hoffe mir kann jemand helfen Danke schonmal ;)

  • Du musst die Endung hinzufügen:

    public OnPlayerConnect(playerid)
    {
    new Spielerdatei[64];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.hsa",SpielerName);
    if(fexist(Spielerdatei))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde wiedergefunden. Bitte gib nun dein Passwort ein.","Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Regestrieren","Herzlich Wilkommen auf meinem Server. Dieser Server befindet sich zurzeit in der Aufbau Phase.\nGib bitte das gewünschte Passwort ein.","Regestrieren","Abbrechen");
    }
    return 1;
    }

    Ich denke ich werde noch eine HSA spezifische FileExists Funktion schreiben. Die kommt dann in der nächsten Version dazu :)

    PAWNit gratis nutzen?
    Geschenkcode: 2017VQXPKB8V3KA

    Hier könnte Ihre Werbung stehen.