VX 스크립트

=begin
                              Thomas Edison VX

Version: 0.1
Author: BulletXt (bulletxt@gmail.com)
Date: 12/06/2009
Script based upon Kylock's (http://www.rpgmakervx.net/index.php?showtopic=2432)


Description:
 To make an event glow, put a Comment inside event with one of the following
 light modes. When importing this script to a new project, be sure to copy
 Graphics/Pictures/le.png to your project.
 
Light Modes:
 
 GROUND - Medium steady white light.
 GROUND2 - Medium white light with slight flicker.
 GROUND3 - Small steady red light.
 GROUND4 - Medium steady green light.
 GROUND5 - Medium steady blu light.
 FIRE - Large red light with a slight flicker.
 LIGHT - Small steady white light.
 LIGHT2 - X-Large steady white light.
 LIGHT3 - Small white light with slight flicker.
 TORCH - X-Large red light with a heavy flicker.
 TORCH2 - X-Large red light with a sleight flicker.
 TORCH3 - Large white light with a slight flicker.

You can make a specific light type turn off/on by turning
one of the following switches id ON/off. By default, the switches are off so
the lights will show. Of course, turning all switches to ON will make all
light types go off.

=end

#id switch that if ON turns off FIRE mode lights
#applies only to light mode: FIRE
FIRE = 87
#id switch that if ON turns off LIGHT mode lights
#applies to light mode: LIGHT, LIGHT2, LIGHT3
LIGHT = 86
#id switch that if ON turns off GROUND mode lights
#applies to light mode: GROUND, GROUND2, GROUND3, GROUND4, GROUND5
GROUND = 85
#id switch that if ON turns off TORCH mode lights
#applies to light mode: TORCH, TORCH2, TORCH3
TORCH = 84


# this value can be true or false. If true, it enables compatibility with
# KGC_DayNight script. When it's night, lights will automatically go on, when
# morning comes back lights will go off. If you set this to true, be sure to
# place this script below KGC_DayNight script in the Scripting Editor of VX.
ENABLE_KGC_DAY_NIGHT_SCRIPT = true

=begin
This value must be exactly the same of "PHASE_VARIABLE" setting in KGC_DayNight
script. By default the script sets it to 11.
To make the event light go on/off with DayNight system, set the event page
to be triggered with this variable id and set it to be 1 or above.
=end
KGC_DAY_NIGHT_SCRIPT_VARIABLE = 11

=begin
Tips and tricks:
  You can't make a single specific light inside event go on/off if
  a condition applies, for example if a switch is ON.
  For the moment, you can achieve this by doing
  a script call immediatley after you make the condition apply.
  If for example the light event must go on if switch 100 is ON, after you turn
  on the switch do this call script:
  $scene = Scene_Map.new
 
  Be aware that doing this call script will make game freeze
  for 30 milliseconds.

################################################################################
=end


$bulletxt_day_check = 0

class Spriteset_Map
 
  alias bulletxt_spriteset_map_initalize initialize
 def initialize
  @light_effects = []
  initialize_lights
  bulletxt_spriteset_map_initalize
  update
 end

  alias bulletxt_spriteset_map_dispose dispose
 def dispose
  bulletxt_spriteset_map_dispose
  for effect in @light_effects
   effect.light.dispose
  end
  @light_effects = []
 end
 
  alias bulletxt_spriteset_map_update update
 def update
  bulletxt_spriteset_map_update
    check_day_night if ENABLE_KGC_DAY_NIGHT_SCRIPT
  update_light_effects
   
 end

 
  def check_day_night
    #if night
   if $bulletxt_day_check == 0
    if $game_variables[KGC_DAY_NIGHT_SCRIPT_VARIABLE] == 1
      $scene = Scene_Map.new
      $bulletxt_day_check = 1
 
    end
   
  else
    #if morning
    if $game_variables[KGC_DAY_NIGHT_SCRIPT_VARIABLE] == 3
      $game_variables[KGC_DAY_NIGHT_SCRIPT_VARIABLE] = -1
      $scene = Scene_Map.new
      $bulletxt_day_check = 0
    end
  end
 
   
   
  end
 
 
 def initialize_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 == ["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 == ["LIGHT3"]
      type = "LIGHT3"
      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 == ["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 == ["TORCH3"]
      type = "TORCH3"
      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 == ["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 == ["GROUND2"]
      type = "GROUND2"
      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 == ["GROUND3"]
      type = "GROUND3"
      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 == ["GROUND4"]
      type = "GROUND4"
      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 == ["GROUND5"]
      type = "GROUND5"
      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
    end
   end
   
 for effect in @light_effects
  case effect.type
  
  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 "LIGHT3"
   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 "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 "TORCH3"
   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.blend_type = 1
     
  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 "GROUND2"
   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 "GROUND3"
   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, 255)
   effect.light.blend_type = 1
  when "GROUND4"
   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, 100)
   effect.light.blend_type = 1
  when "GROUND5"
   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, 100)
   effect.light.blend_type = 1
  end
 end
end


def update_light_effects
################################################################################
 
  # handle FIRE
  if $game_switches[FIRE]
    for effect in @light_effects
      next if effect.type != "FIRE"
      effect.light.visible = false
    end
  else
    for effect in @light_effects
     next if effect.type != "FIRE"
      effect.light.visible = true
    end
  end

  # handle LIGHT
  if $game_switches[LIGHT]
    for effect in @light_effects
      next if effect.type != "LIGHT" && effect.type != "LIGHT2" && effect.type != "LIGHT3"
      effect.light.visible = false
    end
  else
    for effect in @light_effects
      next if effect.type != "LIGHT" && effect.type != "LIGHT2" && effect.type != "LIGHT3"
      effect.light.visible = true
    end
  end


  # handle GROUND
  if $game_switches[GROUND]
    for effect in @light_effects
      next if effect.type != "GROUND" && effect.type != "GROUND2" && effect.type != "GROUND3" && effect.type != "GROUND4" && effect.type != "GROUND5"
      effect.light.visible = false
    end
  else
    for effect in @light_effects
      next if effect.type != "GROUND" && effect.type != "GROUND2" && effect.type != "GROUND3" && effect.type != "GROUND4" && effect.type != "GROUND5"
      effect.light.visible = true
    end
  end


  # handle TORCH
  if $game_switches[TORCH]
    for effect in @light_effects
      next if effect.type != "TORCH" && effect.type != "TORCH2" && effect.type != "TORCH3"
      effect.light.visible = false
    end
  else
    for effect in @light_effects
      next if effect.type != "TORCH" && effect.type != "TORCH2" && effect.type != "TORCH3"
      effect.light.visible = true
    end
  end

 

 

################################################################################

 for effect in @light_effects
  case effect.type

 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.opacity = rand(10) + 90
     
 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
 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
 when "LIGHT3"
   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.opacity = rand(10) + 90
     
 when "TORCH"
   effect.light.x = (effect.event.real_x - 1200 - $game_map.display_x) / 8 - 20 + rand(20) - 10
   effect.light.y = (effect.event.real_y - 1200 - $game_map.display_y) / 8 + rand(20) - 10
   effect.light.opacity = rand(30) + 70
 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.opacity = rand(10) + 90
 when "TORCH3"
   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.opacity = rand(10) + 90
     
 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
 when "GROUND2"
   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.opacity = rand(10) + 90
 when "GROUND3"
   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
 when "GROUND4"
   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
 when "GROUND5"
   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
  end
 end

  #close def
 end
#close class 
end


class Light_Effect
 attr_accessor :light
 attr_accessor :event
 attr_accessor :type
 
 def initialize(event, type)
  @light = Sprite.new
  @light.bitmap = Cache.picture("le.png")
  @light.visible = true
  @light.z = 1000
  @event = event
  @type = type
 end

end

밤낮스크립트와 같이쓰면 좋습니다.

데모를 반드시 확인해 주세요!

출처:rmrk

Comment '9'

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 3 습작 2012.12.24 5408
317 메뉴 전투 결과 상세 표시 스크립트 (한글화) 15 file 강진수 2010.02.26 3344
316 키입력 커맨드 입력 스킬 시스템 17 file 양념통닼 2008.05.29 3345
315 MOG 스토리 씬 22 file RPGbooster 2008.10.08 3345
314 메뉴 헬프 윈도우 중앙표시 스크립트 11 file 양념통닼 2008.06.10 3348
313 전투 GTBS_VX 1.0 택틱컬rpg 14 file RPGbooster 2008.10.08 3352
312 타이틀/게임오버 [NO.0 간단 스크립트] 타이틀에 제작자 정보 올려보기 14 file NO.0 2011.01.30 3362
311 메시지 NMS 3.0 Beta 주석 번역본(한글) 4 인천항 2010.01.13 3369
310 원경 원경(파노라마) 바꾸기 9 file 허걱 2010.05.28 3369
309 스킬 Yanfly Engine RD - Custom Dmg Formulas (커스텀 데미지, 관계도) 6 file communnn 2011.10.25 3377
308 메뉴 전투 결과 팝업 스크립트 12 file 카르와푸딩의아틀리에 2009.06.30 3381
307 전투 커먼이벤트 컷인 스크립트 15 허걱 2009.08.23 3399
306 스킬 Yanfly Engine RD - Display Skill Query (스킬 상세 정보) 8 file communnn 2011.10.24 3405
305 그래픽 먼가이상한데... 밤낮 변환 vx 44 작은악마 2008.03.18 3414
304 웨이포인트 9 file RPGbooster 2008.10.08 3415
303 전투 방패가없어? 그럼 방어못하게하는 스크립트. 16 file 할렘 2009.02.07 3425
302 중복이지만...제가 올린 단체 액알 스크립트에서 오류가 너무 많이 나서...개인 액알로 다시 올려드리는 겁니다. 15 21stcentury 2008.10.12 3429
» 그래픽 토마스 에디슨(파티클 엔진 비슷) 9 file 비극ㆍ 2010.04.19 3432
300 전투 VX SRPG 스크립트를 살짝 손대봤습니다. 13 아이미르 2011.03.31 3433
299 아이템 돈 아이템 장비를저장 11 file RPGbooster 2008.10.11 3452
298 퀘스트 Omegas7's Quest System 3.0 퀘스트 스크립트 5 리프네버 2010.01.09 3452
Board Pagination Prev 1 ... 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ... 32 Next
/ 32