[Frage] LoH 0.4 Payday

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
  • Wir benutzen auf unserem Server LoH 0.4 Allerdings haben einige User bemerkt das sie im Payday ,obwohl sie in einer Frak sind kein Geld am Payday bekommen auch nicht auf die Handausgezahlt! Was muss ich am script ändern?


    public PayDay()
    {
    new string[128];
    new account,interest;
    new rent = 0;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(M_Bot[i][PAFK] == 0)
    {
    if(MoneyMessage[i]==1)
    {
    SendClientMessage(i, COLOR_LIGHTRED, "Du konntest deine Schulden nicht Bezahlen.");
    GameTextForPlayer(i, "~r~Busted!", 2000, 1);
    SetPlayerInterior(i, 6);
    SetPlayerPos(i, 264.6288,77.5742,1001.0391);
    PlayerInfo[i][pJailed] = 1;
    ResetPlayerWeapons(i);
    ResetPlayerMoney(i);
    WantedPoints[i] = 0;
    PlayerInfo[i][pJailTime] = 240;
    format(string, sizeof(string), "Du bist eingesperrt für %d sekunden. Kaution: Keine", PlayerInfo[i][pJailTime]);
    SendClientMessage(i, COLOR_LIGHTBLUE, string);
    }
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(i, playername2, sizeof(playername2));
    account = PlayerInfo[i][pAccount];
    new key = PlayerInfo[i][pPhousekey];
    if(key != 255)
    {
    rent = HouseInfo[key][hRent];
    if(strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
    {
    rent = 0;
    }
    else if(rent > GetPlayerMoney(i))
    {
    PlayerInfo[i][pPhousekey] = 255;
    SendClientMessage(i, COLOR_WHITE, "You have been evicted.");
    rent = 0;
    }
    HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+rent;
    }
    new tmpintrate;
    if (key != 255 && strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
    {
    if(PlayerInfo[i][pDonateRank] > 0) { tmpintrate = intrate+4; }
    else { tmpintrate = intrate+2; }//HouseInfo[key][hLevel]
    }
    else
    {
    if(PlayerInfo[i][pDonateRank] > 0) { tmpintrate = 3; }
    else { tmpintrate = 1; }
    }
    if(PlayerInfo[i][pPayDay] >= 3)
    {
    Tax += TaxValue;//Should work for every player online
    PlayerInfo[i][pAccount] -= TaxValue;
    if(PlayerInfo[i][pDonateRank] > 0)
    {
    new bonus = PlayerInfo[i][pPayCheck] / 2;
    PlayerInfo[i][pPayCheck] += bonus;
    }
    new checks = PlayerInfo[i][pPayCheck];
    new ebill = (PlayerInfo[i][pAccount]/10000)*(PlayerInfo[i][pLevel]);
    //new oil = (PlayerInfo[i][pPhousekey]*100);
    ConsumingMoney[i] = 1;
    GivePlayerMoney(i, checks);
    if(PlayerInfo[i][pAccount] > 0)
    {
    PlayerInfo[i][pAccount] -= ebill;
    SBizzInfo[4][sbTill] += ebill;
    }
    else
    {
    ebill = 0;
    }
    if(PlayerInfo[i][pPhousekey] != 255)
    {
    //PlayerInfo[i][pAccount] -= oil;
    //SBizzInfo[3][sbTill] += oil;
    }
    else
    {
    //oil = 0;
    }
    if(PlayerInfo[i][pMember] == 0 && PlayerInfo[i][pLeader] == 0)
    {
    checks += 500;
    }
    interest = (PlayerInfo[i][pAccount]/1000)*(tmpintrate);
    PlayerInfo[i][pExp]++;
    PlayerPlayMusic(i);
    PlayerInfo[i][pAccount] = account+interest;
    SendClientMessage(i, COLOR_GOLD, "|================| KONTO AUSZUG |================|");
    format(string, sizeof(string), " Gehalt: $%d Miete: -$%d Steuern: -$%d", checks, rent, TaxValue);
    SendClientMessage(i, COLOR_GRAD1, string);
    if(PlayerInfo[i][pPhousekey] != 255 || PlayerInfo[i][pPbiskey] != 255)
    {
    format(string, sizeof(string), " Strom Kosten [incl.: Heitzkosten,Wasser: -$%d", ebill);
    SendClientMessage(i, COLOR_GRAD1, string);
    }
    if(PlayerInfo[i][pHandyVer] == 1)
    {
    SendClientMessage(i,COLOR_GRAD2," Handyvertragskosten: -$100");
    GivePlayerMoney(i, -100);
    }
    format(string, sizeof(string), " Zinsen: $%d [0.%d prozent]", interest,tmpintrate);
    SendClientMessage(i, COLOR_GRAD2, string);
    SendClientMessage(i, COLOR_GOLD, "|=================||============||=================|");
    format(string, sizeof(string), " Neuer Kontostand: $%d", PlayerInfo[i][pAccount]);
    SendClientMessage(i, COLOR_GRAD5, string);
    format(string, sizeof(string), "~g~PayDay~y~!!!");
    GameTextForPlayer(i, string, 5000, 1);
    rent = 0;
    PlayerInfo[i][pPayDay] = 0;
    PlayerInfo[i][pPayCheck] = 0;
    PlayerInfo[i][pConnectTime] += 1;
    if(PlayerInfo[i][pDonateRank] > 0)
    {
    PlayerInfo[i][pPayDayHad] += 1;
    if(PlayerInfo[i][pPayDayHad] >= 5)
    {
    PlayerInfo[i][pExp]++;
    PlayerInfo[i][pPayDayHad] = 0;
    }
    }
    }
    else
    {
    SendClientMessage(i, COLOR_LIGHTRED, "* Du hast nicht lange Genug gespielt!");
    }
    }
    else
    {
    SendClientMessage(i, COLOR_LIGHTRED, "* Du hast kannst keinen PayDay bekommen solange du AFK bist!");
    }
    }
    }
    Checkprop();
    return 1;
    }

  • if(PlayerInfo[i][pMember] == 0 && PlayerInfo[i][pLeader] == 0)
    {
    checks += 500;
    }


    D.h. wenn der spieler Zivi ist beckommt er 500


    und dann musst du einfach eine fraktionen hinzufügen..
    if(PlayerInfo[i][pMember] == 1 && PlayerInfo[i][pLeader] == 1)
    {
    checks += 1000;
    }


    Ungetestet

  • Es klappt immer noch nicht obwohl ich es für alle fraks geändert habe:


    public PayDay()
    {
    new string[128];
    new account,interest;
    new rent = 0;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(M_Bot[i][PAFK] == 0)
    {
    if(MoneyMessage[i]==1)
    {
    SendClientMessage(i, COLOR_LIGHTRED, "Du konntest deine Schulden nicht Bezahlen.");
    GameTextForPlayer(i, "~r~Busted!", 2000, 1);
    SetPlayerInterior(i, 6);
    SetPlayerPos(i, 264.6288,77.5742,1001.0391);
    PlayerInfo[i][pJailed] = 1;
    ResetPlayerWeapons(i);
    ResetPlayerMoney(i);
    WantedPoints[i] = 0;
    PlayerInfo[i][pJailTime] = 240;
    format(string, sizeof(string), "Du bist eingesperrt für %d sekunden. Kaution: Keine", PlayerInfo[i][pJailTime]);
    SendClientMessage(i, COLOR_LIGHTBLUE, string);
    }
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(i, playername2, sizeof(playername2));
    account = PlayerInfo[i][pAccount];
    new key = PlayerInfo[i][pPhousekey];
    if(key != 255)
    {
    rent = HouseInfo[key][hRent];
    if(strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
    {
    rent = 0;
    }
    else if(rent > GetPlayerMoney(i))
    {
    PlayerInfo[i][pPhousekey] = 255;
    SendClientMessage(i, COLOR_WHITE, "You have been evicted.");
    rent = 0;
    }
    HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+rent;
    }
    new tmpintrate;
    if (key != 255 && strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
    {
    if(PlayerInfo[i][pDonateRank] > 0) { tmpintrate = intrate+4; }
    else { tmpintrate = intrate+2; }//HouseInfo[key][hLevel]
    }
    else
    {
    if(PlayerInfo[i][pDonateRank] > 0) { tmpintrate = 3; }
    else { tmpintrate = 1; }
    }
    if(PlayerInfo[i][pPayDay] >= 3)
    {
    Tax += TaxValue;//Should work for every player online
    PlayerInfo[i][pAccount] -= TaxValue;
    if(PlayerInfo[i][pDonateRank] > 0)
    {
    new bonus = PlayerInfo[i][pPayCheck] / 2;
    PlayerInfo[i][pPayCheck] += bonus;
    }
    new checks = PlayerInfo[i][pPayCheck];
    new ebill = (PlayerInfo[i][pAccount]/10000)*(PlayerInfo[i][pLevel]);
    //new oil = (PlayerInfo[i][pPhousekey]*100);
    ConsumingMoney[i] = 1;
    GivePlayerMoney(i, checks);
    if(PlayerInfo[i][pAccount] > 0)
    {
    PlayerInfo[i][pAccount] -= ebill;
    SBizzInfo[4][sbTill] += ebill;
    }
    else
    {
    ebill = 0;
    }
    if(PlayerInfo[i][pPhousekey] != 255)
    {
    //PlayerInfo[i][pAccount] -= oil;
    //SBizzInfo[3][sbTill] += oil;
    }
    else
    {
    //oil = 0;
    }
    if(PlayerInfo[i][pMember] == 0 && PlayerInfo[i][pLeader] == 0)
    {
    checks += 500;
    }
    if(PlayerInfo[i][pMember] == 1 && PlayerInfo[i][pLeader] == 1)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 2 && PlayerInfo[i][pLeader] == 2)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 3 && PlayerInfo[i][pLeader] == 3)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 4 && PlayerInfo[i][pLeader] == 4)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 5 && PlayerInfo[i][pLeader] == 5)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 6 && PlayerInfo[i][pLeader] == 6)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 7 && PlayerInfo[i][pLeader] == 7)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 8 && PlayerInfo[i][pLeader] == 8)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 9 && PlayerInfo[i][pLeader] == 9)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 10 && PlayerInfo[i][pLeader] == 10)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 11 && PlayerInfo[i][pLeader] == 11)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 12 && PlayerInfo[i][pLeader] == 12)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 13 && PlayerInfo[i][pLeader] == 13)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 14 && PlayerInfo[i][pLeader] == 14)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 15 && PlayerInfo[i][pLeader] == 15)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 16 && PlayerInfo[i][pLeader] == 16)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 17 && PlayerInfo[i][pLeader] == 17)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 18 && PlayerInfo[i][pLeader] == 18)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 19 && PlayerInfo[i][pLeader] == 19)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 20 && PlayerInfo[i][pLeader] == 20)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 21 && PlayerInfo[i][pLeader] == 21)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 22 && PlayerInfo[i][pLeader] == 22)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 23 && PlayerInfo[i][pLeader] == 23)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 24 && PlayerInfo[i][pLeader] == 24)
    {
    checks += 1000;
    }
    interest = (PlayerInfo[i][pAccount]/1000)*(tmpintrate);
    PlayerInfo[i][pExp]++;
    PlayerPlayMusic(i);
    PlayerInfo[i][pAccount] = account+interest;
    SendClientMessage(i, COLOR_GOLD, "|================| KONTO AUSZUG |================|");
    format(string, sizeof(string), " Gehalt: $%d Miete: -$%d Steuern: -$%d", checks, rent, TaxValue);
    SendClientMessage(i, COLOR_GRAD1, string);
    if(PlayerInfo[i][pPhousekey] != 255 || PlayerInfo[i][pPbiskey] != 255)
    {
    format(string, sizeof(string), " Strom Kosten [incl.: Heitzkosten,Wasser: -$%d", ebill);
    SendClientMessage(i, COLOR_GRAD1, string);
    }
    if(PlayerInfo[i][pHandyVer] == 1)
    {
    SendClientMessage(i,COLOR_GRAD2," Handyvertragskosten: -$100");
    GivePlayerMoney(i, -100);
    }
    format(string, sizeof(string), " Zinsen: $%d [0.%d prozent]", interest,tmpintrate);
    SendClientMessage(i, COLOR_GRAD2, string);
    SendClientMessage(i, COLOR_GOLD, "|=================||============||=================|");
    format(string, sizeof(string), " Neuer Kontostand: $%d", PlayerInfo[i][pAccount]);
    SendClientMessage(i, COLOR_GRAD5, string);
    format(string, sizeof(string), "~g~PayDay~y~!!!");
    GameTextForPlayer(i, string, 5000, 1);
    rent = 0;
    PlayerInfo[i][pPayDay] = 0;
    PlayerInfo[i][pPayCheck] = 0;
    PlayerInfo[i][pConnectTime] += 1;
    if(PlayerInfo[i][pDonateRank] > 0)
    {
    PlayerInfo[i][pPayDayHad] += 1;
    if(PlayerInfo[i][pPayDayHad] >= 5)
    {
    PlayerInfo[i][pExp]++;
    PlayerInfo[i][pPayDayHad] = 0;
    }
    }
    }
    else
    {
    SendClientMessage(i, COLOR_LIGHTRED, "* Du hast nicht lange Genug gespielt!");
    }
    }
    else
    {
    SendClientMessage(i, COLOR_LIGHTRED, "* Du hast kannst keinen PayDay bekommen solange du AFK bist!");
    }
    }
    }

  • Mach mal die ganzen define weg mach nur so:
    >
    if(PlayerInfo[i][pMember] >= 1 && PlayerInfo[i][pLeader] >= 1)
    {
    checks += 1000;
    }
    dann sollte jede fraktion 1k bekommen

    Das Originale SOR ( Street´s of Reallife ) seit 03.10.2009

  • Du fragst hier ab, ob der Spieler mit ID i Member UND Leader ist. Du musst in den if Abfragen das && auf || ändern.

    mach nur von denn fraktion weg und das sollte so gemacht werden dann hat man auch nicht so viel sachen in dem public stehen:


    if(PlayerInfo[i][pMember] >= 1 || PlayerInfo[i][pLeader] >= 1)
    {
    checks += 1000;
    }

    Das Originale SOR ( Street´s of Reallife ) seit 03.10.2009

  • wenn ich das richtig sehe zahlst du das geld auch schon aus bevor du es für die spieler definiert hast


    oben steht schon
    GivePlayerMoney(i, checks);


    und erst darunter schreibst du dann


    if(PlayerInfo[i][pMember] == 0 && PlayerInfo[i][pLeader] == 0)
    {
    checks += 500;
    }
    if(PlayerInfo[i][pMember] == 1 && PlayerInfo[i][pLeader] == 1)
    {
    checks += 1000;
    }
    if(PlayerInfo[i][pMember] == 2 && PlayerInfo[i][pLeader] == 2)
    {
    ich würde sagen daran könnte es liegen