Problem ze skryptem - dudekmenPL - 28-12-15 11:08
Witam mam problem ze skryptem :
Kod:
#================================
# ? Light Effects
#================================
# ?By: Near Fantastica
# Date: 28.06.05
# Version: 3
#================================
#==========INSTRUCTIONS==========
#The first Comment event command in an event should read "Light Effects". The
#comment event command immediately following it should read "Ground", "Fire",
#"Lamppost", "LeftLantern", or "RightLantern".
#================================
class Spriteset_Map
#--------------------------------------------------------------
alias les_spriteset_map_initalize initialize
alias les_spriteset_map_dispose dispose
alias les_spriteset_map_update update
#--------------------------------------------------------------
def initialize
@light_effects = []
setup_lights
les_spriteset_map_initalize
update
end
#--------------------------------------------------------------
def dispose
les_spriteset_map_dispose
for effect in @light_effects
effect.light.dispose
end
@light_effects = []
end
#--------------------------------------------------------------
def update
les_spriteset_map_update
update_light_effects
end
#--------------------------------------------------------------
def setup_lights
for event in $game_map.events.values
next if event.list == nil
for i in 0...event.list.size
if event.list[i].code == 108 and event.list[i].parameters == ["Light Effects"]
type = event.list[i+1].parameters.to_s
case type.upcase!
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 = 51
@light_effects.push(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 = 85
@light_effects.push(light_effects)
when "LAMPPOST"
light_effects = Light_Effect.new(event,"LEFT LAMP POST")
light_effects.light.opacity = 51
@light_effects.push(light_effects)
light_effects = Light_Effect.new(event,"RIGHT LAMP POST")
light_effects.light.opacity = 51
@light_effects.push(light_effects)
when "LEFTLANTERN"
light_effects = Light_Effect.new(event,type)
light_effects.light.opacity = 150
@light_effects.push(light_effects)
when "RIGHTLANTERN"
light_effects = Light_Effect.new(event,type)
light_effects.light.opacity = 150
@light_effects.push(light_effects)
end
end
end
end
for effect in @light_effects
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 "LEFT LAMP POST"
effect.light.x = (-0.25 * $game_map.display_x) + (effect.event.x * 32) - 5
effect.light.y = (-0.25 * $game_map.display_y) + (effect.event.y * 32) - 15
when "RIGHT LAMP POST"
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
end
end
end
#--------------------------------------------------------------
def update_light_effects
for effect in @light_effects
next 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 "LEFT LAMP POST"
effect.light.x = (-0.25 * $game_map.display_x) + (effect.event.x * 32) - 5
effect.light.y = (-0.25 * $game_map.display_y) + (effect.event.y * 32) - 15
when "RIGHT LAMP POST"
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
end
end
end
#--------------------------------------------------------------
def in_range?(object)
screne_x = $game_map.display_x
screne_x -= 256
screne_y = $game_map.display_y
screne_y -= 256
screne_width = $game_map.display_x
screne_width += 2816
screne_height = $game_map.display_y
screne_height += 2176
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
Kiedy wchodzę na mapę na której użyłem komentarzy(tak jak pisze w instrukcji)
gra wygląda jak bym ustawił opcje "czekaj"/lub jak by się zawieszała
Z góry dzięki za pomoc
RE: Problem ze skryptem - kanumerki - 28-12-15 21:56
Masz jakieś zdarzenie ustawione na równoległe lub autostart?
RE: Problem ze skryptem - dudekmenPL - 29-12-15 11:42
(28-12-15 21:56)kanumerki napisał(a): Masz jakieś zdarzenie ustawione na równoległe lub autostart?
Mam na auto start
RE: Problem ze skryptem - takikaki012 - 29-12-15 21:08
Tu zapewne jest problem ;) Kiedy dajesz zdarzenie na "Autostart" ono wykonuje się cały czas, czego skutkiem jest zawieszenie się gry. Jeśli chcesz aby zdarzenie działało za każdym razem kiedy chodzisz na mapę, to po wszystkich poleceniach w zdarzeniu, z ustawionym autostartem dajesz "Usuń Zdarzenie".
RE: Problem ze skryptem - dudekmenPL - 29-12-15 21:38
(29-12-15 21:08)KacpiPL napisał(a): Tu zapewne jest problem ;) Kiedy dajesz zdarzenie na "Autostart" ono wykonuje się cały czas, czego skutkiem jest zawieszenie się gry. Jeśli chcesz aby zdarzenie działało za każdym razem kiedy chodzisz na mapę, to po wszystkich poleceniach w zdarzeniu, z ustawionym autostartem dajesz "Usuń Zdarzenie".
A czy jak dam usuń zdarzenie to po rozpoczęciu nie usunie się od razu ?
@RE: Po ustawieniu najlepiej dać "Po naciśnięciu przycisku" wtedy działa skrypt, KacpiPL dzięki za pomoc
|