현재 가방에 있는 아이템을 일정량 소비하는 스킬을 만드는 건 쉬웠는데, 정작 해놓고 보니 스킬이 도중에 끊겨버리면 제대로 소비가 이루어지지도 않고, 소비량보다 더 적은 개수를 보유하고 있어도 사용이 가능한 문제가 있었습니다. 이 문제를 어떻게 해결해야 할지 고민입니다.
단순히 이벤트로 실행할 때는 이런 문제가 없는데, 스킬로서 사용하려고 하니 이런저런 문제가 많더군요...
턴 소비를 없애는 스크립트([hzm]ターン消費無しスキルさん+ for RGSS3)와 함께 스킬 사용시 가방에 있는 아이템의 개수를 체크하고, 아이템의 개수가 필요량과 같거나 더 많으면 강제 전투 행동을 통해 실제로 공격을 실행하는 이벤트를 실행하게 하는 방식을 사용하였더니, 턴 소비를 없애는 스크립트에서 오류가 나더군요(466번 줄)...
그렇다고 턴 소비를 없애는 스크립트를 적용하지 않으면 강제 전투 행동 때문에 해당 턴의 다음 모든 행동이 취소되는 문제가 발생합니다...
아래는 턴 소비를 없애는 스크립트의 466번 줄을 포함하는 스크립트 부분입니다.
#-----------------------------------------------------------------------------
# ● ターン消費無し行動の実行(独自)
#-----------------------------------------------------------------------------
def hzm_vxa_quickSkill_run
return unless @hzm_vxa_quickSkill_skill
@hzm_vxa_quickSkill_skill = nil
# 行動の開始
HZM_VXA::QuickSkill::start
@actor_command_window.close if @actor_command_window
@hzm_vxa_quickSkill_active = true
# 行動アクター,行動内容の設定
@subject = BattleManager.actor
@subject.hzm_vxa_quickSkill_swapAction # 選んだ行動を先頭に引きずり出す
# 行動
execute_action
# イベント処理
process_event
# おわり
@subject.hzm_vxa_quickSkill_swapAction # 元の位置に戻す
HZM_VXA::QuickSkill::finish
# ウィンドウを戻す
refresh_status
@hzm_vxa_quickSkill_active = false
@actor_command_window.open if @actor_command_window
@status_window.open if @status_window
# 行動回数の再計算
HZM_VXA::QuickSkill.re_action_times if HZM_VXA::QuickSkill::CHECK_ACTION_TIMES
end
- 질문할 내용이 이 게시판이나 강좌에 이미 있는지 확인합니다.
- 하나의 게시물에는 하나의 질문만 합니다.
- 제목은 질문의 핵심 내용으로 작성합니다.
- 질문 내용은 답변자가 쉽게 이해할 수 있도록 최대한 상세하게 작성합니다.
- 스크립트의 전문이 필요할 경우 txt 파일 등으로 첨부해 주시기 바랍니다.
- 답변받은 게시물은 삭제하지 않습니다.
- 답변이 완료된 경우 해당 답변해주신 분들께 감사의 댓글을 달아줍니다.
- 처음 오신 분들은 공지 게시물을 반드시 읽어주세요!
※ 미준수시 사전경고 없이 게시물을 삭제합니다.