Problem mit Lotto ( for(new i = 0; i < MAX_PLAYERS; i++) { )

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
  • Hey Leute. Habe in meinem Script einen Timer, Nach 10 Minuten kommt Payday, in diesem callback wird nochmal ein timer gesetzt, und zwar lotto.
    (Version aus GF)
    public Lotto(number)
    {
    new JackpotFallen = 0;
    new string[256];
    new winner[MAX_PLAYER_NAME];
    format(string, sizeof(string), "Lotterie News: Heute ist die Gewinnernummer: %d.", number);
    SendClientMessageToAll(COLOR_WHITE, string);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(Spieler[i][pLottoNr] > 0)
    {
    if(Spieler[i][pLottoNr] == number)
    {
    JackpotFallen = 1;
    GetPlayerName(i, winner, sizeof(winner));
    format(string, sizeof(string), "Lotterie News: %s hat den Jackpot von %d$ gewonnen.", winner, Jackpot);
    SendClientMessageToAll(COLOR_WHITE, string);
    format(string, sizeof(string), "* Du hast %d$ mit deinem Lotterieticket gewonnen.", Jackpot);
    SendClientMessage(i, COLOR_YELLOW, string);
    GivePlayerMoney(i, Jackpot);
    }
    else
    {
    SendClientMessage(i, COLOR_LIGHTBLUE, "* Mit deinem Lotterieticket ist diesmal nichts geworden.");
    }
    }
    Spieler[i][pLottoNr] = 0;
    }
    }
    if(JackpotFallen)
    {
    new rand = random(125000); rand += 15789;
    Jackpot = rand;
    SaveStuff();
    format(string, sizeof(string), "Lotterie News: Der neue Jackpot wurde mit %d$ gestartet.", Jackpot);
    SendClientMessageToAll(COLOR_WHITE, string);
    }
    else
    {
    new rand = random(15000); rand += 2158;
    Jackpot += rand;
    SaveStuff();
    format(string, sizeof(string), "Lotterie News: Der Jackpot wurde auf %d$ erhöht.", Jackpot);
    SendClientMessageToAll(COLOR_WHITE, string);
    }
    return 1;
    }
    Leider werde ich Total vollgespammt.
    MfG


    Edit:
    So ein Problem hatte ich schonmal, das hat doch irgendwas mit
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    Zu tun oder?

    Einmal editiert, zuletzt von d3adlockz ()

  • Das kommt davon wenn man alles aus dem GF nimmt ;)



    public Lotto(number)
    {
    new JackpotFallen = 0;
    new string[256];
    new winner[MAX_PLAYER_NAME];
    format(string, sizeof(string), "Lotterie News: Heute ist die Gewinnernummer: %d.", number);
    SendClientMessageToAll(COLOR_WHITE, string);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(Spieler[i][pLottoNr] == number)
    {
    JackpotFallen = 1;
    GetPlayerName(i, winner, sizeof(winner));
    format(string, sizeof(string), "Lotterie News: %s hat den Jackpot von %d$ gewonnen.", winner, Jackpot);
    SendClientMessageToAll(COLOR_WHITE, string);
    format(string, sizeof(string), "* Du hast %d$ mit deinem Lotterieticket gewonnen.", Jackpot);
    SendClientMessage(i, COLOR_YELLOW, string);
    GivePlayerMoney(i, Jackpot);
    }
    else if(Spieler[i][pLottoNr] > 0 ) { SendClientMessage(i, COLOR_LIGHTBLUE, "* Mit deinem Lotterieticket ist diesmal nichts geworden."); }
    Spieler[i][pLottoNr] = 0;
    }
    }
    if(JackpotFallen)
    {
    new rand = random(125000); rand += 15789;
    Jackpot = rand;
    SaveStuff();
    format(string, sizeof(string), "Lotterie News: Der neue Jackpot wurde mit %d$ gestartet.", Jackpot);
    SendClientMessageToAll(COLOR_WHITE, string);
    }
    else
    {
    new rand = random(15000); rand += 2158;
    Jackpot += rand;
    SaveStuff();
    format(string, sizeof(string), "Lotterie News: Der Jackpot wurde auf %d$ erhöht.", Jackpot);
    SendClientMessageToAll(COLOR_WHITE, string);
    }
    return 1;
    }


    Und das :

    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    nennt man schleife ;)


    Und bitte mal den Timer zeigen da evtl der Interval zu hoch ist :)


    LG

  • SetTimer("payday",600000,1);
    public payday()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    SendClientMessage(i, WHITE, "__________Zahltag__________");
    SendClientMessage(i, WHITE, "Spielbelohnung: 5000$");
    GivePlayerMoney(i,5000);
    SendClientMessage(i, WHITE, "Spielbelohnung: 5 Scorepunkte");
    SetPlayerScore(i,GetPlayerScore(i)+5);
    SendClientMessage(i, COLOR_ORANGE, "PS: In 1 Minute ist Lotto! Nutze /lotto !");
    SetTimer("Lotto", 60000, 0);
    }
    return 1;
    }
    Und der Payday ist alle 10 Min...


    @ Sniperwolfes
    Das sollte eben so sein dass es 1 Min nach dem Payday ist...

  • kein wunder den wenn payday kommt startet der timer 1h und dann kommt wieder payday und wieder 1h du musst praktisch 59min machen

  • Das ist doch das gleiche^^
    Und Funktioniert auch nid werd immer noch vollgespammt...


    Edit: Ich wills nochmal pushen...
    Die Parameter werden schon erstellt...
    Problem besteht weiterhin


    Edit2: Hat sich erledigt.

    2 Mal editiert, zuletzt von d3adlockz ()