Neu! Login/Register System machen

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
  • Danke^^ ich weis is net von mir aber von dort habe ich es gelernt wie es geht (Steht oben) aber manche wissen immer noch net wie es geht^^

    Zitat

    Nimm die Dinge wie sie sind: schlag, wenn du schlagen musst, tritt, wenn du Treten musst
    -Bruce Lee

  • D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(100) : warning 217: loose indentation
    D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(101) : warning 209: function "OnPlayerConnect" should return a value
    D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(102) : error 010: invalid function or declaration
    D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(172) : error 004: function "Encrypt" is not implemented
    D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(177) : warning 217: loose indentation
    D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(192) : error 017: undefined symbol "pPassword"
    D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(193) : error 004: function "Encrypt" is not implemented
    D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(211) : warning 217: loose indentation
    D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(212) : warning 217: loose indentation
    D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(219) : warning 217: loose indentation
    D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(387) : error 017: undefined symbol "password"
    D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(389) : error 017: undefined symbol "password"
    D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(399) : warning 217: loose indentation
    D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(400) : warning 217: loose indentation
    D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(435) : error 017: undefined symbol "password"
    D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(468) : warning 203: symbol is never used: "ret_memcpy"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    7 Errors.


    ...

  • hehe nice tut^^


    mach mal das oben rein
    #pragma unused ret_memcpy

  • Danke,
    hab nun ein paar gelöst, mein einziges Problem ist


    D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(175) : error 004: function "Encrypt" is not implemented
    D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(196) : error 004: function "Encrypt" is not implemented
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    das.

  • mach unten hin:


    public Encrypt(string[])
    {
    for(new x=0; x < strlen(string); x++)
    {
    string[x] += (3^x) * (x % 15);
    if(string[x] > (0xff))
    {
    string[x] -= 64;
    }
    }
    return 1;
    }
    habe ich vergessen^^

    Zitat

    Nimm die Dinge wie sie sind: schlag, wenn du schlagen musst, tritt, wenn du Treten musst
    -Bruce Lee

  • if (strcmp(cmd, "/register", true)==0) //wenn der Spieler /register eingibt
    {
    new string[128];
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) //Wenn er z.B /registre eingibt
    {
    SendClientMessage(playerid, farbe, "Benutze: /register [password]"); //sendet eine Nachricht
    return 1;
    }
    if (gPlayerAccount[playerid] == 1) //Wenn er bereits einen Account hat
    {
    SendClientMessage(playerid, farbe, "Dieser Username ist schon registriert!"); //Sendet eine Nachricht
    return 1;
    }


    strmid(PlayerInfo[playerid][pPassword], tmp, 0, strlen(cmdtext), 255);
    Encrypt(PlayerInfo[playerid][pPassword]);
    GetPlayerName(playerid, playername, sizeof(playername)); //kriegt den Spielernamen
    format(string, sizeof(string), "/Spieler/%s.ini", playername); //Da<<<<<<<<<<<<<<<<<<<
    new File: file = fopen(string, io_read); //erstellt eine Datei mit den Spielernamen z.B. zombie.modder.ini im Ordner Scriptfiles
    if (file) //wenn es bereits eine Datei mit diesem Namen gibt
    {
    SendClientMessage(playerid, farbe, "Diesen Benutzernamen gibt es schon"); //sendet eine Nachricht
    fclose(file);
    return 1;
    }
    new File:hFile; //erstellt eine Datei
    hFile = fopen(string, io_append); //öffnet sie
    new var[32];//
    format(var, 32, "%s\n", PlayerInfo[playerid][passwort]);fwrite(hFile, var); //schreibt das Passwort in die Datei
    format(var, 32, "Morde=%d\n",PlayerInfo[playerid][morde]);fwrite(hFile, var);//schreibt die Anzahl derKills in die Datei
    format(var, 32, "Tode=%d\n",PlayerInfo[playerid][tode]);fwrite(hFile, var);//schreibt die Anzahl der Tode in die Datei
    PlayerInfo[playerid][geld] = GetPlayerMoney(playerid);//findet heraus wie viel Geld der Spieler hat
    format(var, 32, "Geld=%d\n",PlayerInfo[playerid][geld]);fwrite(hFile, var);//schreibt das Geld in die Datei
    PlayerInfo[playerid][skin] = GetPlayerMoney(playerid);//findet heraus welche Skin ID der Spieler hat
    format(var, 32, "SkinID=%d\n",PlayerInfo[playerid][skin]);fwrite(hFile, var);//schreibt die Skin iD in die Datei
    fclose(hFile);
    SendClientMessage(playerid, farbe, "Erfolgreich registriert!!");
    SendClientMessage(playerid, farbe, "Benutze beim nächsten Besuch /login (passwort).");
    OnPlayerLogin(playerid,PlayerInfo[playerid][passwort]);
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    new spielername[MAX_PLAYER_NAME]; //für den Spielernamem
    new connect[128];
    GetPlayerName(playerid, spielername, sizeof(spielername)); //findet den Namen des Spielers raus
    format(connect, sizeof(connect), "/Spieler/%s.ini", spielername); //<<<<<<<<<<<<<<<<<<<<<<da
    if(fexist(connect)) //Wenn die Datei des Spielers existiert
    {
    gPlayerAccount[playerid] = 1; //Er hat einen Account
    SendClientMessage(playerid, COLOR_YELLOW, "Du bist bereits registriert. Benutze /login [password]"); // Sendet ihm eine Bestätigung das er bereits registriert ist
    return 1;
    }
    else //wenn er keinen account hat{
    gPlayerAccount[playerid] = 0; //er hat keinen Account
    SendClientMessage(playerid, COLOR_YELLOW, "Du bist neu hier. Bitte benutze /register [password] um dich zu registrieren"); //sendet ihm eine Nachricht das sein Account fehlt
    }
    return 1;
    }
    public OnPlayerLogin(playerid,const string[])
    {
    new pname2[MAX_PLAYER_NAME];
    new pname3[MAX_PLAYER_NAME];
    new string2[64];
    new string3[128];
    GetPlayerName(playerid, pname2, sizeof(pname2)); //kriegt den Namen
    format(string2, sizeof(string2), "/Spieler/%s.ini", pname2); //<<<<<<<<<<<<<<<<<<da
    new File: UserFile = fopen(string2, io_read); //"öffnet" die datei des spielers


    if (UserFile)
    {
    new valtmp[128];
    fread(UserFile, valtmp);strmid(PlayerInfo[playerid][password], valtmp, 0, strlen(valtmp)-1, 255);


    if ((strcmp(PlayerInfo[playerid][password], string, true, strlen(valtmp)-1) == 0)) //Wenn das passwort richtig is (?)
    {
    new key[128],val[128];
    new Data[128];
    while(fread(UserFile,Data,sizeof(Data)))
    {
    key = ini_GetKey(Data);
    if( strcmp( key , "Morde" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][morde] = strval( val ); } //weis net xD
    if( strcmp( key , "Tode" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][tode] = strval( val ); }
    if( strcmp( key , "Geld" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][geld] = strval( val ); }
    if( strcmp( key , "SkinID" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][tode] = strval( val ); }
    GivePlayerMoney(playerid,PlayerInfo[playerid][geld]); //gibt ihm das Geld was er beim Leaven hatte
    SetPlayerSkin(playerid,PlayerInfo[playerid][skin]); //gibt ihm den Skin den er beim leaven hatte
    }
    fclose(UserFile);
    gPlayerLogged[playerid] = 1; //er ist absofort eingeloggt
    gPlayerAccount[playerid] = 1; //er hat einen account
    new kills = PlayerInfo[playerid][morde];
    SetPlayerScore(playerid, kills); //gibt dem Spieler den Score den er beim verlassen hatte
    GetPlayerName(playerid, pname3, sizeof(pname3)); //kriegt den Spielernamen
    format(string3, sizeof(string3), "Willkommen %s, ydu hast dich erfolgreich eingeloggt!", pname3);
    SendClientMessage(playerid, farbe,string3);
    }
    else
    {
    SendClientMessage(playerid, farbe, "Das Password ist falsch!"); //Wenn das Password falsch ist
    fclose(UserFile);
    }
    }
    return 1;
    }



    public OnPlayerUpdate(playerid)
    {
    if(IsPlayerConnected(playerid)) //wenn der spieler online ist
    {
    if(gPlayerLogged[playerid]) //Wenn er eingeloggt ist
    {
    new string3[32];
    new pname3[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname3, sizeof(pname3)); //kriegt den namen des spielers
    format(string3, sizeof(string3), "%s.ini", pname3);
    new File: pFile = fopen(string3, io_write);
    if (pFile)
    {
    new var[32];
    format(var, 32, "/Spieler/%s\n", PlayerInfo[playerid][password]);fwrite(pFile, var); //<<<<<<<<<<<<<<<da
    fclose(pFile);
    new File: hFile = fopen(string3, io_append);
    PlayerInfo[playerid][geld] = GetPlayerMoney(playerid);
    format(var, 32, "Morde=%d\n",PlayerInfo[playerid][morde]);fwrite(hFile, var); //Weis net^^
    format(var, 32, "Tode=%d\n",PlayerInfo[playerid][tode]);fwrite(hFile, var);
    format(var, 32, "Geld=%d\n",PlayerInfo[playerid][geld]);fwrite(hFile, var);
    format(var, 32, "SkinID=%d\n",PlayerInfo[playerid][skin]);fwrite(hFile, var);
    fclose(hFile);
    }
    }
    }
    return 1;
    }


    MfG

    Zitat

    Nimm die Dinge wie sie sind: schlag, wenn du schlagen musst, tritt, wenn du Treten musst
    -Bruce Lee

  • ja:


    OnPlayerSpawn(playerid)
    {
    if(gPlayerLogged[playerid] == 0;
    {
    Kick(playerid);
    ]
    return 1;





    Ausm Kopf geschrieben ;)

    Zitat

    Nimm die Dinge wie sie sind: schlag, wenn du schlagen musst, tritt, wenn du Treten musst
    -Bruce Lee

  • Ist da nicht entwas Falsch?


    if( strcmp( key , "SkinID" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][tode] = strval( val ); }



    Das tode gibts doch schon ist doch Falsch oder

  • C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(91) : error 029: invalid expression, assumed zero
    C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(92) : error 029: invalid expression, assumed zero
    C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(92 -- 93) : warning 215: expression has no effect
    C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(93) : error 001: expected token: ";", but found "if"
    C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(101) : warning 217: loose indentation
    C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(102) : warning 209: function "OnPlayerConnect" should return a value
    C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(103) : error 010: invalid function or declaration
    C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(105) : error 010: invalid function or declaration
    C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(213) : error 017: undefined symbol "pPassword"
    C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(214) : error 017: undefined symbol "pPassword"
    C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(336) : error 017: undefined symbol "password"
    C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(338) : error 017: undefined symbol "password"
    C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(348) : warning 217: loose indentation
    C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(349) : warning 217: loose indentation
    C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(383) : error 017: undefined symbol "password"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    10 Errors.

  • hast du alles richtig eingefügt?



    edit: Mein Fehler habs editiert probiers nochmal (habe es gestern im halbschlaf um 23:00 Uhr geschrieben :rolleyes: )

    Zitat

    Nimm die Dinge wie sie sind: schlag, wenn du schlagen musst, tritt, wenn du Treten musst
    -Bruce Lee

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