전투

전투배경확장 한글

by 백호 posted Feb 22, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
#┌───────────────────────────────────────
#│
#│  TRCS.11
#│  "전투배경확장" ver1.00 (2005.09.04 h15)
#│  by NO (해석 - CRZ쥬논)
#│  http://chobi.net/~no/
#│ 
#└───────────────────────────────────────

module TRCS11_BATTLEBACK_DISABLE
  #--------------------------------------------------------------------------
  # ○설정항목
  #-------------------------------------------------------------------------- 
 
  #전투배경표시 플러그용의 스위치명
  DISP_BATTLEBACK_SW_NAME = "전투배경표시"
   
  # 전투배경이 없을 때, 맵에 입히는 필터의 색
  # →통상시에는 [0, 0, 0, 0] 으로 설정
  TONE_IN_BATTLE = [-64, -64, -64, 0]
 
  # 필터 의 페이드인에 걸리는 시간
  TONE_DURATION = 60
 
end
#==============================================================================
# ■ Spriteset_Map
#==============================================================================

class Spriteset_Map
  #--------------------------------------------------------------------------
  # ○맵에 입히는 필터의 실행
  #-------------------------------------------------------------------------- 
  def change_map_tone(tone,duration)
    d = duration
    tone_target = tone.clone
    # 시간이 0 이상일 경우
    while d > 0
      # 톤의 변경
      @tilemap.viewport.tone.red += tone_target.red / duration
      @tilemap.viewport.tone.green += tone_target.green / duration
      @tilemap.viewport.tone.blue += tone_target.blue / duration
      d -= 1
    end
    # 최종적인 미세조정
    @tilemap.viewport.tone.red = tone_target.red
    @tilemap.viewport.tone.green = tone_target.green
    @tilemap.viewport.tone.blue = tone_target.blue 
  end
end
#==============================================================================
# ■ Spriteset_Battle
#==============================================================================

class Spriteset_Battle
  #--------------------------------------------------------------------------
  # ○ 인크루드
  #--------------------------------------------------------------------------
  include TRCS11_BATTLEBACK_DISABLE
  #--------------------------------------------------------------------------
  # ○ 프레임갱신
  #--------------------------------------------------------------------------
  alias trcs11_update update
  def update
    # 전투중의 경우
    if $game_temp.in_battle
      #전투배경표시 맵의 취득
      id = $data_system.switches.index(DISP_BATTLEBACK_SW_NAME)
      $scene.battleback_enabled = $game_switches[id]
      # 전투배경을 표시하지않을 경우
      if !$scene.battleback_enabled
        # 전투배경을없게 한다
        $game_temp.battleback_name = ""
        #배틀백그래픽이 존재하는 경우
        if @battleback_sprite.bitmap != nil
          #배틀백그래픽을 해방
          @battleback_sprite.bitmap.dispose
        end
      # 전투배경을 표시하는 경우에, 전투배경이 없을 경우
      elsif $game_temp.battleback_name == ""
        # 맵에 설정된 전투배경을 적용
        $game_temp.battleback_name = $game_map.battleback_name
      end
    end
    # 呼び?す
    trcs11_update
  end
end
#==============================================================================
# ■ Scene_Battle (분할정의 1)
#==============================================================================

class Scene_Battle
  #--------------------------------------------------------------------------
  # ○ 인크루드
  #--------------------------------------------------------------------------
  include TRCS11_BATTLEBACK_DISABLE
  #--------------------------------------------------------------------------
  # ○ 공개인스턴스
  #--------------------------------------------------------------------------
  attr_accessor :battleback_enabled  #전투배경표시허가플러그
  #--------------------------------------------------------------------------
  # ○ 메인
  #--------------------------------------------------------------------------
  alias trcs11_main main
  def main
    # 전투배경표시허가플러그의 취득
    id = $data_system.switches.index(DISP_BATTLEBACK_SW_NAME)
    @battleback_enabled = $game_switches[id]
    # 맵스프라이트격납용배열의 초기화
    map_sprite = nil
    # 전투테스트에는 없고, 전투배경이 비표시일 경우
    if !$BTEST and !@battleback_enabled
      # 현재의 맵의 맵스프라이트를 작성
      map_sprite = Spriteset_Map.new
      # 필터의 셋트
      tone = Tone.new(*TONE_IN_BATTLE)
      #슬렛드
      Thread.start do
        # 필터를 입힘
        map_sprite.change_map_tone(tone,TONE_DURATION)
        Thread.exit
      end
    end
    # 호출
    trcs11_main
    # 맵스프라이트가 존재하는 경우
    if map_sprite != nil
      #맵스프라이트를 해방
      map_sprite.dispose
    end
  end
end
#==============================================================================
# ■ Interpreter (분할정의1)
#==============================================================================

class Interpreter
  #--------------------------------------------------------------------------
  # ○ 인크루드
  #--------------------------------------------------------------------------
  include TRCS11_BATTLEBACK_DISABLE
  #--------------------------------------------------------------------------
  # ○ 맵의 설정을 변경
  #--------------------------------------------------------------------------
  alias trcs11_command_204 command_204
  def command_204
    # 전투중에 배경을 변경하는 경우
    if $game_temp.in_battle and @parameters[0] == 2
      # 전투벼경표시플러그를 셋트
      $scene.battleback_enabled = true
    end
    # 호출
    return trcs11_command_204
  end
end


<사용법>
TRCS.12
「"전투배경확장" ver1.00 매뉴얼」 2005.09.04 h15
by NO (해석 - CRZ쥬논)
http://chobi.net/~no/

------------------
<<개요>>
1,전투시의 배경을 인카운터시의 맵으로 합니다.
・이때 맵에 필터를 사용가능합니다.

2,위상태를 스취치로 변경가능
・통상전투는 배경、이벤트전투는 배틀백그래픽으로 하는 것도 가능
・이벤트커맨드「맵의 설정변경」에도 대응。

------------------
<<사용전에>>
1,스위치의 준비
・아래 이름으로 만든 스위치를 준비。ID는 뭐든 상관없음

스위치명:[전투배경표시] (스크립트도 전투배경표시 로 바꿔놓아야합니다)

2, 스크립트 의 설정항목을 바꿔써주세요
------------------
<<사용방법>>
・스위치[전투배경표시]가 ON 이 되면、배틀백그래픽을 표시
・스위치[전투배경표시]が OFF 되면、인카운더 시 맵표시

・이벤트커맨드「맵의 설정변경」이 실행된 경우는 설정된 배틀백그래픽으로 자동적변경

-------------------
<<사양 -본스크립트->>
・전투중「이벤트커맨드「맵의 설정변경」이 실행된 경우 설정된 배틀백그래픽으로 자동변경
이므로 배틀백그래픽변경이외의 용도로 이벤트커맨드「맵의 설정변경」을 실행한 경우는、
예기치않은 동작이 발상핼 가능성이 있음
전투중 포그그래픽을 변경하는 일은 없다고 생각하지만 어쩔 수 없습니다.

==========================================================

CBS-R1(사이드뷰)에 적용해보려했으나...

....그러나 CBS-R1에는 적용되지 않았다(..털썩;;)

역시  신_배틀 이 변경되는 것이라 그런것인가...
배틀백그래픽이 없이 맵상에서 전투를 하게 되는 경우에 쓸만하겠습니다만...
사이드뷰나 화려한 전투애니가 없으면 오히려 지저분해 보이겠습니다.....
그림은 저~~~~~밑에 블루다운님의 글을 참고하세요.
요샌 액알이 많아서 뭐 쓸일이 없겠군.
제가 쓸까하기도 하고 세루군이 사용법을 모르겠다는 꼬릿말이 있어서 그냥 해석해봤슴다..