Ergebnis 1 bis 17 von 17

Thema: Variablen anzeigen bei Map Name Display

  1. #1

    Variablen anzeigen bei Map Name Display

    Hello,

    ich will hier (mit Pfeil markiert) Variablen anzeigen lassen. Zum Beispiel "Text: \V[1]"

    Hab was cooles damit vor aber von Haus aus spielt der Maker da wohl nicht mit. Gibt es da eine Möglichkeit?

    Grüße von deinem Ken der Kot
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Unbenannt.png  

  2. #2
    Irgendwo über "Main" einfügen:
    Code:
    class Window_MapName < Window_Base
      def refresh
        contents.clear
        unless $game_map.display_name.empty?
          tmap_name = $game_map.display_name
          if tmap_name =~ /\\V\[(.*)]/i
            tmap_name[/\\V\[(.*)]/] = $game_variables[$1.to_i].to_s
          end
          draw_background(contents.rect)
          draw_text(contents.rect, tmap_name, 1)
        end
      end
    end

  3. #3
    Dankesehr

    Aktuell geht aber leider gerade nur eine Variable und die bleibt konstant Null. Mach ich da was falsch?

    Dein Ken der Kot

  4. #4
    Ersetz das mal hiermit und schau ob es dann tut:
    Code:
    class Window_MapName < Window_Base
      def refresh
        contents.clear
        unless $game_map.display_name.empty?
          tmap_name = $game_map.display_name
          tmap_name = tmap_name.gsub(/\\V\[(\d+)\]/i) { $game_variables[$1.to_i].to_s }
          draw_background(contents.rect)
          draw_text(contents.rect, tmap_name, 1)
        end
      end
    end

  5. #5
    Code:
    class Window_MapName < Window_Base
      def refresh
        contents.clear
        unless $game_map.display_name.empty?
          tmap_name = $game_map.display_name
          while tmap_name =~ /\\V\[(\d*)]/
            tmap_name[/\\V\[(\d*)]/] = $game_variables[$1.to_i].to_s
          end
          draw_background(contents.rect)
          draw_text(contents.rect, tmap_name, 1)
        end
      end
    end
    Edit: Gepanks war schneller

  6. #6
    Hi Cepanks. Nein, leider nicht. Nun zeigt es keine Null mehr an, sondern \V[0001]

    Edit: Danke Linkey, ich kann nun mehrere Werte anzeigen, aber sie bleiben immer noch bei Null, egal welchen Wert ich der Variable gebe.

  7. #7
    Habe es selbst getestet, bei mir funktioniert es einwandfrei. Hast du die Variablen auch wirklich gesetzt?

  8. #8
    Ja, ich verwende zwei Variablen und weiße denen über F9 testweise Werte zu. Aber die Variablen in der Anzeige bleiben bei Null. Das ist ja seltsam...

    Edit: Grad auch in einem "ganz frischen" Testprojekt ohne Scripte getestet. Nur Nullen.

    Geändert von Ken der Kot (18.03.2018 um 19:24 Uhr)

  9. #9
    Auch das geht bei mir. Wie genau hast du den "Map Displaynamen" denn genannt?

  10. #10
    Ich nannte ihn: Text: \V[0007] Text: \V[0008]

    Die entsprechenden Variablen haben wie gesagt feste Werte ungleich Null zugewiesen bekommen.

  11. #11
    Das läuft definitiv bei mir. Schick mir mal das neue Testprojekt, welches ohne Scripte ist. Bei dem muss es laufen.

  12. #12

  13. #13
    Bei deinem Testprojekt gibt es gar keinen Mapwechsel, wie sollen die Variablen dann angezeigt werden?
    Ich habe einfach mal eine zweite Map erstellt (kopie von der ersten). Und das Script funktioniert einwandfrei.

  14. #14
    Achso, jetzt verstehe ich. Ich brauch das ohne den Teleport als Bedingung. Die Variablen sollen also angezeigt werden ohne dass ein Teleport oder Mapwechsel vorausgeht. Weil: Den Mapnamen zeige ich ja bereits über PAC an

    Code:
    #--------------------------------------------------------------------------
      # * Create Map Window
      #--------------------------------------------------------------------------
      def create_map_window 
        x = PAC::MM::Windows_Pos ==:right ? Graphics.width-@command_window.width : 0
        @map_window = Window_MenuMap.new(x, @command_window.height)
        @map_window.visible = false if !PAC::MM::Map_Window
      end
    Nun müssen halt nur noch die Variablen in den Mapnamen und ich hab, was ich will. Verstehst du?

    Geändert von Ken der Kot (18.03.2018 um 21:31 Uhr)

  15. #15
    "Es klappt nicht mal in einem neuen Projekt ohne Scripts". Die Erwähnung, dass du es über ein Script aufrufst, wäre sehr hilfreich gewesen
    Das verwendet ein eigenes Map-Window.
    Code:
    class Window_MapName < Window_Base
      def refresh
        contents.clear
        unless $game_map.display_name.empty?
          tmap_name = "" + $game_map.display_name
          while tmap_name =~ /\\V\[(\d*)]/
            tmap_name[/\\V\[(\d*)]/] = $game_variables[$1.to_i].to_s
          end
          tmap_name = tmap_name
          draw_background(contents.rect)
          draw_text(contents.rect, tmap_name, 1)
        end
      end
    end
    
    class Window_MenuMap < Window_Base
      def refresh
        contents.clear
        unless $game_map.display_name.empty?
          tmap_name = "" + $game_map.display_name
          while tmap_name =~ /\\V\[(\d*)]/
            tmap_name[/\\V\[(\d*)]/] = $game_variables[$1.to_i].to_s
          end
          draw_text(contents.rect, tmap_name, 1)
        end
      end
    end

  16. #16
    Kein Wunder, dass es nicht funktioniert hat

    Was mir aber gerade beim durchschauen der Standard-Scripte noch aufgefallen ist: Window_Base hat schon eine Methode um solche speziellen Textcodes zu ersetzen,
    Code:
    draw_text(contents.rect, convert_escape_characters($game_map.display_name), 1)
    würde also ausreichen und zusätzlich auch Heldennamen (\N[xxx]) und Namen der Währung (\G) ersetzen, falls das von Interesse ist.

  17. #17
    Scheint alles zu funktionieren, dankeschön

Berechtigungen

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