Ergebnis 1 bis 20 von 20

Thema: Hilfe gesucht: HP Leiste vertikal im Menü anzeigen

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #8
    So wie ich es hier reinkopiert habe, ist der Balken grün (wenn HP voll), rot (der Teil der HP, der nicht gefüllt ist) und weiß (die Ränder).
    Hast du dir denn auch selbst HP abgezogen, um das zu testen?

    Ansonsten, was zu beachten ist: Die PAC-Scripte müssen über dem stehen, was ich dir geschickt habe.

    Sollte es dennoch nicht funktionieren, kannst du mir auch ein test-projekt schicken, in welches du alle scripts, die du benutzt, in gleicher reihenfolge reinkopierst. Dann kann ich mir das einmal anschauen.

    EDIT:
    Mein Fehler. Hatte die Update-Methode, warum auch immer, hier nicht mit reinkopiert (hatte die bei mir im Projekt noch auf einer anderen Scriptseite rumfliegen):
    Code:
    def update(*args)
        pac_mm_update(*args)
        update_hp_bar_window
        update_heal
      end
    Sollte dann so aussehen:
    Code:
    ######
    # PAC - HP Bar Addon
    # Author: Linkey D. T.
    # Date: 08.03.2018
    ######
    class Scene_Menu < Scene_MenuBase
      def update(*args)
        pac_mm_update(*args)
        update_hp_bar_window
        update_heal
      end
      
      alias ldt_create_command_window create_command_window
      def create_command_window(*args)
        ldt_create_command_window(*args)
        create_hp_bar_window
      end
          
    
      def create_hp_bar_window
        @hp_bar_window = LDT_Window_HPBar.new(@command_window.width,0,@command_window.height)
      end
      
      def update_hp_bar_window
        thp = $game_actors[1].hp
        thp_max = $game_actors[1].mhp
        @hp_bar_window.set_hp(thp,thp_max)
      end
    end
    
    
    ####
    # HP Bar Window
    # Author: Linkey D. T.
    # Date: 08.03.2018
    ####
    class LDT_Window_HPBar < Window_Base
      HP_WIDTH = 20
      HP_HEIGHT = 100
      
      BORDER_WIDTH = 4
      BORDER_COLOR = 1
      HP_COLOR = 3
      BACKGROUND_COLOR = 2
      
      def initialize(x,y,th=nil)
        @hp_height = th ? th : HP_HEIGHT
        @hp_height = @hp_height - BORDER_WIDTH*2
        super(x,y,HP_WIDTH+BORDER_WIDTH*2,@hp_height+BORDER_WIDTH*2)
        @hp = 0
        @max_hp = 0
      end
      
      def set_hp(hp,maxhp)
        trefresh = (hp != @hp || maxhp != @max_hp) ? true : false
        @hp = hp + 0.0
        @max_hp = maxhp + 0.0
        refresh if(trefresh)
      end
      
      def refresh
        contents.clear
        th = (@hp / @max_hp * @hp_height).to_i
        ty2 = @hp_height - th
        contents.fill_rect(BORDER_WIDTH, BORDER_WIDTH, HP_WIDTH, @hp_height, text_color(BACKGROUND_COLOR))
        contents.fill_rect(BORDER_WIDTH, BORDER_WIDTH + ty2, HP_WIDTH, th, text_color(HP_COLOR))
      end
      
      def standard_padding
        return 0
      end
    end

    Geändert von Linkey (09.03.2018 um 11:37 Uhr)

Berechtigungen

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