Ergebnis 1 bis 14 von 14

Thema: Transparenz der Message- und Choice-Boxen

  1. #1

    Transparenz der Message- und Choice-Boxen

    Hallo Community,

    Wie mach ich ein Picture von der Messagebox, das genau die gleiche Transparenz hat wie die Messagebox im rpg Maker? Und wie füge ich meine Schriftart darauf ein? Ich will ein Auswahlmenü darauf erstellen.

    Euer Ken der Kot

    Geändert von Ken der Kot (02.03.2018 um 15:58 Uhr)

  2. #2
    Weiß da keiner Rat?

  3. #3
    Ein wenig Geduld schadet natürlich nicht. Dein Thema steht keine 24 Stunden

    Wovon genau willst du denn ein Picture machen? Von der Messagebox selbst?
    Wenn ich das richtig verstehe willst du ein komplettes Menü über Pictures erstellen. D.h. du willst diese Messagebox nicht in der Originalgröße haben, sondern in verschiedenen Größen?

    Heute Abend nach der Bundesliga-Zusammenfassung könnte ich dir die Bilder kurz generieren, indem ich die per Script als Windows im Maker erzeuge.
    Sag mal, wie genau das aussehen soll.

  4. #4
    Ja, Geduld ist leider gar nicht meine Stärke, ich hab immer übelst Panik, daß am Ende keiner antwortet oder das Topic einfach untergeht.

    Ich will ein Skillmenü machen. Das funktioniert nicht über die normalen Skills am Maker, sondern nur über Variablen. Ich brauch halt 4 Felder, in die ich einen Text reinschreiben kann (wie der Skill heißt) und ein weiteres Feld darüber, wo ich "Skillpunkte" reinschreiben kann. Daneben will ich immer Variablen für die Kosten anzeigen. Dann wird man gefragt, ob man den Skill aufstufen will und wenn ja, erhöhe ich die entsprechende Variable und danach auch die Variable für die Kosten der nächsthöheren Aufstufung.

    Ich zeig dir mal anhand von einem (zugegeben sehr stümperhaften -.-) Paintbild, was das genau werden soll.

    Du kannst da wenn du willst auch "Skillname 1", "Skillname 2" etc. reinschreiben, sodass ich das später editieren kann.

    Ich danke dir für deine Hilfe. Hammer Typ!

    EDIT: Wenn ich Icons vor den Skillnamen anzeigen könnte, wäre das natürlich das i-Tüpfelchen!!!

    Bitte beachten, Linkey, ich verwende auch schon dieses Script von dir, das ich hier im Forum fand.

    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Unbenannt.png  

    Geändert von Ken der Kot (03.03.2018 um 15:25 Uhr)

  5. #5
    Bin fast fertig geworden. Mache es Morgenfrüh fertig.

  6. #6
    Sehr sehr cool! Vielen vielen Dank!!!

  7. #7


    Passt das so? In den ersten 50 Zeilen kannst du die ganzen Einstellungen vornehmen (Texte, Icons, Variable-Nummern, Fenstergröße, etc.).

    Aufgerufen wird das Script über: SceneManager.call(LDT_Skill_Scene)

  8. #8
    Vielen Dank, Linkey!!!

    Aber ich Idiot hab leider was vergessen -.- Es soll natürlich auch die Stufe von jedem Skill dabeistehen. Also zB "Skillname 1 Stufe 0" und wenn er aufgewertet wird soll er heißen "Skillname 1 Stufe 1". Die Stufe wäre dann für jeden Skill also auch nochmal eine Variable, die sich aktualisieren muss.

    Würdest du das noch mit einbauen? Sorry, ich hätte da eigentlich vorher dran denken müssen...

    Alternativ kannst du es auch so machen (sofern das einfacher zu skripten wäre) dass sich das Icon des jeweiligen Skills aktualisiert, wenn die Stufe eines Skills ansteigt. Dann mach ich verschiedene Icons, wo ich die Zahl reinschreibe von der Stufe, die der Skill grad hat.

    Aber ansonsten bin ich begeistert. Es tut genau das, was es soll! Großartig!

    Geändert von Ken der Kot (04.03.2018 um 16:39 Uhr)

  9. #9


    Here you are. Hatte auch vorher schon überlegt, das einfach mit einzubauen - war aber auf dem Sprung und hab es deshalb erstmal nicht gemacht
    Habe dir beides ermöglicht. Du kannst sowohl beim Icon, als auch bei den Skillnamen ein Array eintragen.
    Gibst du "Skillname 2" einfach nur ein, heißt der Skill immer "Skillname 2" - unabhängig vom Level. Willst du unterscheidungen im Namen haben, gibst du folgendes ein:
    ["Skillname 2","Skillname 2 Stufe X", ...]

    Falls du also Arrays verwendest, musst du nur schauen, dass die Anzahl der Skillnamen/Icons gleich der Anzahl der Kosten ist. (Kosten [5,8,9,-1] bedeutet z.B., der Skill hat Stufe 0, Stufe 1, Stufe 2 und Stufe 3. Namen brauchst du dann also auch 4 Icons und/oder Namen.

  10. #10
    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?

  11. #11
    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

  12. #12
    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!

  13. #13
    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  

  14. #14
    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
  •