상태/속성

상태를 해제하는 상태

by 레미티 posted Mar 07, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

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

VX Ace에는 특정 상태이상에 걸리면 다른 상태이상이 자동으로 해제되는 기능이 없습니다.


예를 들면, 효과가 겹치는 두 상태인 독(약함)과 맹독(강함)이 중첩시, 맹독 상태의 특징에

"상태 무효화 [독]"을 추가하여 맹독 상태에서 독이 추가로 걸리지 않게 할 수는 있습니다만-

이미 걸려있는 독 상태를 맹독 상태가 해제할 수 있지는 않지요.



부족한 스크립트 지식으로 잠깐 끄적여 봤는데, 해결못한 문제가 하나 있습니다.


서로를 해제하는 두 상태가 겹치면. 즉, 맹독이 독을 풀고 독이 맹독을 풀어주는 상황에서는-

먼저 걸린 쪽이 유지되고 나중에 걸린 쪽으로 교체되지 않습니다. "상태 무효화" 특징과 똑같아지죠.


일단은 처음으로 만들어본 스크립트 소재이고.. 해서 올려봅니다. 능력자분들의 많은 도움 부탁드리겠습니다.



아래는 소스 코드. Game_Battler 클래스를 수정하는 버틀러 관련 스크립트의 아래에 복붙해주시면 됩니다.




class Game_Battler < Game_BattlerBase

#--------------------------------------------------------------------------

# ※ 상태를 해제하는 상태 By. Remity

#     if state?(n) ~ end 문 사이, remove_state(r)을 추가하면 상태 n이 상태 r을 해제.

#     단, n이 r을, r이 n을 해제하는 등 서로를 해제하는 두 상태가 겹치는 경우에는

#     교체되지 않고 먼저 걸린 상태만 유지되는, 이른바 "상태 무효화" 와 같이 됩니다.

#--------------------------------------------------------------------------


  # ※ 이 부분, def state_change ~ end 문을 편집합니다.


  def state_change

    if state?(5) # 5번 스테이트가 4번 스테이트를 밀어내는 예시입니다.

      remove_state(4)

    end

  end


  #--------------------------------------------------------------------------

  # ● 턴 종료

  #--------------------------------------------------------------------------

  def on_turn_end

    @result.clear

    regenerate_all

    update_state_turns

    update_buff_turns

    remove_states_auto(2)

    state_change

  end

end

#--------------------------------------------------------------------------

Who's 레미티

profile

Remity the Elemental Holic


http://www.musicshake.com 에서 활동하고 있습니다.

한때 마비노기를 했었습니다.


이상.