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
#--------------------------------------------------------------------------