Skin und andere Vars werden nicht gespeichert

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
  • Hallo,
    ich weiß zwar nicht, was ich gemacht habe, aber seit kurzem werden Skins und andere (Geld, Adminlevel, Premium-Rank usw.) nach einem Relog oder Server-Restart nicht gespeichert.
    Woran kann das liegen?
    Mein Script basiert momentan auf dini. Ich poste euch hier mal den "LoadAccount", den "SaveAccount", den "ResetAccount", den "Login" und die "Registration" als Code.
    Vielleicht könnt ihr mir so am schnellsten sagen, warum es nicht funktioniert. Ich habe den Fehler nicht entdecken können.
    Achja, zu dem spielt das Geld-System total verrückt.


    Registration
    stock Registration(playerid,key[])
    {
    new Account[64],string[500];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Account,sizeof(Account),"/Accounts/%s.ini",name);
    dini_Create(Account);
    dini_Set(Account,"Passwort",key);
    SendClientMessage(playerid,WEIß,"SERVER: Du hast dich erfolgreich registriert.");
    new stunde,minute,sekunde,jahr,monat,tag;
    gettime(stunde,minute,sekunde);
    getdate(jahr,monat,tag);
    new dateiname[50];
    format(dateiname,sizeof(dateiname),"Registration/d.d.d.ini",tag,monat,jahr);
    new File:datei=fopen(dateiname,io_append);
    new string1[256];
    format(string1,sizeof(string1),"[d:d:d] %s hat sich registriert.\r\n",stunde,minute,sekunde,Name(playerid));
    fwrite(datei,string1);
    fclose(datei);
    SetPlayerScore(playerid,0);
    GivePlayerMoney(playerid,0);
    SetPlayerFightingStyle(playerid,4);
    SetPlayerSkin(playerid,101);
    dini_IntSet(Account,"Adminlevel",0);
    dini_IntSet(Account,"Banned",0);
    dini_IntSet(Account,"Premium",0);
    dini_IntSet(Account,"Mute",0);
    dini_IntSet(Account,"Skin",101);
    dini_IntSet(Account,"Fahrzeug",0);
    dini_IntSet(Account,"Kills",0);
    dini_IntSet(Account,"Tode",0);
    dini_IntSet(Account,"Levelkills",0);
    SetPlayerColor(playerid,WEIß);
    format(string,sizeof(string),"Willkommen auf Deathmatch-Reloaded!\nUm dir den Start und die Registration etwas zu erleichtern,\nsind hier erstmal Befehle aufgelistet die dir zunächst bestimmt weiterhelfen.\n\n/skin - Zum ändern des Skin's\n/arenen - Für eine Liste der Arenen auf Deathmatch-Reloaded\n\n{FF0000}Für eine Liste aller Befehle tippe /commands bzw. /cmds oder /help.\n\n{00FF78}Viel Spaß auf Deathmatch-Reloaded!\n\n{FFFFFF}Tippe ''gelesen'' zum fortfahren.");
    ShowPlayerDialog(playerid,DIALOG_REGHELP,DIALOG_STYLE_INPUT,"Deathmatch-Reloaded: Hilfe und Befehle",string,"Fertig!","");
    return 1;
    }


    Login
    stock Login(playerid,key[])
    {
    new Account[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Account,sizeof(Account),"/Accounts/%s.ini",name);
    if(!strcmp(key,dini_Get(Account,"Passwort"),false))
    {
    AccountInfo[playerid][banned]=dini_Int(Account,"Banned");
    if(AccountInfo[playerid][banned]==1)return Kick(playerid);
    SendClientMessage(playerid,WEIß,"SERVER: Du hast dich erfolgreich eingeloggt.");
    LoadAccount(playerid);
    }
    else
    {
    SendClientMessage(playerid,TEAMDMROT,"Das eingegebene Passwort war nicht korrekt.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Deathmatch-Reloaded: Login","Willkommen zurück!\nDein Account wurde in unserer Datenbank gefunden.\nGebe bitte zur Verfizierung deiner Person dein Passwort ein.\nDas Passwort muss mindestens 5 Zeichen beinhalten.","Login","Abbrechen");
    }
    return 1;
    }


    LoadAccount (Account laden lassen)
    stock LoadAccount(playerid)
    {
    new Account[64],string[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Account,sizeof(Account),"/Accounts/%s.ini",name);
    AccountInfo[playerid][eingeloggt]=1;
    SetPlayerScore(playerid,dini_Int(Account,"Level"));
    GivePlayerMoney(playerid,dini_Int(Account,"Geld"));
    SetPlayerSkin(playerid,dini_Int(Account,"Skin"));
    SetPlayerFightingStyle(playerid,dini_Int(Account,"Kampfstil"));
    AccountInfo[playerid][premium]=dini_Int(Account,"Premium");
    if(AccountInfo[playerid][premium]>=1)
    {
    SendClientMessage(playerid,WEIß,"SERVER: Du besitzt ein {9BFF00}Premium-Account{FFFFFF}.");
    SetPlayerColor(playerid,LEMONGRÜN);
    TextDrawShowForPlayer(playerid,Premium);
    }
    else
    {
    SetPlayerColor(playerid,WEIß);
    }
    AccountInfo[playerid][admlevel]=dini_Int(Account,"Adminlevel");
    if(AccountInfo[playerid][admlevel]>=1)
    {
    format(string,sizeof(string),"SERVER: Du bist ein %s%s{FFFFFF}.",Admincolor(playerid),Adminrang(playerid));
    SendClientMessage(playerid,WEIß,string);
    }
    AccountInfo[playerid][mute]=dini_Int(Account,"Mute");
    if(AccountInfo[playerid][mute]>=1)
    {
    SendClientMessage(playerid,TEAMDMROT,"HINWEIS: Du bist noch gemutet! Unter deinen {FFFFFF}/stats{FF0000} kannst du dir die Dauer anzeigen lassen.");
    }
    AccountInfo[playerid][fahrzeug]=0;
    AccountInfo[playerid][kills]=dini_Int(Account,"Kills");
    AccountInfo[playerid][tode]=dini_Int(Account,"Tode");
    AccountInfo[playerid][levelkills]=dini_Int(Account,"Levelkills");
    SpawnPlayer(playerid);
    return 1;
    }


    SaveAccount (Account speichern lassen)
    stock SaveAccount(playerid)
    {
    if(AccountInfo[playerid][eingeloggt]==1)
    {
    new Account[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Account,sizeof(Account),"/Accounts/%s.ini",name);
    dini_IntSet(Account,"Level",GetPlayerScore(playerid));
    dini_IntSet(Account,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Account,"Skin",AccountInfo[playerid][spielerskin]);
    dini_IntSet(Account,"Adminlevel",AccountInfo[playerid][admlevel]);
    dini_IntSet(Account,"Banned",AccountInfo[playerid][banned]);
    dini_IntSet(Account,"Premium",AccountInfo[playerid][premium]);
    dini_IntSet(Account,"Mute",AccountInfo[playerid][mute]);
    dini_IntSet(Account,"Kampfstil",GetPlayerFightingStyle(playerid));
    dini_IntSet(Account,"Kills",AccountInfo[playerid][kills]);
    dini_IntSet(Account,"Tode",AccountInfo[playerid][tode]);
    dini_IntSet(Account,"Levelkills",AccountInfo[playerid][levelkills]);
    }
    return 1;
    }


    Und der ResetAccount, den ich ganz unten beim "OnPlayerDisconnect" verwende, um den Account auf 0 zu setzen
    stock ResetAccount(playerid)
    {
    AccountInfo[playerid][levelscore]=0;
    AccountInfo[playerid][spielerskin]=0;
    AccountInfo[playerid][admlevel]=0;
    AccountInfo[playerid][mute]=0;
    AccountInfo[playerid][premium]=0;
    TextDrawHideForPlayer(playerid,Premium);
    AccountInfo[playerid][banned]=0;
    ResetPlayerMoney(playerid);
    AccountInfo[playerid][fightstyle]=0;
    AccountInfo[playerid][kills]=0;
    AccountInfo[playerid][tode]=0;
    AccountInfo[playerid][fahrzeug]=0;
    AccountInfo[playerid][levelkills]=0;
    AccountInfo[playerid][eingeloggt]=0;
    AOND[playerid]=0;
    TutSpecten[playerid]=0;
    KillStreak[playerid]=0;
    SetPlayerColor(playerid,WEIß);
    }


    Ich hoffe, ihr könnt mir helfen.


    MfG