Ergebnis 1 bis 14 von 14

Thema: Transparenz der Message- und Choice-Boxen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Danke für deine Mühe. Kannst du mir das mit den Arrays erklären? Denn wenn ich den Skill 3 aufwerten will, kommt die Frage "Skillname 3 MAX aufwerten?" Es soll ja einfach nur kommen "Skillname3 aufwerten?" oder "Skillname3 Stufe 0 aufwerten?"

    Bei den anderen Skills kommt dann als Frage "k aufwerten?", "S aufwerten?" und "l aufwerten?". Das verstehe ich nicht und die Stelle im Skript, wo das definiert ist, finde ich leider nicht. Was mich wundert, denn eigentlich ist das Skript sehr übersichtlich, aber offenbar übersehe ich es dennoch?

  2. #2
    Copy&Paste-Fehler meinerseits.
    Code:
    ## Skillmenu requested by user
    ## Author: D.T. Linkey
    ## Date: 03.03.2018
    
    module LDT_SKILL_MENU
      #Confirmation texts
      CONFIRM_TITLE = " aufwerten?"
      CONFIRM_TRUE = "Ja"
      CONFIRM_FALSE = "Nein"
      #Headline/Title
      SKILL_TITLE = "Skillpunkte insg."
      #skill names ( array can be used to display different Names per Level)
      SKILL_NAMES = ["Skillname1", #skill 1
                    "Skillname2",  #skill 2
                    ["Skillname3 St0","Skillname3 St1","Skillname3 MAX"],#skill 3
                    "Skillname4"]  #skill 4
      #skill icon ids ( array can be used to display different Icons per Level)
      ICON_IDS = [4, #skill 1
                  [8,10,11,12], #skill 2
                  9, #skill 3
                  26] #skill 4
      #skill costs
      SKILL_COSTS = [[3,7,11,24,49,-1],
                     [3,15,33,-1],
                     [4,60,-1],
                     [7,23,59,-1]]
      #variable for each skill (e.g. 1 = $game_variables[1])
      SKILL_VARS = [1,2,3,4]
      #variable for each skillcosts (e.g. 1 = $game_variables[1])
      COST_VARS = [5,6,7,8]
      #variable for total skill points (e.g. 1 = $game_variables[1])
      SKILL_TOTAL_POINT_VAR = 9
        
      #Symbol displayed if max Level is reached
      MAX_LEVEL_SIGN = "-"
      #Graphics
      #Start position vertical (0 = top, 480 = botton)
      G_START_Y = 0
      #start position horizontal (0 = left, 640 = right)
      G_START_X = 0
      #Width of the first Window
      G_WIDTH_1 = 280
      #Width of the second Window
      G_WIDTH_2 = 240
      #Confirmation window alignment (1 = horiz., 2= vert.)
      G_CONFIRM_ALIGN = 2
    end
    
    class LDT_Skill_Scene < Scene_Base
      def start
        super
        create_title_window
        create_skill_window
        create_confirmation_windows
        create_background
      end
      
      def create_title_window()
        @title_window = LDT_Skill_Window_Title.new(LDT_SKILL_MENU::G_START_X,LDT_SKILL_MENU::G_START_Y,1,LDT_SKILL_MENU::G_WIDTH_1)
        @title_window.set_text(LDT_SKILL_MENU::SKILL_TITLE)
      end
      
      def create_skill_window()
        ty = LDT_SKILL_MENU::G_START_Y + @title_window.height
        th = LDT_SKILL_MENU::SKILL_NAMES.size * 24 + 32
        @skill_window = LDT_Skill_Window.new(LDT_SKILL_MENU::G_START_X,ty,LDT_SKILL_MENU::G_WIDTH_1,th)
        @skill_window.viewport = @viewport
    
        @skill_window.set_handler(:ok,     method(:on_menu_ok))
        @skill_window.set_handler(:cancel, method(:return_scene))
        @skill_window.activate    
        @skill_window.select(0)
        @skill_window.show
      end
      
      def create_background
        @background_sprite = Sprite.new
        @background_sprite.bitmap = SceneManager.background_bitmap
        @background_sprite.color.set(16, 16, 16, 128)
      end
      
      def create_confirmation_windows()
        if(LDT_SKILL_MENU::G_CONFIRM_ALIGN == 1)
          tx = LDT_SKILL_MENU::G_START_X + LDT_SKILL_MENU::G_WIDTH_1
          ty = LDT_SKILL_MENU::G_START_Y
        else
          tx = LDT_SKILL_MENU::G_START_X
          ty = LDT_SKILL_MENU::G_START_Y + @title_window.height + @skill_window.height
        end
        @confirm_title_window = LDT_Confirm_Window_Title.new(tx,ty,1,LDT_SKILL_MENU::G_WIDTH_2)
        @confirm_title_window.set_text("")
        @confirm_title_window.hide
        
        th = 2 * 24 + 32
        ty = ty + @confirm_title_window.height
        @confirm_window = LDT_Skill_Window_Confirmation.new(tx,ty,LDT_SKILL_MENU::G_WIDTH_2,th)
        @confirm_window.viewport = @viewport
        @confirm_window.set_handler(:ok,     method(:on_conf_ok))
        @confirm_window.set_handler(:cancel, method(:on_conf_cancel))
        @confirm_window.hide
      end
      
      def on_menu_ok
        ti = @skill_window.index
        if(@skill_window.current_item_enabled?)
          ttext = get_skill_name(ti) + LDT_SKILL_MENU::CONFIRM_TITLE
          @confirm_title_window.set_text(ttext)
          @confirm_title_window.show
          
          @confirm_window.activate
          @confirm_window.select(0)
          @confirm_window.show
        else
          @skill_window.activate
        end
      end
      
      def on_conf_ok
        if(@confirm_window.index >= 1)
          on_conf_cancel
        else
          ti = @skill_window.index
          $game_variables[LDT_SKILL_MENU::SKILL_VARS[ti]] += 1
          $game_variables[LDT_SKILL_MENU::SKILL_TOTAL_POINT_VAR] -= $game_variables[LDT_SKILL_MENU::COST_VARS[ti]]
          refresh_windows
          on_conf_cancel
        end
      end
      
      def refresh_windows
        @skill_window.refresh
        @title_window.refresh
      end
      
      def on_conf_cancel
        @confirm_window.deactivate
        @confirm_window.hide
        @confirm_title_window.hide
        @skill_window.activate
      end
      
      def get_skill_name(index)
        tskill = LDT_SKILL_MENU::SKILL_NAMES[index]
        if(tskill.is_a?(Array))
          return tskill[$game_variables[LDT_SKILL_MENU::SKILL_VARS[index]]]
        else
          return tskill
        end
      end
    end
    
    class LDT_Skill_Window < Window_Selectable
    
      def initialize(x, y, width, height)
        super(x,y,width,height)
        @skills = LDT_SKILL_MENU::SKILL_NAMES
        refresh
      end
      
      def item_max
        @skills ? @skills.size : 1
      end
    
      def item
        @skills && index >= 0 ? @skills[index] : nil
      end
      
      def refresh
        set_costs()
        create_contents
        draw_all_items
      end
    
      
      def draw_item(index)
          rect = item_rect(index)
          rect.width -= 4
          if(current_item_enabled?(index))
            contents.font.color.alpha = 255
          else
            contents.font.color.alpha = translucent_alpha
          end
          
          draw_icon(get_icon_num(index), rect.x, rect.y, current_item_enabled?(index))
          draw_text(rect.x + 26, rect.y, rect.width - 26, rect.height, get_skill_name(index))#, rect.x, rect.y)
          draw_text(rect,get_costs(index),2)
      end
        
      def get_icon_num(index)
        ticon = LDT_SKILL_MENU::ICON_IDS[index]
        if(ticon.is_a?(Array))
          return ticon[$game_variables[LDT_SKILL_MENU::SKILL_VARS[index]]]
        else
          return ticon
        end
      end
      
      def get_skill_name(index)
        if(@skills[index].is_a?(Array))
          return @skills[index][$game_variables[LDT_SKILL_MENU::SKILL_VARS[index]]]
        else
          return @skills[index]
        end
      end
        
      def set_costs()
        LDT_SKILL_MENU::COST_VARS.each_with_index do |tcv,ti|
          tskill = $game_variables[LDT_SKILL_MENU::SKILL_VARS[ti]]
          $game_variables[tcv] = LDT_SKILL_MENU::SKILL_COSTS[ti][tskill]
        end
      end
      
      def current_item_enabled?(tindex = index)
        return false if(tindex < 0)
        tc = get_costs(tindex)
        return false if(tc == LDT_SKILL_MENU::MAX_LEVEL_SIGN)
        return ($game_variables[LDT_SKILL_MENU::SKILL_TOTAL_POINT_VAR] >= tc)
      end
      
      def get_costs(index)
        tcosts = $game_variables[LDT_SKILL_MENU::COST_VARS[index]]
        return tcosts >= 0 ? tcosts : LDT_SKILL_MENU::MAX_LEVEL_SIGN
      end
    end
    
    class LDT_Skill_Window_Confirmation < Window_Selectable
       def initialize(x, y, width, height)
        super(x,y,width,height)
        @items = [LDT_SKILL_MENU::CONFIRM_TRUE,LDT_SKILL_MENU::CONFIRM_FALSE]
        refresh
      end
      
      def item_max
        @items ? @items.size : 1
      end
    
      def item
        @items && index >= 0 ? @items[index] : nil
      end
      
      def refresh
        create_contents
        draw_all_items
      end
    
      
      def draw_item(index)
        rect = item_rect(index)
        rect.width -= 4
        draw_text(rect,get_item_name(index))
      end
        
      def get_item_name(index)
        return @items[index]
      end
        
      def get_costs(index)
        return $game_variables[LDT_SKILL_MENU::COST_VARS[index]]
      end
    end
      
    
    class LDT_Skill_Window_Title < Window_Base
    
      def initialize(x,y,line_number = 1, tw = nil)
        tw = (tw ? tw : Graphics.width)
        super(x, y, tw, fitting_height(line_number))
      end
      
      def refresh
        contents.clear
        draw_text_ex(4, 0, @text)
        draw_text(4, 0, width - 32, line_height, get_second_text(), 2)
      end
    
      def get_second_text()
        return $game_variables[LDT_SKILL_MENU::SKILL_TOTAL_POINT_VAR]
      end
      
      def set_text(text)
        if text != @text
          @text = text
          refresh
        end
      end
    end
    
    class LDT_Confirm_Window_Title < Window_Base
    
      def initialize(x,y,line_number = 1, tw = nil)
        tw = (tw ? tw : Graphics.width)
        super(x, y, tw, fitting_height(line_number))
        @text2 = ""
      end
      
      def refresh
        contents.clear
        draw_text_ex(4, 0, @text)
      end
      
      def set_text(text)
        if text != @text
          @text = text
          refresh
        end
      end
    end

  3. #3
    Vielen Dank, Linkey!!! Falls noch was wäre, ich was nicht verstehe oder sonstwas nicht funktioniert, meld ich mich nochmal. Sieht aktuell so aus, als funktioniert alles! Danke für die Zeit, die du dir für mich genommen hast. Werd das hier im Laufe des Abends und Morgen mal alles soweit auf meine Bedürfnisse anpassen und dann einen Screen zeigen, damit man das alles mal in Action sieht Danke nochmal, cooler Typ echt!

  4. #4
    Also, wie versprochen ein Screen vom Ergebnis, das ich dank Linkey realisieren konnte. Sagt auch gerne was zu den Icons! Ich hab noch nie selber Icons gemacht, daher bin ich auch hier gierig auf Feedback der konstruktivsten Sorte.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Unbenannt.png  

  5. #5
    Freut mich, dass ich dir helfen konnte. Sieht gut aus. Kann an den Icons nichts bemängeln, bin in Fragen bezüglich der Grafik aber auch keine wirklich gute Anlaufstelle :P
    Wenn es kleine Dinge sind, helfe ich gerne wieder - das hier hatte doch ein paar Stunden gedauert und passt momentan nicht so gut in meinen Zeitplan (beim XP kenn ich die meisten Basic-Klassen, beim ACE muss ich immer wieder schauen, wie genau das Handling der Windows funktioniert )

Berechtigungen

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