질문과 답변

Extra Form

아래 질문글은 적당히 해결하고 (스킬 카테고리 스크립트에서 모든 스킬보기를 제일 위로 끌어올렸더니 해결되더군요)

 

KGC_PassiveSkill  을 적용시켜서 작업중인데, 

 

패시브 스킬의 적용은 잘 되는데, 이게 전투중에도 스킬 메뉴에 표시가 되어서 사용까지 가능하네요;;; 

 

전투중에는 패시브 스킬을 안보이게 하는 좋은 방법이 없을까요;;;

 

 

 

 

초보는 정말 힘들군요 ㅠ_ㅠ

 

답변 주신 모든 분들께 감사드립니다.

Comment '7'
  • profile
    습작 2010.09.15 09:31

    KGC_PassiveSkill 은 못써봐서 모르겠습니다만, 패시브스킬은 어차비 습득여부에 따른 능력 변동인 만큼,

    사용 가능한 때를 사용 불능으로 막아두면 되지 않을까 싶습니다.


    안보이게 하는 방법으로는 잘 모르겠습니다. 스킬 분류 등을 응용하면 되지 않을까 싶기도 하지만, 그쪽 스크립트도 안써봐서 잘 모르겠네요.

  • ?
    니노미야 2010.09.15 10:37

    전투시만 사용가능하게 체크해버리면, 스킬을 장착할 수 없는 상황이 벌어지더군요 ㅎㅎㅎ ... ㅎ ㅠ_ㅠ 

  • ?
    시트르산 2010.09.15 11:13

    스킬 카테고리에서

    전투시와 비전투시 메뉴 하에서 구분을 다르게 할 수 있는 점을 활용해서

     

    패시브 스킬을 전투시에 분류를 하지 말아보세요.

     

    저같은 경우는 전투시에

    ( 스킬, 마법, OverDrive, 기타 )

     로 분류를 하고,

     전투 시에는 모든 스킬을 표시하는 "모두" 라는 분류는 하지 않는 대신

     전투시에 표시하고 싶지 않은 스킬을 모두 전투시에 분류를 하지 않는 방법으로

     전투시에 의도하지 않은스킬의 사용이나 표시를 막고 있습니다

  • ?
    니노미야 2010.09.15 11:14

    패시브 스킬은 전투시 카테고리 항목에 추가해놓지 않았는데도, ' 전종' 항목이 있어서 그런지 출력되더군요.

     

    그렇다고 전종 항목을 날려버리면, 가장 상위에 있는 '회복' 카테고리의 스킬만 출력되는 상황이라...

  • ?
    시트르산 2010.09.15 11:17

    아마 카테고라이즈드 스킬의 버전상 문제가 아닐까요;;

    아래 제가 쓰는 버전을 받아보시고

    (전투시에 전종 분류를 안쓰는 경우에요)

    그래도 안되시면 흠... 카테고라이즈드 스킬의 위치상 문제일지도..?

     

    분류방법은 전작과 같이  데이터베이스의 스킬의 메모란에

    <분류 스킬>

    <분류 마법>

    <분류 특수> ......

     등과 같이 해주시면 되며,

     한 스킬에 대한 복수의 분류도  가능합니다

  • ?
    시트르산 2010.09.15 11:16

    #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
    #_/    ◆ 스킬 분류 - KGC_CategorizeSkill ◆ VX ◆
    #_/    ◇ Last update : 2008/06/13 ◇
    #_/----------------------------------------------------------------------------
    #_/  스킬을 종류별로 분류하는 기능을 작성합니다.
    #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

    $data_system = load_data("Data/System.rvdata") if $data_system == nil

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

    module KGC
    module CategorizeSkill
      # ◆ 비전투시로 분류한다
      ENABLE_NOT_IN_BATTLE = true
      # ◆ 전투시로 분류한다
      ENABLE_IN_BATTLE     = true

      # ◆ 전투시와 비전투시에 같은 카테고리를 사용한다
      #  분류 윈도우의 설정은 개별적으로 가 주세요.
      USE_SAME_CATEGORY = false

      # ◆ 자동 배분을 실시한다
      ENABLE_AUTO_CATEGORIZE = true
      # ◆ 복수의 카테고리에는 배치하지 않는다
      #  true  : 어느쪽이든 1개의 카테고리 밖에 배분하지 않는다 (「전종」은 예외)
      #  false : 해당하는 카테고리 모두에게 배분한다
      NOT_ALLOW_DUPLICATE = false

      # ◆ 전투중에 선택한 스킬의 위치를 기억한다
      REMEMBER_INDEX_IN_BATTLE = false


      # ━━━━━━━━ 비전투시 카테고리 ━━━━━━━━

      # ◆ 카테고리 식별명
      #  메모란에서 카테고리를 식별하기 위한 명칭을 늘어놓아 주세요.
      #  이하의 명칭은, 메모란에 기술할 필요는 없습니다.
      #   "전종", "회복", "회복 마법", "회복기술", "공격", "공격 마법", "공격기술",
      #   "보조", "보조 마법", "보조기술"
      CATEGORY_IDENTIFIER = [
        "전종", 
        "스킬",
        "마법",
        "회복",
        "보조",
        "특수",
    # ← 마지막 항목만은 , (을)를 붙여도 붙이지 않아도OK
      ]
      # ◆ 스킬의 디폴트 카테고리
      #  어느 카테고리에도 들어맞지 않는 스킬의 할당처입니다.
      SKILL_DEFAULT_CATEGORY = "특수 스킬"

      # ◆ 리스트에 표시하는 명칭
      #  스킬 화면에서 분류 윈도우에 표시하는 명칭입니다.
      #  「카테고리 식별명」과 같은 순서에 늘어놓아 주세요.
      CATEGORY_NAME = [
        "모든 계열", 
        "스킬 계열",
        "마법 계열",
        "회복 계열",
        "보조 계열",
        "특수 계열",
        ]

      # ◆ 분류의 설명문
      #  「분류 식별명」과 같은 순서에 늘어놓아 주세요.
      CATEGORY_DESCRIPTION = [
        "모든 스킬을 표시합니다.",
        "공격 스킬을 표시합니다.",
        "공격 마법을 표시합니다.",
        "회복 마법을 표시합니다.",
        "보조, 강화 스킬을 표시합니다.",
        "특수한 스킬을 표시합니다.",

      ]


      # ━━━━━━━━ 전투시 카테고리 ━━━━━━━━
      # USE_SAME_CATEGORY = false  의 경우만 유효하게 됩니다.
      # 설정 방법법은 비전투시와 같습니다.

      # ◆ 카테고리 식별명
      CATEGORY_IDENTIFIER_BATTLE = [
        "스킬",
        "마법",
        "OverDrive",
        "특수", 
      ]
      # ◆ 스킬의 디폴트 카테고리
      SKILL_DEFAULT_CATEGORY_BATTLE = "특수 스킬"

      # ◆ 리스트에 표시하는 명칭
      CATEGORY_NAME_BATTLE = [
        "스킬 계열",
        "마법 계열",
        "OverDrive",
        "특수 계열",   
      ]

      # ◆ 분류의 설명문
      CATEGORY_DESCRIPTION_BATTLE = [
        "",
        "",
        "",
        "",
       
      ]

      if USE_SAME_CATEGORY
        # 비전투시의 설정을 유용
        CATEGORY_IDENTIFIER_BATTLE    = CATEGORY_IDENTIFIER
        SKILL_DEFAULT_CATEGORY_BATTLE = SKILL_DEFAULT_CATEGORY
        CATEGORY_NAME_BATTLE          = CATEGORY_NAME
        CATEGORY_DESCRIPTION_BATTLE   = CATEGORY_DESCRIPTION
      end


      # ━━━━━━━━ 비전투시 분류 윈도우 ━━━━━━━━

      # ◆ 분류 윈도우의 좌표 [x, y]
      CATEGORY_WINDOW_POSITION  = [264, 192]
      # ◆ 분류 윈도우의 렬수
      CATEGORY_WINDOW_COLUMNS   = 2
      # ◆ 분류 윈도우의 렬폭
      CATEGORY_WINDOW_COL_WIDTH = 96
      # ◆ 분류 윈도우의 렬간의 공백
      CATEGORY_WINDOW_COL_SPACE = 32


      # ━━━━━━━━ 전투시 분류 윈도우 ━━━━━━━━

      # ◆ 분류 윈도우의 좌표 [x, y]
      CATEGORY_WINDOW_POSITION_BATTLE  = [5, 0]
      # ◆ 분류 윈도우의 렬수
      CATEGORY_WINDOW_COLUMNS_BATTLE   = 4
      # ◆ 분류 윈도우의 렬폭
      CATEGORY_WINDOW_COL_WIDTH_BATTLE = 96
      # ◆ 분류 윈도우의 렬간의 공백
      CATEGORY_WINDOW_COL_SPACE_BATTLE = 40
    end
    end

    #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

    $imported = {} if $imported == nil
    $imported["CategorizeSkill"] = true

    module KGC::CategorizeSkill
      # 스킬의 디폴트 카테고리 index
      SKILL_DEFAULT_CATEGORY_INDEX =
        CATEGORY_IDENTIFIER.index(SKILL_DEFAULT_CATEGORY)
      # 스킬의 디폴트 카테고리 index (전투시)
      SKILL_DEFAULT_CATEGORY_INDEX_BATTLE =
        CATEGORY_IDENTIFIER_BATTLE.index(SKILL_DEFAULT_CATEGORY_BATTLE)

      # 예약 식별명
      RESERVED_CATEGORIES = [
        "전종", "회복", "회복 마법", "회복기술", "공격", "공격 마법", "공격기술",
        "보조", "보조 마법", "보조기술"
      ]
      # 예약 카테고리 index
      RESERVED_CATEGORY_INDEX = {}
      # 예약 카테고리 index (전투시)
      RESERVED_CATEGORY_INDEX_BATTLE = {}

      # 예약 카테고리 index 작성
      RESERVED_CATEGORIES.each { |c|
        RESERVED_CATEGORY_INDEX[c] = CATEGORY_IDENTIFIER.index(c)
        RESERVED_CATEGORY_INDEX_BATTLE[c] = CATEGORY_IDENTIFIER_BATTLE.index(c)
      }

      # 정규 표현을 정의
      module Regexp
        # 스킬
        module Skill
          # 카테고리
          CATEGORY = /<(?:CATEGORY|분류|카테고리?)s*(.*)>/i
        end
      end
    end

    #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

    #==============================================================================
    # ■ RPG::Skill
    #==============================================================================

    class RPG::Skill < RPG::UsableItem
      #--------------------------------------------------------------------------
      # ○ 스킬 분류의 캐쉬 생성 (비전투시)
      #--------------------------------------------------------------------------
      def create_categorize_skill_cache
        @__skill_category = []

        # 자동 배분
        if KGC::CategorizeSkill::ENABLE_AUTO_CATEGORIZE
          prefix = auto_categorize_prefix
          if prefix != nil
            suffix = auto_categorize_suffix
            @__skill_category <<
              KGC::CategorizeSkill::RESERVED_CATEGORY_INDEX[prefix]
            @__skill_category <<
              KGC::CategorizeSkill::RESERVED_CATEGORY_INDEX[prefix + suffix]
          end
          @__skill_category.compact!
        end

        # 메모란
        self.note.split(/[rn]+/).each { |line|
          if line =~ KGC::CategorizeSkill::Regexp::Skill::CATEGORY
            # 카테고리
            c = KGC::CategorizeSkill::CATEGORY_IDENTIFIER.index($1)
            @__skill_category << c if c != nil
          end
        }

        if @__skill_category.empty?
          @__skill_category << KGC::CategorizeSkill::SKILL_DEFAULT_CATEGORY_INDEX
        elsif KGC::CategorizeSkill::NOT_ALLOW_DUPLICATE
          # 마지막에 지정한 카테고리에 배치
          @__skill_category = [@__skill_category.pop]
        end
      end
      #--------------------------------------------------------------------------
      # ○ 스킬 분류의 캐쉬 생성 (전투시)
      #--------------------------------------------------------------------------
      def create_categorize_skill_battle_cache
        @__skill_category_battle = []

        # 자동 배분
        if KGC::CategorizeSkill::ENABLE_AUTO_CATEGORIZE
          prefix = auto_categorize_prefix
          if prefix != nil
            suffix = auto_categorize_suffix
            @__skill_category_battle <<
              KGC::CategorizeSkill::RESERVED_CATEGORY_INDEX_BATTLE[prefix]
            @__skill_category_battle <<
              KGC::CategorizeSkill::RESERVED_CATEGORY_INDEX_BATTLE[prefix + suffix]
          end
          @__skill_category_battle.compact!
        end

        # 메모란
        self.note.split(/[rn]+/).each { |line|
          if line =~ KGC::CategorizeSkill::Regexp::Skill::CATEGORY
            # 카테고리
            c = KGC::CategorizeSkill::CATEGORY_IDENTIFIER_BATTLE.index($1)
            @__skill_category_battle << c if c != nil
          end
        }

        if @__skill_category_battle.empty?
          @__skill_category_battle <<
            KGC::CategorizeSkill::SKILL_DEFAULT_CATEGORY_INDEX_BATTLE
        elsif KGC::CategorizeSkill::NOT_ALLOW_DUPLICATE
          # 마지막에 지정한 카테고리에 배치
          @__skill_category_battle = [@__skill_category_battle.pop]
        end
      end
      #--------------------------------------------------------------------------
      # ○ 자동 배분처의 접두사
      #--------------------------------------------------------------------------
      def auto_categorize_prefix
        if is_recover?
          return "회복"
        elsif is_attack?
          return "공격"
        elsif is_assist?
          return "보조"
        else
          return nil
        end
      end
      #--------------------------------------------------------------------------
      # ○ 자동 배분처의 접미말
      #--------------------------------------------------------------------------
      def auto_categorize_suffix
        return (physical_attack ? "기술" : "마법")
      end
      #--------------------------------------------------------------------------
      # ○ 회복 스킬 판정
      #--------------------------------------------------------------------------
      def is_recover?
        result = for_friend?            # 대상이 아군
        result &= (occasion != 3)       # 사용 불가가 아니다
        result &= (base_damage < 0) ||  # 데미지량이 부, 또는
          (plus_state_set.empty? &&     # 스테이트를 부가하지 않고 해제한다
           !minus_state_set.empty?)
        return result
      end
      #--------------------------------------------------------------------------
      # ○ 공격 스킬 판정
      #--------------------------------------------------------------------------
      def is_attack?
        result = for_opponent?       # 대상이 적
        result &= battle_ok?         # 전투중에 사용 가능
        result &= (base_damage > 0)  # 데미지량이 정
        return result
      end
      #--------------------------------------------------------------------------
      # ○ 보조 스킬 판정
      #--------------------------------------------------------------------------
      def is_assist?
        result = (scope != 0)                 # 대상이 [없음] 이외
        result &= battle_ok?                  # 전투중에 사용 가능
        result &= !(plus_state_set.empty? &&
          minus_state_set.empty?)             # 스테이트가 변화한다
        return result
      end
      #--------------------------------------------------------------------------
      # ○ 스킬의 카테고리 (비전투시)
      #--------------------------------------------------------------------------
      def skill_category
        create_categorize_skill_cache if @__skill_category == nil
        return @__skill_category
      end
      #--------------------------------------------------------------------------
      # ○ 스킬의 카테고리 (전투시)
      #--------------------------------------------------------------------------
      def skill_category_battle
        create_categorize_skill_battle_cache if @__skill_category_battle == nil
        return @__skill_category_battle
      end
    end

    #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

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

    class Game_Actor < Game_Battler
      #--------------------------------------------------------------------------
      # ● 공개 인스턴스 변수
      #--------------------------------------------------------------------------
      attr_writer   :last_skill_category      # 커서 기억용 : 스킬 카테고리
      #--------------------------------------------------------------------------
      # ● 오브젝트 초기화
      #     actor_id : 액터 ID
      #--------------------------------------------------------------------------
      alias initialize_KGC_CategorizeSkill initialize
      def initialize(actor_id)
        initialize_KGC_CategorizeSkill(actor_id)

        @last_skill_category = 0
      end
      #--------------------------------------------------------------------------
      # ○ 커서 기억용의 카테고리 취득
      #--------------------------------------------------------------------------
      def last_skill_category
        @last_skill_category = 0 if @last_skill_category == nil
        return @last_skill_category
      end
    end

    #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

    #==============================================================================
    # ■ Window_Skill
    #==============================================================================

    class Window_Skill < Window_Selectable
      #--------------------------------------------------------------------------
      # ● 공개 인스턴스 변수
      #--------------------------------------------------------------------------
      attr_reader   :category                 # 카테고리
      #--------------------------------------------------------------------------
      # ● 오브젝트 초기화
      #     x      : 윈도우의 X 좌표
      #     y      : 윈도우의 Y 좌표
      #     width  : 윈도우의 폭
      #     height : 윈도우의 높이
      #     actor  : 액터
      #--------------------------------------------------------------------------
      alias initialize_KGC_CategorizeSkill initialize
      def initialize(x, y, width, height, actor)
        @category = 0

        initialize_KGC_CategorizeSkill(x, y, width, height, actor)
      end
      #--------------------------------------------------------------------------
      # ○ 카테고리 설정
      #--------------------------------------------------------------------------
      def category=(value)
        @category = value
        refresh
      end
      #--------------------------------------------------------------------------
      # ○ 스킬을 리스트에 포함할지
      #     skill : 스킬
      #--------------------------------------------------------------------------
      unless $@
        alias include_KGC_CategorizeSkill? include? if method_defined?(:include?)
      end
      def include?(skill)
        return false if skill == nil

        if defined?(include_KGC_CategorizeSkill?)
          return false unless include_KGC_CategorizeSkill?(skill)
        end

        # 분류하지 않는 경우는 포함한다
        if $game_temp.in_battle
          return true unless KGC::CategorizeSkill::ENABLE_IN_BATTLE
          reserved_index = KGC::CategorizeSkill::RESERVED_CATEGORY_INDEX_BATTLE
          skill_category = skill.skill_category_battle
        else
          return true unless KGC::CategorizeSkill::ENABLE_NOT_IN_BATTLE
          reserved_index = KGC::CategorizeSkill::RESERVED_CATEGORY_INDEX
          skill_category = skill.skill_category
        end
        # 「전종」이라면 포함한다
        return true if @category == reserved_index["전종"]
        # 카테고리 일치 판정
        return (skill_category.include?(@category))
      end
      #--------------------------------------------------------------------------
      # ● 리프레쉬
      #--------------------------------------------------------------------------
      def refresh
        @data = []
        for skill in @actor.skills
          next unless include?(skill)
          @data.push(skill)
          if skill.id == @actor.last_skill_id
            self.index = @data.size - 1
          end
        end
        @item_max = @data.size
        create_contents
        for i in 0...@item_max
          draw_item(i)
        end
      end
    end

    #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

    #==============================================================================
    # □ Window_SkillCategory
    #------------------------------------------------------------------------------
    #  스킬 화면에서 카테고리 선택을 실시하는 윈도우입니다.
    #==============================================================================

    class Window_SkillCategory < Window_Command
      #--------------------------------------------------------------------------
      # ● 오브젝트 초기화
      #--------------------------------------------------------------------------
      def initialize
        if $game_temp.in_battle
          cols = KGC::CategorizeSkill::CATEGORY_WINDOW_COLUMNS_BATTLE
          width = KGC::CategorizeSkill::CATEGORY_WINDOW_COL_WIDTH_BATTLE
          space = KGC::CategorizeSkill::CATEGORY_WINDOW_COL_SPACE_BATTLE
          commands = KGC::CategorizeSkill::CATEGORY_NAME_BATTLE
          position = KGC::CategorizeSkill::CATEGORY_WINDOW_POSITION_BATTLE
        else
          cols = KGC::CategorizeSkill::CATEGORY_WINDOW_COLUMNS
          width = KGC::CategorizeSkill::CATEGORY_WINDOW_COL_WIDTH
          space = KGC::CategorizeSkill::CATEGORY_WINDOW_COL_SPACE
          commands = KGC::CategorizeSkill::CATEGORY_NAME
          position = KGC::CategorizeSkill::CATEGORY_WINDOW_POSITION
        end
        width = width * cols + 32
        width += (cols - 1) * space
        super(width, commands, cols, 0, space)
        self.x = position[0]
        self.y = position[1]
        self.z = 1000
        self.index = 0
      end
      #--------------------------------------------------------------------------
      # ● 헬프 텍스트 갱신
      #--------------------------------------------------------------------------
      def update_help
        if $game_temp.in_battle
          text = KGC::CategorizeSkill::CATEGORY_DESCRIPTION_BATTLE[self.index]
        else
          text = KGC::CategorizeSkill::CATEGORY_DESCRIPTION[self.index]
        end
        @help_window.set_text(text)
      end
    end

    #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

    #==============================================================================
    # ■ Scene_Skill
    #==============================================================================

    if KGC::CategorizeSkill::ENABLE_NOT_IN_BATTLE
    class Scene_Skill < Scene_Base
      #--------------------------------------------------------------------------
      # ● 개시 처리
      #--------------------------------------------------------------------------
      alias start_KGC_CategorizeSkill start
      def start
        start_KGC_CategorizeSkill

        @category_window = Window_SkillCategory.new
        @category_window.help_window = @help_window
        show_category_window
      end
      #--------------------------------------------------------------------------
      # ● 종료 처리
      #--------------------------------------------------------------------------
      alias terminate_KGC_CategorizeSkill terminate
      def terminate
        terminate_KGC_CategorizeSkill

        @category_window.dispose
      end
      #--------------------------------------------------------------------------
      # ● 프레임 갱신
      #--------------------------------------------------------------------------
      alias update_KGC_CategorizeSkill update
      def update
        @category_window.update

        update_KGC_CategorizeSkill

        if @category_window.active
          update_category_selection
        end
      end
      #--------------------------------------------------------------------------
      # ○ 카테고리 선택의 갱신
      #--------------------------------------------------------------------------
      def update_category_selection
        unless @category_activated
          @category_activated = true
          return
        end

        # 선택 카테고리 변경
        if @last_category_index != @category_window.index
          @skill_window.category = @category_window.index
          @skill_window.refresh
          @last_category_index = @category_window.index
        end

        if Input.trigger?(Input::B)
          Sound.play_cancel
          return_scene
        elsif Input.trigger?(Input::C)
          Sound.play_decision
          hide_category_window
        elsif Input.trigger?(Input::R)
          Sound.play_cursor
          next_actor
        elsif Input.trigger?(Input::L)
          Sound.play_cursor
          prev_actor
        end
      end
      #--------------------------------------------------------------------------
      # ● 스킬 선택의 갱신
      #--------------------------------------------------------------------------
      alias update_skill_selection_KGC_CategorizeSkill update_skill_selection
      def update_skill_selection
        if Input.trigger?(Input::B)
          Sound.play_cancel
          show_category_window
          return
        elsif Input.trigger?(Input::R) || Input.trigger?(Input::L)
          # 아무것도 하지 않는다
          return
        end

        update_skill_selection_KGC_CategorizeSkill
      end
      #--------------------------------------------------------------------------
      # ○ 카테고리 윈도우의 표시
      #--------------------------------------------------------------------------
      def show_category_window
        @category_window.open
        @category_window.active = true
        @skill_window.active = false
      end
      #--------------------------------------------------------------------------
      # ○ 카테고리 윈도우의 비표시
      #--------------------------------------------------------------------------
      def hide_category_window
        @category_activated = false
        @category_window.close
        @category_window.active = false
        @skill_window.active = true
        # 스킬 윈도우의 인덱스를 조정
        if @skill_window.index >= @skill_window.item_max
          @skill_window.index = [@skill_window.item_max - 1, 0].max
        end
      end
    end
    end

    #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

    #==============================================================================
    # ■ Scene_Battle
    #==============================================================================

    if KGC::CategorizeSkill::ENABLE_IN_BATTLE
    class Scene_Battle < Scene_Base
      #--------------------------------------------------------------------------
      # ● 스킬 선택의 개시
      #--------------------------------------------------------------------------
      alias start_skill_selection_KGC_CategorizeSkill start_skill_selection
      def start_skill_selection
        start_skill_selection_KGC_CategorizeSkill

        # 카테고리 윈도우를 작성
        @category_window = Window_SkillCategory.new
        @category_window.help_window = @help_window
        @category_window.z = @help_window.z + 10
        @skill_window.active = false

        # 기억하고 있던 카테고리를 복원
          if KGC::CategorizeSkill::REMEMBER_INDEX_IN_BATTLE
            @category_window.index = @active_battler.last_skill_category
            @skill_window.category = @category_window.index
            @skill_window.refresh
        end
      end
      #--------------------------------------------------------------------------
      # ● 스킬 선택의 종료
      #--------------------------------------------------------------------------
      alias end_skill_selection_KGC_CategorizeSkill end_skill_selection
      def end_skill_selection
        if @category_window != nil
          @category_window.dispose
          @category_window = nil
        end

        end_skill_selection_KGC_CategorizeSkill
      end
      #--------------------------------------------------------------------------
      # ● 스킬 선택의 갱신
      #--------------------------------------------------------------------------
      alias update_skill_selection_KGC_CategorizeSkill update_skill_selection
      def update_skill_selection
        @category_window.update
        if @category_window.active
          update_skill_category_selection
          return
        elsif Input.trigger?(Input::B)
          Sound.play_cancel
          show_category_window
          return
        end

        update_skill_selection_KGC_CategorizeSkill
      end
      #--------------------------------------------------------------------------
      # ● 스킬의 결정
      #--------------------------------------------------------------------------
      alias determine_skill_KGC_CategorizeSkill determine_skill
      def determine_skill
        # 선택한 카테고리를 기억
        if KGC::CategorizeSkill::REMEMBER_INDEX_IN_BATTLE && @category_window != nil
          @active_battler.last_skill_category = @category_window.index
        end

        determine_skill_KGC_CategorizeSkill
      end
      #--------------------------------------------------------------------------
      # ○ 스킬의 카테고리 선택의 갱신
      #--------------------------------------------------------------------------
      def update_skill_category_selection
        @help_window.update

        # 선택 카테고리 변경
        if @last_category_index != @category_window.index
          @skill_window.category = @category_window.index
          @skill_window.refresh
          @last_category_index = @category_window.index
        end

        if Input.trigger?(Input::B)
          Sound.play_cancel
          end_skill_selection
        elsif Input.trigger?(Input::C)
          Sound.play_decision
          hide_category_window
        end
      end
      #--------------------------------------------------------------------------
      # ○ 카테고리 윈도우의 표시
      #--------------------------------------------------------------------------
      def show_category_window
        @category_window.open
        @category_window.active = true
        @skill_window.active = false
      end
      #--------------------------------------------------------------------------
      # ○ 카테고리 윈도우의 비표시
      #--------------------------------------------------------------------------
      def hide_category_window
        @category_activated = false
        @category_window.close
        @category_window.active = false
        @skill_window.active = true
        # 스킬 윈도우의 인덱스를 조정
        if @skill_window.index >= @skill_window.item_max
          @skill_window.index = [@skill_window.item_max - 1, 0].max
        end
      end
    end
    end

  • ?
    니노미야 2010.09.15 12:23

    올려주신 스크립트로 교체해봐도, 전투시에 '전종'을 표기하지 않으면, 전투 할 때 가장 상위의 카테고리만 출력이 되네요;;;

    왜 자꾸 나만 이런건가 .........................OTL


List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12384
RMXP 레이어 2에 만든 벽과 물건들을 캐릭터가 뚫고 지나갑니다... 1 클로토 2011.04.19 1355
RMVX PRABS 도와주세요.. 도저히 어떻게 해야...;; file 뚱가 2011.04.19 730
RMVX 스크립트로 직업의 속성유효도를 게임중에 바꿀 수 있을까요? 4 형철스 2011.04.19 1107
RMVX RGSS202E.dll 이 없어요.. 어디서 구하죠? 2 C1님 2011.04.18 8103
RMVX 캐릭터 주위에 어둡게 할수는 없나요 ?.. 2 C1님 2011.04.18 1240
RMXP 화면을 아카오니처럼하기 2 데버 2011.04.18 1832
RMVX PRABS 에러 도와주세요. 1 뚱가 2011.04.18 807
RMVX 초보예요..알고 싶습니다ㅠ.ㅠ 4 file 투리 2011.04.18 1148
RMXP 상점에서 되팔기 시 가격조정.. 1 샤루스 2011.04.17 808
RMVX 택틱스를 만들수는 없나요?? 알면 알켜주세요!! 부탁입니다!! dklqwer123 2011.04.17 924
RMVX 아... 예기치 않은 파일형식 ... 이거어떻하죠 ?... 2 OvercomE 2011.04.17 1427
RMXP 맵배치 렉 2 알파라이징 2011.04.17 1464
RMXP ABS 이벤트에아무것도 넣지않을경우 게임제작중 2011.04.15 1028
RMXP 스킬연속타격 2 좋은사람a 2011.04.14 1313
RPG XP 리젠방법 !! 1 백백이 2011.04.14 1722
RMVX 스크립트 몇줄부터 충돌 아방스의강좌 2011.04.14 1108
기타 홈페이지 오류가... 3 은색바람 2011.04.14 1760
RMVX 메뉴에서 장비삭제 빠삐코선장 2011.04.13 1002
RMXP 아이템 사용어떻게 하나요? 1 가나치킨 2011.04.12 1430
RMXP [스크립트] 액터 머리 위 간단한 체력바 게이지 다구 2011.04.11 1470
Board Pagination Prev 1 ... 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 ... 515 Next
/ 515