case switcht nicht

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
  • Ich habe eben n FIlterscript für Automatische servernachichten geschrieben.
    Allerdings frunktionirt der switch nicht.

    #define FILTERSCRIPT


    #include <a_samp>



    #define WEIß 0xFFFFFFFF
    #define GRUEN 0x00FF00FF




    public OnFilterScriptInit()
    {
    print("-------------------------------------------");
    print(" ServerNachicht Filterscript wurde geladen.");
    print(" ~~~~~~~~~~~made by 123Maffin~~~~~~~~~~~~~~");
    print("-------------------------------------------");
    //SetTimer("servernachicht",1000*60*10,true);
    SetTimer("servernachicht",5000,true); //Zum Testen.
    }


    forward servernachicht();


    public servernachicht()
    {
    new message;
    switch(message)
    {
    case 0:
    {
    print("[ServerNachicht]: Nachicht 1 wurde gesendet.");
    SendClientMessageToAll(GRUEN,"______________________________{FFFFFF}ServerMeldung{00FF46}_________________________________");
    SendClientMessageToAll(WEIß," Dieser Server ist noch im aufbau und komplett Selfmade.");
    SendClientMessageToAll(WEIß," Wir bitten bugs zu entschuldigen.");
    SendClientMessageToAll(WEIß," Das TMM Team wünscht euch Viel Spaß.");
    SendClientMessageToAll(GRUEN,"|_____________________________________________________________________________|");
    message ++;
    }
    case 1:
    {
    print("[ServerNachicht]: Nachicht 3 wurde gesendet.");
    SendClientMessageToAll(GRUEN,"______________________________{FFFFFF}ServerMeldung{00FF46}_________________________________");
    SendClientMessageToAll(WEIß," Wir würden uns Sehr Freuen, wen ihr den Server zu den Favoriten hinzufügt.");
    SendClientMessageToAll(WEIß," Verbesserungvorschläge könnt ihr gerne einen Admin vie /pm zukommen lassen.");
    SendClientMessageToAll(WEIß," Admins: 123Maffin, djmaxi, Grinder");
    SendClientMessageToAll(WEIß," Das TMM Team wünscht euch noch Viel Spaß.");
    SendClientMessageToAll(GRUEN,"|_____________________________________________________________________________|");
    message ++;
    }
    case 2:
    {
    print("[ServerNachicht]: Nachicht 3 wurde gesendet.");
    SendClientMessageToAll(GRUEN,"______________________________{FFFFFF}ServerMeldung{00FF46}_________________________________");
    SendClientMessageToAll(WEIß," Hacker, Cheater und co sollten immer gemeldet werden.");
    SendClientMessageToAll(WEIß," Ihr könnt sie via /pm an einem admin senden. Bitte mit ID oder Name des Cheaters.");
    SendClientMessageToAll(WEIß," Admins: 123Maffin, djmaxi, Grinder");
    SendClientMessageToAll(WEIß," Das TMM Team wünscht euch noch viel Spaß.");
    SendClientMessageToAll(GRUEN,"|_____________________________________________________________________________|");
    message = 0;
    }
    }
    }



    Ich habe den Timer so niedrich gestellt um zu gucken obs funktioniert.
    Hier ein auszug aus dem Log (wegen dem print):


    Weiß jemand von euch woran das liegt?


    //e
    Ich habs als FIlterscript gemacht damit das Hauptscript nicht so "vollgemüllt" wird.

  • dann erstell die Variable Message beim Init..
    Weise ihr den Wert 0 zu.. wenn dann der timer soweit ist, lass die erste message senden und wrise der variable den wert 1 zu. nach der letzen message die gesendet werden soll gibst ihr wieder den Wert 0 ... alles verstanden? xD


    Lg RedAge

  • dann erstell die Variable Message beim Init..
    Weise ihr den Wert 0 zu.. wenn dann der timer soweit ist, lass die erste message senden und wrise der variable den wert 1 zu. nach der letzen message die gesendet werden soll gibst ihr wieder den Wert 0 ... alles verstanden? xD


    Lg RedAge



    public servernachicht()
    {
    new message;
    message = 0;
    switch(message)
    {
    case 0:
    {
    print("[ServerNachicht]: Nachicht 1 wurde gesendet.");
    SendClientMessageToAll(GRUEN,"______________________________{FFFFFF}ServerMeldung{00FF46}_________________________________");
    SendClientMessageToAll(WEIß," Dieser Server ist noch im aufbau und komplett Selfmade.");
    SendClientMessageToAll(WEIß," Wir bitten bugs zu entschuldigen.");
    SendClientMessageToAll(WEIß," Das TMM Team wünscht euch Viel Spaß.");
    SendClientMessageToAll(GRUEN,"|_____________________________________________________________________________|");
    message = 1;
    }
    case 1:
    {
    print("[ServerNachicht]: Nachicht 3 wurde gesendet.");
    SendClientMessageToAll(GRUEN,"______________________________{FFFFFF}ServerMeldung{00FF46}_________________________________");
    SendClientMessageToAll(WEIß," Wir würden uns Sehr Freuen, wen ihr den Server zu den Favoriten hinzufügt.");
    SendClientMessageToAll(WEIß," Verbesserungvorschläge könnt ihr gerne einen Admin vie /pm zukommen lassen.");
    SendClientMessageToAll(WEIß," Admins: 123Maffin, djmaxi, Grinder");
    SendClientMessageToAll(WEIß," Das TMM Team wünscht euch noch Viel Spaß.");
    SendClientMessageToAll(GRUEN,"|_____________________________________________________________________________|");
    message = 2;
    }
    case 2:
    {
    print("[ServerNachicht]: Nachicht 3 wurde gesendet.");
    SendClientMessageToAll(GRUEN,"______________________________{FFFFFF}ServerMeldung{00FF46}_________________________________");
    SendClientMessageToAll(WEIß," Hacker, Cheater und co sollten immer gemeldet werden.");
    SendClientMessageToAll(WEIß," Ihr könnt sie via /pm an einem admin senden. Bitte mit ID oder Name des Cheaters.");
    SendClientMessageToAll(WEIß," Admins: 123Maffin, djmaxi, Grinder");
    SendClientMessageToAll(WEIß," Das TMM Team wünscht euch noch viel Spaß.");
    SendClientMessageToAll(GRUEN,"|_____________________________________________________________________________|");
    message = 0;
    }
    }
    }


    Es Fuktionirt komischerweise trotzdem nicht.

  • Natürlich funktioniert das so nicht. :-/
    Erstelle eine globale Variable, sprich eine Variable außerhalb der Funktion, denn innerhalb der Funktion würde das nichts bringen. So, diese erhöhst du innerhalb der Funktion bei jedem Aufruf um 1 und arbeitest dann mit Switch, dann hat's auch einen Nutzen. Und dann, wenn die Variable den Wert 3 bekommen WÜRDE, setzt du den wieder auf 0.

  • Natürlich funktioniert das so nicht. :-/
    Erstelle eine globale Variable, sprich eine Variable außerhalb der Funktion, denn innerhalb der Funktion würde das nichts bringen. So, diese erhöhst du innerhalb der Funktion bei jedem Aufruf um 1 und arbeitest dann mit Switch, dann hat's auch einen Nutzen. Und dann, wenn die Variable den Wert 3 bekommen WÜRDE, setzt du den wieder auf 0.


    Versteh ich nicht ganz.

  • Dann zeig mal, was du denn davon versteht (anhand von Code).



    #define FILTERSCRIPT


    #include <a_samp>



    #define WEIß 0xFFFFFFFF
    #define GRUEN 0x00FF00FF


    new message;


    public OnFilterScriptInit()
    {
    print("-------------------------------------------");
    print(" ServerNachicht Filterscript wurde geladen.");
    print(" ~~~~~~~~~~~made by 123Maffin~~~~~~~~~~~~~~");
    print("-------------------------------------------");
    //SetTimer("servernachicht",1000*60*10,true);
    SetTimer("servernachicht",5000,true); //Zum Testen.
    }


    forward servernachicht();


    public servernachicht()
    {
    message = 0;
    switch(message)
    {
    case 0:
    {
    print("[ServerNachicht]: Nachicht 1 wurde gesendet.");
    SendClientMessageToAll(GRUEN,"______________________________{FFFFFF}ServerMeldung{00FF46}_________________________________");
    SendClientMessageToAll(WEIß," Dieser Server ist noch im aufbau und komplett Selfmade.");
    SendClientMessageToAll(WEIß," Wir bitten bugs zu entschuldigen.");
    SendClientMessageToAll(WEIß," Das TMM Team wünscht euch Viel Spaß.");
    SendClientMessageToAll(GRUEN,"|_____________________________________________________________________________|");
    message = +1;
    }
    case 1:
    {
    print("[ServerNachicht]: Nachicht 3 wurde gesendet.");
    SendClientMessageToAll(GRUEN,"______________________________{FFFFFF}ServerMeldung{00FF46}_________________________________");
    SendClientMessageToAll(WEIß," Wir würden uns Sehr Freuen, wen ihr den Server zu den Favoriten hinzufügt.");
    SendClientMessageToAll(WEIß," Verbesserungvorschläge könnt ihr gerne einen Admin vie /pm zukommen lassen.");
    SendClientMessageToAll(WEIß," Admins: 123Maffin, djmaxi, Grinder");
    SendClientMessageToAll(WEIß," Das TMM Team wünscht euch noch Viel Spaß.");
    SendClientMessageToAll(GRUEN,"|_____________________________________________________________________________|");
    message = +1;
    }
    case 2:
    {
    print("[ServerNachicht]: Nachicht 3 wurde gesendet.");
    SendClientMessageToAll(GRUEN,"______________________________{FFFFFF}ServerMeldung{00FF46}_________________________________");
    SendClientMessageToAll(WEIß," Hacker, Cheater und co sollten immer gemeldet werden.");
    SendClientMessageToAll(WEIß," Ihr könnt sie via /pm an einem admin senden. Bitte mit ID oder Name des Cheaters.");
    SendClientMessageToAll(WEIß," Admins: 123Maffin, djmaxi, Grinder");
    SendClientMessageToAll(WEIß," Das TMM Team wünscht euch noch viel Spaß.");
    SendClientMessageToAll(GRUEN,"|_____________________________________________________________________________|");
    message = +1;
    }
    }
    }


    Allerdings kommen da Errors und Warnungen raus deswegen kann es nicht richtig sein.

  • Gut, auch wenn ich denke, dass du einen auf "Ich stell mich mal auf dumm, der coded mir das schon" machst, zeig ich's dir jetzt, wie es gehen SOLLTE.


    //oben:
    new varMessage = 0;


    //die Funktion oben
    varMessage++;


    //die Funktion dann mit switch&case
    switch(varMessage) {
    case 0: {
    //...
    }
    case 1: {
    //...
    }
    case 2: {
    //...
    }
    }


    //die Abfrage, ob die Variable schon mehr als 2 ist, oben in die Funktion:
    if(varMessage > 2) {
    varMessage = 0;
    }


    Sollte klapp'n.

  • Habs schon selber hinbekommen aber trotzdem danke. Mein Fehler war das die Variable im public war.