질문과 답변

Extra Form

class Scene_Battle < Scene_Base

  def invoke_item(target, item)

    if rand < target.item_cnt(@subject, item)

       apply_item_effects(apply_substitute(target, item), item)

       invoke_counter_attack(target, item)

    elsif rand < target.item_mrf(@subject, item)

       invoke_magic_reflection(target, item)

    else

       apply_item_effects(apply_substitute(target, item), item)

    end

    @subject.last_target_index = target.index

    end

end


위의 스크립트는 반격기능이 발동될시 공격을 회피하는게 아닌 피해를 받고 반격할 수 있게해주는 기능을 해줍니다.
지난번에 올렸었던 스크립트인데 몇몇 오류가 있긴했지만 다른 스크립트로 대부분 무마가 되었고
딱 한가지 문제가 발목을 잡고있네요ㅜ

원래 대상을 죽이게되면 해당 대상은 반격을 할 수 없어야하는데
이 스크립트를 이용하면 대상을 죽인 시점에서도 반격기능이 활성화 되면 반격을 하게됩니다.
스크립트가 돌아가는 원리를 보니 대략

1)    A가 B를 공격한다.
2)    A의 공격에 B의 반격기능이 활성화된다.
3)    A의 공격에 피해를 받고 B가 죽었다.
4)    활성화된 B의 반격기능이 작용하여 A에게 반격을 한다.

이렇게 되는것 같더라구요
전 여기서 4번을 없애고 싶습니다.
생각해보면 근본적인 문제일것 같기도한데 이게 고칠수 있는지 없는지에 따라
전투의 성향이 완전히 뒤바껴버리게 되서 쉽게 놓아버리기 힘든 처지네요.. 흑..

대상을 죽이면 그 대상이 반격 할 수 없게 만들 수 없을까요?




Comment '2'
  • profile
    9qxb6 2015.07.19 23:38

    올리신 스크립트를 아래의 스크립트로 교체하면 되지 않을까 싶습니다.


    class Scene_Battle < Scene_Base

      def invoke_item(target, item)

        if rand < target.item_cnt(@subject, item) #반격 가능 시에

          apply_item_effects(apply_substitute(target, item), item) #피해 적용

          if target.death_state? #공격 받는 대상(target)이 이미 죽었으면 그만둔다.

            return @subject.last_target_index = target.index

          end

          invoke_counter_attack(target, item) #반격!

        elsif rand < target.item_mrf(@subject, item)

          invoke_magic_reflection(target, item)

        else

          apply_item_effects(apply_substitute(target, item), item)

        end

        @subject.last_target_index = target.index

      end

    end

  • ?
    기폭 2015.07.24 23:22

    오오.. 감사합니다!!
    제대로 작동하는것이.. 스크립트 다루시는 분들은 정말로 대단하세요ㄷㄷ;
    기획자가 프로그래머에게 느끼는 감정이 이런게 아닐까 싶네요ㅎ 감사합니다.^^^


List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12391
사이트 이용 심야12시의 학교에서모바일 돼나요 2 임동연 2015.07.23 956
RMVXA 스위치 질문 드립니다. 5 file 류미엘 2015.07.23 169
기타 게임을 만들려고 하는 한 학생입니다 게임프로그램 추천해주세요 2 kariru 2015.07.22 356
RMVXA 카드게임을 할때 카드 4장을 랜덤으로 나누어주는 방법 5 file SuperGay 2015.07.22 250
RMVXA VXA에서 외부 윈도우 창을 불러오는 스크립트가 있나요ㅜㅜ? 1 CleS 2015.07.22 165
RMVXA 방향키를 강제로 누르는 스크립트 4 게임잘날아가는닝겐 2015.07.21 230
RMVXA 1보 걸을 때마다 이벤트를 실행시키려면 어떻게 해야 할까요? 6 키보드자판기 2015.07.21 225
RMVXA 스크립트 N.A.S.T.Y. Text Pop Over Events 변수값 표시 가능할까요? 17 비형 2015.07.21 244
RMVXA 스피드 변경 스크립트 8 게임잘날아가는닝겐 2015.07.20 143
RMVXA 허걱님의 대화창 스크립트 중 캐릭이름이 뜨는 윈도우창의 수정 방법 질문드립니다. 2 비형 2015.07.20 421
RMVXA 이거 어떡하죠... (dll재설치후 더 심해짐...) 3 file 게임잘날아가는닝겐 2015.07.19 226
기타 rpg게임 전체화면 질문드립니다. madlocust 2015.07.19 222
기타 알만툴 게임 실행에 이동에 관해 오류가 있습니다. 2 하얀악어 2015.07.18 2019
게임찾기 캐릭터 + 캐릭터를 조합하는 스크립트를 봤었는데 못찾겠네요 1 우월감 2015.07.18 276
RMXP 변수에 연산하여 그 사이의 수를 나오게 하는방법 3 어스 2015.07.17 197
RMVXA 스크립트로 페이드 아웃, 인 11 게임잘날아가는닝겐 2015.07.16 393
RMVXA 이벤트 간단작성의 내용을 바꾸고 싶습니다. 5 file 레노스 2015.07.16 205
RMVXA 반격 스크립트 관련 질문입니다. 2 기폭 2015.07.16 151
rpgxp 3 드래곤규 2015.07.16 184
RMVX 이벤트의 반복/움직임 제한 오류 관련 질문 3 file Eyes! 2015.07.15 409
Board Pagination Prev 1 ... 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 ... 516 Next
/ 516