RPG maker VX


Unirse al foro, es rápido y fácil

RPG maker VX
RPG maker VX
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.
Últimos temas
» Script de menu
por maxi Jue 04 Dic 2014, 1:44 pm

» Ayuda intro animado!!!
por maxi Miér 03 Dic 2014, 9:41 pm

» ayuda con este engin
por maxi Miér 03 Dic 2014, 8:42 am

» Hud de Vida 100% Personalizable - Engine Sencillo! Sin Scripts :)
por davidaikago Jue 20 Nov 2014, 10:58 am

» Ultimate parallax control by:GDS [ace]
por arellano Miér 08 Oct 2014, 8:28 pm

» Script Touhou (animated) Map name (v1.4)
por davidaikago Miér 08 Oct 2014, 2:09 pm

» tutorial puerta nueva
por davidaikago Miér 08 Oct 2014, 9:08 am

» cámara de fotos
por davidaikago Miér 08 Oct 2014, 9:05 am

» Imperial Action System II Demo
por davidaikago Miér 08 Oct 2014, 8:47 am

» VE Batalla animada [ACE]
por FhierusIV Jue 18 Sep 2014, 10:57 am

» Nuevo Reglamento del Foro [Vigente desde Septiembre 2014]
por maxi Miér 17 Sep 2014, 8:37 am

» MOG|Animated Title
por Souta21 Mar 09 Sep 2014, 7:24 pm

» Tutorial Engine - Cambiar Character al Equipar Objeto
por maxi Lun 21 Jul 2014, 10:19 am

» Script de climas
por gambasoxd Sáb 19 Jul 2014, 8:58 am

» Script de contraseña(codigo) para abrir un cofre
por rpgame Jue 03 Jul 2014, 6:03 pm

¿Quién está en línea?
En total hay 1 usuario en línea: 0 Registrados, 0 Ocultos y 1 Invitado

Ninguno

[ Ver toda la lista ]


El record de usuarios en línea fue de 117 durante el Mar 09 Ago 2011, 3:39 pm

Equipar y desequipar abilidades al subir de nivel (sistema de puntos)

3 participantes

Ir abajo

Equipar y desequipar abilidades al subir de nivel (sistema de puntos) Empty Equipar y desequipar abilidades al subir de nivel (sistema de puntos)

Mensaje por Teshca Sáb 20 Feb 2010, 12:04 am

este script te da puntos de abilidad al subir de nivel con los que equipas tus habilidades de ese modo puedes limitar el numero de tus habilidades disponibles en batalla, digamos que ya sabes 5 hablidades, lazaro, cura, esna , pero colocar las 5 te cuesta 15 puntos y tu solo tienes 10 pues eliges cuidadosamente que skills equiparte para la pelea, y si no te funcionan simplemente te "des-equipas una skill" te regresan los puntos que costava tenerla equipada y eliges otra skill.

CREDITOS
-Nombre Del script:
KGC_SkillCPSystem VX
-Rpg Maker: VX
-Creditos: Traducido por WesdrasLink echo
por KGC

Código:
 #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/    KGC_SkillCPSystem VX
#_/    Last update : 2008/02/17
#_/----------------------------------------------------------------------------
#  Tradução por WesdrasLink
#==============================================================================
#  Customize
#==============================================================================

module KGC
module SkillCPSystem
  # Aqui defina a quantidade de Habilidades que podem ser equipadas
  MAX_SKILLS = 9
  # CP
  VOCAB_CP  = "CP"
  # Nome da barra de CP
  VOCAB_CP_A = "CP"
  # Amostrar Barra de CP no Status ?
  SHOW_STATUS_CP = true

  # Quanto vale CP para uma Habilidade ?
 
  DEFAULT_CP_COST = 1
  # CP Máximo
  CP_MAX = 15
  # CP Mínimo
  CP_MIN = 0
  # Defina aqui com quantos CP o heroi vai comçar e quanto vai aumentar quando
  #passar de nível
  CP_CALC_EXP = "level * 3.6"

  # ? ??????????
  #  true ???????????????????????
  DISABLE_IN_BATTLETEST  = true
  # ? ?????????????
  SHOW_UNUSABLE_SKILL    = true
  # ? ?? CP 0 ?????????????????
  USABLE_COST_ZERO_SKILL = true
  # ? ???????????????????
  #  «???????» ????????
  PASSIVE_NEED_TO_SET    = true

  # ? CP ???????
  #  ??  : \C[n] ?????
  #  Color : ?????? ( Color.new(255, 128, 128) ?? )
  GAUGE_START_COLOR = 13
  # ? CP ???????
  GAUGE_END_COLOR  = 5

  # ? ???????????????????????
  #  ???????????????????????
  #  ?????????????«????????????» ?????????
  USE_MENU_SET_SKILL_COMMAND = true
  # ? ?????????????????????
  VOCAB_MENU_SET_SKILL      = "Skill"
  # ? ???????????
  BLANK_TEXT  = "-  Vazio  -"
  # ? ??????????
  RELEASE_TEXT = "( Nada )"
end
end

#???????????????????????????????????????

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

module KGC::SkillCPSystem
  # ????
  module Regexp
    # ???
    module Skill
      # ?? CP
      CP_COST = //i
    end
  end
end

#???????????????????????????????????????

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

module KGC::Commands
  module_function
  #--------------------------------------------------------------------------
  # ? ?? CP ???
  #    actor_id : ???? ID
  #    own_cp  : ?? CP
  #--------------------------------------------------------------------------
  def set_own_cp(actor_id, own_cp)
    $game_actors[actor_id].own_cp = own_cp
  end
  #--------------------------------------------------------------------------
  # ? ???????????
  #    actor_id : ???? ID
  #    value    : ?????
  #--------------------------------------------------------------------------
  def set_battle_skill_max(actor_id, value = -1)
    $game_actors[actor_id].battle_skill_max = value
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #    actor_id : ???? ID
  #    index    : ????
  #    skill_id : ??????? ID (nil ???)
  #--------------------------------------------------------------------------
  def set_battle_skill(actor_id, index, skill_id = nil)
    actor = $game_actors[actor_id]
    if skill_id.is_a?(Integer)
      # ??
      skill = $data_skills[skill_id]
      return unless actor.battle_skill_settable?(index, skill)  # ?????

      actor.set_battle_skill(index, skill)
      actor.restore_battle_skill
    else
      # ??
      actor.remove_battle_skill(index)
    end
  end
  #--------------------------------------------------------------------------
  # ? ????????
  #    actor_id : ???? ID
  #    skill_id : ??????? ID
  #--------------------------------------------------------------------------
  def add_battle_skill(actor_id, skill_id)
    actor = $game_actors[actor_id]
    skill = $data_skills[skill_id]
    skills = actor.battle_skill_ids
    return if skills.include?(skill_id)  # ????
    return if actor.cp < skill.cp_cost  # CP ??

    actor.battle_skill_max.times { |i|
      # ????????
      if skills[i] == nil &&
        actor.set_battle_skill(i, skill)
        break
      end
    }
    actor.restore_battle_skill
  end
  #--------------------------------------------------------------------------
  # ? ???????
  #    actor_id : ???? ID
  #--------------------------------------------------------------------------
  def clear_battle_skill(actor_id)
    $game_actors[actor_id].clear_battle_skill
  end
  #--------------------------------------------------------------------------
  # ? ????????????
  #    actor_index : ??????????
  #--------------------------------------------------------------------------
  def call_set_battle_skill(actor_index = 0)
    return if $game_temp.in_battle
    $game_temp.next_scene = :set_battle_skill
    $game_temp.next_scene_actor_index = actor_index
  end
end

class Game_Interpreter
  include KGC::Commands
end

#???????????????????????????????????????

#==============================================================================
# ¦ Vocab
#==============================================================================

module Vocab
  # CP
  def self.cp
    return KGC::SkillCPSystem::VOCAB_CP
  end

  # CP (?)
  def self.cp_a
    return KGC::SkillCPSystem::VOCAB_CP_A
  end

  # ?????
  def self.set_battle_skill
    return KGC::SkillCPSystem::VOCAB_MENU_SET_SKILL
  end
end

#???????????????????????????????????????

#==============================================================================
# ¦ RPG::Skill
#==============================================================================

class RPG::Skill < RPG::UsableItem
  #--------------------------------------------------------------------------
  # ? ???CP??????????
  #--------------------------------------------------------------------------
  def create_skill_cp_system_cache
    @__cp_cost = KGC::SkillCPSystem::DEFAULT_CP_COST

    self.note.split(/[\r\n]+/).each { |line|
      case line
      when KGC::SkillCPSystem::Regexp::Skill::CP_COST
        # ?? CP
        @__cp_cost = $1.to_i
      end
    }
  end
  #--------------------------------------------------------------------------
  # ? ?? CP
  #--------------------------------------------------------------------------
  def cp_cost
    create_skill_cp_system_cache if @__cp_cost == nil
    return @__cp_cost
  end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Game_Battler
#==============================================================================

class Game_Battler
  #--------------------------------------------------------------------------
  # ? ?????????????
  #    skill : ???
  #--------------------------------------------------------------------------
  def battle_skill_set?(skill)
    return true
  end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Game_Actor
#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ? ??????????
  #--------------------------------------------------------------------------
  attr_writer  :own_cp                  # ?? CP
  #--------------------------------------------------------------------------
  # ? ??????
  #    actor_id : ???? ID
  #--------------------------------------------------------------------------
  alias setup_KGC_SkillCPSystem setup
  def setup(actor_id)
    setup_KGC_SkillCPSystem(actor_id)

    @battle_skills = []
    @own_cp = 0
    @battle_skill_max = -1
  end
  #--------------------------------------------------------------------------
  # ? MaxCP ??
  #--------------------------------------------------------------------------
  def maxcp
    n = Integer(eval(KGC::SkillCPSystem::CP_CALC_EXP))
    return [[n + own_cp, cp_limit].min, KGC::SkillCPSystem::CP_MIN].max
  end
  #--------------------------------------------------------------------------
  # ? CP ??
  #--------------------------------------------------------------------------
  def cp
    n = 0
    battle_skills.compact.each { |skill| n += skill.cp_cost }
    return [maxcp - n, 0].max
  end
  #--------------------------------------------------------------------------
  # ? CP ????
  #--------------------------------------------------------------------------
  def cp_limit
    return KGC::SkillCPSystem::CP_MAX
  end
  #--------------------------------------------------------------------------
  # ? ?? CP ??
  #--------------------------------------------------------------------------
  def own_cp
    @own_cp = 0 if @own_cp == nil
    return @own_cp
  end
  #--------------------------------------------------------------------------
  # ? ?????
  #--------------------------------------------------------------------------
  alias skills_KGC_SkillCPSystem skills
  def skills
    result = skills_KGC_SkillCPSystem

    # ??????????
    if skill_cp_restrict?
      result.each_with_index { |skill, i|
        # ?? CP > 0 ???????
        if !KGC::SkillCPSystem::USABLE_COST_ZERO_SKILL || skill.cp_cost > 0
          result[i] = nil
        end
        # ??????????
        if $imported["PassiveSkill"] && KGC::SkillCPSystem::PASSIVE_NEED_TO_SET
          result[i] = nil if skill.passive
        end
      }
      result.compact!
      # ????????
      result |= battle_skills
      result.sort! { |a, b| a.id <=> b.id }
    end

    return result
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def skill_cp_restrict?
    if $game_temp.in_battle
      # ???????????????????????
      return true unless $BTEST && KGC::SkillCPSystem::DISABLE_IN_BATTLETEST
    end

    return false
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def all_skills
    # ???????????
    last_in_battle = $game_temp.in_battle
    $game_temp.in_battle = false

    result = skills_KGC_SkillCPSystem
    if $imported["EquipLearnSkill"]
      result |= (equipment_skills | full_ap_skills)
      result.sort! { |a, b| a.id <=> b.id }
    end

    # ?????????
    $game_temp.in_battle = last_in_battle

    return result
  end
  #--------------------------------------------------------------------------
  # ? ??????????
  #--------------------------------------------------------------------------
  def battle_skill_max
    @battle_skill_max = -1 if @battle_skill_max == nil
    if @battle_skill_max < 0
      return KGC::SkillCPSystem::MAX_SKILLS
    else
      return @battle_skill_max
    end
  end
  #--------------------------------------------------------------------------
  # ? ??????????
  #--------------------------------------------------------------------------
  def battle_skill_max=(value)
    @battle_skill_max = value
    if @battle_skills == nil
      @battle_skills = []
    else
      @battle_skills = @battle_skills[0...value]
    end
    restore_passive_rev if $imported["PassiveSkill"]
  end
  #--------------------------------------------------------------------------
  # ? ?????? ID ??
  #--------------------------------------------------------------------------
  def battle_skill_ids
    @battle_skills = [] if @battle_skills == nil
    return @battle_skills
  end
  #--------------------------------------------------------------------------
  # ? ????????
  #--------------------------------------------------------------------------
  def battle_skills
    result = []
    battle_skill_ids.each { |i|
      next if i == nil          # ?????????
      result << $data_skills[i]
    }
    return result
  end
  #--------------------------------------------------------------------------
  # ? ????????
  #    index : ??
  #    skill : ???
  #--------------------------------------------------------------------------
  def set_battle_skill(index, skill)
    return unless skill.is_a?(RPG::Skill)  # ?????
    return if cp < skill.cp_cost          # CP ??

    @battle_skills[index] = skill.id
    restore_passive_rev if $imported["PassiveSkill"]
  end
  #--------------------------------------------------------------------------
  # ? ????????
  #    index : ??
  #--------------------------------------------------------------------------
  def remove_battle_skill(index)
    @battle_skills[index] = nil
    restore_passive_rev if $imported["PassiveSkill"]
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def clear_battle_skill
    @battle_skills = []
    restore_passive_rev if $imported["PassiveSkill"]
  end
  #--------------------------------------------------------------------------
  # ? ?????????????
  #    index : ??
  #    skill : ???
  #--------------------------------------------------------------------------
  def battle_skill_settable?(index, skill)
    return false if battle_skill_max <= index  # ???
    return true  if skill == nil              # nil ?????? OK

    return false if battle_skill_ids.include?(skill.id)  # ?????

    curr_skill = battle_skills[index]
    offset = (curr_skill != nil ? curr_skill.cp_cost : 0)
    return false if self.cp < (skill.cp_cost - offset)  # CP ??

    return true
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def restore_battle_skill
    result = battle_skill_ids.clone
    usable_skills = all_skills

    result.each_with_index { |n, i|
      next if n == nil
      # ?????????
      if (usable_skills.find { |s| s.id == n }) == nil
        result[i] = nil
      end
    }
    @battle_skills = result
  end
  #--------------------------------------------------------------------------
  # ? ????? (?????????)
  #    equip_type : ???? (0..4)
  #    item      : ?? or ?? (nil ??????)
  #    test      : ?????? (???????????????????)
  #--------------------------------------------------------------------------
  alias change_equip_KGC_SkillCPSystem change_equip
  def change_equip(equip_type, item, test = false)
    change_equip_KGC_SkillCPSystem(equip_type, item, test)

    unless test
      restore_battle_skill
      restore_passive_rev if $imported["PassiveSkill"]
    end
  end
  #--------------------------------------------------------------------------
  # ? ?????
  #    item : ?????? or ??
  #    ??/???????????????????????
  #--------------------------------------------------------------------------
  alias discard_equip_KGC_SkillCPSystem discard_equip
  def discard_equip(item)
    discard_equip_KGC_SkillCPSystem(item)

    restore_battle_skill
    restore_passive_rev if $imported["PassiveSkill"]
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #    exp  : ??????
  #    show : ???????????
  #--------------------------------------------------------------------------
  alias change_exp_KGC_SkillCPSystem change_exp
  def change_exp(exp, show)
    # ????????????????????????????
    last_in_battle = $game_temp.in_battle
    $game_temp.in_battle = false

    change_exp_KGC_SkillCPSystem(exp, show)

    $game_temp.in_battle = last_in_battle
  end
  #--------------------------------------------------------------------------
  # ? ???????
  #    skill_id : ??? ID
  #--------------------------------------------------------------------------
  alias forget_skill_KGC_SkillCPSystem forget_skill
  def forget_skill(skill_id)
    # ?????????????????
    battle_skill_ids.each_with_index { |s, i|
      remove_battle_skill(i) if s == skill_id
    }

    forget_skill_KGC_SkillCPSystem(skill_id)
  end
  #--------------------------------------------------------------------------
  # ? ?????????????
  #    skill : ???
  #--------------------------------------------------------------------------
  def battle_skill_set?(skill)
    return false unless skill.is_a?(RPG::Skill)  # ?????

    return battle_skill_ids.include?(skill.id)
  end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Window_Base
#==============================================================================

class Window_Base < Window
  #--------------------------------------------------------------------------
  # ? CP ???????
  #    actor : ????
  #--------------------------------------------------------------------------
  def cp_color(actor)
    return knockout_color if actor.maxcp > 0 && actor.cp == 0
    return normal_color
  end
  #--------------------------------------------------------------------------
  # ? CP ????? 1 ???
  #--------------------------------------------------------------------------
  def cp_gauge_color1
    color = KGC::SkillCPSystem::GAUGE_START_COLOR
    return (color.is_a?(Integer) ? text_color(color) : color)
  end
  #--------------------------------------------------------------------------
  # ? CP ????? 2 ???
  #--------------------------------------------------------------------------
  def cp_gauge_color2
    color = KGC::SkillCPSystem::GAUGE_END_COLOR
    return (color.is_a?(Integer) ? text_color(color) : color)
  end
  #--------------------------------------------------------------------------
  # ? CP ???
  #    actor : ????
  #    x    : ??? X ??
  #    y    : ??? Y ??
  #    width : ?
  #--------------------------------------------------------------------------
  def draw_actor_cp(actor, x, y, width = 120)
    draw_actor_cp_gauge(actor, x, y, width)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 30, WLH, Vocab::cp_a)
    self.contents.font.color = cp_color(actor)
    xr = x + width
    if width < 120
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.cp, 2)
    else
      self.contents.draw_text(xr - 90, y, 40, WLH, actor.cp, 2)
      self.contents.font.color = normal_color
      self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxcp, 2)
    end
    self.contents.font.color = normal_color
  end
  #--------------------------------------------------------------------------
  # ? CP ??????
  #    actor : ????
  #    x    : ??? X ??
  #    y    : ??? Y ??
  #    width : ?
  #--------------------------------------------------------------------------
  def draw_actor_cp_gauge(actor, x, y, width = 120)
    gw = width * actor.cp / [actor.maxcp, 1].max
    gc1 = cp_gauge_color1
    gc2 = cp_gauge_color2
    self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
    self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Window_Command
#==============================================================================

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

#???????????????????????????????????????

#==============================================================================
# ¦ Window_Status
#==============================================================================

if KGC::SkillCPSystem::SHOW_STATUS_CP
class Window_Status < Window_Base
  #--------------------------------------------------------------------------
  # ? ???????
  #    x : ??? X ??
  #    y : ??? Y ??
  #--------------------------------------------------------------------------
  alias draw_basic_info_KGC_SkillCPSystem draw_basic_info
  def draw_basic_info(x, y)
    draw_basic_info_KGC_SkillCPSystem(x, y)

    draw_actor_cp(@actor, x, y + WLH * 4)
  end
end
end

#???????????????????????????????????????

#==============================================================================
# ? Window_BattleSkillStatus
#------------------------------------------------------------------------------
#  ?????????????????????????????????
#==============================================================================

class Window_BattleSkillStatus < Window_Base
  #--------------------------------------------------------------------------
  # ? ?????????
  #    x    : ?????? X ??
  #    y    : ?????? Y ??
  #    actor : ????
  #--------------------------------------------------------------------------
  def initialize(x, y, actor)
    super(x, y, Graphics.width, WLH + 32)
    @actor = actor
    refresh
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    draw_actor_name(@actor, 4, 0)
    draw_actor_level(@actor, 140, 0)
    draw_actor_cp(@actor, 240, 0)
  end
end

#???????????????????????????????????????

#==============================================================================
# ? Window_BattleSkillSlot
#------------------------------------------------------------------------------
#  ??????????????????????????????????
#==============================================================================

class Window_BattleSkillSlot < Window_Selectable
  #--------------------------------------------------------------------------
  # ? ?????????
  #    x      : ?????? X ??
  #    y      : ?????? Y ??
  #    width  : ???????
  #    height : ????????
  #    actor  : ????
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height, actor)
    super(x, y, width, height)
    @actor = actor
    self.index = 0
    self.active = false
    refresh
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def skill
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def refresh
    @data = []
    skill_ids = @actor.battle_skill_ids
    @actor.battle_skill_max.times { |i|
      if skill_ids[i] != nil
        @data << $data_skills[skill_ids[i]]
      else
        @data << nil
      end
    }
    @item_max = @data.size
    create_contents
    @item_max.times { |i| draw_item(i) }
  end
  #--------------------------------------------------------------------------
  # ? ?????
  #    index : ????
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    skill = @data[index]
    if skill != nil
      rect.width -= 4
      draw_item_name(skill, rect.x, rect.y)
      self.contents.draw_text(rect, skill.cp_cost, 2)
    else
      self.contents.draw_text(rect, KGC::SkillCPSystem::BLANK_TEXT, 1)
    end
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def update
    super
    return unless self.active

    if Input.repeat?(Input::RIGHT)
      cursor_pagedown
    elsif Input.repeat?(Input::LEFT)
      cursor_pageup
    end
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(skill == nil ? "" : skill.description)
  end
end

#???????????????????????????????????????

#==============================================================================
# ? Window_BattleSkillList
#------------------------------------------------------------------------------
#  ???????????????????????????????????
#==============================================================================

class Window_BattleSkillList < Window_Selectable
  #--------------------------------------------------------------------------
  # ? ??????????
  #--------------------------------------------------------------------------
  attr_accessor :slot_index              # ??????
  #--------------------------------------------------------------------------
  # ? ?????????
  #    x      : ?????? X ??
  #    y      : ?????? Y ??
  #    width  : ???????
  #    height : ????????
  #    actor  : ????
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height, actor)
    super(x, y, width, height)
    @actor = actor
    @slot_index = 0
    self.index = 0
    self.active = false
    refresh
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def skill
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def refresh
    @data = [nil]
    # ?????????????
    @actor.all_skills.each { |skill|
      @data.push(skill) if selectable?(skill)
    }

    @item_max = @data.size
    create_contents
    @item_max.times { |i| draw_item(i) }
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #    skill : ???
  #--------------------------------------------------------------------------
  def selectable?(skill)
    return false if skill == nil

    # ?? CP 0 ???????????
    if KGC::SkillCPSystem::USABLE_COST_ZERO_SKILL && skill.cp_cost == 0
      return false
    end
    # ??????????OK
    return true if skill.battle_ok?
    # ??????????????
    if KGC::SkillCPSystem::SHOW_UNUSABLE_SKILL && skill.occasion == 3
      return true
    end

    return false
  end
  #--------------------------------------------------------------------------
  # ? ?????
  #    index : ????
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    skill = @data[index]
    if skill != nil
      rect.width -= 4
      enabled = @actor.battle_skill_settable?(@slot_index, skill)
      draw_item_name(skill, rect.x, rect.y, enabled)
      self.contents.draw_text(rect, skill.cp_cost, 2)
    else
      self.contents.draw_text(rect, KGC::SkillCPSystem::RELEASE_TEXT, 1)
    end
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def update
    super
    return unless self.active

    if Input.repeat?(Input::RIGHT)
      cursor_pagedown
    elsif Input.repeat?(Input::LEFT)
      cursor_pageup
    end
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(skill == nil ? "" : skill.description)
  end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Scene_Map
#==============================================================================

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

    if $game_temp.next_scene == :set_battle_skill
      call_set_battle_skill
      return
    end

    update_scene_change_KGC_SkillCPSystem
  end
  #--------------------------------------------------------------------------
  # ? ?????????????
  #--------------------------------------------------------------------------
  def call_set_battle_skill
    $game_temp.next_scene = nil
    $scene = Scene_SetBattleSkill.new(
      $game_temp.next_scene_actor_index,
      0,
      Scene_SetBattleSkill::HOST_MAP)
  end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Scene_Menu
#==============================================================================

class Scene_Menu < Scene_Base
  if KGC::SkillCPSystem::USE_MENU_SET_SKILL_COMMAND
  #--------------------------------------------------------------------------
  # ? ????????????
  #--------------------------------------------------------------------------
  alias create_command_window_KGC_SkillCPSystem create_command_window
  def create_command_window
    create_command_window_KGC_SkillCPSystem

    return if $imported["CustomMenuCommand"]

    @__command_set_battle_skill_index =
      @command_window.add_command(Vocab.set_battle_skill)
    if @command_window.oy > 0
      @command_window.oy -= Window_Base::WLH
    end
    @command_window.index = @menu_index
  end
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  alias update_command_selection_KGC_SkillCPSystem update_command_selection
  def update_command_selection
    call_set_battle_skill_flag = false
    if Input.trigger?(Input::C)
      case @command_window.index
      when @__command_set_battle_skill_index  # ?????
        call_set_battle_skill_flag = true
      end
    end

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

    update_command_selection_KGC_SkillCPSystem
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  alias update_actor_selection_KGC_SkillCPSystem update_actor_selection
  def update_actor_selection
    if Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      case @command_window.index
      when @__command_set_battle_skill_index  # ?????
        $scene = Scene_SetBattleSkill.new(
          @status_window.index,
          @__command_set_battle_skill_index,
          Scene_SetBattleSkill::HOST_MENU)
        return
      end
    end

    update_actor_selection_KGC_SkillCPSystem
  end
end

#???????????????????????????????????????

#==============================================================================
# ? Scene_SetBattleSkill
#------------------------------------------------------------------------------
#  ?????????????????????
#==============================================================================

class Scene_SetBattleSkill < Scene_Base
  #--------------------------------------------------------------------------
  # ? ??
  #--------------------------------------------------------------------------
  HOST_MENU  = 0  # ????? : ????
  HOST_MAP    = 1  # ????? : ???
  #--------------------------------------------------------------------------
  # ? ?????????
  #    actor_index : ??????????
  #    menu_index  : ?????????????
  #    host_scene  : ????? (0..????  1..???)
  #--------------------------------------------------------------------------
  def initialize(actor_index = 0, menu_index = 0, host_scene = HOST_MENU)
    @actor_index = actor_index
    @menu_index = menu_index
    @host_scene = host_scene
  end
  #--------------------------------------------------------------------------
  # ? ????
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background

    @actor = $game_party.members[@actor_index]
    create_windows
  end
  #--------------------------------------------------------------------------
  # ? ???????
  #--------------------------------------------------------------------------
  def create_windows
    @help_window = Window_Help.new
    if $imported["HelpExtension"]
      @help_window.row_max = KGC::HelpExtension::ROW_MAX
    end

    dy = @help_window.height
    @status_window = Window_BattleSkillStatus.new(0, dy, @actor)

    dy += @status_window.height
    @slot_window = Window_BattleSkillSlot.new(
      0,
      dy,
      Graphics.width / 2,
      Graphics.height - dy,
      @actor)
    @slot_window.help_window = @help_window
    @slot_window.active = true

    @list_window = Window_BattleSkillList.new(
      Graphics.width - @slot_window.width,
      dy,
      Graphics.width - @slot_window.width,
      Graphics.height - dy,
      @actor)
    @list_window.help_window = @help_window
  end
  #--------------------------------------------------------------------------
  # ? ????
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @help_window.dispose
    @status_window.dispose
    @slot_window.dispose
    @list_window.dispose
  end
  #--------------------------------------------------------------------------
  # ? ???????
  #--------------------------------------------------------------------------
  def return_scene
    case @host_scene
    when HOST_MENU
      $scene = Scene_Menu.new(@menu_index)
    when HOST_MAP
      $scene = Scene_Map.new
    end
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    update_window
    if @slot_window.active
      update_slot
    elsif @list_window.active
      update_list
    end
  end
  #--------------------------------------------------------------------------
  # ? ???????
  #--------------------------------------------------------------------------
  def update_window
    @help_window.update
    @status_window.update
    @slot_window.update
    @list_window.update
  end
  #--------------------------------------------------------------------------
  # ? ????????
  #--------------------------------------------------------------------------
  def refresh_window
    @status_window.refresh
    @slot_window.refresh
    @list_window.refresh
  end
  #--------------------------------------------------------------------------
  # ? ??????????????
  #--------------------------------------------------------------------------
  def next_actor
    @actor_index += 1
    @actor_index %= $game_party.members.size
    $scene = Scene_SetBattleSkill.new(@actor_index, @menu_index, @host_scene)
  end
  #--------------------------------------------------------------------------
  # ? ??????????????
  #--------------------------------------------------------------------------
  def prev_actor
    @actor_index += $game_party.members.size - 1
    @actor_index %= $game_party.members.size
    $scene = Scene_SetBattleSkill.new(@actor_index, @menu_index, @host_scene)
  end
  #--------------------------------------------------------------------------
  # ? ?????? (??????????????????)
  #--------------------------------------------------------------------------
  def update_slot
    # ???????????
    if @last_slot_index != @slot_window.index
      @list_window.slot_index = @slot_window.index
      @list_window.refresh
      @last_slot_index = @slot_window.index
    end

    if Input.trigger?(Input::A)
      Sound.play_decision
      # ????????????
      @actor.remove_battle_skill(@slot_window.index)
      refresh_window
    elsif Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      Sound.play_decision
      # ?????????????
      @slot_window.active = false
      @list_window.active = true
    elsif Input.trigger?(Input::R)
      Sound.play_cursor
      next_actor
    elsif Input.trigger?(Input::L)
      Sound.play_cursor
      prev_actor
    end
  end
  #--------------------------------------------------------------------------
  # ? ?????? (?????????????????)
  #--------------------------------------------------------------------------
  def update_list
    if Input.trigger?(Input::B)
      Sound.play_cancel
      # ??????????????
      @slot_window.active = true
      @list_window.active = false
    elsif Input.trigger?(Input::C)
      skill = @list_window.skill
      # ?????????
      unless @actor.battle_skill_settable?(@slot_window.index, skill)
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      set_skill(@slot_window.index, skill)
      # ??????????????
      @slot_window.active = true
      @list_window.active = false
    end
  end
  #--------------------------------------------------------------------------
  # ? ?????
  #    index : ??????
  #    skill : ???????
  #--------------------------------------------------------------------------
  def set_skill(index, skill)
    @actor.remove_battle_skill(index)
    if skill != nil
      @actor.set_battle_skill(index, skill)
    end
    refresh_window
  end
end

Pd: luego les subo la demo, mi internet esta fallando un poco


Última edición por Teshca el Sáb 20 Feb 2010, 10:10 am, editado 2 veces
Teshca
Teshca
15
15

Masculino

Edad 34

Cantidad de envíos 27

Maker Cash 60

Reputación 16


Extras
Sobre mí::

Volver arriba Ir abajo

Equipar y desequipar abilidades al subir de nivel (sistema de puntos) Empty Re: Equipar y desequipar abilidades al subir de nivel (sistema de puntos)

Mensaje por Zero Sáb 20 Feb 2010, 2:32 am

genial lo pruevo y te digo que tal funsiono grasias [Tienes que estar registrado y conectado para ver esa imagen]
Zero
Zero
0
0

Masculino

Edad 31

Cantidad de envíos 8

Maker Cash 8

Reputación -1


Volver arriba Ir abajo

Equipar y desequipar abilidades al subir de nivel (sistema de puntos) Empty Re: Equipar y desequipar abilidades al subir de nivel (sistema de puntos)

Mensaje por Zero Sáb 20 Feb 2010, 2:55 am

me funsiona gennial [Tienes que estar registrado y conectado para ver esa imagen]
Zero
Zero
0
0

Masculino

Edad 31

Cantidad de envíos 8

Maker Cash 8

Reputación -1


Volver arriba Ir abajo

Equipar y desequipar abilidades al subir de nivel (sistema de puntos) Empty Re: Equipar y desequipar abilidades al subir de nivel (sistema de puntos)

Mensaje por iwanax Lun 22 Feb 2010, 3:41 pm

como es lo pongo en que lugar eso??
iwanax
iwanax
130
130

Masculino

Edad 33

Cantidad de envíos 216

Maker Cash 275

Reputación -5


Volver arriba Ir abajo

Equipar y desequipar abilidades al subir de nivel (sistema de puntos) Empty Re: Equipar y desequipar abilidades al subir de nivel (sistema de puntos)

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.