1 Efeitos de Luz Seg 08 Out 2012, 18:42
Carlos
Administrador
Introdução:
Este é um script que serve para adicionar efeitos de luz simples em seus mapas de maneira rápida e prática via comentários dentro dos eventos.
Screenshots:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Como usar:
Primeiramente você precisará ter este arquivo abaixo dentro da pasta Graphics/Pictures.
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
No evento onde deseja que seja a posição do efeito de luz, deverá ser colocado um comentário com o conteúdo "Light Effects" (sem aspas). Na segunda linha do comentário você deverá adicionar um segundo termo para o tipo de efeito de luz que deseja. Estes são: "Ground", "Fire", "Lamppost", "LeftLantern", ou "RightLantern".(todos sem aspas também)
Script:
Créditos:
Este é um script que serve para adicionar efeitos de luz simples em seus mapas de maneira rápida e prática via comentários dentro dos eventos.
Screenshots:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Como usar:
Primeiramente você precisará ter este arquivo abaixo dentro da pasta Graphics/Pictures.
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
No evento onde deseja que seja a posição do efeito de luz, deverá ser colocado um comentário com o conteúdo "Light Effects" (sem aspas). Na segunda linha do comentário você deverá adicionar um segundo termo para o tipo de efeito de luz que deseja. Estes são: "Ground", "Fire", "Lamppost", "LeftLantern", ou "RightLantern".(todos sem aspas também)
Script:
- Código:
#================================
# Light Effects
#================================
# By: Near Fantastica
# Date: 28.06.05
# Version: 3
#================================
#==========Instruções==========
# No evento onde deseja que seja a posição do efeito de luz,
# deverá ser colocado um comentário com o conteúdo "Light Effects"
# (sem aspas). Na segunda linha do comentário você deverá adicionar um segundo
# termo para o tipo de efeito de luz que deseja.
# Estes são: "Ground", "Fire", "Lamppost", "LeftLantern", ou "RightLantern" (todos sem aspas também).
#================================
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 = 102
@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 = 140
@light_effects.push(light_effects)
when "LAMPPOST"
light_effects = Light_Effect.new(event,"LEFT LAMP POST")
light_effects.light.opacity = 102
@light_effects.push(light_effects)
light_effects = Light_Effect.new(event,"RIGHT LAMP POST")
light_effects.light.opacity = 102
@light_effects.push(light_effects)
when "LEFTLANTERN"
light_effects = Light_Effect.new(event,type)
light_effects.light.opacity = 160
@light_effects.push(light_effects)
when "RIGHTLANTERN"
light_effects = Light_Effect.new(event,type)
light_effects.light.opacity = 160
@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
Créditos:
- Spoiler:
- Feito por Near Fantastica