RPGVX 스크립트

[VX] 메시지 표시를 한번에 표시로 전환하기

by Evangelista posted Nov 28, 2008
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

이번 테크닉은 기본 스크립트를 뜯어고치는 것입니다.


혹시 모르겠다 싶으신 분은 data폴더 내의 scripts.rvdata파일을 필히 백업해 두시기 바랍니다.


 


준비물 : 기본스크립트 Window_Message섹션


수정부분 : 변수 @show_fast


 


initialize 정의부의 @show_fast는 초기 정의이므로 건드리면 안 됩니다.


건드려야 할 부분은 Window_Message섹션의 148행부터입니다.


 


@show_fast는 메시지 표시중의 플래그로 해당 메시지의 문자를 한번에 표시할지 말지 결정하는 물건입니다.


 


  #--------------------------------------------------------------------------
  # ● 빨리 감기 플래그의 갱신
  #--------------------------------------------------------------------------
  def update_show_fast


  update_show_fast를 정의합니다
    if self.pause or self.openness < 255


    메시지윈도우가 다 표시되었거나 완전히 다 열리지 않았다면


      @show_fast = false


      @show_fast값은 false입니다 (즉 메시지 빨리표시 기능을 없앱니다)
    elsif Input.trigger?(Input::C) and @wait_count < 2


    메시지가 표시중일 때 C버튼(결정버튼)이 눌리면
      @show_fast = true


      @show_fast값은 true입니다 (문장표시중 결정버튼을 누르면 자동으로 @show_fast가 켜집니다)
    elsif not Input.press?(Input::C)


    C버튼(결정버튼)이 눌려 있지 않다면
      @show_fast = false


      @show_fast값은 false입니다
    end


    끗 (if문)
    if @show_fast and @wait_count > 0
      @wait_count -= 1


    이 부분은 웨이트카운트입니다. 이벤트 인터프리터에서 대기 기능과 같으므로 건들지 말것


   다른 부분의 오작동을 불러올 수 있습니다.
    end
  end


 


설명은 이상과 같습니다.


알고리즘상 메시지 표시중에 C버튼이 눌려 있느냐 눌려 있지 않느냐를 판별하는 부분인 것이죠.


그렇기 때문에 언제나 빨리 표시가 되게 하려면


그 부분들의 @show_fast의 논리값을 모두 true로 바꾸면 항상 빨리 표시 플래그가 켜 있게 되는 것입니다.


그러나 메시지 표시중에만 켜는 것이 안정성 면에서 낫기 때문에 다 고치지 말고 필요한 부분만 고치도록 하죠.


 


결국 C버튼이 눌려 있지 않을 때 @show_fast를 false로 만드는 부분을 true로 바꿔 주면 되겠습니다


elsif not Input.press?(Input::C)


  @show_fast = false


이 부분입니다.


 


이 @show_fast의 논리값을 true로 바꾸어 주면 이제 메시지 표시시 항상 빠르게 표시되는 것을 볼 수 있습니다.


 


 


 


 


 


 


주의 : 다른 메시지계 스크립트를 적용했을 때 작동하지 않을 수 있습니다.


그 떄에는 그 스크립트에서 상기 부분을 찾아 똑같이 바꾸어 주면 됩니다만


제가 그런 스크립트를 일일이 다 알지 못하기 때문에 100% 작동한다고 장담할 수는 없습니다.