Вопрос по Light Effects
10 года 5 мес. назад - 10 года 5 мес. назад #87900
от Alexandr_7
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Alexandr_7 создал тему: Вопрос по Light Effects
Здравствуйте! Я хочу спросить по скрипту этому. Скрипт хорош но настройка оттенка экрана скриптовкой неустраивает.
Есть скрипт тоже системы свечения но сделанный скорее любиелем.
Он меня полностью устраивает. Но неустраивает только одно. Нельзя отключить когда необходмо. Вообще выключить свечение где поставил нельзя даже если удалишь событие.
Есть скрипт тоже системы свечения но сделанный скорее любиелем.
Скрипт
Code:
#==============================================================================
#========================== Light Effects XP 2.1 ==============================
#------------------------------------------------------------------------------
# Script de: Kylock (originalmente para RMXP por Near Fantastica)
# Tradução por Equipe Gemstone
# Novos modos de luz da versão 2.0 por Kbça
# Disponibilizado por Massakmkz
#==============================================================================
# Para fazer com que um evento brilhe, escreva um Comentário: com qualquer um
# dos modos de luz suportados abaixo.
#=============================== Versões ======================================
# 1.0 - Lançamento original
# 1.1 - Novos modos de luz adicionados: LIGHT2, TORCH, TORCH2.
# - Mudou o modo de blend do sprite para Adicionar (parece um pouco melhor).
# - Luzes de fogo agora estão com tonalidade vermelha.
# 2.0 - Novos modos de luz adicionados: (by Kbça)
# XENON, BLOOD, GREEN, WHITE, CYAN, PINK e YELLOW
# 2.1 - Alguns bugs concertados: (by Massakmkz)
#============================= Modos de Luz ====================================
# GROUND - Médio alcance e luz branca.
# FIRE - Luz vermelha que oscila levemente.
# LIGHT - Alcance curto e luz branca.
# LIGHT2 - Longo alcance e luz branca.
# TORCH - Grande luz vermelha com muita oscilação.
# TORCH2 - Grande luz vermelha que oscila levemente.
# XENON - Alcançe médio, luz azul imitando Xenon.
# BLOOD - Luz vermelho-sangue de alcançe médio, ideal para jogos de terror!
# GREEN - Luz verde de médio alcançe.
# WHITE - Luz branca de médio alcançe, porém mais forte que GROUND e LIGHT.
# CYAN - Alcançe médio, cor verde piscina e um tanto forte.
# PINK - Cor rosa, de médio alcançe.
# YELLOW - Luz forte de médio alcançe de cor amarela.
#==============================================================================
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 == ["GROUND"]
type = "GROUND"
light_effects = Light_Effect.new(event,type)
light_effects.light.zoom_x = 2
light_effects.light.zoom_y = 2
light_effects.light.opacity = 100
@light_effects.push(light_effects)
end
if event.list[i].code == 108 and event.list[i].parameters == ["FIRE"]
type = "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 = 100
@light_effects.push(light_effects)
end
if event.list[i].code == 108 and event.list[i].parameters == ["LIGHT"]
type = "LIGHT"
light_effects = Light_Effect.new(event,type)
light_effects.light.zoom_x = 1
light_effects.light.zoom_y = 1
light_effects.light.opacity = 150
@light_effects.push(light_effects)
end
if event.list[i].code == 108 and event.list[i].parameters == ["LIGHT2"]
type = "LIGHT2"
light_effects = Light_Effect.new(event,type)
light_effects.light.zoom_x = 6
light_effects.light.zoom_y = 6
light_effects.light.opacity = 150
@light_effects.push(light_effects)
end
if event.list[i].code == 108 and event.list[i].parameters == ["TORCH"]
type = "TORCH"
light_effects = Light_Effect.new(event,type)
light_effects.light.zoom_x = 6
light_effects.light.zoom_y = 6
light_effects.light.opacity = 150
@light_effects.push(light_effects)
end
if event.list[i].code == 108 and event.list[i].parameters == ["TORCH2"]
type = "TORCH2"
light_effects = Light_Effect.new(event,type)
light_effects.light.zoom_x = 6
light_effects.light.zoom_y = 6
light_effects.light.opacity = 150
@light_effects.push(light_effects)
end
if event.list[i].code == 108 and event.list[i].parameters == ["XENON"]
type = "XENON"
light_effects = Light_Effect.new(event,type)
light_effects.light.zoom_x = 2
light_effects.light.zoom_y = 2
light_effects.light.opacity = 150
@light_effects.push(light_effects)
end
if event.list[i].code == 108 and event.list[i].parameters == ["BLOOD"]
type = "BLOOD"
light_effects = Light_Effect.new(event,type)
light_effects.light.zoom_x = 2
light_effects.light.zoom_y = 2
light_effects.light.opacity = 150
@light_effects.push(light_effects)
end
if event.list[i].code == 108 and event.list[i].parameters == ["GREEN"]
type = "GREEN"
light_effects = Light_Effect.new(event,type)
light_effects.light.zoom_x = 2
light_effects.light.zoom_y = 2
light_effects.light.opacity = 150
@light_effects.push(light_effects)
end
if event.list[i].code == 108 and event.list[i].parameters == ["WHITE"]
type = "WHITE"
light_effects = Light_Effect.new(event,type)
light_effects.light.zoom_x = 2
light_effects.light.zoom_y = 2
light_effects.light.opacity = 180
@light_effects.push(light_effects)
end
if event.list[i].code == 108 and event.list[i].parameters == ["CYAN"]
type = "CYAN"
light_effects = Light_Effect.new(event,type)
light_effects.light.zoom_x = 2
light_effects.light.zoom_y = 2
light_effects.light.opacity = 180
@light_effects.push(light_effects)
end
if event.list[i].code == 108 and event.list[i].parameters == ["PINK"]
type = "PINK"
light_effects = Light_Effect.new(event,type)
light_effects.light.zoom_x = 2
light_effects.light.zoom_y = 2
light_effects.light.opacity = 180
@light_effects.push(light_effects)
end
if event.list[i].code == 108 and event.list[i].parameters == ["YELLOW"]
type = "YELLOW"
light_effects = Light_Effect.new(event,type)
light_effects.light.zoom_x = 2
light_effects.light.zoom_y = 2
light_effects.light.opacity = 180
@light_effects.push(light_effects)
end
end
end
for effect in @light_effects
case effect.type
when "GROUND"
effect.light.x = (effect.event.real_x - 400 - $game_map.display_x) / 8
effect.light.y = (effect.event.real_y - 400 - $game_map.display_y) / 8
effect.light.blend_type = 1
when "FIRE"
effect.light.x = (effect.event.real_x - 600 - $game_map.display_x) / 8 + rand(6) - 3
effect.light.y = (effect.event.real_y - 600 - $game_map.display_y) / 8 + rand(6) - 3
effect.light.tone = Tone.new(255,-100,-255, 0)
effect.light.blend_type = 1
when "LIGHT"
effect.light.x = (-0.25 / 2 * $game_map.display_x) + (effect.event.x * 32) - 15
effect.light.y = (-0.25 / 2 * $game_map.display_y) + (effect.event.y * 32) - 15
effect.light.blend_type = 1
when "LIGHT2"
effect.light.x = (effect.event.real_x - 1200 - $game_map.display_x) / 8 - 20
effect.light.y = (effect.event.real_y - 1200 - $game_map.display_y) / 8
effect.light.blend_type = 1
when "TORCH"
effect.light.x = (effect.event.real_x - 1200 - $game_map.display_x) / 8 - 20
effect.light.y = (effect.event.real_y - 1200 - $game_map.display_y) / 8
effect.light.tone = Tone.new(255,-100,-255, 0)
effect.light.blend_type = 1
when "TORCH2"
effect.light.x = (effect.event.real_x - 1200 - $game_map.display_x) / 8 - 20
effect.light.y = (effect.event.real_y - 1200 - $game_map.display_y) / 8
effect.light.tone = Tone.new(255,-100,-255, 0)
effect.light.blend_type = 1
when "XENON"
effect.light.x = (effect.event.real_x - 400 - $game_map.display_x) / 8
effect.light.y = (effect.event.real_y - 400 - $game_map.display_y) / 8
effect.light.tone = Tone.new(-200,-200,255, 0)
effect.light.blend_type = 1
when "BLOOD"
effect.light.x = (effect.event.real_x - 400 - $game_map.display_x) / 8
effect.light.y = (effect.event.real_y - 400 - $game_map.display_y) / 8
effect.light.tone = Tone.new(255,-230,-230, 0)
effect.light.blend_type = 1
when "GREEN"
effect.light.x = (effect.event.real_x - 400 - $game_map.display_x) / 8
effect.light.y = (effect.event.real_y - 400 - $game_map.display_y) / 8
effect.light.tone = Tone.new(-150,255,-150, 0)
effect.light.blend_type = 1
when "WHITE"
effect.light.x = (effect.event.real_x - 400 - $game_map.display_x) / 8
effect.light.y = (effect.event.real_y - 400 - $game_map.display_y) / 8
effect.light.tone = Tone.new(255,255,255, 0)
effect.light.blend_type = 1
when "CYAN"
effect.light.x = (effect.event.real_x - 400 - $game_map.display_x) / 8
effect.light.y = (effect.event.real_y - 400 - $game_map.display_y) / 8
effect.light.tone = Tone.new(-255,0,0, 0)
effect.light.blend_type = 1
when "PINK"
effect.light.x = (effect.event.real_x - 400 - $game_map.display_x) / 8
effect.light.y = (effect.event.real_y - 400 - $game_map.display_y) / 8
effect.light.tone = Tone.new(0,-255,0, 0)
effect.light.blend_type = 1
when "YELLOW"
effect.light.x = (effect.event.real_x - 400 - $game_map.display_x) / 8
effect.light.y = (effect.event.real_y - 400 - $game_map.display_y) / 8
effect.light.tone = Tone.new(0,0,-255, 0)
effect.light.blend_type = 1
end
end
end
def update_light_effects
if $game_switches[13]# Controle de luz (nome do switch)
for effect in @light_effects
next if effect.type == "FIRE" || effect.type == "TORCH"
effect.light.visible = false
end
else
for effect in @light_effects
next if effect.type == "FIRE" || effect.type == "TORCH"
effect.light.visible = true
end
end
for effect in @light_effects
case effect.type
when "GROUND"
effect.light.x = (effect.event.real_x - $game_map.display_x) / 4 -82
effect.light.y = (effect.event.real_y - $game_map.display_y) / 4 -82
when "FIRE"
effect.light.x = (effect.event.real_x - $game_map.display_x) / 4 -82 + rand(6) - 3
effect.light.y = (effect.event.real_y - $game_map.display_y) / 4 -82 + rand(6) - 3
effect.light.opacity = rand(10) + 90
when "LIGHT"
effect.light.x = (-0.25 / 1 * $game_map.display_x) + (effect.event.x * 32) - 15
effect.light.y = (-0.25 / 1 * $game_map.display_y) + (effect.event.y * 32) - 15
when "LIGHT2"
effect.light.x = (effect.event.real_x - $game_map.display_x) / 4 -82 - 20
effect.light.y = (effect.event.real_y - $game_map.display_y) / 4 -82
when "TORCH"
effect.light.x = (effect.event.real_x - $game_map.display_x) / 4 -82 - 20 + rand(20) - 10
effect.light.y = (effect.event.real_y - $game_map.display_y) / 4 + rand(20) - 10
effect.light.opacity = rand(30) + 70
when "TORCH2"
effect.light.x = (effect.event.real_x - $game_map.display_x) / 4 -82 - 20
effect.light.y = (effect.event.real_y - $game_map.display_y) / 4 -82
effect.light.opacity = rand(10) + 90
when "XENON"
effect.light.x = (effect.event.real_x - $game_map.display_x) / 4 -82
effect.light.y = (effect.event.real_y - $game_map.display_y) / 4 -82
when "BLOOD"
effect.light.x = (effect.event.real_x - $game_map.display_x) / 4 -82
effect.light.y = (effect.event.real_y - $game_map.display_y) / 4 -82
when "GREEN"
effect.light.x = (effect.event.real_x - $game_map.display_x) / 4 -82
effect.light.y = (effect.event.real_y - $game_map.display_y) / 4 -82
when "WHITE"
effect.light.x = (effect.event.real_x - $game_map.display_x) / 4 -82
effect.light.y = (effect.event.real_y - $game_map.display_y) / 4 -82
when "CYAN"
effect.light.x = (effect.event.real_x - $game_map.display_x) / 4 -82
effect.light.y = (effect.event.real_y - $game_map.display_y) / 4 -82
when "PINK"
effect.light.x = (effect.event.real_x - $game_map.display_x) / 4 -82
effect.light.y = (effect.event.real_y - $game_map.display_y) / 4 -82
when "YELLOW"
effect.light.x = (effect.event.real_x - $game_map.display_x) / 4 -82
effect.light.y = (effect.event.real_y - $game_map.display_y) / 4 -82
end
end
end
end
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
Он меня полностью устраивает. Но неустраивает только одно. Нельзя отключить когда необходмо. Вообще выключить свечение где поставил нельзя даже если удалишь событие.
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Последнее редактирование: 10 года 5 мес. назад пользователем DeadElf79.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 5 мес. назад #87902
от DeadElf79
DeadElf79 ответил в теме Вопрос по Light Effects
В коде скрипта указан свич под номером 13, попробуй с ним повзаимодействовать. А вообще - это тема для отдельного обсуждения, пойду перенесу.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.091 секунд
