Dini Accounts überschreiben sich

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Es gibt Neuigkeiten! Ab sofort könnt ihr dem Donators Club auf Lebenszeit beitreten.
Weitere Infos im Thema Donator's Club ab heute wieder verfügbar!

  • Dini Accounts überschreiben sich

    Hallo Community,

    ich habe folgendes Problem.
    Die Accounts von den Usern überschreiben sich, sprich jemand der sich zum Beispiel neu registriert oder sich gerade einloggen will erhält kein Einlogfenster sondern kann direkt Spielen und erhält meist die Stats eines Administrators.

    Ich hoffe jemand kann mir weiterhelfen

    Mit freundlichen Grüßen
    [VR]CaRaDoN
  • Quellcode

    1. }
    2. public OnPlayerRegister(playerid, password[])
    3. {
    4. if(IsPlayerConnected(playerid))
    5. {
    6. new string3[64];
    7. new string[128];
    8. new playername3[MAX_PLAYER_NAME];
    9. GetPlayerName(playerid, playername3, sizeof(playername3));
    10. format(string3, sizeof(string3), "/Accounts/%s.ini", playername3);
    11. new File: hFile = fopen(string3, io_write);
    12. if (hFile)
    13. {
    14. strmid(PlayerInfo[playerid][pKey], password, 0, strlen(password), 255);
    15. new var[32];
    16. format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var);
    17. PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
    18. format(var, 32, "Level=%d\n",PlayerInfo[playerid][pLevel]);fwrite(hFile, var);
    19. format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
    20. format(var, 32, "Supporter=%d\n",PlayerInfo[playerid][pSupporter]);fwrite(hFile, var);
    21. format(var, 32, "DonateRank=%d\n",PlayerInfo[playerid][pDonateRank]);fwrite(hFile, var);
    22. format(var, 32, "UpgradePoints=%d\n",PlayerInfo[playerid][gPupgrade]);fwrite(hFile, var);
    23. format(var, 32, "ConnectedTime=%d\n",PlayerInfo[playerid][pConnectTime]);fwrite(hFile, var);
    24. format(var, 32, "Registered=%d\n",PlayerInfo[playerid][pReg]);fwrite(hFile, var);
    25. format(var, 32, "Sex=%d\n",PlayerInfo[playerid][pSex]);fwrite(hFile, var);
    Alles anzeigen
  • Man muss die Variabeln zurücksetzen, denn man nehme an, Spieler A hat die ID 0, disconnected ( Stats werden nicht zurückgesetzt = Stats bleiben auf ID 0). Spieler B connected, bekommt die ID 0 (also die ID von Spieler A) bekommt somit auch die Stats(Variabeln) von Spieler A. Das ist dann unpraktisch wenn dieser Spieler (Spieler A) vor kurzem gebannt o.ä erhalten hat, denn dann würde jeder Spieler (Spieler B, C , D etc.) der die ID 0 bekäme ,gebannt werden.

    Das ist der Grund weshalb es nötig ist die Variabeln (i.d.F die Stats) zurück zu setzen.

    Zum Beispiel mit Hilfe eines stocks:

    PAWN-Quellcode

    1. stock SpielerReset(playerid)
    2. {
    3. sSpieler[playerid][Adminlevel] = 0;
    4. sSpieler[playerid][Level] = 0;
    5. //oder
    6. SetPVarInt(playerid,"Adminrang",0);
    7. SetPvarInt(playerid,"Level",0);
    8. return 1;
    9. }


    Und dann bei OnPlayerDisconnect/Connec einsetzen

    PAWN-Quellcode

    1. public OnPlayerDisconnect(playerid, reason)
    2. {
    3. SpielerReset(playerid);
    4. return 1;
    5. }


    Hoffe ich konnte Dir das verständlich erklären

    Mit freundlichen Grüßen
    Domain_26

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Domain_26 ()