Frage zum Abfragen der vollen Stunden

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,


    ich möchte zu genau jeder vollen Stunde eine Nachricht an alle vergeben, muss ich das dann so machen:


    Beispiel:


    if(hour ==0 && minute == 0){Nachricht an die Spieler}
    if(hour ==1 && minute == 0){Nachricht an die Spieler}
    if(hour ==2 && minute == 0){Nachricht an die Spieler}


    und dann einen Timer, welcher jede Minute dies abfragt?


    Oder gibt es noch eine bessere (ressourcensparendere) Möglichkeit?


    Hilfe wäre super nett.
    LG

    Mein Selfmade:

    1.Haussytem [99/100%]
    2.Handysystem [95/100%]
    3.Payday [95/100%]
    4.Autosystem [100/100%]
    5. kleinigkeiten, wo ich noch bugs habe^^ [75/100%]
    Wer mir helfen möchte und vorallem Lust oder Zeit hat, darf sich natürlich bei mir melden. :D


    >> ¡Einfach PN an mich! <<

    Marco

  • Du musst doch nur abfragen, ob die Minute null ist. ^^
    Hätte dann einen Timer auf eine Minute gesetzt, also 60000 Millisekunden.
    (Alternativ auch noch 2 Minuten, ob die Message dann mal ne Minute später kommt, wird wohl eher egal sein.)



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )

  • Okay, ich habe das jetzt so gemacht:


    Einen Timer, welcher 1 Minute durchgeht und sich wiedeholt.


    Im public:
    gettime(minute);
    if(minute == 40){SendClientMessageToAll(COLOR_WEISS,"Test");return 1;}


    Die Nachricht wird aber nicht (bei Minute 40) gesendet...

    Mein Selfmade:

    1.Haussytem [99/100%]
    2.Handysystem [95/100%]
    3.Payday [95/100%]
    4.Autosystem [100/100%]
    5. kleinigkeiten, wo ich noch bugs habe^^ [75/100%]
    Wer mir helfen möchte und vorallem Lust oder Zeit hat, darf sich natürlich bei mir melden. :D


    >> ¡Einfach PN an mich! <<

    Marco

  • Exerzier das Ganze doch ersteinmal testweise für Sekunden durch.
    Sagt bei sekunde 40 soll er die message plotten und du setzt den timer auf 1 sek.
    So lässt sich der Fehler evtl schneller beheben.
    Muss sich um irgendeinen Logikfehler handeln ;)
    (Eine Verschiebung oder so :) )


    @ Maxx: Das ist nicht die Lösung, wenn er etwas zeitgesteuert tun möchte, was er auch im Vorfeld explizit zur Geltung gebracht hat.



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )

  • Ist doch ganz einfach, deine Funktion funktioniert nicht, weil gettime 3 Parameter hat.
    Der erste ist die Stunde, dann folgt die Minute und zum Schluss die Sekunde.
    Diese kannst du weglassen, dann wird entweder der Zeitstempel, die Stunde, die Stunde und die Minute oder die Stunde, die Minute und die Sekunde (bei 3 übergebenen Parametern) zurückgegeben.
    Da du nur einen Parameter übergeben hast, wird nur die Stunde zurückgegeben, da der erste Parameter, wie gesagt, die Stunde ist.
    So sollte es funktionieren:


    public OnGameModeInit()
    {
    SetTimer("TimeMessage", 60000, 1);//Es wird ein Timer initialisiert, der alle 60 Sekunden die Funktion "TimeMessage" aufruft.
    }



    forward TimeMessage();
    public TimeMessage()
    {
    new Hour, Minute;//Variablen, in der die Stunde und die Minute gespeichert werden
    GetTime(Hour, Minute);//Definieren der Variablen, Hour und Minute erhalten die entsprechenden Werte
    if(Minute == 0)
    {
    new string[32];
    format(string, sizeof(string), "Es ist %d Uhr.", Hour);
    SendClientMessageToAll(COLOR_WEISS, string);
    }
    }



    BlackLegend