Beiträge von Nate

    new pName[256];
    strtok wird benötigt.
    ganz unten im script einfügen:
    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }


    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }

    Zitat

    warning 219: local variable "save" shadows a variable at a preceding level

    du hast die save 3x definiert.


    #include <a_samp>
    #include <dini>
    #include <Dudb>
    new save[128];


    #if defined FILTERSCRIPT


    public OnFilterScriptInit()
    {
    print("\n--------------------------------------");
    print(" Blank Filterscript by your name here");
    print("--------------------------------------\n");
    return 1;
    }


    public OnFilterScriptExit()
    {
    return 1;
    }


    #else


    main()
    {
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
    }


    #endif


    enum Info
    {
    passwort[128], // 128 steht für die maximale länge des passworts
    skin,
    };


    new pInfo[MAX_PLAYERS][Info];
    new bool:loggedin[MAX_PLAYERS];


    public OnGameModeInit()
    {
    // Don't use these lines if it's a filterscript
    SetGameModeText("Blank Script");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    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 name[128]; // Dies machen wir um den Namen vom Spieler aufzuschreiben || Hiermit können wir sagen, dass etwas gespeichert werden soll
    GetPlayerName(playerid,name,sizeof(name)); // Dies sagt, er soll( vom Spieler, den namen, in der größe name aufschreiben)
    format(save,sizeof(save),"/Spieler/%s.ini",name); // Hier wird gechekt, wo der Spieler gespeichert ist, bzw. wo ein Spieler angelegt werden soll.
    if(dini_Exists(save)) // Hier wird geprüft, ob die Datei des Spielers schon existiert.
    { // Wenn ja, sende einen Text und lade den Skin und das Geld
    SendClientMessage(playerid, 0x33CCFFAA, "Willkommen bei SA:MP 0.3 Server");
    SendClientMessage(playerid, 0xFFFFFFAA, "Dein Account wurde wiedererkannt.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Du kannst dich jetzt einloggen.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Benutze dazu /login [passwort].");
    GivePlayerMoney(playerid,dini_Int(save,"Geld")); // Hier wird das geld dem Spieler gegeben, was er vorher hatte
    SetPlayerSkin(playerid,dini_Int(save,"Skin")); // Hier wird der Skin des Spielers geladen
    }
    else
    {
    if(!dini_Exists(save)) // Wenn kein Spieler mit dem Namen existiert
    { //Sende einen Text
    SendClientMessage(playerid, 0x33CCFFAA, "Willkommen bei SA:MP 0.3 Server");
    SendClientMessage(playerid, 0xFFFFFFAA, "Du hast noch keinen Account.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Du kannst dich jetzt registrieren.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Benutze dazu /register [passwort].");
    }
    }
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    new name[128];// Gleiche
    GetPlayerName(playerid,name,sizeof(name)); // wie
    format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
    if(dini_Exists(save)) // steht
    {
    dini_IntSet(save,"Geld",GetPlayerMoney(playerid)); // speichert das aktuelle Geld, was der Spieler zum schluss hatte
    dini_IntSet(save,"Skin",GetPlayerSkin(playerid)); // speichert den aktuellen Skin, welchne der Spieler zum schluss hatte
    }
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    new name[128];// Gleiche
    GetPlayerName(playerid,name,sizeof(name)); // wie
    format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
    if(loggedin[playerid] == false) //Wenn er nicht eingeloggt ist
    {
    SendClientMessage(playerid, 0xAA3333AA, "Du musst dich Einloggen bevor du spawnst!");
    Kick(playerid); // Kicke den Spieler
    }
    SetPlayerSkin(playerid,dini_Int(save,"Skin")); //lade und setze den gespeicherten Skin
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])


    new spieler[MAX_PLAYER_NAME];


    if(strcmp(strget(cmdtext,0), "/register", true) == 0)
    {
    new save[40]; // Erstelle einen neuen String "save", wobei 40 Wörter verwendet werden können.
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save, sizeof(save),"Spieler/%s.ini",spieler); //Speicherort
    if(!dini_Exists(save)) // wenn der Spieler sich regestriert und es noch keine .ini Datei mit seinem Namen gibt
    {
    dini_Create(save); // Erstelle eine Neue .ini Datei
    dini_IntSet(save,"passwort",udb_hash(strget(cmdtext,1))); // Setze in die .ini Datei(save,"dass passwort", welches er eingegeben hat) || das udb_hash verschlüsselt das Passwort in der .ini. Dazu benötigen wir die oben angegebene Include DUBD.
    SendClientMessage(playerid, 0x33AA33AA, "***Dein Account wurde erfolgreich registriert***");
    SendClientMessage(playerid, 0x33AA33AA, "***Nutze /login [Passwort] um dich einzuloggen***");
    }
    else
    {
    if(dini_Exists(save)) // Wenn beim regestrieren die Datei schon besteht
    {
    SendClientMessage(playerid, 0xAA3333AA, "Der Account ist bereits registriert");
    }
    }
    return 1;
    }


    if(strcmp(strget(cmdtext,0), "/login", true) == 0)
    {
    new save[40], s2[256]; //gleiche wie oben
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save,sizeof(save),"Spieler/%s.ini",spieler);
    if(dini_Exists(save)) // wenn Datei existiert
    {
    s2=dini_Get(save,"passwort"); // lade das Passwort
    if(strval(s2)==udb_hash(strget(cmdtext,1))) // wenn die Eingabe nach /login mit dem Passwort von der registration übereinstimmt
    {
    loggedin[playerid] = true; //sage dem Server, dass der Spieler eingeloggt ist.
    SendClientMessage(playerid, 0x33CCFFAA, "***Du hast dich erfolgreich eingeloggt***");
    SpawnPlayer(playerid);
    }
    else // wenn das passwort nicht stimmt
    {
    SendClientMessage(playerid, 0xAA3333AA, "Passwort Falsch!");
    }
    }
    return 1;
    }


    stock strget(strx[], pos, search = ' ')
    {
    new arg, ret[128], idxx;
    for (new i = 0; i < strlen(strx); i++)
    {
    if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10)
    {
    arg++;
    if (arg == pos + 1)
    {
    ret[i-idxx] = EOS;
    return ret;
    }
    else if (arg == pos)
    idxx= i+1;
    }
    else if (arg == pos)
    ret[i - idxx] = strx[i];
    }
    return ret;
    }

    man jetzt nerv nicht mit deiner religion rum. :cursing: :wacko:
    wie dogzone gesagt hatte, sonst verjagst du satan und seine maps.
    aber wie auch immer, "WIR SIND KEINE KIRCHE."