Breath of Fire 3 - Dragon Gene System
Authors: TywinLannister
Version: 1.2
Type: Battle Customization
Key Term: Battle Add-on
IntroductionThis 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
- Version 1 - initial release
- Version 1.1 - All genes now have combinations. If a specific combination doesn't exist, the dragon gains abilities based on the genes selected.
- - Gene descriptions are now displayed when selected.
- - Fusion gene has been added (gain abilities based on what characters are in your party)
- Version 1.2 - Fixed a bug where if you exit the dragon gene selection scene you lose the MP
Screenshots(http://i297.photobucket.com/albums/mm231/TywinLannister/Screeny.jpg)
(http://i297.photobucket.com/albums/mm231/TywinLannister/Screeny-1.jpg)
Demohttp://www.sendspace.com/file/mczeau (http://www.sendspace.com/file/mczeau)
InstructionsSee the Tywin_Dragon_Genes script header
CompatibilityNone that I know of as yet
Credits and Thanks
- ElementalCrisis for a simple yet effective side view battle system!
Author's NotesKeep 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.
Looks good!
ur demos down
Can you send me the Script please, since your demo doesn't work. Thanx.
does any1 have a script or demo for this?
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
Here you go: http://www.mediafire.com/?jiwjtmkmwiy (http://www.mediafire.com/?jiwjtmkmwiy)
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