• Anmelden

1

Mittwoch, 8. Juli 2009, 20:54

Charakter ausblenden und Soundpegel

So guten Abend an alle Themenleser,

ich hab da eine kleine Anfrage ob diese per RGSS zu lösen sind. Un zwar Iich habe mein Tag und Nachtskript mit verschiedenen Zeitabschnitten -> Tag, Abends, Nacht etc. nun ich würde gerne die NPCs an verschiedenen Tageszeiten anzeigen ob da oder nicht da, im Haus draußen etc. . Nun durch das switchen eines Schalters, wäre das auch kein Problem, nun möchte ich allerdings nicht das der NPc einfach so direkt vorm Helden verschwindet, sondern erst wenn der Held den Sichtbereich des NPCs verlässt. Nun meine Frage ist das per RGSS zu lösen? Denn wenn der Held sich in der Stadt befindet und der Zeitwechsel kommt und er befindet sich gerade in den Areal hätte ich gerne so eine Lösung - das allerdings auch gleichzeitig erkannt wird ah, der Held ist außerhalb der/des - Map/Gebietes und die NPC gleich ausblendet. Sicherlich ließe sich das per Event auch umsetzen, allerdings habe ich da Performance bedenken.

Was mich zu meinen zweiten Anliegen bringt: sagen wir ein Fluss strömt durch eine Stadt - okay ich möchte das das Rauschen erst ertönt wenn der Spieler nahe genug an das Event herankommt ->


-----------|------------XFlussX

-----------|-----------XFlussX

Spieler---|------------XFlussX

-----------|------------XFlussX

-----------|------------XFlussX

| = Hörbereich und von da an lauter werdend (evt. das durch den Eventnamen[und damit automatisch ausgeführt wird] die Art des Geräusches erkannt wird und man in einen gewissen Umkreis den Radius des Geräusches festlegen kann.)

|||||||||
||Quelle||
|||||||||

Auch dieses lässt sich per Koordinatenabfrage im Eventscript lösen allerdings hier nun wieder bedenken, der Performance wegen. Da ich bereits ziemlich viele Paralelle Prozesse im "Normallauf" am wirken habe.

PS: Noch eine kleine abschließenede Frage -> ist es möglich ein Picture unter den Helden zu setzen was allerdings weiterhin das Tileset anstrahlt?

lieblos dahingeklatschte Skizze: ^^
-Himmel-
-Picture normal-
-Held-
-Picture unter helden-
-Tileset-
-Hölle-

Ich danke jetzt schon mal für alle Antworten die mir irgendwie weiterhelfen können.

~Danke & Gruß Kain

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

2

Mittwoch, 8. Juli 2009, 21:02

1. Also sollen bestimmte Events nicht ihre Seite wechseln, bis sie außerhalb des Bildschirms sind?
2. Gibts schon im Skript Editor.
3. Ich hab sowas versucht: Problem mit Lightmap - Hilfe
Aber anscheiend läuft es nicht fehlerfrei.
Du könntestn die Lightmap auch als Event anzeigen lassen und dann Monstas Flat-Event-Skript nehmen, damit es unter allen anderen ist.
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

3

Mittwoch, 8. Juli 2009, 21:10

1. Also sollen bestimmte Events nicht ihre Seite wechseln, bis sie außerhalb des Bildschirms sind?


Ja, sag ich dazu schon mal.

Zitat

2. Gibts schon im Skript Editor.

Schätze mal du meinst Monstas Script Explorer, ich schau mal rein. Die 3. Option werde ich antesten.

~Gruß

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

4

Mittwoch, 8. Juli 2009, 22:05

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
class Game_Event
  alias_method :nb_skript_alias_game_event_refresh_kains_skript, :refresh
  alias_method :nb_skript_alias_game_event_update_kains_skript, :update
  def refresh
	if @page != nil and on_screen?
  	@need_page_update = true
  	return
	end
	nb_skript_alias_game_event_refresh_kains_skript
  end
  def update
	nb_skript_alias_game_event_update_kains_skript
	if @need_page_update and !on_screen?
  	@need_page_update = false
  	refresh
	end
  end
end
 
class Sprite_Character
  alias_method :nb_alias_skript_sprite_character_initialize_kains_skript, :initialize
  def initialize(*args)
	nb_alias_skript_sprite_character_initialize_kains_skript(*args)
	@character.sprite = self
  end
end
 
class Game_Character
  attr_accessor :sprite
  def on_screen?
	return false if @sprite == nil
	(screen_x < 640) && (screen_x+@sprite.bitmap.width/4 >= 0) && (screen_y < 480) && (screen_y+@sprite.bitmap.height/4 >= 0) 
  end
end
zum Lesen den Text mit der Maus markieren


Das hier gilt bisher für alle Events. Soll ich noch ein Kennzeichen einbauen und wenn ja, welches?
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

5

Mittwoch, 8. Juli 2009, 22:11

Kann es jetzt nicht direkt testen, da ich nicht unbedingt weiß wie ich das jetzt einsetze xD.. (nur RGSS Codeschnipsler ;-)). Was du jetzt als Kennzeichen meinst - nehm ein Sternchen im Eventnamen oder sowas in der Art.

~Gruß

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

6

Mittwoch, 8. Juli 2009, 22:19

Einfach über Main natürlich ;)
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
class Game_Event
  alias_method :nb_skript_alias_game_event_refresh_kains_skript, :refresh
  alias_method :nb_skript_alias_game_event_update_kains_skript, :update
  def refresh
	if @page != nil and on_screen? and @event.name.include?("*")
  	@need_page_update = true
  	return
	end
	nb_skript_alias_game_event_refresh_kains_skript
  end
  def update
	nb_skript_alias_game_event_update_kains_skript
	if @need_page_update and !on_screen?
  	@need_page_update = false
  	refresh
	end
  end
end
 
class Sprite_Character
  alias_method :nb_alias_skript_sprite_character_initialize_kains_skript, :initialize
  def initialize(*args)
	nb_alias_skript_sprite_character_initialize_kains_skript(*args)
	@character.sprite = self
  end
end
 
class Game_Character
  attr_accessor :sprite
  def on_screen?
	return false if @sprite == nil
	(screen_x < 640) && (screen_x+@sprite.bitmap.width/4 >= 0) && (screen_y < 480) && (screen_y+@sprite.bitmap.height/4 >= 0) 
  end
end
zum Lesen den Text mit der Maus markieren
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

7

Mittwoch, 8. Juli 2009, 22:34

Soweit klappt es erstmal. allerdings blenden die gleich beim Übergang aus sobald ich außer Reichweite bin, kann es erst ausblenden wenn ich noh 1 2 Tiles weiter bin? Zum anderen habe meine LE per Script nun ja die bewegen sich jetzt mit :3, was vorher nicht war xD..

Benutze für die LE das Light Effect von Near Fantastica:

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
#==============================================================================
# ** Light Effects
#==============================================================================
# Near Fantastica
# Version 4
# 29.11.05 
#==============================================================================
# The Light Effects Script adds light effects to events that are setup correctly
# this light can be used to simulate fires, street lights, windows and lamps.
# The light effects also have antilag build into them.
#==============================================================================
 
#------------------------------------------------------------------------------
# * SDK Log Script
#------------------------------------------------------------------------------
SDK.log("Light Effects", "Near Fantastica", 4, "29.11.05")
 
#------------------------------------------------------------------------------
# * Begin SDK Enable Test
#------------------------------------------------------------------------------
 
if SDK.state("Light Effects") == true
  class Spriteset_Map
   #---------------------------------------------------------------------------
   alias nf_les_spriteset_map_initalize initialize
   alias nf_les_spriteset_map_dispose dispose
   alias nf_les_spriteset_map_update update
   #---------------------------------------------------------------------------
   def initialize
     @light_effects = {}
     refresh_lights
     nf_les_spriteset_map_initalize
   end
   #---------------------------------------------------------------------------
   def dispose
     nf_les_spriteset_map_dispose
     dispose_lights
   end
   #---------------------------------------------------------------------------
   def update
     nf_les_spriteset_map_update
     refresh_lights
   end
   #---------------------------------------------------------------------------
   def dispose_lights
     for effect in @light_effects.values
       effect.light.dispose
     end
     @light_effects = {}
   end
   #---------------------------------------------------------------------------
   def refresh_lights
     return if @light_effects == nil
     for event in $game_map.events.values
       type = SDK.event_comment_input(event, 1, "Light Effects").to_s.upcase!
       if type.nil? and @light_effects.include?(event)
         @light_effects[event].light.dispose
         @light_effects.delete(event)
         next
       end
       if @light_effects.include?(event)
         update_lights(@light_effects[event])
         next
       end
       next if type.nil?
       setup_lights(event, type)
     end
   end
   #---------------------------------------------------------------------------
   def setup_lights(event, type)
     return if type.nil?
     case type
     when "GROUND"
       light_effects = Light_Effect.new(event,type)
       light_effects.light.zoom_x = 200 / 100.0
       light_effects.light.zoom_y = 200 / 100.0
       light_effects.light.opacity = 50
       light_effects.light.x = (light_effects.event.real_x - 200 - $game_map.display_x) / 4
       light_effects.light.y = (light_effects.event.real_y - 200 - $game_map.display_y) / 4
       @light_effects[event] = light_effects
     when "FIRE"
       light_effects = Light_Effect.new(event,type)
       light_effects.light.zoom_x = 300 / 100.0
       light_effects.light.zoom_y = 300 / 100.0
       light_effects.light.opacity = 100
       light_effects.light.x = (event.real_x - 300 - $game_map.display_x) / 4
       light_effects.light.y = (event.real_y - 300 - $game_map.display_y) / 4
       @light_effects[event] = light_effects
     when "LAMPPOST"
       light_effects = Lamp_Effect.new(event,"LAMPPOST")
       light_effects.light.opacity = 100
       light_effects.light.x = (-0.25 * $game_map.display_x)   (event.x * 32) - 25
       light_effects.light.y = (-0.25 * $game_map.display_y)   (event.y * 32) - 15       
       @light_effects[event] = light_effects
     when "LEFTLANTERN"
       light_effects = Light_Effect.new(event,type)
       light_effects.light.opacity = 150
       light_effects.light.x = (-0.25 * $game_map.display_x)   (light_effects.event.x * 32) - 20
       light_effects.light.y = (-0.25 * $game_map.display_y)   (light_effects.event.y * 32) - 5
       @light_effects[event] = light_effects
     when "RIGHTLANTERN"
       light_effects = Light_Effect.new(event,type)
       light_effects.light.opacity = 150
       light_effects.light.x = (-0.25 * $game_map.display_x)   (light_effects.event.x * 32) - 10
       light_effects.light.y = (-0.25 * $game_map.display_y)   (light_effects.event.y * 32) - 5
       @light_effects[event] = light_effects
     when "WINDOW"
       light_effects = Light_Effect.new(event,type)
       light_effects.light.opacity = 75
       light_effects.light.x = (-0.25 * $game_map.display_x)   (light_effects.event.x * 32) 
       light_effects.light.y = (-0.25 * $game_map.display_y)   (light_effects.event.y * 32)
       @light_effects[event] = light_effects
     end
   end
   #---------------------------------------------------------------------------
   def update_lights(effect)
     return if effect == nil
     return if not in_range?(effect.event)
     case effect.type
     when "GROUND"
       effect.light.x = (effect.event.real_x - 200 - $game_map.display_x) / 4
       effect.light.y = (effect.event.real_y - 200 - $game_map.display_y) / 4
     when "FIRE"
       effect.light.x = (effect.event.real_x - 300 - $game_map.display_x) / 4
       effect.light.y = (effect.event.real_y - 300 - $game_map.display_y) / 4
     when "LAMPPOST"
       effect.light.x = (-0.25 * $game_map.display_x)   (effect.event.x * 32) - 25
       effect.light.y = (-0.25 * $game_map.display_y)   (effect.event.y * 32) - 15
     when "LEFTLANTERN"
       effect.light.x = (-0.25 * $game_map.display_x)   (effect.event.x * 32) - 20
       effect.light.y = (-0.25 * $game_map.display_y)   (effect.event.y * 32) - 5
     when "RIGHTLANTERN"
       effect.light.x = (-0.25 * $game_map.display_x)   (effect.event.x * 32) - 10
       effect.light.y = (-0.25 * $game_map.display_y)   (effect.event.y * 32) - 5
     when "WINDOW"
       effect.light.x = (-0.25 * $game_map.display_x)   (effect.event.x * 32) - 15
       effect.light.y = (-0.25 * $game_map.display_y)   (effect.event.y * 32) - 20
     end
   end
   #---------------------------------------------------------------------------
   def in_range?(object)
     screne_x = $game_map.display_x
     screne_x -= 350
     screne_y = $game_map.display_y
     screne_y -= 350
     screne_width = $game_map.display_x
     screne_width  = 2950
     screne_height = $game_map.display_y
     screne_height  = 2250
     return false if object.real_x <= screne_x
     return false if object.real_x >= screne_width
     return false if object.real_y <= screne_y
     return false if object.real_y >= screne_height
     return true
   end
  end
 
  #============================================================================
  # %u25A0 Light Effects Class
  #============================================================================
 
  class Light_Effect
   #---------------------------------------------------------------------------
   attr_accessor :light
   attr_accessor :event
   attr_accessor :type
   #---------------------------------------------------------------------------
   def initialize(event, type)
     @light = Sprite.new
     @light.bitmap = RPG::Cache.picture("LE.PNG")
     @light.visible = true
     @light.z = 1000
     @event = event
     @type = type
   end
  end
 
  #============================================================================
  # %u25A0 Lamp Effects Class
  #============================================================================
 
  class Lamp_Effect
   #---------------------------------------------------------------------------
   attr_accessor :light
   attr_accessor :event
   attr_accessor :type
   #---------------------------------------------------------------------------
   def initialize(event, type)
     @light = Sprite.new
     lamp = Bitmap.new(64,64)
     lamp = RPG::Cache.picture("LE.PNG")
     @light.bitmap = Bitmap.new(128,64)
     src_rect = Rect.new(0, 0, 64, 64) 
     @light.bitmap.blt(0, 0, lamp, src_rect) 
     @light.bitmap.blt(20, 0, lamp, src_rect) 
     @light.visible = true
     @light.z = 1000
     @event = event
     @type = type
   end
 end
 
#------------------------------------------------------------------------------
# * End SDK Enable Test
#------------------------------------------------------------------------------
end
zum Lesen den Text mit der Maus markieren


~

Soweit klappt es erstmal. allerdings blenden die gleich beim Übergang aus sobald ich außer Reichweite bin, kann es erst ausblenden wenn ich noh 1 2 Tiles weiter bin? Zum anderen habe meine LE per Script nun ja die bewegen sich jetzt mit :3, was vorher nicht war xD..

Benutze für die LE das Light Effect von Near Fantastica:

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
#==============================================================================
# ** Light Effects
#==============================================================================
# Near Fantastica
# Version 4
# 29.11.05 
#==============================================================================
# The Light Effects Script adds light effects to events that are setup correctly
# this light can be used to simulate fires, street lights, windows and lamps.
# The light effects also have antilag build into them.
#==============================================================================
 
#------------------------------------------------------------------------------
# * SDK Log Script
#------------------------------------------------------------------------------
SDK.log("Light Effects", "Near Fantastica", 4, "29.11.05")
 
#------------------------------------------------------------------------------
# * Begin SDK Enable Test
#------------------------------------------------------------------------------
 
if SDK.state("Light Effects") == true
  class Spriteset_Map
   #---------------------------------------------------------------------------
   alias nf_les_spriteset_map_initalize initialize
   alias nf_les_spriteset_map_dispose dispose
   alias nf_les_spriteset_map_update update
   #---------------------------------------------------------------------------
   def initialize
     @light_effects = {}
     refresh_lights
     nf_les_spriteset_map_initalize
   end
   #---------------------------------------------------------------------------
   def dispose
     nf_les_spriteset_map_dispose
     dispose_lights
   end
   #---------------------------------------------------------------------------
   def update
     nf_les_spriteset_map_update
     refresh_lights
   end
   #---------------------------------------------------------------------------
   def dispose_lights
     for effect in @light_effects.values
       effect.light.dispose
     end
     @light_effects = {}
   end
   #---------------------------------------------------------------------------
   def refresh_lights
     return if @light_effects == nil
     for event in $game_map.events.values
       type = SDK.event_comment_input(event, 1, "Light Effects").to_s.upcase!
       if type.nil? and @light_effects.include?(event)
         @light_effects[event].light.dispose
         @light_effects.delete(event)
         next
       end
       if @light_effects.include?(event)
         update_lights(@light_effects[event])
         next
       end
       next if type.nil?
       setup_lights(event, type)
     end
   end
   #---------------------------------------------------------------------------
   def setup_lights(event, type)
     return if type.nil?
     case type
     when "GROUND"
       light_effects = Light_Effect.new(event,type)
       light_effects.light.zoom_x = 200 / 100.0
       light_effects.light.zoom_y = 200 / 100.0
       light_effects.light.opacity = 50
       light_effects.light.x = (light_effects.event.real_x - 200 - $game_map.display_x) / 4
       light_effects.light.y = (light_effects.event.real_y - 200 - $game_map.display_y) / 4
       @light_effects[event] = light_effects
     when "FIRE"
       light_effects = Light_Effect.new(event,type)
       light_effects.light.zoom_x = 300 / 100.0
       light_effects.light.zoom_y = 300 / 100.0
       light_effects.light.opacity = 100
       light_effects.light.x = (event.real_x - 300 - $game_map.display_x) / 4
       light_effects.light.y = (event.real_y - 300 - $game_map.display_y) / 4
       @light_effects[event] = light_effects
     when "LAMPPOST"
       light_effects = Lamp_Effect.new(event,"LAMPPOST")
       light_effects.light.opacity = 100
       light_effects.light.x = (-0.25 * $game_map.display_x) + (event.x * 32) - 25
       light_effects.light.y = (-0.25 * $game_map.display_y) + (event.y * 32) - 15       
       @light_effects[event] = light_effects
     when "LEFTLANTERN"
       light_effects = Light_Effect.new(event,type)
       light_effects.light.opacity = 150
       light_effects.light.x = (-0.25 * $game_map.display_x) + (light_effects.event.x * 32) - 20
       light_effects.light.y = (-0.25 * $game_map.display_y) + (light_effects.event.y * 32) - 5
       @light_effects[event] = light_effects
     when "RIGHTLANTERN"
       light_effects = Light_Effect.new(event,type)
       light_effects.light.opacity = 150
       light_effects.light.x = (-0.25 * $game_map.display_x) + (light_effects.event.x * 32) - 10
       light_effects.light.y = (-0.25 * $game_map.display_y) + (light_effects.event.y * 32) - 5
       @light_effects[event] = light_effects
     when "WINDOW"
       light_effects = Light_Effect.new(event,type)
       light_effects.light.opacity = 75
       light_effects.light.x = (-0.25 * $game_map.display_x) + (light_effects.event.x * 32) 
       light_effects.light.y = (-0.25 * $game_map.display_y) + (light_effects.event.y * 32)
       @light_effects[event] = light_effects
     end
   end
   #---------------------------------------------------------------------------
   def update_lights(effect)
     return if effect == nil
     return if not in_range?(effect.event)
     case effect.type
     when "GROUND"
       effect.light.x = (effect.event.real_x - 200 - $game_map.display_x) / 4
       effect.light.y = (effect.event.real_y - 200 - $game_map.display_y) / 4
     when "FIRE"
       effect.light.x = (effect.event.real_x - 300 - $game_map.display_x) / 4
       effect.light.y = (effect.event.real_y - 300 - $game_map.display_y) / 4
     when "LAMPPOST"
       effect.light.x = (-0.25 * $game_map.display_x) + (effect.event.x * 32) - 25
       effect.light.y = (-0.25 * $game_map.display_y) + (effect.event.y * 32) - 15
     when "LEFTLANTERN"
       effect.light.x = (-0.25 * $game_map.display_x) + (effect.event.x * 32) - 20
       effect.light.y = (-0.25 * $game_map.display_y) + (effect.event.y * 32) - 5
     when "RIGHTLANTERN"
       effect.light.x = (-0.25 * $game_map.display_x) + (effect.event.x * 32) - 10
       effect.light.y = (-0.25 * $game_map.display_y) + (effect.event.y * 32) - 5
     when "WINDOW"
       effect.light.x = (-0.25 * $game_map.display_x) + (effect.event.x * 32) - 15
       effect.light.y = (-0.25 * $game_map.display_y) + (effect.event.y * 32) - 20
     end
   end
   #---------------------------------------------------------------------------
   def in_range?(object)
     screne_x = $game_map.display_x
     screne_x -= 350
     screne_y = $game_map.display_y
     screne_y -= 350
     screne_width = $game_map.display_x
     screne_width += 2950
     screne_height = $game_map.display_y
     screne_height += 2250
     return false if object.real_x <= screne_x
     return false if object.real_x >= screne_width
     return false if object.real_y <= screne_y
     return false if object.real_y >= screne_height
     return true
   end
  end
 
  #============================================================================
  # ■ Light Effects Class
  #============================================================================
 
  class Light_Effect
   #---------------------------------------------------------------------------
   attr_accessor :light
   attr_accessor :event
   attr_accessor :type
   #---------------------------------------------------------------------------
   def initialize(event, type)
     @light = Sprite.new
     @light.bitmap = RPG::Cache.picture("LE.PNG")
     @light.visible = true
     @light.z = 1000
     @event = event
     @type = type
   end
  end
 
  #============================================================================
  # ■ Lamp Effects Class
  #============================================================================
 
  class Lamp_Effect
   #---------------------------------------------------------------------------
   attr_accessor :light
   attr_accessor :event
   attr_accessor :type
   #---------------------------------------------------------------------------
   def initialize(event, type)
     @light = Sprite.new
     lamp = Bitmap.new(64,64)
     lamp = RPG::Cache.picture("LE.PNG")
     @light.bitmap = Bitmap.new(128,64)
     src_rect = Rect.new(0, 0, 64, 64) 
     @light.bitmap.blt(0, 0, lamp, src_rect) 
     @light.bitmap.blt(20, 0, lamp, src_rect) 
     @light.visible = true
     @light.z = 1000
     @event = event
     @type = type
   end
 end
 
#------------------------------------------------------------------------------
# * End SDK Enable Test
#------------------------------------------------------------------------------
end
zum Lesen den Text mit der Maus markieren


~Gruß Kain
»Kain« hat folgendes Bild angehängt:
  • Lichterparty.JPG

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

8

Mittwoch, 8. Juli 2009, 22:38

Zitat

Soweit klappt es erstmal. allerdings blenden die gleich beim Übergang aus sobald ich außer Reichweite bin, kann es erst ausblenden wenn ich noh 1 2 Tiles weiter bin?
In Zeile 32 kannst du die Koordinaten ändern, wenn du magst. Sind nur 4 Zahlen ;)

Zitat

Zum anderen habe meine LE per Script nun ja die bewegen sich jetzt mit :3, was vorher nicht war xD..
Bah, SDK D:
Probier mal die Ordnung von SDK, LE-Skript und meinem Skript zu ändern. Ansonsten seh ich auch nix was sich da gegenseitig störten könnte :/
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

9

Donnerstag, 9. Juli 2009, 00:11

Ja, es klappt soweit, danke Neo :) hast mir heute sehr weitergeholfen.

EDIT: Nun hat sich doch noch was ergeben, ich habe die Werte deines Scriptes angepasst nun allerdings auf der Y Achse, sobald ich den Bildschirm nach oben verlasse verschwindet es nachwievor plötzlich.. wenn ich nach unten hin den Bildschirm verlasse ist alles wie gehabt, auf der X-Achse funzt alles.

Hab Zeile 32 so angepasst:

Ruby Quellcode

1
(screen_x < 638) && (screen_x+@sprite.bitmap.width/4 >= 0) && (screen_y < 476) && (screen_y+@sprite.bitmap.height/4 >= 0) 


~Mfg Kain

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

10

Donnerstag, 9. Juli 2009, 00:23

Das es auf der X-Achse funktioniert wundert mich, aber du msstest die Werte auch eigentlich höher machen ;)
So ist es, dass ein Event nicht mehr als "auf dem Bildschirm" gilt, wenn es auf der X-Achse außerhalb von 0-638 und auf der Y-Achse außerhalb von 0-476 ist ;)

So gehts einfacher ^^

Ruby Quellcode

1
2
3
range = 64
(screen_x < 640+range) && (screen_x+@sprite.bitmap.width/4 >= -range) &&  # passt nicht mehr in die Zeile hier >.<
(screen_y < 480+range) && (screen_y+@sprite.bitmap.height/4 >= -range)
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

11

Donnerstag, 9. Juli 2009, 07:05

Alles klar, funzt alles. Danke Neo ^^.

~Mfg Kain

Ähnliche Themen

Social Bookmarks