Templo RPG Maker
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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

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

FrozenGraveyard

FrozenGraveyard
Membro Honorário I
Membro Honorário I
Efeitos de Luz - Near Fantastica
v3.0

Introdução

Este é um script muito antigo criado por Near Fantastica que serve para adicionar efeitos de luz simples em seus mapas de maneira rápida e prática via comentários dentro dos eventos.

Características
    Adiciona efeitos de luz dentro do mapa.


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)

Demo

Em anexo

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 e Agradecimentos
Feito por Near Fantastica

[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

BrunoFox

BrunoFox
Administrador
Administrador
A Luz ficara só em uma parte do mapa enquanto o resto fica escuro?

https://templorpgmakerbr.forumeiros.com

FrozenGraveyard

FrozenGraveyard
Membro Honorário I
Membro Honorário I
Sim mais você tbm pode acrescentar em outros lugares do mapa tbm

Conteúdo patrocinado


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

Permissões neste sub-fórum
Não podes responder a tópicos