Arena RPG Maker
Olá, visitante!
Seja bem-vindo ao fórum Arena RPG Maker, caso queira aprender sobre criação de jogos, está no fórum certo. Esperamos que possa aprender tanto quanto possa nos ensinar aqui.

Atenciosamente,
Equipe Arena RPG Maker.
Arena RPG Maker

Estamos de volta o/ ... Ou não.Eu amo a -Dark
Doações para o fórum abertas, clique aqui e saiba mais.
Últimos assuntos
» Pokémon Genesis Online! (PGO)
Qua 05 Jul 2017, 17:08 por Lexar

» Tileset Converter to MV
Sex 12 Maio 2017, 13:07 por Douggi

» [Dúvida] Como tirar a porcentagem de esquiva
Ter 09 Maio 2017, 22:15 por Neil Flame Runner

» Pack Resources, Sprites e etc
Qua 23 Dez 2015, 09:30 por raydengv

» Download RPG Maker 2003 + RTP em português
Ter 22 Dez 2015, 08:14 por ::KimMax::

» Fantasy Art Online
Dom 18 Out 2015, 16:42 por daviih123

» Você vai ter medo do Nerve gear?
Sab 25 Jul 2015, 16:02 por Kirito-kun

» O Barato é louco
Sab 27 Jun 2015, 15:26 por Halt

» Download RPG Maker 2000 + RTP em português
Qui 21 Maio 2015, 19:28 por Wismael

» Divulgando meu grupo e página do Facebook
Ter 19 Maio 2015, 13:06 por Halt


Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 Efeitos de Luz em Seg 08 Out 2012, 17:42

Carlos

avatar
Administrador
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:

[Você precisa estar registrado e conectado para ver esta imagem.]

Como usar:

Primeiramente você precisará ter este arquivo abaixo dentro da pasta Graphics/Pictures.

[Você precisa estar registrado e conectado para ver 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


__________________________________________
[Você precisa estar registrado e conectado para ver esta imagem.]


[Você precisa estar registrado e conectado para ver esta imagem.]

[Você precisa estar registrado e conectado para ver esta imagem.]
Ver perfil do usuário http://arenarpgmaker.eclipserpg.com

2 Re: Efeitos de Luz em Seg 08 Out 2012, 20:20

DeadEnd

avatar
Membro de Honra
Membro de Honra
Me Gusta *-*
Isso é bem útil obrigado.


__________________________________________

[Você precisa estar registrado e conectado para ver este link.][Você precisa estar registrado e conectado para ver esta imagem.]
Ver perfil do usuário

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum