Chaos Project

RPG Maker => RPG Maker Scripts => RMVX Script Database => Topic started by: TywinLannister on March 28, 2008, 08:41:50 am

Title: [VX] Breath of Fire 3 - Dragon Gene System
Post by: TywinLannister on March 28, 2008, 08:41:50 am
Breath of Fire 3 - Dragon Gene System
Authors: TywinLannister
Version: 1.2
Type: Battle Customization
Key Term: Battle Add-on



Introduction

This script emulates the gene splicing system in Breath of Fire 3. That is, you can choose to transform into a dragon in battle. You can splice up to three genes together in order to make dragons. Only one sprite is included for dragons as I am not a spriter  :lol:


Features




Screenshots

Spoiler: ShowHide
(http://i297.photobucket.com/albums/mm231/TywinLannister/Screeny.jpg)

Spoiler: ShowHide
(http://i297.photobucket.com/albums/mm231/TywinLannister/Screeny-1.jpg)



Demo

http://www.sendspace.com/file/mczeau (http://www.sendspace.com/file/mczeau)



Instructions

See the Tywin_Dragon_Genes script header


Compatibility

None that I know of as yet


Credits and Thanks




Author's Notes

Keep an eye for later versions where icons will be used instead of text for splicing, animations when transforming and more user friendly and customizable code.
Title: Re: [VX] - Breath of Fire 3 - Dragon Gene System
Post by: modern algebra on March 28, 2008, 06:53:02 pm
Looks good!
Title: Re: [VX] - Breath of Fire 3 - Dragon Gene System
Post by: nathmatt on April 08, 2008, 05:23:39 pm
ur demos down
Title: Re: [VX] Breath of Fire 3 - Dragon Gene System
Post by: Dils on March 31, 2010, 12:26:16 am
Can you send me the Script please, since your demo doesn't work. Thanx.
Title: Re: [VX] Breath of Fire 3 - Dragon Gene System
Post by: M3T41 AG3 on May 22, 2010, 08:12:56 pm
does any1 have a script or demo for this?
Title: Re: [VX] Breath of Fire 3 - Dragon Gene System
Post by: Jragyn on May 22, 2010, 11:27:45 pm
This forum is pretty inactive in regards to RMVX...
I doubt the user that made this thread even visits here anymore, or has in like, years.

:(


--J
Title: Re: [VX] Breath of Fire 3 - Dragon Gene System
Post by: Garge on May 23, 2010, 04:28:09 pm
Here you go: http://www.mediafire.com/?jiwjtmkmwiy (http://www.mediafire.com/?jiwjtmkmwiy)
Title: Re: [VX] Breath of Fire 3 - Dragon Gene System
Post by: willee02 on August 19, 2010, 11:46:58 pm
This script is awesome !! but can someone please tell me on how to make this work on tanketai side script... it always give me an error at ATB 1.2c ...
  Thanks in advance

#--------------------------------------------------------------------------
  # ● 合体攻撃判定
  #--------------------------------------------------------------------------
  def union_skill?(member)
    # スキルに合体攻撃設定があるかチェック
    for union_action in member.action.skill.union_action
      union_skills = union_action if union_action.size != 0 && union_action.include?(member.action.skill_id)
    end
    return if union_skills == nil
    @partners = []
    @union_targets = union_target_decision(member, member.action.skill)
    @union_target_index = member.action.target_index
    # 合体攻撃メンバーが使用可能かチェック
    for skill_id in union_skills
      for actor in $game_party.members
        if actor.skill_can_use?($data_skills[skill_id]) && actor.skill_id_learn?(skill_id)
          @partners.push(actor)
          actor.union_skill_id = skill_id
        end
      end
    end
    # 合体攻撃使用不可
    if @partners.size != union_skills.size
      for actor in @partners do actor.union_skill_id = 0 end
      @partners = nil
      member.action.clear if !member.action.guard?
      return
    end
    # 合体攻撃使用可
    for actor in @partners
      # パートナーアクション決定
      actor.action.kind = 1
      actor.action.skill_id = actor.union_skill_id
      actor.action.target_index = member.action.target_index
      # コマンド強制キャンセル
      if @command_members.include?(actor)
        force_action_command_cansel(actor)
        start_auto_action(member)
      end
    end
    $in_union_action = true
    @union_size = 0
  end 
  #--------------------------------------------------------------------------
  # ● 合体攻撃可能か
  #--------------------------------------------------------------------------
  def union_possibility?
    return if @partners == nil
    for member in @partners
      union_cansel = true unless member.inputable?
    end
    return if !union_cansel
    end_union_skill
    @active_battler.action.clear if !@active_battler.action.guard?
  end
  #--------------------------------------------------------------------------
  # ● 合体攻撃ターゲット決定
  #--------------------------------------------------------------------------
  def union_target_decision(member, obj)
    targets = member.action.make_targets
    # デフォルトの複数回攻撃が設定されていれば単体ターゲットに変換
    targets = [targets[0]] if obj.for_two? or obj.for_three? or obj.dual?
    # ランダムターゲットの場合、一体を選択しランダム範囲を保持
    if obj.extension.include?("RANDOMTARGET")
      randum_targets = targets.dup
      targets = [randum_targets[rand(randum_targets.size)]]
    end
    # ターゲット情報をバトラースプライトに送る
    @spriteset.set_target(member.actor?, member.index, targets)
    return targets
  end   
  #--------------------------------------------------------------------------
  # ● 合体攻撃処理
  #--------------------------------------------------------------------------
  def process_union_skill
    @union_size += 1
    if @union_size != @partners.size
      return @active_battler.union_battler = true
    end
    # 合体攻撃スタート
    @action_battlers.delete(@active_battler)
    @active_battler.active = false
    @active_battler = @partners.shift
    @active_battler.act_active = true
    @active_battler.active = true
    @active_battler.union_battler = false
    @active_battler.action.kind = 1
    @active_battler.action.skill_id = @active_battler.union_skill_id
    @active_battler.action.target_index = @union_target_index
    for member in @partners
      member.action.kind = 1
      member.action.skill_id = member.union_skill_id
      member.action.target_index = @union_target_index
      member.mp -= member.calc_mp_cost($data_skills[member.action.skill_id]) if member != @active_battler # 3.4a
      member.force_target = ["N01target_change", @union_targets]
      @spriteset.update_target(true, member.index)
      # アクション実行
      @spriteset.set_action(true, member.index, member.action.skill.base_action)
    end
    @status_window.refresh # 3.4a
  end 
  #--------------------------------------------------------------------------
  # ● 合体攻撃終了処理
  #--------------------------------------------------------------------------
  def end_union_skill
    @active_battler.union_skill_id = 0
    @active_battler.union_battler = false
    for member in @partners
      member.union_skill_id = 0
      member.union_battler = false
      member.action.clear
      @action_battlers.delete(member)
      turn_end(member)
    end
    @union_size = 0
    @partners = nil
    $in_union_action = false
  end