• Anmelden

Rash

Knappe

  • »Rash« ist der Autor dieses Themas

Motto: Gute Spiele hat man im Herzen nicht in der Konsole.

  • Nachricht senden

1

Dienstag, 20. März 2012, 23:15

Fog Script

Ich möchte den "Fog" verändert haben.
Und zwar so das wenn ich "Transfer Player" anwende mit "no Fade" will ich das der Nebel sich nicht verändert.
Hört sich komisch an...

Dann mal so:
Ich will mehrere Maps mit einander kombinieren so das man nicht merkt das man in die nächste Map gelaufen ist.
Der "Fog" stellt sich wieder zurück wenn ich in die nächste Map laufe. Das ist blöd.
Ich habe ein Beispiel angehangen.
Laufe einfach in eine Richtung und du wirst schon sehen was ich meine.
»Rash« hat folgende Datei angehängt:
RR

Rash

Knappe

  • »Rash« ist der Autor dieses Themas

Motto: Gute Spiele hat man im Herzen nicht in der Konsole.

  • Nachricht senden

2

Donnerstag, 22. März 2012, 20:43

Ich kann dieses Problem nicht Eventtechnisch lösen. Ich habe ein Beispiel angehangen.
Wenn ich laufe dann geht der Nebel mit. Er muss sich aber anscheinend der $game_map.display_x&y anpassen. Da funzt es bei mir nicht mehr.

Ich würde sagen mann kann das Problem lösen wenn mir jmd. ein Fog script macht was ich mit einem Eventbefehl an und ausschalten kann.
$game.fog(on/001_fog01/sx/sy/blend_type/zoom_x/zoom_y/ect.) irgend wie so.
Es soll nur, wenn ich "Transfer Player" anwende, den Fog auf der Position behalten.

Thx for hlp.
»Rash« hat folgende Datei angehängt:
RR

3

Donnerstag, 22. März 2012, 20:58

Es wäre viel aufwandt aber du könntest doch einfach mit einigen Bildern arbeiten die sich gegenseitig ersetzen wenn du dich bewegst aber wie gesagt wär viel aufwand und du müsstest auf jedemfür jedes feld ein eigenes Bild machen

(mein Vorschlag ist möglich aber aufwendig vll ha jemand eine bessere Idee)

Bex

Seher

Motto: Lets have some Fun.

  • Nachricht senden

4

Donnerstag, 22. März 2012, 21:19

Hallo, das Problem sieht komisch aus.
Wenn ich nahtlos auf die Andere Map Zape, hat der Nebel dort eine komplett Anderen standort, switch ich aber wieder zurück,
hat die vorrige Map den selben Nebelstandort wie vorher.
Switche ich wieder zurück hat auch die Nebelwand auf der anderen Karte den Alten Standort.

Edit: Hast du schonmal ausprobiert wenn du dich oben aus der Karte
bewegst, den Spieler mal nach oben auf der nächsten Karte zu Platzieren?
Ist zwar von der Bewegung unlogisch,
aber so könnte man testen ob
der Fog immer auf Mapmitte zentriert ist. (Das würde erklären warum
der Fog beim zurückwechseln wieder die Alte Positionm hat.
Falls sich
das bewahrheitet, müsste man schauen ob man statt der Map(oder vieleicht Player) als
Zentrum des Fogs irgend ein Event einstellen kann, das dann auf jeder
Map an der entsprechenden selben Stelle ist.

@Alexagent00
Kannst du deinen Vorschlag bitte genauer erklären, ich weiss nicht was du da meinst?Auch ist mir schleierhaft was das bedeutet alles mit Events zu pflastern?
Sieht das nicht merkwürdig aus wenn der Nebel aufhört sich zu bewegen sobald der Spieler sich nicht bewegt?
Vieleicht ist deine Idee ja gut, aber bitte hilf uns zu verstehen was du meinst.

Gruß Bex

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Bex« (23. März 2012, 14:20)


Rash

Knappe

  • »Rash« ist der Autor dieses Themas

Motto: Gute Spiele hat man im Herzen nicht in der Konsole.

  • Nachricht senden

5

Freitag, 23. März 2012, 13:47

Der zweite Thread von mir ist ja ein Fog Event angehengt worden.
Dort Funktioniert das mit dem Wechseln des Standortes aber ich kann das Fogbild nicht mit der Map kombinieren.

Den Script willste haben? Ok, ich weiß aber nicht so genau was alles noch dazugehört...

Game_Map
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
#--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
	# Refresh map if necessary
	if $game_map.need_refresh
  	refresh
	end
	# If scrolling
	if @scroll_rest > 0
  	# Change from scroll speed to distance in map coordinates
  	distance = 2 ** @scroll_speed
  	# Execute scrolling
  	case @scroll_direction
  	when 2  # Down
    	scroll_down(distance)
  	when 4  # Left
    	scroll_left(distance)
  	when 6  # Right
    	scroll_right(distance)
  	when 8  # Up
    	scroll_up(distance)
  	end
  	# Subtract distance scrolled
  	@scroll_rest -= distance
	end
	# Update map event
	for event in @events.values
  	event.update
	end
	# Update common event
	for common_event in @common_events.values
  	common_event.update
	end
	# Manage fog scrolling
	@fog_ox -= @fog_sx / 8.0
	@fog_oy -= @fog_sy / 8.0
	# Manage change in fog color tone
	if @fog_tone_duration >= 1
  	d = @fog_tone_duration
  	target = @fog_tone_target
  	@fog_tone.red = (@fog_tone.red * (d - 1) + target.red) / d
  	@fog_tone.green = (@fog_tone.green * (d - 1) + target.green) / d
  	@fog_tone.blue = (@fog_tone.blue * (d - 1) + target.blue) / d
  	@fog_tone.gray = (@fog_tone.gray * (d - 1) + target.gray) / d
  	@fog_tone_duration -= 1
	end
	# Manage change in fog opacity level
	if @fog_opacity_duration >= 1
  	d = @fog_opacity_duration
  	@fog_opacity = (@fog_opacity * (d - 1) + @fog_opacity_target) / d
  	@fog_opacity_duration -= 1
	end
  end
end
zum Lesen den Text mit der Maus markieren

Spriteset_Map
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
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
	# If panorama is different from current one
	if @panorama_name != $game_map.panorama_name or
   	@panorama_hue != $game_map.panorama_hue
  	@panorama_name = $game_map.panorama_name
  	@panorama_hue = $game_map.panorama_hue
  	if @panorama.bitmap != nil
    	@panorama.bitmap.dispose
    	@panorama.bitmap = nil
  	end
  	if @panorama_name != ""
    	@panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
  	end
  	Graphics.frame_reset
	end
	# If fog is different than current fog
	if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
  	@fog_name = $game_map.fog_name
  	@fog_hue = $game_map.fog_hue
  	if @fog.bitmap != nil
    	@fog.bitmap.dispose
    	@fog.bitmap = nil
  	end
  	if @fog_name != ""
    	@fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)
  	end
  	Graphics.frame_reset
	end
	# Update tilemap
	@tilemap.ox = $game_map.display_x / 4
	@tilemap.oy = $game_map.display_y / 4
	@tilemap.update
	# Update panorama plane
	@panorama.ox = $game_map.display_x / 8
	@panorama.oy = $game_map.display_y / 8
	# Update fog plane
	@fog.zoom_x = $game_map.fog_zoom / 100.0
	@fog.zoom_y = $game_map.fog_zoom / 100.0
	@fog.opacity = $game_map.fog_opacity
	@fog.blend_type = $game_map.fog_blend_type
	@fog.ox = $game_map.display_x / 4 + $game_map.fog_ox
	@fog.oy = $game_map.display_y / 4 + $game_map.fog_oy
	@fog.tone = $game_map.fog_tone
	# Update character sprites
	for sprite in @character_sprites
  	sprite.update
	end
	# Update weather graphic
	@weather.type = $game_screen.weather_type
	@weather.max = $game_screen.weather_max
	@weather.ox = $game_map.display_x / 4
	@weather.oy = $game_map.display_y / 4
	@weather.update
	# Update picture sprites
	for sprite in @picture_sprites
  	sprite.update
	end
	# Update timer sprite
	@timer_sprite.update
	# Set screen color tone and shake position
	@viewport1.tone = $game_screen.tone
	@viewport1.ox = $game_screen.shake
	# Set screen flash color
	@viewport3.color = $game_screen.flash_color
	# Update viewports
	@viewport1.update
	@viewport3.update
  end
end
zum Lesen den Text mit der Maus markieren
RR

Bex

Seher

Motto: Lets have some Fun.

  • Nachricht senden

6

Freitag, 23. März 2012, 14:35

Rash die Demo hab ich gespielt.
Falls der Fog auf Bildschirm mitte zentriert ist ist dies der Anzeigefehler.
Mals dir mal auf, wenn du nach unten gehst, siehst du ja den Fog abschnitt der unteren hälfte, wechselst du nun die Map bist du aprubt am oberen Ende des Fogs.
Wenn du ganz schnell hoch runter die Karte wechselst wirst du sehen das nicht bei jedem Teleport der Fog anders ist ,beim zurückwechseln auf die vorrige Map,
ist dort auch wieder die Alte Fogposition.
Dies meinte ich in meinem Vorpost (Bin nochmal drauf eingegangen weil ich dachte das du es nicht verstanden hattest.
Wenn wir jetzt rausfinden wo der Fog im Skript auf die Kartenmitte zentriert wird ,so können wir versuchen die Position zu ändern.

Das würde in der Praxis so aussehen: Entweder klappt es den Fog Links oben in der Bildschirmeckefestzumachen, oder wir müssen diesen je nach Karte und von wo man kommt
entsprechend das Anzeigezentrum Festlegen und ein Event dort hinteleportieren.

In den von dir geposteten Skripts konnte ich nichts entdecken. (Schade das das Fogskript so umfangreich zu sein scheint^^ bin eigentlich auch sehr untalentiert was Skripts angeht)

EDIT: Rash schau bitte ob da noch mehr Skripte zu dem Fogskript zugehören.Ich hab den Verdacht das war noch nicht das Hauptskript
(Ich kann nur die Demo spielen, da ich den Maker nicht habe kann ich nicht selber im Skript schauen).

Rash

Knappe

  • »Rash« ist der Autor dieses Themas

Motto: Gute Spiele hat man im Herzen nicht in der Konsole.

  • Nachricht senden

7

Samstag, 24. März 2012, 10:24

Game Map
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
  attr_accessor :fog_name             	# fog file name
  attr_accessor :fog_hue              	# fog hue
  attr_accessor :fog_opacity          	# fog opacity level
  attr_accessor :fog_blend_type       	# fog blending method
  attr_accessor :fog_zoom             	# fog zoom rate
  attr_accessor :fog_sx               	# fog sx
  attr_accessor :fog_sy               	# fog sy
  attr_reader   :fog_ox               	# fog x-coordinate starting point
  attr_reader   :fog_oy               	# fog y-coordinate starting point
  attr_reader   :fog_tone             	# fog color tone
  #--------------------------------------------------------------------------
  # * Setup
  # 	map_id : map ID
  #--------------------------------------------------------------------------
	@fog_name = tileset.fog_name
	@fog_hue = tileset.fog_hue
	@fog_opacity = tileset.fog_opacity
	@fog_blend_type = tileset.fog_blend_type
	@fog_zoom = tileset.fog_zoom
	@fog_sx = tileset.fog_sx
	@fog_sy = tileset.fog_sy
	# Initialize all fog information
	@fog_ox = 0
	@fog_oy = 0
	@fog_tone = Tone.new(0, 0, 0, 0)
	@fog_tone_target = Tone.new(0, 0, 0, 0)
	@fog_tone_duration = 0
	@fog_opacity_duration = 0
	@fog_opacity_target = 0
  #--------------------------------------------------------------------------
  # * Start Changing Fog Color Tone
  # 	tone 	: color tone
  # 	duration : time
  #--------------------------------------------------------------------------
  def start_fog_tone_change(tone, duration)
	@fog_tone_target = tone.clone
	@fog_tone_duration = duration
	if @fog_tone_duration == 0
  	@fog_tone = @fog_tone_target.clone
	end
  end
  #--------------------------------------------------------------------------
  # * Start Changing Fog Opacity Level
  # 	opacity  : opacity level
  # 	duration : time
  #--------------------------------------------------------------------------
  def start_fog_opacity_change(opacity, duration)
	@fog_opacity_target = opacity * 1.0
	@fog_opacity_duration = duration
	if @fog_opacity_duration == 0
  	@fog_opacity = @fog_opacity_target
	end
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
	# Manage fog scrolling
	@fog_ox -= @fog_sx / 8.0
	@fog_oy -= @fog_sy / 8.0
	# Manage change in fog color tone
	if @fog_tone_duration >= 1
  	d = @fog_tone_duration
  	target = @fog_tone_target
  	@fog_tone.red = (@fog_tone.red * (d - 1) + target.red) / d
  	@fog_tone.green = (@fog_tone.green * (d - 1) + target.green) / d
  	@fog_tone.blue = (@fog_tone.blue * (d - 1) + target.blue) / d
  	@fog_tone.gray = (@fog_tone.gray * (d - 1) + target.gray) / d
  	@fog_tone_duration -= 1
	end
	# Manage change in fog opacity level
	if @fog_opacity_duration >= 1
  	d = @fog_opacity_duration
  	@fog_opacity = (@fog_opacity * (d - 1) + @fog_opacity_target) / d
  	@fog_opacity_duration -= 1
	end
   end
zum Lesen den Text mit der Maus markieren

Spriteset Map
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
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
	# Make fog plane
	@fog = Plane.new(@viewport1)
	@fog.z = 3000
  #--------------------------------------------------------------------------
  # * Dispose
  #--------------------------------------------------------------------------
	# Dispose of fog plane
	@fog.dispose
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
	# If fog is different than current fog
	if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
  	@fog_name = $game_map.fog_name
  	@fog_hue = $game_map.fog_hue
  	if @fog.bitmap != nil
    	@fog.bitmap.dispose
    	@fog.bitmap = nil
  	end
  	if @fog_name != ""
    	@fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)
  	end
  	Graphics.frame_reset
	end
	# Update tilemap
	@tilemap.ox = $game_map.display_x / 4
	@tilemap.oy = $game_map.display_y / 4
	@tilemap.update
	# Update panorama plane
	@panorama.ox = $game_map.display_x / 8
	@panorama.oy = $game_map.display_y / 8
	# Update fog plane
	@fog.zoom_x = $game_map.fog_zoom / 100.0
	@fog.zoom_y = $game_map.fog_zoom / 100.0
	@fog.opacity = $game_map.fog_opacity
	@fog.blend_type = $game_map.fog_blend_type
	@fog.ox = $game_map.display_x / 4 + $game_map.fog_ox
	@fog.oy = $game_map.display_y / 4 + $game_map.fog_oy
	@fog.tone = $game_map.fog_tone
zum Lesen den Text mit der Maus markieren


So, ich müsste jetzt alles mögliche an "fog" rausgesucht haben.
Warum mein Event nicht klappt ist der Grund:

Ruby Quellcode

1
2
3
# Update fog plane
	@fog.ox = $game_map.display_x / 4 + $game_map.fog_ox
	@fog.oy = $game_map.display_y / 4 + $game_map.fog_oy
Mein Eventfog kann nicht scrollen (Mit der Map zusammen scrollen). Ich weiß nicht mal wie ich das Eventtechnich umsetzten soll...
Das ist auch der Grund warum ich auch einen neuen Fog Script haben will.
RR

Bex

Seher

Motto: Lets have some Fun.

  • Nachricht senden

8

Samstag, 24. März 2012, 17:31

Hallo,
kann man im Skript Game Map
in Zeile 6 und 7 bzw in Zeile 23 und 24 nicht irgendwie einstellen das Fog ox und Fog oy = einer Variable sind ? z.b Fog ox =Variable ID001.
Ich weiss abr auch nicht wie man das Skripten müsste.
Es würde dir aber die anzeigeposition vieleicht vereinfachen.

Frage:
Hast du gesehen was ich meinte, wenn man ganz schnell Karte nach unten wechselt ,gleich wieder hochgewht und wieder runtergeht ?

Was meinst du mit deinem Eventfog? Ich dachte dies wär ein Skript dafür, oder lässt du es doch über Events laufen?Versteh das grad nicht.


Idee für Eventlösung:
Obwohl deine Map nur 10x10 gross ist ,machst du die Gesammtgrösse der Map auf 100x100. Bist du nun auf der Map Links oben in der Ecke und gehst
nach Rechts , so befindet sich auf der nächsten 100x100 Map die 10x10Karte nicht Links oben in der Ecke sondern 10 Felder weiter rechts.
Wie die Feineinstellung ist ,damit das auch klappt wenn die Map scrollt weiss ich nicht.(Vieleicht immer ein paar Felder zwischen den Teleportevents freilassen)

Es tut mir leid sollten diese Mutmassungen etwas nerven^^ Würde dir gern helfen hab aber vom Skripten kein plan.
Und dies wären die Dinge die ich halt versuchen würde.

Gruß Bex


EDIT: eben erst den Eventfog Testgespielt. Wird der Fog dabei über eine Picture Anzeige gemacht?
Dann müsste man ihn nur irgendwo festtackern. Entweder mit Skript oder per Event.
Platziere ein leeres Event ich glaube am besten Links oben in der Ecke.
Frage in einem anderen paralellen Event Screenx und ScreenY des ersten Events ab. Trage bei der Picture anzeige die Variablen ID ein.
So verhinderst du das der Nebel mitscrollt beim Mapscrollen. Als ich das gemacht hatte traten aber immer beim scrollen kleine zuckungen auf, dies
geschah weil das Picture wieder auf Position gesetzt wurde. Müsste man testen ob das negativ auffällt oder in der Bewegung des Fogs untergeht.

o.o...? Warum traten beim Eventfog nicht diese verzehrungen auf die im Skript auftauchten? Finde das sehr spannend und interessant.
Kannst du mirt auch verraten wie du den Spieler teleportierst ohne das ein Fadeout kommt (Beim VX geht das glaub ich nicht).

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Bex« (24. März 2012, 17:25)


Rash

Knappe

  • »Rash« ist der Autor dieses Themas

Motto: Gute Spiele hat man im Herzen nicht in der Konsole.

  • Nachricht senden

9

Samstag, 24. März 2012, 22:53

@Hast du gesehen was ich meinte, wenn man ganz schnell Karte nach unten wechselt ,gleich wieder hochgewht und wieder runtergeht ?
Ich weis was du meinst. Es ist auch einfach zu lösen in dem man das setPicture woanderst hinsetzt.
Unmöglich ist die fixierung auf der Map. (Keine Ahnung wie ich es beschreiben soll...) Deshalb Scriptanfrage.
Das muss ich das Rätsel ohne Fog machen ;(
Ich werde mal schauen wie ich das noch machen kann.

@Edit
Die Idee hatte ich auch funzt aber nicht wenn ich auf eine völlig neue Map gehe. Da muss diese Map teoretisch die gleiche Größe haben.
Ich werde es mal Testen.

@Fadeout
Beim XP gibt es in der Eventfunktion "Transfer Player" eine Box wo darüber steht "Fading" in der Box kann man auswählen [Yes] oder [No].
RR

Ähnliche Themen

Social Bookmarks