[ACE] Yanfly Engine Ace - Learn Skill Engine v1.00 [Solved]

● ARCHIVED · READ-ONLY
Started by SlaveOfThaMind 7 posts View original ↗
  1. Hey everyone, I've been out of the loop for quite a while now, but I had a question in regards to the Yanfly Engine Ace - Learn Skill Engine v1.00 script.
     
    From what I've gathered so far, you can basically set it to unlock skills at a certain actor level, and require 'x' ammount of 'y' to learn said skill.
     
    What I want to accomplish is changing the required form (which are currently listed jp, exp, gold ) to a specific item (such as 'crystal shard' ).
     
    Basically instead of earning skill points through battle, enemies will drop 'cystal shards' upon defeat. These shards can then be spent accordingly to master new skills.
     
    Any idea's on how I could go about implementing this?
     
    Here is a look at the script in question. (1200 lines)

    Thanks for your time!

    Spoiler
     
    #==============================================================================
    #
    # ▼ Yanfly Engine Ace - Learn Skill Engine v1.00
    # -- Last Updated: 2012.01.08
    # -- Level: Normal, Hard
    # -- Requires: n/a
    #
    #==============================================================================
    $imported = {} if $imported.nil?
    $imported["YEA-LearnSkillEngine"] = true
    #==============================================================================
    # ▼ Updates
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # 2012.01.08 - Started Script and Finished.
    #
    #==============================================================================
    # ▼ Introduction
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # For those who want an alternative for actors to learn skills outside of
    # leveling, this script allows actors to learn skills through a learn skill
    # menu. The actor can use acquired JP, EXP, or Gold to learn skills. Skills can
    # also be hidden until certain requirements are met.
    #
    #==============================================================================
    # ▼ Instructions
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # To install this script, open up your script editor and copy/paste this script
    # to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.
    #
    # -----------------------------------------------------------------------------
    # Class Notetags - These notetags go in the class notebox in the database.
    # -----------------------------------------------------------------------------
    #
    #
    # Sets the class to be able to learn skills x through the Learn Skills menu.
    # Insert multiple of these tags to increase the number of skills learned.
    #
    # -----------------------------------------------------------------------------
    # Skill Notetags - These notetags go in the skill notebox in the database.
    # -----------------------------------------------------------------------------
    #
    #
    #
    # Sets the learn for cost the skill to require x amounts of JP, x amounts of
    # exp, or x amounts of gold. Only one type of cost can be used at a time. For
    # JP costs, the Yanfly Engine Ace - JP Manager script must be installed.
    #
    #
    # Sets the skill to require the actor's current level to be x before the skill
    # will show up in the skill learning window.
    #
    #
    #
    # Sets the skill to require learning skill x (through any means) before the
    # skill becomes visible in the skill learning window. Insert multiples of these
    # tags to require more skills to be learned in order for the skill to show.
    #
    #
    #
    # Sets the skill to require switch x to be ON in order for it to show in the
    # skill learning window. Insert multiple switches to to increase the number of
    # switches needed to be ON before the skill is shown.
    #
    #
    # string
    # string
    #
    # For the more advanced users, replace string with lines of code to check for
    # whether or not the skill will be shown in skill learning window. If multiple
    # lines are used, they are all considered part of the same line.
    #
    #==============================================================================
    # ▼ Compatibility
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
    # it will run with RPG Maker VX without adjusting.
    #
    # This script is compatible with Yanfly Engine Ace - JP Manager v1.00+. The
    # placement of this script relative to the JP Manager script doesn't matter.
    #
    #==============================================================================
    module YEA
    module LEARN_SKILL
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - General Settings -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # Adjust the general settings here for your game. These adjust how the
    # command name appears, a switch to show the Learn Command
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    COMMAND_NAME = "Learn Skills" # Name used for Learn Skill command.
    # This switch will hide the "Learn" command from view if the switch is OFF.
    # The "Learn" command will be shown if the switch is ON. Set this switch to
    # 0 to not use this effect and to always have the Learn command be shown.
    SHOW_SWITCH = 0
    # This adjusts the order the Skill Types appear in for the command window.
    # Any Skill Types unlisted will not be shown.
    STYPE_ORDER = [41..999, 1..40]
    # For those who installed Yanfly Engine - Skill Restrictions, you can
    # choose to display warmups or cooldowns inside of the menu here.
    DRAW_WARMUP = true # Draw warmups for skills?
    DRAW_COOLDOWN = true # Draw cooldowns for skills?
    #-------------------------------------------------------------------------
    # - Default Cost -
    #-------------------------------------------------------------------------
    # This sets the default costs for all skills. If the JP script isn't
    # installed, the type will become :exp instead.
    #
    # Cost Type Description
    # :jp - Requires YEA - JP Manager.
    # :exp - Makes skill cost EXP.
    # :gold - Makes skill cost gold.
    #-------------------------------------------------------------------------
    DEFAULT_COST = 100 # Sets the default cost of a skill.
    DEFAULT_TYPE = :jp # Sets the default cost type.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Learn Window Settings -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # These settings adjust the Learn Window's visual appearance. Adjust the
    # way empty text appears, EXP cost suffixes appear, Learned text appears,
    # font sizes, and cost colours here.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    EMPTY_TEXT = "-" # Text if no restricts used for the skill.
    EXP_TEXT = "EXP" # Text used for EXP costs.
    LEARNED_TEXT = "Learned" # Text to indicate skill has been learned.
    LEARNED_SIZE = 20 # Font size used for learned skill text.
    COLOUR_JP = 24 # Text colour used for JP Cost.
    COLOUR_EXP = 5 # Text colour used for EXP Cost.
    COLOUR_GOLD = 21 # Text colour used for Gold Cost.
    COST_SIZE = 20 # Font size used for skill costs.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Cost Window Settings -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # When a skill is selected to be learned, the cost window appears. Adjust
    # the settings here to choose how your game's cost window looks. Change the
    # maximum number of rows, the gold icon used for gold costs, the gold text,
    # the learn skill text, the cancel text, and the cancel icon here.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    MAXIMUM_ROWS = 8 # Maximum number of rows displayed.
    GOLD_ICON = 361 # Icon used for gold costs.
    GOLD_TEXT = "Gold Cost" # Text used for gold costs.
    LEARN_SKILL_TEXT = "Learn %s?" # Text used to learn skill.
    LEARN_CANCEL_TEXT = "Cancel" # Text used for do not learn.
    CANCEL_ICON = 187 # Icon used for cancel.
    end # LEARN_SKILL
    end # YEA
    #==============================================================================
    # ▼ Editting anything past this point may potentially result in causing
    # computer damage, incontinence, explosion of user's head, coma, death, and/or
    # halitosis so edit at your own risk.
    #==============================================================================
    module YEA
    module LEARN_SKILL
    module_function
    #--------------------------------------------------------------------------
    # convert_integer_array
    #--------------------------------------------------------------------------
    def convert_integer_array(array)
    result = []
    array.each { |i|
    case i
    when Range; result |= i.to_a
    when Integer; result |=
    end }
    return result
    end
    #--------------------------------------------------------------------------
    # converted_contants
    #--------------------------------------------------------------------------
    STYPE_ORDER = convert_integer_array(STYPE_ORDER)
    end # LEARN_SKILL
    module REGEXP
    module CLASS
    LEARN_SKILLS = /<(?:LEARN_SKILLS|learn skills):[ ](\d+(?:\s*,\s*\d+)*)>/i
    end # CLASS
    module SKILL
    LEARN_COST = /<(?:LEARN_COST|learn cost):[ ](.*)>/i
    LEARN_REQUIRE_LEVEL =
    /<(?:LEARN_REQUIRE_LEVEL|learn require level):[ ](\d+)>/i
    LEARN_REQUIRE_SKILL =
    /<(?:LEARN_REQUIRE_SKILL|learn require skill):[ ](\d+(?:\s*,\s*\d+)*)>/i
    LEARN_REQUIRE_SWITCH =
    /<(?:LEARN_REQUIRE_SWITCH|learn require switch):[ ](\d+(?:\s*,\s*\d+)*)>/i
    LEARN_REQUIRE_EVAL_ON = /<(?:LEARN_REQUIRE_EVAL|learn require eval)>/i
    LEARN_REQUIRE_EVAL_OFF = /<\/(?:LEARN_REQUIRE_EVAL|learn require eval)>/i
    end # SKILL
    end # REGEXP
    end # YEA
    #==============================================================================
    # ■ Numeric
    #==============================================================================
    class Numeric
    #--------------------------------------------------------------------------
    # new method: group_digits
    #--------------------------------------------------------------------------
    unless $imported["YEA-CoreEngine"]
    def group; return self.to_s; end
    end # $imported["YEA-CoreEngine"]
    end # Numeric
    #==============================================================================
    # ■ Icon
    #==============================================================================
    module Icon
    #--------------------------------------------------------------------------
    # self.cancel
    #--------------------------------------------------------------------------
    def self.cancel
    return YEA::LEARN_SKILL::CANCEL_ICON
    end
    #--------------------------------------------------------------------------
    # self.learn_skill_gold
    #--------------------------------------------------------------------------
    def self.learn_skill_gold
    return YEA::LEARN_SKILL::GOLD_ICON
    end
    end # Icon
    #==============================================================================
    # ■ Switch
    #==============================================================================
    module Switch
    #--------------------------------------------------------------------------
    # self.show_learn_skill
    #--------------------------------------------------------------------------
    def self.show_learn_skill
    return true if YEA::LEARN_SKILL::SHOW_SWITCH <= 0
    return $game_switches[YEA::LEARN_SKILL::SHOW_SWITCH]
    end
    end # Switch
    #==============================================================================
    # ■ DataManager
    #==============================================================================
    module DataManager
    #--------------------------------------------------------------------------
    # alias method: load_database
    #--------------------------------------------------------------------------
    class <def self.load_database
    load_database_lse
    load_notetags_lse
    end
    #--------------------------------------------------------------------------
    # new method: load_notetags_lse
    #--------------------------------------------------------------------------
    def self.load_notetags_lse
    groups = [$data_classes, $data_skills]
    for group in groups
    for obj in group
    next if obj.nil?
    obj.load_notetags_lse
    end
    end
    end
    end # DataManager
    #==============================================================================
    # ■ RPG::Class
    #==============================================================================
    class RPG::Class < RPG::BaseItem
    #--------------------------------------------------------------------------
    # public instance variables
    #--------------------------------------------------------------------------
    attr_accessor :learn_skills
    #--------------------------------------------------------------------------
    # common cache: load_notetags_lse
    #--------------------------------------------------------------------------
    def load_notetags_lse
    @learn_skills = []
    #---
    self.note.split(/[\r\n]+/).each { |line|
    case line
    #---
    when YEA::REGEXP::CLASS::LEARN_SKILLS
    $1.scan(/\d+/).each { |num|
    @learn_skills.push(num.to_i) if num.to_i > 0 }
    end
    } # self.note.split
    #---
    end
    end # RPG::Class
    #==============================================================================
    # ■ RPG::Skill
    #==============================================================================
    class RPG::Skill < RPG::UsableItem
    #--------------------------------------------------------------------------
    # public instance variables
    #--------------------------------------------------------------------------
    attr_accessor :learn_cost
    attr_accessor :learn_require_level
    attr_accessor :learn_require_skill
    attr_accessor :learn_require_switch
    attr_accessor :learn_require_eval
    #--------------------------------------------------------------------------
    # common cache: load_notetags_lse
    #--------------------------------------------------------------------------
    def load_notetags_lse
    @learn_cost = [YEA::LEARN_SKILL::DEFAULT_COST]
    @learn_cost.push(YEA::LEARN_SKILL::DEFAULT_TYPE)
    @learn_require_level = 0
    @learn_require_skill = []
    @learn_require_switch = []
    @learn_require_eval_on = false
    #---
    self.note.split(/[\r\n]+/).each { |line|
    case line
    #---
    when YEA::REGEXP::SKILL::LEARN_COST
    case $1.upcase
    when /(\d+)[ ]JP/i
    next unless $imported["YEA-JPManager"]
    @learn_cost = [$1.to_i, :jp]
    when /(\d+)[ ]EXP/i
    @learn_cost = [$1.to_i, :exp]
    when /(\d+)[ ]GOLD/i
    @learn_cost = [$1.to_i, :gold]
    end
    #---
    when YEA::REGEXP::SKILL::LEARN_REQUIRE_LEVEL
    @learn_require_level = $1.to_i
    when YEA::REGEXP::SKILL::LEARN_REQUIRE_SKILL
    $1.scan(/\d+/).each { |num|
    @learn_require_skill.push(num.to_i) if num.to_i > 0 }
    when YEA::REGEXP::SKILL::LEARN_REQUIRE_SWITCH
    $1.scan(/\d+/).each { |num|
    @learn_require_switch.push(num.to_i) if num.to_i > 0 }
    #---
    when YEA::REGEXP::SKILL::LEARN_REQUIRE_EVAL_ON
    @learn_require_eval_on = true
    when YEA::REGEXP::SKILL::LEARN_REQUIRE_EVAL_OFF
    @learn_require_eval_on = false
    else
    next unless @learn_require_eval_on
    @learn_require_eval = "" if @learn_require_eval.nil?
    @learn_require_eval += line.to_s
    #---
    end
    } # self.note.split
    #---
    if !$imported["YEA-JPManager"] && @learn_cost[1] == :jp
    @learn_cost[1] = :exp
    end
    end
    end # RPG::Skill
    #==============================================================================
    # ■ Game_Actor
    #==============================================================================
    class Game_Actor < Game_Battler
    #--------------------------------------------------------------------------
    # alias method: skills
    #--------------------------------------------------------------------------
    alias game_actor_skills_lse skills
    def skills
    btest_add_learn_skills
    game_actor_skills_lse
    end
    #--------------------------------------------------------------------------
    # new method: btest_add_learn_skills
    #--------------------------------------------------------------------------
    def btest_add_learn_skills
    return unless $BTEST
    for skill_id in self.class.learn_skills; learn_skill(skill_id); end
    end
    #--------------------------------------------------------------------------
    # new method: exp_class
    #--------------------------------------------------------------------------
    def exp_class(class_id)
    @exp[class_id] = 0 if @exp[class_id].nil?
    return @exp[class_id]
    end
    #--------------------------------------------------------------------------
    # lose_exp_class
    #--------------------------------------------------------------------------
    def lose_exp_class(value, class_id)
    exp = exp_class(class_id) - value
    change_exp_class(exp, class_id)
    end
    #--------------------------------------------------------------------------
    # change_exp_class
    #--------------------------------------------------------------------------
    def change_exp_class(exp, class_id)
    return change_exp(exp, false) if class_id == @class_id
    @exp[class_id] = [exp, 0].max
    end
    end # Game_Actor
    #==============================================================================
    # ■ Window_SkillCommand
    #==============================================================================
    class Window_SkillCommand < Window_Command
    #--------------------------------------------------------------------------
    # alias method: make_command_list
    #--------------------------------------------------------------------------
    alias window_skillcommand_make_command_list_lse make_command_list
    def make_command_list
    window_skillcommand_make_command_list_lse
    return if @actor.nil?
    add_learn_skill_command unless $imported["YEA-SkillMenu"]
    end
    #--------------------------------------------------------------------------
    # new method: add_learn_skill_command
    #--------------------------------------------------------------------------
    def add_learn_skill_command
    return unless Switch.show_learn_skill
    name = YEA::LEARN_SKILL::COMMAND_NAME
    add_command(name, :learn_skill, true, @actor.added_skill_types[0])
    end
    end # Window_SkillCommand
    #==============================================================================
    # ■ Window_LearnSkillCommand
    #==============================================================================
    class Window_LearnSkillCommand < Window_Command
    #--------------------------------------------------------------------------
    # public instance variables
    #--------------------------------------------------------------------------
    attr_reader :skill_window
    #--------------------------------------------------------------------------
    # initialize
    #--------------------------------------------------------------------------
    def initialize(dx, dy)
    super(dx, dy)
    @actor = nil
    end
    #--------------------------------------------------------------------------
    # window_width
    #--------------------------------------------------------------------------
    def window_width; return 160; end
    #--------------------------------------------------------------------------
    # visible_line_number
    #--------------------------------------------------------------------------
    def visible_line_number; return 4; end
    #--------------------------------------------------------------------------
    # actor=
    #--------------------------------------------------------------------------
    def actor=(actor)
    return if @actor == actor
    @actor = actor
    refresh
    select(item_max - 1) if index >= item_max
    end
    #--------------------------------------------------------------------------
    # make_command_list
    #--------------------------------------------------------------------------
    def make_command_list
    return if @actor.nil?
    make_unlocked_class_skill_types
    correct_unlocked_class_learned_skills
    for stype_id in YEA::LEARN_SKILL::STYPE_ORDER
    next unless include?(stype_id)
    name = $data_system.skill_types[stype_id]
    add_command(name, :skill, true, stype_id)
    end
    end
    #--------------------------------------------------------------------------
    # make_unlocked_class_skill_types
    #--------------------------------------------------------------------------
    def make_unlocked_class_skill_types
    return unless $imported["YEA-ClassSystem"]
    @unlocked_types = []
    unlocked_classes = @actor.unlocked_classes.clone
    unlocked_classes |= YEA::CLASS_SYSTEM::DEFAULT_UNLOCKS
    for class_id in unlocked_classes
    next if $data_classes[class_id].nil?
    for feature in $data_classes[class_id].features
    next unless feature.code == 41
    @unlocked_types.push(feature.data_id)
    end
    end
    end
    #--------------------------------------------------------------------------
    # correct_unlocked_class_learned_skills
    #--------------------------------------------------------------------------
    def correct_unlocked_class_learned_skills
    return unless $imported["YEA-ClassSystem"]
    unlocked_classes = @actor.unlocked_classes.clone
    unlocked_classes |= YEA::CLASS_SYSTEM::DEFAULT_UNLOCKS
    for class_id in unlocked_classes
    @actor.learn_class_skills(class_id)
    end
    end
    #--------------------------------------------------------------------------
    # include?
    #--------------------------------------------------------------------------
    def include?(stype_id)
    return true if @actor.added_skill_types.include?(stype_id)
    if $imported["YEA-ClassSystem"]
    return true if @unlocked_types.include?(stype_id)
    end
    return false
    end
    #--------------------------------------------------------------------------
    # update
    #--------------------------------------------------------------------------
    def update
    super
    @skill_window.stype_id = current_ext if @skill_window
    end
    #--------------------------------------------------------------------------
    # skill_window=
    #--------------------------------------------------------------------------
    def skill_window=(skill_window)
    @skill_window = skill_window
    update
    end
    end # Window_LearnSkillCommand
    #==============================================================================
    # ■ Window_LearnSkillList
    #==============================================================================
    class Window_LearnSkillList < Window_SkillList
    #--------------------------------------------------------------------------
    # col_max
    #--------------------------------------------------------------------------
    def col_max; return 1; end
    #--------------------------------------------------------------------------
    # select_last
    #--------------------------------------------------------------------------
    def select_last; select(0); end
    #--------------------------------------------------------------------------
    # actor=
    #--------------------------------------------------------------------------
    def actor=(actor)
    return if @actor == actor
    super(actor)
    make_learn_skills_list
    end
    #--------------------------------------------------------------------------
    # make_learn_skills_list
    #--------------------------------------------------------------------------
    def make_learn_skills_list
    @learn_skills = []
    @skill_classes = {}
    return if @actor.nil?
    for skill_id in @actor.class.learn_skills
    next if $data_skills[skill_id].nil?
    next if @learn_skills.include?($data_skills[skill_id])
    skill = $data_skills[skill_id]
    @learn_skills.push(skill)
    @skill_classes[skill] = [] if @skill_classes[skill].nil?
    @skill_classes[skill].push(@actor.class.id)
    end
    make_unlocked_class_skills
    end
    #--------------------------------------------------------------------------
    # make_unlocked_class_skills
    #--------------------------------------------------------------------------
    def make_unlocked_class_skills
    return unless $imported["YEA-ClassSystem"]
    @unlocked_types = []
    unlocked_classes = @actor.unlocked_classes.clone
    unlocked_classes |= YEA::CLASS_SYSTEM::DEFAULT_UNLOCKS
    for class_id in unlocked_classes
    next if $data_classes[class_id].nil?
    for skill_id in $data_classes[class_id].learn_skills
    next if $data_skills[skill_id].nil?
    skill = $data_skills[skill_id]
    @learn_skills.push(skill) unless @learn_skills.include?(skill)
    @skill_classes[skill] = [] if @skill_classes[skill].nil?
    @skill_classes[skill] |= [class_id]
    end
    end
    end
    #--------------------------------------------------------------------------
    # skill_classes
    #--------------------------------------------------------------------------
    def skill_classes(skill)
    return @skill_classes[skill]
    end
    #--------------------------------------------------------------------------
    # make_item_list
    #--------------------------------------------------------------------------
    def make_item_list
    return if @learn_skills.nil?
    @data = @learn_skills.select {|skill| include?(skill) }
    end
    #--------------------------------------------------------------------------
    # include?
    #--------------------------------------------------------------------------
    def include?(item)
    return false if item.nil?
    return false unless meet_requirements?(item)
    return item.stype_id == @stype_id
    end
    #--------------------------------------------------------------------------
    # meet_requirements?
    #--------------------------------------------------------------------------
    def meet_requirements?(item)
    return false if @actor.nil?
    return false unless meet_level_requirements?(item)
    return false unless meet_skill_requirements?(item)
    return false unless meet_switch_requirements?(item)
    return false unless meet_eval_requirements?(item)
    return true
    end
    #--------------------------------------------------------------------------
    # meet_level_requirements?
    #--------------------------------------------------------------------------
    def meet_level_requirements?(item)
    return @actor.level >= item.learn_require_level
    end
    #--------------------------------------------------------------------------
    # meet_skill_requirements?
    #--------------------------------------------------------------------------
    def meet_skill_requirements?(item)
    for skill_id in item.learn_require_skill
    next if $data_skills[skill_id].nil?
    return false unless @actor.skill_learn?($data_skills[skill_id])
    end
    return true
    end
    #--------------------------------------------------------------------------
    # meet_switch_requirements?
    #--------------------------------------------------------------------------
    def meet_switch_requirements?(item)
    for switch_id in item.learn_require_switch
    return false unless $game_switches[switch_id]
    end
    return true
    end
    #--------------------------------------------------------------------------
    # meet_eval_requirements?
    #--------------------------------------------------------------------------
    def meet_eval_requirements?(item)
    return true if item.learn_require_eval.nil?
    return eval(item.learn_require_eval)
    end
    #--------------------------------------------------------------------------
    # enable?
    #--------------------------------------------------------------------------
    def enable?(skill)
    return false if skill.nil?
    return false unless enabled_jp?(skill)
    return false unless enabled_exp?(skill)
    return false unless enabled_gold?(skill)
    return !@actor.skill_learn?(skill)
    end
    #--------------------------------------------------------------------------
    # enabled_jp?
    #--------------------------------------------------------------------------
    def enabled_jp?(skill)
    return true if skill.learn_cost[1] != :jp
    cost = skill.learn_cost[0]
    for class_id in @skill_classes[skill]
    return true if @actor.jp(class_id) >= cost
    end
    return false
    end
    #--------------------------------------------------------------------------
    # enabled_exp?
    #--------------------------------------------------------------------------
    def enabled_exp?(skill)
    return true if skill.learn_cost[1] != :exp
    cost = skill.learn_cost[0]
    for class_id in @skill_classes[skill]
    return true if @actor.exp_class(class_id) >= cost
    end
    return false
    end
    #--------------------------------------------------------------------------
    # enabled_gold?
    #--------------------------------------------------------------------------
    def enabled_gold?(skill)
    return true if skill.learn_cost[1] != :gold
    cost = skill.learn_cost[0]
    return $game_party.gold >= cost
    end
    #--------------------------------------------------------------------------
    # draw_item
    #--------------------------------------------------------------------------
    def draw_item(index)
    skill = @data[index]
    return if skill.nil?
    rect = item_rect(index)
    rect.width = (contents.width - spacing) / 2 - 4
    draw_item_name(skill, rect.x, rect.y, enable?(skill), rect.width - 24)
    draw_skill_cost(rect, skill)
    draw_restriction_info(skill, index)
    draw_learn_cost(skill, index)
    end
    #--------------------------------------------------------------------------
    # skill_restriction?
    #--------------------------------------------------------------------------
    def skill_restriction?(index)
    return false
    end
    #--------------------------------------------------------------------------
    # draw_restriction_info
    #--------------------------------------------------------------------------
    def draw_restriction_info(skill, index)
    return unless $imported["YEA-SkillRestrictions"]
    rect = item_rect(index)
    rect.x = contents.width / 2
    rect.width /= 2
    rect.width /= 3
    rect.width -= 8
    draw_skill_warmup(skill, rect)
    rect.x += rect.width + 4
    draw_skill_cooldown(skill, rect)
    end
    #--------------------------------------------------------------------------
    # draw_skill_warmup
    #--------------------------------------------------------------------------
    def draw_skill_warmup(skill, rect)
    return unless YEA::LEARN_SKILL::DRAW_WARMUP
    enabled = enable?(skill)
    enabled = false if skill.warmup <= 0
    change_color(warmup_colour, enabled)
    icon = Icon.warmup
    if icon > 0
    draw_icon(icon, rect.x + rect.width-24, rect.y, enable?(skill))
    rect.width -= 24
    end
    contents.font.size = YEA::SKILL_RESTRICT::WARMUP_SIZE
    value = skill.warmup > 0 ? skill.warmup.group : empty_text
    text = sprintf(YEA::SKILL_RESTRICT::WARMUP_SUFFIX, value)
    draw_text(rect, text, 2)
    reset_font_settings
    end
    #--------------------------------------------------------------------------
    # draw_skill_cooldown
    #--------------------------------------------------------------------------
    def draw_skill_cooldown(skill, rect)
    return unless YEA::LEARN_SKILL::DRAW_COOLDOWN
    enabled = enable?(skill)
    enabled = false if skill.cooldown <= 0
    change_color(cooldown_colour, enabled)
    icon = Icon.cooldown
    if icon > 0
    draw_icon(icon, rect.x + rect.width-24, rect.y, enable?(skill))
    rect.width -= 24
    end
    contents.font.size = YEA::SKILL_RESTRICT::COOLDOWN_SIZE
    value = skill.cooldown > 0 ? skill.cooldown.group : empty_text
    text = sprintf(YEA::SKILL_RESTRICT::COOLDOWN_SUFFIX, value)
    draw_text(rect, text, 2)
    reset_font_settings
    end
    #--------------------------------------------------------------------------
    # empty_text
    #--------------------------------------------------------------------------
    def empty_text
    return YEA::LEARN_SKILL::EMPTY_TEXT
    end
    #--------------------------------------------------------------------------
    # draw_learn_cost
    #--------------------------------------------------------------------------
    def draw_learn_cost(skill, index)
    rect = item_rect(index)
    rect.width -= 4
    if @actor.skill_learn?(skill)
    draw_learned_skill(rect)
    else
    draw_learn_skill_cost(skill, rect)
    end
    reset_font_settings
    end
    #--------------------------------------------------------------------------
    # draw_learned_skill
    #--------------------------------------------------------------------------
    def draw_learned_skill(rect)
    contents.font.size = YEA::LEARN_SKILL::LEARNED_SIZE
    change_color(normal_color)
    draw_text(rect, YEA::LEARN_SKILL::LEARNED_TEXT, 2)
    end
    #--------------------------------------------------------------------------
    # draw_learn_skill_cost
    #--------------------------------------------------------------------------
    def draw_learn_skill_cost(skill, rect)
    case skill.learn_cost[1]
    when :jp
    return unless $imported["YEA-JPManager"]
    draw_jp_cost(skill, rect)
    when :exp
    draw_exp_cost(skill, rect)
    when :gold
    draw_gold_cost(skill, rect)
    else; return
    end
    end
    #--------------------------------------------------------------------------
    # draw_jp_cost
    #--------------------------------------------------------------------------
    def draw_jp_cost(skill, rect)
    enabled = enabled_jp?(skill)
    if Icon.jp > 0
    draw_icon(Icon.jp, rect.x + rect.width - 24, rect.y, enabled)
    rect.width -= 24
    end
    contents.font.size = YEA::LEARN_SKILL::COST_SIZE
    change_color(system_color, enabled)
    draw_text(rect, Vocab::jp, 2)
    rect.width -= text_size(Vocab::jp).width
    cost = skill.learn_cost[0]
    text = cost.group
    change_color(text_color(YEA::LEARN_SKILL::COLOUR_JP), enabled)
    draw_text(rect, text, 2)
    end
    #--------------------------------------------------------------------------
    # draw_exp_cost
    #--------------------------------------------------------------------------
    def draw_exp_cost(skill, rect)
    enabled = enabled_exp?(skill)
    contents.font.size = YEA::LEARN_SKILL::COST_SIZE
    change_color(system_color, enabled)
    draw_text(rect, YEA::LEARN_SKILL::EXP_TEXT, 2)
    rect.width -= text_size(YEA::LEARN_SKILL::EXP_TEXT).width
    cost = skill.learn_cost[0]
    text = cost.group
    change_color(text_color(YEA::LEARN_SKILL::COLOUR_EXP), enabled)
    draw_text(rect, text, 2)
    end
    #--------------------------------------------------------------------------
    # draw_gold_cost
    #--------------------------------------------------------------------------
    def draw_gold_cost(skill, rect)
    enabled = enabled_jp?(skill)
    contents.font.size = YEA::LEARN_SKILL::COST_SIZE
    change_color(system_color, enabled)
    draw_text(rect, Vocab::currency_unit, 2)
    rect.width -= text_size(Vocab::currency_unit).width
    cost = skill.learn_cost[0]
    text = cost.group
    change_color(text_color(YEA::LEARN_SKILL::COLOUR_GOLD), enabled)
    draw_text(rect, text, 2)
    end
    end # Window_LearnSkillList
    #==============================================================================
    # ■ Window_LearnSkillCostBack
    #==============================================================================
    class Window_LearnSkillCostBack < Window_Base
    #--------------------------------------------------------------------------
    # initialize
    #--------------------------------------------------------------------------
    def initialize(item_window)
    dw = Graphics.width * 3 / 4
    dx = (Graphics.width - dw) / 2
    super(dx, 0, dw, fitting_height(2))
    self.openness = 0
    self.back_opacity = 255
    @front_window = nil
    @item_window = item_window
    @skill = nil
    end
    #--------------------------------------------------------------------------
    # reveal
    #--------------------------------------------------------------------------
    def reveal(skill, skill_classes)
    @skill = skill
    return if @skill.nil?
    case @skill.learn_cost[1]
    when :gold
    self.height = fitting_height(3)
    else
    maximum = [skill_classes.size, YEA::LEARN_SKILL::MAXIMUM_ROWS].min
    self.height = fitting_height(maximum + 2)
    end
    create_contents
    self.y = (Graphics.height - self.height) / 2
    refresh
    open
    end
    #--------------------------------------------------------------------------
    # refresh
    #--------------------------------------------------------------------------
    def refresh
    contents.clear
    reset_font_settings
    draw_learn_skill_text
    rect = Rect.new(0, 0, contents.width - 4, line_height)
    draw_learn_skill_cost(@skill, rect)
    end
    #--------------------------------------------------------------------------
    # draw_learn_skill_text
    #--------------------------------------------------------------------------
    def draw_learn_skill_text
    name = sprintf("\eI[%d]%s", @skill.icon_index, @skill.name)
    fmt = YEA::LEARN_SKILL::LEARN_SKILL_TEXT
    text = sprintf(fmt, name)
    draw_text_ex(4, 0, text)
    end
    #--------------------------------------------------------------------------
    # draw_learn_skill_cost
    #--------------------------------------------------------------------------
    def draw_learn_skill_cost(skill, rect)
    case skill.learn_cost[1]
    when :jp
    return unless $imported["YEA-JPManager"]
    draw_jp_cost(skill, rect)
    when :exp
    draw_exp_cost(skill, rect)
    when :gold
    draw_gold_cost(skill, rect)
    else; return
    end
    end
    #--------------------------------------------------------------------------
    # draw_jp_cost
    #--------------------------------------------------------------------------
    def draw_jp_cost(skill, rect)
    enabled = true
    if Icon.jp > 0
    draw_icon(Icon.jp, rect.x + rect.width - 24, rect.y, enabled)
    rect.width -= 24
    end
    contents.font.size = YEA::LEARN_SKILL::COST_SIZE
    change_color(system_color, enabled)
    draw_text(rect, Vocab::jp, 2)
    rect.width -= text_size(Vocab::jp).width
    cost = skill.learn_cost[0]
    text = cost.group
    change_color(text_color(YEA::LEARN_SKILL::COLOUR_JP), enabled)
    draw_text(rect, text, 2)
    end
    #--------------------------------------------------------------------------
    # draw_exp_cost
    #--------------------------------------------------------------------------
    def draw_exp_cost(skill, rect)
    enabled = true
    contents.font.size = YEA::LEARN_SKILL::COST_SIZE
    change_color(system_color, enabled)
    draw_text(rect, YEA::LEARN_SKILL::EXP_TEXT, 2)
    rect.width -= text_size(YEA::LEARN_SKILL::EXP_TEXT).width
    cost = skill.learn_cost[0]
    text = cost.group
    change_color(text_color(YEA::LEARN_SKILL::COLOUR_EXP), enabled)
    draw_text(rect, text, 2)
    end
    #--------------------------------------------------------------------------
    # draw_gold_cost
    #--------------------------------------------------------------------------
    def draw_gold_cost(skill, rect)
    enabled = true
    contents.font.size = YEA::LEARN_SKILL::COST_SIZE
    change_color(system_color, enabled)
    draw_text(rect, Vocab::currency_unit, 2)
    rect.width -= text_size(Vocab::currency_unit).width
    cost = skill.learn_cost[0]
    text = cost.group
    change_color(text_color(YEA::LEARN_SKILL::COLOUR_GOLD), enabled)
    draw_text(rect, text, 2)
    end
    end # Window_LearnSkillCostBack
    #==============================================================================
    # ■ Window_LearnSkillCostFront
    #==============================================================================
    class Window_LearnSkillCostFront < Window_Command
    #--------------------------------------------------------------------------
    # initialize
    #--------------------------------------------------------------------------
    def initialize(item_window, cost_window)
    super((Graphics.width - window_width) / 2, 0)
    self.openness = 0
    self.opacity = 0
    @item_window = item_window
    @cost_window = cost_window
    @skill = nil
    @actor = nil
    deactivate
    end
    #--------------------------------------------------------------------------
    # window_width
    #--------------------------------------------------------------------------
    def window_width; return Graphics.width * 3 / 4; end
    #--------------------------------------------------------------------------
    # skill_class
    #--------------------------------------------------------------------------
    def skill_class
    return @skill_classes.nil? ? nil : @skill_classes[index]
    end
    #--------------------------------------------------------------------------
    # reveal
    #--------------------------------------------------------------------------
    def reveal(skill, skill_classes, actor)
    @skill = skill
    @skill_classes = skill_classes.clone
    @actor = actor
    return if @skill.nil?
    case @skill.learn_cost[1]
    when :gold
    self.height = fitting_height(2)
    else
    maximum = [skill_classes.size, YEA::LEARN_SKILL::MAXIMUM_ROWS].min
    self.height = fitting_height(maximum + 1)
    end
    create_contents
    self.y = @cost_window.y + line_height
    refresh
    select(0)
    open
    activate
    end
    #--------------------------------------------------------------------------
    # make_command_list
    #--------------------------------------------------------------------------
    def make_command_list
    return if @skill_classes.nil?
    if @skill.learn_cost[1] == :gold
    add_command("GOLD", :gold, true)
    add_command(YEA::LEARN_SKILL::LEARN_CANCEL_TEXT, :cancel, true)
    return
    end
    for class_id in @skill_classes
    name = $data_classes[class_id].name
    add_command(name, :class, enabled?(class_id), class_id)
    end
    add_command(YEA::LEARN_SKILL::LEARN_CANCEL_TEXT, :cancel, true)
    end
    #--------------------------------------------------------------------------
    # enabled?
    #--------------------------------------------------------------------------
    def enabled?(class_id)
    cost = @skill.learn_cost[0]
    case @skill.learn_cost[1]
    when :jp
    return @actor.jp(class_id) >= cost
    when :exp
    return @actor.exp_class(class_id) >= cost
    end
    return true
    end
    #--------------------------------------------------------------------------
    # draw_item
    #--------------------------------------------------------------------------
    def draw_item(index)
    reset_font_settings
    rect = item_rect(index)
    rect.x += 24
    rect.width -= 28
    return draw_cancel_text(index, rect) if @list[index][:symbol] == :cancel
    draw_class_name(index, rect) if @skill.learn_cost[1] != :gold
    draw_party_gold(rect) if @skill.learn_cost[1] == :gold
    draw_learn_skill_cost(@skill, rect, index)
    end
    #--------------------------------------------------------------------------
    # draw_cancel_text
    #--------------------------------------------------------------------------
    def draw_cancel_text(index, rect)
    draw_icon(Icon.cancel, rect.x, rect.y)
    text = command_name(index)
    draw_text(rect.x+24, rect.y, rect.width-24, line_height, text)
    end
    #--------------------------------------------------------------------------
    # draw_class_name
    #--------------------------------------------------------------------------
    def draw_class_name(index, rect)
    class_id = @list[index][:ext]
    return if $data_classes[class_id].nil?
    enabled = enabled?(class_id)
    if $imported["YEA-ClassSystem"]
    draw_icon($data_classes[class_id].icon_index, rect.x, rect.y, enabled)
    end
    rect.x += 24
    rect.width -= 24
    change_color(normal_color, enabled)
    draw_text(rect, $data_classes[class_id].name)
    end
    #--------------------------------------------------------------------------
    # draw_class_name
    #--------------------------------------------------------------------------
    def draw_party_gold(rect)
    enabled = true
    draw_icon(Icon.learn_skill_gold, rect.x, rect.y)
    rect.x += 24
    rect.width -= 24
    change_color(normal_color, enabled)
    draw_text(rect, YEA::LEARN_SKILL::GOLD_TEXT)
    end
    #--------------------------------------------------------------------------
    # draw_learn_skill_cost
    #--------------------------------------------------------------------------
    def draw_learn_skill_cost(skill, rect, index)
    case skill.learn_cost[1]
    when :jp
    return unless $imported["YEA-JPManager"]
    draw_jp_cost(skill, rect, index)
    when :exp
    draw_exp_cost(skill, rect, index)
    when :gold
    draw_gold_cost(skill, rect)
    else; return
    end
    end
    #--------------------------------------------------------------------------
    # draw_jp_cost
    #--------------------------------------------------------------------------
    def draw_jp_cost(skill, rect, index)
    enabled = enabled?(@list[index][:ext])
    if Icon.jp > 0
    draw_icon(Icon.jp, rect.x + rect.width - 24, rect.y, enabled)
    rect.width -= 24
    end
    contents.font.size = YEA::LEARN_SKILL::COST_SIZE
    change_color(system_color, enabled)
    draw_text(rect, Vocab::jp, 2)
    rect.width -= text_size(Vocab::jp).width
    cost = @actor.jp(@list[index][:ext])
    text = cost.group
    change_color(text_color(YEA::LEARN_SKILL::COLOUR_JP), enabled)
    draw_text(rect, text, 2)
    end
    #--------------------------------------------------------------------------
    # draw_exp_cost
    #--------------------------------------------------------------------------
    def draw_exp_cost(skill, rect, index)
    enabled = enabled?(@list[index][:ext])
    contents.font.size = YEA::LEARN_SKILL::COST_SIZE
    change_color(system_color, enabled)
    draw_text(rect, YEA::LEARN_SKILL::EXP_TEXT, 2)
    rect.width -= text_size(YEA::LEARN_SKILL::EXP_TEXT).width
    cost = @actor.exp_class(@list[index][:ext])
    text = cost.group
    change_color(text_color(YEA::LEARN_SKILL::COLOUR_EXP), enabled)
    draw_text(rect, text, 2)
    end
    #--------------------------------------------------------------------------
    # draw_gold_cost
    #--------------------------------------------------------------------------
    def draw_gold_cost(skill, rect)
    enabled = $game_party.gold >= skill.learn_cost[0]
    contents.font.size = YEA::LEARN_SKILL::COST_SIZE
    change_color(system_color, enabled)
    draw_text(rect, Vocab::currency_unit, 2)
    rect.width -= text_size(Vocab::currency_unit).width
    cost = $game_party.gold
    text = cost.group
    change_color(text_color(YEA::LEARN_SKILL::COLOUR_GOLD), enabled)
    draw_text(rect, text, 2)
    end
    end # Window_LearnSkillCostFront
    #==============================================================================
    # ■ Scene_Skill
    #==============================================================================
    class Scene_Skill < Scene_ItemBase
    #--------------------------------------------------------------------------
    # alias method: create_command_window
    #--------------------------------------------------------------------------
    alias scene_skill_create_command_window_lse create_command_window
    def create_command_window
    scene_skill_create_command_window_lse
    @command_window.set_handler:)learn_skill, method:)command_learn_skill))
    end
    #--------------------------------------------------------------------------
    # new method: command_learn_skill
    #--------------------------------------------------------------------------
    def command_learn_skill
    SceneManager.call(Scene_LearnSkill)
    end
    end # Scene_Skill
    #==============================================================================
    # ■ Scene_LearnSkill
    #==============================================================================
    class Scene_LearnSkill < Scene_Skill
    #--------------------------------------------------------------------------
    # start
    #--------------------------------------------------------------------------
    def start
    super
    create_cost_windows
    end
    #--------------------------------------------------------------------------
    # create_command_window
    #--------------------------------------------------------------------------
    def create_command_window
    wy = @help_window.height
    @command_window = Window_LearnSkillCommand.new(0, wy)
    @command_window.viewport = @viewport
    @command_window.help_window = @help_window
    @command_window.actor = @actor
    @command_window.set_handler:)skill, method:)command_skill))
    @command_window.set_handler:)cancel, method:)return_scene))
    @command_window.set_handler:)pagedown, method:)next_actor))
    @command_window.set_handler:)pageup, method:)prev_actor))
    end
    #--------------------------------------------------------------------------
    # create_item_window
    #--------------------------------------------------------------------------
    def create_item_window
    wx = 0
    wy = @status_window.y + @status_window.height
    ww = Graphics.width
    wh = Graphics.height - wy
    @item_window = Window_LearnSkillList.new(wx, wy, ww, wh)
    @item_window.actor = @actor
    @item_window.viewport = @viewport
    @item_window.help_window = @help_window
    @item_window.set_handler:)ok, method:)on_item_ok))
    @item_window.set_handler:)cancel, method:)on_item_cancel))
    @command_window.skill_window = @item_window
    end
    #--------------------------------------------------------------------------
    # create_cost_windows
    #--------------------------------------------------------------------------
    def create_cost_windows
    @cost_window = Window_LearnSkillCostBack.new(@item_window)
    @cost_front = Window_LearnSkillCostFront.new(@item_window, @cost_window)
    @cost_window.viewport = @viewport
    @cost_front.viewport = @viewport
    @cost_front.set_handler:)ok, method:)on_cost_ok))
    @cost_front.set_handler:)cancel, method:)on_cost_cancel))
    end
    #--------------------------------------------------------------------------
    # on_item_ok
    #--------------------------------------------------------------------------
    def on_item_ok
    skill = @item_window.item
    @cost_window.reveal(skill, @item_window.skill_classes(skill))
    @cost_front.reveal(skill, @item_window.skill_classes(skill), @actor)
    end
    #--------------------------------------------------------------------------
    # on_cost_ok
    #--------------------------------------------------------------------------
    def on_cost_ok
    Sound.play_use_skill
    skill = @item_window.item
    @actor.learn_skill(skill.id)
    cost = skill.learn_cost[0]
    case skill.learn_cost[1]
    when :jp
    @actor.lose_jp(cost, @cost_front.skill_class)
    when :exp
    @actor.lose_exp_class(cost, @cost_front.skill_class)
    when :gold
    $game_party.lose_gold(cost)
    end
    on_cost_cancel
    refresh_windows
    end
    #--------------------------------------------------------------------------
    # on_cost_cancel
    #--------------------------------------------------------------------------
    def on_cost_cancel
    @cost_front.close
    @cost_window.close
    @item_window.activate
    end
    #--------------------------------------------------------------------------
    # refresh_windows
    #--------------------------------------------------------------------------
    def refresh_windows
    @item_window.refresh
    @status_window.refresh
    end
    end # Scene_LearnSkill
    #==============================================================================
    #
    # ▼ End of File
    #
    #==============================================================================
  2. I think you will also need the JP manager to accomplish this, but if you go under the JP manager, and change the vocab line (line 140 in my copy) to read "Crystal Shards", then have the enemies drop the crystal shards, it will work. Just tested it by calling mine Booyah (just for fun) and it worked.

    Just remember that internally, in the script, it will still be jp, so you will have to set the enemies to give the characters 'jp' in the database. Just know that it will show in the game as crystal shards instead (or whatever you finally decide to call it). Unfortunately, to avoid that would require editing the way it reads the notetags.
  3. Awesome dude, thanks for the timely reply.

    I had the jp manager at one point earlier in the evening but couldnt get the script to acknowledge its existance for some reason.

    I'll check this out real quick. I thought it would be as simple as adding extra lines for the shards, but you've just saved a load of work by that suggestion :)

    Update:

    I may be doing something a bit wrong here but, I'm not getting confirmation of earning jp(shards) after the battle. found i need victory aftermath for this.

    Additionally, I dont have any skills available to learn in the "learn skill" menu.

    I should add that  these two scripts ( learn skill and jp manager ) are the only yanfly scripts i am using, could I be missing a base script?
  4. In my project I have the JP manager above the learn skills script. That may be required to get it to work well. Also, by default, Yanfly does not display the JP anywhere on screen, you will have to add that or live with it only showing when they try to learn a skill.

    Just make sure to go under your enemies and add this line to the note section at the bottom:

    <jp gain: 1>

    This will have them award 1 jp, or, once you change the vocab, 1 crystal shard. Change the number to whatever number you wish the enemy to give. Leave the line out if the enemy is not supposed to give any crystal shards, as the default is 0.
  5. Thanks, I've set it up as 'Shards' for now. I also added <jp gain: 1> into the enemy note, and i've set the cost of the skill <learn cost: 2 jp> into the skill note (fire).

    Not having any luck with this currently =/

    If I set the skill fire to lvl 1, and put <learn cost: 2 jp> in the note on the class page, its available immediately for use without having to learn it. If I take that out, and use it just in the fire skill note, I get absoultely nothing.
  6. Have you added a line to the class so it knows what skills to learn? To do that, add this line: <learn skills: 355>. And, the learn cost has to go in the skill page as far as I know.

    Where 355 is the id of the skill you want the class to learn.

    You have to do this for every skill you want them to learn, though you can have more in one line than one skill (so you could do <learn skills: 355, 356, 357, 358, 359> if you wished).

    Let me know if it works after you do this.
  7. bgillisp said:
    Have you added a line to the class so it knows what skills to learn? To do that, add this line: <learn skills: 355>. And, the learn cost has to go in the skill page as far as I know.

    Where 355 is the id of the skill you want the class to learn.

    You have to do this for every skill you want them to learn, though you can have more in one line than one skill (so you could do <learn skills: 355, 356, 357, 358, 359> if you wished).

    Let me know if it works after you do this.
    That did the trick! Thanks. I had run into a problem right before posting this, but I fixed it. ( i also had jp % rate tag in the actor's note. took that out and it works properly!

    Awesome, I cannot thank you enough!