• Login

Dear visitor, welcome to RPG Studio - Make your World real. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

Josey

Storyteller

  • "Josey" started this thread

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Send private message

181

Wednesday, March 20th 2019, 7:57pm

Zum Text: Funktioniert! :D

Zum Bild: Klappt! :D

Zum PS: Ja, kein Problem, hab ein Worddoku wo genau steht, was für was ist und es fällt mr auch leichter, wenn alles in einzelne Scripts aufgeteilt ist XD

Danke dir! X3

Eine Frage hab ich noch: Wieso kann ich den Cursor im Rezeptmenü noch bewegen, wenn das Help-Window visible ist und im Freien Kochen nicht?
Ich seh den Unterschied nicht :<
<- Hatte vergessen, dass das Fenster nicht geupdated werden soll, wenn das Help_Window visible ist XD

Erstmal wieder fertig! XD
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

This post has been edited 1 times, last edit by "Josey" (Mar 20th 2019, 7:57pm)


Josey

Storyteller

  • "Josey" started this thread

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Send private message

182

Sunday, May 10th 2020, 4:32pm

Mag sich jemand das Script nochmal kurz anschauen und mir helfen, das Commandmenü zweispaltig zu machen? Das krieg ich nicht hin :)
Hier einmal der Scriptteil, um den es geht:
Das Modul dazu:
Spoiler

Ruby Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
module CRAFTING
  # ----------------------------------------------------------------------------
  # Recipe Categories
  # ---------------------------------------------------------------------------- 
  # RECIPE_CATEGORIES ist ein Array, dessen Elemente Objekte / Structs / Hashs 
  # sind. Sowohl das Array selbst als auch die einzelnen Elemente sind 
  # dynamisch erweiterbar, ohne dass es einen Eingriff in andere Skripte gibt.
  RECIPE_CATEGORIES = [
    # Vorspeisen
    {:category_id => 1,
     :category_name => "Vorspeisen",
     :recipe_ids => [1,2] },
     # Hauptgerichte
    {:category_id => 2,
     :category_name => "Hauptgerichte",
     :recipe_ids => [3,4] },
     # Desserts
    {:category_id => 3,
     :category_name => "Desserts",
     :recipe_ids => [5,0] },
     # Anderes
    {:category_id => 4,
     :category_name => "Anderes",
     :recipe_ids => [1,0,6] }
  ] 
highlight to read

Die Scene:
Spoiler

Ruby Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#==============================================================================
# ** Scene_Crafting_Start
#------------------------------------------------------------------------------
#  Crafting menu (choice)
#==============================================================================
class Scene_Crafting_Recipe_Menu < Scene_Animation
  # Include HM main module for game data
  include HM
  include CRAFTING
 
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
 
  #--------------------------------------------------------------------------
  # * Main
  #--------------------------------------------------------------------------
  def main
    # Window commands
    @window_commands = []
    @category_ids = []
    # Füge noch "Alle Rezepte"-Option ein
    @window_commands.push("Alle Rezepte")
    @category_ids.push(0)
    # Gehe jede Kategorie durch aus RECIPE_CATEGORIES
    for category in RECIPE_CATEGORIES do
      @window_commands.push(category[:category_name])
      @category_ids.push(category[:category_id])
    end
    # Füge noch "Zurück"-Option hinzu
    @window_commands.push("Zurück")
 
    text = "Welches Rezept?"
    # Make windows
    # Korrektur y-Koordinate
    @command_window = Window_Command.new(640, @window_commands)
    @command_window.x = 0
    @command_window.y = 480 - @command_window.height
    @command_window.index = @menu_index#0
    @help_window = Window_Help.new(0,256,640,64)
    # Korrektur y-Koordinate
    @help_window.y = 480 - @command_window.height - @help_window.height
    @help_window.set_text(text,0)
    @skill_window = Window_HM_Crafting_Skill.new(0,0)
    # Background sprite
    inititialize_animation(0)
    # Get actor
    @actor = $game_party.actors[0]
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose sprite
    dispose_sprites
    # Dispose windows
    @command_window.dispose
    @help_window.dispose
    @skill_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    # Sprite
    update_sprites
    # Command Window
    @command_window.update
    # Command
    update_command
  end
  #--------------------------------------------------------------------------
  # * Update Command
  #--------------------------------------------------------------------------
  def update_command
    # ENTER
    if Input.trigger?(Input::C)
      # Play cancel SE
      $game_system.se_play($data_system.decision_se)
      # Zurück Button
      if @command_window.index == (@window_commands.size-1)
       # Zurück
        # Play cancel SE
        $game_system.se_play($data_system.cancel_se)
        # Switch to map screen
        $scene = Scene_Crafting_Start.new
      else
        # Gehe zu "Kochen nach Rezept"
        $scene = Scene_Crafting_Recipe.new(@category_ids[@command_window.index])
      end
 
      return
    end  
    # ESC
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to map screen
      $scene = Scene_Crafting_Start.new
      return
    end  
  end
  #--------------------------------------------------------------------------
  # * Class End
  #--------------------------------------------------------------------------
end
highlight to read

Das normale Window_Command:
Spoiler

Ruby Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#==============================================================================
# ** Window_Command
#------------------------------------------------------------------------------
#  This window deals with general command choices.
#==============================================================================
 
class Window_Command < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     width    : window width
  #     commands : command text string array
  #--------------------------------------------------------------------------
  def initialize(width, commands)
    # Compute window height from command quantity
    super(0, 0, width, commands.size * 32 + 32)
    @item_max = commands.size
    @commands = commands
    self.contents = Bitmap.new(width - 32, @item_max * 32)
    refresh
    self.index = 0
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    for i in 0...@item_max
      draw_item(i, normal_color)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #     color : text color
  #--------------------------------------------------------------------------
  def draw_item(index, color)
    self.contents.font.color = color
    rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    self.contents.draw_text(rect, @commands[index])
  end
  #--------------------------------------------------------------------------
  # * Disable Item
  #     index : item number
  #--------------------------------------------------------------------------
  def disable_item(index)
    draw_item(index, disabled_color)
  end
end
highlight to read


Wenn du das ganze Ding brauchst, bitte bescheid sagen, dann kommt ne Demo per PN. Das Script ist inzwischen zu sehr in alles andere integriert, um es sauber herauszulösen.
Zu beachten ist hier nur- neben der automatischen Auswahl der Kategorien aus dem Modul, dass das Ding sich den Index merkt, wo er zuletzt war, wenn man C drückt und den Index löscht, wnen man Zurück oder ESC drückt :)

Momentan sieht das Menü so aus:
Attachment 24201
Ich möchte es gerne so haben:
Attachment 24202

1.) Das ist mein bisheriges Edit des Window_Command, aktuell gibt es ein column_max = 2 im Initialize, und es funktioniert auch technisch (also die Klicks der unteren drei müssen in der rechten Spalte passieren), aber die Schriftzüge und das Fenster passen sich nicht an XD
Spoiler

Ruby Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#==============================================================================
# ** Window_Command
#------------------------------------------------------------------------------
#  This window deals with general command choices.
#==============================================================================
 
class Window_Command2 < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     width    : window width
  #     commands : command text string array
  #--------------------------------------------------------------------------
  def initialize(width, commands)
    # Compute window height from command quantity
    super(0, 0, width, commands.size * 32 + 32)
    @column_max = 2
    @item_max = commands.size
    @commands = commands
    self.contents = Bitmap.new(width - 32, @item_max * 32)
    refresh
    self.index = 0
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    for i in 0...@item_max
      draw_item(i, normal_color)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #     color : text color
  #--------------------------------------------------------------------------
  def draw_item(index, color)
    self.contents.font.color = color
    rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    self.contents.draw_text(rect, @commands[index])
  end
  #--------------------------------------------------------------------------
  # * Disable Item
  #     index : item number
  #--------------------------------------------------------------------------
  def disable_item(index)
    draw_item(index, disabled_color)
  end
end
highlight to read

Hier der Edit der Scene:
Spoiler

Ruby Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#==============================================================================
# ** Scene_Crafting_Start
#------------------------------------------------------------------------------
#  Crafting menu (choice)
#==============================================================================
class Scene_Crafting_Recipe_Menu < Scene_Animation
  # Include HM main module for game data
  include HM
  include CRAFTING
 
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
 
  #--------------------------------------------------------------------------
  # * Main
  #--------------------------------------------------------------------------
  def main
    # Window commands
    @window_commands = []
    @category_ids = []
    # Füge noch "Alle Rezepte"-Option ein
    @window_commands.push("Alle Rezepte")
    @category_ids.push(0)
    # Gehe jede Kategorie durch aus RECIPE_CATEGORIES
    for category in RECIPE_CATEGORIES do
      @window_commands.push(category[:category_name])
      @category_ids.push(category[:category_id])
    end
    # Füge noch "Zurück"-Option hinzu
    @window_commands.push("Zurück")
 
#    # Wenn eine Unterkategorie keine Items enthält, ausgrauen und 
#    # unanklickbar machen
#    if a..@window_commands <= 0 # Jede Kategorie durchschauen
#      # Enthält keine Items
#      @command_window.disable_item(a) # ausgrauen
#      diable index a # unanklickbar machen
#    end
 
 
    text = "Welches Rezept?"
    # Make windows
    # Korrektur y-Koordinate
    @command_window = Window_HM_Command.new(640, @window_commands)
    @command_window.x = 0
    @command_window.y = 480 - @command_window.height
    @command_window.index = @menu_index#0
    @help_window = Window_Help.new(0,256,640,64)
    # Korrektur y-Koordinate
    @help_window.y = 480 - @command_window.height - @help_window.height
    @help_window.set_text(text,0)
    @skill_window = Window_HM_Crafting_Skill.new(0,0)
    # Background sprite
    inititialize_animation(0)
    # Get actor
    @actor = $game_party.actors[0]
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose sprite
    dispose_sprites
    # Dispose windows
    @command_window.dispose
    @help_window.dispose
    @skill_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    # Sprite
    update_sprites
    # Command Window
    @command_window.update
    # Command
    update_command
  end
  #--------------------------------------------------------------------------
  # * Update Command
  #--------------------------------------------------------------------------
  def update_command
    # ENTER
    if Input.trigger?(Input::C)
      # Play cancel SE
      $game_system.se_play($data_system.decision_se)
      # Zurück Button
      if @command_window.index == (@window_commands.size-1)
       # Zurück
        # Play cancel SE
        $game_system.se_play($data_system.cancel_se)
        # Switch to map screen
        $scene = Scene_Crafting_Start.new
      else
        # Gehe zu "Kochen nach Rezept"
        $scene = Scene_Crafting_Recipe.new(@category_ids[@command_window.index])
      end
 
      return
    end  
    # ESC
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to map screen
      $scene = Scene_Crafting_Start.new
      return
    end  
  end
  #--------------------------------------------------------------------------
  # * Class End
  #--------------------------------------------------------------------------
end
highlight to read

Ich versuche grad die Höhe des Fensters anzupassen.
Zeile 45 in der Scene:

Ruby Source code

1
    @command_window = Window_HM_Command.new(640, @window_commands)

Ich muss @window_commands gegen @window_commands/2 austauschen, aber das klappt nicht, weil @window_commands keine Zahl ist. Aber scheinbar doch, weils dort als Zahl gilt. Kann mir das einer erklären?

2.) Ich will, dass leere Kategorien ausgegraut und nicht anklickbar sind (siehe Zeile 33). Da fehlen mir Befehle :/

Hilfe? XD
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

This post has been edited 1 times, last edit by "Josey" (May 10th 2020, 4:09pm)


Playm

RPG Studio Webmaster

  • Send private message

183

Tuesday, May 12th 2020, 2:27am

Richtig gut. :-) Du bist ja selber schon gut zurecht gekommen.

Nur Kleinigkeiten fehlen noch.

Quoted

1.) Das ist mein bisheriges Edit des Window_Command, aktuell gibt es ein column_max = 2 im Initialize, und es funktioniert auch technisch (also die Klicks der unteren drei müssen in der rechten Spalte passieren), aber die Schriftzüge und das Fenster passen sich nicht an XD

In Zeile 15, musst Du die Anzahl der Einträge im commands-Array durch zwei (die Anzahl der Spalten) teilen.

Ruby Source code

15
    super(0, 0, width, commands.size/2 * 32 + 32)


Und dann die Berechnung der Zellen bei Draw-Item.

Ruby Source code

38
39
40
41
42
43
44
45
    self.contents.font.color = color
    # Calculate column width
    column_width = self.width / @column_max - 32
    # Calculate cell coordinates
    x = index % @column_max * (column_width + 32)
    y = index / @column_max * 32
    rect = Rect.new( 4 + x, y, column_width - 8, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))


Im originalen Window_Command gibt es nur eine Spalte, deswegen wird die X-Koordinate konstant mit 4 angegeben. Wir leihen uns die Mathematik aus der Klasse Window_Selectable aus, die für die Berechnung des cursor_rect verwendet wird.

Quoted

2.) Ich will, dass leere Kategorien ausgegraut und nicht anklickbar sind

Bezüglich deiner zweiten Frage mit dem Ausgrauen, wäre meine Idee nach dem das Window erstellt und eingerichtet wurde das folgende zu schreiben

Ruby Source code

48
49
50
51
52
53
    @command_window.index = @menu_index#0
    for a in 1..(@window_commands.size-2)
      if RECIPE_CATEGORIES[a][recipe_ids].empty?
        @command_window.disable_item(a)
      end
    end

Dadurch sollten sie ausgegraut werden - sie können aber trotzdem angeklickt werden.
Zumindest ist so meine Theorie. Ich habe nicht ganz verstanden, wie RECIPE_CATEGORIES funktioniert.

Josey

Storyteller

  • "Josey" started this thread

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Send private message

184

Tuesday, May 12th 2020, 8:52am

Danke X//D
Ich hab mir Mühe gegeben *___*

1.) Super, danke dir! :D
Zum Glück kopier ich nicht nur stoisch, die Zeile self.contents.draw_text fehlte (falls es wer anders auch ausprobieren will)
Aber jetzt hab ich da unten so einen Pfeil, als obs da noch tiefer ginge. Wie kann ich den entfernen? :3

2.) Da kieg ich jetzt ne Fehlermeldung:
---------------------------
Script 'Scene_Crafting_Recipe_Menu' line 52: NameError occurred.

undefined local variable or method `recipe_ids' for #<Scene_Crafting_Recipe_Menu:0x811aa50>
---------------------------

RECIPE_CATEGORIES wird nur in diesem Script verwendet, dass du da siehst und im Modul sind diese beiden EInträge die einzigen, wo das vorkommt:
Spoiler

Ruby Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#==============================================================================
# ** module CRAFTING
#------------------------------------------------------------------------------
#  Contains game data for crafting system.
#==============================================================================
module CRAFTING
  # ----------------------------------------------------------------------------
  # Recipe Categories
  # ---------------------------------------------------------------------------- 
  # RECIPE_CATEGORIES ist ein Array, dessen Elemente Objekte / Structs / Hashs 
  # sind. Sowohl das Array selbst als auch die einzelnen Elemente sind 
  # dynamisch erweiterbar, ohne dass es einen Eingriff in andere Skripte gibt.
  RECIPE_CATEGORIES = [
    # Vorspeisen
    {:category_id => 1,
     :category_name => "Vorspeisen",
     :recipe_ids => [1,2] },
     # Hauptgerichte
    {:category_id => 2,
     :category_name => "Hauptgerichte",
     :recipe_ids => [3,4] },
     # Desserts
    {:category_id => 3,
     :category_name => "Desserts",
     :recipe_ids => [5,0] },
     # Anderes
    {:category_id => 4,
     :category_name => "Anderes",
     :recipe_ids => [1,0,6] }
  ] 
 
  # ----------------------------------------------------------------------------
  # get_category_recipe_ids : Returns recipe array of category with
  #                           id category_id.
  # ----------------------------------------------------------------------------
  def self.get_category_recipe_ids(category_id)
    recipe_ids = nil
    for category in RECIPE_CATEGORIES
      if category[:category_id] == category_id
        recipe_ids = category[:recipe_ids]
        break
      end
    end
    return recipe_ids
  end
highlight to read


Hab mal :recipe_ids an der Stelle probiert, ging auch nicht :<

Aber so wirds nur ausgegraut, aber anklickbar immer noch? Dann müsste ich nur in der Scene noch bei C die Abfrage stellen, ob die aktuelle Cetegorie_ID disabled wurde, oder? :D

Danke dir! :D
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Playm

RPG Studio Webmaster

  • Send private message

185

Tuesday, May 12th 2020, 10:08am

Upps, ja weil das Content Bitmap noch so lang ist, als gäbe es @item_max viele Zeilen.
Du kannst entweder fix durch 2 teilen, oder Du benutzt die Variable @column_max an der Stelle (die ja dann definiert ist) die den Wert 2 hat. Das ist dir überlassen.

Ruby Source code

1
    self.contents = Bitmap.new(width - 32, @item_max/@column_max * 32)


Nächster Versuch für das ausgrauen:

Ruby Source code

1
2
3
4
5
6
    @command_window.index = @menu_index#0
    for a in 1..(@window_commands.size-2)
      if CRAFTING.get_category_recipe_ids(@category_ids[a]).empty?
        @command_window.disable_item(a)
      end
    end

Josey

Storyteller

  • "Josey" started this thread

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Send private message

186

Wednesday, May 13th 2020, 7:20pm

1.) Okay, das funktioniert jetzt, danke XD

Aber wenn man eine ungerade Zahl an Kategorien hat, wird das "Zurück" unten nicht mehr hingeschrieben. Man kann es anklicken, aber das Feld ist leer Oo


2.) Zum Ausgrauen:
Das funktioniert halb. XD
Ich hab das offenbar was nicht bedacht :/
Die Kategorie wird dann ausgegraut, wenn in der Kategorie im Modul nichts drin ist. Aber im Modul wird nur festgelegt, welche Rezepte in welcher Kategorie sind und das prüft dein Codeschnippsel grad.
Was er aber prüfen müsste wäre, ob AKTUELL ein Rezept der Kategorie dem Menü hinzugefügt wurde. ._.

Wenn man eine der Kategorien bestätigt, kommt man hier rein:
Spoiler

Ruby Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
#==============================================================================
# ** Scene_Crafting_Recipe
#------------------------------------------------------------------------------
#  Crafting menu. Crafting with recipes.
#==============================================================================
class Scene_Crafting_Recipe < Scene_Animation
  # Include HM main module for game data
  include HM
  #--------------------------------------------------------------------------
  # * Initialize
  #--------------------------------------------------------------------------
  def initialize(category_id = 0)
    @category_id = category_id
  end
 
  #--------------------------------------------------------------------------
  # * Main
  #--------------------------------------------------------------------------
  def main
    # Initialize crafting class for calculations
    @crafting = Game_Crafting.new
    # Main Windows (step 1)
    @recipe_window = Window_HM_Recipes.new(50,26, @category_id)
    @help_window_step1 = Window_Help.new(50, 158, 541, 64)
    @material_window = Window_HM_Material.new(50,222)
    # Result windows
    @result_window_icon = Window_HM_Result_Icon.new(254, 90, 132, 132)
    @result_window_icon.visible = false
    @help_window_result = Window_Help.new(70, 222, 500, 255)
    @help_window_result.visible = false
    # Background sprite
    inititialize_animation(1)
    # Sprite
    @sprite = RPG::Sprite.new(Viewport.new(0, 0, 640, 480))
    @sprite.z = 999
    @sprite.x = 320
    @sprite.y = 240
    # Result text
    @result_text = ""
    # Start step = 0
    initialize_step_1
    # Get actor
    @actor = $game_party.actors[0]
 
    # Help_Window
    @help_window = Window_Help.new(0, 276, 640, 204)
    @help_window.z = 999
    @help_window.visible = false
 
 
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose windows
    @crafting = nil
    @recipe_window.dispose
    @material_window.dispose
    @help_window_step1.dispose
    @result_window_icon.dispose
    @help_window_result.dispose
    @help_window.dispose
    # Dispose sprites
    @sprite.dispose
    dispose_sprites
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    # Background animation
    update_sprites
    case @step
    when 1
    if !@help_window.visible      
      @recipe_window.update
      @material_window.update
    end  
    when 2
      @result_window_icon.update
      @help_window_result.update
    end
    # Command
    update_command
    # Help Window
    update_help
    # Sprite
    @sprite.update
  end
  #--------------------------------------------------------------------------
  # * Update Help Window
  #--------------------------------------------------------------------------
  def update_help
    case @step
    when 1 # Recipe Choice 
      @material_window.set_recipe(@recipe_window.recipe)
      item = @recipe_window.product
      @help_window_step1.set_text_xy(item == nil ? "" : item.name,4,0,true)
    end
  end
  #--------------------------------------------------------------------------
  # * Update Command
  #--------------------------------------------------------------------------
  def update_command
 
    # R - Show item information
    if Input.trigger?(Input::A)
      if @help_window.visible
        # Play cancel SE
        $game_system.se_play($data_system.cancel_se)
        @help_window.visible = false
        return
      else
        # Play deccision se
        $game_system.se_play($data_system.decision_se)
        item2 = @recipe_window.product
        # Zeichnet Itembeschreibung im Fenster an der Stelle x = 4, y = 0 (Anfang).
        # Durch den "true" Trigger, wird der alte Content des Fensters gelöscht.
        @help_window.draw_description(item2.description, 4, 0, true)
        # Is a item selected?
        if !item2.nil?
          @help_window.y = 232
          @help_window.height = 248
 
          @help_window.visible = true
        else
          # no item is selected (empty help window)
           $game_system.se_play($data_system.buzzer_se)
        end
      return
      end
    end  
 
    # ESC
    if Input.trigger?(Input::B)
 
      if @help_window.visible
        # Play cancel SE
        $game_system.se_play($data_system.cancel_se)
        @help_window.visible = false
        return
      else
 
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      if @step == 1
        # Return to stat choice
        $scene = Scene_Crafting_Recipe_Menu.new(@category_id)
        return
      else
        # Switch to map screen
        $scene = Scene_Map.new
        return
      end
    end  
  end 
 
    # L (Q)
    if Input.trigger?(Input::L)
      if @help_window.visible
#nichts
      else
      if @step == 0
        # Play Decision SE
        $game_system.se_play($data_system.decision_se)
        initialize_step_1
        return
      end
      end
    end
    # ENTER
    if Input.trigger?(Input::C)
      if @help_window.visible
#nichts
      else
      if @step == 1
        if $game_party.available_recipes.size > 0
          craft_item
        else
          # No recipes known
          $game_system.se_play($data_system.buzzer_se)
        end
      elsif @step == 2
        # Play cancel SE
        $game_system.se_play($data_system.cancel_se)
        # Switch to map screen
        ICG.PlayerState_carry()        
        $scene = Scene_Map.new
      end
      return
     end 
    end  
  end
  #--------------------------------------------------------------------------
  # * Item crafting
  #--------------------------------------------------------------------------
 def craft_item
    # Is item craftable?
    recipe = $game_party.available_recipes[@recipe_window.index]
    result_array = @crafting.craftable(recipe)
    result      = result_array[0]
    item_value  = result_array[1]
    mean_values = result_array[2]
    # Quality calculation
    max_value = @crafting.max_value(recipe)
    quality = item_value / max_value * 100
    quality = quality.to_i
    if result
      # Item can be craftet
      result_array = @crafting.crafting_success?(recipe, quality)
      crafting_success = result_array[0]
      skill_points     = result_array[1]
      if crafting_success
        # Crafting successful
        type = 0
        # Play SE
        Audio.se_play("Audio/SE/" + CRAFTING::SUCCESS_SE, 90, 100)
        @crafting.craft_item(recipe, item_value, mean_values)
        @product = @crafting.get_product(recipe, item_value)
        #max_value = @crafting.max_value(recipe)
        #quality = item_value / max_value * 100
        #quality = quality.to_i
        # set text
        @result_text = "Es ist gelungen! /n "
        @result_text += "Ich habe " + @product.name + " gekocht! /n"
        @result_text += "Die Qualität ist " + quality.to_s + "%. /n" 
           if $game_switches[CRAFTING::NEW_RECIPE] == true
            @result_text += "Super! Ich hab das Rezept zum ersten Mal gekocht! /n" 
            $game_switches[CRAFTING::NEW_RECIPE] = false
           end 
        if skill_points > 0
          if skill_points == 1
            @result_text += "Ich erhalte einen Skillpunkt. /n"
          else
            @result_text += "Ich erhalte " + skill_points.to_s + " Skillpunkte. /n"
          end 
        else
          @result_text += "Ich konnte meine Kochfähigkeit nicht verbessern."
        end
        # Give actor skill points
        $game_party.actors[0].crafting_skill += skill_points
        @my_interpreter = Interpreter.new
        @my_interpreter.cooking_level_berechnung
 
           if $game_switches[CRAFTING::LEVEL_UP] == true #Skillevel erhöht
             cooking_level = $game_party.actors[0].cooking_level
            @result_text += "Yay! Mein Koch-Level hat sich auf " + cooking_level.to_s + " erhöht! /n" 
            $game_switches[CRAFTING::LEVEL_UP] = false
           end 
 
      else
        # Crafting failed
        type = 1
        # Play SE
        Audio.se_play("Audio/SE/" + CRAFTING::FAILURE_SE, 90, 100)
        @crafting.craft_item(recipe, item_value, mean_values)
        @product = @crafting.get_failed_product
        # set text
    @result_text = "Kochen fehlgeschlagen! /n "
    @result_text += "Ich habe " + @product.name + " gekocht... /n"
    @result_text += "Ich konnte meine Kochfähigkeit nicht verbessern."
      end
      # Equip actor
      equip_actor(recipe)
      # Play animation
      play_animation(type)
      # Show result
      show_result_window
    else
      # Can not craft item (not enough material)
      $game_system.se_play($data_system.buzzer_se)
    end
  end
  #--------------------------------------------------------------------------
  # * Equips actor with crafted item
  #--------------------------------------------------------------------------
  def equip_actor(recipe)
    if !CRAFTING::FAILURE_PRODUCTS.include?(@product.id)
      # item could have been craftet multiply times
      n = @crafting.product_amount(recipe)
      p n
      if n > 1
        $game_party.add_fridge_item(@product.id, n-1)  
      end
    end
    # Equip crafted item
    @actor.equip_item(@product.id)
  end
  #--------------------------------------------------------------------------
  # * Show result window after crafting item
  #--------------------------------------------------------------------------
  def show_result_window
    # Product Item
    @result_window_icon.set_item(@product)
    @result_window_icon.visible = true
    @result_window_icon.z = 999
    # Text
    @help_window_result.draw_description(@result_text,4,0,false)
    @help_window_result.visible = true
    @help_window_result.z = 999
    # next step
    @step = 2
  end
  #--------------------------------------------------------------------------
  # * initialize_step_0
  #--------------------------------------------------------------------------
  def initialize_step_0
    @recipe_window.index = 0
    @recipe_window.visible = false
    @help_window_step1.visible = false
    @material_window.visible = false
    @step = 0
  end
  #--------------------------------------------------------------------------
  # * initialize_step_1
  #--------------------------------------------------------------------------
  def initialize_step_1
    @recipe_window.visible = true
    @help_window_step1.visible = true
    @material_window.visible = true
    @step = 1
  end
  #--------------------------------------------------------------------------
  # *  play_animation(type) : plays success/fail animation.
  # typ : 0 = success, 1 = fail
  #--------------------------------------------------------------------------
  def play_animation(type)
    # hide windows
    @recipe_window.visible = false
    @help_window_step1.visible = false
    @material_window.visible = false
    # Get animation
    if type == 0
      @sprite.animation($data_animations[CRAFTING::SUCCESS_ANIMATION],true)
      wait_frames = CRAFTING::SUCCESS_DURATION
    elsif type == 1
      @sprite.animation($data_animations[CRAFTING::FAILURE_ANIMATION],true)
      wait_frames = CRAFTING::FAILURE_DURATION 
    end
    # Animation wait
    while wait_frames > 0 do
      Graphics.update
      # Background animation
      update_sprites
      @sprite.update
      wait_frames -=1
    end
    # Change background 
    change_sprites(type)
  end
  #--------------------------------------------------------------------------
  # * Class End
  #--------------------------------------------------------------------------
end
highlight to read

Das Recipe_Window dazu:
Spoiler

Ruby Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
#==============================================================================
# ** Window_HM_Recipes
#------------------------------------------------------------------------------
# Selectable Window for store classes (cupboard, fridge).
#==============================================================================
class Window_HM_Recipes < Window_HM_Selectable
  attr_reader   :cursor_window 
  #--------------------------------------------------------------------------
  # * Object Initialization
  # type : "cupboard" or "fridge"
  #--------------------------------------------------------------------------
 def initialize(x,y, category_id = 0)
    super(x, y, 541, 132)
    self.x = x
    self.y = y
    choose_inventory
    @recipes = []
    @product = nil
    @avaiable_recipes = []
    @category_id = category_id
    refresh
    self.index = 0
    # If in battle, move window to center of screen
    # and make it semi-transparent
    if $game_temp.in_battle
      self.y = 64
      self.height = 256
      self.back_opacity = 160
    end
  end
  #--------------------------------------------------------------------------
  # * Get Item
  #--------------------------------------------------------------------------
  def product
    if @recipes[index].nil?
      return nil
    end
    products = @recipes[index][@recipes[index].size-3]
    if (products.size-1) / 2 == 0
      @product = $data_items[products[(products.size-1)/2+1]]
    else
      @product = $data_items[products[(products.size-1)/2]]
    end
    return @product
  end
  #--------------------------------------------------------------------------
  # * Get Recipe
  #--------------------------------------------------------------------------
  def recipe
    return @recipes[self.index]
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    # Get available recipes
    @avaiable_recipes = $game_party.available_recipes
    # Filter recipes by category when there is a category filer. 
    # If category id is 0, all recipes are displayed.
    if @category_id > 0
      category_recipe_ids = CRAFTING.get_category_recipe_ids(@category_id)
      if !category_recipe_ids.nil?
        for recipe in @avaiable_recipes
          if category_recipe_ids.include?(recipe[0])
            @recipes.push(recipe)
          end
        end
      else
        # No category filter
        @recipes = @avaiable_recipes
      end
    else
      # No category filter
      @recipes = @avaiable_recipes
    end
    # Sort recipes by id
    @recipes.sort!{ |a,b| a[0] <=> b[0] }
    @item_max = @recipes.size
    # If item count is not 0, make a bit map and draw all items
    if @item_max  > 0
      self.contents = Bitmap.new(width - 32, row_max * @cursor_xy)
    else
      self.contents = Bitmap.new(width - 32, height - 32)
    end
    for i in 0...@recipes.size
      draw_item(i)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(index)
    # Get product
    products = @recipes[index][@recipes[index].size-3]
    if (products.size-1) / 2 == 0
      product = $data_items[products[(products.size-1)/2+1]]
    else
      product = $data_items[products[(products.size-1)/2]]
    end
    difficulty = @recipes[index][@recipes[index].size-2]
    number = products[products.size-1]
    if !product.nil?
      self.contents.font.color = normal_color
      # Coordinates
      x = @offset_x + index % @column_max * (@height + @abstand_x)
      y = @offset_y + index / @column_max * (@height + @abstand_y)
      rect = Rect.new(x, y, self.width / @column_max - 32, 32)
      self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
      bitmap = RPG::Cache.icon(product.icon_name)
      opacity = 255
      self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 90, 90), opacity)
      self.contents.draw_text(x + 66, y + 66, 24, 32, "x"+number.to_s, 2)
      # Difficulty
      self.contents.font.color = difficulty_color(difficulty)
      self.contents.draw_text(x - 4, y - 4, 24, 32, difficulty.to_s, 2)
    end
  end
  #--------------------------------------------------------------------------
  # * difficulty_color : returns difficulty color
  #--------------------------------------------------------------------------
  def difficulty_color(difficulty)
    # Get current crafting skill
    crafting_skill = $game_party.actors[0].cooking_level #crafting_skill
    delta_skill = difficulty - crafting_skill
    # Get difficulty color
    if delta_skill >= CRAFTING::UPPER_BLACK
      color = CRAFTING::COLOR_BLACK
    elsif delta_skill >= CRAFTING::UPPER_RED
      color = CRAFTING::COLOR_RED
    elsif delta_skill >= CRAFTING::UPPER_ORANGE
      color = CRAFTING::COLOR_ORANGE
    elsif delta_skill >= CRAFTING::UPPER_YELLOW
      color = CRAFTING::COLOR_YELLOW
    else
      color = CRAFTING::COLOR_GREEN
    end
    return color
  end
  #--------------------------------------------------------------------------
  # * Help Text Update
  #--------------------------------------------------------------------------
  def update_help
    #@help_window.set_text_xy(self.item == nil ? "" : self.item.name,4,0,true)
    #@help_window.draw_description(self.item == nil ? "" : self.item.description,4,32,false)
  end
  #--------------------------------------------------------------------------
  # * Update Cursor Rectangle
  #--------------------------------------------------------------------------
  def update_cursor_rect
    # If cursor position is less than 0
    if @index < 0
      self.cursor_rect.empty
      return
    end
    # Get current row
    row = @index / @column_max
    # If current row is before top row
    if row < self.top_row
      # Scroll so that current row becomes top row
      self.top_row = row
    end
    # If current row is more to back than back row
    if row > self.top_row + (self.page_row_max - 1)
      # Scroll so that current row becomes back row
      self.top_row = row - (self.page_row_max - 1)
    end
    # Calculate cursor width
    #cursor_width = self.width / @column_max - 32
    cursor_width = @c_width
    # Calculate cursor coordinates
    #x = @index % @column_max * (cursor_width + 32)
    x = @index % @column_max * (@height + @abstand_x)
    #y = @index / @column_max * @c_height - self.oy
    y = @index / @column_max * (@height + @abstand_y)- self.oy
    # Update cursor rectangle
    self.cursor_rect.set(x, y, cursor_width, @c_height)
  end
  #--------------------------------------------------------------------------
  # * Get Top Row
  #--------------------------------------------------------------------------
  def top_row
    # Divide y-coordinate of window contents transfer origin by 1 row
    # height of 32
    return self.oy / @cursor_xy
  end
  #--------------------------------------------------------------------------
  # * Set Top Row
  #     row : row shown on top
  #--------------------------------------------------------------------------
  def top_row=(row)
    # If row is less than 0, change it to 0
    if row < 0
      row = 0
    end
    # If row exceeds row_max - 1, change it to row_max - 1
    if row > row_max - 1
      row = row_max - 1
    end
    # Multiply 1 row height by 32 for y-coordinate of window contents
    # transfer origin
    self.oy = row * @cursor_xy
  end
  #--------------------------------------------------------------------------
  # * Get Number of Rows Displayable on 1 Page
  #--------------------------------------------------------------------------
  def page_row_max
    # Subtract a frame height of 32 from the window height, and divide it by
    # 1 row height of 32
    return (self.height - 32) / @cursor_xy
  end
  #--------------------------------------------------------------------------
  # * Choose inventory
  # * type = 0 : kleine Tasche
  # * type = 1 : große Tasche
  # * type = 2 : kleiner Rucksack
  # * type = 3 : mittelgroßer Rucksack
  # * type = 4 : großer Rucksack
  #--------------------------------------------------------------------------
  def choose_inventory
    # Get inventory parameters
    # @column_max : Anzahl der Spalten
    # @height     : Icon Höhe
    # @offset_x   : Offset in x Richtung (Icon und Cursor)
    # @offset_y   : Offset in y Richtung (Icon und Cursor)
    # @abstand_x  : Abstand zwischen 2 Icons in x-Richtung
    # @abstand_y  : Abstand zwischen 2 Icons in y-Richtung
    # @cursor_xy  : Cursorabmessung (Annahme, dass er quadratisch ist)
    # @item_max   : max. angezeigte Items
    # Window Parameter
    @column_max = 5
    @height = 90
    @offset_x = 5
    @offset_y = 1
    @abstand_x = 13
    @abstand_y = 10 
    # Cursor
    @cursor_xy = 100
    @c_width  = @cursor_xy
    @c_height = @cursor_xy
    # Items
    #@item_max = 28
  end
end
highlight to read

Dort werden die Kategorien gefüllt, glaub ich.

Die Kategorie sollte grau sein, bis mindestens ein passendes Rezept gelernt wurde (mit "$game_party.add_recipe(x)").
Aktuell sind alle Kategorien weiß, weil sich dein Codeschnippsel auf die Module bezieht, die alle gefüllt sind und nicht darauf, ob wenigstens ein passendes Rezept gelernt wurde.
Hier wird add_recipe definiert, falls das wichtig ist:
Spoiler

Ruby Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#==============================================================================
# ** Game_Party
#------------------------------------------------------------------------------
# Crafting System
#------------------------------------------------------------------------------
# New methods:
# - available recipes
# - has_material?(material_group)
# - add_recipe(recipe_id)
# - crafting_item_number(item_id)
# - gain_base_item(item_id, n)
#==============================================================================
class Game_Party
  include CRAFTING
  #-----------------------------------------------------------------------------
  # has_material?
  #-----------------------------------------------------------------------------
  def has_material?(material_group)
    result = false
    amount = material_group[material_group.size-1]
    # Iterate through materials
    for i in 0...material_group.size-1
      item_id = material_group[i]
      if (item_number_fridge(item_id) >= amount)
        result = true
      end
    end
    # return result
    return result
  end
  #-----------------------------------------------------------------------------
  # add_recipe(recipe_id) : Adds recipe with recipe_ID to available recipes
  #-----------------------------------------------------------------------------
  def add_recipe(recipe_id)
    # Recipe is not already available
    if !@available_recipes.include?(RECIPES[recipe_id])
      # Searching recipe
      for i in 0...RECIPES.size
        current_recipe = RECIPES[i]
        if current_recipe[0] == recipe_id
          # Recipe was found in crafting module
          @available_recipes.push(current_recipe)
          break
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # * recipe_known?(recipe_id) : Returns true if the recipe with the ID
  #                              recipe_Id is known by the party.
  #--------------------------------------------------------------------------
  def recipe_known?(recipe_id)
    result = false
    # Pass through recipe array
    for i in 0...@available_recipes.size
      # Get current recipe
      current_recipe = @available_recipes[i]
      # Get current recipe ID
      current_recipe_id = current_recipe[0]
      # Has current recipe the id recipe_id?
      if current_recipe_id == recipe_id
        # Id are equivalent
        result = true
        break
      end
    end
    # Return
    return result
  end  
  #--------------------------------------------------------------------------
  # * has_baseitem?(baseitem_id) : Diese Methode überprüft, ob der Spieler das 
  #                                Base Item mit der ID baseitem_id 
  #                                (Eingabeparameter) besitzt.
  #--------------------------------------------------------------------------
  def has_baseitem?(baseitem_id)
    # wird auf true gesetzt, wenn das Item vorhanden ist
    # Überprüfe, ob das baseitem im Hash abgelegt ist
    # Die Anzahl ist > 0, daher ist das Item vorhanden
    # Gebe das Ergebnis zurück
    return base_item_number(baseitem_id) > 0
  end
  #--------------------------------------------------------------------------
  # * crafting_item_number(item_id)
  # Return Item ID of crafting item
  #--------------------------------------------------------------------------
  def crafting_item_number(item_id)
    # If quantity data is in the hash, use it. If not, return 0
    return @crafting_items.include?(item_id) ? @crafting_items[item_id] : 0
  end
  #--------------------------------------------------------------------------
  # * gain_base_item(item_id, n)
  # Gain crafting item for crafting system.
  #--------------------------------------------------------------------------
  def gain_crafting_item(item_id, n)
    # Update quantity data in the hash.
    if item_id > 0
      @crafting_items[item_id] = [[crafting_item_number(item_id) + n, 0].max, 99].min
    end
  end
end
highlight to read


tl;dr:
Die Frage ist aktuell: "Ist ein Rezept im Modul"
Sollte aber so lauten: "Wurde ein Rezept in der Kategorie hinzugefügt?"

Vlt ist es so übersichtlicher: Das sind alle Edits, die Mitsch gemacht hat, als er die Kategorien für mich eingebaut hat:
Spoiler

1.) Dein neues Menü

Ruby Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#==============================================================================
# ** Scene_Crafting_Start
#------------------------------------------------------------------------------
#  Crafting menu (choice)
#==============================================================================
class Scene_Crafting_Recipe_Menu < Scene_Animation
  # Include HM main module for game data
  include HM
  include CRAFTING
  #--------------------------------------------------------------------------
  # * Main
  #--------------------------------------------------------------------------
  def main
    # Window commands
    s1 = "Vorspeisen"
    s2 = "Hauptgerichte"
    s3 = "Desserts"
    s4 = "Zurück"
 
    @window_commands = []
    @category_ids = []
    # Gehe jede Kategorie durch aus RECIPE_CATEGORIES
    for category in RECIPE_CATEGORIES do
      @window_commands.push(category[:category_name])
      @category_ids.push(category[:category_id])
    end
    # Füge noch "Alle Rezeopte"-Option ein
    @window_commands.push("Alle Rezepte")
    @category_ids.push(0)
    # Füge noch "Zurück"-Option hinzu
    @window_commands.push("Zurück")
 
    text = "Welches Rezept?"
    # Make windows
    # Korrektur y-Koordinate
    @command_window = Window_Command.new(640, @window_commands)
    @command_window.x = 0
    @command_window.y = 480 - @command_window.height
    @command_window.index = 0
    @help_window = Window_Help.new(0,256,640,64)
    # Korrektur y-Koordinate
    @help_window.y = 480 - @command_window.height - @help_window.height
    @help_window.set_text(text,0)
    @skill_window = Window_HM_Crafting_Skill.new(0,0)
    # Background sprite
    inititialize_animation(0)
    # Get actor
    @actor = $game_party.actors[0]
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose sprite
    dispose_sprites
    # Dispose windows
    @command_window.dispose
    @help_window.dispose
    @skill_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    # Sprite
    update_sprites
    # Command Window
    @command_window.update
    # Command
    update_command
  end
  #--------------------------------------------------------------------------
  # * Update Command
  #--------------------------------------------------------------------------
  def update_command
    # ENTER
    if Input.trigger?(Input::C)
      # Play cancel SE
      $game_system.se_play($data_system.decision_se)
 
      # Zurück Button
      if @command_window.index == (@window_commands.size-1)
        # Zurück
        # Play cancel SE
        $game_system.se_play($data_system.cancel_se)
        # Switch to map screen
        $scene = Scene_Crafting_Start.new
      else
        # Gehe zu "Kochen nach Rezept"
        $scene = Scene_Crafting_Recipe.new(@category_ids[@command_window.index])
      end
 
      return
    end  
    # ESC
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to map screen
      $scene = Scene_Crafting_Start.new
      return
    end  
  end
  #--------------------------------------------------------------------------
  # * Class End
  #--------------------------------------------------------------------------
end


2.) Scene_Crafting_Recipe
Main Methode ersetzen sowie die obere (neue) initialize Methode hinzufügen:

Ruby Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
  #--------------------------------------------------------------------------
  # * Initialize
  #--------------------------------------------------------------------------
  def initialize(category_id = 0)
    @category_id = category_id
  end
  #--------------------------------------------------------------------------
  # * Main
  #--------------------------------------------------------------------------
  def main
    # Initialize crafting class for calculations
    @crafting = Game_Crafting.new
    # Main Windows (step 1)
    @recipe_window = Window_HM_Recipes.new(50,26, @category_id)
    @help_window_step1 = Window_Help.new(50, 158, 541, 64)
    @material_window = Window_HM_Material.new(50,222)
    # Result windows
    @result_window_icon = Window_HM_Result_Icon.new(254, 90, 132, 132)
    @result_window_icon.visible = false
    @help_window_result = Window_Help.new(70, 222, 500, 255)
    @help_window_result.visible = false
    # Background sprite
    inititialize_animation(1)
    # Sprite
    @sprite = RPG::Sprite.new(Viewport.new(0, 0, 640, 480))
    @sprite.z = 999
    @sprite.x = 320
    @sprite.y = 240
    # Result text
    @result_text = ""
    # Start step = 0
    initialize_step_1
    # Get actor
    @actor = $game_party.actors[0]
 
    # Help_Window
    @help_window = Window_Help.new(0, 276, 640, 204)
    @help_window.z = 999
    @help_window.visible = false
 
 
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose windows
    @crafting = nil
    @recipe_window.dispose
    @material_window.dispose
    @help_window_step1.dispose
    @result_window_icon.dispose
    @help_window_result.dispose
    @help_window.dispose
    # Dispose sprites
    @sprite.dispose
    dispose_sprites
  end


4.) Window_HM_Recipes
initialize und refresh Methoden aktualisieren.

Ruby Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 def initialize(x,y, category_id = 0)
    super(x, y, 541, 132)
    self.x = x
    self.y = y
    choose_inventory
    @recipes = []
    @product = nil
    @avaiable_recipes = []
    @category_id = category_id
    refresh
    self.index = 0
    # If in battle, move window to center of screen
    # and make it semi-transparent
    if $game_temp.in_battle
      self.y = 64
      self.height = 256
      self.back_opacity = 160
    end
  end


Ruby Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    # Get available recipes
    @avaiable_recipes = $game_party.available_recipes
    # Filter recipes by category when there is a category filer. 
    # If category id is 0, all recipes are displayed.
    if @category_id > 0
      category_recipe_ids = CRAFTING.get_category_recipe_ids(@category_id)
      if !category_recipe_ids.nil?
        for recipe in @avaiable_recipes
          if category_recipe_ids.include?(recipe[0])
            @recipes.push(recipe)
          end
        end
      else
        # No category filter
        @recipes = @avaiable_recipes
      end
    else
      # No category filter
      @recipes = @avaiable_recipes
    end
    # Sort recipes by id
    @recipes.sort!{ |a,b| a[0] <=> b[0] }
    @item_max = @recipes.size
    # If item count is not 0, make a bit map and draw all items
    if @item_max  > 0
      self.contents = Bitmap.new(width - 32, row_max * @cursor_xy)
    else
      self.contents = Bitmap.new(width - 32, height - 32)
    end
    for i in 0...@recipes.size
      draw_item(i)
    end
  end


3.) CRAFTING
Ganz unten diese neue Methode einfügen.

Ruby Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
  # ----------------------------------------------------------------------------
  # get_category_recipe_ids : Returns recipe array of category with
  #                           id category_id.
  # ----------------------------------------------------------------------------
  def self.get_category_recipe_ids(category_id)
    recipe_ids = nil
    for category in RECIPE_CATEGORIES
      if category[:category_id] == category_id
        recipe_ids = category[:recipe_ids]
        break
      end
    end
    return recipe_ids
  end



PS:
Wird die Category_ID 0 übergeben, interpretiert das der Skript in Window_HM_Recipes als "Alle Rezepte anzeigen".[/quote]
highlight to read


Sorry, ich bin doof. XD°





Wie fragt man nochmal ab, ob die Kategorie disabled wurde? @_@

Ruby Source code

1
is_@command_window.disabled?

?
Ich wollte es hier einbauen:

Ruby Source code

1
2
3
4
5
6
7
#        if Kategorie disabled
#         $game_system.se_play($data_system.buzzer_se)  
#        else
          $game_system.se_play($data_system.decision_se)
          # Gehe zu "Kochen nach Rezept"
          $scene = Scene_Crafting_Recipe.new(@category_ids[@command_window.index])
#        end
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

This post has been edited 2 times, last edit by "Josey" (May 13th 2020, 7:20pm)


Playm

RPG Studio Webmaster

  • Send private message

187

Monday, May 18th 2020, 8:34pm

Quoted

1.) Okay, das funktioniert jetzt, danke XD

Aber wenn man eine ungerade Zahl an Kategorien hat, wird das "Zurück" unten nicht mehr hingeschrieben. Man kann es anklicken, aber das Feld ist leer Oo

Du hast recht, die Berechnung der Höhe ist mit @item_max/@column_max etwas ungenau. Window_Item benutzt die Funktion row_max, die besser ausrechnet, wieviele Zeilen das Fenster hat. Benutz das einfach auch:

Ruby Source code

1
self.contents = Bitmap.new(width - 32, row_max * 32)


Quoted

Die Frage ist aktuell: "Ist ein Rezept im Modul"
Sollte aber so lauten: "Wurde ein Rezept in der Kategorie hinzugefügt?"

Nächste Idee:

Ruby Source code

1
2
3
4
5
6
    @command_window.index = @menu_index#0
    for a in 1..(@window_commands.size-2)
      if CRAFTING.get_category_recipe_ids(@category_ids[a]).any?{|recipe_id| $game_party.recipe_known?(recipe_id)}
        @command_window.disable_item(a)
      end
    end

Ich werde ja nicht müde, dich neue Sachen ausprobieren zu lassen. :-)

Wenn das funktioniert, kannst Du diese Abfrage auch später nutzen:

Ruby Source code

1
2
3
4
5
if @command_window.index == 0 or CRAFTING.get_category_recipe_ids(@category_ids[@command_window.index]).any?{|recipe_id| $game_party.recipe_known?(recipe_id)}
  print("Kategorie "Alle Rezepze" gewählt oder die Kategorie ist verfügbar")
else
  print("Kategorie gesperrt")  
end

Josey

Storyteller

  • "Josey" started this thread

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Send private message

188

Monday, May 18th 2020, 9:11pm

Du hast recht, die Berechnung der Höhe ist mit @item_max/@column_max etwas ungenau. Window_Item benutzt die Funktion row_max, die besser ausrechnet, wieviele Zeilen das Fenster hat. Benutz das einfach auch:

Ruby Source code

1
self.contents = Bitmap.new(width - 32, row_max * 32)

Vielen Dank, das funktioniert! :D

Quoted

Nächste Idee:

Ruby Source code

1
2
3
4
5
6
    @command_window.index = @menu_index#0
    for a in 1..(@window_commands.size-2)
      if CRAFTING.get_category_recipe_ids(@category_ids[a]).any?{|recipe_id| $game_party.recipe_known?(recipe_id)}
        @command_window.disable_item(a)
      end
    end

Ich werde ja nicht müde, dich neue Sachen ausprobieren zu lassen. :-)

Und ich werd nicht müde, immer wieder nachzufragen XD
Also- das funktioniert, allerdings nur so:

Ruby Source code

1
2
3
4
5
6
    for a in 1..(@window_commands.size-2)
      if CRAFTING.get_category_recipe_ids(@category_ids[a]).any?{|recipe_id| $game_party.recipe_known?(recipe_id)}
      else
        @command_window.disable_item(a)
      end
    end

:P

Quoted

Wenn das funktioniert, kannst Du diese Abfrage auch später nutzen:

Ruby Source code

1
2
3
4
5
if @command_window.index == 0 or CRAFTING.get_category_recipe_ids(@category_ids[@command_window.index]).any?{|recipe_id| $game_party.recipe_known?(recipe_id)}
  print("Kategorie "Alle Rezepze" gewählt oder die Kategorie ist verfügbar")
else
  print("Kategorie gesperrt")  
end

Yay, das klappt! XD

Ich danke dir! :D
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Josey

Storyteller

  • "Josey" started this thread

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Send private message

189

Sunday, June 28th 2020, 5:16pm

Spoiler
Wenn ich nicht weiß, wieviele Items im Itemmenü der Spieler hat, aber wissen will, dass der Cursor gerade "ganz unten" ist- wie kann ich das abfragen? Mit Item_max ja nicht. Kann ich irgendwie abfragen, wieviele verschiedene Items gerade da sind und damit berechnen, wieviele Zeilen es sind und mir da die letzte ausspucken lassen?

Ich habe diesen Befehl in dem Schrank-System:

Ruby Source code

1
2
3
4
5
6
7
8
9
10
  #--------------------------------------------------------------------------
  # * total_amount_cupboard: Returns total amount of stored items
  #--------------------------------------------------------------------------
  def total_amount_cupboard
    @amount = 0
    for i in 0...@quantity_cupboard.size
      @amount += @quantity_cupboard[i]
    end
    return @amount
  end


und ich kann hiermit die Zahl speichern:
$game_variables[1]=$game_party.total_amount_horse

Leider werden alle Items gezählt, auch die, die gestapelt sind. :/
Kann ich das irgendwie umgehen?
Also wenn da im Schrank folgendes drin ist:
2x Trank, 1xSupertrank, 3xHypertrank
Soll die Zahl 3 ergeben und nicht 6 :<
highlight to read


Erledigt, hab woanders eine Methode geklaut, die funktioniert XD

Ruby Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
  #--------------------------------------------------------------------------
  # * inventory_space: Returns occupied space of stored items
  #--------------------------------------------------------------------------
  def inventory_space
    @amount = 0
    for i in 0...@items_cupboard.size
      if @quantity_cupboard[i] >= 1
        # Flag nil
      @amount += 1
      end
    end
    return @amount
  end

Danke Vergangenheits-Mitsch XD
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

This post has been edited 1 times, last edit by "Josey" (Jun 28th 2020, 11:37pm)


Josey

Storyteller

  • "Josey" started this thread

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Send private message

190

Monday, July 20th 2020, 6:08pm

Vielleicht kommt Playm oder Mitsch ja hier vorbei und kann mir hier helfen XD
Ich habe versucht, ein "Name_Window" zu erstellen. Dieses erscheint, wenn man im Kühlschrankmenü (blauer Kerl) W drückt. Das Fenster wird sauber gefüllt und es hüpft auch mit.
Alles paletti.
Aber nu ist da eine unsauberkeit und die kommt vermutlich von meinem katastrophalen Lösungsversuchen (mit variablen und so) XD°
Wenn man im unteren Fenster ganz rechts runter geht und im oberen Fenster ganz links oben bleibt, sieht man das Fenster "springen". Das passiert, weil die Koordinaten des Name_Windows langsamer übergeben werden, als der Index.
Habs mit unsichtbar und wieder sichtbar machen probiert, habe versucht, das klappt auch nicht.
Ich kriegs auch nicht hin, das Namen-fenster direkt an die richtige Position zu rücken- also die Koordinaten direkt richtig zu übergeben. Wenn ich von einem Fenster zum anderen Wechsle, wird das richtige Fenster aktiviert, aber das Namen-fenster bleibt erstmal auf der alten position im neuen Fenster. So entstehen die Sprünge.

Einfach mal ins Menü gehen, W drücken. Rechts runter gehen. Q immer wieder drücken (wechseln). Dann sieht mans.

Die Koordinaten übergebe ich an die Variablen in "Window_HM_Store" Zeile 153/154
Das Fenster wird definiert in "Window_HM_Name"
Den Rest findet ihr in "Scene_HM_Fridge" -> Vor allem in "update_command" (Press Button Q/"L") und in "update_help" und allem, was von den beiden Punkten aus angetriggert wird.
Ich hab viel Blödsinn gemacht und muss vermutlich danach erstmal aufräumen XD°
Das ist aber leider das Beste, was ich hinkriege.

Ich hoffe mir kann jemand helfen. Bin ausgelaugt.
Josey has attached the following file:
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Cryztal

Knappe

Motto: Ich mag das Gefühl von völliger Ungezwungenheit. Dann bin ich am besten, würde ich sagen.

  • Send private message

191

Sunday, July 26th 2020, 4:29pm

also ich kann partout nicht feststellen was du mit "unsauberkeit" meinst josey.
habs grade mal getestet und es sah wirklich sauber aus. (vlt hab ich auch was verkehrt gemacht?)
was mir aber aufgefallen ist, ist die tatsache dass du die rgss102.dll benutzt und ich die erst auf die 04 updaten musste. vllt hakts ja deshalb bei dir? Kann aber auch sein dass das hier nichts damit zutun hat.
Lg Cryztal

Josey

Storyteller

  • "Josey" started this thread

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Send private message

192

Sunday, July 26th 2020, 6:37pm

Ich benutze mit Absicht die alte, weil die neue bei mir nur Probleme gemacht hast, vor allem mit dem RGSS3 Projekt. Die "updates" waren echt kacke. :/

Im Video hier sieht mans. Das kleine Fenster springt umher. Es hüpft erst ins obere Fenster ohne die Position zu updaten.
Josey has attached the following file:
  • SAM_5158.rar (11.14 MB - 3 times downloaded - latest: Jul 29th 2020, 9:48pm)
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Cryztal

Knappe

Motto: Ich mag das Gefühl von völliger Ungezwungenheit. Dann bin ich am besten, würde ich sagen.

  • Send private message

193

Wednesday, July 29th 2020, 12:50am

So. Erster Problelauf.

Ersetz mal bitte HM_Menu durch:

Spoiler

Ruby Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
#==============================================================================
# ** Scene_HM_Menu
#------------------------------------------------------------------------------
#  HM item and equipment menu. ICG eingebaut
#==============================================================================
class Scene_HM_Menu < Scene_Animation
 
  attr_reader   :index                    # cursor position
  attr_reader   :help_window              # help window
 
  # Include HM main module for game data
  include HM
  #--------------------------------------------------------------------------
  # * Main
  #--------------------------------------------------------------------------
  def main
    # Background sprite
    inititialize_animation(3)
    # Make windows
    @item_window = Window_HM_Item.new
    @help_window = Window_Help.new(0, 300, 640, 180)
    @tool_hm_window = Window_HM_Activeslot.new(24, 19, 132, 132,"tool")
    @hand_hm_window = Window_HM_Activeslot.new(24, 160, 132, 132,"item")
    # Cursor Window
    @cursor_window_item = Window_HM_DualCursor.new(0,0,132,132)
    @cursor_window_tool = Window_HM_DualCursor.new(0,0,132,132)
    @cursor_window_hand = Window_HM_DualCursor.new(0,0,132,132)
    @item_window.cursor_window = @cursor_window_item
    @tool_hm_window.cursor_window = @cursor_window_tool
    @hand_hm_window.cursor_window = @cursor_window_hand
    # Special
    @actor = $game_party.actors[0]
    @trigger = false
    @choose_window = false
    @equip_tool = false
    @equip_hand = false
    @selected_index1 = -1
    @selected_item1  = nil
    @menu_case = 0
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Refresh map
    $game_map.refresh
    # Prepare for transition
#    $game_map.need_refresh = true
    Graphics.freeze
    # Dispose of windows
    @cursor_window_item.dispose
    @cursor_window_tool.dispose
    @cursor_window_hand.dispose
    @item_window.dispose
    @help_window.dispose
    @tool_hm_window.dispose
    @hand_hm_window.dispose
    # Dispose sprites
    dispose_sprites
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    # Sprite
    update_sprites
    if @trigger
      @item_window.active = true
#      @item_window.index = 0
      @trigger = false
    end
    # Tastaturabfrage
    if @menu_case == 0
      update_command_main
    else
      update_command_second
    end
    update_help
    # Windows
    if @item_window.active
      @item_window.update
    end
    @item_window.select_update
    @help_window.update
    @tool_hm_window.update
    @hand_hm_window.update
  end
  #--------------------------------------------------------------------------
  # * update_help
  #--------------------------------------------------------------------------
  def update_help
    if @tool_hm_window.active?
      item = @tool_hm_window.item?
    elsif @hand_hm_window.active?
      item = @hand_hm_window.item?
    elsif @item_window.active
      item = @item_window.item
    end
    @help_window.set_text_xy(item == nil ? "" : item.name,4,0,true)
    @help_window.draw_description(item == nil ? "" : item.description,4,32,false)
  end
  #--------------------------------------------------------------------------
  # * update_command_main
  #   Selecting slots.
  #--------------------------------------------------------------------------
  def update_command_main
    # C
    if Input.trigger?(Input::C)# 
      # Quick equip
      if @item_window.active
        # Equip selected Item
        @selected_index1 = @item_window.index
        @selected_item1  = @item_window.item
        # Equip
        if $game_party.kind[@selected_index1] == "weapon"
          equip(0)
          # Play equip SE
          $game_system.se_play($data_system.equip_se)
        elsif $game_party.kind[@selected_index1] == "item"
          if !@actor.item_fix?
            equip(1)
            # Play equip SE
            $game_system.se_play($data_system.equip_se)
          else
            $game_system.se_play($data_system.buzzer_se)  
          end
        end
      elsif @tool_hm_window.active?
 
       if $game_party.actors[0].tool_slot # etwas ausgerüstet ist:
         # Empty Slot
         @selected_item1  = nil
         # Empty
         equip(0)
         # Play equip SE
         $game_system.se_play($data_system.equip_se)        
       else # das Feld ist leer
         # rüste die nächste Weapon aus
         $game_party.equip_next_tool
         @item_window.refresh
         @tool_hm_window.refresh
         @hand_hm_window.refresh
       end
 
      elsif @hand_hm_window.active?
 
       if $game_party.actors[0].item_slot # etwas in der Hand ist:
         # Empty Slot
         @selected_item1  = nil
         # Empty
         if !@actor.item_fix?
          equip(1)
          # Play equip SE
          ICG.PlayerState_normal()
          $game_system.se_play($data_system.equip_se)
         else
          $game_system.se_play($data_system.buzzer_se)  
         end
       else # das Feld ist leer
        # rüste die nächste Weapon aus
        $game_party.equip_next_item
         @item_window.refresh
         @tool_hm_window.refresh
         @hand_hm_window.refresh
       end
      end
      reset
      return
    end
    # Q
    if Input.trigger?(Input::L)#
      if @item_window.active
        # Select Item
        @item_window.selected(@item_window.index,@item_window.row)
        @selected_index1 = @item_window.index
        @selected_item1  = @item_window.item
        @menu_case = 1
        $game_system.se_play($data_system.decision_se)
        return
      elsif @tool_hm_window.active?
        @tool_hm_window.selected(1)
        @equip_tool = true
        @menu_case = 2
        $game_system.se_play($data_system.decision_se)
        return
      elsif @hand_hm_window.active?
        if !@actor.item_fix? # Item can be equipped?
          @hand_hm_window.selected(1)
          @equip_hand = true
          @menu_case = 3
          $game_system.se_play($data_system.decision_se)
        else # Cancel
          $game_system.se_play($data_system.buzzer_se)  
#          reset
        end
        return
      end
    end
    # ESC
    if Input.trigger?(Input::B)
      $trag_variables[1] = $game_party.actors[0].item_id
      $trag_variables[2] = $game_party.actors[0].tool_id
      if $trag_variables[2] == 0
       $trag_variables[2] = $game_party.actors[0].seed_id
      end
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to map screen
      $scene = Scene_Map.new
      return
    end 
    # Item Window
    if @item_window.active
      # Switch to Slots
      if Input.trigger?(Input::LEFT) && @item_window.left_column?
        # Play Cursore SE
        $game_system.se_play($data_system.cursor_se)
        $game_variables[219] = @item_window.index
        if $game_variables[220] == 0
          @tool_hm_window.active(true)
          @item_window.active = false
          @item_window.index = -1
        else 
          @hand_hm_window.active(true) 
          @item_window.active = false
          @item_window.index = -1
        end  
        return
      end
    end
    # Slots
    if @hand_hm_window.active? || @tool_hm_window.active?
      # DOWN
      if Input.trigger?(Input::DOWN)
        if $game_switches[90]
         rucksackgroesse = 0
        elsif $game_switches[91]
         rucksackgroesse = 3
        else
         rucksackgroesse = 4
        end 
        # Play Cursore SE
        $game_system.se_play($data_system.cursor_se)
        if @tool_hm_window.active?
          x = $game_variables[219] + rucksackgroesse
          $game_variables[219] = x
          @tool_hm_window.active(false)
          @hand_hm_window.active(true) 
        else
          x = $game_variables[219] - rucksackgroesse
          $game_variables[219] = x
          @tool_hm_window.active(true)
          @hand_hm_window.active(false) 
        end
      end    
      # UP
      if Input.trigger?(Input::UP)
        if $game_switches[90]
         rucksackgroesse = 0
        elsif $game_switches[91]
         rucksackgroesse = 3
        else
         rucksackgroesse = 4
        end 
        # Play Cursore SE
        $game_system.se_play($data_system.cursor_se)
        if @hand_hm_window.active?
          x = $game_variables[219] - rucksackgroesse
          $game_variables[219] = x
          @tool_hm_window.active(true)
          @hand_hm_window.active(false) 
        else
          x = $game_variables[219] + rucksackgroesse
          $game_variables[219] = x
          @tool_hm_window.active(false)
          @hand_hm_window.active(true) 
        end
      end  
      # RIGHT 
      if Input.trigger?(Input::RIGHT) 
        # Play Cursore SE
        $game_system.se_play($data_system.cursor_se)
        # Switch to Items
        @item_window.index = $game_variables[219]
        @tool_hm_window.active(false)
        @hand_hm_window.active(false)
        @trigger = true
        return
      end
    end
  end
  #--------------------------------------------------------------------------
  # * update_command_second
  #   Handle Action.
  #--------------------------------------------------------------------------
  def update_command_second
    # ENTER
    if Input.trigger?(Input::L) || Input.trigger?(Input::C)
      case @menu_case
      when 1 # Item Window was selected
        if @item_window.active # Switch Items
          if (!@selected_item1.nil? && !@item_window.item.nil? && 
          @selected_index1 != @item_window.index)
            $game_system.se_play($data_system.equip_se)
            switch_items
            reset
            return
          else  # Cancel
            $game_system.se_play($data_system.buzzer_se)  
            reset
            return
          end
        elsif @tool_hm_window.active? # Equip Tool
          if ($game_party.hm_kind[@selected_index1] != "item" or 
            @selected_item1.nil?)
            $game_system.se_play($data_system.equip_se)  
            equip(0)
            reset
            return
          else # Cancel
            $game_system.se_play($data_system.buzzer_se)  
#            reset
            return
          end
        elsif @hand_hm_window.active? # Equip Item
          if ($game_party.hm_kind[@selected_index1] == "item" &&
            !@actor.item_fix?) or (@selected_item1.nil?)
            $game_system.se_play($data_system.equip_se)  
            equip(1)
            reset
            return
          else # Cancel
            $game_system.se_play($data_system.buzzer_se)  
#            reset
            return
          end
        else # Cancel
        end
      when 2 # Tool Window was selected
        if @item_window.active
          # Select Item
          @selected_index1 = @item_window.index
          @selected_item1  = @item_window.item
          # Equip Tool
          if ($game_party.hm_kind[@selected_index1] != "item" or 
            @selected_item1.nil?)
            $game_system.se_play($data_system.equip_se) 
            equip(0)
            reset 
            return
          else # Cancel
            $game_system.se_play($data_system.buzzer_se)  
#            reset
            return
          end
        else # Cancel
          $game_system.se_play($data_system.buzzer_se)  
          reset
          return
        end
      when 3 # Hand Window was selected  
        if @item_window.active
          # Select Item
          @selected_index1 = @item_window.index
          @selected_item1  = @item_window.item
          # Equip Item
          if ($game_party.hm_kind[@selected_index1] == "item" or 
            @selected_item1.nil?)
            $game_system.se_play($data_system.equip_se)  
            equip(1)
            reset 
            return  
          else # Cancel
            $game_system.se_play($data_system.buzzer_se)  
#            reset
            return
          end
        else # Cancel
          $game_system.se_play($data_system.buzzer_se)  
          reset
          return
        end 
      end
    end
    # ESC
    if Input.trigger?(Input::B)
       $game_system.se_play($data_system.buzzer_se)  
       reset
       return
    end 
    # Item Window
    if @item_window.active
      # Switch to Slots
      if Input.trigger?(Input::LEFT) && @item_window.left_column?
        # Play Cursore SE
        $game_system.se_play($data_system.cursor_se)
        if $game_variables[220] == 0
          @tool_hm_window.active(true)
          @item_window.active = false
          @item_window.index = -1
        else 
          @hand_hm_window.active(true) 
          @item_window.active = false
          @item_window.index = -1
        end  
        return
      end
    end
    # Slots
    if @hand_hm_window.active? || @tool_hm_window.active?
      # DOWN
      if Input.trigger?(Input::DOWN)
        if $game_switches[90]
         rucksackgroesse = 0
        elsif $game_switches[91]
         rucksackgroesse = 3
        else
         rucksackgroesse = 4
        end 
        # Play Cursore SE
        $game_system.se_play($data_system.cursor_se)
        if @tool_hm_window.active?
          x = $game_variables[219] + rucksackgroesse
          $game_variables[219] = x
          @tool_hm_window.active(false)
          @hand_hm_window.active(true) 
        else
          x = $game_variables[219] - rucksackgroesse
          $game_variables[219] = x
          @tool_hm_window.active(true)
          @hand_hm_window.active(false) 
        end
      end    
      # UP
      if Input.trigger?(Input::UP)
        if $game_switches[90]
         rucksackgroesse = 0
        elsif $game_switches[91]
         rucksackgroesse = 3
        else
         rucksackgroesse = 4
        end 
        # Play Cursore SE
        $game_system.se_play($data_system.cursor_se)
        if @hand_hm_window.active?
          x = $game_variables[219] - rucksackgroesse
          $game_variables[219] = x
          @tool_hm_window.active(true)
          @hand_hm_window.active(false) 
        else
          x = $game_variables[219] + rucksackgroesse
          $game_variables[219] = x
          @tool_hm_window.active(false)
          @hand_hm_window.active(true) 
        end
      end  
      # RIGHT 
      if Input.trigger?(Input::RIGHT) 
        # Play Cursore SE
        $game_system.se_play($data_system.cursor_se)
        # Switch to Items
        @item_window.index = $game_variables[219]
        @tool_hm_window.active(false)
        @hand_hm_window.active(false)
        @trigger = true
        return
      end
    end  
  end
  #--------------------------------------------------------------------------
  # * equip : handels tool, seed and item equip
  #           slot: tool/seed = 0, item = 1
  #--------------------------------------------------------------------------
  def equip(slot = 0)
    # Get selected Item     
    item    = @selected_item1
    item_id = !item.nil? ? item.id : 0
    amount = 0 # if its a seed
    # Selected Item
    if item.is_a?(RPG::Weapon)
      if item.name.include?("samen") || item.name.include?("Samen") || item.name.include?("dünger") || item.name.include?("Dünger") # item is a seed
        # Equip this seed
        amount = $game_party.weapon_number(item.id)
        if @actor.seed_id > 0
          @actor.equip(1,item_id,amount)
        else
          @actor.equip(3,item_id,amount)
        end
      else # item is a tool
        # Equip this tool
        if @actor.tool_id > 0
          @actor.equip(0,item_id)
        else
          @actor.equip(4,item_id)
        end
      end
    elsif item.is_a?(RPG::Item) # item is a item
      # Equip this item
      @actor.equip(2,item_id,0,@selected_index1)
    elsif item.nil?
      case slot
      when 0
        if @actor.tool_id > 0
          @actor.equip(0,item_id)
        elsif @actor.seed_id > 0
          @actor.equip(1,item_id)
        end
      when 1
        @actor.equip(2,item_id)
      end
    end
    # Refresh windows
    @item_window.refresh
    @tool_hm_window.refresh
    @hand_hm_window.refresh
  end
  #--------------------------------------------------------------------------
  # * switch_items : Switches two items in Window_Item
  #--------------------------------------------------------------------------
  def switch_items
    # Switch Items
    $game_party.switch_items(@selected_index1,@item_window.index)
    # Refresh windows
    @item_window.refresh
    @tool_hm_window.refresh
    @hand_hm_window.refresh
  end
  #--------------------------------------------------------------------------
  # * reset : Reset Selection
  #--------------------------------------------------------------------------
  def reset
    # Reset cursor windows
    @item_window.selected(-1)
    @tool_hm_window.selected(-1)
    @hand_hm_window.selected(-1)
    # Reset parameters
    @equip_tool = false
    @equip_hand = false
    @selected_index1 = -1
    @selected_item1  = nil
    @menu_case = 0
  end
  #--------------------------------------------------------------------------
  # * Class End
  #--------------------------------------------------------------------------
end
highlight to read


Kann aber nicht versprechen, dass es das Problem dauerhaft löst.


kurzer Nachtrag: Nach 2min testen ist es zwar nochmal ein einziges Mal passiert, aber erst als ich die q und w Tasten gedrückt hab, als würds um die Wurst gehen.
Von außen würde ich behaupten: Für den normalen Spieler ist das nichts mehr was von Bedeutung ist.
Lg Cryztal

Josey

Storyteller

  • "Josey" started this thread

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Send private message

194

Wednesday, July 29th 2020, 2:02am

Ich kann gar keine Änderungen finden, außer
attr_reader :index # cursor position
attr_reader :help_window # help window
:<
Jedenfalls siehts bei mir noch genauso aus.
Die W Taste brauchst du nur einmal am Anfang drücken, danach nur noch Q.
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Playm

RPG Studio Webmaster

  • Send private message

195

Wednesday, July 29th 2020, 10:11pm

Oha, das ist ja eine mega smarte Lösung von dir Josey :-D
ich selber würde das mit den Variablen nicht so machen, aber Du hast für dich eine Lösung gefunden die funktioniert, richtig nice. :-)

Du weißt ja, dass die Game_Variablen 218 und 220 erst die aktuellen Werte gesetzt bekommen, wenn die Methode update_cursor_rect im nächsten Frame aufgerufen wird.
Die Methode macht auf jeden Fall nichts schlimmes, also kannst Du die - wenn das jeweilige Fenster active ist - immer aufrufen. Also wäre mein Vorschlag, bevor Du die Variablen benutzt in Scene_HM_Fridge einfach die Methode aufzurufen.

Ruby Source code

289
290
291
292
293
294
295
296
    # Name Window
    @name_window.width = $game_variables[300] + 64
    @name_window.set_text_xy(item == nil ? "" : item.name,4,0,true)
 
    @item_window.update_cursor_rect if @item_window.active # Variablen aktuallisieren, wenn das Item-Fenster aktiv ist
    @fridge_window.update_cursor_rect if @fridge_window.active # Variablen aktuallisieren, wenn das Fridge-Fenster aktiv ist
 
    pos = 200-@name_window.width



PS: Ehrlicherweise habe ich erstmal gar nichts verstanden. x) Habe 5 Minuten gebraucht, um erstmal zu verstehen, dass es nicht um das Esc-Menü geht sondern ich den Typen anquatschen muss. Und dann musste ich mich erstmal in deinen Code reinfuchsen. Aber dann ging es. :-)

Josey

Storyteller

  • "Josey" started this thread

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Send private message

196

Thursday, July 30th 2020, 4:20pm

Ich habe später vor, die Game_Variablen durch Josey_Variablen zu ersetzen (um sie fürs Spiel frei zu haben)- ich wüsste einfach nicht, wie ich eine Zahl sonst von Script A nach Script B rüber krieg XD
...gibt es da eine andere Lösung?
Danke für das Lob, ich geb mir Mühe selbstständig zu werden :P

Ah, sorry, dass man den blauen Kerl anquatschen muss, stand nur im obersten Post ._.

Die Lösung funktioniert!
Die Methode an der Stelle nochmal zu updaten, da hät ich echt mal drauf kommen können. Aber ich hät eh nicht gewusst wie XD
Vielen Dank!
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Social bookmarks