Individuellen Payday versucht ...

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
  • Hi leute,


    ich habe heute einen individuellen Payday versucht zu scripten.


    Haut alles hin bis auf die Zeit.


    Es ist so dass manchaml user innerhalb von 15min 2 mal payday bekommen obwohl eigentlich alle 60 min Payday sein müsste.


    Ich habe da einen Timer gemacht der den Wert für den nächten Payday jede minute um 1 erhöt und wenn er 60 errreicht hat dann bekomm der spieler payday , doch es ist ab und zu so dass in der minute 35 steht und eine minute später steht nur mehr 20 min bis zum payday ?? Weiss einer was man im GF noch ändern muss für sowas ?



    mfg

  • Code, sonst können wir dir nicht helfen. (Timer, PayDay, public PayDay etc.)


    lg ;)

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • public PayDay(playerid)
    {
    new string[128];
    new account,interest;
    new rent = 0;
    if(PlayerInfo[playerid][pLevel] > 0)
    {
    if(MoneyMessage[playerid]==1)
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, "Du hast es nicht geschafft deine Schulden zu bezahlen, Knast Zeit.");
    GameTextForPlayer(playerid, "~r~verhaftet!", 2000, 1);
    SetPlayerInterior(playerid, 10);
    SetPlayerPos(playerid, 215.7630,110.3048,999.0156);
    PlayerInfo[playerid][pJailed] = 1;
    ResetPlayerWeapons(playerid);
    WantedPoints[playerid] = 0;
    PlayerInfo[playerid][pJailTime] = 240;
    AntiKnastDM[playerid] = 1;
    format(string, sizeof(string), "Du bist für %d Sekunden verhaftet. Kaution: Nicht verfügbar", PlayerInfo[playerid][pJailTime]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    }
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername2, sizeof(playername2));
    account = PlayerInfo[playerid][pAccount];
    new key = PlayerInfo[playerid][pPhousekey];
    if(key != 255)
    {
    rent = HouseInfo[key][hRent];
    if(strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
    {
    rent = 0;
    }
    else if(rent > GetPlayerMoney(playerid))
    {
    PlayerInfo[playerid][pPhousekey] = 255;
    SendClientMessage(playerid, COLOR_WHITE, "Du wurdest zwangsgeräumt.");
    rent = 0;
    }
    HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+rent;
    }
    new tmpintrate;
    if (key != 255 && strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
    {
    if(PlayerInfo[playerid][pDonateRank] > 0) { tmpintrate = intrate+4; }
    else { tmpintrate = intrate+2; }//HouseInfo[key][hLevel]
    }
    else
    {
    if(PlayerInfo[playerid][pDonateRank] > 0) { tmpintrate = 3; }
    else { tmpintrate = 1; }
    }
    if(PlayerInfo[playerid][pNextPayDay] == 60)
    {
    Tax += TaxValue;//Should work for every player online
    PlayerInfo[playerid][pAccount] -= TaxValue;
    if(PlayerInfo[playerid][pDonateRank] > 0)
    {
    new bonus = PlayerInfo[playerid][pPayCheck] / 2;
    PlayerInfo[playerid][pPayCheck] += bonus;
    }
    new checks = PlayerInfo[playerid][pPayCheck];
    new ebill = (PlayerInfo[playerid][pAccount]/10000)*(PlayerInfo[playerid][pLevel]);
    ConsumingMoney[playerid] = 1;
    GivePlayerMoney(playerid, checks);
    if(PlayerInfo[playerid][pAccount] > 0)
    {
    PlayerInfo[playerid][pAccount] -= ebill;
    SBizzInfo[4][sbTill] += ebill;
    }
    else
    {
    ebill = 0;
    }
    interest = (PlayerInfo[playerid][pAccount]/1000)*(tmpintrate);
    PlayerInfo[playerid][pExp]++;
    PlayerPlayMusic(playerid);
    PlayerInfo[playerid][pAccount] = account+interest;
    SendClientMessage(playerid, COLOR_WHITE, "|___ KONTOAUSZUG ___|");
    format(string, sizeof(string), " Gehalt: $%d Steuern: -$%d", checks, TaxValue);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    if(PlayerInfo[playerid][pPhousekey] != 255 || PlayerInfo[playerid][pPbiskey] != 255)
    {
    format(string, sizeof(string), " Stromkosten: -$%d", ebill);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    if(PlayerInfo[playerid][pVersicherung] == 1)
    {
    SendClientMessage(playerid,COLOR_GRAD1," Versicherung: -$700");
    PlayerInfo[playerid][pAccount] -= 700;
    }
    if(PlayerInfo[playerid][pNoobHaus] == 1)
    {
    SendClientMessage(playerid,COLOR_GRAD1," Parkhausmiete: -$200");
    PlayerInfo[playerid][pAccount] -= 200;
    }
    format(string, sizeof(string), " Alter Kontostand: $%d", account);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    format(string, sizeof(string), " Zinsen Rate: 0.%d ",tmpintrate);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    format(string, sizeof(string), " Zinsen: $%d", interest);
    SendClientMessage(playerid, COLOR_GRAD3, string);
    SendClientMessage(playerid, COLOR_GRAD4, "|--------------------------------------|");
    format(string, sizeof(string), " Neuer Stand: $%d", PlayerInfo[playerid][pAccount]);
    SendClientMessage(playerid, COLOR_GRAD5, string);
    format(string, sizeof(string), " Miete: -$%d", rent);
    SendClientMessage(playerid, COLOR_GRAD5, string);
    format(string, sizeof(string), "~y~PayDay");
    GameTextForPlayer(playerid, string, 5000, 1);
    rent = 0;
    PlayerInfo[playerid][pNextPayDay] = 60;
    PlayerInfo[playerid][pPayCheck] = 0;
    PlayerInfo[playerid][pConnectTime] += 1;
    if(PlayerInfo[playerid][pDonateRank] > 0)
    {
    PlayerInfo[playerid][pPayDayHad] += 1;
    if(PlayerInfo[playerid][pPayDayHad] >= 5)
    {
    PlayerInfo[playerid][pExp]++;
    PlayerInfo[playerid][pPayDayHad] = 0;
    }
    }
    }
    }
    Checkprop();
    return 1;
    }


    Der Timer startet direkt nachdem der Spieler sein PW eingegeben hat:


    SetTimerEx("PaydayTimeCheck",60000,1,"i",playerid);//Timer für den PayDay


    Und das hier ist der Timer:


    public PaydayTimeCheck(playerid)
    {
    if(SpielerIstAFK[playerid] == false)
    {
    if(PlayerInfo[playerid][pNextPayDay] < 60)
    {
    PlayerInfo[playerid][pNextPayDay] += 1;
    }
    if(PlayerInfo[playerid][pNextPayDay] == 60)
    {
    PayDay(playerid);
    PlayerInfo[playerid][pNextPayDay] = 0;
    }
    }
    }