• Anmelden

Lucius

Ankömmling

  • »Lucius« ist der Autor dieses Themas

Motto: Musik ist der Schlüßel zum Herzen.

  • Nachricht senden

1

Dienstag, 23. Februar 2010, 22:03

Kleines Menüchen ^^

Hallihallohallöle in die Runde. ^^
Ich selber habe [natürlich] keine Ahnung vom Scripten und beherrsche nichtmal Grundladen [...].

Und in dem Standartmenü vom RPG XP sind mir viiiel zu viele Funktionen. Kann alles raus, brauch ich nicht.
Undzwar habe ich mir Folgendes überlegt :
Bild
[Da fehlt allerdings etwas : Unter der Grafik sollte vorhandenes Gold stehen. Bzw Geld, wie auch immer]

In meinem Spiel laufe ich nur mit einer Person rum, sodass ich auch die anderen nicht brauche.
Darüber hinaus auch kein equip, Status, usw usf. Lediglich "Gegenstände" und "Magie" wäre wichtig, wobei ich notfalls die Magie auch rauslassen könnte.
Wie das menü in etwa funktionieren sollte, steht in dem Bildchen selber. ^^
Falls es Fragen dazu gibt ... fragt einfach. ^^
Ich würd's spitze finden, wenn sich jemand dazu bereit erklären würde, da ich, wie gesagt, keine Ahnung davon habe.
Der Hintergrund soll stumpf dem gewählten Windowskin entsprechen.

Vielen Dank schonmal im Vorraus! =)

-Lucius
  • Down in Sorrow

    Spoiler: DiS


    Bild


    Story :
    ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    Charaktere :
    ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    Mapping :
    ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    Events :
    ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    Features :
    |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    Equip&Skills :
    ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

    zum Lesen den Text mit der Maus markieren
  • Langeweile? xD

    Bild
    Mein kleines Fungame. Es ist nicht gut gemappt, es hat keine Story und eventuell wird's auf Dauer langweilig - Aber! - Spring, was das Zeug hält! :epic:

Lucius

Ankömmling

  • »Lucius« ist der Autor dieses Themas

Motto: Musik ist der Schlüßel zum Herzen.

  • Nachricht senden

2

Dienstag, 2. März 2010, 17:33

Oh mein Gott ... falscher Thread ... bzw falscher bereich ... kann das verschoben werden, oder so?
Das sollte fürn den XP und nicht für den VX gemacht werden ... verdammt ... ^^" tut mir leid. :-|

zum RMXP? *schieb*
beim Nächstenmal einfach den Beitrag mit dem Meldebutton melden, anstatt eines doppelposts
- Playm
  • Down in Sorrow

    Spoiler: DiS


    Bild


    Story :
    ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    Charaktere :
    ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    Mapping :
    ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    Events :
    ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    Features :
    |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    Equip&Skills :
    ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

    zum Lesen den Text mit der Maus markieren
  • Langeweile? xD

    Bild
    Mein kleines Fungame. Es ist nicht gut gemappt, es hat keine Story und eventuell wird's auf Dauer langweilig - Aber! - Spring, was das Zeug hält! :epic:

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Playm« (2. März 2010, 17:33)


Reborn

hat beim Stromkonzern schon Rabatt

Motto: Wer noch was vom Wochenende weis, hat es nie erlebt!

  • Nachricht senden

3

Dienstag, 2. März 2010, 19:21

Hier hast du eins:
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
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
# Kleines Menüchen by Hindi
class Window_Base
  def draw_battler_graphic(actor, x, y)
    bitmap = RPG::Cache.battler(actor.character_name, actor.character_hue)
    cw = bitmap.width
    ch = bitmap.height
    src_rect = Rect.new(0, 0, cw, ch)
    self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  end
end
 
class Window_Small_Menu_Objects < Window_Selectable
  def initialize(x, y)
    super(x, y, 320, 400)
    @column_max = 1
    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
 
  def item
    return @data[self.index]
  end
 
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    # Add item
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        @data.push($data_items[i])
      end
    end
    # Also add weapons and items if outside of battle
    unless $game_temp.in_battle
      for i in 1...$data_weapons.size
        if $game_party.weapon_number(i) > 0
          @data.push($data_weapons[i])
        end
      end
      for i in 1...$data_armors.size
        if $game_party.armor_number(i) > 0
          @data.push($data_armors[i])
        end
      end
    end
    # If item count is not 0, make a bit map and draw all items
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(288, row_max * 32)
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end
 
  def draw_item(index)
    item = @data[index]
    case item
    when RPG::Item
      number = $game_party.item_number(item.id)
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    end
    if item.is_a?(RPG::Item) and
       $game_party.item_can_use?(item.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    x = 4
    y = index * 32
    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(item.icon_name)
    opacity = self.contents.font.color == normal_color ? 255 : 128
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
    self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
    self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
  end
 
  def update_help
    @help_window.set_text(self.item == nil ? "" : self.item.description)
  end
end
 
class Window_Small_Menu_Actor < Window_Base
  def initialize(actor, x, y)
    super(x, y, 320, 480)
    self.contents = Bitmap.new(288, 448)
    draw_actor_name(actor, 10, 10)
    draw_battler_graphic(actor, 160, 240)
  end
end
 
class Window_Small_Menu_Stats < Window_Base
  def initialize(actor, x, y)
    super(x, y, 320, 100)
    self.contents = Bitmap.new(288, 68)
    oy = self.contents.font.size
    self.contents.draw_text(10, 10, 155, oy, "HP:")
    self.contents.draw_text(10, 10 + oy + 3, 288, oy, "MP:")
    draw_actor_hp(actor, 160, 10)
    draw_actor_sp(actor, 160, 10 + oy + 3)
  end
end
 
class Small_Menu
  def initialize(id)
    @actor = $game_actors[id]
  end
 
  def main()
    @window_actor   = Window_Small_Menu_Actor.new(@actor, 0, 0)
    @window_stats   = Window_Small_Menu_Stats.new(@actor, 320, 0)
    @window_objects = Window_Small_Menu_Objects.new(320, 80)
    @window_traget  = Window_Target.new
    @window_traget.visible = false
    @window_traget.active = false
    Graphics.transition()
    loop do
      Graphics.update()
      Input.update()
      update()
      if $scene != self
        break
      end
    end
    Graphics.freeze()
    @window_actor.dispose()
    @window_stats.dispose()
    @window_objects.dispose()
    @window_traget.dispose()
  end
 
  def update()
    @window_actor.update()
    @window_stats.update()
    @window_objects.update()
    @window_traget.update()
    if @window_objects.active
      update_item()
      return
    end
    if @window_traget.active
      update_target()
      return
    end
  end
 
  def update_item()
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      return
    end
    if Input.trigger?(Input::C)
      @item = @window_objects.item
      unless @item.is_a?(RPG::Item)
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      unless $game_party.item_can_use?(@item.id)
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      $game_system.se_play($data_system.decision_se)
      if @item.scope >= 3
        @window_objects.active = false
        @window_traget.x = (@window_objects.index + 1) % 2 * 304
        @window_traget.visible = true
        @window_traget.active = true
        if @item.scope == 4 || @item.scope == 6
          @window_traget.index = -1
        else
          @window_traget.index = 0
        end
      else
        if @item.common_event_id > 0
          $game_temp.common_event_id = @item.common_event_id
          $game_system.se_play(@item.menu_se)
          if @item.consumable
            $game_party.lose_item(@item.id, 1)
            @window_objects.draw_item(@item_window.index)
          end
          $scene = Scene_Map.new
          return
        end
      end
      return
    end
  end
 
  def update_target
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      unless $game_party.item_can_use?(@item.id)
        @window_objects.refresh
      end
      @window_objects.active = true
      @window_traget.visible = false
      @window_traget.active = false
      return
    end
    if Input.trigger?(Input::C)
      if $game_party.item_number(@item.id) == 0
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      if @window_traget.index == -1
        used = false
        for i in $game_party.actors
          used |= i.item_effect(@item)
        end
      end
      if @window_traget.index >= 0
        target = $game_party.actors[@window_traget.index]
        used = target.item_effect(@item)
      end
      if used
        $game_system.se_play(@item.menu_se)
        if @item.consumable
          $game_party.lose_item(@item.id, 1)
          @window_objects.draw_item(@window_objects.index)
        end
        @window_traget.refresh
        if $game_party.all_dead?
          $scene = Scene_Gameover.new
          return
        end
        if @item.common_event_id > 0
          $game_temp.common_event_id = @item.common_event_id
          $scene = Scene_Map.new
          return
        end
      end
      unless used
        $game_system.se_play($data_system.buzzer_se)
      end
      return
    end
  end
end
zum Lesen den Text mit der Maus markieren

Spoiler: Anleitung
Mit $scene = Small_Menu.new(id) rufst du das Menu auf, bei ID musst du mit der ID des gewünschten Actors ersetzten.
zum Lesen den Text mit der Maus markieren


Wusste jetzt nicht genau was du mit Objekten meinst, also hab ich einfach alles eingefügt, bzw. es einfach gelassen.


EDIT: Hab jetzt erst grad gelesen, dass du noch was dazu haben willst... Is mir leider zu viel arbeit, aba vielleicht findest du ja jemand der mein Script noch fertig stellt.
Mehr als a Allgäuer ka a Mensch it wera.


Wie soll ich wissen was ich denke, bevor ich nicht höre was ich sage?


Spoiler: OpenSource-Projects
NES-Emulator - a simple NES-Emulator
ERDL - a embedded Ruby Interpreter with the abilltiy to render images with DirectX ERDL shall be 100% compatible to RPGXP-Ruby Scripts
zum Lesen den Text mit der Maus markieren

4

Dienstag, 2. März 2010, 19:31

Spoiler: @Hindi
uhm, es lohnt nicht dein Script fertig zu stellen, du machst viele unsinnige Sache, wie "in_battle?" Abfragen, oder überzeichnest doppelt eine Fläche, dir ist klar was die Methode 'draw_actor_hp()' alles beinhalted, oder? Es ist sinnvoller es nochmal selber zu schreiben ;)
zum Lesen den Text mit der Maus markieren

@Topic:
Wegen deinem Menü: Wie beendet man das Spiel? Brauchst du dafür keinen Menüpunkt?
Eine Battlergrafik ist selten über 120 Pixel hoch, der Bildschirm des RMXP 480 Pixel, also das Fenster mit der Battlergrafik wird ziemlich leer wirken. Und soll es kein Fenster geben was Iteminformationen und SKillinformationen anzeigt?
Mach am besten mal eine Maßstabstreue Skizze wenn es geht.

Ähnliche Themen

Social Bookmarks