Steht alles auf 0

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
  • Guten Tag,
    Ich habe ein Problem, Bei der SpielerDatei wird rein Geschrieben aber immer nur null beim Geld..


    Ich zeige dir mal die ganzen Sachen...


    Enum

    enum SpielerDatei
    {
    sGeldboerse,
    sPasswort,
    sLevel,
    sAdmin
    }
    new SpielerInfo[MAX_PLAYERS][SpielerDatei];


    Der Disconncet..

    public OnPlayerDisconnect(playerid, reason)
    {
    if(INI_Open(getINI(playerid)))
    {
    INI_WriteInt("Geldboerse",SpielerInfo[playerid][sGeldboerse]);
    INI_WriteInt("Level",SpielerInfo[playerid][sLevel]);
    INI_WriteInt("Admin",SpielerInfo[playerid][sAdmin]);
    INI_Save();
    INI_Close();
    }
    return 1;
    }


    Öhm, Bei der Registration

    case DIALOG_REGISTRATION:
    {
    if(!response)return Kick(playerid);
    if(response)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,Weiss,"Du musst ein Passwort angeben!");
    ShowPlayerDialog(playerid,DIALOG_REGISTRATION,DIALOG_STYLE_PASSWORD,"{FFFFFF}Registration Fortschritt 1{FF0000}/{FFFFFF}3","{FFFFFF}Gebe bitte ein Passwort ein um dich zu Registrieren!\nDamit wird dir ein Spielstand erstelt!","Weiter","Verlassen?!");
    }
    if(INI_Open(getINI(playerid)))
    {
    INI_WriteString("Passwort",inputtext);
    INI_WriteInt("Admin",0);
    GivePlayerMoney(playerid,15000);
    SetPlayerScore(playerid,2);
    INI_Save();
    INI_Close();
    }
    }


    Und beim Einloggen zum Laden

    case DIALOG_EINLOGGEN:
    {
    if(!response)return Kick(playerid);
    if(response)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,Weiss,"Du musst ein Passwort angeben!");
    ShowPlayerDialog(playerid,DIALOG_EINLOGGEN,DIALOG_STYLE_PASSWORD,"{FFFFFF}Login Fortschritt 1{FF0000}/{FFFFFF}1","{FFFFFF}Gebe dein Passwort ein zum Einloggen!\nDamit du weiter auf deinen Spielstand Spielen kannst!","Weiter","Verlassen?");
    }
    if(INI_Open(getINI(playerid)))
    {
    INI_ReadString(SpielerInfo[playerid][sPasswort],"Passwort",20);
    if(strcmp(inputtext,SpielerInfo[playerid][sPasswort],false))
    {
    SendClientMessage(playerid,Weiss,"Falsches Passwort!");
    Kick(playerid);
    }
    GivePlayerMoney(playerid,INI_ReadInt("Geldboerse"));
    SetPlayerScore(playerid,INI_ReadInt("Level"));
    SpielerInfo[playerid][sAdmin]=INI_ReadInt("Admin");
    INI_Close();
    }
    }
    }

  • Nein, Da ich mit SII Scripte braucht man nur den stock getINI um den Scriptfiles Ordner zu Erstellen.

  • if(INI_Open(getINI(playerid)))
    {
    INI_WriteString("Passwort",inputtext);
    INI_WriteInt("Admin",0);
    GivePlayerMoney(playerid,15000);
    SetPlayerScore(playerid,2);
    INI_Save();
    INI_Close();
    }


    Wie wäre es mal dort sowas wie:

    new money = GetPlayerMoney(playerid);
    INI_WriteInt("Geld",money);



    reinzuhauen?

  • Würde dazu sagen das es mehr Resorsen Fressender ist und Sinnlos ist. :)

  • Würde dazu sagen das es mehr Resorsen Fressender ist und Sinnlos ist. :)

    ...Ich glaube du weißt nicht worauf ich hinaus will...^^


    Du speicherst dein Geld nirgendwo, wieso sollte auch was anderes als 0 bei raus kommen? :<


    Ich mein,

    Zitat

    SpielerInfo[playerid][sGeldboerse]

    wird nirgends mit dem Geld gleichgesetzt wenn du verstehst, warum sollte es dann mehr als 0 ergeben.

  • Okay, Aber wie mache ich es den dan das es mit GivePlayerMoney Gespeichert wird?!

  • Okay, Aber wie mache ich es den dan das es mit GivePlayerMoney Gespeichert wird?!

    naja ganz simpel eig.
    public OnPlayerDisconnect(playerid, reason)
    {
    if(INI_Open(getINI(playerid)))
    {
    SpielerInfo[playerid][sGeldboerse] = GetPlayerMoney(playerid);
    INI_WriteInt("Geldboerse",SpielerInfo[playerid][sGeldboerse]);
    INI_WriteInt("Level",SpielerInfo[playerid][sLevel]);
    INI_WriteInt("Admin",SpielerInfo[playerid][sAdmin]);
    INI_Save();
    INI_Close();
    }
    return 1;
    }


    mehr ist da eig. nicht.


    bei Register musst du dann einfach

    if(INI_Open(getINI(playerid)))
    {
    INI_WriteString("Passwort",inputtext);
    INI_WriteInt("Admin",0);
    INI_WriteInt("Geldboerse",16000);
    SetPlayerScore(playerid,2);
    INI_Save();
    INI_Close();
    }