| Wetter - Frage |

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
  • Liebe Community,
    ich habe eine Frage bezüglich das Wetter, ich möchte es gern so haben dass das Wetter immer um "Um" sich ändert, ich habe jetzt auch schon etwas gemacht das dann immer eine Nachricht im Chat kommt, also ist der Timer somit schon da, ich weiß aber nicht wie man das Wetter dann ändert,
    ich hätte es gern so dass das Wetter immer zwischen WeatherID 2,3,4,5,6,7, und 8 bzw 9 wechselt, aber wie kann ich dies mit dem Timer machen?


    Wenn ich dort dies einfüge:
    SetWeather(-1);


    Dann ändert sich das wetter ja zwischen allen IDs, aber ich weiß nicht wie ich die nur machen kann, das die zwischen 2,3,4,5,6,7 und 8 bzw. 9 wechseln.


    Dort solls hin:



    public SyncTime(playerid)
    {
    new string[64];
    new tmphour;
    new tmpminute;
    new tmpsecond;
    gettime(tmphour, tmpminute, tmpsecond);
    FixHour(tmphour);
    tmphour = shifthour;
    if ((tmphour > ghour) || (tmphour == 0 && ghour == 23))
    {
    format(string, sizeof(string), "Es ist wieder eine Stunde vergangen.");
    BroadCast(COLOR_WHITE,string);
    ghour = tmphour;
    PayDay(playerid);
    if (realtime)
    {
    SetWorldTime(tmphour);
    }
    }
    }


    Ich hoffe ihr könnt helfen c:




    MfG,
    James.

  • Also das Wetter setzt man ganz normal mit "SetWeather(WEATHER ID);"
    So also was brauchen wir.
    Du brauchst ein "Zufallsgenerator" der die Zahlen zwischen 2,3,4,5,6,7,und 8 auswählt.
    Ich rate dir aber, nimm keinen 60 Min. Timer, da sich dann nur das Wetter ändert, wenn 60 Minuten rum sind.
    Das machst du relativ einfach so:




    public SyncTime(playerid)
    {


    new rndwth= 1+ random(7) // Der neue RND Weather "Generator" | Die zahlen kannst du erhöhen wenn du willst, jede Zahl steht für das Wetter.
    new string[64];
    new tmphour;
    new tmpminute;
    new tmpsecond;
    gettime(tmphour, tmpminute, tmpsecond);
    FixHour(tmphour);
    tmphour = shifthour;
    if ((tmphour > ghour) || (tmphour == 0 && ghour == 23))
    {
    format(string, sizeof(string), "Es ist wieder eine Stunde vergangen.");
    BroadCast(COLOR_WHITE,string);
    ghour = tmphour;
    PayDay(playerid);
    if (realtime)
    {
    SetWorldTime(tmphour);
    SetWeather(rndwth); //Hier wird das Ergebnis erstellt. || Es müsste so eigentlich gehen!
    }
    }
    }