• Anmelden

1

Donnerstag, 30. Juli 2009, 21:52

Pause Menü auf nötigste verringern

Ich würde gerne das Pausen-Menü bearbeiten, jedoch 0 Erfahrung mit Script-Editor.
Scripten ist auch nicht meine Szene, wenn ich ehrlich bin!

Deshalb an euch Profis:
Wenn dies das Pausen-Menü ist...

[img]index.php?page=Attachment&attachmentID=9947&h=cfd0eaaf188f149cf2a4afd8e9b93515fab86e9a[/img]

...möchte ich folgende Buttos und Extras entfernt bekommen:
ITEM
SKILL
EQUIP
STATUS
SAVE

Dann:
STEP COUNT
GOLD
und rechts das Fenster mit den abgebildeten Charakteren.
Darauf soll es hinauslaufen...
[img]index.php?page=Attachment&attachmentID=9948&h=b1f79fb73e95001a843b12a7ac47718a58f931ae[/img]
Am besten soll das BEENDEN BUTTON den Spieler auf einem MAP nach ID teleportieren.
Und rechts oben und unten käme noch ein Text.

Man könnte den Spaß selbstverständlich mit Parallel/Auto Events gestalten, aber bei meinem Spiel
ein No-Go! Das Pausen-Menü soll mit ESC gerufen werden.

Ich hoffe, das ist nicht zu viel verlangt und jemand kennt sich aus....
»IArts« hat folgende Bilder angehängt:
  • start2.jpg
  • start.jpg
Spoiler
2 Projekte am Laufen!
RYUGAN - Beat'emUp
ProjectX - Thriller
zum Lesen den Text mit der Maus markieren
:beach:

2

Donnerstag, 30. Juli 2009, 22:22

Also das ist nicht schwer, hier der Code, im Kopfteil des Scriptes musst du noch ein paar Sachen einstellen.
Aber du hast nicht angegeben was als hintergrund herhalten soll?
Spoiler: Script

Ruby Quellcode

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
#===============================================================================
# Neues Menü von Playm
#===============================================================================
class Scene_Menu
  def initialize
    @steuerung = []
    # Wenn man auf beenden drückt,
    # Kommt man auf eine Map, mit
    # diesen Werten:
    @steuerung[0] = 1 # Map_ID
    @steuerung[1] = 7 # X Position
    @steuerung[2] = 9 # y Position
    # Die Fenster haben folgende Werte:
    # Fenster oben Rechts:
    @steuerung[3] = 256 # Fenster Breite
    # Fenster Text (oben rechts):
    @steuerung[4] = "Mein ultra Game =D"
    # Fenster unten Rechts:
    @steuerung[5] = 320 # Fenster Breite
    # Fenster Text (unten rechts):
    @steuerung[6] = "Text-Text-Text-Text-Text-Text"
  end
  def main
    # Make command window
    @command_window = Window_Command.new(160, ["Weiter","Beenden"])
    # Make other windows
    @window_or = Window_Help.new(640-@steuerung[3],0,@steuerung[3],64)
    @window_or.set_text(@steuerung[4], 1)
    @window_ur = Window_Help.new(640-@steuerung[5],416,@steuerung[5],64)
    @window_ur.set_text(@steuerung[6], 1)
    # 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 of window
    @command_window.dispose
    @window_or.dispose
    @window_ur.dispose
  end
  def update
    # Update command window
    @command_window.update
    # If B button was pressed
    if Input.trigger?(Input::B)
 
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to map screen
      $scene = Scene_Map.new
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Branch by command window cursor position
      case @command_window.index
      when 0
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Map.new
        return
      when 1 
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Set up initial map position
        $game_map.setup(@steuerung[0])
        # Move player to initial position
        $game_player.moveto(@steuerung[1], @steuerung[2])
        # Refresh player
        $game_player.refresh
        # Run automatic change for BGM and BGS set with map
        $game_map.autoplay
        # Update map (run parallel process event)
        $game_map.update
        # Switch to map screen
        $scene = Scene_Map.new
      end
      return
    end
  end
end
#==============================================================================
# ** Window_Help
#==============================================================================
class Window_Help < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(x = 0, y = 0, w = 640, h = 64)
    super(x,y,w,h)
    self.contents = Bitmap.new(width - 32, height - 32)
  end
end
zum Lesen den Text mit der Maus markieren

3

Donnerstag, 30. Juli 2009, 22:51

Hintergrund bleibt leer!

Habe Script ausprobiert und es klappt!
Einsame Spitze Playm!
Danke!

Könnte der schwarze Hintergrund entfernt werden und man sieht das pausierte Map?
Und könnte man das Menübox, auf denen die Texte (wie WEITER/BEENDEN/GEILES SPIEL/TEXT TEXT)erscheinen, transparent machen?

Und könntest du eine kleine Einleitung geben, wie man sich beim Beenden auf einem anderen Map teleportiert?

Bitte keine Doppelposts. ~ Drag-On
Spoiler
2 Projekte am Laufen!
RYUGAN - Beat'emUp
ProjectX - Thriller
zum Lesen den Text mit der Maus markieren
:beach:

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Drag-On« (31. Juli 2009, 00:21)


4

Donnerstag, 30. Juli 2009, 23:20

oT: Ähm, könntest du aufhören alles als Neutrum zu verwenden? Die pausierte Map und die Menübox. ;)
@Topic:
Füge im Script am Anfang von der Main Methode, Zeile 21 das hier ein:

Ruby Quellcode

1
@hintergund = Spriteset_Map.new
und ans Ende von der Main Methode, Zeile 50

Ruby Quellcode

1
@hintergund.dispose
Und schon hast du die Map als Hintergrund.
Um die Textboxen transparent zu machen veränder die Variable back_opacity.
Füge diesen Code über "#Execute transition" in der Main Methode vom Script ein:

Ruby Quellcode

1
2
3
@window_or.back_opacity = 100 # normal 255
@window_ur.back_opacity = 100 # normal 255
@command_window.back_opacity = 100 # normal 255
Die 100 kannst du dann Anpassen je nachdem wie die Transparenz seien soll.
Das letzte hab ich nicht verstanden, für wen die Einleitung? Für dich? Du musst doch nur im oberen Teil des Scriptes die MapID und die X und Y Position des Helden angeben, oder wie meinst du das? Wie der Code dazu ist kannst du im Script nachsehen ab Zeile 74.

5

Freitag, 31. Juli 2009, 20:58

Hallo Playm...
Klappt eigentlich soweit so gut...

NUR...Beim Pausieren sieht man Map trotzdem nicht. Stattdessen sieht man nur die Charsets in Map.

EDIT...
Es gibt einen Bug.
Auf einiges Maps sturtzt das Spiel komplett ab. Grund unbekannt.
Jetzt habe ich wieder diese Zeile rausgenommen:
-
@hintergund = Spriteset_Map.new
@hintergund.dispose

Jetzt sturtzt es nicht mehr ab. Dafür bleibt HIntergrund schwarz.
Spoiler
2 Projekte am Laufen!
RYUGAN - Beat'emUp
ProjectX - Thriller
zum Lesen den Text mit der Maus markieren
:beach:

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »IArts« (31. Juli 2009, 21:14)


6

Freitag, 31. Juli 2009, 21:42

Der Hintergrund bleibt schwarz, weil eben keine Grafik angegebn ist die er anzeigen könnte.
Der von dir entfernte Befehl lädt ja das Spriteset der Map und entfernt es später wieder.
Was genau klappt denn nicht? Ich versteh nicht was da schief läuft, er müsste eigentlich alles anzeigen. Ich kann nirgens einen Fehler sehen, gibt es eine Fehlermeldung?
Vermutlich liegt der Fehler bei deinem Spiel.

Kenai

Landsknecht

Motto: “Niemals aufgeben, bevor man nicht alles versucht hat.”

  • Nachricht senden

7

Samstag, 1. August 2009, 10:36

Anscheinend scheint er mit dem Scripteditor nicht wirklich klar zu kommen, ist es dann nicht ein bisschen viel verlangt, ihn mit Begriffen wie Methoden und main zu überfahren :D ?

@IArts: Ich habe es mal für dich zusammengebaut, ersetze das alte Script von Playm mit dem neuen. Evt. Credits natürlich an Playm - ich habe es nur für dich nach der Anleitung zusammengebaut :) . Also nichts großes...

Ansonsten kannst du wieder alles im Kopf ändern, so wie es Playm beschrieben hat :) .

Spoiler: Neues Menü von Playm

Ruby Quellcode

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
#===============================================================================
# Neues Menü von Playm
#===============================================================================
 
class Scene_Menu
  def initialize
    @steuerung = []
    # Wenn man auf beenden drückt,
    # Kommt man auf eine Map, mit
    # diesen Werten:
    @steuerung[0] = 1 # Map_ID
    @steuerung[1] = 7 # X Position
    @steuerung[2] = 9 # y Position
    # Die Fenster haben folgende Werte:
    # Fenster oben Rechts:
    @steuerung[3] = 256 # Fenster Breite
    # Fenster Text (oben rechts):
    @steuerung[4] = "Mein ultra Game =D"
    # Fenster unten Rechts:
    @steuerung[5] = 320 # Fenster Breite
    # Fenster Text (unten rechts):
    @steuerung[6] = "Text-Text-Text-Text-Text-Text"
  end
  def main
    # Make sprite set
    @spriteset = Spriteset_Map.new
    # Make command window
    @command_window = Window_Command.new(160, ["Weiter","Beenden"])
    @command_window.back_opacity = 160 # Default: 255
    # Make other windows
    @window_or = Window_Help.new(640-@steuerung[3],0,@steuerung[3],64)
    @window_or.set_text(@steuerung[4], 1)
    @window_or.back_opacity = 160 # Default: 255
    @window_ur = Window_Help.new(640-@steuerung[5],416,@steuerung[5],64)
    @window_ur.set_text(@steuerung[6], 1)
    @window_ur.back_opacity = 160 # Default: 255
    # 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 of sprite set
    @spriteset.dispose
    # Dispose of window
    @command_window.dispose
    @window_or.dispose
    @window_ur.dispose
  end
  def update
    # Update command window
    @command_window.update
    # If B button was pressed
    if Input.trigger?(Input::B)
 
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to map screen
      $scene = Scene_Map.new
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Branch by command window cursor position
      case @command_window.index
      when 0
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Map.new
        return
      when 1 
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Set up initial map position
        $game_map.setup(@steuerung[0])
        # Move player to initial position
        $game_player.moveto(@steuerung[1], @steuerung[2])
        # Refresh player
        $game_player.refresh
        # Run automatic change for BGM and BGS set with map
        $game_map.autoplay
        # Update map (run parallel process event)
        $game_map.update
        # Switch to map screen
        $scene = Scene_Map.new
      end
      return
    end
  end
end
 
#==============================================================================
# ** Window_Help
#==============================================================================
class Window_Help < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(x = 0, y = 0, w = 640, h = 64)
    super(x,y,w,h)
    self.contents = Bitmap.new(width - 32, height - 32)
  end
end
zum Lesen den Text mit der Maus markieren

~ Gruß Kenai
  • :doc: Neuigkeiten

    Sämtliche Projekte sind erst mal pausiert. Weitere Informationen findet ihr hier. (Stand: 21.12.2012).
  • :rmxp: Cursal Engine (Jump and Run Engine)

    Mit Hilfe der Cursal Engine (RCE) ist es möglich auf ziemlich einfache Weise „Jump and Run“-Projekte im RPG Maker XP zu entwerfen. Das Anlegen basiert auf Installations- und Updatepaketen sowie reinen Archiven für fortgeschrittene Benutzer. Die Version 2 (CE2) befindet sich bereits in Entwicklung. Interessiert? Dann lade dir die neuste Version herunter ;3!
  • BildAvatar

    Diese kleinen, netten und knuffigen Vögelchen nennen sich Hamachou und dürften einigen aus Skies of Arcadia bekannt sein. Ich habe diese Bilder weder selbst gezeichnet noch modelliert. Dennoch finde ich sie so knuffig, dass man sie einfach lieb haben muss und ich hoffe euch geht's genau so^^". Diese Grafiken sind wirklich rar und ich bin stolz sie im Web gefunden zu haben.

8

Samstag, 1. August 2009, 13:54

Vielen Dank an Playm & Kenai.
Jetzt stürzt es nicht mehr zusammen.

Anfangs stürzte es nur in bestimmten Maps, in denen sich viele Events abgespielt haben, ab.
Jetzt tut es nicht mehr.

Ein kleines Manko:
Angezeigte Pictures in Map werden, trotz pausiertem Menü, überlappt auf dem Menü, angezeigt.
Spoiler
2 Projekte am Laufen!
RYUGAN - Beat'emUp
ProjectX - Thriller
zum Lesen den Text mit der Maus markieren
:beach:

Kenai

Landsknecht

Motto: “Niemals aufgeben, bevor man nicht alles versucht hat.”

  • Nachricht senden

9

Samstag, 1. August 2009, 15:44

Ein kleines Manko:
Angezeigte Pictures in Map werden, trotz pausiertem Menü, überlappt auf dem Menü, angezeigt.

Jetzt sollte es gehen:

Spoiler: Bugfix

Ruby Quellcode

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
#===============================================================================
# Neues Menü von Playm
#===============================================================================
 
class Scene_Menu
  def initialize
    @steuerung = []
    # Wenn man auf beenden drückt,
    # Kommt man auf eine Map, mit
    # diesen Werten:
    @steuerung[0] = 1 # Map_ID
    @steuerung[1] = 7 # X Position
    @steuerung[2] = 9 # y Position
    # Die Fenster haben folgende Werte:
    # Fenster oben Rechts:
    @steuerung[3] = 256 # Fenster Breite
    # Fenster Text (oben rechts):
    @steuerung[4] = "Mein ultra Game =D"
    # Fenster unten Rechts:
    @steuerung[5] = 320 # Fenster Breite
    # Fenster Text (unten rechts):
    @steuerung[6] = "Text-Text-Text-Text-Text-Text"
  end
  def main
    # Make sprite set
    @spriteset = Spriteset_Map.new
    # Make command window
    @command_window = Window_Command.new(160, ["Weiter","Beenden"])
    @command_window.back_opacity = 160 # Default: 255
    @command_window.z = 9999
    # Make other windows
    @window_or = Window_Help.new(640-@steuerung[3],0,@steuerung[3],64)
    @window_or.set_text(@steuerung[4], 1)
    @window_or.back_opacity = 160 # Default: 255
    @window_or.z = 9999
    @window_ur = Window_Help.new(640-@steuerung[5],416,@steuerung[5],64)
    @window_ur.set_text(@steuerung[6], 1)
    @window_ur.back_opacity = 160 # Default: 255
    @window_ur.z = 9999
    # 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 of sprite set
    @spriteset.dispose
    # Dispose of window
    @command_window.dispose
    @window_or.dispose
    @window_ur.dispose
  end
  def update
    # Update command window
    @command_window.update
    # If B button was pressed
    if Input.trigger?(Input::B)
 
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to map screen
      $scene = Scene_Map.new
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Branch by command window cursor position
      case @command_window.index
      when 0
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Map.new
        return
      when 1 
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Set up initial map position
        $game_map.setup(@steuerung[0])
        # Move player to initial position
        $game_player.moveto(@steuerung[1], @steuerung[2])
        # Refresh player
        $game_player.refresh
        # Run automatic change for BGM and BGS set with map
        $game_map.autoplay
        # Update map (run parallel process event)
        $game_map.update
        # Switch to map screen
        $scene = Scene_Map.new
      end
      return
    end
  end
end
 
#==============================================================================
# ** Window_Help
#==============================================================================
class Window_Help < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(x = 0, y = 0, w = 640, h = 64)
    super(x,y,w,h)
    self.contents = Bitmap.new(width - 32, height - 32)
  end
end
zum Lesen den Text mit der Maus markieren

~ Gruß Kenai
  • :doc: Neuigkeiten

    Sämtliche Projekte sind erst mal pausiert. Weitere Informationen findet ihr hier. (Stand: 21.12.2012).
  • :rmxp: Cursal Engine (Jump and Run Engine)

    Mit Hilfe der Cursal Engine (RCE) ist es möglich auf ziemlich einfache Weise „Jump and Run“-Projekte im RPG Maker XP zu entwerfen. Das Anlegen basiert auf Installations- und Updatepaketen sowie reinen Archiven für fortgeschrittene Benutzer. Die Version 2 (CE2) befindet sich bereits in Entwicklung. Interessiert? Dann lade dir die neuste Version herunter ;3!
  • BildAvatar

    Diese kleinen, netten und knuffigen Vögelchen nennen sich Hamachou und dürften einigen aus Skies of Arcadia bekannt sein. Ich habe diese Bilder weder selbst gezeichnet noch modelliert. Dennoch finde ich sie so knuffig, dass man sie einfach lieb haben muss und ich hoffe euch geht's genau so^^". Diese Grafiken sind wirklich rar und ich bin stolz sie im Web gefunden zu haben.

10

Samstag, 1. August 2009, 22:58

Ja super!
Passt bestens. Läuft (noch) problemlos!

Vielen Dank euch zwei!
Spoiler
2 Projekte am Laufen!
RYUGAN - Beat'emUp
ProjectX - Thriller
zum Lesen den Text mit der Maus markieren
:beach:

Social Bookmarks