질문과 답변

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 21125
RMVXA 방을 나갔다가 다시 들어왔을떄 이벤트의 새로고침을 막고 싶습니다. 2 file 가이아_ 2014.11.01 356
RMMV 방에 들어서면 불이켜지는 듯한 이펙트 8 파란소리 2018.06.24 289
RMVX 방어시 방어력 올라가는 비율 올리는 방법이 있나요? 3 파멸의인도자 2013.07.24 626
RMXP 방어력상승설정은 어떻게하나요?? 1 블루믹스 2010.12.07 548
RMMV 방어력 수치에 따른 퍼센트 데미지 7 카시어스 2018.12.10 211
기본툴 사용법 RMMV 방어 오류 꽃돼지 2021.08.15 67
RMVXA 방금 전까지 멀쩡하던 VX Ace 툴이... 1 file 엿데브 2013.11.17 837
RMVX 방 열쇠 얻는 방법좀 알려주세요 2 roykim09 2015.05.13 266
RMVXA 밤효과 (화면의색조변경) 적용할때 질문입니다, 4 하트하트 2014.02.04 837
RMXP 밤낮이 바뀌고 밤에만 나타나는 이벤트 낮에만 나타나는 이벤트 설정방법 부탁드립니다 꿀호꿈하 2010.09.25 846
RMVX 밤낮스크립트 적용했을때 잠잘수 있게 하기 3 캣츠아이 2011.01.21 825
RMXP 밤과 낮 만들기 보충 부탁드립니다. 4 file Magnerota 2013.10.06 1245
RMVXA 발판에 닿았을때 위 쳐다보고 NPC가 내려오도록 하는 방법 좀 알려주세요. 1 수퍼말이오 2014.10.15 334
플러그인 사용 RMMV 발소리 플러그인의 볼륨 설정 1 파닥이 2020.05.05 163
RMVX 발소리 스크립트에 관하여 2 지혈이 2013.07.19 798
이벤트 작성 RMMV 발동 조건이 결정인 이벤트를 원격으로 영구제거 하는 방법이 있을까요? 2 file 곱슬단발 2019.01.27 108
RMVXA 발걸음 소리 스크립트가 전혀 동작하지 않습니다 3 파닥이 2015.04.04 235
기타 받은 게임에서 RGSS몇이 없다 등의 말이 나오며 못 하면 어떻게 하나요? 2 file sl연어sl 2016.03.26 292
RMVXA 받은 rpg maker 파일이 외계어로 표시가 됩니다... 보드카짱 2017.06.10 177
기타 RMVXA 반투명 색 여러개 설정하는 방법 2 vertex 2020.01.24 92
Board Pagination Prev 1 ... 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 ... 518 Next
/ 518