• Anmelden

1

Donnerstag, 24. November 2011, 00:03

Menüoption ändern 2.0

Hallo Leute, da bin ich wieder! :D
Und wie soll es anders sein, mit einer neuen Bitte.

Ich habe hier ein FF7 Menü gefunden, welches schon recht ordentlich ist, aber noch nicht ganz perfekt...jedenfalls nicht für mein Vorhaben.
Ich setze den Script hier als Spoiler mal rein.
Ich bräuchte genau zwei Änderungen, welche mich wirklich happy machen würden.
Spoiler
#*********************************************************
#Final Fantasy VII menu setup by AcedentProne
#*********************************************************
#To use:
#If you do not want Faces, go to line 94
#and change delete the # of draw_actor_graphic
#and put a # infront of draw_actor_face
#
#Create a new folder in the Characters folder, and call it Faces
#Adding faces: add a 80x80 picture with the same name as the characterset it
#corrosponds with in the Faces folder


#========================================
#¡ Window_Base
#--------------------------------------------------------------------------------
# Setting functions for the "Base"
#========================================


class Window_Base < Window

def draw_actor_face(actor, x, y)
face = RPG::Cache.character("Faces/" + actor.character_name, actor.character_hue)
fw = face.width
fh = face.height
src_rect = Rect.new(0, 0, fw, fh)
self.contents.blt(x - fw / 23, y - fh, face, src_rect)
end
end
def draw_actor_battler_graphic(actor, x, y)
bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_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

#========================================
#¡ Game_Map
#--------------------------------------------------------------------------------
# Setting functions for the Map
#========================================
class Game_Map

def name
$map_infos[@map_id]
end
end

#========================================
#¡ Window_Title
#--------------------------------------------------------------------------------
# Setting functions for the Title
#========================================
class Scene_Title
$map_infos = load_data("Data/MapInfos.rxdata")
for key in $map_infos.keys
$map_infos[key] = $map_infos[key].name
end
end




#==============================================================================
# ¡ Window_MenuStatus
#------------------------------------------------------------------------------
# Sets up the Choosing.
#==============================================================================

class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# Set up
#--------------------------------------------------------------------------
def initialize
super(0, 0, 560, 454)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Arial"
self.contents.font.size = 18
refresh
self.active = false
self.index = -1
end
#--------------------------------------------------------------------------
# Drawing Info on Screen
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
x = 94
y = i * 110
actor = $game_party.actors
# draw_actor_face(actor, 12, y + 90) #To get rid of the Face, put a "#" before the draw_ of this line
draw_actor_graphic(actor, 48, y + 65) #and delete the "#" infront of draw of this line
draw_actor_name(actor, x, y)
draw_actor_level(actor, x + 144, y)
draw_actor_state(actor, x + 280, y )
draw_actor_exp(actor, x+ 144, y + 38)
draw_actor_hp(actor, x, y + 38)
draw_actor_sp(actor, x, y + 58)

end
end
#--------------------------------------------------------------------------
# Update of Cursor
#--------------------------------------------------------------------------
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
else
self.cursor_rect.set(0, @index * 110, self.width - 32, 96)
end
end
end

#=======================================#
# ¡Window_GameStats #
# written by AcedentProne #
#------------------------------------------------------------------------------#

class Window_GameStats < Window_Base
def initialize
super(0, 0, 160, 60)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Arial"
self.contents.font.size = 18
refresh
end

def refresh
self.contents.clear
#Drawing gold into separate commas by Dubealex
case $game_party.gold
when 0..9999
gold = $game_party.gold
when 10000..99999
gold = $game_party.gold.to_s
array = gold.split(//)
gold = array[0].to_s+array[1].to_s+","+array[2].to_s+array[3].to_s+array[4].to_s
when 100000..999999
gold = $game_party.gold.to_s
array = gold.split(//)
gold = array[0].to_s+array[1].to_s+array[2].to_s+","+array[3].to_s+array[4].to_s+array[5].to_s
when 1000000..9999999
gold = $game_party.gold.to_s
array = gold.split(//)
gold = array[0].to_s+","+array[1].to_s+array[2].to_s+array[3].to_s+","+array[4].to_s+array[5].to_s+array[6].to_s
end
#Draw Gold
self.contents.font.color = system_color
gold_word = $data_system.words.gold.to_s
cx = contents.text_size(gold_word).width
cx2=contents.text_size(gold.to_s).width
self.contents.draw_text(4, 4, 120-cx-2, 32, gold_word)
self.contents.font.color = normal_color
self.contents.draw_text(124-cx2+1, 4, cx2, 32, gold.to_s, 2)
self.contents.font.color = system_color
# Draw "Time"
@total_sec = Graphics.frame_count / Graphics.frame_rate
hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
text = sprintf("%02d:%02d:%02d", hour, min, sec)
self.contents.font.color = normal_color
self.contents.draw_text(4, -10, 120, 32, text, 2)
self.contents.font.color = system_color
self.contents.draw_text(4, -10, 120, 32, "Time")
end
#--------------------------------------------------------------------------
# Update of The count
#--------------------------------------------------------------------------
def update
super
if Graphics.frame_count / Graphics.frame_rate != @total_sec
refresh
end
end
end

#==============================================================================
# ¡ Window_Mapname
#------------------------------------------------------------------------------
# @Draws the Map name
#==============================================================================

class Window_Mapname < Window_Base
#--------------------------------------------------------------------------
# Set up
#--------------------------------------------------------------------------
def initialize
super(0, 0, 320, 44)
self.contents = Bitmap.new(width - 52, height - 32)
self.contents.font.name = "Arial"
self.contents.font.size = 18
refresh
end
#--------------------------------------------------------------------------
# Draws info on screen
#--------------------------------------------------------------------------
def refresh
self.contents.clear

# Map Name
#map = $game_map.name
self.contents.font.color = system_color
self.contents.draw_text(4, -10, 220, 32, "Location")
self.contents.font.color = normal_color
self.contents.draw_text(175, -10, 80, 32, $game_map.name)
end
end

#==============================================================================
# ¡ Scene_Menu
#------------------------------------------------------------------------------
# FF7 menu layout as requested by AcedentProne.
#==============================================================================

class Scene_Menu
#--------------------------- edit-------------------------------
attr_reader :status_window
#/--------------------------- edit-------------------------------

def initialize(menu_index = 0)
@menu_index = menu_index
end
def main

s1 = $data_system.words.item
s2 = $data_system.words.skill
s3 = $data_system.words.equip
s4 = "Status"
s5 = "Save"
s6 = "Quit"


#--------------------------- edit-------------------------------
# Command menu
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6,])
@command_window.x = 640 - @command_window.width
@command_window.y = 480
@command_window.z = 110
@command_window.index = @menu_index
#If certain options are avaliable
if $game_party.actors.size == 0
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
if $game_system.save_disabled
@command_window.disable_item(4)
end
#Showing location window
@map = Window_Mapname.new
@map.x = 640 - @map.width
@map.y = 0 - @map.height - 1
@map.z = 110
#Showing the game stats
@game_stats_window = Window_GameStats.new
@game_stats_window.x = 0 - @game_stats_window.width
@game_stats_window.y = 480 - @map.height - @game_stats_window.height
@game_stats_window.z =110

#Showing the Menu Status window
@status_window = Window_MenuStatus.new
@status_window.x = 640
@status_window.y = 8
@status_window.z = 100


Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@command_window.dispose
@game_stats_window.dispose
@status_window.dispose
@map.dispose
end
#--------------------------------------------------------------------------
#Defining the delay
#--------------------------------------------------------------------------
def delay(seconds)
for i in 0...(seconds * 1)
sleep 0.01
Graphics.update
end
end
#--------------------------------------------------------------------------
# Updating
#--------------------------------------------------------------------------
def update
@command_window.update
@game_stats_window.update
@status_window.update
@map.update
#Moving Windows inplace
gamepos = 640 - @game_stats_window.width
mappos = 480 - @map.height - 1
if @command_window.y > 0
@command_window.y -= 60
end
if @game_stats_window.x < gamepos
@game_stats_window.x += 80
end
if @map.y < mappos
@map.y += 80
end
if @status_window.x > 0
@status_window.x -= 80
end
#Saying if options are active
if @command_window.active
update_command
return
end
if @status_window.active
update_status
return
end
end
#--------------------------------------------------------------------------
# Updating the Command Selection
#--------------------------------------------------------------------------
def update_command
# If B button is pushed
if Input.trigger?(Input::B)
# Plays assigned SE
$game_system.se_play($data_system.cancel_se)
#Looping for moving windows out
loop do
if @command_window.y < 480
@command_window.y += 40
end
if @game_stats_window.x > 0 - @game_stats_window.width
@game_stats_window.x -= 40
end
if @map.y > 0 - @map.height
@map.y -= 40
end
if @status_window.x < 640
@status_window.x += 40
end
delay(0.5)
if @status_window.x >= 640
break
end
end
# Go to Map
$scene = Scene_Map.new
return
end
# If C button is pused
if Input.trigger?(Input::C)
# Checks actor size
if $game_party.actors.size == 0 and @command_window.index < 4
# plays SE
$game_system.se_play($data_system.buzzer_se)
return
end
case @command_window.index
when 0
$game_system.se_play($data_system.decision_se)
loop do
if @command_window.y < 480
@command_window.y += 40
end
if @game_stats_window.x > 0 - @game_stats_window.width
@game_stats_window.x -= 40
end
if @map.y > 0 - @map.height
@map.y -= 40
end
if @status_window.x < 640
@status_window.x += 40
end
delay(0.5)
if @status_window.x >= 640
break
end
end
$scene = Scene_Item.new
when 1
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 2
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 3
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0

when 4
if $game_system.save_disabled
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
loop do
if @command_window.y < 480
@command_window.y += 40
end
if @game_stats_window.x > 0 - @game_stats_window.width
@game_stats_window.x -= 40
end
if @map.y > 0 - @map.height
@map.y -= 40
end
if @status_window.x < 640
@status_window.x += 40
end
delay(0.5)
if @status_window.x >= 640
break
end
end
$scene = Scene_Save.new
when 5
$game_system.se_play($data_system.decision_se)
loop do
if @command_window.y < 480
@command_window.y += 40
end
if @game_stats_window.x > 0 - @game_stats_window.width
@game_stats_window.x -= 40
end
if @map.y > 0 - @map.height
@map.y -= 40
end
if @status_window.x < 640
@status_window.x += 40
end
delay(0.5)
if @status_window.x >= 640
break
end
end
$scene = Scene_End.new
return
end
end
#--------------------------------------------------------------------------
# Updating Status Screen
#--------------------------------------------------------------------------
def update_status
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@status_window.active = false
@status_window.index = -1
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 1 # ƒXƒLƒ‹
# ‚±‚̃AƒNƒ^[‚̍s“®§ŒÀ‚ª 2 ˆÈã‚̏ꍇ
if $game_party.actors[@status_window.index].restriction >= 2
# ƒuƒU[ SE ‚ð‰‰‘t
$game_system.se_play($data_system.buzzer_se)
return
end
# Œˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒXƒLƒ‹‰æ–ʂɐ؂è‘Ö‚¦
$scene = Scene_Skill.new(@status_window.index)
when 2
$game_system.se_play($data_system.decision_se)
loop do
if @command_window.y < 480
@command_window.y += 40
end
if @game_stats_window.x > 0 - @game_stats_window.width
@game_stats_window.x -= 40
end
if @map.y > 0 - @map.height
@map.y -= 40
end
if @status_window.x < 640
@status_window.x += 40
end
delay(0.5)
if @status_window.x >= 640
break
end
end
$scene = Scene_Equip.new(@status_window.index)
when 3
$game_system.se_play($data_system.decision_se)
loop do
if @command_window.y < 480
@command_window.y += 40
end
if @game_stats_window.x > 0 - @game_stats_window.width
@game_stats_window.x -= 40
end
if @map.y > 0 - @map.height
@map.y -= 40
end
if @status_window.x < 640
@status_window.x += 40
end
delay(0.5)
if @status_window.x >= 640
break
end
end
$scene = Scene_Status.new(@status_window.index)
end
return
end
end
end
end
zum Lesen den Text mit der Maus markieren


Und zwar:

1) In dem Menü kann man ganz unten, unter der Zeit und dem Geld, die "LOCATION"-Anzeige sehen. Könnte sie jemand mal ganz entfernen?

2) Ich habe den Questlog 2 von Caesar in meinem Script-Editor intergriert (Da ich ihn komfortabler empfinde, als 3.0).
Könnte mir jemand die "SAVE"-Funktion durch das Questlog(Tagebuch) ersetzen?

Wäre echt gigantisch, wenn jemand den "manipulierten" Script, ebenfalls zurückspoilern könnte.

Danke schon mal für die tolle Unterstützung!!

Xemnas

Knappe

Motto: Angst schließt das Licht in Dunkelheit ein.

  • Nachricht senden

2

Freitag, 25. November 2011, 10:44

Hab mich mal versucht, hoffe das klappt. Hatte Probleme mit dem "Game stats" Fenster, ich schätze mal weil ich das nicht hab???

Xemnas

Spoiler

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
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
#*********************************************************
#Final Fantasy VII menu setup by AcedentProne
#*********************************************************
#To use:
#If you do not want Faces, go to line 94
#and change delete the # of draw_actor_graphic
#and put a # infront of draw_actor_face
#
#Create a new folder in the Characters folder, and call it Faces
#Adding faces: add a 80x80 picture with the same name as the characterset it
#corrosponds with in the Faces folder
 
 
#========================================
#¡ Window_Base
#--------------------------------------------------------------------------------
# Setting functions for the "Base"
#========================================
 
 
class Window_Base < Window
 
def draw_actor_face(actor, x, y)
face = RPG::Cache.character("Faces/" + actor.character_name, actor.character_hue)
fw = face.width
fh = face.height
src_rect = Rect.new(0, 0, fw, fh)
self.contents.blt(x - fw / 23, y - fh, face, src_rect)
end
end
def draw_actor_battler_graphic(actor, x, y)
bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_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
 
 
#========================================
#¡ Window_Title
#--------------------------------------------------------------------------------
# Setting functions for the Title
#========================================
class Scene_Title
$map_infos = load_data("Data/MapInfos.rxdata")
for key in $map_infos.keys
$map_infos[key] = $map_infos[key].name
end
end
 
 
 
 
#==============================================================================
# ¡ Window_MenuStatus
#------------------------------------------------------------------------------
# Sets up the Choosing.
#==============================================================================
 
class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# Set up
#--------------------------------------------------------------------------
def initialize
super(0, 0, 560, 454)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Arial"
self.contents.font.size = 18
refresh
self.active = false
self.index = -1
end
#--------------------------------------------------------------------------
# Drawing Info on Screen
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
x = 94
y = i * 110
actor = $game_party.actors
# draw_actor_face(actor, 12, y + 90) #To get rid of the Face, put a "#" before the draw_ of this line
draw_actor_graphic(actor, 48, y + 65) #and delete the "#" infront of draw of this line
draw_actor_name(actor, x, y)
draw_actor_level(actor, x + 144, y)
draw_actor_state(actor, x + 280, y )
draw_actor_exp(actor, x+ 144, y + 38)
draw_actor_hp(actor, x, y + 38)
draw_actor_sp(actor, x, y + 58)
 
end
end
#--------------------------------------------------------------------------
# Update of Cursor
#--------------------------------------------------------------------------
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
else
self.cursor_rect.set(0, @index * 110, self.width - 32, 96)
end
end
end
 
#=======================================#
# ¡Window_GameStats #
# written by AcedentProne #
#------------------------------------------------------------------------------#
 
class Window_GameStats < Window_Base
def initialize
super(0, 0, 160, 60)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Arial"
self.contents.font.size = 18
refresh
end
 
def refresh
self.contents.clear
#Drawing gold into separate commas by Dubealex
case $game_party.gold
when 0..9999
gold = $game_party.gold
when 10000..99999
gold = $game_party.gold.to_s
array = gold.split(//)
gold = array[0].to_s+array[1].to_s+","+array[2].to_s+array[3].to_s+array[4].to_s
when 100000..999999
gold = $game_party.gold.to_s
array = gold.split(//)
gold = array[0].to_s+array[1].to_s+array[2].to_s+","+array[3].to_s+array[4].to_s+array[5].to_s
when 1000000..9999999
gold = $game_party.gold.to_s
array = gold.split(//)
gold = array[0].to_s+","+array[1].to_s+array[2].to_s+array[3].to_s+","+array[4].to_s+array[5].to_s+array[6].to_s
end
#Draw Gold
self.contents.font.color = system_color
gold_word = $data_system.words.gold.to_s
cx = contents.text_size(gold_word).width
cx2=contents.text_size(gold.to_s).width
self.contents.draw_text(4, 4, 120-cx-2, 32, gold_word)
self.contents.font.color = normal_color
self.contents.draw_text(124-cx2+1, 4, cx2, 32, gold.to_s, 2)
self.contents.font.color = system_color
# Draw "Time"
@total_sec = Graphics.frame_count / Graphics.frame_rate
hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
text = sprintf("%02d:%02d:%02d", hour, min, sec)
self.contents.font.color = normal_color
self.contents.draw_text(4, -10, 120, 32, text, 2)
self.contents.font.color = system_color
self.contents.draw_text(4, -10, 120, 32, "Time")
end
#--------------------------------------------------------------------------
# Update of The count
#--------------------------------------------------------------------------
def update
super
if Graphics.frame_count / Graphics.frame_rate != @total_sec
refresh
end
end
end
 
#==============================================================================
# ¡ Scene_Menu
#------------------------------------------------------------------------------
# FF7 menu layout as requested by AcedentProne.
#==============================================================================
 
class Scene_Menu
#--------------------------- edit-------------------------------
attr_reader :status_window
#/--------------------------- edit-------------------------------
 
def initialize(menu_index = 0)
@menu_index = menu_index
end
def main
 
s1 = $data_system.words.item
s2 = $data_system.words.skill
s3 = $data_system.words.equip
s4 = "Status"
s5 = "Tagebuch"
s6 = "Quit"
 
 
#--------------------------- edit------------------------------- 
# Command menu
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6,])
@command_window.x = 640 - @command_window.width
@command_window.y = 480
@command_window.z = 110
@command_window.index = @menu_index
#If certain options are avaliable
if $game_party.actors.size == 0
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
if $game_system.save_disabled
@command_window.disable_item(4)
end
#Showing the game stats
@game_stats_window = Window_GameStats.new
@game_stats_window.x = 0 - @game_stats_window.width
@game_stats_window.y = 480 - @map.height - @game_stats_window.height
@game_stats_window.z =110
 
#Showing the Menu Status window
@status_window = Window_MenuStatus.new
@status_window.x = 640
@status_window.y = 8
@status_window.z = 100
 
 
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@command_window.dispose
@game_stats_window.dispose
@status_window.dispose
@map.dispose
end
#--------------------------------------------------------------------------
#Defining the delay
#--------------------------------------------------------------------------
def delay(seconds)
for i in 0...(seconds * 1)
sleep 0.01
Graphics.update
end
end
#--------------------------------------------------------------------------
# Updating
#--------------------------------------------------------------------------
def update
@command_window.update
@game_stats_window.update
@status_window.update
@map.update
#Moving Windows inplace
gamepos = 640 - @game_stats_window.width
mappos = 480 - @map.height - 1
if @command_window.y > 0
@command_window.y -= 60
end
if @game_stats_window.x < gamepos
@game_stats_window.x += 80
end
if @map.y < mappos
@map.y += 80
end
if @status_window.x > 0
@status_window.x -= 80
end
#Saying if options are active
if @command_window.active
update_command
return
end
if @status_window.active
update_status
return
end
end
#--------------------------------------------------------------------------
# Updating the Command Selection
#--------------------------------------------------------------------------
def update_command
# If B button is pushed
if Input.trigger?(Input::B)
# Plays assigned SE
$game_system.se_play($data_system.cancel_se)
#Looping for moving windows out
loop do
if @command_window.y < 480
@command_window.y += 40
end
if @game_stats_window.x > 0 - @game_stats_window.width
@game_stats_window.x -= 40
end
if @map.y > 0 - @map.height
@map.y -= 40
end
if @status_window.x < 640
@status_window.x += 40
end
delay(0.5)
if @status_window.x >= 640
break
end
end
# Go to Map
$scene = Scene_Map.new
return
end
# If C button is pused
if Input.trigger?(Input::C)
# Checks actor size
if $game_party.actors.size == 0 and @command_window.index < 4
# plays SE
$game_system.se_play($data_system.buzzer_se)
return
end
case @command_window.index
when 0 
$game_system.se_play($data_system.decision_se)
loop do
if @command_window.y < 480
@command_window.y += 40
end
if @game_stats_window.x > 0 - @game_stats_window.width
@game_stats_window.x -= 40
end
if @map.y > 0 - @map.height
@map.y -= 40
end
if @status_window.x < 640
@status_window.x += 40
end
delay(0.5)
if @status_window.x >= 640
break
end
end
$scene = Scene_Item.new
when 1
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 2 
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 3 
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
 
when 4  # Tagebuch
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to item screen
$scene = Scene_Questlog.new
when 5
$game_system.se_play($data_system.decision_se)
loop do
if @command_window.y < 480
@command_window.y += 40
end
if @game_stats_window.x > 0 - @game_stats_window.width
@game_stats_window.x -= 40
end
if @map.y > 0 - @map.height
@map.y -= 40
end
if @status_window.x < 640
@status_window.x += 40
end
delay(0.5)
if @status_window.x >= 640
break
end
end
$scene = Scene_End.new
return
end
end
#--------------------------------------------------------------------------
# Updating Status Screen
#--------------------------------------------------------------------------
def update_status
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@status_window.active = false
@status_window.index = -1
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 1 # ƒXƒLƒ‹
# ‚±‚̃AƒNƒ^[‚̍s“®§ŒÀ‚ª 2 ˆÈã‚̏ꍇ
if $game_party.actors[@status_window.index].restriction >= 2
# ƒuƒU[ SE ‚ð‰‰‘t
$game_system.se_play($data_system.buzzer_se)
return
end
# Œˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒXƒLƒ‹‰æ–ʂɐ؂è‘Ö‚¦
$scene = Scene_Skill.new(@status_window.index)
when 2
$game_system.se_play($data_system.decision_se)
loop do
if @command_window.y < 480
@command_window.y += 40
end
if @game_stats_window.x > 0 - @game_stats_window.width
@game_stats_window.x -= 40
end
if @map.y > 0 - @map.height
@map.y -= 40
end
if @status_window.x < 640
@status_window.x += 40
end
delay(0.5)
if @status_window.x >= 640
break
end
end
$scene = Scene_Equip.new(@status_window.index)
when 3
$game_system.se_play($data_system.decision_se)
loop do
if @command_window.y < 480
@command_window.y += 40
end
if @game_stats_window.x > 0 - @game_stats_window.width
@game_stats_window.x -= 40
end
if @map.y > 0 - @map.height
@map.y -= 40
end
if @status_window.x < 640
@status_window.x += 40
end
delay(0.5)
if @status_window.x >= 640
break
end
end
$scene = Scene_Status.new(@status_window.index)
end
return
end
end
end
end
zum Lesen den Text mit der Maus markieren
Auch in der tiefsten Dunkelheit scheint irgendwo ein Licht.

  • Projekte

    • :new: Titel
      Titel: Noch ohne Titel :D

      Plattform:
      :rmmv:
      Mapping:
      :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      Story:
      :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      Quest:
      :star-empty: :star-empty: :star-empty: :star-empty:
      Musik:
      :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
      Grafik:
      :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
      Gesamt:
      :star-half: :star-empty: :star-empty: :star-empty: :star-empty:

      Status: :hourglass:
    • The Legend of Zion
      Titel: The Legend of Zion

      Plattform:
      :rmxp:
      Mapping:
      :star: :star-empty: :star-empty: :star-empty: :star-empty:
      Story:
      :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      Quest:
      :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
      Musik:
      :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
      Grafik:
      :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
      Gesamt:
      :star-half: :star-empty: :star-empty: :star-empty: :star-empty:

      Status: :cross: Abgebrochen
  • Contest


3

Freitag, 25. November 2011, 19:27

Update

Hey Xemnas!

Habe leider keine gute Nachricht ;( .
Da ist irgendein Fehler. Ich schreibe dir die Fehlermeldung auf:
"Script ´MenüFF7 line 215: NoMethodError occurred. undefined method ´high´ for nil: NilClass"
Der Fehler muss in dieser Line sein, aber ich habe leider garkein Plan von RGSS.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »ViktorVega3000« (25. November 2011, 19:27)


4

Sonntag, 27. November 2011, 16:40

Probier mal dieses Script aus.Müsste eigentlich klappen.
Spoiler

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
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
#*********************************************************
#Final Fantasy VII menu setup by AcedentProne
#*********************************************************
#To use:
#If you do not want Faces, go to line 94
#and change delete the # of draw_actor_graphic
#and put a # infront of draw_actor_face
#
#Create a new folder in the Characters folder, and call it Faces
#Adding faces: add a 80x80 picture with the same name as the characterset it
#corrosponds with in the Faces folder
 
#========================================
#¡ Window_Base
#--------------------------------------------------------------------------------
# Setting functions for the "Base"
#========================================
 
class Window_Base < Window
def draw_actor_face(actor, x, y)
face = RPG::Cache.character("Faces/" + actor.character_name, actor.character_hue)
fw = face.width
fh = face.height
src_rect = Rect.new(0, 0, fw, fh)
self.contents.blt(x - fw / 23, y - fh, face, src_rect)
end
end
def draw_actor_battler_graphic(actor, x, y)
  bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_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
#========================================
#¡ Game_Map
#--------------------------------------------------------------------------------
# Setting functions for the Map
#========================================
class Game_Map
def name
$map_infos[@map_id]
end
end
#========================================
#¡ Window_Title
#--------------------------------------------------------------------------------
# Setting functions for the Title
#========================================
class Scene_Title
$map_infos = load_data("Data/MapInfos.rxdata")
for key in $map_infos.keys
$map_infos[key] = $map_infos[key].name
end
end
 
 
#==============================================================================
# ¡ Window_MenuStatus
#------------------------------------------------------------------------------
#  Sets up the Choosing.
#==============================================================================
class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# Set up
#--------------------------------------------------------------------------
def initialize
  super(0, 0, 560, 454)
  self.contents = Bitmap.new(width - 32, height - 32)
  self.contents.font.name = "Arial"
  self.contents.font.size = 18
  refresh
  self.active = false
  self.index = -1
end
#--------------------------------------------------------------------------
# Drawing Info on Screen
#--------------------------------------------------------------------------
def refresh
  self.contents.clear
  @item_max = $game_party.actors.size
  for i in 0...$game_party.actors.size
	x = 94
	y = i * 110
	actor = $game_party.actors[i]
	draw_actor_face(actor, 12, y + 90) #To get rid of the Face, put a "#" before the draw_ of this line
   # draw_actor_graphic(actor, 48, y + 65) #and delete the "#" infront of draw of this line
	draw_actor_name(actor, x, y)
	draw_actor_level(actor, x + 144, y)
	draw_actor_state(actor, x + 280, y )
	draw_actor_exp(actor, x+ 144, y + 38)
	draw_actor_hp(actor, x, y + 38)
	draw_actor_sp(actor, x, y + 58)
  end
end
#--------------------------------------------------------------------------
# Update of Cursor
#--------------------------------------------------------------------------
def update_cursor_rect
  if @index < 0
	self.cursor_rect.empty
  else
	self.cursor_rect.set(0, @index * 110, self.width - 32, 96)
  end
end
end
#=======================================#
# ¡Window_GameStats                                                         	#
# written by AcedentProne                                                      	#
#------------------------------------------------------------------------------#
class Window_GameStats < Window_Base
def initialize
 super(0, 0, 160, 60)
 self.contents = Bitmap.new(width - 32, height - 32)
 self.contents.font.name = "Arial"
 self.contents.font.size = 18
 refresh
end
def refresh
 self.contents.clear
 #Drawing gold into separate commas by Dubealex
 case $game_party.gold
   when 0..9999
 	gold = $game_party.gold
   when 10000..99999
 	gold = $game_party.gold.to_s
 	array = gold.split(//)
 	gold = array[0].to_s+array[1].to_s+","+array[2].to_s+array[3].to_s+array[4].to_s
   when 100000..999999
 	gold = $game_party.gold.to_s
 	array = gold.split(//)
 	gold = array[0].to_s+array[1].to_s+array[2].to_s+","+array[3].to_s+array[4].to_s+array[5].to_s
   when 1000000..9999999
 	gold = $game_party.gold.to_s
 	array = gold.split(//)
 	gold = array[0].to_s+","+array[1].to_s+array[2].to_s+array[3].to_s+","+array[4].to_s+array[5].to_s+array[6].to_s
   end
#Draw Gold
 self.contents.font.color = system_color
 gold_word = $data_system.words.gold.to_s
 cx = contents.text_size(gold_word).width
 cx2=contents.text_size(gold.to_s).width
 self.contents.draw_text(4, 4, 120-cx-2, 32, gold_word)
 self.contents.font.color = normal_color
 self.contents.draw_text(124-cx2+1, 4, cx2, 32, gold.to_s, 2)
 self.contents.font.color = system_color
 # Draw "Time"
 @total_sec = Graphics.frame_count / Graphics.frame_rate
 hour = @total_sec / 60 / 60
 min = @total_sec / 60 % 60
 sec = @total_sec % 60
 text = sprintf("%02d:%02d:%02d", hour, min, sec)
 self.contents.font.color = normal_color
 self.contents.draw_text(4, -10, 120, 32, text, 2)
self.contents.font.color = system_color
 self.contents.draw_text(4, -10, 120, 32, "Zeit")
end
#--------------------------------------------------------------------------
# Update of The count
#--------------------------------------------------------------------------
def update
 super
 if Graphics.frame_count / Graphics.frame_rate != @total_sec
   refresh
 end
end
end
class Window_Mapname < Window_Base
end
class Scene_Menu
#--------------------------- edit-------------------------------
attr_reader :status_window
#/--------------------------- edit-------------------------------
def initialize(menu_index = 0)
 @menu_index = menu_index
end
def main
 
	s1 = $data_system.words.item
	s2 = $data_system.words.skill
	s3 = $data_system.words.equip
	s4 = "Status"
	s5 = "Questbuch"
	s6 = "Ende"
 
 #--------------------------- edit-------------------------------  
 # Command menu
   @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6,])
 @command_window.x = 640 - @command_window.width
 @command_window.y = 480
 @command_window.z = 110
 @command_window.index = @menu_index
 #If certain options are avaliable
 if $game_party.actors.size == 0
   @command_window.disable_item(0)
   @command_window.disable_item(1)
   @command_window.disable_item(2)
   @command_window.disable_item(3)
 end
 if $game_system.save_disabled
   @command_window.disable_item(4)
 end
 #Showing the game stats
 @game_stats_window = Window_GameStats.new
 @game_stats_window.x = 0 - @game_stats_window.width
 @game_stats_window.y = 555 - @game_stats_window.width
 @game_stats_window.z =110
 
 #Showing the Menu Status window
 @status_window = Window_MenuStatus.new
 @status_window.x = 640
 @status_window.y = 8
 @status_window.z = 100
 
 Graphics.transition
 loop do
   Graphics.update
   Input.update
   update
   if $scene != self
 	break
   end
 end
 Graphics.freeze
 @command_window.dispose
 @game_stats_window.dispose
 @status_window.dispose
 end
#--------------------------------------------------------------------------
#Defining the delay
#--------------------------------------------------------------------------
def delay(seconds)
 for i in 0...(seconds * 1)
   sleep 0.01
   Graphics.update
 end
end
#--------------------------------------------------------------------------
# Updating
#--------------------------------------------------------------------------
def update
 @command_window.update
 @game_stats_window.update
 @status_window.update
#Moving Windows inplace
 gamepos = 640 - @game_stats_window.width
 if @command_window.y > 0
 @command_window.y -= 60
end
 if @game_stats_window.x < gamepos
 @game_stats_window.x += 80
end
 if @status_window.x > 0
   @status_window.x -= 80
 end
 #Saying if options are active
 if @command_window.active
   update_command
   return
 end
 if @status_window.active
   update_status
   return
 end
end
#--------------------------------------------------------------------------
# Updating the Command Selection
#--------------------------------------------------------------------------
def update_command
 # If B button is pushed
 if Input.trigger?(Input::B)
   # Plays assigned SE
   $game_system.se_play($data_system.cancel_se)
   #Looping for moving windows out
	loop do
 	if @command_window.y < 480
  	@command_window.y += 40
 	end
 	if @game_stats_window.x > 0 - @game_stats_window.width
  	@game_stats_window.x -= 40
 	end
 	if @map.y > 0 - @map.height
  	@map.y -= 40
 	end
 	if @status_window.x < 640
  	@status_window.x += 40
 	end
 	delay(0.5)
 	if @status_window.x >= 640
  	break
	end
   end
  # Go to Map
 $scene = Scene_Map.new
   return
 end
 # If C button is pused
 if Input.trigger?(Input::C)
   # Checks actor size
   if $game_party.actors.size == 0 and @command_window.index < 4
 	# plays SE
 	$game_system.se_play($data_system.buzzer_se)
 	return
   end
   case @command_window.index
   when 0  
 	$game_system.se_play($data_system.decision_se)
 	loop do
 	if @command_window.y < 480
  	@command_window.y += 40
 	end
 	if @game_stats_window.x > 0 - @game_stats_window.width
  	@game_stats_window.x -= 40
 	end
	if @status_window.x < 640
  	@status_window.x += 40
 	end
 	delay(0.5)
 	if @status_window.x >= 640
  	break
	end
   end
 	$scene = Scene_Item.new
   when 1
 	$game_system.se_play($data_system.decision_se)
 	@command_window.active = false
 	@status_window.active = true
 	@status_window.index = 0
  	when 2  
    	$game_system.se_play($data_system.decision_se)
    	@command_window.active = false
    	@status_window.active = true
    	@status_window.index = 0
   when 3  
 	$game_system.se_play($data_system.decision_se)
 	@command_window.active = false
 	@status_window.active = true
 	@status_window.index = 0
   when 4
 	if $game_system.save_disabled
   	$game_system.se_play($data_system.buzzer_se)
   	return
 	end
 	$game_system.se_play($data_system.decision_se)
 	loop do
 	if @command_window.y < 480
  	@command_window.y += 40
 	end
 	if @game_stats_window.x > 0 - @game_stats_window.width
  	@game_stats_window.x -= 40
 	end
 
 	if @status_window.x < 640
  	@status_window.x += 40
 	end
 	delay(0.5)
 	if @status_window.x >= 640
  	break
	end
   end
	$scene = Scene_Questlog.new
      	when 5
 	$game_system.se_play($data_system.decision_se)
 	loop do
 	if @command_window.y < 480
  	@command_window.y += 40
 	end
 	if @game_stats_window.x > 0 - @game_stats_window.width
  	@game_stats_window.x -= 40
 	end
	if @status_window.x < 640
  	@status_window.x += 40
 	end
 	delay(0.5)
 	if @status_window.x >= 640
  	break
	end
   end
  	$scene = Scene_End.new
   return
 end
end
#--------------------------------------------------------------------------
# Updating Status Screen
#--------------------------------------------------------------------------
def update_status
 if Input.trigger?(Input::B)
   $game_system.se_play($data_system.cancel_se)
   @command_window.active = true
   @status_window.active = false
   @status_window.index = -1
   return
 end
 if Input.trigger?(Input::C)
   case @command_window.index
    	when 1  # ƒXƒLƒ‹
    	# ‚±‚̃AƒNƒ^[‚̍s“®§ŒÀ‚ª 2 ˆÈã‚̏ꍇ
    	if $game_party.actors[@status_window.index].restriction >= 2
      	# ƒuƒU[ SE ‚ð‰‰‘t
      	$game_system.se_play($data_system.buzzer_se)
      	return
    	end
    	# Œˆ’è SE ‚ð‰‰‘t
    	$game_system.se_play($data_system.decision_se)
    	# ƒXƒLƒ‹‰æ–ʂɐ؂è‘Ö‚¦
    	$scene = Scene_Skill.new(@status_window.index)
    	when 2
 	$game_system.se_play($data_system.decision_se)
 	loop do
 	if @command_window.y < 480
  	@command_window.y += 40
 	end
 	if @game_stats_window.x > 0 - @game_stats_window.width
  	@game_stats_window.x -= 40
 	end
 	if @status_window.x < 640
  	@status_window.x += 40
 	end
 	delay(0.5)
 	if @status_window.x >= 640
  	break
	end
   end
 	$scene = Scene_Equip.new(@status_window.index)
   when 3
 	$game_system.se_play($data_system.decision_se)
 	loop do
 	if @command_window.y < 480
  	@command_window.y += 40
 	end
 	if @game_stats_window.x > 0 - @game_stats_window.width
  	@game_stats_window.x -= 40
 	end
 	if @status_window.x < 640
  	@status_window.x += 40
 	end
 	delay(0.5)
 	if @status_window.x >= 640
  	break
	end
   end
 	$scene = Scene_Status.new(@status_window.index)
   end
   return
 end
end
end
end
zum Lesen den Text mit der Maus markieren

PS: Im Questlog 2.0 Script solltest du noch ab Zeile 40 wo steht :
$scene = Scene_Menu.new in $scene = Scene_Menu.new(4) umändern.
MFG
Realität ist auch nur eine Art von Rollenspiel.

5

Sonntag, 27. November 2011, 18:39

Hallo Asandril!

Wenn ich das Menü über ESC aufrufen will, erscheint folgendes: "Unable to find file Graphics/Characters/Faces/(Name meines Helden)".
Was ich nicht verstehe: Wieso will er ein Face finden, obwohl ich garkeine benutze und der XP meiner Meinung nach, auch keine Faces standartmässig benutzt?

Asandril, falls du eine Idee hast...

6

Sonntag, 27. November 2011, 20:37

Mhmm....
Setze in Zeile 86 vor

Ruby Quellcode

1
draw_actor_face
ein #.
In Zeile 87 entfernst du es dagegen.
Nun sollte das Menü eigentlich funktionieren.

MfG Lyro
Bild

7

Freitag, 2. Dezember 2011, 08:03

Na ja gut . Aber wo liegt das Problem ein Char Bild mit anzuzeigen.
Ich stell dir jetzt mal eine Demo ein, wie das ganze normalerweise aussieht.
Was du damit anfängst ist deine Sache.
Demo:
FF7-Menu.rar

EDIT:
Hier habe ich jetzt ein Script eingestellt, ohne das Char Face im Menu.
Vielleicht kannst du das ganze ja so gebrauchen.
Spoiler

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
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
#*********************************************************
#Final Fantasy VII menu setup by AcedentProne
#*********************************************************
#To use:
#If you do not want Faces, go to line 94
#and change delete the # of draw_actor_graphic
#and put a # infront of draw_actor_face
#
#Create a new folder in the Characters folder, and call it Faces
#Adding faces: add a 80x80 picture with the same name as the characterset it
#corrosponds with in the Faces folder
 
#========================================
#¡ Window_Base
#--------------------------------------------------------------------------------
# Setting functions for the "Base"
#========================================
 
class Window_Base < Window
 
def draw_actor_face(actor, x, y)
face = RPG::Cache.character("Faces/" + actor.character_name, actor.character_hue)
fw = face.width
fh = face.height
src_rect = Rect.new(0, 0, fw, fh)
self.contents.blt(x - fw / 23, y - fh, face, src_rect)
end
end
def draw_actor_battler_graphic(actor, x, y)
bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_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
 
#========================================
#¡ Game_Map
#--------------------------------------------------------------------------------
# Setting functions for the Map
#========================================
class Game_Map
 
def name
$map_infos[@map_id]
end
end
 
#========================================
#¡ Window_Title
#--------------------------------------------------------------------------------
# Setting functions for the Title
#========================================
class Scene_Title
$map_infos = load_data("Data/MapInfos.rxdata")
for key in $map_infos.keys
$map_infos[key] = $map_infos[key].name
end
end
 
 
 
 
#==============================================================================
# ¡ Window_MenuStatus
#------------------------------------------------------------------------------
# Sets up the Choosing.
#==============================================================================
 
class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# Set up
#--------------------------------------------------------------------------
def initialize
super(0, 0, 560, 454)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Arial"
self.contents.font.size = 18
refresh
self.active = false
self.index = -1
end
#--------------------------------------------------------------------------
# Drawing Info on Screen
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
x = 94
y = i * 110
actor = $game_party.actors[i]
# draw_actor_face(actor, 12, y + 90) #To get rid of the Face, put a "#" before the draw_ of this line
draw_actor_graphic(actor, 48, y + 65) #and delete the "#" infront of draw of this line
draw_actor_name(actor, x, y)
draw_actor_level(actor, x + 144, y)
draw_actor_state(actor, x + 280, y )
draw_actor_exp(actor, x+ 144, y + 38)
draw_actor_hp(actor, x, y + 38)
draw_actor_sp(actor, x, y + 58)
 
end
end
#--------------------------------------------------------------------------
# Update of Cursor
#--------------------------------------------------------------------------
def update_cursor_rect
  if @index < 0
	self.cursor_rect.empty
  else
	self.cursor_rect.set(0, @index * 110, self.width - 32, 96)
  end
end
end
#=======================================#
# ¡Window_GameStats                                                     		#
# written by AcedentProne                                                  		#
#------------------------------------------------------------------------------#
class Window_GameStats < Window_Base
def initialize
 super(0, 0, 160, 60)
 self.contents = Bitmap.new(width - 32, height - 32)
 self.contents.font.name = "Arial"
 self.contents.font.size = 18
 refresh
end
def refresh
 self.contents.clear
 #Drawing gold into separate commas by Dubealex
 case $game_party.gold
   when 0..9999
 	gold = $game_party.gold
   when 10000..99999
 	gold = $game_party.gold.to_s
 	array = gold.split(//)
 	gold = array[0].to_s+array[1].to_s+","+array[2].to_s+array[3].to_s+array[4].to_s
   when 100000..999999
 	gold = $game_party.gold.to_s
 	array = gold.split(//)
 	gold = array[0].to_s+array[1].to_s+array[2].to_s+","+array[3].to_s+array[4].to_s+array[5].to_s
   when 1000000..9999999
 	gold = $game_party.gold.to_s
 	array = gold.split(//)
 	gold = array[0].to_s+","+array[1].to_s+array[2].to_s+array[3].to_s+","+array[4].to_s+array[5].to_s+array[6].to_s
   end
#Draw Gold
 self.contents.font.color = system_color
 gold_word = $data_system.words.gold.to_s
 cx = contents.text_size(gold_word).width
 cx2=contents.text_size(gold.to_s).width
 self.contents.draw_text(4, 4, 120-cx-2, 32, gold_word)
 self.contents.font.color = normal_color
 self.contents.draw_text(124-cx2+1, 4, cx2, 32, gold.to_s, 2)
 self.contents.font.color = system_color
 # Draw "Time"
 @total_sec = Graphics.frame_count / Graphics.frame_rate
 hour = @total_sec / 60 / 60
 min = @total_sec / 60 % 60
 sec = @total_sec % 60
 text = sprintf("%02d:%02d:%02d", hour, min, sec)
 self.contents.font.color = normal_color
 self.contents.draw_text(4, -10, 120, 32, text, 2)
self.contents.font.color = system_color
 self.contents.draw_text(4, -10, 120, 32, "Zeit")
end
#--------------------------------------------------------------------------
# Update of The count
#--------------------------------------------------------------------------
def update
 super
 if Graphics.frame_count / Graphics.frame_rate != @total_sec
   refresh
 end
end
end
class Window_Mapname < Window_Base
end
class Scene_Menu
#--------------------------- edit-------------------------------
attr_reader :status_window
#/--------------------------- edit-------------------------------
def initialize(menu_index = 0)
 @menu_index = menu_index
end
def main
 
	s1 = $data_system.words.item
	s2 = $data_system.words.skill
	s3 = $data_system.words.equip
	s4 = "Status"
	s5 = "Questbuch"
	s6 = "Ende"
 
 #--------------------------- edit-------------------------------  
 # Command menu
   @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6,])
 @command_window.x = 640 - @command_window.width
 @command_window.y = 480
 @command_window.z = 110
 @command_window.index = @menu_index
 #If certain options are avaliable
 if $game_party.actors.size == 0
   @command_window.disable_item(0)
   @command_window.disable_item(1)
   @command_window.disable_item(2)
   @command_window.disable_item(3)
 end
 if $game_system.save_disabled
   @command_window.disable_item(4)
 end
 #Showing the game stats
 @game_stats_window = Window_GameStats.new
 @game_stats_window.x = 0 - @game_stats_window.width
 @game_stats_window.y = 555 - @game_stats_window.width
 @game_stats_window.z =110
 
 #Showing the Menu Status window
 @status_window = Window_MenuStatus.new
 @status_window.x = 640
 @status_window.y = 8
 @status_window.z = 100
 
 Graphics.transition
 loop do
   Graphics.update
   Input.update
   update
   if $scene != self
 	break
   end
 end
 Graphics.freeze
 @command_window.dispose
 @game_stats_window.dispose
 @status_window.dispose
 end
#--------------------------------------------------------------------------
#Defining the delay
#--------------------------------------------------------------------------
def delay(seconds)
 for i in 0...(seconds * 1)
   sleep 0.01
   Graphics.update
 end
end
#--------------------------------------------------------------------------
# Updating
#--------------------------------------------------------------------------
def update
 @command_window.update
 @game_stats_window.update
 @status_window.update
#Moving Windows inplace
 gamepos = 640 - @game_stats_window.width
 if @command_window.y > 0
 @command_window.y -= 60
end
 if @game_stats_window.x < gamepos
 @game_stats_window.x += 80
end
 if @status_window.x > 0
   @status_window.x -= 80
 end
 #Saying if options are active
 if @command_window.active
   update_command
   return
 end
 if @status_window.active
   update_status
   return
 end
end
#--------------------------------------------------------------------------
# Updating the Command Selection
#--------------------------------------------------------------------------
def update_command
 # If B button is pushed
 if Input.trigger?(Input::B)
   # Plays assigned SE
   $game_system.se_play($data_system.cancel_se)
   #Looping for moving windows out
	loop do
 	if @command_window.y < 480
  	@command_window.y += 40
 	end
 	if @game_stats_window.x > 0 - @game_stats_window.width
  	@game_stats_window.x -= 40
 	end
 	 	if @status_window.x < 640
  	@status_window.x += 40
 	end
 	delay(0.5)
 	if @status_window.x >= 640
  	break
	end
   end
  # Go to Map
 $scene = Scene_Map.new
   return
 end
 # If C button is pused
 if Input.trigger?(Input::C)
   # Checks actor size
   if $game_party.actors.size == 0 and @command_window.index < 4
 	# plays SE
 	$game_system.se_play($data_system.buzzer_se)
 	return
   end
   case @command_window.index
   when 0  
 	$game_system.se_play($data_system.decision_se)
 	loop do
 	if @command_window.y < 480
  	@command_window.y += 40
 	end
 	if @game_stats_window.x > 0 - @game_stats_window.width
  	@game_stats_window.x -= 40
 	end
	if @status_window.x < 640
  	@status_window.x += 40
 	end
 	delay(0.5)
 	if @status_window.x >= 640
  	break
	end
   end
 	$scene = Scene_Item.new
   when 1
 	$game_system.se_play($data_system.decision_se)
 	@command_window.active = false
 	@status_window.active = true
 	@status_window.index = 0
  	when 2  
		$game_system.se_play($data_system.decision_se)
		@command_window.active = false
		@status_window.active = true
		@status_window.index = 0
   when 3  
 	$game_system.se_play($data_system.decision_se)
 	@command_window.active = false
 	@status_window.active = true
 	@status_window.index = 0
   when 4
 	if $game_system.save_disabled
   	$game_system.se_play($data_system.buzzer_se)
   	return
 	end
 	$game_system.se_play($data_system.decision_se)
 	loop do
 	if @command_window.y < 480
  	@command_window.y += 40
 	end
 	if @game_stats_window.x > 0 - @game_stats_window.width
  	@game_stats_window.x -= 40
 	end
 
 	if @status_window.x < 640
  	@status_window.x += 40
 	end
 	delay(0.5)
 	if @status_window.x >= 640
  	break
	end
   end
	$scene = Scene_Questlog.new
  		when 5
 	$game_system.se_play($data_system.decision_se)
 	loop do
 	if @command_window.y < 480
  	@command_window.y += 40
 	end
 	if @game_stats_window.x > 0 - @game_stats_window.width
  	@game_stats_window.x -= 40
 	end
	if @status_window.x < 640
  	@status_window.x += 40
 	end
 	delay(0.5)
 	if @status_window.x >= 640
  	break
	end
   end
  	$scene = Scene_End.new
   return
 end
end
#--------------------------------------------------------------------------
# Updating Status Screen
#--------------------------------------------------------------------------
def update_status
 if Input.trigger?(Input::B)
   $game_system.se_play($data_system.cancel_se)
   @command_window.active = true
   @status_window.active = false
   @status_window.index = -1
   return
 end
 if Input.trigger?(Input::C)
   case @command_window.index
		when 1  # ƒXƒLƒ‹
		# ‚±‚̃AƒNƒ^[‚̍s“®§ŒÀ‚ª 2 ˆÈã‚̏ꍇ
		if $game_party.actors[@status_window.index].restriction >= 2
  		# ƒuƒU[ SE ‚ð‰‰‘t
  		$game_system.se_play($data_system.buzzer_se)
  		return
		end
		# Œˆ’è SE ‚ð‰‰‘t
		$game_system.se_play($data_system.decision_se)
		# ƒXƒLƒ‹‰æ–ʂɐ؂è‘Ö‚¦
		$scene = Scene_Skill.new(@status_window.index)
		when 2
 	$game_system.se_play($data_system.decision_se)
 	loop do
 	if @command_window.y < 480
  	@command_window.y += 40
 	end
 	if @game_stats_window.x > 0 - @game_stats_window.width
  	@game_stats_window.x -= 40
 	end
 	if @status_window.x < 640
  	@status_window.x += 40
 	end
 	delay(0.5)
 	if @status_window.x >= 640
  	break
	end
   end
 	$scene = Scene_Equip.new(@status_window.index)
   when 3
 	$game_system.se_play($data_system.decision_se)
 	loop do
 	if @command_window.y < 480
  	@command_window.y += 40
 	end
 	if @game_stats_window.x > 0 - @game_stats_window.width
  	@game_stats_window.x -= 40
 	end
 	if @status_window.x < 640
  	@status_window.x += 40
 	end
 	delay(0.5)
 	if @status_window.x >= 640
  	break
	end
   end
 	$scene = Scene_Status.new(@status_window.index)
   end
   return
 end
end
end
end
zum Lesen den Text mit der Maus markieren


Den Aufruf für das Questlog findest du in Zeile 366 : $scene = Scene_Questlog.new

MFG
Realität ist auch nur eine Art von Rollenspiel.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Asandril« (2. Dezember 2011, 08:02)


8

Donnerstag, 15. Dezember 2011, 22:00

@Asandril:
Du bist der beste! Alles funktioniert, wie es soll. Sorry, dass ich so spät antworte.
Theoretisch müsste dein manipuliertes FF7-Script auch mit dem Questlog 3.0 von Caesar gehen, oder?
Wenn nicht, ist nicht wild... bin schon so happy!
Danke vielmals!!

Auch an die Anderen, vielen Dank für Eure Hilfe!

Ähnliche Themen

Social Bookmarks