VX 스크립트

VX에서 포그 그래픽을 사용하자

스크립트의 사용법입니다. ^^;

[강좌보기]
   <--강좌 원본??



우선 아래 스크립트를 MAIN섹션 위쪽에 추가한다.

 

class Game_Temp
  attr_accessor :fog_name
  attr_accessor :fog_opacity
  attr_accessor :fog_target_opacity
  attr_accessor :fog_blend_type
  attr_accessor :fog_zoom
  attr_accessor :fog_sx
  attr_accessor :fog_sy
  attr_accessor :fog_tone
 
  alias original_initialize initialize
  def initialize
    original_initialize
    @fog_name = ""
    @fog_tone = Tone.new ( 0, 0, 0, 0 )
    @fog_opacity = 0
    @fog_target_opacity = 80
    @fog_blend_type = 0
    @fog_zoom = 100
    @fog_sx = 1
    @fog_sy = 1
  end
 
end

class Game_Map
  attr_accessor :fog_name
  attr_accessor :fog_opacity
  attr_accessor :fog_target_opacity
  attr_accessor :fog_blend_type
  attr_accessor :fog_zoom
  attr_accessor :fog_sx
  attr_accessor :fog_sy
  attr_accessor :fog_ox
  attr_accessor :fog_oy
  attr_accessor :fog_tone
  attr_accessor :fog_start_loop
  attr_accessor :fog_eventid
  attr_accessor :fog_visible
  attr_accessor :fog
 
  alias original_initialize initialize
  def initialize
    original_initialize
    @fog = Plane.new ( @viewport1 )
    @fog_ox = 0
    @fog_oy = 0
  end
 
  alias original_setup setup
  def setup ( map_id )
    original_setup ( map_id )
    #fog_event
  end

  alias original_update update
  def update
    original_update
    if ( @fog_visible and @fog )
      fog_update
    end
  end  

  def fog_init
      @fog_name = $game_temp.fog_name
      @fog_tone = $game_temp.fog_tone
      @fog_opacity = $game_temp.fog_opacity
      @fog_target_opacity = $game_temp.fog_target_opacity
      @fog_blend_type = $game_temp.fog_blend_type
      @fog_zoom = $game_temp.fog_zoom
      @fog_sx = $game_temp.fog_sx
      @fog_sy = $game_temp.fog_sy
      @fog_tone_target = Tone.new ( 0, 0, 0, 0 )
      @fog_tone_duration = 0
      @fog_opacity_duration = 0
      @fog_opacity_target = 0
      @fog_previous_name = ""
      fog_setup
  end
 
  def fog_setup
    fog_hide
    if ( ( @fog_previous_name != @fog_name ) and ( @fog_name != "" ) )
      @fog.bitmap = Cache.picture ( @fog_name )
      @fog_name_previous = @fog_name
      @fog_opacity = @fog_target_opacity
      @fog.opacity = @fog_opacity
      @fog.blend_type = @fog_blend_type
      @fog.zoom_x = @fog_zoom / 100
      @fog.zoom_y = @fog_zoom / 100
      @fog.ox = @fog_ox
      @fog.oy = @fog_oy
      @fog.tone = @fog_tone
      @fog.z = 99
      @fog_visible = true
    else
       fog_hide
    end
  end
 
  def fog_update
    @fog_ox -= @fog_sx / 8.0
    @fog_oy -= @fog_sy / 8.0

    if ( @fog_tone_duration >= 1 )
      d = @fog_tone_duration
      target = @fog_tone_target
      @fog_tone.red = (@fog_tone.red * (d - 1) + target.red) / d
      @fog_tone.green = (@fog_tone.green * (d - 1) + target.green) / d
      @fog_tone.blue = (@fog_tone.blue * (d - 1) + target.blue) / d
      @fog_tone.gray = (@fog_tone.gray * (d - 1) + target.gray) / d
      @fog_tone_duration -= 1
    end
    if ( @fog_opacity_duration >= 1 )
      d = @fog_opacity_duration
      @fog_opacity = (@fog_opacity * (d - 1) + @fog_opacity_target) / d
      @fog_opacity_duration -= 1
    end
    @fog.opacity = @fog_opacity
    @fog.blend_type = @fog_blend_type
    @fog.zoom_x = @fog_zoom / 100
    @fog.zoom_y = @fog_zoom / 100
    @fog.ox = @fog_ox
    @fog.oy = @fog_oy
    @fog.tone = @fog_tone
  end
 
  def fog_show
    fog_init
  end
 
  def fog_hide
    @fog_visible = false
    @fog_opacity = 0
    $game_temp.fog_opacity = 0
  end
 
  def fog_clear
    @fog_visible = false
    @fog_opacity = 0
    $game_temp.fog_opacity = 0
    @fog_target_opacity = 0
    $game_temp.fog_target_opacity = 0
    fog_show
  end
   
  def scroll_up ( distance )
    if ( loop_vertical? )
      @display_y += @map.height * 256 - distance
      @display_y %= @map.height * 256
      @parallax_y -= distance
      @fog_oy -= distance / 8.0
    else
      last_y = @display_y
      @display_y = [@display_y - distance, 0].max
      @parallax_y += @display_y - last_y
      @fog_oy += ( @display_y - last_y ) / 8.0
    end
  end
 
  def scroll_down ( distance )
    if ( loop_vertical? )
      @display_y += distance
      @display_y %= @map.height * 256
      @parallax_y += distance
      @fog_oy += distance / 8.0
    else
      last_y = @display_y
      @display_y = [@display_y + distance, (height - 13) * 256].min
      @parallax_y += @display_y - last_y
      @fog_oy += ( @display_y - last_y ) / 8.0
    end
  end

  def scroll_left ( distance )
    if ( loop_horizontal? )
      @display_x += @map.width * 256 - distance
      @display_x %= @map.width * 256
      @parallax_x -= distance
      @fog_ox -= distance / 8.0
    else
       last_x = @display_x
      @display_x = [@display_x - distance, 0].max
      @parallax_x += @display_x - last_x
      @fog_ox += ( @display_x - last_x ) / 8.0
    end
  end
 
  def scroll_right ( distance )
    if ( loop_horizontal? )
      @display_x += distance
      @display_x %= @map.width * 256
      @parallax_x += distance
      @fog_ox += distance / 8.0
    else
      last_x = @display_x
      @display_x = [@display_x + distance, (width - 17) * 256].min
      @parallax_x += @display_x - last_x
      @fog_ox += ( @display_x - last_x ) / 8.0
    end
  end
end

class Scene_Map < Scene_Base
 
  alias original_start start
  def start
    original_start
    $game_map.fog_show
  end

  alias original_terminate terminate
  def terminate
    original_terminate
    $game_map.fog_hide
  end
 
end

class Game_Player < Game_Character
 
  alias original_perform_transfer perform_transfer
  def perform_transfer
    original_perform_transfer
    $game_map.fog_show
  end
 
end

 



그리고나서 포그를 표시하고픈 맵이 벤트 커맨드로  아래 스크립트 명령어를 추가한다.

 

$game_temp.fog_name = "포그그래픽 파일명"
$game_temp.fog_zoom = 300
$game_temp.fog_sx = 1
$game_temp.fog_sy = 1
$game_temp.fog_target_opacity = 80
$game_map.fog_show

 


위의 스크립트가 화면에 포그 그래픽을 표시하는 명령인데.
보시면 대략 어떤 의미지는 알거라고 생각된다.
그리고 이벤트로 포그그래픽을 표시하다보니.
자동 또는 병렬처리로 이벤트를 시작하게 하고 셀프스위치로 꺼줘야겠죠?
굳이 말하지 않아도 다 아시겟지만 ^^


포그 그래픽은 Graphics/Pictures 폴더에 넣어준다.
사용자 삽입 이미지












TAG •
Comment '16'
  • ?
    사신 2008.02.18 19:21

    저... 오류뜹니다만...^^;;

  • ?
    salp2113 2008.08.12 15:12
    오 좋은데요 어두운 맵에 쓰면 멋져요
  • ?
    eldkfnrk 2008.08.13 19:00
    이벤트를 한후 다른곳으로 장소이동해도 계속포그그래픽이 남는데 어떻게해야 되요?
  • ?
    niceGame 2008.08.24 01:18
    아 인제 포그 사용법을 알게됬어요 ㅎㅎ
    아무렇게나 하다보니..
  • ?
    niceGame 2008.08.24 02:10
    아방스님
    포그 이벤트를 사용할때 병렬 처리로 스크립트를 써서 사용을 했는데요..
    아무리 셀프스위치로 이벤삭제.. 등 스위치등을 꺼도..
    eldkfnrk님 처럼 다른맵에도 포그 이벤트가 작용하는데
    어떻게 해야해요?
  • ?
    근성부족 2008.09.28 20:34
    끌때어떻게 꺼야할지 모르겠네요...
  • ?
    근성부족 2008.09.28 20:39
    끝내는 방법_

    $game_temp.fog_target_opacity = 80
    부분 숫자를 0으로 바꿔주시거나
    $game_map.fog_show
    이부분에서 show 를 hide로 바꿔주세요
  • profile
    카와이 2009.01.13 13:52
    아.. 저거 포토샵에서 필터가서 구름모양하면 되는거 ㄲㄲ
  • ?
    뉴공 2009.11.15 23:40

    이 스크립트만 적용하면 세이브시 자꾸 오류가 발생하네요....

  • ?
    1000℃ 복숭아 2010.02.17 18:24

    오.. 감사합니다.

  • ?
    소울◎이터 2010.12.28 20:33

    SyntaxError occurred while running script

    라고 뜨는데요

  • ?
    뾰롱뾰롱 2011.02.24 17:10

    같은 장소에서 바로 안개효과를 꺼도, 일단 불러진 안개효과가 바로 사라지지는 않는군요.


    장소이동을 하거나, 아니면 잠시 스테이츠창으로 넘어갔다 온다던지 하는 식으로

    화면 전환을 해줘야만 하는군요.

  • ?
    뾰롱뾰롱 2011.02.25 12:29

    아.. 다른 스크립트들이랑 충돌하는지 세이브 오류가 뜨네요

  • ?
    화염 2011.05.05 21:21

    좋은 자료 ㄳ

  • ?
    2K가2003 2011.07.24 13:01

    음... 이벤트 커멘드에 뭐에다 붙여넣기를 해야할지 모르겟네용 ;

  • profile
    왕왕왕 2012.08.08 14:16
    SyntaxError occurred while running script 라고 드는데 ㄷㄷ

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 3 습작 2012.12.24 5408
417 전투 Verus Tempus Proelium by Vlad 습작 2013.05.13 1246
416 전투 VLAD ABS [액알 시스템] 65 아방스 2009.01.07 12566
415 맵/타일 VX Mode 7 스크립트!!!! 42 file Tofuman 2009.01.07 4306
414 온라인 VX Pheonix 2.0 한글 번역 버전 16 미니 2010.04.18 4002
413 온라인 VX Phoenix 온라인 스크립트 1.3버전 12 아방스 2009.06.18 3486
412 온라인 VX Phoenix 온라인 스크립트 Ver 1.5 36 아방스 2009.07.02 5510
411 변수/스위치 VX Script Fix - Variable Operation (by Yeyinde) 8 WMN 2008.04.06 2267
410 전투 VX SRPG 스크립트를 살짝 손대봤습니다. 13 아이미르 2011.03.31 3433
409 전투 VX SRPG 스크립트를 수정해봤습니다(8) - 누적수정 30 아이미르 2011.09.09 3916
408 전투 VX SRPG 한글번역 (최종수정) 26 file 에틴 2010.08.25 7418
407 전투 VX SRPG3d 수정본(1) 12 아이미르 2011.10.19 4620
406 전투 VX SRPG3d(한글번역) 8 file 아이미르 2011.10.15 5036
405 기타 VX Weather Script by ccoa 1 Alkaid 2010.09.08 1318
404 이동 및 탈것 vx 걸을때 소리가 나도도록 하는 스크립트 33 아방스 2008.01.31 3948
403 이동 및 탈것 VX 기차 스크립트 28 아방스 2009.01.13 4470
402 기타 vx 보안 시스템 19 file 허걱 2009.07.29 3966
401 전투 VX 사이드 뷰 전투 (2003 방식) 16 드로드맨 2008.02.24 4996
400 VX 주석액알 PR코더즈의ABS보다 않좋다고생각할수있지만 더좋음 34 배군 2008.08.17 5145
399 전투 VX]Mog Battleback XP 1.0 11 file WMN 2008.04.06 3869
398 전투 VX_SRPG2 by tomoaky 1 습작 2013.05.13 2053
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 32 Next
/ 32