Ergebnis 1 bis 7 von 7

Thema: Frage zu Message-Box und Text-Soundeffekten

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Danke euch beiden, habe es gerade mit der Bedingung versucht und der Sound wird jetzt nicht mehr abgespielt, wenn der Umschlagpfeil erscheint. Aber ein paar Sounds erscheinen noch über das Ende des Satzes. Wofür stehen denn die \e \n \f ? Bezieht sich dieses \n z.B. nur auf Zeilenumbrüche, oder deckt das eine ganze Kategorie von Special Codes ab (da ich z.B. auch \s[150] und sowas verwende). Und was muss ich da noch abändern, damit Leerstellen ebenfalls rausgenommen werden sollen?

    Hier ist mal eine Message-Endung von mir als Beispiel: Text... \c[0] /i \s[160] \^

    Geändert von Nishi (02.01.2014 um 15:56 Uhr)

  2. #2
    Das "\n" ist das ASCII Symbol für den Line-Feed, also den Zeilenumbruch. Das hat historische Wurzeln.
    Es stellt nur ein einziges Zeichen dar, nämlich das unsichtbare "nächste-Zeile" Zeichen.

    Die Methode von Linkey würde funktionieren, ist aber nicht die sauberste Lösung, da du jedes Zeichen in das Array hard-coden musst.
    Du müstest zwischen den zwei eckigen Klammern im Rot hinterlegten Code-Fragment alle Zeichen hinzufügen, welche du verstummt haben möchtest.

    Das Problem dabei ist, dass deine Kombinationen, wie zum Beispiel "\c" nicht ein einziger Buchstabe sind, sondern aus zweien bestehen. Diese Methode würde also bei diesen Kombinationen nicht direkt funktionieren.
    Man könnte das Script vielleicht so umschreiben, dass es zunächst ein Wort einliest, untersucht ob es sich bei diesem Wort um ein "echtes" Wort handelt oder um ein Script-Fragment, und nur falls es ein echtes Wort ist die Methode "textsound_process_character_normal" für jedes Zeichen in dem Wort aufrufen.
    Da ich nicht weis wie genau das ganze Script aussieht kann ich nicht sagen wie kompliziert das wäre.

    Alternativ könnte man auch den Text filtern bevor er überhaupt an das Script weitergeleitet wird. Alle Scripte im Text zunächst auswerten und die Werte einfügen, und dann erst den Sound generieren lassen.
    Auch hierbei kann ich nicht sagen wie kompliziert dies für dieses spezielle Script wäre.

  3. #3
    Alles klar, ich habe mein Wunschergebnis erreicht. Habe - wie du sagtest - alles manuell aufgezählt. Ob besonders schön oder nicht, eine intelligente Wortabfrage wäre mir jetzt ein Stein im Weg gewesen.

    Hier der Code, mit dem es funktioniert:

    Code:
    class Window_Base < Window
      include Text_Sound_Effect
      #--------------------------------------------------------------------------
      # alias method: process_character
      #--------------------------------------------------------------------------
      alias textsound_process_character_normal process_character
      def process_character(c, text, pos)
        if !$game_switches[MESSAGE_SOUND_DISABLE] and 
          !["\e","\n","\f","\s","/i"," ","\^"].include?(c)
    Danke noch mal!

  4. #4
    @Cornix
    Nicht ganz richtig. Normal fängt der Maker mit "\e" die Code-Befehle in einer Message ab. D.h. Befehle wie \c[5], \| usw. werden vollkommen ignoriert. Allerdings macht der Maker das nicht für alle Befehle, was mir vorher nicht klar war.
    Was im oben genannten Beispiel den Sound verursacht hatte war /i, \s[] und die Leerzeichen.

    Aber ju, unschön/unsauber ist das ganze schon. Wenn durch \e jegliche Steuer-Befehle gefiltert würden, wäre es zumindest relativ übersichtlich gewesen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •