PayDay-Zeit speichern

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
  • Moin moin,
    ich habe mich heute morgen daran gemacht, den Payday für jeden Spieler alle 60 Minuten individuell zu gestalten.
    Das heißt, jeder Spieler bekommt nach 60 Minuten Spielzeit einen Payday.
    Ich benutze einen Godfather Edit..
    Leider habe ich es nicht geschafft, den Payday speichern zu lassen, denn nach jedem Relogg/Restart, fängt die Zeit
    bis zum Payday von neuem an. Wieder 60 Minuten bis zum Payday.


    Ich habe das ganze so gemacht :
    Die forwards/news:
    forward PaydayMachen(playerid);
    forward PayDay();
    forward GivePayTime(playerid);
    new gPlayerPaytime[MAX_PLAYERS];


    OnPlayerConnect
    gPlayerPaytime[playerid] = 0;


    enum pinfo ...
    pPayDay,
    pPayDayHad,


    OnGameModeInit...
    SetTimer("PaydayMachen",1000,true);
    SetTimer("GivePayTime",60000,true);


    OnPlayerConnect...
    PlayerInfo[playerid][pPayDay] = 0;
    PlayerInfo[playerid][pPayDayHad] = 0;


    OnPlayerRegister...
    format(var, 32, "PayDay=%d\n",PlayerInfo[playerid][pPayDay]);fwrite(hFile, var);
    format(var, 32, "PayDayHad=%d\n",PlayerInfo[playerid][pPayDayHad]);fwrite(hFile, var);


    OnPlayerLogin...
    if( strcmp( key , "PayDay" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPayDay] = strval( val ); }
    if( strcmp( key , "PayDayHad" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPayDayHad] = strval( val ); }


    OnPlayerCommandText...
    if(strcmp(cmd, "/payday", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new string10[256];
    new nmin;
    nmin = 60 - gPlayerPaytime[playerid];
    format(string10,256,"Noch %d Minuten bis zum Payday.", nmin);
    SendClientMessage(playerid,COLOR_GRAD1,string10);
    return 1;
    }
    return 1;
    }


    Public, wann der Payday kommen soll
    public PaydayMachen()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(gPlayerPaytime[i] >= 60)
    {
    PayDay();
    }
    }
    }


    public GivePayTime()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    gPlayerPaytime[i] += 1;
    }
    }


    Dann die Payday public..
    public PayDay()
    {
    .........
    return 1;
    }


    Ich hoffe, ihr könnt mir helfen, denn ich habe ein paar Versuche gestartet aber ich weiß nicht, wie ich ihn
    speichern lassen soll. Würde mich über schnelle Hilfe freuen. Die SuFu hat auch nichts ergeben.
    lG

  • onplayerreg:
    format(var, 32, "PayDay=%d\n",gPlayerPaytime[playerid]);fwrite(hFile, var);

    onplayerlogin

    if( strcmp( key , "PayDay" , true ) == 0 ) { val = ini_GetValue( Data ); gPlayerPaytime[playerid] = strval( val ); }


    versuchs ma so :O


    mfg.

  • Hab mich InGame neu registriert, kurz gewartet.. Laut /payday 58 Minuten noch und nach Relogg wieder 60 Minuten bei /payday