• Anmelden

1

Mittwoch, 29. April 2009, 11:55

Mehr als 4 Gruppenmitglieder IM Kampf und System programmieren

Hallo zusammen,
bin neu hier aber schon viele nützliche Infos erhalten. Super Forum find ich.

Ich hab da ein ziemliches Problem... zwar kenn ich mich einigermasenn mit RGSS aus aber nur so rudimentäre Dinge um etwas zu verändern im kleinen Rahmen.
Mein Problem ist wohl etwas größer. Für mein geplantes Spiel wäre es ungeheuer vom Vorteil fürs Konzept (mittlerweile 36 Seiten, bin stolz drauf ^^) das ich 5, wenn möglich sogar 6 Gruppenmitglieder in der Gruppe habe, die auch am Kampf teilnehmen. Sie sollten auch im Menü zu sehen sein.
Leider übersteigt das meine Kenntnisse.
Das letzte was ich "fordern" würde, wäre n Script, mach lieber alles alleine damit ichs auch kapier und weiß was im Spiel und druherum abgeht. Hilfreich wären ein Paar Tipps wo ich im Script des Systems etwas ändern müsste und worauf man achten sollte.

Ich danke schon jezt allen Postern im Vorraus.
mfg Katarxis :)

Yuber

Seher

Motto: Die Welt zu beherrschen.

  • Nachricht senden

2

Mittwoch, 29. April 2009, 12:21

Was für ein Kampfsystem benutzt du denn?
Naja du könntest es dir einfach machen und ein Script nehmen was es schon gibt. Da kann man beliebig viele Kämpfer nehmen. Kann das aber von hier jetzt nicht suchen.

Selber machen ist schon schwierig wenn man nur wenig RGSS kann.
Nur noch selten hier.

'Til now, I always let people walk all over me!
From now on, if anyone makes fun of me, I'll kill 'em! Just like that!

3

Mittwoch, 29. April 2009, 13:13

Ich benutze und editiere zur Zeit das Conditional Turn-Based Battle (CTB) system von Charlie Lee
Ich lad sonst ma n paar Screens hoch.
Es ist das Kampfsystem aus Final Fantasy X, das mit taktisch immer am besten gefiehl und nicht mit Zeitleiste, sprich ATB, lief.
Ich progg es noch nach meinen Wünschen um, also brach keiner Sorgen hamm dass des nur wieder ein Klonspiel oder so wird.
Naja btt.
Also gegoogelt und gesucht hab ich mir schon n Wolf, aber in der Beziehung noch gar nix gefunden.
Wäre sonst nett wenn du oder wer anders mir n Link geben könnte.
mfg
»Katarxis« hat folgende Bilder angehängt:
  • pic1.JPG
  • pic2.JPG
»Katarxis« hat folgende Datei angehängt:

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Katarxis« (29. April 2009, 13:25)


Yuber

Seher

Motto: Die Welt zu beherrschen.

  • Nachricht senden

4

Mittwoch, 29. April 2009, 20:53

Meine Fresse ich hab schon das halbe rmxp.org abgegrasst aber finde dieses scheiss Script nicht mehr -.-"
Bisher nur das Large Party Script für Vx gefunden aber nicht das für XP. Man wie hieß das nochmal...

Wenn du Lust hast kann ja selbst auch mal schauen bei rmxp.org oder creationasylum.net

Hier so sehe das bei VX aus:
http://i4.photobucket.com/albums/y139/Fomar0153/VX/VX006.png


[b]Edit: So habe eins gefunden allerdings weiss ich nicht ob es kompatibel mit deinen Kampfsystem ist, für das StandartKS geht es jedenfalls!
Über Main einfügen musst einfach mal testen.
[/b]

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
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
#==============================================================================
# ** Large Party
#------------------------------------------------------------------------------
#  Author: Dargor
#  Version 1.3
#  02/08/2007
#==============================================================================
 
#==============================================================================
# ** Large Party Customization Module
#==============================================================================
 
module Dargor
  module Large_Party
    # Maximum number of actors allowed in the party
    Max_Size = 7
    # Battle status window refresh rate (used in phase5)
    Battle_Refresh_Rate = 64
  end
end
 
#==============================================================================
# ** Game_Temp
#------------------------------------------------------------------------------
#  This class handles temporary data that is not included with save data.
#  Refer to "$game_temp" for the instance of this class.
#==============================================================================
 
class Game_Temp
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :battle_actor_index  # @actor_index in battle scene
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  alias large_party_temp_initialize initialize
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    large_party_temp_initialize
    @battle_actor_index = 0
  end
end
 
#==============================================================================
# ** Game_Party
#------------------------------------------------------------------------------
#  This class handles the party. It includes information on amount of gold
#  and items. Refer to "$game_party" for the instance of this class.
#==============================================================================
 
class Game_Party
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :max_size   # Max number of actors allowed in the party
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  alias large_party_initialize initialize
  alias large_party_add_actor add_actor
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    large_party_initialize
    @max_size = Dargor::Large_Party::Max_Size
  end
  #--------------------------------------------------------------------------
  # * Add an Actor
  #     actor_id : actor ID
  #--------------------------------------------------------------------------
  def add_actor(actor_id)
    # Original method
    large_party_add_actor(actor_id)
    # Get actor
    actor = $game_actors[actor_id]
    # If the party has less than 4 members and this actor is not in the party
    if @actors.size < @max_size and not @actors.include?(actor)
      # Add actor
      @actors.push(actor)
      # Refresh player
      $game_player.refresh
    end
  end
end
 
#==============================================================================
# ** Sprite_Battler
#------------------------------------------------------------------------------
#  This sprite is used to display the battler.It observes the Game_Character
#  class and automatically changes sprite conditions.
#==============================================================================
 
class Sprite_Battler < RPG::Sprite
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  alias large_party_sprite_update update
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Original method
    large_party_sprite_update
    # Set sprite coordinates
    if @battler.is_a?(Game_Actor)
      self.x = @battler.screen_x - ($game_temp.battle_actor_index / 4) * 640
    end
  end
end
#==============================================================================
# ** Spriteset_Battle
#------------------------------------------------------------------------------
#  This class brings together battle screen sprites. It's used within
#  the Scene_Battle class.
#==============================================================================
 
class Spriteset_Battle
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  alias large_party_spriteset_update update
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Cycle through all extra actors (4+)
    # Create/update sprites
    for i in 4...$game_party.actors.size
      if @actor_sprites[i].nil?
        @actor_sprites.push(Sprite_Battler.new(@viewport2))
      end
      @actor_sprites[i].battler = $game_party.actors[i]
    end
    # Original method
    large_party_spriteset_update
  end
end
 
#==============================================================================
# ** Window_MenuStatus
#------------------------------------------------------------------------------
#  This window displays party member status on the menu screen.
#==============================================================================
 
class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  alias large_party_menu_status_initialize initialize
  alias large_party_menu_status_refresh refresh
  alias large_party_menu_status_update_cursor_rect update_cursor_rect
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    # Original method
    large_party_menu_status_initialize
    # Adjust contents height
    @item_max = $game_party.actors.size
    height = @item_max * 118
    self.contents = Bitmap.new(width - 32, height - 32)
    # Refresh
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh(*args)
    # Original method
    large_party_menu_status_refresh(*args)
    # Adjust default height
    self.height = 480
  end
  #--------------------------------------------------------------------------
  # * Cursor Rectangle Update
  #--------------------------------------------------------------------------
  def update_cursor_rect
    large_party_menu_status_update_cursor_rect
    row = @index / @column_max
    if row < self.top_row
      self.top_row = row
    end
    if row > self.top_row + (self.page_row_max - 1)
      self.top_row = row - (self.page_row_max - 1)
    end
    cursor_width = self.width / @column_max - 32
    x = @index % @column_max * (cursor_width + 32)
    y = @index / @column_max * 116 - self.oy
    self.cursor_rect.set(x, y, cursor_width, 96)
  end
  #--------------------------------------------------------------------------
  # * Top Row
  #--------------------------------------------------------------------------
  def top_row
    return self.oy / 116
  end
  #--------------------------------------------------------------------------
  # * Set Top Row
  #     row : new row
  #--------------------------------------------------------------------------
  def top_row=(row)
    if row < 0
      row = 0
    end
    if row > row_max - 1
      row = row_max - 1
    end
    self.oy = row * 116
  end
  #--------------------------------------------------------------------------
  # * Page Row Max
  #--------------------------------------------------------------------------
  def page_row_max
    return 4
  end
end
 
#==============================================================================
# ** Window_BattleStatus
#------------------------------------------------------------------------------
#  This window displays the status of all party members on the battle screen.
#==============================================================================
 
class Window_BattleStatus < Window_Base
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  alias large_party_battle_status_initialize initialize
  alias large_party_battle_status_refresh refresh
  alias large_party_battle_status_update update
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    @column_max = 4
    large_party_battle_status_initialize
    width = $game_party.actors.size * 160
    self.contents = Bitmap.new(width - 32, height - 32)
    self.width = 640
    @level_up_flags = []
    for i in 0...$game_party.actors.size
      @level_up_flags << false
    end
    @item_max = $game_party.actors.size
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    # Refresh contents when actors are added/removed in-battle
    if $game_party.actors.size != @item_max
      @item_max = $game_party.actors.size
      width = @item_max * 160
      self.contents = Bitmap.new(width - 32, height - 32)
      self.width = 640
    end
    large_party_battle_status_refresh
    column = $game_temp.battle_actor_index / 4
    self.ox = column * 640
  end
end
#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
#  This class performs battle screen processing.
#==============================================================================
 
class Scene_Battle
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  alias large_party_phase3_setup_command_window phase3_setup_command_window
  alias large_party_update_phase4_step2 update_phase4_step2
  alias large_party_start_phase5 start_phase5
  alias large_party_update_phase5 update_phase5
  #--------------------------------------------------------------------------
  # * Actor Command Window Setup
  #--------------------------------------------------------------------------
  def phase3_setup_command_window
    $game_temp.battle_actor_index = @actor_index
    @status_window.refresh
    large_party_phase3_setup_command_window
    @actor_command_window.x = (@actor_index%4) * 160
  end
  #--------------------------------------------------------------------------
  # * Frame Update (main phase step 2 : start action)
  #--------------------------------------------------------------------------
  def update_phase4_step2
    if @active_battler.is_a?(Game_Actor)
      $game_temp.battle_actor_index = @active_battler.index
      @status_window.refresh
    end
    large_party_update_phase4_step2
  end
  #--------------------------------------------------------------------------
  # * Start After Battle Phase
  #--------------------------------------------------------------------------
  def start_phase5
    @actor_index = 0
    @status_wait = Graphics.frame_count
    large_party_start_phase5
  end
  #--------------------------------------------------------------------------
  # * Frame Update (after battle phase)
  #--------------------------------------------------------------------------
  def update_phase5
    refresh_rate = Dargor::Large_Party::Battle_Refresh_Rate
    if Graphics.frame_count >= @status_wait + refresh_rate
      $game_temp.battle_actor_index = @actor_index
      @status_window.refresh
      @status_wait = Graphics.frame_count
      max = ($game_party.actors.size.to_f/4).ceil * 4
      @actor_index = (@actor_index+1) % max
    end
    large_party_update_phase5
  end
end
Nur noch selten hier.

'Til now, I always let people walk all over me!
From now on, if anyone makes fun of me, I'll kill 'em! Just like that!

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Yuber« (29. April 2009, 21:04)


5

Freitag, 1. Mai 2009, 00:18

also des schonma n gewaltiger Fortschritt auf mein Problem.
Vielen Dank für die Mühe :)

hmhm ich muss ma sehen, wie ich das ins CTB reinbasteln kann...
kann ja heiter werden ^^

auf jeden fall nochma danke :)

EDIT
also Die Party wird auf 5 aufgestockt, kurz nacht dem Laden des Battlescreens zeigt er sogar 5 Chars im Statusfenster an dann Fehlermeldung. Das wird! ^^

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Katarxis« (1. Mai 2009, 00:30)


Ähnliche Themen

Social Bookmarks