• Anmelden

Nerbert

Schlitzohr

  • »Nerbert« ist der Autor dieses Themas

Motto: Power is nothing without control. Just livin' my dreams.

  • Nachricht senden

1

Samstag, 15. August 2009, 02:48

Tag/Nacht Skript - Das Fenster kleiner machen

Hi forum

wie kann man das hier einstellen, dass das Fenster etwas kleiner ist?

effeff

Schlitzohr

Motto: Man muss nicht alles mit RGSS machen, Eventtechnik for the world!

  • Nachricht senden

2

Samstag, 15. August 2009, 16:39

Könntest du vielleicht angeben, welches script du denn benutzt? das von Itzamnà oder ein anderes...

spoiler es hier mal rein, dann kann dir einfacher geholfen werden

Nerbert

Schlitzohr

  • »Nerbert« ist der Autor dieses Themas

Motto: Power is nothing without control. Just livin' my dreams.

  • Nachricht senden

3

Sonntag, 16. August 2009, 00:15

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
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
#==============================================================================
#
#                         	Tag-Nacht-Script
#
#------------------------------------------------------------------------------
#
# Grundidee und Originale von GermanD, 
# RGSS-Umsetzung und erweitere Funktionen von thunderbolt256
#
#==============================================================================
#
# Typ 0 = pro Sekunde vergehen im Spiel etwa 40 Sekunden
# Typ 1 = pro Sekunde vergeht im Spiel auch nur eine Sekunde
# Typ 2 = Im Spiel ist die Zeit identisch mit der echten Zeit 
# (die auf deinem PC eingestellt ist)
#
$timetyp = 0
 
class Game_Time
 
  attr_accessor :second
  attr_accessor :minute
  attr_accessor :hour
  attr_accessor :day
  attr_accessor :weekday
  attr_accessor :week_year
  attr_accessor :month
  attr_accessor :year
 
  def main
 
	# Hier kann man andere Zeitsysteme definieren. Es ist immer dahinter
	# angegeben, was sie bedeuten.
	@maxsec = 60    	# die Minute besteht aus 60 Sekunden
	@maxmin = 60    	# die Stunden besteht aus 60 Minuten
	@maxhour = 24   	# der Tag besteht aus 24 Stunden
	@maxweekday = 7 	# die Woche besteht aus 7 Tagen
	# Hier stehen, wie die Wochentage heißen sollen. Die Anzahl der 
	# Namen muss genauso groß sein, die es Wochentage geben soll!!
	@weekdayname = ["Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"]
	@maxmonthday = 30   # der Monat besteht aus 30 Tagen
	@maxmonth = 12  	# das Jahr besteht aus 12 Monaten
	# Hier stehen, wie die Monate heißen sollen. Die Anzahl der 
	# Namen muss genauso groß sein, die es Monate geben soll!!
	@monthname = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]
 
	# Folgende vier Zeilen nur bearbeiten, wenn man sich hiermit gut auskennt.
	# Sie definieren, ab wann es Morgen (@moa), Mittag (@mia), Abend (@aa) und
	# Nacht (@na) ist. 
	@moa = (6*@maxhour / 24).round
	@mia = (10*@maxhour / 24).round
	@aa = (18*@maxhour / 24).round
	@na = (22*@maxhour / 24).round
 
	@zyklus = true  	# true = Tag-Nacht-Zyklus aktiv = Bei Nacht wirds dunkel.
 
	@drinnen = true 	# hier kann man angeben, ob man drinnen startet oder
                    	# draußen. Gegen jegliche Logik muss man, wenn
                    	# man drinne startet, false angeben. Die Methoden
                    	# beruhen aber daraus, dass @drinnen == true bedeutet
                    	# das man in einem Haus ist.
	@stade = 0
 
	@trans = false        	# bei true werden die Zeitdaten auf die Variablen
                          	# übertragen, bei false nicht!
	@trans2 = false       	# bei true werden die Zeitswitche gesetzt(z.B. Morgen)
	@vc = 3               	# die Zahl der ersten Variable (für Tageszeit)
                          	# Sekunde, Min, Stunde, Tag, Wochentag,
                          	# Woche im Monat, Woche in Jahr, Monat, Jahr
	@sc = 7               	# die Zahl für den ersten Switch
 
  end
 
  def initialize(year=500+rand(100), month=-1, d=-1, h=-1, min=-1, sec=-1)
	main
	unless $timetyp == 2
  	@second = (sec == -1)?rand(@maxsec) : sec 
  	@minute = (min == -1)?rand(@maxmin) : min
  	@hour = h
  	@day = (d == -1)?rand(@maxmonthday) : d
  	@month = (month == -1)?rand(@maxmonth) : month
  	@year = year
  	@weekday = (@year*@maxmonth*@maxmonthday+(@month-1)*@maxmonthday+@day) % @maxweekday
  	@weekday = (@weekday == 0 ) ? @maxweekday : @weekday
  	@week_year = ((@month*@maxmonthday + @day) / @maxweekday).to_i
	else
  	time = Time.now
  	@second = time.sec
  	@minute = time.min
  	@hour = time.hour
  	@day = time.mday
  	@month = time.mon
  	@year = time.year
  	@weekday = time.wday
  	@week_year = ((@month*30 + @day) / 7).to_i
	end
 
	@trans = true
	@trans2 = true
	@withzins = true
	time_of_day_main
 
	if @trans 
  	$game_variables[@vc] = @second
  	$game_variables[@vc+1] = @minute
  	$game_variables[@vc+2] = @hour
  	$game_variables[@vc+3] = @day
  	$game_variables[@vc+4] = @weekday
  	$game_variables[@vc+5] = @week_year
  	$game_variables[@vc+6] = @month
  	$game_variables[@vc+7] = @year
	end
  end
 
  def get_month_name
	return @monthname[@month-1]
  end
 
  def get_weekday_name
	return @weekdayname[@weekday-1]
  end
 
  def zyklus_ein
	@zyklus = true
	time_of_day_main
  end
 
  def zyklus_aus
	@zyklus = false
	$game_screen.start_tone_change(Tone.new(0 ,0 ,0 ,0 ), 1);
  end
 
  def add_sec(n)
	@second += n
	loop do
  	if @second >= @maxsec
    	@second -= @maxsec
    	inc_min
  	else
    	break
  	end
	end
	if @trans 
  	$game_variables[@vc] = @second
  	$game_variables[@vc+1] = @minute
  	$game_variables[@vc+2] = @hour
  	$game_variables[@vc+3] = @day
  	$game_variables[@vc+4] = @weekday
  	$game_variables[@vc+5] = @week_year
  	$game_variables[@vc+6] = @month
  	$game_variables[@vc+7] = @year
	end	
  end
 
  def inc_sec
	add_sec(1)
  end
 
  def add_min(n)
	@minute += n
	loop do
  	if @minute >= @maxmin
    	@minute -= @maxmin
    	inc_h
  	else
    	break
  	end
	end
	if @trans 
  	$game_variables[@vc+1] = @minute
  	$game_variables[@vc+2] = @hour
  	$game_variables[@vc+3] = @day
  	$game_variables[@vc+4] = @weekday
  	$game_variables[@vc+5] = @week_year
  	$game_variables[@vc+6] = @month
  	$game_variables[@vc+7] = @year
	end  
	$game_map.refresh
  end
 
  def inc_min
	add_min(1)
  end
 
  def add_h(n)
	@hour += n
	loop do
  	if @hour >= @maxhour
    	@hour -= @maxhour
    	inc_d
  	else
    	break
  	end
	end
	time_of_day_main
  end
 
  def inc_h
	add_h(1)
  end
 
  def add_d(n)
	@day += n
	loop do
  	if @day > @maxmonthday
    	@day -= @maxmonthday
    	inc_month
  	else
    	break
  	end
	end
	@weekday += n % @maxweekday
	@weekday = (@weekday > @maxweekday) ? @weekday - @maxweekday : @weekday
	@week_year = ((@month*@maxmonthday + @day) / @maxweekday).to_i
  end
 
  def inc_d
	add_d(1)
  end
 
  def add_month(n)
	@month += n
	loop do
  	if @month > @maxmonth
    	@month -= @maxmonth
    	inc_year
  	else
    	break
  	end
	end
	@weekday = (@year*@maxmonth*@maxmonthday+(@month-1)*@maxmonthday+@day) % @maxweekday
	@week_year = ((@month*@maxmonthday + @day) / @maxweekday).to_i
  end
 
  def inc_month
	add_month(1)
  end
 
  def add_year(n)
	@year += n
	@weekday = (@year*@maxmonth*@maxmonthday+(@month-1)*@maxmonthday+@day) % @maxweekday
  end
 
  def inc_year
	add_year(1)
  end
 
  def raus
	@drinnen = true
	set_screen
  end
 
  def rein
	@drinnen = false
	set_screen
  end
 
  def time_of_day(n)
	if @trans2
  	for i in @sc...(@sc+4)
    	$game_switches[i] = false
  	end
  	$game_switches[@sc+n-1] = true
	end
	@stade = n
	set_screen
  end
 
  def set_screen
	if @zyklus
  	case @stade
  	when 1
    	if @drinnen
      	$game_screen.start_tone_change(Tone.new(-17 ,-51 ,-34 ,0 ), 15);
    	else
      	$game_screen.start_tone_change(Tone.new(51 ,-51 ,-102 ,0 ), 15);
    	end
  	when 2
    	$game_screen.start_tone_change(Tone.new(0 ,0 ,0 ,0 ), 15);
  	when 3
    	$game_screen.start_tone_change(Tone.new(-65 ,(@drinnen ? -51 : -135),-35 ,17 ), 15);
  	when 4
    	if @drinnen
      	$game_screen.start_tone_change(Tone.new(-136 ,-102 ,-17 ,51 ), 15);
    	else
      	$game_screen.start_tone_change(Tone.new(-180 ,-120 ,-10 ,70 ), 15);
    	end
  	end
	end
  end
 
  def time_of_day_main
	if @hour >= 0 and @hour < @moa
  	time_of_day(4)
	elsif @hour >=@moa and @hour < @mia
  	time_of_day(1)
	elsif @hour >=@mia and @hour < @aa
  	time_of_day(2)
	elsif @hour >=@aa and @hour < @na
  	time_of_day(3)
	elsif @hour >=@na and @hour < @maxhour
  	time_of_day(4)
	end
  end
end
 
class Scene_Title
  alias command_new_game_tnsobgdeebt :command_new_game
  def command_new_game
	command_new_game_tnsobgdeebt
	# Man kann für Game_Time.new() weniger Parameter übergeben.
	# Der erste Paramater ist immer, das Jahr, der zweite, der Monat,
	# dann, der Tag, die Stunde, die Minute, die Sekunde.
	# Wenn man z.B. nur 4 Parameter angibt, werden sie für das Jahr
	# Monat, Tag und Stunde eingesetzt, Minute und Sekunde, werden, dann
	# zufällig bestimmt. Wenn keine Parameter angegeben werden, was möglich
	# ist, wird alles zufällig bestimmt.
	$game_time = Game_Time.new(333, 5, 8, 0, 00, 0)
  end
end
#==============================================================================
# ** Scene_Save
#==============================================================================
class Scene_Save < Scene_File
  alias write_save_data_tnsobgdeebt :write_save_data
  def write_save_data(file)
	write_save_data_tnsobgdeebt(file)
	Marshal.dump($game_time, file)
  end
end
#==============================================================================
# ** Scene_Load
#==============================================================================
class Scene_Load < Scene_File
  #--------------------------------------------------------------------------
  alias read_save_data_tnsobgdeebt  :read_save_data
  def read_save_data(file)
	read_save_data_tnsobgdeebt(file)
	$game_time = Marshal.load(file)
  end
end
#==============================================================================
# ** Game_System
#==============================================================================
class Game_System
  alias update_tnsobgdeebt :update
  def update
	update_tnsobgdeebt
	case $timetyp 
	when 0
  	$game_time.inc_sec
	when 1
  	if Graphics.frame_count % Graphics.frame_rate == 0
    	$game_time.inc_sec
  	end
	when 2
  	time = Time.now
  	loop do
    	if (time.sec == $game_time.second) && (time.min == $game_time.minute)      	
      	break
    	end
    	$game_time.inc_sec
  	end
	end
  end
end
#==============================================================================
# ■ Window_PlayTime
#------------------------------------------------------------------------------
#  Hier ist der teil wo man die Uhrzeit sehen kann.
#  Durch die Uhr eröffnen sich neue Möglichkeiten
#  Zum Beispiel kann man mit etwas können
#  einen Shop machen der nur zwischen
#  15 und 18 Uhr geöffnet hat.
#  Oder die shops schließen ab 18Uhr^^
#  Also Ihr seht so eine Uhr is Praktisch^^
#
#                                                         	(c) by German D
#==============================================================================
#  95% ist diese Klasse original von German D und 5% von thunderbolt verändert.
#==============================================================================
 
class Window_PlayTime < Window_Base
  #--------------------------------------------------------------------------
  #  Hier sind einige Sachen geändert.
  #  Das einzigste was aber relevant ist,
  #  dass anstatt 
  #  super(0, 0, 160, 96) 
  #  nun
  #  super(0, 0, 160, 191)
  #  dasteht.
  #  Dies dient dazu, um das Feld wo die
  #  Uhrzeit drinn steht zu vergrößern.
  #  Den Schrittzähler habe ich durch die gespielte
  #  Zeit ersetzt.
  #  Man kann Events an bestimmten
  #  Tagen stattfinden lassen. Ist doch schön oder? 
  #--------------------------------------------------------------------------
  def initialize(pos=nil, date=true)
	if pos.nil?
  	super(0, 0, 160, 191)
	else
  	case pos
  	when 0 # links oben
    	if date
      	super(0, 0, 160, 191)
    	else
      	super(0, 0, 160, 88)
    	end
  	when 1 # rechts oben
    	if date
      	super(480, 0, 160, 191)
    	else
      	super(480, 0, 160, 88)
    	end
  	when 2 # links unten
    	if date
      	super(0, 289, 160, 191)
    	else
      	super(0, 392, 160, 88)
    	end
  	when 3 # rechts unten
    	if date
      	super(480, 289, 160, 191)
    	else
      	super(480, 392, 160, 88)
    	end
  	end
  	self.opacity = 190
	end
	self.contents = Bitmap.new(width - 32, height - 32)
	self.contents.font.color = system_color
	self.contents.font.name = "Arial"
	self.contents.font.size = 24
	@date = date
	refresh
  end
  #--------------------------------------------------------------------------
  #  Der interessanteste Teil^^
  #  Soo in diesem Teil ist die Uhr
  #  hier wird es durch Variabeln etc. 
  #  ermöglicht das im menu ne Uhrzeit und
  #  ne Anzeige das Wochentages angezeigt wird.
  #  Die Uhr bleibt stehen wenn man ins menu
  #  geht.
  #--------------------------------------------------------------------------
  def refresh
	$nds_txt = ["", 1, ":","", 4, ":","", 7] 
	# Falls ihr euch wundert warum das so da steht im prinzip läuft das so ab:
	# [""(0),1(1), ":"(2),""(3), 4(4), ":"(5),""(6), 7(7)] (zahlen in klammern sin da um die Reihenfolge zu verstehen)
	# wenn ich nun ["", 1, ":","", 2, ":","", 3] machen würde, würde eine seltsame Zahl angezeigt
	# also muss das so sein ;-)
 
	#hier wird zu $nds_txt jeweils einer Variable zugeordnet 
	$nds_txt[1] = $game_time.hour # Variable 5 steht für Stunde
	$nds_txt[4] = $game_time.minute # Variable 4 steht für Minute
	$nds_txt[7] = $game_time.second # Variable 3 steht für Sekunde
	$nds_txt[10] = $game_time.day # Variable 7 steht für Tag
	$nds_txt[11] = $game_time.year # Variable 3 steht für Jahr
 
	# Hier wird dem Maker erklärt, dass er, wenn die Ziffer bei der Uhr über 9 ist,
	# die Ziffer wieder auf 0 bringen soll
	if $nds_txt[1] <= 9
 	then $nds_txt[0] = "0"
	end
 
	if $nds_txt[4] <= 9
 	then $nds_txt[3] = "0"
	end
 
	if $nds_txt[7] <= 9
 	then $nds_txt[6] = "0"
   end
 
  # Hier geben wir, den Wochentag ein.
  $nds_txt[8] = $game_time.get_weekday_name
 
   # nunja hier wird das gleiche wie darüber gemacht nur halt für die Monate
   $nds_txt[9] = $game_time.get_month_name
   # Ihr seht... is alles schön logisch was?
   # So nun kommen zu einem wichtigen Punkt... 
   # Dem Punkt, wo dann alles dargestellt werden muss
 	self.contents.clear
 	self.contents.font.color = system_color
 	self.contents.draw_text(4, 0, 120, 32, "Uhrzeit")
 	self.contents.font.color = normal_color
 	self.contents.draw_text(4, 0, 120, 70, "#{$nds_txt[1..7]}")
 	if @date
   	self.contents.font.color = system_color
   	self.contents.draw_text(4, 0, 120, 132, "Datum")
   	self.contents.font.color = normal_color
   	self.contents.draw_text(4, 0, 120, 170, "#{$nds_txt[8]}")
   	self.contents.font.color = normal_color
   	self.contents.draw_text(4, 0, 120, 232, "#{$nds_txt[10]}" "." "#{$nds_txt[9]}")
   	self.contents.font.color = normal_color
   	self.contents.draw_text(4, 0, 120, 290, "Jahr" " " "#{$nds_txt[11]}")
  	end
	end
  #--------------------------------------------------------------------------
  # Hier ist nichts geändert
  #--------------------------------------------------------------------------
  def update
	super
	if $timetyp == 0 && $game_time.second == 0
  	refresh
	elsif $timetyp != 0 && Graphics.frame_count % Graphics.frame_rate == 0
  	refresh
	end
  end
end



Also, ich will halt, dass das Fenster worin die Zeitangaben stehen, kleiner ist.

effeff

Schlitzohr

Motto: Man muss nicht alles mit RGSS machen, Eventtechnik for the world!

  • Nachricht senden

4

Sonntag, 16. August 2009, 01:28

Um das nochmal verständlich für mich zu machen , wir reden von dem Fenster was im Spiel angezeigt wurden ist? Oder doch das was gezigt wird wenn man im Menü ist?

Jedenfalls kannst du erstmal in zeile 433 und 434 Schrift art und schriftgröße verändern, wenn das fenster kleiner ist wirst du ncihts mehr lesen können.

ab Zeile 401 wo " super(0, 0, 160, 191)" steht, bedeuten die Zahlen die X-Koordinate und die Y-Koordinate wo das fenster beginnt(also 0,0 ist der ganz obere linke pixel) sowie Höhe und Breite des Fensters, wenn du also die 160,191 in kleinere Werte umschreibst bekommst du also ein kleineres Fenster und umgekehrt.

Wenn die Uhrzeit immer oben Links stehen soll, würde ich vorschlagen Zeile 406 zu ändern ... dieses @date, da bin ich mir nicht sicher hab ihn nur kurz angetestet, heißt wahrscheinlich, dass man das Datum angezeigt bekommt , wenn du den Wert false eingestellt hast dann ändere Zeile 408.. spiel ein bisschen rum ;)

Ähnliche Themen

Social Bookmarks