Script speichert kein Geld/Level

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 Community!
    Ich habe mal wieder angefangen bissl mit Dini zu scripten jedoch habe ich jetzt ein Fehler.
    Sobald ich InGame was verdiene etc speichert er das Geld nicht auf der Hand.
    Wenn ich relogge oder /gmx eingebe ist nur das Geld da, was ich in der .ini datei rein geschrieben habe.
    Lange habe ich rum probiert, jetzt gehen mir die ideen aus.


    stock Spielerladen(playerid)
    {
    new Spielerdatei[128];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    pInfo[playerid][pLevel] = dini_Int(Spielerdatei,"Level");
    SetPlayerScore(playerid,pInfo[playerid][pLevel]);
    pInfo[playerid][pGeld] = dini_Int(Spielerdatei,"Geld");
    SetPlayerMoney(playerid,pInfo[playerid][pGeld]);
    pInfo[playerid][pAdmin] = dini_Int(Spielerdatei,"Admin");
    pInfo[playerid][pFraktion] = dini_Int(Spielerdatei,"Fraktion");
    pInfo[playerid][pTutorial] = dini_Int(Spielerdatei,"Tutorial");
    pInfo[playerid][pTutorial] = dini_Int(Spielerdatei,"Alter");
    pInfo[playerid][pTutorial] = dini_Int(Spielerdatei,"Geschlecht");
    pInfo[playerid][pTutorial] = dini_Int(Spielerdatei,"Wohnort");
    pInfo[playerid][pEingeloggt] = 1;
    /*if(pInfo[playerid][pBanned] == 1*/
    return 1;
    }


    stock SpielerSpeichern(playerid)
    {
    if(pInfo[playerid][pEingeloggt] == 1)
    {
    new Spielerdatei[128];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    dini_IntSet(Spielerdatei,"Level",pInfo[playerid][pLevel]);
    dini_IntSet(Spielerdatei,"Geld",pInfo[playerid][pGeld]);
    dini_IntSet(Spielerdatei,"Admin",pInfo[playerid][pAdmin]);
    dini_IntSet(Spielerdatei,"Fraktion",pInfo[playerid][pFraktion]);
    dini_IntSet(Spielerdatei,"Tutorial",pInfo[playerid][pTutorial]);
    dini_IntSet(Spielerdatei,"Alter",pInfo[playerid][pAlter]);
    dini_IntSet(Spielerdatei,"Geschlecht",pInfo[playerid][pGeschlecht]);
    dini_IntSet(Spielerdatei,"Wohnort",pInfo[playerid][pWohnort]);
    }
    return 1;
    }


    stock SetPlayerMoney(playerid,money)
    {
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid,money);
    return 1;
    }



    public OnGameModeExit()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    SpielerSpeichern(i);
    }
    return 1;
    }



    public OnPlayerDisconnect(playerid, reason)
    {
    SpielerSpeichern(playerid);
    return 1;
    }

  • Setze jedem Spieler das Geld über einen neuen Stock.
    stock GivePlayerMoneyEx(playerid, money) {
    pInfo[playerid][pGeld] += money;
    GivePlayerMoney(playerid, money);
    if(pInfo[playerid][pGeld] != GetPlayerMoney(playerid)) {
    // Aktion wenn Spieler nicht das richtige Geld auf der Hand hat.
    // Sprich Anti-Cheat ^-^
    SendClientMessage(playerid, "Du wurdest aufgrunde von Hackverdacht gebannt. (Moneyhack)");
    Ban(playerid);
    return 0;
    }
    return 1;
    }


    Ist lediglich ein Beispiel, ob es funktioniert, kann ich dir nicht sagen. ^^

  • Du musst, wenn du GivePlayerMoney machst, auch das machen:
    pInfo[playerid][pGeld] += geld;


    Falls du nicht weißt was:
    Poste bitte den Code mit dem du dem Spieler Geld gibst, bzw den Teil der das Geld gibt wenn er es verdient.

    Naja ich gebe mit dem stock SetPlayerMoney jemanden Geld.
    stock SetPlayerMoney(playerid, money)
    {
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid,money);
    return 1;
    }


    Geht nicht :)

  • Damit setzt du Geld, gibst dem Spieler aber nicht direkt Geld, außer du fragst es vorher ab.


    Poste doch bitte mal den Teil mit dem du Geld verdienst.


    Ganz genau tue ich kein Geld verdienen zb der Stunt Bonus wird nicht gespeichert.
    Oder wenn man sich Registriert´(der Startbonus).


    Hier ein teil vom Tutorial, wenn er sein Startbonus erhält.
    //Nach dem Tutorial
    SendClientMessage(playerid,COLOR_DGRÜN,"Du erhälst als Startbonus 10.000$ und Level 2");
    SetPlayerVirtualWorld(playerid,0);
    TogglePlayerControllable(playerid,1);
    SetPlayerMoney(playerid,10000);
    SetPlayerScore(playerid,2);

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