질문과 답변

Extra Form
기존 계산식이 마음에 안 들어서 이 부분을 고치고 싶은데 문제는 관계도입니다. 
atk, spi 이 두개는 기존에 스킬마다 각각 설정이 가능하지만, 
다양성을 주기 위해 def, agi 또한 각각의 고유 관계도를 갖고 피해량에 관여하도록 만들고 싶습니다. 

def, agi 등을 스킬 노트를 통해서 스킬마다 obj.def_f / obj.agi_f 값을 갖도록 만드는 스크립트를 만들려면 어떻게 해야 할까요?
<deff 100>, <agif 100> 등의 태그를 노트에 삽입시 obj.def_f 또는 obj.agi_f 값이 100이 되는 등으로 스크립트를 만들 수 없을까요?
저 값들을 스킬마다 정할 수 있으면, Game_Battler에서   # ● 스킬 또는 아이템에 의한 데미지 계산 항목을 고쳐서
계산식을 만들어낼 수 있을 거 같거든요.

물론 스크립트 자료실 가면 온갖 방식이 가능한 녀석들이 다수 있지만, 해석도 쉽지 않고
원하는 방식의 데미지 공식을 적용시키기엔 너무 복잡하고 어렵더군요...

정리하자면... 질문 내용은

 1) 스킬마다 obj.def_f, obj.agi_f값을 갖도록 하는 방법
 2) 위의 두 값을 스킬의 노트박스에 <deff 100>, <agif 100> 등을 삽입하여 정할 수 있도록 하는 방법

이렇게 되겠네요. 스크립트 잘 다루시는 분들의 도움 정말 간절히 바랍니다.
Comment '2'
  • ?
    아이미르 2012.01.28 19:55

     

    #==============================================================================
    # ■ 스킬 방어관계도, 민첩관계도 설정
    #==============================================================================
    module RPG
      class UsableItem < BaseItem
        attr_accessor :def_f
        attr_accessor :agi_f
        def def_f
          return @note =~ /<def_f=(\d+)\s*>/  ? $1.to_i : 0
        end
        def agi_f
          return @note =~ /<agi_f=(\d+)\s*>/ ? $1.to_i : 0
        end
      end
    end
    #==============================================================================
    # ■ Game_Battler
    #------------------------------------------------------------------------------
    # 버틀러를 취급하는 클래스입니다. 이 클래스는 Game_Actor 클래스와 Game_Enemy
    # 클래스의 슈퍼 클래스로서 사용됩니다.
    #==============================================================================

    class Game_Battler
      #--------------------------------------------------------------------------
      # ● 스킬 또는 아이템에 의한 데미지 계산
      #     user : 스킬 또는 아이템의 사용자
      #     obj  : 스킬 또는 아이템
      #    결과는 @hp_damage 또는 @mp_damage 에 대입한다.
      #--------------------------------------------------------------------------
      def make_obj_damage_value(user, obj)
        damage = obj.base_damage                        # 기본 데미지를 취득
        if damage > 0                                   # 데미지가 정의 수
          damage += user.atk * 4 * obj.atk_f / 100      # 타격 관계도: 사용자
          damage += user.spi * 2 * obj.spi_f / 100      # 정신 관계도: 사용자  
          damage += user.def * 4 * obj.def_f / 100     # 방어 관계도: 사용자
          damage += user.agi * 2 * obj.agi_f / 100      # 민첩 관계도: 사용자
          unless obj.ignore_defense                     # 방어력 무시 이외
            damage -= self.def * 2 * obj.atk_f / 100    # 타격 관계도: 대상자
            damage -= self.spi * 1 * obj.spi_f / 100    # 정신 관계도: 대상자
          end
          damage = 0 if damage < 0                      # 마이너스라면 0 에
        elsif damage < 0                                # 데미지가 부의 수
          damage -= user.atk * 4 * obj.atk_f / 100      # 타격 관계도: 사용자
          damage -= user.spi * 2 * obj.spi_f / 100      # 정신 관계도: 사용자
        end
        damage *= elements_max_rate(obj.element_set)    # 속성 수정
        damage /= 100
        damage = apply_variance(damage, obj.variance)   # 분산
        damage = apply_guard(damage)                    # 방어 수정
        if obj.damage_to_mp 
          @mp_damage = damage                           # MP 에 데미지
        else
          @hp_damage = damage                           # HP 에 데미지
        end
      end
     
    end

     

    -----------------------------------------------------------------------------------------

    대충 한번 해봤습니다. 사실 필요한건 윗부분일 겁니다. 아랫부분은 한번 만들어본 거에 불과합니다.

     

    스킬의 메모란에 <def_f=n>이라고 쓰면 n만큼 방어 관계도로 인식합니다.

    마찬가지로 <agi_f=n>이라고 쓰면 n만큼 민첩 관계도를 인식합니다.

     

    혹시 전투관련 스크립트와 혼용하면 오류가 날 가능성이 있습니다.

    그 점은 아래쪽의 전투 관련 부분을 주석처리하고 전투관련 스크립트에서 데미지 공식 부분을 수정하면 될겁니다.

  • ?
    mits 2012.01.29 08:08

    아이미르님 친절하고 상세한 답변에 감사드립니다.

    제가 의도한 대로 정상적으로 데미지 공식이 작동하여 정말 기쁩니다.


    도움 주신 점 다시금 감사드려요. 금일 좋은 일 가득 마주하시길 바랍니다.



List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12446
스크립트 작성 RMMV [mv] 조건분기-> 버튼입력-> esc입력시, 마우스 우클릭 질문드립니다. 비형 2019.05.16 91
스크립트 사용 RMMV RM 폰트변경 플러그인사용법을 잘 모르겠습니다. 회늑 2020.12.12 91
RMMV MV 초보입니다. 1 쌩쌩초보 2018.05.25 92
기타 xp스크립트 적용 어떻게하나요? 선린고가고싶다 2016.11.16 92
스크립트 작성 RMMV 플러그인 내에 있는 스크립트를 수정하고 싶은데 어디를 어떻게 바꿔야 할 지 모르겠습니다 1 file PPPL 2019.11.12 92
RMVX 노트북을 바꿔서 했는데 전에 만들었던게임이 2 골리버 2018.09.02 92
이벤트 작성 RMMV 퀴즈 게임 만들고 싶은데 2 해킹당한해커 2019.01.12 92
RMMV 이벤트성 전투를 어떻게 발동시키는지 궁금합니다. 2 늘푸른거탑 2018.02.05 92
RMVXA 이 스크립트 적용에 대해서 질문이요 AccelHacker 2016.04.03 92
기타 이건 가능하게 되겠죠? 타락한마왕 2015.10.22 92
RMXP 스크립트에서 스위치를 on시키는 명령어가 뭐지요? 알중: 2016.08.23 92
RMMV 이벤트 대기 스크립트 게임잘날아가는닝겐 2016.09.15 92
RMVXA (해결완)메뉴를 열었을 때 경험치 정보를 표시하고 싶은데 에러가 납니다. 2 file 코코아밀크 2017.01.10 92
RMVXA vx ace 혹시 프로젝트 만들던파일이나 공유같은건없을까여 짱맨 2017.04.19 92
턴제 전투 RMMV 리더 캐릭터의 스킬을 만들고 싶습니다 유카이 2021.02.23 92
턴제 전투 RMMV 적이 첫 번째 턴엔 반드시 버프기를 사용하게 만들고 싶습니다. file 물돼지맛 2019.08.18 92
턴제 전투 RMVXA 캐릭터의 일반 공격의 스킬 애니메이션을 다르게 하고 싶어요 2 BIGHEADCRUSHER 2019.09.23 92
이벤트 작성 RMXP 특정 이벤트에서 방향키 입력 시의 캐릭터 이동방향을 변경하고 싶어요. file 할무니 2021.08.13 92
플러그인 추천 RMMV 타이틀의 그림이 움직이게 하는법을 알려주세요 1 file 알초자 2024.01.27 92
RMVXA ace 활쏘기 스크립트 오류 질문 file 유한소수 2016.12.01 93
Board Pagination Prev 1 ... 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 ... 516 Next
/ 516