Quita Habilidades

Ver el tema anterior Ver el tema siguiente Ir abajo

Quita Habilidades

Mensaje  SriLanka el Mar Abr 01, 2008 5:02 pm

Este script que voy a postear sirve para que si el pj tiene 4 hablidades , al aprender otra como en los juegos de pokemon, te hace quitar una por la nueva o no aprender la nueva :S

Spoiler:
Código:
class Window_SkillDelete < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#    actor : アクター
#--------------------------------------------------------------------------
def initialize(actor)
 super(0, 128, 640, 352)
 @actor = actor
 @column_max = 2
 refresh
 self.index = 0
 # 戦闘中の場合はウィンドウを画面中央へ移動し、半透明にする
end
#--------------------------------------------------------------------------
# ● スキルの取得
#--------------------------------------------------------------------------
def skill
 return @data[self.index]
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
 if self.contents != nil
  self.contents.dispose
  self.contents = nil
 end
 @data = []
 for i in 0...@actor.skills.size
  skill = $data_skills[@actor.skills[i]]
  if skill != nil
    @data.push(skill)
  end
 end
 # 項目数が 0 でなければビットマップを作成し、全項目を描画
 @item_max = @data.size
 if @item_max > 0
  self.contents = Bitmap.new(width - 32, row_max * 32)
  self.contents.font.name = "Arial"  # "Skill" window font
  self.contents.font.size = 24
  for i in 0...@item_max
    draw_item(i)
  end
 end
end
#--------------------------------------------------------------------------
# ● 項目の描画
#    index : 項目番号
#--------------------------------------------------------------------------
def draw_item(index)
 skill = @data[index]
  self.contents.font.color = normal_color
 if skill.element_set.include?("Undeletable ELEMENT ID")
  self.contents.font.color = undelete_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)
 self.contents.draw_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2)
end
#--------------------------------------------------------------------------
# ● ヘルプテキスト更新
#--------------------------------------------------------------------------
def update_help
 @help_window.set_text( @actor.name + " tiene muchas habilidades. Elije una a borrar.")
end
end




class Scene_Max
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#    actor_index : アクターインデックス
#--------------------------------------------------------------------------
def initialize(actor_index = 0, equip_index = 0)
 @actor_index = actor_index
end
#--------------------------------------------------------------------------
# ● メイン処理
#--------------------------------------------------------------------------
def main
 # アクターを取得
 @actor = $game_party.actors[@actor_index]
 # ヘルプウィンドウ、ステータスウィンドウ、スキルウィンドウを作成
 @help_window = Window_Help.new
 @status_window = Window_SkillStatus.new(@actor)
 @skill_window = Window_SkillDelete.new(@actor)
 # ヘルプウィンドウを関連付け
 @skill_window.help_window = @help_window
 Graphics.transition
 # メインループ
 loop do
  # ゲーム画面を更新
  Graphics.update
  # 入力情報を更新
  Input.update
  # フレーム更新
  update
  # 画面が切り替わったらループを中断
  if $scene != self
    break
  end
 end
 # トランジション準備
 Graphics.freeze
 # ウィンドウを解放
 @help_window.dispose
 @status_window.dispose
 @skill_window.dispose
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
 # ウィンドウを更新
 @help_window.update
 @status_window.update
 @skill_window.update
 # スキルウィンドウがアクティブの場合: update_skill を呼ぶ
 if @skill_window.active
  update_skill
  return
 end
end
#--------------------------------------------------------------------------
# ● フレーム更新 (スキルウィンドウがアクティブの場合)
#--------------------------------------------------------------------------
def update_skill
 if Input.trigger?(Input::C)
  @skill = @skill_window.skill
  unless @skill.element_set.include?("UNDELETABLE ELEMENT ID")
  $game_system.se_play($data_system.decision_se)
  @actor.skills.delete(@skill.id)
  $scene = Scene_Map.new
  return
  else
  $game_system.se_play($data_system.buzzer_se)
  end
    end
  end
end

class Game_Actor < Game_Battler
def learn_skill(skill_id)
 if skill_id > 0 and not skill_learn?(skill_id)
  @skills.push(skill_id)
  @skills.sort!
  if @skills.size > 4
    $scene = Scene_Max.new
    if $game_temp.in_battle
      $game_temp.in_battle = false
    end
  end
 end
end
end

class Window_Base < Window
def undelete_color
 return Color.new(175, 0, 5, 255)
end
end
avatar
SriLanka
Hijo De Artemisa
Hijo De Artemisa

Cantidad de envíos : 55
Edad : 24
Localización : aqui....alla....no me acuerdo...
Fecha de inscripción : 04/03/2008

Ver perfil de usuario

Volver arriba Ir abajo

Re: Quita Habilidades

Mensaje  Caistsa el Jue Ene 08, 2009 7:15 pm

Muy bueno si seños jaja me alegro de que lo hayas posteado aunque te lo pasasse yo jaja Bueno eso, buen aporte!

Caistsa

_________________
El Poder de La Magia Negra No Se Consigue Se Nace Con Ello

Caistsa Dragoner Des Averno->Mago Negro
avatar
Caistsa
Administrador
Administrador

Cantidad de envíos : 187
Fecha de inscripción : 21/02/2008

Ver perfil de usuario http://caistsarpg.superforo.net

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

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