nininho_2000 Maker Inteligente
Mensagens : 151 Cash Makers : 272
| Assunto: Aprender Habilidades do Inimigo (Estilo BoF) Sáb 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 ScreenshotsComo usarPara 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. DemoNã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 FrequentesNenhuma Pergunta Frequente Créditos e Agradecimentos• Versão XP feita por Atoa• Original para VX feita por TywinLannisterRipado by Mrm | |
|
lz-leo Super Maker [******]
Mensagens : 604 Cash Makers : 895
| Assunto: 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. | |
|