PayDay Problem

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 Breadfish!


    Ich habe, wie die Überschrift schon sagt, ein Problem mit meinem PayDay Sys! Und zwar versuch ich vergebens gehälter für die Fraktionen einzufügen! Doch wie bekomme ich das hin, so das z.b. beim SAPD(Frak ID: 1) bei Rang 6 6000 verdient, und Rang 1 nur 500! Wie mach ich das?


    Hier mein PayDay Code:


    public PayDay()
    {
    new string[128];
    new account,interest;
    new rent = 0;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && !IsPlayerNPC(i))
    {
    if(PlayerInfo[i][pLevel] > 0)
    {
    if(MoneyMessage[i]==1)
    {
    new bank = PlayerInfo[i][pAccount];
    SendClientMessage(i, COLOR_LIGHTRED, "Da du die Rechnungen nicht bezahlen konntest, kommst du in den Knast!");
    GameTextForPlayer(i, "~r~Busted!", 2000, 1);
    SafeSetPlayerInterior(i, 6);
    SafeSetPlayerPos(i, 264.6288,77.5742,1001.0391);
    PlayerInfo[i][pJailed] = 1;
    SafeResetPlayerWeapons(i);
    SafeResetPlayerMoney(i);
    SafeGivePlayerMoney(i, 1);
    WantedPoints[i] = 0;
    PlayerInfo[i][pAccount] = (bank + DebtMoney[i]);
    DebtMoney[i] = 0;
    PlayerInfo[i][pJailTime] = 240;
    TextDrawShowForPlayer(i, Textdraw1[i]);
    format(string, sizeof(string), "Du bist nun im Knast für %d Sekunden!", PlayerInfo[i][pJailTime]);
    SendClientMessage(i, COLOR_WHITE, string);
    }
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(i, playername2, sizeof(playername2));
    account = PlayerInfo[i][pAccount];
    new key = PlayerInfo[i][pPhousekey];
    if(key != 9999)
    {
    rent = HouseInfo[key][hRent];
    if(strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
    {
    rent = 0;
    }
    else if(rent > GetPlayerMoney(i))
    {
    PlayerInfo[i][pPhousekey] = 9999;
    SendClientMessage(i, COLOR_WHITE, "Du wurdest abgeführt.");
    rent = 0;
    }
    HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+rent;
    }
    new tmpintrate;
    if (key != 999 && strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
    {
    if(PlayerInfo[i][pRegularRank] > 0) { tmpintrate = intrate+4; }
    else { tmpintrate = intrate+2; }//HouseInfo[key][hLevel]
    }
    else
    {
    if(PlayerInfo[i][pRegularRank] > 0) { tmpintrate = 3; }
    else { tmpintrate = 1; }
    }
    if(PlayerInfo[i][pPayDay] >= 1)
    {
    Tax += TaxValue;//Sollte funktionieren fuer jeden Spieler online
    PlayerInfo[i][pAccount] -= TaxValue;
    new checks = PlayerInfo[i][pPayCheck] / 5;
    if(PlayerInfo[i][pRegularRank] > 0)
    {
    new bonus = PlayerInfo[i][pPayCheck] / 10;
    checks += bonus;
    }
    new ebill = (PlayerInfo[i][pAccount]/10000)*(PlayerInfo[i][pLevel]);
    account += checks;
    if(PlayerInfo[i][pAccount] > 0)
    {
    PlayerInfo[i][pAccount] -= ebill;
    SBizzInfo[4][sbTill] += ebill;
    }

    //------------------------PAYDAY-----KONSOLE---------------------------------------------------
    else
    {
    ebill = 0;
    }
    interest = (PlayerInfo[i][pAccount]/1000)*(tmpintrate);
    PlayerInfo[i][pExp]++;
    PlayerPlayMusic(i);
    PlayerInfo[i][pAccount] = account+interest;
    SendClientMessage(i, COLOR_BLUE, "|_____Kontoauszug_____|");
    format(string, sizeof(string), " Payday: $%d Mwst.Geld: -$%d", checks, TaxValue);
    SendClientMessage(i, COLOR_WHITE, string);
    if(PlayerInfo[i][pPhousekey] != 9999 || PlayerInfo[i][pPbiskey] != 9999)
    {
    format(string, sizeof(string), " Stromrechnung: -$%d", ebill);
    SendClientMessage(i, COLOR_GRAD1, string);
    }
    format(string, sizeof(string), " Kontostand: $%d", account - checks);
    SendClientMessage(i, COLOR_WHITE, string);
    format(string, sizeof(string), " Zinssatz: 0.%d Prozent",tmpintrate);
    SendClientMessage(i, COLOR_GRAD2, string);
    format(string, sizeof(string), " Interesse Gewonnen $%d", interest);
    SendClientMessage(i, COLOR_GRAD3, string);
    SendClientMessage(i, COLOR_GREEN, "|--------------------------------------|");
    format(string, sizeof(string), " Neuer Kontostand: $%d", PlayerInfo[i][pAccount]);
    SendClientMessage(i, COLOR_GRAD5, string);
    format(string, sizeof(string), " Zinsen: -$%d", rent);
    SendClientMessage(i, COLOR_GRAD5, string);
    format(string, sizeof(string), "~y~PayDay~n~~w~Ueberpruefen sie ihren Kontostand!");
    GameTextForPlayer(i, string, 5000, 1);
    rent = 0;
    PlayerInfo[i][pPayDay] = 0;
    PlayerInfo[i][pPayCheck] = 0;
    if(FarmerVar[i] == 0)
    {
    FarmerPickup[i][0] = 0;
    }
    if(DrugFarmerVar[i] == 0)
    {
    DrugFarmerPickup[i][0] = 0;
    }
    if(SmugglerWork[i] == 0)
    {
    PayDaySecure[i] = 0;
    }
    if(PlayerInfo[i][pRegularRank] > 0)
    {
    PlayerInfo[i][pPayDayHad] += 1;
    if(PlayerInfo[i][pPayDayHad] >= 5)
    {
    PlayerInfo[i][pExp]++;
    PlayerInfo[i][pPayDayHad] = 0;
    }
    }
    }
    else
    {
    SendClientMessage(i, COLOR_WHITE, "Sie haben nicht lange genug gespielt um einen Payday zu erhalten.");
    }
    }
    }
    }


    Mit freundlichen Grüßen,


    Razor!

  • Es müsste so in etwa funktionieren (Variablen müssen ggf. oder ziemlich sicher angepasst werden)

    if(PlayerInfo[playerid][gTeam] == 1) //Kenn deine Variablen nicht, arbeite selber mit PVars, denke so in etwa geht es aber mit enums
    {
    if(PlayerInfo[playerid][gRank] == 1) //Wenn der Rang 1 ist
    GivePlayerMoney(playerid,500); //Gib Geld
    else if(PlayerInfo[playerid][gRank == 6) //wenn der Rang 6 ist
    GivePlayerMoney(playerid,6000 //Gib Geld
    }


    LG