RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
Display KGC EquipLearnSkill AP in Wora's Battle Result Menu

0 Members and 1 Guest are viewing this topic.

**
Rep: +0/-0Level 70
RMRK Junior
Hey all,

Essentially what I'm looking for is an edit to Wora's Battle Result Display that shows AP earned from KGC's EquipLearn Skill. I'd like the text to read something like "Earned x AP" below the gold received message. Any help is appreciated!

Wora's Battle Result
Spoiler for:
Code: [Select]
#===============================================================
# ? [VX] ? Battle Result Window ? ?
#--------------------------------------------------------------
# ? by Woratana [woratana@hotmail.com]
# ? Thaiware RPG Maker Community
# ? Released on: 03/08/2008
# ? Version: 1.0
#--------------------------------------------------------------

class Window_Battle_Result < Window_Base
  def initialize(result_data)
    super(-5, 241, 555, 37 + (WLH * ($game_party.members.size + 2)) )
    self.z = 10001
    contents.font.color = normal_color
    contents.draw_text(0, 0, contents.width, WLH, result_data[0])
    contents.draw_text(0, WLH, contents.width, WLH, result_data[1])
    $game_party.members.each_index do |i|
      actor = $game_party.members[i]
      ty = WLH * (i + 2)
      draw_actor_name(actor, 0, ty)
      draw_actor_hp(actor, 140, ty)
      contents.font.color = system_color
      text = sprintf(Vocab::ExpNext, Vocab::level)
      tw = contents.text_size(text).width
      contents.draw_text(292, ty, contents.width, WLH, text)
      contents.font.color = normal_color
      contents.draw_text(292 + tw + 16, ty, contents.width, WLH, actor.next_exp_s)
    end
  end
end

class Scene_Battle < Scene_Base
  alias wora_batreswin_scebat_batend battle_end
  alias wora_batreswin_scebat_disexpgold display_exp_and_gold
 
  def battle_end(result)
    @result_window.dispose if result == 0
    wora_batreswin_scebat_batend(result)
  end
 
  def display_exp_and_gold
    result_data = [sprintf(Vocab::ObtainExp, $game_troop.exp_total),
  sprintf(Vocab::ObtainGold, $game_troop.gold_total, Vocab::gold)]
    @result_window = Window_Battle_Result.new(result_data)
    wora_batreswin_scebat_disexpgold
  end
end

KGC's Equip Learn Skill
Spoiler for:
Code: [Select]
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
#_/    ?           Equipment Skills System - KGC_EquipLearnSkill         ? VX ?
#_/    ?                     Last Update: 2008/02/10                          ?
#_/    ?                  Translation by Mr. Anonymous                        ?
#_/-----------------------------------------------------------------------------
#_/  This script allows you to assign skills that can be "learned" by equipping
#_/  designated equipment. Everytime the party defeats an enemy, they recieve
#_/  TP (Training Points) that go toward mastering a skill. Once a skill is
#_/  mastered (with the default setting of NEED_FULL_AP = true), that skill is
#_/  learned. This system is much like the one in Final Fantasy Tactics Advance.
#_/=============================================================================
#_/                       ? Instructions For Usage ?
#_/  To make use of these functions, you must insert the desired tag into the
#_/   "Notes" box located in the specified section of the database.
#_/ <learnskill> is for equipment, <needTP> is for Skills, and <TP> for enemies.
#_/  For example, you want the Club to supply the Dual Attack skill and be
#_/   mastered at 20 TP. You would locate the Club in the weapons tab of the
#_/   database and insert <learnskill 1>. Then, you'd locate Dual Attack in 
#_/   the Skills tab of the database and insert <needTP 20>. Simple, effective.
#_/
#_/  Key: n = Number
#_/       SkillID = The ID number of the desired skill in the skills database
#_/       Amount = The desired amount of TP.
#_/
#_/                        <learnskill SkillID>
#_/  Assigns the given skill to the designated equipment for the actor to use.
#_/
#_/                           <needTP Amount>
#_/  Assigns a specified amount of TP the actor must aquire in order to master
#_/   the skill.
#_/                             <TP Amount>
#_/  Assigns a specified amount of TP earned from defeating the enemy.
#_/
#_/
#_/                          ? Script Commands ?
#_/  These commands are used in "Script" function in the third page of event
#_/   commands under "Advanced".
#_/
#_/  * gain_actor_ap(ActorID, AP Amount, show)
#_/     Allows you to give an actor a specified amount of AP.
#_/     "Show" is a toggle. If set to true, if the skill is mastered, it will
#_/     display the "Skill Mastered" screen. (Ex. gain_actor_ap (1, 50, true))
#_/
#_/  * change_actor_ap(ActorID, SkillID, AP Amount)
#_/     Allows you to modify the amount of AP a specified skill has.
#_/      (Ex. change_actor_ap (1, 3, 100)
#_/ 
#_/  * call_ap_viewer(index: ActorID)
#_/     This calls the AP Viewer screen. If you exclude (index:), the first
#_/      actor in the index is automatically called.
#_/     Note: To use this properly, Ex. call_ap_viewer(index: 2) would pull up 
#_/      the AP Viewer screen for the second actor.
#_/
#_/  [Further, please see "Equipment Exclusion" and "Skills Exclusion" located]
#_/  [near the bottom of the Customize block for more control.                ]
#_/
#_/=============================================================================
#_/ Installation: Install above KCG_SkillCPSystem, if you use that script.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_

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

#==============================================================================#
#                           ? Customization ?                                  #
#==============================================================================#

module KGC
 module EquipLearnSkill
  # Note: To avoid confusion with the KCG_DistributeParameter script, I use TP
  #       (Training Point) as the default abbreviation. KGC uses AP.
  #                           ? AP Name ?
  #  This allows you to change the abbreviation of AP.
  VOCAB_AP     = "AP"
  #                      ? AP Default Value ?
  #  This allows you to change the default value of AP gained by an enemy when
  #   not manually specified using the <TP n> tag.
  DEFAULT_AP   = 1
  #                      ? Skill Use Mastery ?
  #  This toggle allows you to change whether a skill is usable when AP hasn't
  #   been maxed out.
  #  true = Skill cannot be used until the skill has been mastered.
  #  false = Skills are usable regardless of AP amount, however, when the item
  #          that provides that skill is unequipped, the skill is removed.
  NEED_FULL_AP = false

  #             ? AP Result Screen Aquisition Display ?
  #  The allows you to change the AP aquired message for battle results.
  #  %s : aquired AP amount
  VOCAB_RESULT_OBTAIN_AP         = "Aquired %s #{VOCAB_AP}!"
  # ? Display message when skill is mastered on results screen
  #   (beginning of message).
  #  %s : Actor Name
  VOCAB_RESULT_MASTER_SKILL      = "%s's"
  # ? Display message when skill mastered on results screen.
  #    (ending of message)
  #  %s : Name of mastered skill
  VOCAB_RESULT_MASTER_SKILL_NAME = "%s was mastered!"

  #                         ? Command Menu ?
  # This toggle adds the "AP Viewer" (Training Skills) selection to the main
  #  command menu.
  USE_MENU_AP_VIEWER_COMMAND = false
  # ? Text of the Equip Skills selection on the main command window.
  # Could also be written: VOCAB_MENU_AP_VIEWER       = "#{VOCAB_AP} Skills"
  VOCAB_MENU_AP_VIEWER       = "View AP"

  #                       ? AP Viewer Screen ?
  #  Mastered AP skills column display.
  VOCAB_MASTER_SKILL      = "[Mastered]"
  #  This toggle shows/hides skills that have 0 AP.
  #   This also evidently affects the skill's usability, though untested.
  #  true = show
  #  false = Hide
  SHOW_ZERO_AP_SKILL      = false
  #  This toggle allows you to hide the name of a skill if the skill has 0 AP.
  #   true = mask the skill name
  #   false = unmask the skill name
  MASK_ZERO_AP_SKILL_NAME = true
  #  This allows you to change the text of a 0 AP masked skill.
  #  (When MASK_ZERO_AP_SKILL_NAME = true)
  ZERO_AP_NAME_MASK       = "Unavailable"
  #  This toggle allows you to mask the text displayed in the "Help" (topmost)
  #   window of a skill that has 0 AP.
  #   true = mask the skill's help text
  #   false = display the text normally
  HIDE_ZERO_AP_SKILL_HELP = true
  #  This allows you to change the text displayed in the "Help" (topmost) window
  #   of a skill that has 0 AP. (When HIDE_ZERO_AP_SKILL_HELP = true)
  ZERO_AP_SKILL_HELP      = "This skill is unavailable."

  #                     ? Equipment Exclusion ?
  #  The following lines make it possible for a specified actor to not gain
  #   skills granted by certain Weapons and Armors.
  #  The subscript of the array (The [] brackets) cooresponds to the Actor ID.
  EXCLUDE_WEAPONS = []  # Weapons
  EXCLUDE_ARMORS  = []  # Armor
  #  Example:
  #   ActorID:1 WeaponID:50 and 70
  #   EXCLUDE_WEAPONS[1] = [50, 70]
  #  Ralph cannot aquire the skills given by the weapon of WeaponID 50 and 70.

  #                       ? Skills Exclusion ?
  #  The following line makes it possible for a specified actor to not gain
  #   certain skills provided by any equipment that may normally grant them.
  #  The subscript of the array (The [] brackets) cooresponds to the Actor ID.
  EXCLUDE_SKILLS = []
  #  Example:
  #   ActorID:1 SkillID:30
  #   EXCLUDE_SKILLS[1] = [30]
  #  Ralph cannot aquire the skill in SkillID 30 granted by any equipped goods.
 
  #               ? Call AP Viewer from the Skills Window ?
  #  This allows you to change what key/button is pressed on the skills window
  #   to shift to the AP Viewer window.
  #  When set to nil, this is disabled. ( CALL_EQUIPSKILLKEY = Input::nil )
  #  Note: Currently this only works with KGC_CategorizeSkill
  #  I'll revise this later so you may do so without that script.
  #  I also need to add a couple more methods to this anyhow.
   CALL_APVIEWERKEY = Input::nil
  #               ? Call Skills Window from the AP Viewer ?
  #  This allows you to change what key/button is pressed on the AP Viewer
  #   to shift to the skills window.
  #  When set to nil, this is disabled. ( CALL_SKILLSKEY = Input::nil )
   CALL_SKILLSKEY = Input::nil
 end
end

# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * #
#  Unless you know what you're doing, it's best not to alter anything beyond  #
#  this point, as this only affects the tags used for "Notes" in database.    #
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * #
#  Whatever word(s) are after the separator ( | ) in the following lines are
#   what are used to determine what is searched for in the "Notes" section.

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

module KGC::EquipLearnSkill
  # Regular Expressions Defined
  module Regexp
    # Base Item Module
    module BaseItem
      # Learn Skill tag string
      LEARN_SKILL = /<(?:LEARN_SKILL|learnskill)[ ]*(\d+(?:[ ]*,[ ]*\d+)*)>/i
    end

    # Base Skill Module
    module Skill
      # Need AP tag string
      NEED_AP = /<(?:NEED_AP|needTP)[ ]*(\d+)>/i
    end

    # Base Enemy Module
    module Enemy
      # AP given tag string
      AP = /<TP[ ]*(\d+)>/i
    end
  end
end

#==============================================================================
# ? KGC::Commands
#==============================================================================

module KGC::Commands
  module_function
  #--------------------------------------------------------------------------
  # ? AP ???
  #     actor_id : ???? ID
  #     ap       : ?? AP
  #     show     : ?????????
  #--------------------------------------------------------------------------
  def gain_actor_ap(actor_id, ap, show = false)
    $game_actors[actor_id].gain_ap(ap, show)
  end
  #--------------------------------------------------------------------------
  # ? AP ???
  #     actor_id : ???? ID
  #     skill_id : ??? ID
  #     ap       : AP
  #--------------------------------------------------------------------------
  def change_actor_ap(actor_id, skill_id, ap)
    skill = $data_skills[skill_id]
    return if skill == nil
    $game_actors[actor_id].change_ap(skill, ap)
  end
  #--------------------------------------------------------------------------
  # ? AP ?????????
  #     actor_index : ??????????
  #--------------------------------------------------------------------------
  def call_ap_viewer(actor_index = 0)
    return if $game_temp.in_battle
    $game_temp.next_scene = :ap_viewer
    $game_temp.next_scene_actor_index = actor_index
  end
end

class Game_Interpreter
  include KGC::Commands
end

#==============================================================================
# ? Vocab
#==============================================================================

module Vocab
  # ?????????
  ObtainAP              = KGC::EquipLearnSkill::VOCAB_RESULT_OBTAIN_AP
  ResultFullAPSkill     = KGC::EquipLearnSkill::VOCAB_RESULT_MASTER_SKILL
  ResultFullAPSkillName = KGC::EquipLearnSkill::VOCAB_RESULT_MASTER_SKILL_NAME

  # AP
  def self.ap
    return KGC::EquipLearnSkill::VOCAB_AP
  end

  # ?????????
  def self.full_ap_skill
    return KGC::EquipLearnSkill::VOCAB_MASTER_SKILL
  end

  # AP ????
  def self.ap_viewer
    return KGC::EquipLearnSkill::VOCAB_MENU_AP_VIEWER
  end
end

#==============================================================================
# ? RPG::BaseItem
#==============================================================================

class RPG::BaseItem
  #--------------------------------------------------------------------------
  # ? ???????????????
  #--------------------------------------------------------------------------
  def create_equip_learn_skill_cache
    @__learn_skills = []

    self.note.split(/[\r\n]+/).each { |line|
      case line
      when KGC::EquipLearnSkill::Regexp::BaseItem::LEARN_SKILL  # ?????
        $1.scan(/\d+/).each { |num|
          skill_id = num.to_i
          # ????????????????
          @__learn_skills << skill_id if $data_skills[skill_id] != nil
        }
      end
    }
  end
  #--------------------------------------------------------------------------
  # ? ??????? ID ???
  #--------------------------------------------------------------------------
  def learn_skills
    create_equip_learn_skill_cache if @__learn_skills == nil
    return @__learn_skills
  end
end

#==============================================================================
# ? RPG::Skill
#==============================================================================

class RPG::Skill < RPG::UsableItem
  #--------------------------------------------------------------------------
  # ? ?????
  #--------------------------------------------------------------------------
  @@__masked_name =
    KGC::EquipLearnSkill::ZERO_AP_NAME_MASK  # ????
  @@__expand_masked_name = false             # ???????????

  if @@__expand_masked_name != nil
    @@__expand_masked_name = (@@__masked_name.scan(/./).size == 1)
  end
  #--------------------------------------------------------------------------
  # ? ???????????????
  #--------------------------------------------------------------------------
  def create_equip_learn_skill_cache
    @__need_ap = 0

    self.note.split(/[\r\n]+/).each { |line|
      case line
      when KGC::EquipLearnSkill::Regexp::Skill::NEED_AP  # ?? AP
        @__need_ap = $1.to_i
      end
    }
  end
  #--------------------------------------------------------------------------
  # ? ????
  #--------------------------------------------------------------------------
  def masked_name
    if KGC::EquipLearnSkill::MASK_ZERO_AP_SKILL_NAME
      if @@__expand_masked_name
        # ???????????
        return @@__masked_name * self.name.scan(/./).size
      else
        return @@__masked_name
      end
    else
      return self.name
    end
  end
  #--------------------------------------------------------------------------
  # ? ?????? AP
  #--------------------------------------------------------------------------
  def need_ap
    create_equip_learn_skill_cache if @__need_ap == nil
    return @__need_ap
  end
end

#==============================================================================
# ? RPG::Enemy
#==============================================================================

class RPG::Enemy
  #--------------------------------------------------------------------------
  # ? ???????????????
  #--------------------------------------------------------------------------
  def create_equip_learn_skill_cache
    @__ap = KGC::EquipLearnSkill::DEFAULT_AP

    self.note.split(/[\r\n]+/).each { |line|
      case line
      when KGC::EquipLearnSkill::Regexp::Enemy::AP  # ?? AP
        @__ap = $1.to_i
      end
    }
  end
  #--------------------------------------------------------------------------
  # ? ?? AP
  #--------------------------------------------------------------------------
  def ap
    create_equip_learn_skill_cache if @__ap == nil
    return @__ap
  end
end

#==============================================================================
# ? Game_Temp
#==============================================================================

unless $imported["CustomMenuCommand"]
class Game_Temp
  #--------------------------------------------------------------------------
  # ? ??????????
  #--------------------------------------------------------------------------
  attr_accessor :next_scene_actor_index   # ????????????????
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  alias initialize_KGC_EquipLearnSkill initialize
  def initialize
    initialize_KGC_EquipLearnSkill

    @next_scene_actor_index = 0
  end
end
end

#==============================================================================
# ? Game_Actor
#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ? ??????
  #     actor_id : ???? ID
  #--------------------------------------------------------------------------
  alias setup_KGC_EquipLearnSkill setup
  def setup(actor_id)
    setup_KGC_EquipLearnSkill(actor_id)

    @skill_ap = []
  end
  #--------------------------------------------------------------------------
  # ? ?????? AP ??
  #     skill_id : ??? ID
  #--------------------------------------------------------------------------
  def skill_ap(skill_id)
    @skill_ap = [] if @skill_ap == nil
    return (@skill_ap[skill_id] != nil ? @skill_ap[skill_id] : 0)
  end
  #--------------------------------------------------------------------------
  # ? AP ??
  #     skill : ???
  #     ap    : ??? AP
  #--------------------------------------------------------------------------
  def change_ap(skill, ap)
    @skill_ap = [] if @skill_ap == nil
    @skill_ap[skill.id] = [[ap, skill.need_ap].min, 0].max
  end
  #--------------------------------------------------------------------------
  # ? ????????????
  #     new_skills : ???????????????
  #--------------------------------------------------------------------------
  def display_full_ap_skills(new_skills)
    $game_message.new_page
    text = sprintf(Vocab::ResultFullAPSkill, name)
    $game_message.texts.push(text)
    new_skills.each { |skill|
      text = sprintf(Vocab::ResultFullAPSkillName, skill.name)
      $game_message.texts.push(text)
    }
  end
  #--------------------------------------------------------------------------
  # ? AP ??
  #     ap   : AP ????
  #     show : ????????????
  #--------------------------------------------------------------------------
  def gain_ap(ap, show)
    last_full_ap_skills = full_ap_skills

    # ???????????????? AP ???
    equipment_skills(true).each { |skill|
      change_ap(skill, skill_ap(skill.id) + ap)
    }

    # ????????????
    if show && last_full_ap_skills != full_ap_skills
      display_full_ap_skills(full_ap_skills - last_full_ap_skills)
    end
  end
  #--------------------------------------------------------------------------
  # ? ??????????????
  #--------------------------------------------------------------------------
  alias skills_KGC_EquipLearnSkill skills
  def skills
    result = skills_KGC_EquipLearnSkill

    # ???? AP ???????????
    additional_skills = equipment_skills | full_ap_skills
    return (result | additional_skills).sort! { |a, b| a.id <=> b.id }
  end
  #--------------------------------------------------------------------------
  # ? ???????????
  #     all : ?????????????
  #--------------------------------------------------------------------------
  def equipment_skills(all = false)
    result = []
    equips.compact.each { |item|
      next if exclude_learnable_equipment?(item)       # ????????

      item.learn_skills.each { |i|
        skill = $data_skills[i]
        next if exclude_equipment_skill?(skill)        # ?????????
        if !all && KGC::EquipLearnSkill::NEED_FULL_AP  # ??????
          next unless ap_full?(skill)                   # ???????
        end
        result << skill
      }
    }
    return result
  end
  #--------------------------------------------------------------------------
  # ? ???????????
  #     item : ????
  #--------------------------------------------------------------------------
  def exclude_learnable_equipment?(item)
    case item
    when RPG::Weapon  # ??
      # ?????????????
      if KGC::EquipLearnSkill::EXCLUDE_WEAPONS[id] != nil &&
          KGC::EquipLearnSkill::EXCLUDE_WEAPONS[id].include?(item.id)
        return true
      end
    when RPG::Armor   # ??
      # ?????????????
      if KGC::EquipLearnSkill::EXCLUDE_ARMORS[id] != nil &&
          KGC::EquipLearnSkill::EXCLUDE_ARMORS[id].include?(item.id)
        return true
      end
    else              # ?????
      return true
    end

    return false
  end
  #--------------------------------------------------------------------------
  # ? ???????????????
  #     skill : ???
  #--------------------------------------------------------------------------
  def exclude_equipment_skill?(skill)
    # ????????????
    if KGC::EquipLearnSkill::EXCLUDE_SKILLS[id] != nil &&
        KGC::EquipLearnSkill::EXCLUDE_SKILLS[id].include?(skill.id)
      return true
    end

    return false
  end
  #--------------------------------------------------------------------------
  # ? AP ???????????
  #--------------------------------------------------------------------------
  def full_ap_skills
    result = []
    (1...$data_skills.size).each { |i|
      skill = $data_skills[i]
      result << skill if ap_full?(skill) && !exclude_equipment_skill?(skill)
    }
    return result
  end
  #--------------------------------------------------------------------------
  # ? AP ???????????
  #--------------------------------------------------------------------------
  def can_gain_ap_skills
    result = []
    equips.compact.each { |item|
      next if exclude_learnable_equipment?(item)  # ????????

      item.learn_skills.each { |i|
        skill = $data_skills[i]
        next if exclude_equipment_skill?(skill)   # ?????????
        result << skill
      }
    }
    return (result - full_ap_skills)              # ???????????
  end
  #--------------------------------------------------------------------------
  # ? AP ??????
  #     skill : ???
  #--------------------------------------------------------------------------
  def ap_full?(skill)
    return false if skill == nil                  # ?????????
    return false if skill.need_ap == 0            # ?? AP ? 0
    return false if @skills.include?(skill.id)    # ????

    return (skill_ap(skill.id) >= skill.need_ap)
  end
  #--------------------------------------------------------------------------
  # ? ??????????
  #     skill : ???
  #--------------------------------------------------------------------------
  def skill_can_use?(skill)
    return super
  end
end

#==============================================================================
# ? Game_Enemy
#==============================================================================

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # ? AP ???
  #--------------------------------------------------------------------------
  def ap
    return enemy.ap
  end
end

#==============================================================================
# ? Game_Troop
#==============================================================================

class Game_Troop < Game_Unit
  #--------------------------------------------------------------------------
  # ? AP ?????
  #--------------------------------------------------------------------------
  def ap_total
    ap = 0
    for enemy in dead_members
      ap += enemy.ap unless enemy.hidden
    end
    return ap
  end
end

#==============================================================================
# ? Window_Command
#==============================================================================

class Window_Command < Window_Selectable
  unless method_defined?(:add_command)
  #--------------------------------------------------------------------------
  # ? ???????
  #    ?????????
  #--------------------------------------------------------------------------
  def add_command(command)
    @commands << command
    @item_max = @commands.size
    item_index = @item_max - 1
    refresh_command
    draw_item(item_index)
    return item_index
  end
  #--------------------------------------------------------------------------
  # ? ???????????
  #--------------------------------------------------------------------------
  def refresh_command
    buf = self.contents.clone
    self.height = [self.height, row_max * WLH + 32].max
    create_contents
    self.contents.blt(0, 0, buf, buf.rect)
    buf.dispose
  end
  #--------------------------------------------------------------------------
  # ? ???????
  #--------------------------------------------------------------------------
  def insert_command(index, command)
    @commands.insert(index, command)
    @item_max = @commands.size
    refresh_command
    refresh
  end
  #--------------------------------------------------------------------------
  # ? ???????
  #--------------------------------------------------------------------------
  def remove_command(command)
    @commands.delete(command)
    @item_max = @commands.size
    refresh
  end
  end
end

#==============================================================================
# ? Window_APViewer
#------------------------------------------------------------------------------
# ?AP ?????????????????????
#==============================================================================

class Window_APViewer < Window_Selectable
  #--------------------------------------------------------------------------
  # ? ?????????
  #     x      : ?????? X ??
  #     y      : ?????? Y ??
  #     width  : ???????
  #     height : ????????
  #     actor  : ????
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height, actor)
    super(x, y, width, height)
    @actor = actor
    @can_gain_ap_skills = []
    self.index = 0
    refresh
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def skill
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def refresh
    @data = []
    @can_gain_ap_skills = @actor.can_gain_ap_skills
    equipment_skills = @actor.equipment_skills(true)

    (1...$data_skills.size).each { |i|
      skill = $data_skills[i]
      next if skill.need_ap == 0
      unless KGC::EquipLearnSkill::SHOW_ZERO_AP_SKILL
        # AP ? 0 ???????????????????
        if @actor.skill_ap(skill.id) == 0 && !equipment_skills.include?(skill)
          next
        end
      end
      @data.push(skill)
    }
    @item_max = @data.size
    create_contents
    @item_max.times { |i| draw_item(i) }
  end
  #--------------------------------------------------------------------------
  # ? ?????
  #     index : ????
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    skill = @data[index]
    if skill != nil
      rect.width -= 4
      draw_item_name(skill, rect.x, rect.y, enable?(skill))
      if @actor.ap_full?(skill) || @actor.skill_learn?(skill)
        # ????
        text = Vocab.full_ap_skill
      else
        # AP ???
        text = sprintf("%s %4d/%4d",
          Vocab.ap, @actor.skill_ap(skill.id), skill.need_ap)
      end
      # AP ???
      self.contents.font.color = normal_color
      self.contents.draw_text(rect, text, 2)
    end
  end
  #--------------------------------------------------------------------------
  # ? ?????????????????
  #     skill : ???
  #--------------------------------------------------------------------------
  def enable?(skill)
    return true if @actor.skill_learn?(skill)           # ????
    return true if @actor.ap_full?(skill)               # ????
    return true if @can_gain_ap_skills.include?(skill)  # AP ????

    return false
  end
  #--------------------------------------------------------------------------
  # ? ??????????????????
  #     skill : ???
  #--------------------------------------------------------------------------
  def no_mask?(skill)
    return true if @actor.skill_learn?(skill)           # ????
    return true if @actor.skill_ap(skill.id) > 0        # AP ? 1 ??
    return true if @can_gain_ap_skills.include?(skill)  # AP ????

    return false
  end
  #--------------------------------------------------------------------------
  # ? ????????
  #     item    : ???? (????????????)
  #     x       : ??? X ??
  #     y       : ??? Y ??
  #     enabled : ??????false ?????????
  #--------------------------------------------------------------------------
  def draw_item_name(item, x, y, enabled = true)
    draw_icon(item.icon_index, x, y, enabled)
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(x + 24, y, 172, WLH,
      no_mask?(item) ? item.name : item.masked_name)
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def update
    super
    return unless self.active

    if Input.repeat?(Input::RIGHT)
      cursor_pagedown
    elsif Input.repeat?(Input::LEFT)
      cursor_pageup
    end
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def update_help
    if KGC::EquipLearnSkill::HIDE_ZERO_AP_SKILL_HELP && !no_mask?(skill)
      @help_window.set_text(KGC::EquipLearnSkill::ZERO_AP_SKILL_HELP)
    else
      @help_window.set_text(skill == nil ? "" : skill.description)
    end
  end
end

#==============================================================================
# ? Scene_Map
#==============================================================================

class Scene_Map < Scene_Base
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  alias update_scene_change_KGC_EquipLearnSkill update_scene_change
  def update_scene_change
    return if $game_player.moving?    # ??????????

    if $game_temp.next_scene == :ap_viewer
      call_ap_viewer
      return
    end

    update_scene_change_KGC_EquipLearnSkill
  end
  #--------------------------------------------------------------------------
  # ? AP ??????????
  #--------------------------------------------------------------------------
  def call_ap_viewer
    $game_temp.next_scene = nil
    $scene = Scene_APViewer.new($game_temp.next_scene_actor_index,
      0, Scene_APViewer::HOST_MAP)
  end
end

#==============================================================================
# ? Scene_Menu
#==============================================================================

class Scene_Menu < Scene_Base
  if KGC::EquipLearnSkill::USE_MENU_AP_VIEWER_COMMAND
  #--------------------------------------------------------------------------
  # ? ????????????
  #--------------------------------------------------------------------------
  alias create_command_window_KGC_EquipLearnSkill create_command_window
  def create_command_window
    create_command_window_KGC_EquipLearnSkill

    return if $imported["CustomMenuCommand"]

    @__command_ap_viewer_index = @command_window.add_command(Vocab.ap_viewer)
    if @command_window.oy > 0
      @command_window.oy -= Window_Base::WLH
    end
    @command_window.index = @menu_index
  end
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  alias update_command_selection_KGC_EquipLearnSkill update_command_selection
  def update_command_selection
    call_ap_viewer_flag = false
    if Input.trigger?(Input::C)
      case @command_window.index
      when @__command_ap_viewer_index  # AP ????
        call_ap_viewer_flag = true
      end
    end

    # AP ???????
    if call_ap_viewer_flag
      if $game_party.members.size == 0
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      start_actor_selection
      return
    end

    update_command_selection_KGC_EquipLearnSkill
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  alias update_actor_selection_KGC_EquipLearnSkill update_actor_selection
  def update_actor_selection
    if Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      case @command_window.index
      when @__command_ap_viewer_index  # AP ????
        $scene = Scene_APViewer.new(@status_window.index,
          @__command_ap_viewer_index, Scene_APViewer::HOST_MENU)
        return
      end
    end

    update_actor_selection_KGC_EquipLearnSkill
  end
end

#==============================================================================
# ? Scene_APViewer
#------------------------------------------------------------------------------
#   AP ????????????????
#==============================================================================

class Scene_APViewer < Scene_Base
  HOST_MENU   = 0
  HOST_MAP    = 1
  #--------------------------------------------------------------------------
  # ? ?????????
  #     actor_index : ??????????
  #     menu_index  : ?????????????
  #     host_scene  : ????? (0..????  1..???)
  #--------------------------------------------------------------------------
  def initialize(actor_index = 0, menu_index = 0, host_scene = HOST_MENU)
    @actor_index = actor_index
    @menu_index = menu_index
    @host_scene = host_scene
  end
  #--------------------------------------------------------------------------
  # ? ????
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    @actor = $game_party.members[@actor_index]
    @help_window = Window_Help.new
    if $imported["HelpExtension"]
      @help_window.row_max = KGC::HelpExtension::ROW_MAX
    end
    @status_window = Window_SkillStatus.new(0, @help_window.height, @actor)
    dy = @help_window.height + @status_window.height
    @skill_window = Window_APViewer.new(0, dy,
      Graphics.width, Graphics.height - dy, @actor)
    @skill_window.help_window = @help_window
  end
  #--------------------------------------------------------------------------
  # ? ????
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @help_window.dispose
    @status_window.dispose
    @skill_window.dispose
  end
  #--------------------------------------------------------------------------
  # ? ???????
  #--------------------------------------------------------------------------
  def return_scene
    case @host_scene
    when HOST_MENU
      $scene = Scene_Menu.new(@menu_index)
    when HOST_MAP
      $scene = Scene_Map.new
    end
  end
  #--------------------------------------------------------------------------
  # ? ??????????????
  #--------------------------------------------------------------------------
  def next_actor
    @actor_index += 1
    @actor_index %= $game_party.members.size
    $scene = Scene_APViewer.new(@actor_index, @menu_index, @host_scene)
  end
  #--------------------------------------------------------------------------
  # ? ??????????????
  #--------------------------------------------------------------------------
  def prev_actor
    @actor_index += $game_party.members.size - 1
    @actor_index %= $game_party.members.size
    $scene = Scene_APViewer.new(@actor_index, @menu_index, @host_scene)
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @help_window.update
    @skill_window.update
    @status_window.update
    if @skill_window.active
      update_skill_selection
    end
  end
  #--------------------------------------------------------------------------
  # ? ????????
  #--------------------------------------------------------------------------
  def update_skill_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::R)
      Sound.play_cursor
      next_actor
    elsif Input.trigger?(Input::L)
      Sound.play_cursor
      prev_actor
    elsif KGC::EquipLearnSkill::CALL_SKILLSKEY != nil &&
      Input.trigger?(KGC::EquipLearnSkill::CALL_SKILLSKEY)
      Sound.play_decision
      $scene = Scene_Skill.new(@actor_index)
    end
  end
end

#==============================================================================
# ? Scene_Battle
#==============================================================================

class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # ? ?????????????????
  #--------------------------------------------------------------------------
  alias wait_for_message_KGC_EquipLearnSkill wait_for_message
  def wait_for_message
    return if @ignore_wait_for_message  # ?????????????????

    wait_for_message_KGC_EquipLearnSkill
  end
  #--------------------------------------------------------------------------
  # ? ?????????????
  #--------------------------------------------------------------------------
  alias display_exp_and_gold_KGC_EquipLearnSkill display_exp_and_gold
  def display_exp_and_gold
    @ignore_wait_for_message = true

    display_exp_and_gold_KGC_EquipLearnSkill

    display_ap
    @ignore_wait_for_message = false
    wait_for_message
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  alias display_level_up_KGC_EquipLearnSkill display_level_up
  def display_level_up
    display_level_up_KGC_EquipLearnSkill

    display_master_equipment_skill
  end
  #--------------------------------------------------------------------------
  # ? ?? AP ???
  #--------------------------------------------------------------------------
  def display_ap
    ap = $game_troop.ap_total
    if ap > 0
      text = sprintf(Vocab::ObtainAP, ap)
      $game_message.texts.push('\.' + text)
    end
    wait_for_message
  end
  #--------------------------------------------------------------------------
  # ? ????????????
  #--------------------------------------------------------------------------
  def display_master_equipment_skill
    ap = $game_troop.ap_total
    $game_party.existing_members.each { |actor|
      last_skills = actor.skills
      actor.gain_ap(ap, true)
    }
    wait_for_message
  end
end

#==============================================================================
# ? Scene_Skill
#==============================================================================
# Added by Mr. Anonymous
#==============================================================================
if $imported["CategorizeSkill"]
  class Scene_Skill < Scene_Base
  #--------------------------------------------------------------------------
  #  Update Actor
  #--------------------------------------------------------------------------
   alias update_category_selection_KGC_EquipLearnSkill update_category_selection
    def update_category_selection
        if KGC::EquipLearnSkill::CALL_APVIEWERKEY != nil &&
           Input.trigger?(KGC::EquipLearnSkill::CALL_APVIEWERKEY)
           Sound.play_decision
           $scene = Scene_APViewer.new(@actor_index)
         end
      update_category_selection_KGC_EquipLearnSkill
    end
  end
end
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
#_/  The original untranslated version of this script can be found here:
# http://f44.aaa.livedoor.jp/~ytomy/tkool/rpgtech/php/tech.php?tool=VX&cat=tech_vx/equip&tech=equip_extension
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
« Last Edit: May 11, 2011, 07:10:14 PM by GregAzrael »

**
Rep: +0/-0Level 70
RMRK Junior
Never mind, solved.
« Last Edit: May 24, 2011, 05:10:41 AM by GregAzrael »