InícioPortalFAQBuscarMembrosGruposRegistrar-seLogin
Entrem no novo Forum MGB http://planetmaker.forumeiros.com/

Compartilhe | 
 

 Aprender Habilidades do Inimigo (Estilo BoF)

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
nininho_2000
Maker Inteligente


Mensagens Mensagens : 151
Cash Makers Cash Makers : 272

MensagemAssunto: Aprender Habilidades do Inimigo (Estilo BoF)   Sab Set 19, 2009 3:26 pm

Aprender Habilidades do Inimigo
Versão XP por Atoa
Original para VX por TywinLannister



Introdução

Esse script permite adicionar um sistema de aprendizado de skill similar ao do Breath of Fire 4: Você pode aprender determinadas skill do inimigo se o personagem estiver defendendo.
Fiz algumas modificações para que o sistema ficasse ainda mais parecido com a versão BoF:
- Um personagem que já tenha a skill (por exemplo aprendeu ela atravéz de ganho de níveis), não aprenderá a skill (no script original ele "aprendia" a skill, mesmo que ele já tivesse, o que impedia que outros membros pudessem aprender)
- As habilidades que podem ser aprendidas aparecem com nome em azul até que elas tenham sido efetivamente aprendidas.
- Agora é possível definir que personagem pode ou não pode aprender skills dessa maneira.
- Também é possivel selecionar uma animação para ser exibida quando o personagem aprender uma skill com esse sistema.

Características

• Permite aprender Habilidades dos inimigos quando defendendo
• Habilidades que podem ser aprendidas aparecem com nome destacado
• Possivel definir quais personagens podem aprender skills com este sistema
• Pode escolher uma animação para ser exibida quando o personagem aprender uma skill com esse sistema

Screenshots





Como usar

Para instalá-lo, apenas cole o script acima do main.

Este script é muito simples de se usar, Você deve criar um atributo com ID igual ao valor em "Learn_Skill_Element" na aba de sistemas.
Depois deve adicioná-lo às habilidades que você deseja que possam ser aprendidas

Você pode alterar as configurações no "module Atoa" dentro do próprio script.

Demo

Não necessita de Demo

script

Código:
#==============================================================================
# ** Aprender Habilidades do Inimigo
#------------------------------------------------------------------------------
#  Original para VX por TywinLannister
#  Versão XP por Atoa
#==============================================================================
# Este script permite que o personagem aprenda determinadas skills
# usadas por inimigosse ele estiver defendendo
# Fiz algumas modificações:
# - o personagem não "aprende" a habilidade
#  se ele já possuí-la (o que tiraria a chance de outro aprende-la)
# - as habilidades que podem ser aprendidas aparecem com nome em
#  azul quando usadas, voltando a cor original depois de aprendidas
# - possivel definir que personagens podem aprender habilidades
#  desta maneira
# - possivel atribuir uma animação que indica qual personagem
#  aprendeu a skill
#==============================================================================
# Usando o script:
# Este script é muito simples de se usar, Você deve criar um atributo
# com ID igual ao valor em "Learn_Skill_Element" na aba de sistemas.
# Depois deve adicioná-lo às habilidades que você deseja que
# possam ser aprendidas.
# Outras configurações podem ser feitas no "module Atoa"
#
# IMPORTANTE:
# Primeiro o sistema verifica a chance de aprender a skill,
# se tiver sucesso, ele seleciona aleatóriamente um dos personagens
# que estiver defendendo, e após isso é que ele verifica se o
# personagem pode ou não aprender a skill.
# Por isso, mesmo que a chance esteja 100%, pode ocorrer de ninguém
# aprender a skill, pois o sistema selecionou alguém inapto a aprende-la.
#==============================================================================

module Atoa
  # ID do atributo das habilidades que podem ser aprendidas
  Learn_Skill_Element = 18

  # Chande de aprender uma skill do inimigo
  Chance_to_learn = 80

  # Adicine as IDs dos personagens que podem aprender habilidades
  Char_can_learn = [1,2,7,8]

  # ID da animação que será mostrada ao aprender uma skill
  # deixe = nil para que nenhuma animação seja mostrada
  Learn_animation = 98

  # Mudar cor do texto das habilidades que podem ser aprendias?
  Change_Text_Color = true

  # Transparência da Janela de aprendizado da Skill
  Window_Opacity = 255

  # Texto de Aprendizado da skill
  Learn_Skill_Tex = "{actor} aprendeu {skill}"
end

#==============================================================================
# ** Game_Party
#==============================================================================
class Game_Party
  #--------------------------------------------------------------------------
  alias enemy_skills_initialize initialize
  #--------------------------------------------------------------------------
  attr_accessor :enemy_skills_learned
  #--------------------------------------------------------------------------
  def initialize
    enemy_skills_initialize
    @enemy_skills_learned = []
  end
end

#==============================================================================
# ** Window_Learn_Skill
#==============================================================================
class Window_Learn_Skill < Window_Base
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 640, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.back_opacity = Atoa::Window_Opacity
    refresh
  end
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.draw_text(0, 0, width - 32, 32, $skill_text, 1)
  end
end

#==============================================================================
# ** Window_Help
#==============================================================================
class Window_Help < Window_Base
  #--------------------------------------------------------------------------
  def set_text2(text, align = 0)
    self.contents.clear
    self.contents.font.color = Color.new(160, 192, 255, 255)
    self.contents.draw_text(4, 0, self.width - 40, 32, text, align)
    @text = text
    @align = align
    @actor = nil
    self.visible = true
  end
end

#==============================================================================
# ** Scene_Battle
#==============================================================================
class Scene_Battle
  #--------------------------------------------------------------------------
  def now_action
    @now_action = $data_weapons[@active_battler.weapon_id] if @active_battler.current_action.kind == 0 and @active_battler.current_action.basic == 0
    @now_action = $data_skills[@active_battler.current_action.skill_id] if @active_battler.current_action.kind == 1
    @now_action = $data_items[@active_battler.current_action.item_id] if @active_battler.current_action.kind == 2
  end
  #--------------------------------------------------------------------------
  alias enemy_skill_update_phase4_step3 update_phase4_step3
  def update_phase4_step3
    return if check_action_can_use
    @help_window.set_text2(@skill.name, 1) if Atoa::Change_Text_Color and @skill.element_set.include?(Atoa::Learn_Skill_Element) and not $game_party.enemy_skills_learned.include?(@skill.id)
    enemy_skill_update_phase4_step3
  end
  #--------------------------------------------------------------------------
  alias skill_update_phase4 update_phase4_step6
  def update_phase4_step6
    skill_update_phase4
    if @active_battler.current_action.kind == 1
      defending_members = []
      chance_to_learn = Atoa::Chance_to_learn
      skill =  $data_skills[@active_battler.current_action.skill_id]
      if skill.element_set.include?(Atoa::Learn_Skill_Element)
        unless $game_party.enemy_skills_learned.include?(skill.id)
          for member in $game_party.actors
            defending_members.push(member) if member.guarding?
          end
        end
      end
      if defending_members.size > 0
        learn_chance = rand(100)
        if learn_chance < chance_to_learn
          member_to_learn = defending_members[rand(defending_members.size)]
          unless member_to_learn.skill_learn?(skill.id)
            if Atoa::Char_can_learn.include?(member_to_learn.id)
              member_to_learn.animation_id = Atoa::Learn_animation unless Atoa::Learn_animation == nil
              member_to_learn.learn_skill(skill.id)       
              $game_party.enemy_skills_learned.push(skill.id)
              $skill_text = Atoa::Learn_Skill_Tex.dup
              $skill_text.gsub!(/{actor}/i) {"#{member_to_learn.name}"}
              $skill_text.gsub!(/{skill}/i) {"#{skill.name}"}
              @window_learn_skill = Window_Learn_Skill.new
              waiting = 0
              loop do
                Graphics.update
                Input.update
                @spriteset.update
                @window_learn_skill.refresh
                waiting += 1
                break if (Input.trigger?(Input::C) and waiting > 30) or waiting > 100
              end
              @window_learn_skill.dispose
            end
          end
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  def check_action_can_use
    now_action
    if @now_action.is_a?(RPG::Skill) and not @active_battler.skill_can_use?(@skill.id)
      unless @active_battler.current_action.forcing
        $game_temp.forcing_battler = nil
        @phase4_step = 1
        return true
      end
    end
    if @now_action.is_a?(RPG::Item) and not $game_party.item_can_use?(@item.id)
      @phase4_step = 1
      return true
    end
    return false
  end
end

Perguntas Frequentes

Nenhuma Pergunta Frequente

Créditos e Agradecimentos
Versão XP feita por Atoa
Original para VX feita por TywinLannister

Ripado by Mrm
Voltar ao Topo Ir em baixo
Ver perfil do usuário
lz-leo
Super Maker [******]


Mensagens Mensagens : 604
Cash Makers Cash Makers : 895

MensagemAssunto: Re: Aprender Habilidades do Inimigo (Estilo BoF)   Ter Set 22, 2009 6:53 pm

Muito show irmão!

Esta ajudando bastante o forum,obrigado por dispor.
Voltar ao Topo Ir em baixo
Ver perfil do usuário
 
Aprender Habilidades do Inimigo (Estilo BoF)
Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo 
Página 1 de 1
 Tópicos similares
-
» [ajuda] inimigo atirar no player
» Habilidades musicais. e MUSICAS^^
» [java][auto rotate] Monty Python's Cow Tossing (estilo Angry Birds)
» Jogo estilo SimCity
» Player estilo iphone

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
 :: Scripts para RPG Maker :: Scripts para RMXP: RGSS-
Ir para: