질문과 답변

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 12391
RMVX 무기나 방어구를 소지, 장비중일때의 조건분기질문입니다. 2 file 볼프강 2011.10.08 1696
RMXP 온라인 3d 3 까멸 2011.12.11 1697
RMVXA RPG VX ACE로 모바일게임 만드는법 아시는분! 5 닉네임이없다능 2013.01.12 1697
RMVX 몬스터 캐릭터 칩이 짤려요 3 사루바 2011.07.29 1698
RMXP 스크립트에서.... 2 Lighna 2012.03.10 1699
RMVX 문장에 대해서... 준짱돌이 2011.11.11 1700
기타 폰트의 깨짐현상 도와주세요. 2 운운 2013.12.25 1700
RMVX 예전에 스크립트 게시판에 올라온 "AutoLight" 스크립트 3 TheEK 2012.05.17 1701
RMVXA VX Ace 에도 SBS ATB 전투 시스템 스크립트가 존재하나요? 2 TheEK 2012.10.13 1701
기타 RPG BUILDER3D 맵(나무,물, 등)까는 법좀요 1 adfgh 2011.03.20 1703
RMVX prabs란?? 캐릭터칩 좀 도와주세요~ㅠㅠ 1 까멸 2011.11.28 1706
RMVX 타일셋 붙이기.. SM소야 2011.12.16 1706
RMXP 저장공간 제한.. 2 the레드 2010.09.12 1707
RMVX 패시브스크립트 재질문입니다. 2 file 크런키맛아듀크림 2011.11.11 1707
RMVX RPG만들기 VX 인물 사진으로 얼굴그래픽을 만들고싶어요! 1 kng0147 2011.07.12 1708
RMVX 대화 도중 상반신이 나오게 하는 법 1 IU[아이유] 2011.07.16 1708
RMVXA [VXA] 아이템창 스크립트 수정하는 방법이 궁금합니다 1 file 서로게이트 2013.10.03 1709
RMXP 통행.. 1 프라임헌터즈 2011.07.21 1710
RMVX 로드 오류나네요ㅠ 3 file 라유 2011.10.09 1710
RMXP 액알 몬스터에 관하여 질문합니다 2 BGM 2011.11.13 1711
Board Pagination Prev 1 ... 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 ... 516 Next
/ 516