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.

Party Points Script

Party Points Script
Version: 1

Introduction

This script limits the actions that actors can do by subtracting Party Points. If all the points are gone, by someone's turn, that turn is skipped.

Example
So basically you start out with 8 Party Points(two per Character). Hilda attacks. 7 PP left. Aluxes uses Cross Cut. 5 PP left. Basil uses Almighty Thrust. 0 PP left. Felix's turn is skipped. Main Attack Phase. PP Refuels. Attack Selection Begins. Blah Blah Blah... You get the point.

Features
  • Limits attacks, skills, Defense and Items with Party Points.
  • Party Points Level up depending on how many levels the party members have gained altogether.
  • Fully Customizable

Screenshots

Don't think this will actually help. Post if YOU NEED a screenshot.

Demo

Don't think this will help either. But if you need to have one, I'll probably have the demo of my own game up by tomorrow.

Script
Put scripts in order:
Code:
#===============================================================================
# ** Party Points
#------------------------------------------------------------------------------
# By Sasuke89                                                           9-20-07
#------------------------------------------------------------------------------
#
# Points used by the party. If points hit 0 in battle, On the Character's turn
#   in which the points hit zero, the character is forced to skip a turn. If
#   there isn't enough party points for the character to do anything, the
#   character is also forced to skip. When your player uses a skill, PP goes
#   down.
#
# Credits
#   DerVVulfman - Scripting Trade
#   DeMonFire   - Scripting Help
#===============================================================================

#==============================================================================
# ** Start Edits
#==============================================================================
$default_division = 10        #Gains one party point for every 10 levels gained.
$default_partypoints = 8      #The starting partypoints value
$view_partypoints = true      #If true, Party Points can be viewed in battle
#$picture = [Boolean, "Picture Name"]
$picture = [true,"BattleHUD"] #If true, A picture in the Pictures folder can be
                                #used to show Party Points.
#==============================================================================
# ** End Edits
#==============================================================================

class Game_Party
  attr_reader :party_points
  attr_accessor :max_party_pp
  attr_accessor :partyplus
  alias s89initialize initialize
  alias s89setup_starting_members setup_starting_members
  alias s89setup_battle_test_members setup_battle_test_members
  alias s89refresh refresh
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    s89initialize
    @party_points = 0
    @partyplus = 0
    @max_party_pp = @party_points
  end
  #--------------------------------------------------------------------------
  # * Initial Party Setup
  #--------------------------------------------------------------------------
  def setup_starting_members
    s89setup_starting_members
    @var = 0
    for i in 0...@actors.size
      @var += @actors[i].level
    end
    @party_points = $default_partypoints
    @party_points += @var / $default_division
    @max_party_pp = @party_points
  end
  #--------------------------------------------------------------------------
  # * Battle Test Party Setup
  #--------------------------------------------------------------------------
  def setup_battle_test_members
    s89setup_battle_test_members
    @var = 0
    for i in 0...@actors.size
      @var += @actors[i].level
    end
    @party_points = $default_partypoints
    @party_points += @var / $default_division
    @max_party_pp = @party_points
  end
  def party_points=(value)
    @value = value
    @party_points = @value
    @max_party_pp = @value
    return @value
  end
  def refresh
    @var = 0
    for i in 0...@actors.size
      @var += @actors[i].level
    end
    @party_points = $default_partypoints
    @party_points += @var / $default_division
    @max_party_pp = @party_points
    s89refresh
  end
end
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # * Change EXP
  #     exp : new EXP
  #--------------------------------------------------------------------------
  def exp=(exp)
    @exp = [[exp, 9999999].min, 0].max
    # Level up
    while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
      @level += 1
      # Learn skill
      for j in $data_classes[@class_id].learnings
        if j.level == @level
          learn_skill(j.skill_id)
        end
      end
    end
    # Level down
    while @exp < @exp_list[@level]
      @level -= 1
    end
    # Correction if exceeding current max HP and max SP
    @hp = [@hp, self.maxhp].min
    @sp = [@sp, self.maxsp].min
    $game_party.refresh
  end
  #--------------------------------------------------------------------------
  # * Change Level
  #     level : new level
  #--------------------------------------------------------------------------
  def level=(level)
    # Check up and down limits
    level = [[level, $data_actors[@actor_id].final_level].min, 1].max
    # Change EXP
    self.exp = @exp_list[level]
    $game_party.refresh
  end
end
#if $DEBUG == true
if $view_partypoints == true
  class Window_ShowPoints < Window_Base
    #--------------------------------------------------------------------------
    # * Object Initialization
    #--------------------------------------------------------------------------
    def initialize
      super(0, 0, 64, 64)
      self.contents = Bitmap.new(width - 32, height - 32)
      self.z = 1000
      if $picture[0] == true
        self.opacity = 0
        self.back_opacity = 0
      end
      update
    end
    #--------------------------------------------------------------------------
    # * Refresh
    #--------------------------------------------------------------------------
    def update
      self.contents.clear
      self.contents.font.color = normal_color
      if $picture[0] == true
        cx = contents.text_size($game_party.party_points.to_s).width
        if $game_party.party_points < 10
          self.contents.font.size = 24
          self.contents.draw_text(0, 1, 480, 32, $game_party.party_points.to_s)
        else
          self.contents.font.size = 13
          self.contents.draw_text(0, 1, 480, 32, $game_party.party_points.to_s)
        end
      else
        self.contents.draw_text(0, 0, 480, 32, $game_party.party_points.to_s)
      end
    end
  end
  class Scene_Battle
    alias s89main main
    alias s89update update
    def main
      @showpoint_window = Window_ShowPoints.new
      if $picture[0] == true
        @sprite = Sprite.new
        @sprite.bitmap = RPG::Cache.picture("BattleHUD")
        @sprite.z = 999
      end
      s89main
      @showpoint_window.dispose
      if $picture[0] == true
        @sprite.dispose
      end
    end
    def update
      @showpoint_window.update if @showpoint_window != nil
      if $picture.include?(true)
        @sprite.update
        if @help_window.visible
          #print("")
          @sprite.opacity -= 9 if @sprite.opacity > 102
          @showpoint_window.visible = false
          #@sprite.bitmap.opacity -= 3 if @sprite.opacity > 207
        else
          @sprite.opacity += 9 if @sprite.opacity < 255
          @showpoint_window.visible = true
        end
      end
      s89update
    end
  end
end
#end
#=end
Code:
#==============================================================================
# ** Party Points - Configuration
#------------------------------------------------------------------------------
# By Sasuke89                                                           9-21-07
#------------------------------------------------------------------------------
# Setup the skill and item settings used in-game.
#==============================================================================

#=begin
$skills = {}
$items = {}
#==============================================================================
# ** Start Edits
#==============================================================================
#==============================================================================
# ** Skill Edits
#------------------------------------------------------------------------------
# Setup : $skills = {"Skill Name" => Consumed PP}
#==============================================================================
$skills = {
"Cross Cut" => 3,
"Sword's Stance" => 3,
"Celestial Thrust" => 3,
"Courageous" => 4,
"Celestial Cross" => 4,
"Courageous Stance" => 5,
"Bite" => 3,
"Super Fang" => 3,
"Aqua Fang" => 4,
"Isabella's Reign" => 4,
"Earth Reflect" => 3,
"Antidote Fang" => 6,
"Remedy" => 6,
"Earth Reflect" => 6,
"Water Reflect" => 6
}
#==============================================================================
# ** Item Edits
#------------------------------------------------------------------------------
# Setup : $items = {"Item Name" => Consumed PP}
#==============================================================================
$items = {
"Golden Sand" => 3
}
#==============================================================================
# ** Default Variables
#==============================================================================
$skills_costdefault = 2   #The Default Skill Cost
$attack = [true,1]        #If true, attack takes 1 party point
$defend = [true,1]        #If true, attack takes 1 party point
$items_costdefault = 1    #The Default Item Cost
$power_points_word = "PP"
$magic_capacity = "COST"
$quantity_word = "QTY"
#==============================================================================
# ** End Edits
#==============================================================================

class Window_Skill < Window_Selectable
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(index)
    skill = @data[index]
    if @actor.skill_can_use?(skill.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    x = 4 + index % 2 * (288 + 32)
    y = index / 2 * 32
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    bitmap = RPG::Cache.icon(skill.icon_name)
    opacity = self.contents.font.color == normal_color ? 255 : 128
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
    self.contents.draw_text(x + 28, y, 204, 32, skill.name, 0)
    if $skills.include?(skill.name)
      self.contents.draw_text(x + 220, y, 60, 32, $power_points_word + ":" + $skills[skill.name].to_s + "  " + $magic_capacity + ":" + skill.sp_cost.to_s, 2)
    else
      self.contents.draw_text(x + 220, y, 60, 32, $power_points_word + ":" + $skills_costdefault.to_s + "  " + $magic_capacity + ":" + skill.sp_cost.to_s, 2)
    end
  end
end
class Window_Item < Window_Selectable
  def draw_item(index)
    item = @data[index]
    case item
    when RPG::Item
      number = $game_party.item_number(item.id)
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    end
    if item.is_a?(RPG::Item) and
       $game_party.item_can_use?(item.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    x = 4 + index % 2 * (288 + 32)
    y = index / 2 * 32
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    bitmap = RPG::Cache.icon(item.icon_name)
    opacity = self.contents.font.color == normal_color ? 255 : 128
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
    self.contents.draw_text(x + 204, y, 16, 32, ":", 1)
    if $items.include?(item.name)
      self.contents.draw_text(x + 220, y, 60, 32, $power_points_word + ":" + $items[item.name].to_s + "  " + $quantity_word + ":" + number.to_s, 2)
    else
      self.contents.draw_text(x + 220, y, 60, 32, $power_points_word + ":" + $items_costdefault.to_s + "  " + $quantity_word + ":" + number.to_s, 2)
    end
  end
end
class Game_Actor < Game_Battler
  def skill_can_use?(skill_id, party = false)
    if party == false
      if $scene.is_a?(Scene_Battle)
        if $skills.include?($data_skills[skill_id].name)
          if $skills[$data_skills[skill_id].name] > $game_party.party_points
            return false
          end
        else
        end
      end
    end
    if not skill_learn?(skill_id)
      return false
    end
    return super
  end
end
class Game_Battler
  #--------------------------------------------------------------------------
  # * Determine Usable Skills
  #     skill_id : skill ID
  #--------------------------------------------------------------------------
  def skill_can_use?(skill_id, party = false)
    # If there's not enough SP, the skill cannot be used.
    if $data_skills[skill_id].sp_cost > self.sp
      return false
    end
    # Unusable if incapacitated
    if dead?
      return false
    end
    # If silent, only physical skills can be used
    if $data_skills[skill_id].atk_f == 0 and self.restriction == 1
      return false
    end
    # Get usable time
    occasion = $data_skills[skill_id].occasion
    # If in battle
    if $game_temp.in_battle
      # Usable with [Normal] and [Only Battle]
      return (occasion == 0 or occasion == 1)
    # If not in battle
    else
      # Usable with [Normal] and [Only Menu]
      return (occasion == 0 or occasion == 2)
    end
  end
end
class Game_Party
  alias s89item_can_use? item_can_use?
  def item_can_use?(item_id, party = false)
    if party == false
      if $scene.is_a?(Scene_Battle)
        if $items.include?($data_items[item_id].name)
          if $items[$data_items[item_id].name] > $game_party.party_points
            return false
          end
        end
      end
    end
    s89item_can_use?(item_id)
  end
end
class Scene_Battle
  attr_accessor :startingpp
  attr_accessor :help_window
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  alias sd_main2 main
  def main
    @startingpp = $game_party.party_points
    # Perform the Original Call
    sd_main2
  end
  alias s89end_skill_select end_skill_select
  #--------------------------------------------------------------------------
  # * End Skill Selection
  #--------------------------------------------------------------------------
  def end_skill_select(max = false)
    #(true)
    # Dispose of skill window
    s89end_skill_select
    @active_skill = @skill
    if max == true
      $game_party.party_points = @max
      return
    else
      if @active_battler.current_action.kind == 1
        @active_skill = @skill
        if @active_skill != nil
          if $skills.include?(@active_skill.name)
            if $skills[@active_skill.name] != nil
              $game_party.party_points -= $skills[@active_skill.name]
            else
            end
            @showpoint_window.update if @showpoint_window != nil
          else
            $game_party.party_points -= $skills_costdefault
            #print("Default")
            @showpoint_window.update if @showpoint_window != nil
          end
        end
      elsif @active_battler.current_action.kind == 0 && @active_battler.current_action.basic = 0
        if $attack.include?(true)
          $game_party.party_points -= $attack[1]
          @showpoint_window.update if @showpoint_window != nil
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : basic command)
  #--------------------------------------------------------------------------
  def update_phase3_basic_command
    if $command_height != nil
      if Input.trigger?(Input::C)
        # Branch by actor command window cursor position
        case @actor_command_window.index
        when @escape_actor_command_index # Escape
          # Play Decision SE
          $game_system.se_play($data_system.decision_se)
          if $game_temp.battle_can_escape == false
            # Play Buzzer SE
            $game_system.se_play($data_system.buzzer_se)
            return
          end
          # Play decision SE
          $game_system.se_play($data_system.decision_se)
          # Set action
          @active_battler.current_action.kind = 0
          @active_battler.current_action.basic = 2
          phase3_next_actor      
          return
        end
      end
    end
    if $game_party.party_points < 1
      #next player
      phase3_next_actor
    end
    if $game_party.party_points < $attack[1]
      @actor_command_window.disable_item(0)
      @attack_disable = true
    else
      @actor_command_window.draw_item(0, Color.new(255, 255, 255, 255))
      @attack_disable = false
    end
    if $game_party.party_points < $defend[1]
      @actor_command_window.disable_item(2)
      @defend_disable = true
    else
      @actor_command_window.draw_item(2, Color.new(255, 255, 255, 255))
      @defend_disable = false
    end
    if $game_party.party_points < $items_costdefault
      @actor_command_window.disable_item(3)
      @item_disable = true
    else
      @actor_command_window.draw_item(3, Color.new(255, 255, 255, 255))
      @item_disable = false
    end
    @item_disable
    #$defend
    #$item
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Branch by actor command window cursor position
      case @actor_command_window.index
      when 0  # attack
        if $delayed_skills != nil
          @active_battler.skill_select = false
        end
        @max = $game_party.party_points
        if $attack.include?(true)
          if @attack_disable == true
            # Play buzzer SE
            $game_system.se_play($data_system.buzzer_se)
            return
          end
        end
        #@attack_disable = false
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Set action
        @active_battler.current_action.kind = 0
        @active_battler.current_action.basic = 0
        # Start enemy selection
        start_enemy_select
      when 1  # skill
        @max = $game_party.party_points
        #@var = 1
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Set action
        @active_battler.current_action.kind = 1
        # Start skill selection
        start_skill_select
      when 2  # guard
        if $delayed_skills != nil
          @active_battler.skill_select = false
        end
        @max = $game_party.party_points
        if $defend.include?(true)
          if @defend_disable == true
            # Play buzzer SE
            $game_system.se_play($data_system.buzzer_se)
          end
          $game_party.party_points -= $defend[1]
          @showpoint_window.update if @showpoint_window != nil
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Set action
        @active_battler.current_action.kind = 0
        @active_battler.current_action.basic = 1
        # Go to command input for next actor
        phase3_next_actor
      when 3  # item
        if $delayed_skills != nil
          @active_battler.skill_select = false
        end
        @max = $game_party.party_points
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Set action
        @active_battler.current_action.kind = 2
        # Start item selection
        start_item_select
      end
      return
    end
  end
  alias s89update_phase4_step6 update_phase4_step6
  def update_phase4_step6
    @var = 0
    for i in 0...$game_party.actors.size
      @var += $game_party.actors[i].level
    end
    $game_party.party_points = $default_partypoints
    $game_party.party_points += @var / $default_division
    $game_party.max_party_pp = $game_party.party_points
    @showpoint_window.update if @showpoint_window != nil
    #@party_points = @max_party_pp
    s89update_phase4_step6
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : enemy selection)
  #--------------------------------------------------------------------------
  def update_phase3_enemy_select
    # Update enemy arrow
    @enemy_arrow.update
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # End enemy selection
      end_enemy_select#(true)
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Play decision SE
      $game_system.se_play($data_system.decision_se)
      # Set action
      @active_battler.current_action.target_index = @enemy_arrow.index
      # End enemy selection
      end_enemy_select
      # If skill window is showing
      if @skill_window != nil
        # End skill selection
        end_skill_select
      end
      # If item window is showing
      if @item_window != nil
        # End item selection
        end_item_select
      end
      # Go to command input for next actor
      phase3_next_actor
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : actor selection)
  #--------------------------------------------------------------------------
  def update_phase3_actor_select
    # Update actor arrow
    @actor_arrow.update
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # End actor selection
      end_actor_select#(true)
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Play decision SE
      $game_system.se_play($data_system.decision_se)
      # Set action
      @active_battler.current_action.target_index = @actor_arrow.index
      # End actor selection
      end_actor_select
      # If skill window is showing
      if @skill_window != nil
        # End skill selection
        end_skill_select
      end
      # If item window is showing
      if @item_window != nil
        # End item selection
        end_item_select
      end
      # Go to command input for next actor
      phase3_next_actor
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : skill selection)
  #--------------------------------------------------------------------------
  def update_phase3_skill_select
    # Make skill window visible
    @skill_window.visible = true
    # Update skill window
    @skill_window.update
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # End skill selection
      end_skill_select(true)
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Get currently selected data on the skill window
      @skill = @skill_window.skill
      # If it can't be used
      if @skill == nil or not @active_battler.skill_can_use?(@skill.id)
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Play decision SE
      $game_system.se_play($data_system.decision_se)
      # Set action
      @active_battler.current_action.skill_id = @skill.id
      # Make skill window invisible
      @skill_window.visible = false
      # If effect scope is single enemy
      if @skill.scope == 1
        # Start enemy selection
        start_enemy_select
      # If effect scope is single ally
      elsif @skill.scope == 3 or @skill.scope == 5
        # Start actor selection
        start_actor_select
      # If effect scope is not single
      else
        # End skill selection
        end_skill_select
        # Go to command input for next actor
        phase3_next_actor
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : item selection)
  #--------------------------------------------------------------------------
  def update_phase3_item_select
    # Make item window visible
    @item_window.visible = true
    # Update item window
    @item_window.update
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # End item selection
      end_item_select(true)
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Get currently selected data on the item window
      @item = @item_window.item
      # If it can't be used
      unless $game_party.item_can_use?(@item.id)
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Play decision SE
      $game_system.se_play($data_system.decision_se)
      # Set action
      @active_battler.current_action.item_id = @item.id
      # Make item window invisible
      @item_window.visible = false
      # If effect scope is single enemy
      if @item.scope == 1
        # Start enemy selection
        start_enemy_select
      # If effect scope is single ally
      elsif @item.scope == 3 or @item.scope == 5
        # Start actor selection
        start_actor_select
      # If effect scope is not single
      else
        # End item selection
        end_item_select
        # Go to command input for next actor
        phase3_next_actor
      end
      return
    end
  end
  alias s89end_item_select end_item_select
  def end_item_select(max = false)
    # If targetted with a skill/spell
    #if @active_battler.skill_select
    s89end_item_select
    if max == true
      $game_party.party_points = @max
      @showpoint_window.update if @showpoint_window != nil
    else
      @active_item = @item
      if @active_item != nil
        if $items.include?(@active_item.name)
          if $items[@active_item.name] != nil
            $game_party.party_points -= $items[@active_item.name]
            @showpoint_window.update if @showpoint_window != nil
          else
            @showpoint_window.update if @showpoint_window != nil
          end
        else
          $game_party.party_points -= $items_costdefault
          @showpoint_window.update if @showpoint_window != nil
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Make Skill Action Results
  #--------------------------------------------------------------------------
  def make_skill_action_result
    # Get skill
    @skill = $data_skills[@active_battler.current_action.skill_id]
    # If not a forcing action
    unless @active_battler.current_action.forcing
      # If unable to use due to SP running out
      unless @active_battler.skill_can_use?(@skill.id, true)
        # Clear battler being forced into action
        $game_temp.forcing_battler = nil
        # Shift to step 1
        @phase4_step = 1
        return
      end
    end
    # Use up SP
    @active_battler.sp -= @skill.sp_cost
    # Refresh status window
    @status_window.refresh
    # Show skill name on help window
    @help_window.set_text(@skill.name, 1)
    # Set animation ID
    @animation1_id = @skill.animation1_id
    @animation2_id = @skill.animation2_id
    # Set command event ID
    @common_event_id = @skill.common_event_id
    # Set target battlers
    set_target_battlers(@skill.scope)
    # Apply skill effect
    for target in @target_battlers
      target.skill_effect(@active_battler, @skill)
    end
  end
end
#=end


This one wont be needed. but maybe...
Code:
#==============================================================================
# ** Party Points Bug Patches
#------------------------------------------------------------------------------
# By Sasuke89                                                           9-20-07
#------------------------------------------------------------------------------
# ~Patches(In Order):
#   Skill Casting Delay v 1.6                          by DerVVulfman(In Script)
#   Tales of Symphonia/Phantasia Skill System                    by Jimme Reashu
#==============================================================================
#==============================================================================
# ** Tales of Symphonia/Phantasia Skill System by Jimme Reashu Patch
#==============================================================================

#=begin
class Window_Skill < Window_Selectable
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(index)
    skill = @data[index]
    if @actor.skill_can_use?(skill.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    unless @actor.used_enough(skill.id)
      self.contents.font.color = text_color(1)
    end
    x = 4 + index % 2 * (288 + 32)
    y = index / 2 * 32
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    bitmap = RPG::Cache.icon(skill.icon_name)
    opacity = self.contents.font.color == normal_color ? 255 : 128
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
    self.contents.draw_text(x + 28, y, 204, 32, skill.name, 0)
    if $skills.include?(skill.name)
      self.contents.draw_text(x + 220, y, 60, 32, $power_points_word + ":" + $skills[skill.name].to_s + "  " + $magic_capacity + ":" + skill.sp_cost.to_s, 2)
    else
      self.contents.draw_text(x + 220, y, 60, 32, $power_points_word + ":" + $skills_costdefault.to_s + "  " + $magic_capacity + ":" + skill.sp_cost.to_s, 2)
    end
  end
end
class Game_Actor < Game_Battler
  def skill_can_use?(skill_id, party = false)
    if party == false
      if $scene.is_a?(Scene_Battle)
        if $skills.include?($data_skills[skill_id].name)
          if $skills[$data_skills[skill_id].name] > $game_party.party_points
            return false
          end
        else
        end
      end
    end
    unless self.used_enough(skill_id)
      return false
    end
    if not skill_learn?(skill_id)
      return false
    end
    return super
  end
end
#=end

Instructions

In Script

FAQ

N/A

Compatibility

This script was made especially for the scripts in my game. The only scripts I can promise will work are:
  • Default Battle System
  • Hima's Elemental Reflector
  • Laura's Escape Bar Removal
  • Skill Casting Delay by DerVVulfman
  • Tales of Symphonia Skill System by Jimme Reashu
  • Animated Battlers - Enhanced

Credits and Thanks
~Scripting
DerVVulfman
DeMonFire
~Idea
http://www.rmxp.org/forums/showthread.php?t=28638

Author's Notes

Everyone who helped with the strategic battles topic, got credited in-game. So I do appreciate it. I'm sorry for any inconvenience while using the script.

PLEASE do not ask for extra features. I DO plan on making individual items take certain amounts of Party Points as well so don't ask.

Terms and Conditions

Script Created and Released September 20th 2007
To use this script you must credit me, and DeMonFire(Unless Demon says otherwise).
 

Dokien

Sponsor

$default_division = 10
$default_partypoints = 8

Just to state, these lines (21 & 22) are where the alterations of how many points are "refueled" after each turn.

Good to see a new script, reminds me of a card game I played online a few weeks ago (Urban Rivals or something). I don't know why people havn't replied to this.
 
I guess I forgot to comment that.
$default_partypoints is the number of party points you have at the beginning of the game (Default).

$default_division is the number of levels taken the party must gain to level up the Party Points. For example, if the $default_partypoints was 0, the division was 5, and all four characters are level 5, the party points would be 4.

Thanks for your reply.
 

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