[Problem] bei Paydaysystem

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 Bortfische,
    Ich habe folgendes Problem, Wenn ich jetzt auf meinem Server spiele, kommen manchmal die Payday´s 1-5 hintereinander.


    Codes:


    Spielerladen:


    sInfo[playerid][payday] = cache_get_field_content_int(0,"payday",dbhandle);
    SetTimerEx("UpdatePlayerPayday",60000,true,"i",playerid);


    UpdatePayDay:


    public UpdatePlayerPayday(playerid)
    {
    if(sInfo[playerid][payday]==60)
    {
    new paytext[300],paytext1[299];
    PlayerPlaySound(playerid,1083,0,0,0);
    SendClientMessage(playerid,COLOR_YELLOW,"_______________|Payday|_______________");
    giveplayermoney(playerid,GetPlayerScore(playerid)*460);
    format(paytext,sizeof(paytext),"Gehalt: {37FF00}+%i$ {FFFFFF}+| Steuern: {FF0005}-%i$ {FFFFFF}| Krankenversicherung: {FF0005}-%i$",GetPlayerScore(playerid)*400,GetPlayerScore(playerid)*50,GetPlayerScore(playerid)*30);
    SendClientMessage(playerid,C_Weiß,paytext);
    GivePlayerMoney(playerid,-GetPlayerScore(playerid)*50);
    GivePlayerMoney(playerid,-GetPlayerScore(playerid)*30);
    if(IsPlayerConnected(playerid))
    {
    if(GetPlayerScore(playerid)<4)return 1;
    format(paytext1,sizeof(paytext1),"KFZ-Versicherung: {FF0005}-%i$ {FFFFFF}| Wasser & Strom: {FF0005}-%i$ {FFFFFF}| Müllentsorgung: {FF0005}-%i$",GetPlayerScore(playerid)*22,GetPlayerScore(playerid)*8,GetPlayerScore(playerid)*4);
    SendClientMessage(playerid,C_Weiß,paytext1);
    GivePlayerMoney(playerid,-GetPlayerScore(playerid)*22);
    GivePlayerMoney(playerid,-GetPlayerScore(playerid)*8);
    GivePlayerMoney(playerid,-GetPlayerScore(playerid)*4);
    }
    new string[256],respektlevel;
    sInfo[playerid][respekt]++;
    respektlevel=GetPlayerScore(playerid)*3;
    if(sInfo[playerid][respekt]>=respektlevel)
    {
    format(string,sizeof(string),"Du hast genug Respektpunkte für einen Levelaufstieg. Tippe: /buylevel",sInfo[playerid][respekt],respektlevel);
    }
    else
    {
    format(string,sizeof(string),"Respektpunkte: [%i / %i]",sInfo[playerid][respekt],respektlevel);
    }
    SendClientMessage(playerid,COLOR_YELLOW,string);
    sInfo[playerid][payday]=0;
    }
    else
    {
    sInfo[playerid][payday]++;
    }
    return 1;
    }


    Der Payday wird beim off gehn gespiechert.


    Ich hoffe es kann mir jemand helfen :D


    MFG German_ScripterHD


    Mit freundlichen Grüßen
    German_ScripterHD

  • Mach es so:


    SetTimer("PayDay", 60000, true);


    public PayDay()
    {
    for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
    {
    if(IsPlayerConnected(playerid))
    {
    sInfo[playerid][payday]++;
    if(sInfo[playerid][payday] == 60)
    {
    new paytext[300],paytext1[299];
    PlayerPlaySound(playerid,1083,0,0,0);
    SendClientMessage(playerid,COLOR_YELLOW,"_______________|Payday|_______________");
    giveplayermoney(playerid,GetPlayerScore(playerid)*460);
    format(paytext,sizeof(paytext),"Gehalt: {37FF00}+%i$ {FFFFFF}+| Steuern: {FF0005}-%i$ {FFFFFF}| Krankenversicherung: {FF0005}-%i$",GetPlayerScore(playerid)*400,GetPlayerScore(playerid)*50,GetPlayerScore(playerid)*30);
    SendClientMessage(playerid,C_Weiß,paytext);
    GivePlayerMoney(playerid,-GetPlayerScore(playerid)*50);
    GivePlayerMoney(playerid,-GetPlayerScore(playerid)*30);
    if(GetPlayerScore(playerid) >= 4)
    {
    format(paytext1,sizeof(paytext1),"KFZ-Versicherung: {FF0005}-%i$ {FFFFFF}| Wasser & Strom: {FF0005}-%i$ {FFFFFF}| Müllentsorgung: {FF0005}-%i$",GetPlayerScore(playerid)*22,GetPlayerScore(playerid)*8,GetPlayerScore(playerid)*4);
    SendClientMessage(playerid,C_Weiß,paytext1);
    GivePlayerMoney(playerid,-GetPlayerScore(playerid)*22);
    GivePlayerMoney(playerid,-GetPlayerScore(playerid)*8);
    GivePlayerMoney(playerid,-GetPlayerScore(playerid)*4);
    }
    new string[256],respektlevel;
    sInfo[playerid][respekt]++;
    respektlevel=GetPlayerScore(playerid)*3;
    if(sInfo[playerid][respekt]>=respektlevel)
    {
    format(string,sizeof(string),"Du hast genug Respektpunkte für einen Levelaufstieg. Tippe: /buylevel",sInfo[playerid][respekt],respektlevel);
    }
    else
    {
    format(string,sizeof(string),"Respektpunkte: [%i / %i]",sInfo[playerid][respekt],respektlevel);
    }
    SendClientMessage(playerid,COLOR_YELLOW,string);
    sInfo[playerid][payday]=0;
    }
    }
    return 1;
    }
    }