조회 수 542 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄





 패시브 스킬 스크립트에 대해 질문입니다.
 적용하기전에....

빈 스크립트를 찾아서

$game_special_elements = {}
$imported = {}
$data_states = load_data("Data/States.rxdata")
$data_system = load_data("Data/System.rxdata")

이걸 넣어주십시오.. 안하면 오류뜹니다
(KGC 스크립트들의 맨위에 넣으시면 됩니다)


스킬을 배워놓으면 능력치가 상승하는 스크립트 입니다


#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#위력 최대 HP(maxhp)
#공격력 F 공격력(atk)
#회피 F 회피 수정(eva)
#완력 F 완력(str)
#손재주가 있음 F 손재주가 있음(dex)
#민첩함 F 민첩함(agi)
#마력 F 마력(int)
#명중율 명중율(hit)
#물리 방어 F 물리 방어(pdef)
#마법 방어 F 마법 방어(mdef)
#분산도 최대 SP(maxsp)



만드는법은 이걸 적용후속성란에 패시브 스킬 (꼭 이렇게)을 만든후 스킬란에 가서 스킬을 만든뒤
속성 패시브 스킬을 체크하면 그 때부터 패시브 스킬이 발동됩니다저기 위에 위력 최대 어쩌구 저쩌구
되잇는데... 스킬보면 위력 공격력 회피 완력 등등~ 있을겁니다...거기에 숫자 1을 넣으면 이 스킬을 배웠을 시에
1% 능력치 상승 입니다 저기 위에 보면 위력이 최대 hp 이니까 케릭터의 HP에서의 1%가 더 상승하게 되는군요
회피는 회피 수정인데.. 모르는분 계실까봐 말씀드리는건데 회피 수정은 몇퍼센트로 완전하게 회피를 하는겁니다
20% 이면 20% 확률로 완전회피 50%이면 50%확률로 완전회피 착오 없으시길..




 아래는 스크립트입니다.



 
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/  ◆패시브 스킬 - KGC_PassiveSkill◆
#_/----------------------------------------------------------------------------
#_/ 습득하는 것만으로 능력 가격인상승효과를 발휘하는 스킬을 작성합니다.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#==============================================================================
# ★ 커스터마이즈 항목 ★
#==============================================================================

module KGC
  # ◆수치 영향도
  #  값이 큰 만큼 스킬의 설정치의 영향이 커진다.
  #  100 으로 정확히[설정치%]분의 상승량.
  #  (회피 수정만 PS_INF 의 영향을 받지 않고, 설정치가 그대로 보정치가 된다)
  PS_INF = 100
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#위력 최대 HP(maxhp)
#공격력 F 공격력(atk)
#회피 F 회피 수정(eva)
#완력 F 완력(str)
#손재주가 있음 F 손재주가 있음(dex)
#민첩함 F 민첩함(agi)
#마력 F 마력(int)
#명중율 명중율(hit)
#물리 방어 F 물리 방어(pdef)
#마법 방어 F 마법 방어(mdef)
#분산도 최대 SP(maxsp)

$imported["PassiveSkill"] = true

# 패시브 스킬 속성
$game_special_elements["passive_skill"] = $data_system.elements.index("패시브 스킬")

#==============================================================================
# ■ Game_Actor
#==============================================================================

module KGC_Game_Actor
  #--------------------------------------------------------------------------
  # ● 명중율의 취득
  #--------------------------------------------------------------------------
  if defined?(hit) && !@hit_passiveskill
    alias hit_KGC_PassiveSkill hit
  else
    @hit_passiveskill = true
  end
  def hit
    n = defined?(hit_KGC_PassiveSkill) ? hit_KGC_PassiveSkill : super
    return Integer(n * get_rev("hit") / 100)
  end
  #--------------------------------------------------------------------------
  # ● 공격력의 취득
  #--------------------------------------------------------------------------
  if defined?(atk) && !@atk_passiveskill
    alias atk_KGC_PassiveSkill atk
  else
    @atk_passiveskill = true
  end
  def atk
    n = defined?(atk_KGC_PassiveSkill) ? atk_KGC_PassiveSkill : super
    return Integer(n * get_rev("atk") / 100)
  end
  #--------------------------------------------------------------------------
  # ● 물리 방어의 취득
  #--------------------------------------------------------------------------
  if defined?(pdef) && !@pdef_passiveskill
    alias pdef_KGC_PassiveSkill pdef
  else
    @pdef_passiveskill = true
  end
  def pdef
    n = defined?(pdef_KGC_PassiveSkill) ? pdef_KGC_PassiveSkill : super
    return Integer(n * get_rev("pdef") / 100)
  end
  #--------------------------------------------------------------------------
  # ● 마법 방어의 취득
  #--------------------------------------------------------------------------
  if defined?(mdef) && !@mdef_passiveskill
    alias mdef_KGC_PassiveSkill mdef
  else
    @mdef_passiveskill = true
  end
  def mdef
    n = defined?(mdef_KGC_PassiveSkill) ? mdef_KGC_PassiveSkill : super
    return Integer(n * get_rev("mdef") / 100)
  end
  #--------------------------------------------------------------------------
  # ● 회피 수정의 취득
  #--------------------------------------------------------------------------
  if defined?(eva) && !@eva_passiveskill
    alias eva_KGC_PassiveSkill eva
  else
    @eva_passiveskill = true
  end
  def eva
    n = defined?(eva_KGC_PassiveSkill) ? eva_KGC_PassiveSkill : super
    return n + get_rev("eva")
  end
  module_function :atk, :pdef, :mdef, :eva
  public :atk, :pdef, :mdef, :eva
end

class Game_Actor < Game_Battler
  include KGC_Game_Actor
  #--------------------------------------------------------------------------
  # ● 셋업
  #--------------------------------------------------------------------------
  alias setup_KGC_PassiveSkill setup
  def setup(actor_id)
    setup_KGC_PassiveSkill(actor_id)

    # 보정치를 초기화
    reset_rev
  end
  #--------------------------------------------------------------------------
  # ● 기본 MaxHP 의 취득
  #--------------------------------------------------------------------------
  alias base_maxhp_KGC_PassiveSkill base_maxhp
  def base_maxhp
    # 보정한 값을 돌려준다
    return Integer(base_maxhp_KGC_PassiveSkill * get_rev("maxhp") / 100)
  end
  #--------------------------------------------------------------------------
  # ● 기본 MaxSP 의 취득
  #--------------------------------------------------------------------------
  alias base_maxsp_KGC_PassiveSkill base_maxsp
  def base_maxsp
    return Integer(base_maxsp_KGC_PassiveSkill * get_rev("maxsp") / 100)
  end
  #--------------------------------------------------------------------------
  # ● 기본 완력의 취득
  #--------------------------------------------------------------------------
  alias base_str_KGC_PassiveSkill base_str
  def base_str
    # 보정
    n = base_str_KGC_PassiveSkill * get_rev("str") / 100
    # 한계치 처리
    n = [[n, 1].max, $imported["LimitBreak"] ? KGC::LB_ACTOR_ETC_LIMIT : 999].min
    return Integer(n)
  end
  #--------------------------------------------------------------------------
  # ● 기본 손재주가 있음의 취득
  #--------------------------------------------------------------------------
  alias base_dex_KGC_PassiveSkill base_dex
  def base_dex
    n = base_dex_KGC_PassiveSkill * get_rev("dex") / 100
    n = [[n, 1].max, $imported["LimitBreak"] ? KGC::LB_ACTOR_ETC_LIMIT : 999].min
    return Integer(n)
  end
  #--------------------------------------------------------------------------
  # ● 기본 민첩함의 취득
  #--------------------------------------------------------------------------
  alias base_agi_KGC_PassiveSkill base_agi
  def base_agi
    n = base_agi_KGC_PassiveSkill * get_rev("agi") / 100
    n = [[n, 1].max, $imported["LimitBreak"] ? KGC::LB_ACTOR_ETC_LIMIT : 999].min
    return Integer(n)
  end
  #--------------------------------------------------------------------------
  # ● 기본 마력의 취득
  #--------------------------------------------------------------------------
  alias base_int_KGC_PassiveSkill base_int
  def base_int
    n = base_int_KGC_PassiveSkill * get_rev("int") / 100
    n = [[n, 1].max, $imported["LimitBreak"] ? KGC::LB_ACTOR_ETC_LIMIT : 999].min
    return n
  end
  #--------------------------------------------------------------------------
  # ● 스킬을 기억한다
  #     skill_id : 스킬 ID
  #--------------------------------------------------------------------------
  alias learn_skill_KGC_PassiveSkill learn_skill
  def learn_skill(skill_id)
    # 원래의 처리를 실행
    learn_skill_KGC_PassiveSkill(skill_id)

    # 보정치를 수정
    restore_rev
  end
  #--------------------------------------------------------------------------
  # ● 스킬을 잊는다
  #     skill_id : 스킬 ID
  #--------------------------------------------------------------------------
  alias forget_skill_KGC_PassiveSkill forget_skill
  def forget_skill(skill_id)
    # 원래의 처리를 실행
    forget_skill_KGC_PassiveSkill(skill_id)

    # 보정치를 수정
    restore_rev
  end
  #--------------------------------------------------------------------------
  # ● 보정치를 리셋트
  #--------------------------------------------------------------------------
  def reset_rev
    @maxhp_rev = @maxsp_rev = 100.0
    @hit_rev = @atk_rev = @pdef_rev = @mdef_rev = 100.0
    @str_rev = @dex_rev = @agi_rev = @int_rev = 100.0
    @eva_rev = 0
  end
  protected :reset_rev
  #--------------------------------------------------------------------------
  # ● 보정치를 수정
  #--------------------------------------------------------------------------
  def restore_rev
    # 보정치를 초기화
    reset_rev
    # 수정
    for i in self.skills
      skill = $data_skills[i]
      # 패시브 스킬 판정
      if skill.element_set.include?($game_special_elements["passive_skill"])
        @maxhp_rev += skill.power * KGC::PS_INF / 100.0
        @maxsp_rev += skill.variance * KGC::PS_INF / 100.0
        @hit_rev += skill.hit * KGC::PS_INF / 100.0
        @atk_rev += skill.atk_f * KGC::PS_INF / 100.0
        @pdef_rev += skill.pdef_f * KGC::PS_INF / 100.0
        @mdef_rev += skill.mdef_f * KGC::PS_INF / 100.0
        @str_rev += skill.str_f * KGC::PS_INF / 100.0
        @dex_rev += skill.dex_f * KGC::PS_INF / 100.0
        @agi_rev += skill.agi_f * KGC::PS_INF / 100.0
        @int_rev += skill.int_f * KGC::PS_INF / 100.0
        @eva_rev += skill.eva_f
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 보정치를 취득
  #--------------------------------------------------------------------------
  def get_rev(type)
    type.downcase!
    eval("@#{type}_rev = 100.0") if eval("@#{type}_rev == nil")
    return eval("@#{type}_rev")
  end
end

 


 


 


이 스크립트는 과거 이 창조도시에서 어떤분이 KCG에서 퍼오셨다고 들은 스크립트입니다.


 


보라색 테이블은 그분이 쓰신 설명(???)의 전부이고,


 


아래의 하얀 테이블은 메모장으로 덧붙인 스크립트입니다.


 


 


그런데 저는 xp에 손댄지 이제 4일 지난 초짜입니다.


 


4일 밤낮으로 헤메고 다닌끝에 대충 눈칫밥은 먹어가고 있습니다만,


 


여기서 말하는 빈 스크립트를 찾아서 는 대체 무엇이고,


 


KGC 스크립트들의 맨 위에 넣으라는 말이 대체 뭔 소린지 이해가 안갑니다 -_ -


 


여러분들의 친절한 답변 목이 빠지게 기다리고 있습니다 __)


 


 


저 글을 쓰신분을 찾으려고 그렇게 애를 썼지만 못찾겠더군요.


 


 


 


보라색 상자안에 보면 맨위의 함수들을 어떠한 빈 스크립트안에 찾아서 넣어라는 소리인듯 한데,


 


그 스크립트가 뭔지 감을 못잡으니 이거 오류가 10 몇개씩 줄줄이 나오더군요-_-


 


친절한 답변 기대하고있습니다. __)


 


여러분의 많은 성원 부탁드립니다. __)

?

List of Articles
번호 제목 글쓴이 날짜 조회 수
8827 쯔꾸르 mv 게임을 apk 파일로 변환했는데... 1 박하맛 2023.01.14 1338
8826 쯔꾸르 젖소이야기 결혼 방법좀 알려주세요... 2 백지씨 2021.12.20 2635
8825 apk포팅 승인 어케 하나요? game메이커xp 2021.11.29 1262
8824 Yanfly님의 Action Sequence Pack 질문드립니다 Neuromancer 2021.07.15 1548
8823 싸게 MV 를 먼저? 아니면 돈을 더 들어서라도 MZ? 2 Xatra 2021.07.06 1760
8822 RMMV - 스탯창과 대화창 변견 관련 질문입니다. (초보입니다 도움좀 주세요 ㅜㅜ) 2 scribble 2021.01.22 1558
8821 아오오니를 하는 사람인데요 질문 두가지가 있어요 1 오니개무서워 2021.01.16 1638
8820 재밌는게임 land_tnt 2020.12.07 1462
8819 c언어 질문 세종기항19 2020.11.10 1689
8818 코딩 질문 1 세종기항19 2020.11.08 1547
8817 혹시나 물어보는데 드래곤규 2020.11.07 1414
8816 오픈보 게임 더블드래곤 리로디드 얼티네이트에 대해 궁금 이부닝 2020.09.09 1229
8815 상태이상 확률 결정 스트레이보우 2020.09.02 1011
8814 다음 인디사이드 제작대회는 언제쯤 열릴까요? WOONAALAA 2020.05.23 967
8813 xp로 제작된 어플 실행자체가 안된다는 분이 있습니다.(제생각엔 apk로 변환하는 과정에서 버전자체가 낮은 것 같습니다) 1 라엔 2020.05.04 1425
8812 apk 포팅하는데 게임 이름이 필요합니다 뜨는데 1 kashu 2020.05.03 1359
8811 쯔꾸르VX Ace렉먹음 도와주세요... 랖랖 2020.03.22 1790
8810 안녕하세요 1 청월령 2020.02.14 842
8809 포팅 중 '게임 이름이 필요합니다' 오류 2 아이비스 2020.02.11 824
8808 RPGMV 거리 추적 1 정욱 2020.01.19 937
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 442 Next
/ 442


[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)