Dini register system

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
  • Hey, Hi, Hello xD (Shaun Baker *hust*)


    Brauche mal eure Hilfe.Ich wollte mir grad ein Register + Login System basteln doch bekomm ich Errors bei diesem Script:

    if(!strcmp(strget(cmdtext, 0), "/register"))
    {
    new password[264];
    new idx;
    new spieler;
    spieler = GetPlayerName(playerid);
    password = strtok(cmdtext, idx);
    if(!strlen(password)) return SendClientMessage(playerid, COLOR_RED, "Benutze: /register [Passwort]");
    {
    if dini_Exists(spieler(playerid))
    {
    SendClientMessage(playerid,COLOR_RED,"Dieser name ist schon vergeben!");
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREEN,"Eine neue Akte wurde für dich angelegt, logge dich mit /login [Passwort] ein!");
    dini_Create(spieler(playerid),password);
    }
    }
    return 1;
    }



    error 012: invalid function call, not a valid address
    error 001: expected token: ";", but found ")"
    error 029: invalid expression, assumed zero


    Das ist die Zeile:



    if(!dini_Exists(spieler(playerid));

  • if(!strcmp(strget(cmdtext, 0), "/register"))
    {
    new password[264];
    new idx;
    new spieler[256];;
    spieler = GetPlayerName(playerid);
    password = strtok(cmdtext, idx);
    if(!strlen(password)) return SendClientMessage(playerid, COLOR_RED, "Benutze: /register [Passwort]");
    {
    if dini_Exists(spieler))
    {
    SendClientMessage(playerid,COLOR_RED,"Dieser name ist schon vergeben!");
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREEN,"Eine neue Akte wurde für dich angelegt, logge dich mit /login [Passwort] ein!");
    dini_Create(spieler(playerid),password);
    }
    }
    return 1;
    }


    So Muss das eiglich gehn


    Ps: Wenn es nicht geht kan ich dir meins auch als DCMD schiken ;)

  • Sähe mit dcmd etwa so aus:

    dcmd_register(playerid, params[])
    {
    new pas[100];
    if(sscanf(params,"s",pas))
    {
    SendClientMessage(playerid,COLOR_RED,"Verwende: /register [PASSWORT]");
    return 1;
    }
    if(log[playerid] == 1)
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist bereits eingeloggt");
    return 1;
    }
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name,sizeof name);
    new form[100];
    format(form,sizeof form,"%s.ini",name);
    if(dini_Exists(form))
    {
    SendClientMessage(playerid,COLOR_RED,"Dieser Name ist bereits registriert");
    return 1;
    }
    dini_Create(form);


    dini_Set(form,"Passwort",pas);
    dini_IntSet(form,"Level",1);
    new lol[100];
    format(lol,sizeof lol,"Du hast dich erfolgreich registriert mit dem PW %s",pas);
    SendClientMessage(playerid,COLOR_RED,lol);
    log[playerid] = 1;
    return 1;
    }

    Suche Scriptlehrer :rolleyes:


  • D:\C++\Scripts\Gta\Gamemodes\tpp.pwn(1686) : error 033: array must be indexed (variable "spieler")
    D:\C++\Scripts\Gta\Gamemodes\tpp.pwn(1690) : error 001: expected token: "*then", but found ")"
    D:\C++\Scripts\Gta\Gamemodes\tpp.pwn(1690) : error 029: invalid expression, assumed zero
    D:\C++\Scripts\Gta\Gamemodes\tpp.pwn(1694) : error 029: invalid expression, assumed zero

    hmpf



    spieler = GetPlayerName(playerid);
    if dini_Exists(spieler))
    if dini_Exists(spieler))
    else


    ist nach den Errors geordnet



    Danke Kayer doch kommen dort 7 Errors und ich arbeite nicht gerne mit dcmd und möchte das Script auch übersichtlich haben :P trotzdem danke ;)

  • auf "dini_Exists" folt ein Dateinamen.Du hast nur einen Spielernamen.
    So sähe es inetwa aus:

    new form[100];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof name);
    format(form,sizeof form,"%s.ini",name);


    //


    if(dini_Exists(form))
    {

    Suche Scriptlehrer :rolleyes:

  • Ich habs jetzt mal hier zu verwandelt

    if(!strcmp(strget(cmdtext, 0), "/register"))
    {
    new password[264];
    new idx;
    new name[MAX_PLAYER_NAME];
    new form[100];
    format(form,sizeof form,"%s.ini",name);
    password = strtok(cmdtext, idx);
    if(!strlen(password)) return SendClientMessage(playerid, COLOR_RED, "Benutze: /register [Passwort]");
    {
    if(dini_Exists(form))
    {
    SendClientMessage(playerid,COLOR_RED,"Dieser name ist schon vergeben!");
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREEN,"Eine neue Akte wurde für dich angelegt, logge dich mit /login [Passwort] ein!");
    dini_Create(name, password);
    }
    }
    return 1;
    }


    Geht alles doch wenn ich jet /register oder /register 1 mache 1 = pw, dann crasht mein Server X( was tuhen?