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
Социальные закладки