Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Exp bar VX

Exp bar

RMVX:

Well this script should be pretty easy, I just want a script that shows an exp bar in the menu under the character's HP and MP bars and in their status menu under exp. The bar should be the same size as the others, and should fill accordingly as a percent from current exp for level to the next. So it resets after level up. I think thats all, if I missed/ left anything out, plz let me know.

Screenshot
Heres something I photoshopped real quick to give you guys an idea
http://s666.photobucket.com/albums/vv26 ... =Expvx.png
 

teth

Member

I wrote now something maybe you'ill use it.
It's without "E" or "Exp" text only bar :)

Code:
#==============================================================================

# â–  Window_MenuStatus

#------------------------------------------------------------------------------

#  メニュー画面でパーティメンバーのステータスを表示するウィンドウです。

#==============================================================================

 

class Window_MenuStatus < Window_Selectable

  #--------------------------------------------------------------------------

  # ● オブジェクト初期化

  #     x : ウィンドウの X 座標

  #     y : ウィンドウの Y 座標

  #--------------------------------------------------------------------------

  def initialize(x, y)

    super(x, y, 384, 416)

    refresh

    self.active = false

    self.index = -1

  end

  #--------------------------------------------------------------------------

  # ● リフレッシュ

  #--------------------------------------------------------------------------

  def refresh

    self.contents.clear

    @item_max = $game_party.members.size

    for actor in $game_party.members

      draw_actor_face(actor, 2, actor.index * 96 + 2, 92)

      x = 104

      y = actor.index * 96 + WLH / 2

      draw_actor_name(actor, x, y)

      draw_actor_class(actor, x + 120, y - 10)

      draw_actor_level(actor, x, y + WLH * 1)

      draw_actor_state(actor, x, y + WLH * 2)

      draw_actor_hp(actor, x + 120, y + WLH * 1 - 10)

      draw_actor_mp(actor, x + 120, y + WLH * 2 - 10)

      draw_actor_expbar(actor, x + 120, y + WLH * 4 - 10)

      end

    end

  end

  #--------------------------------------------------------------------------

  # ● カーソルの更新

  #--------------------------------------------------------------------------

  def update_cursor

    if @index < 0               # カーソルなし

      self.cursor_rect.empty

    elsif @index < @item_max    # 通常

      self.cursor_rect.set(0, @index * 96, contents.width, 96)

    elsif @index >= 100         # 自分

      self.cursor_rect.set(0, (@index - 100) * 96, contents.width, 96)

    else                        # 全体

      self.cursor_rect.set(0, 0, contents.width, @item_max * 96)

    end

  end

  # Actor expbar code

  def draw_actor_expbar(actor,x , y)

      color_behind = Color.new(39, 58, 83, 255)

      exp_color = Color.new(0, 200, 0, 255)

      nextexp_color = Color.new(0, 100, 0, 255)

      s1 = actor.exp_s

      s2 = actor.current_lvl_exp

      level = actor.level

      if level != 99 #For avoid Fixnum bug

        s3 = s1-s2

        s4 = actor.next_lvl_exp

        self.contents.fill_rect(x, y - 15,120,10,color_behind)

        self.contents.gradient_fill_rect(x, y - 15,(120*s3)/s4,10,exp_color,nextexp_color)

      else

        self.contents.gradient_fill_rect(x, y - 15,120,10,exp_color,nextexp_color)

      end

    end

    

#==============================================================================

# ** Window_Status

#------------------------------------------------------------------------------

#  This window displays full status specs on the status screen.

#==============================================================================

 

class Window_Status < Window_Base

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor : actor

  #--------------------------------------------------------------------------

  def initialize(actor)

    super(0, 0, 544, 416)

    @actor = actor

    refresh

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    self.contents.clear

    draw_actor_name(@actor, 4, 0)

    draw_actor_class(@actor, 128, 0)

    draw_actor_face(@actor, 8, 32)

    draw_basic_info(128, 32)

    draw_parameters(32, 160)

    draw_exp_info(288, 32)

    draw_equipments(288, 160)

  end

  #--------------------------------------------------------------------------

  # * Draw Basic Information

  #     x : Draw spot X coordinate

  #     y : Draw spot Y coordinate

  #--------------------------------------------------------------------------

  def draw_basic_info(x, y)

    draw_actor_level(@actor, x, y + WLH * 0)

    draw_actor_expbar(@actor, x, y + WLH * 5)

    draw_actor_state(@actor, x, y + WLH * 1)

    draw_actor_hp(@actor, x, y + WLH * 2)

    draw_actor_mp(@actor, x, y + WLH * 3)

  end

  #--------------------------------------------------------------------------

  # * Draw Parameters

  #     x : Draw spot X coordinate

  #     y : Draw spot Y coordinate

  #--------------------------------------------------------------------------

  def draw_parameters(x, y)

    draw_actor_parameter(@actor, x, y + WLH * 1, 0)

    draw_actor_parameter(@actor, x, y + WLH * 2, 1)

    draw_actor_parameter(@actor, x, y + WLH * 3, 2)

    draw_actor_parameter(@actor, x, y + WLH * 4, 3)

  end

  #--------------------------------------------------------------------------

  # * Draw Experience Information

  #     x : Draw spot X coordinate

  #     y : Draw spot Y coordinate

  #--------------------------------------------------------------------------

  def draw_exp_info(x, y)

    s1 = @actor.exp_s

    s2 = @actor.next_rest_exp_s

    s_next = sprintf(Vocab::ExpNext, Vocab::level)

    self.contents.font.color = system_color

    self.contents.draw_text(x, y + WLH * 0, 180, WLH, Vocab::ExpTotal)

    self.contents.draw_text(x, y + WLH * 2, 180, WLH, s_next)

    self.contents.font.color = normal_color

    self.contents.draw_text(x, y + WLH * 1, 180, WLH, s1, 2)

    self.contents.draw_text(x, y + WLH * 3, 180, WLH, s2, 2)

  end

  #--------------------------------------------------------------------------

  # * Draw Equipment

  #     x : Draw spot X coordinate

  #     y : Draw spot Y coordinate

  #--------------------------------------------------------------------------

  def draw_equipments(x, y)

    self.contents.font.color = system_color

    self.contents.draw_text(x, y, 120, WLH, Vocab::equip)

    for i in 0..4

      draw_item_name(@actor.equips[i], x + 16, y + WLH * (i + 1))

    end

  end

    # Actor expbar code

  def draw_actor_expbar(actor, x, y)

      color_behind = Color.new(39, 58, 83, 255)

      exp_color = Color.new(0, 200, 0, 255)

      nextexp_color = Color.new(0, 100, 0, 255)

      s1 = actor.exp_s

      s2 = actor.current_lvl_exp

      level = actor.level

    if level != 99 #For avoid Fixnum bug

      s3 = s1-s2

      s4 = actor.next_lvl_exp

      self.contents.fill_rect(x, y - 15,120,10,color_behind)

      self.contents.gradient_fill_rect(x, y - 15,(120*s3)/s4,10,exp_color,nextexp_color)

    else

      self.contents.gradient_fill_rect(x, y - 15,120,10,exp_color,nextexp_color)

    end

  end

end

 

#==============================================================================

# ** Game_Actor

#------------------------------------------------------------------------------

#  This class handles actors. It's used within the Game_Actors class

# ($game_actors) and referenced by the Game_Party class ($game_party).

#==============================================================================

 

class Game_Actor < Game_Battler

  #--------------------------------------------------------------------------

  # * Public Instance Variables

  #--------------------------------------------------------------------------

  attr_reader   :name                     # name

  attr_reader   :character_name           # character graphic filename

  attr_reader   :character_index          # character graphic index

  attr_reader   :face_name                # face graphic filename

  attr_reader   :face_index               # face graphic index

  attr_reader   :class_id                 # class ID

  attr_reader   :weapon_id                # weapon ID

  attr_reader   :armor1_id                # shield ID

  attr_reader   :armor2_id                # helmet ID

  attr_reader   :armor3_id                # body armor ID

  attr_reader   :armor4_id                # accessory ID

  attr_reader   :level                    # level

  attr_reader   :exp                      # experience

  attr_accessor :last_skill_id            # for cursor memory: Skill

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     actor_id : actor ID

  #--------------------------------------------------------------------------

  def initialize(actor_id)

    super()

    setup(actor_id)

    @last_skill_id = 0

  end

  #--------------------------------------------------------------------------

  # * Setup

  #     actor_id : actor ID

  #--------------------------------------------------------------------------

  def setup(actor_id)

    actor = $data_actors[actor_id]

    @actor_id = actor_id

    @name = actor.name

    @character_name = actor.character_name

    @character_index = actor.character_index

    @face_name = actor.face_name

    @face_index = actor.face_index

    @class_id = actor.class_id

    @weapon_id = actor.weapon_id

    @armor1_id = actor.armor1_id

    @armor2_id = actor.armor2_id

    @armor3_id = actor.armor3_id

    @armor4_id = actor.armor4_id

    @level = actor.initial_level

    @exp_list = Array.new(101)

    make_exp_list

    @exp = @exp_list[@level]

    @skills = []

    for i in self.class.learnings

      learn_skill(i.skill_id) if i.level <= @level

    end

    clear_extra_values

    recover_all

  end

  #--------------------------------------------------------------------------

  # * Determine if Actor or Not

  #--------------------------------------------------------------------------

  def actor?

    return true

  end

  #--------------------------------------------------------------------------

  # * Get Actor ID

  #--------------------------------------------------------------------------

  def id

    return @actor_id

  end

  #--------------------------------------------------------------------------

  # * Get Index

  #--------------------------------------------------------------------------

  def index

    return $game_party.members.index(self)

  end

  #--------------------------------------------------------------------------

  # * Get Actor Object

  #--------------------------------------------------------------------------

  def actor

    return $data_actors[@actor_id]

  end

  #--------------------------------------------------------------------------

  # * Get Class Object

  #--------------------------------------------------------------------------

  def class

    return $data_classes[@class_id]

  end

  #--------------------------------------------------------------------------

  # * Get Skill Object Array

  #--------------------------------------------------------------------------

  def skills

    result = []

    for i in @skills

      result.push($data_skills[i])

    end

    return result

  end

  #--------------------------------------------------------------------------

  # * Get Weapon Object Array

  #--------------------------------------------------------------------------

  def weapons

    result = []

    result.push($data_weapons[@weapon_id])

    if two_swords_style

      result.push($data_weapons[@armor1_id])

    end

    return result

  end

  #--------------------------------------------------------------------------

  # * Get Armor Object Array

  #--------------------------------------------------------------------------

  def armors

    result = []

    unless two_swords_style

      result.push($data_armors[@armor1_id])

    end

    result.push($data_armors[@armor2_id])

    result.push($data_armors[@armor3_id])

    result.push($data_armors[@armor4_id])

    return result

  end

  #--------------------------------------------------------------------------

  # * Get Equipped Item Object Array

  #--------------------------------------------------------------------------

  def equips

    return weapons + armors

  end

  #--------------------------------------------------------------------------

  # * Calculate Experience

  #--------------------------------------------------------------------------

  def make_exp_list

    @exp_list[1] = @exp_list[100] = 0

    m = actor.exp_basis

    n = 0.75 + actor.exp_inflation / 200.0;

    for i in 2..99

      @exp_list[i] = @exp_list[i-1] + Integer(m)

      m *= 1 + n;

      n *= 0.9;

    end

  end

  #--------------------------------------------------------------------------

  # * Get Element Change Value

  #     element_id : element ID

  #--------------------------------------------------------------------------

  def element_rate(element_id)

    rank = self.class.element_ranks[element_id]

    result = [0,200,150,100,50,0,-100][rank]

    for armor in armors.compact

      result /= 2 if armor.element_set.include?(element_id)

    end

    for state in states

      result /= 2 if state.element_set.include?(element_id)

    end

    return result

  end

  #--------------------------------------------------------------------------

  # * Get Added State Success Rate

  #     state_id : state ID

  #--------------------------------------------------------------------------

  def state_probability(state_id)

    if $data_states[state_id].nonresistance

      return 100

    else

      rank = self.class.state_ranks[state_id]

      return [0,100,80,60,40,20,0][rank]

    end

  end

  #--------------------------------------------------------------------------

  # * Determine if State is Resisted

  #     state_id : state ID

  #--------------------------------------------------------------------------

  def state_resist?(state_id)

    for armor in armors.compact

      return true if armor.state_set.include?(state_id)

    end

    return false

  end

  #--------------------------------------------------------------------------

  # * Get Normal Attack Element

  #--------------------------------------------------------------------------

  def element_set

    result = []

    if weapons.compact == []

      return [1]                  # Unarmed: melee attribute

    end

    for weapon in weapons.compact

      result |= weapon == nil ? [] : weapon.element_set

    end

    return result

  end

  #--------------------------------------------------------------------------

  # * Get Additional Effect of Normal Attack (state change)

  #--------------------------------------------------------------------------

  def plus_state_set

    result = []

    for weapon in weapons.compact

      result |= weapon == nil ? [] : weapon.state_set

    end

    return result

  end

  #--------------------------------------------------------------------------

  # * Get Maximum HP Limit

  #--------------------------------------------------------------------------

  def maxhp_limit

    return 9999

  end

  #--------------------------------------------------------------------------

  # * Get Basic Maximum HP

  #--------------------------------------------------------------------------

  def base_maxhp

    return actor.parameters[0, @level]

  end

  #--------------------------------------------------------------------------

  # * Get basic Maximum MP

  #--------------------------------------------------------------------------

  def base_maxmp

    return actor.parameters[1, @level]

  end

  #--------------------------------------------------------------------------

  # * Get Basic Attack

  #--------------------------------------------------------------------------

  def base_atk

    n = actor.parameters[2, @level]

    for item in equips.compact do n += item.atk end

    return n

  end

  #--------------------------------------------------------------------------

  # * Get Basic Defense

  #--------------------------------------------------------------------------

  def base_def

    n = actor.parameters[3, @level]

    for item in equips.compact do n += item.def end

    return n

  end

  #--------------------------------------------------------------------------

  # * Get Basic Spirit

  #--------------------------------------------------------------------------

  def base_spi 

    n = actor.parameters[4, @level]

    for item in equips.compact do n += item.spi end

    return n

  end

  #--------------------------------------------------------------------------

  # * Get Basic Agility

  #--------------------------------------------------------------------------

  def base_agi

    n = actor.parameters[5, @level]

    for item in equips.compact do n += item.agi end

    return n

  end

  #--------------------------------------------------------------------------

  # * Get Hit Rate

  #--------------------------------------------------------------------------

  def hit

    if two_swords_style

      n1 = weapons[0] == nil ? 95 : weapons[0].hit

      n2 = weapons[1] == nil ? 95 : weapons[1].hit

      n = [n1, n2].min

    else

      n = weapons[0] == nil ? 95 : weapons[0].hit

    end

    return n

  end

  #--------------------------------------------------------------------------

  # * Get Evasion Rate

  #--------------------------------------------------------------------------

  def eva

    n = 5

    for item in armors.compact do n += item.eva end

    return n

  end

  #--------------------------------------------------------------------------

  # * Get Critical Ratio

  #--------------------------------------------------------------------------

  def cri

    n = 4

    n += 4 if actor.critical_bonus

    for weapon in weapons.compact

      n += 4 if weapon.critical_bonus

    end

    return n

  end

  #--------------------------------------------------------------------------

  # * Get Ease of Hitting

  #--------------------------------------------------------------------------

  def odds

    return 4 - self.class.position

  end

  #--------------------------------------------------------------------------

  # * Get [Dual Wield] Option

  #--------------------------------------------------------------------------

  def two_swords_style

    return actor.two_swords_style

  end

  #--------------------------------------------------------------------------

  # * Get [Fixed Equipment] Option

  #--------------------------------------------------------------------------

  def fix_equipment

    return actor.fix_equipment

  end

  #--------------------------------------------------------------------------

  # * Get [Automatic Battle] Option

  #--------------------------------------------------------------------------

  def auto_battle

    return actor.auto_battle

  end

  #--------------------------------------------------------------------------

  # * Get [Super Guard] Option

  #--------------------------------------------------------------------------

  def super_guard

    return actor.super_guard

  end

  #--------------------------------------------------------------------------

  # * Get [Pharmocology] Option

  #--------------------------------------------------------------------------

  def pharmacology

    return actor.pharmacology

  end

  #--------------------------------------------------------------------------

  # * Get [First attack within turn] weapon option

  #--------------------------------------------------------------------------

  def fast_attack

    for weapon in weapons.compact

      return true if weapon.fast_attack

    end

    return false

  end

  #--------------------------------------------------------------------------

  # * Get [Chain attack] weapon option

  #--------------------------------------------------------------------------

  def dual_attack

    for weapon in weapons.compact

      return true if weapon.dual_attack

    end

    return false

  end

  #--------------------------------------------------------------------------

  # * Get [Prevent critical] armor option

  #--------------------------------------------------------------------------

  def prevent_critical

    for armor in armors.compact

      return true if armor.prevent_critical

    end

    return false

  end

  #--------------------------------------------------------------------------

  # * Get [half MP cost] armor option

  #--------------------------------------------------------------------------

  def half_mp_cost

    for armor in armors.compact

      return true if armor.half_mp_cost

    end

    return false

  end

  #--------------------------------------------------------------------------

  # * Get [Double Experience] Armor Option

  #--------------------------------------------------------------------------

  def double_exp_gain

    for armor in armors.compact

      return true if armor.double_exp_gain

    end

    return false

  end

  #--------------------------------------------------------------------------

  # * Get [Auto HP Recovery] Armor Option

  #--------------------------------------------------------------------------

  def auto_hp_recover

    for armor in armors.compact

      return true if armor.auto_hp_recover

    end

    return false

  end

  #--------------------------------------------------------------------------

  # * Get Normal Attack Animation ID

  #--------------------------------------------------------------------------

  def atk_animation_id

    if two_swords_style

      return weapons[0].animation_id if weapons[0] != nil

      return weapons[1] == nil ? 1 : 0

    else

      return weapons[0] == nil ? 1 : weapons[0].animation_id

    end

  end

  #--------------------------------------------------------------------------

  # * Get Normal Attack Animation ID (Dual Wield: Weapon 2)

  #--------------------------------------------------------------------------

  def atk_animation_id2

    if two_swords_style

      return weapons[1] == nil ? 0 : weapons[1].animation_id

    else

      return 0

    end

  end

  #--------------------------------------------------------------------------

  # * Get Experience String

  #--------------------------------------------------------------------------

  def exp_s

    return @exp_list[@level+1] > 0 ? @exp : "-------"

  end

  #--------------------------------------------------------------------------

  # * Get String for Next Level Experience

  #--------------------------------------------------------------------------

  def next_exp_s

    return @exp_list[@level+1] > 0 ? @exp_list[@level+1] : "-------"

  end

  #--------------------------------------------------------------------------

  # * Get String for Experience to Next Level

  #--------------------------------------------------------------------------

  def next_rest_exp_s

    return @exp_list[@level+1] > 0 ?

      (@exp_list[@level+1] - @exp) : "-------"

  end

  #--------------------------------------------------------------------------

  # * Change Equipment (designate ID)

  #     equip_type : Equip region (0..4)

  #     item_id    : Weapon ID or armor ID

  #     test       : Test flag (for battle test or temporary equipment)

  #    Used by event commands or battle test preparation.

  #--------------------------------------------------------------------------

  def change_equip_by_id(equip_type, item_id, test = false)

    if equip_type == 0 or (equip_type == 1 and two_swords_style)

      change_equip(equip_type, $data_weapons[item_id], test)

    else

      change_equip(equip_type, $data_armors[item_id], test)

    end

  end

  #--------------------------------------------------------------------------

  # * Change Equipment (designate object)

  #     equip_type : Equip region (0..4)

  #     item       : Weapon or armor (nil is used to unequip)

  #     test       : Test flag (for battle test or temporary equipment)

  #--------------------------------------------------------------------------

  def change_equip(equip_type, item, test = false)

    last_item = equips[equip_type]

    unless test

      return if $game_party.item_number(item) == 0 if item != nil

      $game_party.gain_item(last_item, 1)

      $game_party.lose_item(item, 1)

    end

    item_id = item == nil ? 0 : item.id

    case equip_type

    when 0  # Weapon

      @weapon_id = item_id

      unless two_hands_legal?             # If two hands is not allowed

        change_equip(1, nil, test)        # Unequip from other hand

      end

    when 1  # Shield

      @armor1_id = item_id

      unless two_hands_legal?             # If two hands is not allowed

        change_equip(0, nil, test)        # Unequip from other hand

      end

    when 2  # Head

      @armor2_id = item_id

    when 3  # Body

      @armor3_id = item_id

    when 4  # Accessory

      @armor4_id = item_id

    end

  end

  #--------------------------------------------------------------------------

  # * Discard Equipment

  #     item : Weapon or armor to be discarded.

  #    Used when the "Include Equipment" option is enabled.

  #--------------------------------------------------------------------------

  def discard_equip(item)

    if item.is_a?(RPG::Weapon)

      if @weapon_id == item.id

        @weapon_id = 0

      elsif two_swords_style and @armor1_id == item.id

        @armor1_id = 0

      end

    elsif item.is_a?(RPG::Armor)

      if not two_swords_style and @armor1_id == item.id

        @armor1_id = 0

      elsif @armor2_id == item.id

        @armor2_id = 0

      elsif @armor3_id == item.id

        @armor3_id = 0

      elsif @armor4_id == item.id

        @armor4_id = 0

      end

    end

  end

  #--------------------------------------------------------------------------

  # * Determine if Two handed Equipment

  #--------------------------------------------------------------------------

  def two_hands_legal?

    if weapons[0] != nil and weapons[0].two_handed

      return false if @armor1_id != 0

    end

    if weapons[1] != nil and weapons[1].two_handed

      return false if @weapon_id != 0

    end

    return true

  end

  #--------------------------------------------------------------------------

  # * Determine if Equippable

  #     item : item

  #--------------------------------------------------------------------------

  def equippable?(item)

    if item.is_a?(RPG::Weapon)

      return self.class.weapon_set.include?(item.id)

    elsif item.is_a?(RPG::Armor)

      return false if two_swords_style and item.kind == 0

      return self.class.armor_set.include?(item.id)

    end

    return false

  end

  #--------------------------------------------------------------------------

  # * Change Experience

  #     exp  : New experience

  #     show : Level up display flag

  #--------------------------------------------------------------------------

  def change_exp(exp, show)

    last_level = @level

    last_skills = skills

    @exp = [[exp, 9999999].min, 0].max

    while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0

      level_up

    end

    while @exp < @exp_list[@level]

      level_down

    end

    @hp = [@hp, maxhp].min

    @mp = [@mp, maxmp].min

    if show and @level > last_level

      display_level_up(skills - last_skills)

    end

  end

  #--------------------------------------------------------------------------

  # * Level Up

  #--------------------------------------------------------------------------

  def level_up

    @level += 1

    for learning in self.class.learnings

      learn_skill(learning.skill_id) if learning.level == @level

    end

  end

  #--------------------------------------------------------------------------

  # * Level Down

  #--------------------------------------------------------------------------

  def level_down

    @level -= 1

  end

  #--------------------------------------------------------------------------

  # * Show Level Up Message

  #     new_skills : Array of newly learned skills

  #--------------------------------------------------------------------------

  def display_level_up(new_skills)

    $game_message.new_page

    text = sprintf(Vocab::LevelUp, @name, Vocab::level, @level)

    $game_message.texts.push(text)

    for skill in new_skills

      text = sprintf(Vocab::ObtainSkill, skill.name)

      $game_message.texts.push(text)

    end

  end

  #--------------------------------------------------------------------------

  # * Get Experience (for the double experience point option)

  #     exp  : Amount to increase experience.

  #     show : Level up display flag

  #--------------------------------------------------------------------------

  def gain_exp(exp, show)

    if double_exp_gain

      change_exp(@exp + exp * 2, show)

    else

      change_exp(@exp + exp, show)

    end

  end

  #--------------------------------------------------------------------------

  # * Change Level

  #     level : new level

  #     show  : Level up display flag

  #--------------------------------------------------------------------------

  def change_level(level, show)

    level = [[level, 99].min, 1].max

    change_exp(@exp_list[level], show)

  end

  #--------------------------------------------------------------------------

  # * Learn Skill

  #     skill_id : skill ID

  #--------------------------------------------------------------------------

  def learn_skill(skill_id)

    unless skill_learn?($data_skills[skill_id])

      @skills.push(skill_id)

      @skills.sort!

    end

  end

  #--------------------------------------------------------------------------

  # * Forget Skill

  #     skill_id : skill ID

  #--------------------------------------------------------------------------

  def forget_skill(skill_id)

    @skills.delete(skill_id)

  end

  #--------------------------------------------------------------------------

  # * Determine if Finished Learning Skill

  #     skill : skill

  #--------------------------------------------------------------------------

  def skill_learn?(skill)

    return @skills.include?(skill.id)

  end

  #--------------------------------------------------------------------------

  # * Determine Usable Skills

  #     skill : skill

  #--------------------------------------------------------------------------

  def skill_can_use?(skill)

    return false unless skill_learn?(skill)

    return super

  end

  #--------------------------------------------------------------------------

  # * Change Name

  #     name : new name

  #--------------------------------------------------------------------------

  def name=(name)

    @name = name

  end

  #--------------------------------------------------------------------------

  # * Change Class ID

  #     class_id : New class ID

  #--------------------------------------------------------------------------

  def class_id=(class_id)

    @class_id = class_id

    for i in 0..4     # Remove unequippable items

      change_equip(i, nil) unless equippable?(equips[i])

    end

  end

  #--------------------------------------------------------------------------

  # * Change Graphics

  #     character_name  : new character graphic filename

  #     character_index : new character graphic index

  #     face_name       : new face graphic filename

  #     face_index      : new face graphic index

  #--------------------------------------------------------------------------

  def set_graphic(character_name, character_index, face_name, face_index)

    @character_name = character_name

    @character_index = character_index

    @face_name = face_name

    @face_index = face_index

  end

  #--------------------------------------------------------------------------

  # * Use Sprites?

  #--------------------------------------------------------------------------

  def use_sprite?

    return false

  end

  #--------------------------------------------------------------------------

  # * Perform Collapse

  #--------------------------------------------------------------------------

  def perform_collapse

    if $game_temp.in_battle and dead?

      @collapse = true

      Sound.play_actor_collapse

    end

  end

  #--------------------------------------------------------------------------

  # * Perform Automatic Recovery (called at end of turn)

  #--------------------------------------------------------------------------

  def do_auto_recovery

    if auto_hp_recover and not dead?

      self.hp += maxhp / 20

    end

  end

  #--------------------------------------------------------------------------

  # * Create Battle Action (for automatic battle)

  #--------------------------------------------------------------------------

  def make_action

    @action.clear

    return unless movable?

    action_list = []

    action = Game_BattleAction.new(self)

    action.set_attack

    action.evaluate

    action_list.push(action)

    for skill in skills

      action = Game_BattleAction.new(self)

      action.set_skill(skill.id)

      action.evaluate

      action_list.push(action)

    end

    max_value = 0

    for action in action_list

      if action.value > max_value

        @action = action

        max_value = action.value

      end

    end

  end

  

  def current_lvl_exp

    return @exp_list[@level]

  end

  

  def next_lvl_exp

    return @exp_list[@level+1]-@exp_list[@level]

  end

end

@edit
Script edited now it should work with many actors.
@edit2
Script is now with Window_Status now you need to add text. (beacuse i don't know how xD always i get bugged with text)
@edit3
Added Game_Actor with 2 missing def's :)
Be healthy ;)
Teth.

--Bad English sorry--
 
Ah, thank you very much. There seems to be a problem that I can't figure out, when I open the menu I get this error that says

"Script 'Exp' line 59: NoMethodError occurred.

undefined 'current_lvl_exp' for #<Game_Actor:0x254c288>"

so...yeah, thanks again though.
 
Ok, thanks. So if I was to add the numbers and stuff where would I put it, i've been trying to learn how to script for some time now, so maybe if you lead me in the right direction I can figure it out.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top