Probleme mit 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
  • Hallo


    Ich habe seit längerer Zeit Probleme mit dem Payday, auch User haben gesagt, sie hätten nie den richtigen Payday oder sogar immer verschiedene Paydays. Alles bis auf den Member und Leader-Payday stimmt sonst, nur diese 2 gehen nie wirklich. Ich habe also jetzt jeder Fraktion als Geldbetrag die Fraktionsid gegeben, um das etwas genauer anshauen zu können.
    Ich habe es vorhin getestet:
    pMember = 6
    pLeader= 6
    pRank = 6


    Was rauskam:


    .....
    Rank: 600 (stimmt)
    Member: 13 (Stimmt nicht)
    Leader 7 (Stimmt nicht)


    Hier der Code:
    new FrakGeld[MAX_FRAKS][2] =
    {
    {1,1},//Fraktion 1
    {2,2},//Fraktion 2
    {3,3},//Fraktion 3
    {4,4},//Fraktion 4
    {5,5},//Fraktion 5
    {6,6},//Fraktion 6
    {7,7},//Fraktion 7
    {8,8},//Fraktion 8
    {9,9},//Fraktion 9
    {10,10},//Fraktion 10
    {11,11},//Fraktion 11
    {12,12},//Fraktion 12
    {13,13},//Fraktion 13
    {14,14},//Fraktion 14
    {15,15},//Fraktion 15
    {16,16},//Fraktion 16
    {17,17} //Fraktion 17
    };
    public PayDay(i)
    {
    if(IsPlayerConnected(i))
    {
    if(PayTime[i] == 1)
    {
    //New
    new str[256];
    new zinsa = 1;
    new respekt = 1;
    new check = 100;
    new level = PlayerInfo[i][pLevel];
    new extra = (level*100);
    new money = ((PlayerInfo[i][pBank]/1000)*zinsa);
    new jpoints = (PlayerInfo[i][pJPoints]);
    new fpoints = (PlayerInfo[i][pFPoints]);
    new gjpoints = jpoints * 10;
    new gfpoints = fpoints * 10;
    new rank = PlayerInfo[i][pRank] * 100;
    //Addition
    check += extra;
    //Richtiger Payday
    format(str, sizeof(str), "--------------------------------------"); //Anfang
    SendClientMessage(i, COLOR_GREEN, str);
    format(str, sizeof(str), "Lohn: $%d",check); //Lohn
    SendClientMessage(i, COLOR_WHITE, str);
    format(str, sizeof(str), "Zinsengeld: $%d",money); //Zinsen
    SendClientMessage(i, COLOR_WHITE, str);
    format(str, sizeof(str), "Punktegeld: Job $%d, Fraktion $%d ",jpoints, fpoints); //Punkte
    SendClientMessage(i, COLOR_WHITE, str);
    //Job
    if(PlayerInfo[i][pJob] != 0)
    {
    new frak = PlayerInfo[i][pJob];
    JB_GivePlayerMoney(i, JobGeld[frak][0]);
    format(str,sizeof(str),"Job: $%d", JobGeld[frak][0] );
    SendClientMessage(i, COLOR_WHITE, str);
    }
    //Rank
    if(PlayerInfo[i][pMember] != 1)
    {
    JB_GivePlayerMoney(i, rank);
    format(str,sizeof(str),"Fraktions Rank: $%d",rank);
    SendClientMessage(i, COLOR_WHITE, str);
    }
    //Member
    if(PlayerInfo[i][pMember] != 0)
    {
    new frak = PlayerInfo[i][pMember];
    JB_GivePlayerMoney(i, FrakGeld[frak][0]);
    format(str,sizeof(str),"Fraktions Member: $%d", FrakGeld[frak][0] );
    SendClientMessage(i, COLOR_WHITE, str);
    }
    //Leader
    if(PlayerInfo[i][pLeader] != 0)
    {
    new frak = PlayerInfo[i][pLeader];
    JB_GivePlayerMoney(i, FrakGeld[frak][1]);
    format(str,sizeof(str),"Fraktions Leader: $%d", FrakGeld[frak][1] );
    SendClientMessage(i, COLOR_WHITE, str);
    }
    format(str, sizeof(str), "--------------------------------------"); //Ende
    SendClientMessage(i, COLOR_GREEN, str);
    //Auszahlung
    JB_GivePlayerMoney(i, check); //Lohn
    JB_GivePlayerMoney(i, money); //Zinsen
    JB_GivePlayerMoney(i, gjpoints); //Jobpoints
    JB_GivePlayerMoney(i, gfpoints), //Fraktionspoints
    //Resetten und Count +1
    PlayerInfo[i][pJPoints] = 0; //Jobpoints
    PlayerInfo[i][pFPoints] = 0; //Fraktionspoints
    PayTime[i] = 0;
    PlayerInfo[i][pRespekt] += respekt;
    //Payday Ausgabe
    format(str, sizeof(str), "~g~Pay~w~Day");
    GameTextForPlayer(i, str, 5000, 1);
    return 1;
    }
    }
    return 0;
    }

  • Dein Rank ergibt sich durch das:
    new rank = PlayerInfo[i][pRank] * 100;
    also bei deinem Beispiel wäre es so:
    new rank = 6 * 100; //Deshalb auch 600 ^^


    Ansonsten bitte den folgenden Code Austauschen...


    //Member
    if(PlayerInfo[i][pMember] != 0)
    {
    new frak = PlayerInfo[i][pMember];
    JB_GivePlayerMoney(i, FrakGeld[frak][0]-1);
    format(str,sizeof(str),"Fraktions Member: $%d", FrakGeld[frak][0]-1 );
    SendClientMessage(i, COLOR_WHITE, str);
    }
    //Leader
    if(PlayerInfo[i][pLeader] != 0)
    {
    new frak = PlayerInfo[i][pLeader];
    JB_GivePlayerMoney(i, (FrakGeld[frak][1])-1);
    format(str,sizeof(str),"Fraktions Leader: $%d", FrakGeld[frak][1]-1 );
    SendClientMessage(i, COLOR_WHITE, str);
    }


    warum bei Member 16 rauskommt sieht man an dem Code nicht, vl irgendein Fehler woanders und den Code was ich ned versteh ist:


    //Rank
    if(PlayerInfo[i][pMember] != 1)
    {
    JB_GivePlayerMoney(i, rank);
    format(str,sizeof(str),"Fraktions Rank: $%d",rank);
    SendClientMessage(i, COLOR_WHITE, str);
    }


    Wozu dient das, wenn du ihm nachher eh gehalt gibst ^^

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!