Flashlight & Darkness
Автор: HopeBree
Версия: 1.3
Тип: Графика
Описание:
Скрипт позволяет использовать фонарик и уменьшение радиуса обзора.
Особенности:- Включение и выключение фонарика с помощью кнопки
- Использовать любые скрипты на освещение для создания фонарика
- Использовать батарейки для фонарика
Использование:
Изменение графики для Darkness осуществляется через скрипт darkness("image")
Изменение дальности обзора Darkness осуществляется через скрипт darkness_zoom(value)
Создание фонарика на примере VE - Light Effects
В Comment Event создать следующие:
	Код:
	     Conditional Branch: Script: $game_system.flashlight_visible == true
       Comment: <actor lantern 1: 255>
     else
       Comment: <actor lantern 1: 0>
     end
 Демо-версия:
Скачать - Версия 1.2
Скрипт:
	PHP код:
	
#==============================================================================#
#  Flashlight & Darkness                                                       #
#------------------------------------------------------------------------------#
#  Автор: HopeBree                                                             #
#  Для: RPGMAKER VX ACE                                                        #
#  Версия 1.3                                                                  #
#------------------------------------------------------------------------------#
#  06.01.2016 - Версия 1.3 - Багфикс                                           #
#  13.11.2015 - Версия 1.2 - Добавлена дальность обзора                        #
#  12.11.2015 - Версия 1.1 - Багфикс                                           #
#  10.10.2015 - Версия 1.0 - Релиз                                             #
#==============================================================================#
# Скрипт позволяет использовать фонарик и уменьшение радиуса обзора.           #
#   ● Включение и выключение фонарика с помощью кнопки                         #
#   ● Использовать любые скрипты на освещение для создания фонарика            #
#   ● Использовать батарейки для фонарика                                      #
#------------------------------------------------------------------------------#
# Изменение графики для Darkness осуществляется через скрипт darkness("image") #
# Изменение дальности обзора Darkness осуществляется через скрипт              #
#                                                         darkness_zoom(value) #
#------------------------------------------------------------------------------#
# Создание фонарика на примере VE - Light Effects                              #
#   В Comment Event создать следующие:                                         #
#     Conditional Branch: Script: $game_system.flashlight_visible == true      #
#       Comment: <actor lantern 1: 255>                                        #
#     else                                                                     #
#       Comment: <actor lantern 1: 0>                                          #
#     end                                                                      #
#==============================================================================#
module HB                                                                      #
  module FLASHLIGHT                                                            #
#================================#=============================================#
# Настройки                      # Описание                                    #
#================================#=============================================#
    FLASHLIGHT  = 1              # ID фонарика                                 #
    BUTTON      = :A             # Кнопка вкл/выкл фонарика                    #
    ONOFFSE     = "Cursor1"      # Звук вкл/выкл фонарика                      #
    USE_BATTARY = true           # Использовать батарейки                      #
#--------------------------------#---------------------------------------------#
    VANILLA_FL  = false          # Создание фонарика без скриптов на освещение #
#--------------------------------#---------------------------------------------#
    ZF_OVERLAY  = 296            # Z слоя фонарика                             #
    ZD_OVERLAY  = 302            # Z слоя Darkness                             #
#--------------------------------#---------------------------------------------#
    F_SWITCH    = 90             # Перелючетль активности фонарика             #
    F_VARIABLE  = 90             # Переменная для енергии в фонарике           #
    D_SWITCH    = 91             # Перелючетль активности Darkness             #
#--------------------------------#---------------------------------------------#
    C_EVENT     = 1              # ID Comment Event                            #
#================================#=============================================#
  end                                                                          #
end                                                                            #
#==============================================================================#
class Game_System
  attr_accessor :flashlight_visible
  attr_accessor :darkness_visible
  attr_accessor :darkness
  attr_accessor :darkness_zoom
  
  alias hb_flashlight_initialize initialize
  def initialize
    hb_flashlight_initialize
    @flashlight_visible = false
    @darkness_visible = false
    @darkness = "darkness"
    @darkness_zoom = 1
  end
end
class Spriteset_Map
  
  alias hb_create_flashlight initialize
  def initialize
    hb_create_flashlight
    create_flashlight if HB::FLASHLIGHT::VANILLA_FL == true
    create_darkness
  end
  def create_flashlight
    @flashlight = Sprite.new(@viewport1)
    @flashlight.opacity = 200
    @flashlight.blend_type = 1 
    @flashlight.z = HB::FLASHLIGHT::ZF_OVERLAY 
    @flashlight.visible = $game_system.flashlight_visible
  end
  def create_darkness
    @darkness = Sprite.new(@viewport1)
    @darkness.bitmap = Cache.system($game_system.darkness)
    @current_darkness = $game_system.darkness
    @darkness.opacity = 200
    @darkness.blend_type = 2 
    @darkness.z = HB::FLASHLIGHT::ZD_OVERLAY
    @darkness.visible = $game_system.darkness_visible
  end
  
  alias hb_update_flashlight update
  def update
    hb_update_flashlight
    update_flashlight
    update_darkness
  end
  def update_flashlight
    return if !@flashlight
    return if $game_switches[HB::FLASHLIGHT::F_SWITCH]
    return if HB::FLASHLIGHT::VANILLA_FL == false
    if !$game_party.has_item?($data_items[HB::FLASHLIGHT::FLASHLIGHT])
      $game_system.flashlight_visible = false
      @flashlight.visible = true
    end
    return if !$game_party.has_item?($data_items[HB::FLASHLIGHT::FLASHLIGHT])
    if HB::FLASHLIGHT::USE_BATTARY == true
      if @flashlight.visible == true && $game_variables[HB::FLASHLIGHT::F_VARIABLE] > 0
        $game_variables[HB::FLASHLIGHT::F_VARIABLE] -= 1
      end
      if $game_variables[HB::FLASHLIGHT::F_VARIABLE] == 0
        @flashlight.visible = false
        $game_system.flashlight_visible = false
      end
    end
    if Input.trigger?(HB::FLASHLIGHT::BUTTON)
      Audio.se_play("Audio/SE/" + HB::FLASHLIGHT::ONOFFSE, 70, 100)
      if HB::FLASHLIGHT::USE_BATTARY == true
        return if $game_variables[HB::FLASHLIGHT::F_VARIABLE] == 0
      end
      if @flashlight.visible == true 
        @flashlight.visible = false
        $game_system.flashlight_visible = false
      else
        @flashlight.visible = true
        $game_system.flashlight_visible = true
      end
    end
    filename = "flashlight_"
    filename += $game_player.direction.to_s
    @flashlight.bitmap.dispose if @flashlight.bitmap
    @flashlight.bitmap = Cache.system(filename)
    @flashlight.ox = @flashlight.bitmap.width / 2
    @flashlight.oy = @flashlight.bitmap.height / 2
    @flashlight.x = $game_player.screen_x
    @flashlight.y = $game_player.screen_y - 16
  end
  def update_darkness
    return if !@darkness
    if $game_system.darkness != @current_darkness
      if !$game_system.darkness.nil?
        @darkness.bitmap = Cache.system($game_system.darkness)
        @current_darkness = $game_system.darkness
      end
    end
    if $game_switches[HB::FLASHLIGHT::D_SWITCH] == false
      @darkness.visible = false
      $game_system.darkness_visible = false
    else
      @darkness.visible = true
      $game_system.darkness_visible = true
    end
    @darkness.ox = @darkness.bitmap.width / 2
    @darkness.oy = @darkness.bitmap.height / 2
    @darkness.x = $game_player.screen_x
    @darkness.y = $game_player.screen_y - 16
    @darkness.zoom_x = $game_system.darkness_zoom
    @darkness.zoom_y = $game_system.darkness_zoom
  end
  
  alias hb_dispose_flashlight dispose
  def dispose
    hb_dispose_flashlight
    dispose_flashlight
    dispose_darkness
  end
  def dispose_flashlight
    return if !@flashlight
    @flashlight.bitmap.dispose if @flashlight.bitmap
    @flashlight.dispose
  end
  def dispose_darkness
    return if !@darkness
    @darkness.bitmap.dispose if @darkness.bitmap
    @darkness.dispose
  end  
end
class Scene_Map
  alias hb_update_flashlight update
  def update
    hb_update_flashlight
    update_flashlight
  end
  
  def update_flashlight
    return if $game_switches[HB::FLASHLIGHT::F_SWITCH]
    return if HB::FLASHLIGHT::VANILLA_FL == true
    if !$game_party.has_item?($data_items[HB::FLASHLIGHT::FLASHLIGHT])
      $game_system.flashlight_visible = false
      $game_temp.reserve_common_event(HB::FLASHLIGHT::C_EVENT)
    end
    return if !$game_party.has_item?($data_items[HB::FLASHLIGHT::FLASHLIGHT])
    if HB::FLASHLIGHT::USE_BATTARY == true
      if $game_system.flashlight_visible == true && $game_variables[HB::FLASHLIGHT::F_VARIABLE] > 0
        $game_variables[HB::FLASHLIGHT::F_VARIABLE] -= 1
      elsif $game_system.flashlight_visible == true && $game_variables[HB::FLASHLIGHT::F_VARIABLE] == 0
        $game_system.flashlight_visible = false
        $game_temp.reserve_common_event(HB::FLASHLIGHT::C_EVENT)
      end
    end
    if Input.trigger?(HB::FLASHLIGHT::BUTTON)
      Audio.se_play("Audio/SE/" + HB::FLASHLIGHT::ONOFFSE, 70, 100)
      if HB::FLASHLIGHT::USE_BATTARY == true
        return if $game_variables[HB::FLASHLIGHT::F_VARIABLE] == 0
      end
      if $game_system.flashlight_visible == true 
        $game_system.flashlight_visible = false
        $game_temp.reserve_common_event(HB::FLASHLIGHT::C_EVENT)
      else
        $game_system.flashlight_visible = true
        $game_temp.reserve_common_event(HB::FLASHLIGHT::C_EVENT)
      end
    end
  end
end
class Game_Interpreter
  def darkness(image)
    $game_system.darkness = image
  end
  def darkness_zoom(value)
    $game_system.darkness_zoom = value
  end
end 
 
						
					
Социальные закладки