Beiträge von Mr.FR3K3RS

    Hallo Community,


    Ich möchte mal gerne wissen wie ich den skin den man gerade trägt speichern und wider laden kann.


    Hier sind mal meine stocks :



    stock Register(playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    SpielerReset(playerid);
    dini_Create(Spieler);
    dini_Set(Spieler,"Passwort",key);
    dini_IntSet(Spieler,"Adminlevel",0);
    dini_IntSet(Spieler,"Level",0);
    dini_IntSet(Spieler,"Fraktion",0);
    dini_IntSet(Spieler,"Team",0);
    dini_IntSet(Spieler,"Skin",0);
    SendClientMessage(playerid,Blau,"Du hast dich erfolgreich registriert!");
    SpawnPlayer(playerid);
    return 1;
    }


    stock Login(playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(!strcmp(key,dini_Get(Spieler,"Passwort"),false))
    {
    SendClientMessage(playerid,Blau,"Login erfolgreich!");
    SpielerLaden(playerid);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,Blau,"Das eingebene Passwort ist inkorrekt!");
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden, gebe\ndein Passwort ein:","Login","Abbrechen");
    return 1;
    }
    }


    stock SpielerSpeichern(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    dini_IntSet(Spieler,"Adminlevel",sSpieler[playerid][Adminlevel]);
    dini_IntSet(Spieler,"Level",sSpieler[playerid][Level]);
    dini_IntSet(Spieler,"Fraktion",sSpieler[playerid][Fraktion]);
    dini_IntSet(Spieler,"Team",sSpieler[playerid][Team]);
    dini_IntSet(Spieler,"Skin",sSpieler[playerid][Skin]);
    }
    SpawnPlayer(playerid);
    return 1;
    }


    stock SpielerLaden(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    SetPlayerScore(playerid,dini_Int(Spieler,"Level"));
    sSpieler[playerid][Adminlevel] = dini_Int(Spieler,"Adminlevel");
    sSpieler[playerid][Level] = dini_Int(Spieler,"Level");
    sSpieler[playerid][Fraktion] = dini_Int(Spieler,"Fraktion");
    sSpieler[playerid][Team] = dini_Int(Spieler,"Team");
    sSpieler[playerid][Skin] = dini_Int(Spieler,"Skin");
    sSpieler[playerid][sLogin] = 1;
    SpawnPlayer(playerid);
    }
    return 1;
    }

    Ja, ich habe das Problem, das wenn ich mich nach dem Login gleich gekickt werde. Aber ich weis nicht woran das liegen kann.
    Könnte mir dabei mal jemand weiter helfen?


    Hier mal ein paar Zeilen:



    public OnPlayerConnect(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_PASSWORD,"Login", "Dein Account wurde gefunden.\nGib bitte dein Passwort ein:", "Login", "Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_PASSWORD,"Register", "Gib bitte ein gewünschtes Passwort ein:", "Register", "Abbrechen");
    }
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    sSpieler[playerid][sLogin] = 0;
    SpielerSpeichern(playerid);
    return 1;
    }


    stock Register(playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    dini_Create(Spieler);
    dini_Set(Spieler,"Passwort",key);
    dini_IntSet(Spieler,"Adminlevel",0);
    dini_IntSet(Spieler,"Level",0);
    dini_IntSet(Spieler,"Fraktion",0);
    dini_IntSet(Spieler,"Team",0);
    dini_IntSet(Spieler,"Job",0);
    SendClientMessage(playerid,Blau,"Du hast dich erfolgreich Registriert");
    SpielerReset(playerid);
    return 1;
    }


    stock Login(playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(!strcmp(key,dini_Get(Spieler,"Passwort"),false))
    {
    SendClientMessage(playerid,Blau,"Login erfolgreich . . . Spielerdaten werden geladen!");
    SpielerLaden(playerid);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,Blau,"Das eingebene Passwort ist inkorrekt!");
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_PASSWORD,"Login", "Dein Account wurde gefunden.\nGib bitte dein Passwort ein:", "Login", "Abbrechen");
    return 1;
    }
    }


    stock SpielerSpeichern(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    dini_IntSet(Spieler,"Adminlevel",sSpieler[playerid][Adminlevel]);
    dini_IntSet(Spieler,"Level",sSpieler[playerid][Level]);
    dini_IntSet(Spieler,"Fraktion",sSpieler[playerid][Fraktion]);
    dini_IntSet(Spieler,"Team",sSpieler[playerid][Team]);
    dini_IntSet(Spieler,"Job",sSpieler[playerid][Job]);
    }
    return 1;
    }


    stock SpielerLaden(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    SetPlayerScore(playerid,dini_Int(Spieler,"Level"));
    sSpieler[playerid][Adminlevel] = dini_Int(Spieler,"Adminlevel");
    sSpieler[playerid][Level] = dini_Int(Spieler,"Level");
    sSpieler[playerid][Fraktion] = dini_Int(Spieler,"Fraktion");
    sSpieler[playerid][Team] = dini_Int(Spieler,"Team");
    sSpieler[playerid][Job] = dini_Int(Spieler,"Job");
    sSpieler[playerid][sLogin] = 1;
    }
    return 1;
    }


    stock SpielerReset(playerid)
    {
    sSpieler[playerid][Adminlevel] = 0;
    sSpieler[playerid][Level] = 0;
    sSpieler[playerid][Fraktion] = 0;
    sSpieler[playerid][Team] = 0;
    sSpieler[playerid][Job] = 0;
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == LOGIN)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Rot,"Du hast den Authenfizierungs Prozess abgebrochen . . .");
    Kick(playerid);
    return 1;
    }
    if(response == 1)
    {
    Login(playerid,MD5_Hash(inputtext));
    return 1;
    }
    }
    if(dialogid == REGISTER)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Blau,"Du hast den Registrierungs Vorgang abgebrochen");
    Kick(playerid);
    return 1;
    }
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,Blau,"Bitte gebe ein Passwort ein");
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_PASSWORD,"Registrieren","Bitte wähle ein Passwort um dir einen Account zu erstellen!","Registrieren","Abbrechen");
    return 1;
    }
    Register(playerid,MD5_Hash(inputtext));
    return 1;
    }
    }
    return 1;
    }

    Ähm ja habe hier mal ein kleines Job-Sys. gesciptet.
    Ja und nun weis ich nicht wie ich das hier um ändern muss:



    SetPVarInt(playerid,"Nebenjob",1);


    Ich arbeite nicht mit PVar sondern mit Dini.


    meine stocks sehen so aus:



    stock Register(playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    dini_Create(Spieler);
    dini_Set(Spieler,"Passwort",key);
    dini_IntSet(Spieler,"Adminlevel",0);
    dini_IntSet(Spieler,"Level",0);
    dini_IntSet(Spieler,"Fraktion",0);
    dini_IntSet(Spieler,"Team",0);
    dini_IntSet(Spieler,"Job",0);
    SendClientMessage(playerid,Blau,"Du hast dich erfolgreich Registriert");
    SpielerReset(playerid);
    return 1;
    }


    stock Login(playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    if(!strcmp(key,dini_Get(Spieler,"Passwort"),false))
    {
    SendClientMessage(playerid,Blau,"Du hast dich erfolgreich eigeloggt.");
    SpielerLaden(playerid);
    }
    else
    {
    SendClientMessage(playerid,Blau,"Du hast ein Falsches Passwort eingegeben.");
    Kick(playerid);
    }
    return 1;
    }


    stock SpielerSpeichern(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    dini_IntSet(Spieler,"Adminlevel",sSpieler[playerid][Adminlevel]);
    dini_IntSet(Spieler,"Level",sSpieler[playerid][Level]);
    dini_IntSet(Spieler,"Fraktion",sSpieler[playerid][Fraktion]);
    dini_IntSet(Spieler,"Team",sSpieler[playerid][Team]);
    dini_IntSet(Spieler,"Job",sSpieler[playerid][Job]);
    }
    return 1;
    }


    stock SpielerLaden(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    SetPlayerScore(playerid,dini_Int(Spieler,"Level"));
    sSpieler[playerid][Adminlevel] = dini_Int(Spieler,"Adminlevel");
    sSpieler[playerid][Level] = dini_Int(Spieler,"Level");
    sSpieler[playerid][Fraktion] = dini_Int(Spieler,"Fraktion");
    sSpieler[playerid][Team] = dini_Int(Spieler,"Team");
    sSpieler[playerid][Job] = dini_Int(Spieler,"Job");
    sSpieler[playerid][sLogin] = 1;
    }
    return 1;
    }


    stock SpielerReset(playerid)
    {
    sSpieler[playerid][Adminlevel] = 0;
    sSpieler[playerid][Level] = 0;
    sSpieler[playerid][Fraktion] = 0;
    sSpieler[playerid][Team] = 0;
    sSpieler[playerid][Job] = 0;
    return 1;
    }


    stock IstSpielerInJob(playerid,jobid)
    {
    if(sSpieler[playerid][Job] == jobid) return 1;
    return 0;
    }

    Hallo,


    Ich wollte bei diesem befehl mal noch einen text einfügen, das wenn keine admins online sind angezeigt wird: Keine Admins Online



    if (strcmp("/admins", cmdtext, true, 10) == 0)
    {
    new string[64];
    new aName[MAX_PLAYER_NAME];
    for(new i = 0; i< MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    SendClientMessage(playerid,Weis,"****Admins Online****");
    if(sSpieler[playerid][Adminlevel] == 1)
    {
    GetPlayerName(i,aName,sizeof(aName));
    format(string,sizeof(string),"Moderator: %s",aName);
    SendClientMessage(playerid,Weinrot,string);
    }
    else if(sSpieler[playerid][Adminlevel] == 2)
    {
    GetPlayerName(i,aName,sizeof(aName));
    format(string,sizeof(string),"Supporter: %s",aName);
    SendClientMessage(playerid,Weinrot,string);
    }
    else if(sSpieler[playerid][Adminlevel] == 3)
    {
    GetPlayerName(i,aName,sizeof(aName));
    format(string,sizeof(string),"Administrator: %s",aName);
    SendClientMessage(playerid,Weinrot,string);
    }
    else if(sSpieler[playerid][Adminlevel] == 4)
    {
    GetPlayerName(i,aName,sizeof(aName));
    format(string,sizeof(string),"ServerOwner: %s",aName);
    SendClientMessage(playerid,Weinrot,string);
    }
    }
    }
    return 1;
    }

    Hallo Leute,


    Ich habe hier ein kleines Problem mit MD5.
    Und zwar mein eigegebenes Passwort wird beim Rgistrieren verschlüsselt aber beim Einloggen wird es nicht wieder entschlüsselt ?


    So sieht es bei mir im Script aus:



    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == LOGIN)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Rot,"Du hast den Authenfizierungs Prozess abgebrochen . . .");
    Kick(playerid);
    return 1;
    }
    if(response == 1)
    {
    Login(playerid,MD5_Hash(inputtext));
    return 1;
    }
    }
    if(dialogid == REGISTER)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Blau,"Du hast den Registrierungs Vorgang abgebrochen");
    Kick(playerid);
    return 1;
    }
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,Blau,"Bitte gebe ein Passwort ein");
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Bitte wähle ein Passwort um dir einen Account zu erstellen!","Registrieren","Abbrechen");
    return 1;
    }
    Register(playerid,MD5_Hash(inputtext));
    return 1;
    }
    }
    return 1;
    }


    Wenn ich das so mache steht nur da ****Admins Online**** und das spamt auch nocht den chatt zu ?
    Aber wenn ich es so mache else if(sSpieler[playerid][Adminlevel] == 4) steht wenigstens Administrator:... da.

    Hallo Community,


    Ich habe hier mal ein /admins befehl erstellt, aber er funktioniert noch nciht richtig.
    So sieht er momentan aus:



    if (strcmp("/admins", cmdtext, true, 10) == 0)
    {
    new string[64];
    new aName[MAX_PLAYER_NAME];
    for(new i = 0; i< MAX_PLAYERS; i++)
    {
    SendClientMessage(playerid,Weis,"****Admins Online****");
    if(sSpieler[playerid][Adminlevel] >= 1)
    {
    GetPlayerName(i,aName,sizeof(aName));
    format(string,sizeof(string),"Moderator: %s",aName);
    SendClientMessage(playerid,Weinrot,string);
    }
    else if(sSpieler[playerid][Adminlevel] >= 2)
    {
    GetPlayerName(i,aName,sizeof(aName));
    format(string,sizeof(string),"Supporter: %s",aName);
    SendClientMessage(playerid,Weinrot,string);
    }
    else if(sSpieler[playerid][Adminlevel] >= 3)
    {
    GetPlayerName(i,aName,sizeof(aName));
    format(string,sizeof(string),"Administrator: %s",aName);
    SendClientMessage(playerid,Weinrot,string);
    }
    else if(sSpieler[playerid][Adminlevel] >= 4)
    {
    GetPlayerName(i,aName,sizeof(aName));
    format(string,sizeof(string),"ServerOwner: %s",aName);
    SendClientMessage(playerid,Weinrot,string);
    }
    }
    return 1;
    }


    Mein Problem ist, ich habe mich als Admin Level 3 eigestuf und wenn ich /admins eingebe steht da Moderator und das auch mehrmals hintereinander.
    So hier sieht meine Adminabfrage aus:



    stock IstSpielerAdmin(playerid,level)
    {
    if(sSpieler[playerid][Adminlevel] >= level) return 1;
    return 0;
    }

    Danke für deine Hilfe LeijaT ich werde gleich damit anfangen.


    Habe jetzt mal alles angeschaut und mal ausprobiert. Es ist alles sehr cool. Aber meine Frage währe da jetzt noch welches Login/Register sollte ich verwenden?


    /EDIT