Light Effects
#1
Light Effects
Version: 3
by Jaime 'Near Fantastica' Webster
Not DerVVulfman


By the poster
I didn't create the original scripts, and as of now the links that Near Fantastica put up are down (and he can't get to them) and his RMXP system is down. Given that he posted the original (though broken) demo links here, there should be no problem to post the script.


Screenshot
[Image: Lighteffect.jpg]


Script
Code:
#================================
# ? 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


Instructions
Plug and play. Place above Main. You will need this image for it to work though.
Rename as LE.png
[Image: le.png]

Place that in the "/Graphics/Pictures" folder.

Say you wanted to get a light on one of your fireplaces.

First create the event with the fire graphic and place it in a fireplace.

Next open your event commands window and create two comments. The first comment should say "Light Effects" (without the quotations.) The second comment will specify which type of light you want (fire, ground, lamppost, lantern.) Since we're creating a fireplace the comment should read "Fire" (without the quotations.) The trigger can just be left at action button and you want to check your "stop animation box" (since it's a fire we want it to move right?) Anyway that should do it.

Test play and it should look like the screenshot.

The comments for the other light types are in the script.


Compatability
Designed for RPGMaker XP. Shouldn't have any problems with other scripts.


Take Care,
Near


Enjoy,
Mike aka DerVVulfman
Reply }
#2
Cool Script. But for some reason, the ground, lamppost or lantern effects aren't working.. The fire effect worked. Anyway Nice script!
Reply }


Possibly Related Threads…
Thread Author Replies Views Last Post
   Trickster's Bag Of Skill Effects Trickster 5 15,227 02-23-2010, 06:32 AM
Last Post: fgsfds
   Passive Effects Trickster 10 17,789 02-16-2010, 05:49 AM
Last Post: fgsfds
   Custom Skill Effects Lowell 0 5,048 03-06-2008, 06:16 AM
Last Post: Lowell
   Passive Effects Engine Trickster 0 5,104 03-02-2008, 06:24 AM
Last Post: Trickster



Users browsing this thread: 2 Guest(s)