질문과 답변

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 12460
RMVXA 반격, 마법반사 관련 (해결) 7 Vincent 2013.10.08 1018
RMVXA 반격 스크립트 관련 질문입니다. 2 기폭 2015.07.16 151
RMVXA 바이오 하자드 같은부류게임을 만들고싶습니다 1 아쳐 2015.11.11 277
RMVXA 바닥피해로 전투불능이 될 시 메세지가 안나오게할려고합니다. 2 file 쇼몬_아레하 2012.08.26 1180
RMVXA 바닥위에 책상이라던가 이런것을 놓고싶은데 어떻게해야하나요?? 1 file 중2병조현성 2017.01.13 163
RMVXA 바닥에 함정이 뜨는순간 플레이어가 그위에 서있으면 사망하기 3 file 푸른사신 2013.01.21 786
RMVXA 밑바탕 배경을 어떻게 설정하나요? 2 file EMSN 2015.01.13 156
RMVXA 밀수있는 이벤트의 텍스쳐가 2개일때 11 file 채떡 2014.02.15 861
RMVXA 밀리터리관련 캐릭터칩은 어디서 구할 수 있나요? 3 콜오브듀티모던워페어 2015.01.29 181
RMVXA 민첩성에 따라 게이지가 올라가고 한턴에도 여러번 공격하는 방법이 있나요? 혹은 스크립트나. repola 2014.05.03 553
RMVXA 민첩성 스텟의 효과를 상향시킬 수 있나요? 3 mona 2013.04.13 819
RMVXA 민첩성 50 이상만 입장 가능하게 하고 싶습니다 2 모니 2014.02.09 730
기타 RMVXA 미니게임제작 2 현작가 2022.03.13 277
스크립트 추천 RMVXA 미니게임을 하는동안 위에 점수판을 띄워주고싶은데 방법이 없을까요? 홍홍이1 2024.02.07 15
RMVXA 뭐라해야되지..벽 테두리 ? 칩셋을 못찾겠습니다. 3 file 작은펭귄 2014.04.19 698
이벤트 작성 RMVXA 물체를 특정위치에 옮겼을 때 이벤트가 실행되게 하고싶습니다. 1 file lys4154 2019.06.15 80
RMVXA 물을걷게하구싶은데요 2 케이군 2014.02.24 685
이벤트 작성 RMVXA 물건한테 말하는거 알려주실 수 있으신가요..? 1 하나비류갸 2020.08.18 61
RMVXA 물건을 집은다음 특정위치에 놓으면 이벤트 발생좀 도와주세요 2 file 뉴트리리 2015.01.10 310
RMVXA 물건을 움직여서 해당위치에 가면 이벤트를 실행시키고 싶습니다. 1 file 뉴트리리 2015.01.05 218
Board Pagination Prev 1 ... 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 ... 150 Next
/ 150