Geld wird 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
  • Guten Abend liebe Community,
    Ich habe ein Problem mit meinem Script.
    Das Geld wird nicht abgespeichert ich weiß nicht warum.
    Könntet ihr mir helfen?



    stock Register (playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    SendClientMessage(playerid,0x00FF00FFF,"Du hast dich Erfolgreich auf unserem Server registriert.");
    dini_IntSet(Spielerdatei,"Level",0);
    dini_IntSet(Spielerdatei,"Geld",5000);
    dini_IntSet(Spielerdatei,"Adminlevel",0);
    dini_IntSet(Spielerdatei,"Fraktion",0);
    return 1;
    }


    stock Login (playerid,key[])
    {


    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
    if(GetPVarInt(playerid,"Baned")==1)
    {
    SendClientMessage(playerid,ROT,"Du bist vom Server gebannt.");
    Kick(playerid);
    }
    SendClientMessage(playerid,0x00FF00FFF,"Du hast dich Erfolgreich eingeloggt.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,0xFF0A00FF,"Falsches Passwort!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Gib dein Passwort ein um dich einzuloggen.","Login","Abbrechen");
    return 1;
    }
    }


    stock LoadAccount(playerid)
    {
    new Spielederdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei,"/Accounts/%s.txt",name);
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
    if(GetPVarInt(playerid,"Baned")==1)
    {
    SendClientMessage(playerid,ROT,"Du bist vom Server gebannt.");
    Kick(playerid);
    }
    }
    stock SpielerSpeichern(playerid)
    {
    new Spielederdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei,"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
    return 1;
    }


    Hoffe ihr könnt mir weiterhelfen :)


    Mit freundlichen Grüßen
    iMan

  • Wird es denn überhaupt in der Datei gespeichert oder wird es nur nicht ausgelesen bzw. gesetzt? Und wann und wo benutzt du SpielerSpeichern(playerid)?

  • Es wird nicht ausgelesen.
    Er gibt dem Spieler immer die Summe die man beim register bekommt -.-


    Wenn dem Spieler Geld gegeben wird, dann muss auch etwas ausgelesen werden. Geh mal ins Spiel, ändere dein Geld und log dich aus. Geh sicher, dass du SpielerSpeichern() in OnPlayerDisconnect hast, damit deine Daten auch gespeichert werden.

  • Ich hab Spielerspeichern bei Disconnect nicht :O
    Hab das da jetzt eingefügt.
    Bekomme Errors :(
    Was muss ich machen??



    public OnPlayerDisconnect(playerid, reason)
    {
    SpielerSpeichern()


    new pname[MAX_PLAYER_NAME], string[39 + MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, sizeof(pname));
    switch(reason)
    {
    case 0: format(string, sizeof(string), "%s hat den Server verlassen. (Timeout)", pname);
    case 1: format(string, sizeof(string), "%s hat den Server verlassen. (Verlassen)", pname);
    }
    SendClientMessageToAll(BLAU, string);
    return 1;
    }

  • Semikolon vergessen und du musst schon definieren, wessen Daten gespeichert werden sollen.



    public OnPlayerDisconnect(playerid, reason)
    {
    SpielerSpeichern(playerid);
    new pname[MAX_PLAYER_NAME], string[39 + MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, sizeof(pname));
    switch(reason)
    {
    case 0: format(string, sizeof(string), "%s hat den Server verlassen. (Timeout)", pname);
    case 1: format(string, sizeof(string), "%s hat den Server verlassen. (Verlassen)", pname);
    }
    SendClientMessageToAll(BLAU, string);
    return 1;
    }

  • Habe jetzt 7 Errors bekommen.



    C:\Users\Arash\Desktop\Alle Ordner\World~of~Reallife\gamemodes\WorldofReallife.pwn(594) : error 017: undefined symbol "Spielerdatei"
    C:\Users\Arash\Desktop\Alle Ordner\World~of~Reallife\gamemodes\WorldofReallife.pwn(594) : error 017: undefined symbol "Spielerdatei"
    C:\Users\Arash\Desktop\Alle Ordner\World~of~Reallife\gamemodes\WorldofReallife.pwn(595) : error 017: undefined symbol "Spielerdatei"
    C:\Users\Arash\Desktop\Alle Ordner\World~of~Reallife\gamemodes\WorldofReallife.pwn(596) : error 017: undefined symbol "Spielerdatei"
    C:\Users\Arash\Desktop\Alle Ordner\World~of~Reallife\gamemodes\WorldofReallife.pwn(597) : error 017: undefined symbol "Spielerdatei"
    C:\Users\Arash\Desktop\Alle Ordner\World~of~Reallife\gamemodes\WorldofReallife.pwn(598) : error 017: undefined symbol "Spielerdatei"
    C:\Users\Arash\Desktop\Alle Ordner\World~of~Reallife\gamemodes\WorldofReallife.pwn(599) : error 017: undefined symbol "Spielerdatei"
    C:\Users\Arash\Desktop\Alle Ordner\World~of~Reallife\gamemodes\WorldofReallife.pwn(591) : warning 204: symbol is assigned a value that is never used: "Spielederdatei"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    7 Errors.



    Ich glaube nicht das man da #define Spielerdatei eingeben muss oder??

    Einmal editiert, zuletzt von MrZezuma ()

  • Drücke STRG+H und ersetz einfach Spielederdatei mit Spielerdatei. Dort hast du einen Tippfehler drin.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Cool hat geklappt :)
    Hab jetzt ein neuen Error aber ich finde den Fehler nicht :(



    C:\Users\Arash\Desktop\Alle Ordner\World~of~Reallife\gamemodes\WorldofReallife.pwn(594) : error 001: expected token: ")", but found ","
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    format(Spielerdatei,sizeof(Spielerdatei,"/Accounts/%s.txt",name);

  • Der Error ist immernoch da und ich hab an der Zeile noch einen dazu bekommen :(
    Ich kann das mit dem Geld nicht testen da die amx nicht aktualisiert wird wegen dem Error -.-



    C:\Users\Arash\Desktop\Alle Ordner\World~of~Reallife\gamemodes\WorldofReallife.pwn(594) : error 001: expected token: ")", but found ","
    C:\Users\Arash\Desktop\Alle Ordner\World~of~Reallife\gamemodes\WorldofReallife.pwn(594) : error 029: invalid expression, assumed zero
    C:\Users\Arash\Desktop\Alle Ordner\World~of~Reallife\gamemodes\WorldofReallife.pwn(594) : warning 215: expression has no effect
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.



    format(Spielerdatei,sizeof(Spielerdatei,"/Accounts/%s.txt",name));

  • Wo hast du das denn stehen unter :
    OnPlayerDisconnect????


    Edit:
    Füg das einfach unter OnPlayerDisconnect ein.
    Muss funktionieren...





    SpielerSpeichern(playerid);


    Edit:
    Hast ja garkein Loggedin ;D
    Nur SpielerSpeichern mehr nicht!

    Projektleiter

    Cleared to Land ist in der Script Werkstatt ;)


  • Nein das steht nicht unter OnPlayerDisconnect.
    Es steht hier:


    stock SpielerSpeichern(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei,"/Accounts/%s.txt",name));
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
    return 1;
    }


    Hab deins aber auch versucht geht leider nicht :(

  • Loggst du dich ganz normal aus oder machst du nen GMX?


    Mach mal unter OnPlayerDisconnect noch eine Abfrage, ob der Spieler eingeloggt ist(eine Variable beim Login/Register auf 1 setzen) und wenn diese bei Disconnect auf 1 steht, dann erst speichern aber nicht returnen! ;)

  • Habs ;DDD


    Du hast folgendes:



    format(Spielerdatei,sizeof(Spielerdatei,"/Accounts/%s.txt",name));


    Muss aber folgendes lauten:

    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);

    Nach sizeof(spielerdatei die Klammer direkt wieder schließen, da dann die größe von der "Spielerdatei" halt...

    Projektleiter

    Cleared to Land ist in der Script Werkstatt ;)