hello egain blizzard :),
well yay the bmg files, on rpg maker when you test sound it doesnt work... i turned on all of the things in volum control and it still doesnt work but whe ni use window media player it works, i tried it on my other pc and it worked on rpg maker also, the time it didnt play bgm( midi) files was when i just entered the script, im not blaming the script because i tried on another computer im just saying how did it turned off? (this computer did played bmg files before)
cheers!!!
by the way: your the best script writer in the world as i knw your cool!!!
edit:And also i found a bug ( well not quite a bug its like unknow to you so its not quite a bug) on soul range thing, i posted it here ause you maybe will not look at the form post again, well anyway here it is, i got a script which will not mix up with soul range, if mixed up it will not use the other script feature and you get turns everytime where the other oppment doesnt get any go. here's the script.
#==============================================================================
# ¦ New_Battle
#------------------------------------------------------------------------------
# Compiled By : MakirouAru
#==============================================================================
# ¥£¥ XRXS_BP 3. Ÿ—˜ŽžHP‰ñ•œ ver.1.01 ¥£¥
# by fukuyama, ÷‰ë Ý“y
# Battle_End_Recovery
#
# 퓬Œã‚̉ñ•œˆ—ƒ‚ƒWƒ…[ƒ‹
#
# Request: stay
# Script: fukuyama
# Test: ƒmƒRƒmŽq
#
# URL: http://www4.big.or.jp/~fukuyama/rgss/Battle_End_Recovery.txt
#
module Battle_End_Recovery
module Scene_Battle_Module
# ‰ñ•œ—¦•Ï”‚ÌID
@@recovery_rate_variable_id = nil
# ‰ñ•œ—¦‚̎擾
def battle_end_recovery_rate
if @@recovery_rate_variable_id.nil?
@@recovery_rate_variable_id =
$data_system.variables.index '퓬Œã‚̉ñ•œ—¦'
if @@recovery_rate_variable_id.nil?
@@recovery_rate_variable_id = false
end
end
return 0 unless @@recovery_rate_variable_id
return $game_variables[@@recovery_rate_variable_id]
end
# 퓬Œã‚̉ñ•œˆ—
def battle_end_recovery
# ‰ñ•œ—¦
recovery_rate = battle_end_recovery_rate
# ‰ñ•œ—¦•Ï”‚ª‚OˆÈŠO‚©‚ƒAƒNƒ^[‚ª¶‘¶‚µ‚Ä‚¢‚éê‡A퓬Œã‚̉ñ•œˆ—‚ðs‚¤
if recovery_rate != 0 and not actor.dead?
# ƒp[ƒeƒB‚̃AƒNƒ^[–ˆ‚Ƀ‹[ƒv
$game_party.actors.each do |actor|
# ‰ñ•œ—ÊŒvŽZ
recovery_hp = (actor.maxhp / 100.0 * recovery_rate).truncate
recovery_sp = (actor.maxsp / 100.0 * recovery_rate).truncate
# ŽÀۂɉñ•œ
actor.hp += recovery_hp
actor.sp += recovery_sp
# ƒAƒjƒ[ƒVƒ‡ƒ“Ý’è
actor.damage = - recovery_hp
actor.damage_pop = true
end
# ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðXV
@status_window.refresh
end
end
end # module Scene_Battle_Module
end # module Battle_End_Recovery
#------------------------------
# 퓬ƒV[ƒ“‚ÌÄ’è‹`
#------------------------------
class Scene_Battle
# Scene_Battle—pƒ‚ƒWƒ…[ƒ‹‚ðƒCƒ“ƒNƒ‹[ƒh
include Battle_End_Recovery::Scene_Battle_Module
# Œ³‚̃tƒF[ƒY‚TŠJŽn‚É•Ê–¼‚ð‚‚¯‚é
alias battle_end_recovery_original_start_phase5 start_phase5
# ƒtƒF[ƒY‚TŠJŽn‚ðÄ’è‹`
def start_phase5
# 퓬Œã‚̉ñ•œˆ—‚ðŒÄ‚Ño‚·
battle_end_recovery
# Œ³‚̃tƒF[ƒY‚TŠJŽn‚ðŒÄ‚Ño‚·
battle_end_recovery_original_start_phase5
end
end
# Battle_End_Recovery
# ¥£¥ XRXS_BP10. LEVEL UP!ƒEƒBƒ“ƒhƒE ¥£¥
# by ÷‰ë Ý“y
$data_system_level_up_se = "" # ƒŒƒxƒ‹ƒAƒbƒvSEB""‚Å–³‚µB
$data_system_level_up_me = "Audio/ME/007-Fanfare01" # ƒŒƒxƒ‹ƒAƒbƒvME
#==============================================================================
# ¡ Window_LevelUpWindow
#------------------------------------------------------------------------------
# @ƒoƒgƒ‹I—¹ŽžAƒŒƒxƒ‹ƒAƒbƒv‚µ‚½ê‡‚ɃXƒe[ƒ^ƒX‚ð•\Ž¦‚·‚éƒEƒBƒ“ƒhƒE‚Å‚·B
#==============================================================================
class Window_LevelUpWindow < Window_Base
#--------------------------------------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
#--------------------------------------------------------------------------
def initialize(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
super(0, 128, 160, 192)
self.contents = Bitmap.new(width - 32, height - 32)
self.visible = false
refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
end
#--------------------------------------------------------------------------
# œ ƒŠƒtƒŒƒbƒVƒ…
#--------------------------------------------------------------------------
def refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
self.contents.clear
self.contents.font.color = system_color
self.contents.font.name = "Arial"
self.contents.font.size = 14
self.contents.draw_text( 0, 0, 160, 24, "LEVEL UP!!")
self.contents.font.size = 18
self.contents.draw_text( 0, 28, 160, 24, $data_system.words.hp)
self.contents.draw_text( 0, 50, 160, 24, $data_system.words.sp)
self.contents.font.size = 14
self.contents.draw_text( 0, 72, 80, 24, $data_system.words.str)
self.contents.draw_text( 0, 94, 80, 24, $data_system.words.dex)
self.contents.draw_text( 0, 116, 80, 24, $data_system.words.agi)
self.contents.draw_text( 0, 138, 80, 24, $data_system.words.int)
self.contents.draw_text(92, 0, 128, 24, "¨")
self.contents.draw_text(76, 28, 128, 24, "=")
self.contents.draw_text(76, 50, 128, 24, "=")
self.contents.draw_text(76, 72, 128, 24, "=")
self.contents.draw_text(76, 94, 128, 24, "=")
self.contents.draw_text(76, 116, 128, 24, "=")
self.contents.draw_text(76, 138, 128, 24, "=")
self.contents.font.color = normal_color
self.contents.draw_text( 0, 0, 88, 24, last_lv.to_s, 2)
self.contents.draw_text( 0, 28, 72, 24, "+" + up_hp.to_s, 2)
self.contents.draw_text( 0, 50, 72, 24, "+" + up_sp.to_s, 2)
self.contents.draw_text( 0, 72, 72, 24, "+" + up_str.to_s, 2)
self.contents.draw_text( 0, 94, 72, 24, "+" + up_dex.to_s, 2)
self.contents.draw_text( 0, 116, 72, 24, "+" + up_agi.to_s, 2)
self.contents.draw_text( 0, 138, 72, 24, "+" + up_int.to_s, 2)
self.contents.font.size = 20
self.contents.draw_text( 0, 0, 128, 24, actor.level.to_s, 2)
self.contents.draw_text( 0, 26, 128, 24, actor.maxhp.to_s, 2)
self.contents.draw_text( 0, 48, 128, 24, actor.maxsp.to_s, 2)
self.contents.draw_text( 0, 70, 128, 24, actor.str.to_s, 2)
self.contents.draw_text( 0, 92, 128, 24, actor.dex.to_s, 2)
self.contents.draw_text( 0, 114, 128, 24, actor.agi.to_s, 2)
self.contents.draw_text( 0, 136, 128, 24, actor.int.to_s, 2)
end
end
#==============================================================================
# ¡ Window_BattleStatus
#==============================================================================
class Window_BattleStatus < Window_Base
#--------------------------------------------------------------------------
# œ ’ljÁEŒöŠJƒCƒ“ƒXƒ^ƒ“ƒX•Ï”
#--------------------------------------------------------------------------
attr_accessor :level_up_flags # LEVEL UP!•\Ž¦
end
#==============================================================================
# ¡ Game_Battler
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# œ ’ljÁEŒöŠJƒCƒ“ƒXƒ^ƒ“ƒX•Ï”
#--------------------------------------------------------------------------
attr_accessor :exp_gain_ban # EXPŽæ“¾ˆêŽž‹ÖŽ~
#--------------------------------------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
#--------------------------------------------------------------------------
alias xrxs_bp10_initialize initialize
def initialize
@exp_gain_ban = false
xrxs_bp10_initialize
end
#--------------------------------------------------------------------------
# œ ƒXƒe[ƒg [EXP ‚ðŠl“¾‚Å‚«‚È‚¢] ”»’è
#--------------------------------------------------------------------------
alias xrxs_bp10_cant_get_exp? cant_get_exp?
def cant_get_exp?
if @exp_gain_ban == true
return true
else
return xrxs_bp10_cant_get_exp?
end
end
end
#==============================================================================
# ¡ Scene_Battle
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# œ ƒAƒtƒ^[ƒoƒgƒ‹ƒtƒF[ƒYŠJŽn
#--------------------------------------------------------------------------
alias xrxs_bp10_start_phase5 start_phase5
def start_phase5
# EXP Šl“¾‹ÖŽ~
for i in 0...$game_party.actors.size
$game_party.actors[i].exp_gain_ban = true
end
xrxs_bp10_start_phase5
# EXP Šl“¾‹ÖŽ~‚̉ðœ
for i in 0...$game_party.actors.size
$game_party.actors[i].exp_gain_ban = false
end
# EXP‚ð‰Šú‰»
@exp_gained = 0
for enemy in $game_troop.enemies
# Šl“¾ EXP‚ð’ljÁ # ƒGƒlƒ~[‚ª‰B‚êó‘Ô‚Å‚È‚¢ê‡
@exp_gained += enemy.exp if not enemy.hidden
end
# Ý’è
@phase5_step = 0
@exp_gain_actor = -1
# ƒŠƒUƒ‹ƒgƒEƒBƒ“ƒhƒE‚ð•\Ž¦
@result_window.y -= 64
@result_window.visible = true
# ƒŒƒxƒ‹ƒAƒbƒv”»’è‚Ö
phase5_next_levelup
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒAƒtƒ^[ƒoƒgƒ‹ƒtƒF[ƒY)
#--------------------------------------------------------------------------
alias xrxs_bp10_update_phase5 update_phase5
def update_phase5
case @phase5_step
when 1
update_phase5_step1
else
xrxs_bp10_update_phase5
# ƒŒƒxƒ‹ƒAƒbƒv‚µ‚Ä‚¢‚éꇂ͋§ƒoƒgƒ‹I—¹
battle_end(0) if @levelup_window != nil and @phase5_wait_count <= 0
end
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒAƒtƒ^[ƒoƒgƒ‹ƒtƒF[ƒY 1 : ƒŒƒxƒ‹ƒAƒbƒv)
#--------------------------------------------------------------------------
def update_phase5_step1
# C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::C)
# ƒEƒBƒ“ƒhƒE‚ð•Â‚¶‚ÄŽŸ‚̃AƒNƒ^[‚Ö
@levelup_window.visible = false if @levelup_window != nil
@status_window.level_up_flags[@exp_gain_actor] = false
phase5_next_levelup
end
end
#--------------------------------------------------------------------------
# œ ŽŸ‚̃AƒNƒ^[‚̃Œƒxƒ‹ƒAƒbƒv•\Ž¦‚Ö
#--------------------------------------------------------------------------
def phase5_next_levelup
begin
# ŽŸ‚̃AƒNƒ^[‚Ö
@exp_gain_actor += 1
# ÅŒã‚̃AƒNƒ^[‚Ìê‡
if @exp_gain_actor >= $game_party.actors.size
# ƒAƒtƒ^[ƒoƒgƒ‹ƒtƒF[ƒYŠJŽn
@phase5_step = 0
return
end
actor = $game_party.actors[@exp_gain_actor]
if actor.cant_get_exp? == false
# Œ»Ý‚Ì”\—Í’l‚ð•ÛŽ
last_level = actor.level
last_maxhp = actor.maxhp
last_maxsp = actor.maxsp
last_str = actor.str
last_dex = actor.dex
last_agi = actor.agi
last_int = actor.int
# ŒoŒ±’lŽæ“¾‚ÌŒˆ’è“IuŠÔ(“ä
actor.exp += @exp_gained
# ”»’è
if actor.level > last_level
# ƒŒƒxƒ‹ƒAƒbƒv‚µ‚½ê‡
@status_window.level_up(@exp_gain_actor)
if $data_system_level_up_se != ""
Audio.se_stop
Audio.se_play($data_system_level_up_se)
end
if $data_system_level_up_me != ""
Audio.me_stop
Audio.me_play($data_system_level_up_me)
end
@levelup_window = Window_LevelUpWindow.new(actor, last_level,
actor.maxhp - last_maxhp, actor.maxsp - last_maxsp, actor.str - last_str,
actor.dex - last_dex, actor.agi - last_agi, actor.int - last_int)
@levelup_window.x = 160 * @exp_gain_actor
@levelup_window.visible = true
@phase5_wait_count = 40
@phase5_step = 1
# ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðƒŠƒtƒŒƒbƒVƒ…
@status_window.refresh
return
end
end
end until false
end
end
# ¥£¥ XRXS_17. ƒXƒŠƒbƒvƒ_ƒ[ƒW–hŒä^Œø‰Ê—ÊÚ׉» ver.1.51 ¥£¥
# by ÷‰ë Ý“y, fukuyama
#==============================================================================
# ¡ Game_Battler
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# œ ƒXƒŠƒbƒvƒ_ƒ[ƒW‚ÌŒø‰Ê“K—p
#--------------------------------------------------------------------------
alias xrxs_bp7_slip_damage_effect slip_damage_effect
def slip_damage_effect
# ”’l‚̉Šú‰»
slip_damage_percent = 0
slip_damage_plus = 0
# Œ»Ý•t‰Á‚³‚ê‚Ä‚¢‚éƒXƒe[ƒg‚Ì’†‚©‚çƒXƒŠƒbƒvƒ_ƒ[ƒW—L‚è‚̃‚ƒm‚ð’T‚·
for i in @states
if $data_states[i].slip_damage
# ‚»‚̃Xƒe[ƒg‚ªŽ‚Á‚Ä‚¢‚éƒXƒŠƒbƒvƒ_ƒ[ƒW‚Ì
# Lvƒvƒ‰ƒXƒXƒe[ƒg‚Ü‚½‚ÍLvƒ}ƒCƒiƒXƒXƒe[ƒg‚ð”»’èB
for j in $data_states[i].plus_state_set
if $data_states[j] != nil
if $data_states[j].name =~ /^ƒXƒŠƒbƒv([0-9]+)(%|“)/
slip_damage_percent += $1.to_i
elsif $data_states[j].name =~ /^ƒXƒŠƒbƒv([0-9]+)$/
slip_damage_plus += $1.to_i
end
end
end
for j in $data_states[i].minus_state_set
if $data_states[j] != nil
if $data_states[j].name =~ /^ƒXƒŠƒbƒv([0-9]+)(%|“)/
slip_damage_percent -= $1.to_i
elsif $data_states[j].name =~ /^ƒXƒŠƒbƒv([0-9]+)$/
slip_damage_plus -= $1.to_i
end
end
end
end
end
if slip_damage_percent == 0 and slip_damage_plus == 0
xrxs_bp7_slip_damage_effect
else
# –h‹ï‚ªƒXƒŠƒbƒv–hŒä‚ª‚ ‚éꇂ𔻒è
for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
armor = $data_armors[i]
next if armor == nil
for j in armor.guard_state_set
if $data_states[j] != nil
if $data_states[j].name =~ /^ƒXƒŠƒbƒv([0-9]+)(%|“)/
if slip_damage_percent > 0
slip_damage_percent = [slip_damage_percent - $1.to_i, 0].max
end
end
if $data_states[j].name =~ /^ƒXƒŠƒbƒv([0-9]+)$/
if slip_damage_percent > 0
slip_damage_plus = [slip_damage_plus - $1.to_i, 0].max
end
end
end
end
end
# ƒ_ƒ[ƒW‚ðÝ’è
self.damage = self.maxhp * slip_damage_percent / 100 + slip_damage_plus
# •ªŽU
if self.damage.abs > 0
amp = [self.damage.abs * 15 / 100, 1].max
self.damage += rand(amp+1) + rand(amp+1) - amp
end
# HP ‚©‚çƒ_ƒ[ƒW‚ðŒ¸ŽZ
self.hp -= self.damage
# ƒƒ\ƒbƒhI—¹
return true
end
end
end
# ¥£¥ XRXS_BP 1. CP§“±“ü ver.15 ¥£¥
# by ÷‰ë Ý“y, ˜aŠó, Jack-R
#==============================================================================
# ¡ Scene_Battle_CP
#==============================================================================
class Scene_Battle_CP
#--------------------------------------------------------------------------
# œ ŒöŠJƒCƒ“ƒXƒ^ƒ“ƒX•Ï”
#--------------------------------------------------------------------------
attr_accessor :stop # CP‰ÁŽZƒXƒgƒbƒv
#----------------------------------------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg‚̉Šú‰»
#----------------------------------------------------------------------------
def initialize
@battlers = []
@cancel = false
@agi_total = 0
# ”z—ñ @count_battlers ‚ð‰Šú‰»
@count_battlers = []
# ƒGƒlƒ~[‚ð”z—ñ @count_battlers ‚ɒljÁ
for enemy in $game_troop.enemies
@count_battlers.push(enemy)
end
# ƒAƒNƒ^[‚ð”z—ñ @count_battlers ‚ɒljÁ
for actor in $game_party.actors
@count_battlers.push(actor)
end
for battler in @count_battlers
@agi_total += battler.agi
end
for battler in @count_battlers
battler.cp = [[65535 * (rand(15) + 85) / 100 * battler.agi / @agi_total * 4, 0].max, 65535].min
end
end
#----------------------------------------------------------------------------
# œ CPƒJƒEƒ“ƒg‚ÌŠJŽn
#----------------------------------------------------------------------------
def start
if @cp_thread != nil then
return
end
@cancel = false
@stop = false
# ‚±‚±‚©‚çƒXƒŒƒbƒh
@cp_thread = Thread.new do
while @cancel != true
if @stop != true
self.update # XV
sleep(0.05)
end
end
end
# ‚±‚±‚܂ŃXƒŒƒbƒh
end
#----------------------------------------------------------------------------
# œ CPƒJƒEƒ“ƒgƒAƒbƒv
#----------------------------------------------------------------------------
def update
if @count_battlers != nil then
for battler in @count_battlers
# s“®o—ˆ‚È‚¯‚ê‚Ζ³Ž‹
if battler.dead? == true #or battler.movable? == false then
battler.cp = 0
next
end
# ‚±‚±‚Ì 1.3‚ð•Ï‚¦‚邱‚Æ‚Å«ƒXƒs[ƒh‚ð•ÏX‰Â”\B‚½‚¾‚µ¬”“_‚ÍŽg—p‚·‚邱‚ÆB
battler.cp = [[battler.cp + 1.3 * 4096 * battler.agi / @agi_total, 0].max, 65535].min
end
end
end
#----------------------------------------------------------------------------
# œ CPƒJƒEƒ“ƒg‚ÌŠJŽn
#----------------------------------------------------------------------------
def stop
@cancel = true
if @cp_thread != nil then
@cp_thread.join
@cp_thread = nil
end
end
end
#==============================================================================
# ¡ Game_Battler
#==============================================================================
class Game_Battler
attr_accessor :now_guarding # Œ»Ý–hŒä’†ƒtƒ‰ƒO
attr_accessor :cp # Œ»ÝCP
attr_accessor :slip_state_update_ban # ƒXƒŠƒbƒvEƒXƒe[ƒgŽ©“®ˆ—‚Ì‹ÖŽ~
#--------------------------------------------------------------------------
# œ ƒRƒ}ƒ“ƒh“ü—͉”\”»’è
#--------------------------------------------------------------------------
def inputable?
return (not @hidden and restriction <= 1 and @cp >=65535)
end
#--------------------------------------------------------------------------
# œ ƒXƒe[ƒg [ƒXƒŠƒbƒvƒ_ƒ[ƒW] ”»’è
#--------------------------------------------------------------------------
alias xrxs_bp1_slip_damage? slip_damage?
def slip_damage?
return false if @slip_state_update_ban
return xrxs_bp1_slip_damage?
end
#--------------------------------------------------------------------------
# œ ƒXƒe[ƒgŽ©‘R‰ðœ (ƒ^[ƒ“‚²‚ƂɌĂÑo‚µ)
#--------------------------------------------------------------------------
alias xrxs_bp1_remove_states_auto remove_states_auto
def remove_states_auto
return if @slip_state_update_ban
xrxs_bp1_remove_states_auto
end
end
#==============================================================================
# ¡ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# œ ƒZƒbƒgƒAƒbƒv
#--------------------------------------------------------------------------
alias xrxs_bp1_setup setup
def setup(actor_id)
xrxs_bp1_setup(actor_id)
@hate = 100 # init-value is 100
@cp = 0
@now_guarding = false
@slip_state_update_ban = false
end
end
#==============================================================================
# ¡ Game_Enemy
#==============================================================================
class Game_Enemy < Game_Battler
#--------------------------------------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
#--------------------------------------------------------------------------
alias xrxs_bp1_initialize initialize
def initialize(troop_id, member_index)
xrxs_bp1_initialize(troop_id, member_index)
@hate = 100 # init-value is 100
@cp = 0
@now_guarding = false
@slip_state_update_ban = false
end
end
#==============================================================================
# ¡ Window_BattleStatus
#==============================================================================
class Window_BattleStatus < Window_Base
#--------------------------------------------------------------------------
# œ ŒöŠJƒCƒ“ƒXƒ^ƒ“ƒX•Ï”
#--------------------------------------------------------------------------
attr_accessor :update_cp_only # CPƒ[ƒ^[‚Ì‚Ý‚ÌXV
#--------------------------------------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
#--------------------------------------------------------------------------
alias xrxs_bp1_initialize initialize
def initialize
@update_cp_only = false
xrxs_bp1_initialize
end
#--------------------------------------------------------------------------
# œ ƒŠƒtƒŒƒbƒVƒ…
#--------------------------------------------------------------------------
alias xrxs_bp1_refresh refresh
def refresh
if @update_cp_only == false
xrxs_bp1_refresh
end
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
actor_x = i * 160 + 4
draw_actor_cp_meter(actor, actor_x, 96, 120, 0)
end
end
#--------------------------------------------------------------------------
# œ CPƒ[ƒ^[ ‚Ì•`‰æ
#--------------------------------------------------------------------------
def draw_actor_cp_meter(actor, x, y, width = 156, type = 0)
self.contents.font.color = system_color
self.contents.fill_rect(x-1, y+27, width+2,6, Color.new(0, 0, 0, 255))
if actor.cp == nil
actor.cp = 0
end
w = width * [actor.cp,65535].min / 65535
self.contents.fill_rect(x, y+28, w,1, Color.new(255, 255, 128, 255))
self.contents.fill_rect(x, y+29, w,1, Color.new(255, 255, 0, 255))
self.contents.fill_rect(x, y+30, w,1, Color.new(192, 192, 0, 255))
self.contents.fill_rect(x, y+31, w,1, Color.new(128, 128, 0, 255))
end
end
#==============================================================================
# ¡ Scene_Battle
#==============================================================================
class Scene_Battle
# ‚±‚±‚ÉŒø‰Ê‰¹‚ðÝ’è‚·‚é‚ÆAƒAƒNƒ^[ƒRƒ}ƒ“ƒh‚ªƒ|ƒbƒv‚µ‚½‚Æ‚«‚ÉŒø‰Ê‰¹‚ðĶ
$data_system_command_up_se = ""
#--------------------------------------------------------------------------
# œ ƒoƒgƒ‹I—¹
# result : Œ‹‰Ê (0:Ÿ—˜ 1:”s–k 2:“¦‘–)
#--------------------------------------------------------------------------
alias xrxs_bp1_battle_end battle_end
def battle_end(result)
# CPƒJƒEƒ“ƒg’âŽ~
@cp_thread.stop
xrxs_bp1_battle_end(result)
end
#--------------------------------------------------------------------------
# œ ƒvƒŒƒoƒgƒ‹ƒtƒF[ƒYŠJŽn
#--------------------------------------------------------------------------
alias xrxs_bp1_start_phase1 start_phase1
def start_phase1
@agi_total = 0
@cp_thread = Scene_Battle_CP.new
# ƒAƒNƒ^[ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ðÄì¬
s1 = $data_system.words.attack
s2 = $data_system.words.skill
s3 = $data_system.words.guard
s4 = $data_system.words.item
@actor_command_window = Window_Command.new(160, [s1, s2, s3, s4, "Run"])
@actor_command_window.y = 128
@actor_command_window.back_opacity = 160
@actor_command_window.active = false
@actor_command_window.visible = false
@actor_command_window.draw_item(4, $game_temp.battle_can_escape ? @actor_command_window.normal_color : @actor_command_window.disabled_color)
xrxs_bp1_start_phase1
end
#--------------------------------------------------------------------------
# œ ƒp[ƒeƒBƒRƒ}ƒ“ƒhƒtƒF[ƒYŠJŽn
#--------------------------------------------------------------------------
alias xrxs_bp1_start_phase2 start_phase2
def start_phase2
xrxs_bp1_start_phase2
@party_command_window.active = false
@party_command_window.visible = false
# ŽŸ‚Ö
start_phase3
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒp[ƒeƒBƒRƒ}ƒ“ƒhƒtƒF[ƒY)
#--------------------------------------------------------------------------
alias xrxs_bp1_update_phase2 update_phase2
def update_phase2
# C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::C)
# ƒp[ƒeƒBƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚̃J[ƒ\ƒ‹ˆÊ’u‚Å•ªŠò
case @party_command_window.index
when 0 # 키
# Œˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
@cp_thread.start
# ƒAƒNƒ^[ƒRƒ}ƒ“ƒhƒtƒF[ƒYŠJŽn
start_phase3
end
return
end
xrxs_bp1_update_phase2
end
#--------------------------------------------------------------------------
# œ ŽŸ‚̃AƒNƒ^[‚̃Rƒ}ƒ“ƒh“ü—Í‚Ö
#--------------------------------------------------------------------------
def phase3_next_actor
# ƒ‹[ƒv
begin
# ƒAƒNƒ^[‚Ì–¾–ŃGƒtƒFƒNƒg OFF
if @active_battler != nil
@active_battler.blink = false
end
# ÅŒã‚̃AƒNƒ^[‚Ìê‡
if @actor_index == $game_party.actors.size-1
# ƒƒCƒ“ƒtƒF[ƒYŠJŽn
@cp_thread.start
start_phase4
return
end
# ƒAƒNƒ^[‚̃Cƒ“ƒfƒbƒNƒX‚ði‚ß‚é
@actor_index += 1
@active_battler = $game_party.actors[@actor_index]
@active_battler.blink = true
if @active_battler.inputable? == false
@active_battler.current_action.kind = -1
end
# ƒAƒNƒ^[‚ªƒRƒ}ƒ“ƒh“ü—Í‚ðŽó‚¯•t‚¯‚È‚¢ó‘Ô‚È‚ç‚à‚¤ˆê“x
end until @active_battler.inputable?
@cp_thread.stop
# ƒAƒNƒ^[ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ðƒZƒbƒgƒAƒbƒv
@active_battler.now_guarding = false
phase3_setup_command_window
end
#--------------------------------------------------------------------------
# œ ‘O‚̃AƒNƒ^[‚̃Rƒ}ƒ“ƒh“ü—Í‚Ö
#--------------------------------------------------------------------------
def phase3_prior_actor
# ƒ‹[ƒv
begin
# ƒAƒNƒ^[‚Ì–¾–ŃGƒtƒFƒNƒg OFF
if @active_battler != nil
@active_battler.blink = false
end
# ʼn‚̃AƒNƒ^[‚Ìê‡
if @actor_index == 0
# ʼn‚Ö–ß‚é
start_phase3
return
end
# ƒAƒNƒ^[‚̃Cƒ“ƒfƒbƒNƒX‚ð–ß‚·
@actor_index -= 1
@active_battler = $game_party.actors[@actor_index]
@active_battler.blink = true
# ƒAƒNƒ^[‚ªƒRƒ}ƒ“ƒh“ü—Í‚ðŽó‚¯•t‚¯‚È‚¢ó‘Ô‚È‚ç‚à‚¤ˆê“x
end until @active_battler.inputable?
@cp_thread.stop
# ƒAƒNƒ^[ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚ðƒZƒbƒgƒAƒbƒv
@active_battler.now_guarding = false
phase3_setup_command_window
end
#--------------------------------------------------------------------------
# œ ƒAƒNƒ^[ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚̃ZƒbƒgƒAƒbƒv
#--------------------------------------------------------------------------
alias xrxs_bp1_phase3_setup_command_window phase3_setup_command_window
def phase3_setup_command_window
# Œø‰Ê‰¹‚ÌĶ
Audio.se_play($data_system_command_up_se) if $data_system_command_up_se != ""
# –ß‚·
xrxs_bp1_phase3_setup_command_window
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒAƒNƒ^[ƒRƒ}ƒ“ƒhƒtƒF[ƒY : Šî–{ƒRƒ}ƒ“ƒh)
#--------------------------------------------------------------------------
alias xrxs_bsp1_update_phase3_basic_command update_phase3_basic_command
def update_phase3_basic_command
# C ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::C)
# ƒAƒNƒ^[ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚̃J[ƒ\ƒ‹ˆÊ’u‚Å•ªŠò
case @actor_command_window.index
when 4 # “¦‚°‚é
if $game_temp.battle_can_escape
# Œˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒAƒNƒVƒ‡ƒ“‚ðÝ’è
@active_battler.current_action.kind = 0
@active_battler.current_action.basic = 4
# ŽŸ‚̃AƒNƒ^[‚̃Rƒ}ƒ“ƒh“ü—Í‚Ö
phase3_next_actor
else
# ƒuƒU[ SE ‚ð‰‰‘t
$game_system.se_play($data_system.buzzer_se)
end
return
end
end
xrxs_bsp1_update_phase3_basic_command
end
#--------------------------------------------------------------------------
# œ ƒƒCƒ“ƒtƒF[ƒYŠJŽn
#--------------------------------------------------------------------------
alias xrxs_bp1_start_phase4 start_phase4
def start_phase4
xrxs_bp1_start_phase4
# ƒGƒlƒ~[ƒAƒNƒVƒ‡ƒ“ì¬
for enemy in $game_troop.enemies
if enemy.cp < 65535
enemy.current_action.clear
enemy.current_action.kind = -1 # ƒ^[ƒ“”ò‚΂µB
next
end
enemy.make_action
end
# s“®‡˜ì¬
make_action_orders
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒƒCƒ“ƒtƒF[ƒY ƒXƒeƒbƒv 1 : ƒAƒNƒVƒ‡ƒ“€”õ)
#--------------------------------------------------------------------------
alias xrxs_bp1_update_phase4_step1 update_phase4_step1
def update_phase4_step1
# ‰Šú‰»
@phase4_act_continuation = 0
# Ÿ”s”»’è
if judge
@cp_thread.stop
# Ÿ—˜‚Ü‚½‚Í”s–k‚Ìê‡ : ƒƒ\ƒbƒhI—¹
return
end
# –¢s“®ƒoƒgƒ‰[”z—ñ‚Ì擪‚©‚çŽæ“¾
@active_battler = @action_battlers[0]
# ƒXƒe[ƒ^ƒXXV‚ðCP‚¾‚¯‚ÉŒÀ’èB
@status_window.update_cp_only = true
# ƒXƒe[ƒgXV‚ð‹ÖŽ~B
@active_battler.slip_state_update_ban = true if @active_battler != nil
# –ß‚·
xrxs_bp1_update_phase4_step1
# ‹ÖŽ~‚ð‰ðœ
@status_window.update_cp_only = false
@active_battler.slip_state_update_ban = false if @active_battler != nil
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒƒCƒ“ƒtƒF[ƒY ƒXƒeƒbƒv 2 : ƒAƒNƒVƒ‡ƒ“ŠJŽn)
#--------------------------------------------------------------------------
alias xrxs_bp1_update_phase4_step2 update_phase4_step2
def update_phase4_step2
# ‹§ƒAƒNƒVƒ‡ƒ“‚Å‚È‚¯‚ê‚Î
unless @active_battler.current_action.forcing
# CP‚ª‘«‚è‚Ä‚¢‚È‚¢ê‡
if @phase4_act_continuation == 0 and @active_battler.cp < 65535
@phase4_step = 6
return
end
# §–ñ‚ª [“G‚ð’ÊíUŒ‚‚·‚é] ‚© [–¡•û‚ð’ÊíUŒ‚‚·‚é] ‚Ìê‡
if @active_battler.restriction == 2 or @active_battler.restriction == 3
# ƒAƒNƒVƒ‡ƒ“‚ÉUŒ‚‚ðÝ’è
@active_battler.current_action.kind = 0
@active_battler.current_action.basic = 0
end
# §–ñ‚ª [s“®‚Å‚«‚È‚¢] ‚Ìê‡
if @active_battler.restriction == 4
# ƒAƒNƒVƒ‡ƒ“‹§‘Îۂ̃oƒgƒ‰[‚ðƒNƒŠƒA
$game_temp.forcing_battler = nil
if @phase4_act_continuation == 0 and @active_battler.cp >= 65535
# ƒXƒe[ƒgŽ©‘R‰ðœ
@active_battler.remove_states_auto
# CPÁ”ï
@active_battler.cp = [(@active_battler.cp - 65535),0].max
# ƒXƒe[ƒ^ƒXƒEƒBƒ“ƒhƒE‚ðƒŠƒtƒŒƒbƒVƒ…
@status_window.refresh
end
# ƒXƒeƒbƒv 1 ‚ɈÚs
@phase4_step = 1
return
end
end
# ƒAƒNƒVƒ‡ƒ“‚ÌŽí•Ê‚Å•ªŠò
case @active_battler.current_action.kind
when 0
# UŒ‚¥–hŒäE“¦‚°‚éE‰½‚à‚µ‚È‚¢Žž‚Ì‹¤’ÊÁ”ïCP
@active_battler.cp -= 0 if @phase4_act_continuation == 0
when 1
# ƒXƒLƒ‹Žg—pŽž‚ÌÁ”ïCP
@active_battler.cp -= 65535 if @phase4_act_continuation == 0
when 2
# ƒAƒCƒeƒ€Žg—pŽž‚ÌÁ”ïCP
@active_battler.cp -= 65535 if @phase4_act_continuation == 0
when -1
# CP‚ª—‚Ü‚Á‚Ä‚¢‚È‚¢
@phase4_step = 6
return
end
# CP‰ÁŽZ‚ðˆêŽž’âŽ~‚·‚é
@cp_thread.stop = true
# ƒXƒe[ƒgŽ©‘R‰ðœ
@active_battler.remove_states_auto
xrxs_bp1_update_phase4_step2
end
#--------------------------------------------------------------------------
# œ Šî–{ƒAƒNƒVƒ‡ƒ“ Œ‹‰Êì¬
#--------------------------------------------------------------------------
alias xrxs_bp1_make_basic_action_result make_basic_action_result
def make_basic_action_result
# UŒ‚‚Ìê‡
if @active_battler.current_action.basic == 0 and @phase4_act_continuation == 0
@active_battler.cp -= 65535 # UŒ‚Žž‚ÌCPÁ”ï
end
# –hŒä‚Ìê‡
if @active_battler.current_action.basic == 1 and @phase4_act_continuation == 0
@active_battler.cp -= 32767 # –hŒäŽž‚ÌCPÁ”ï
end
# “G‚Ì“¦‚°‚é‚Ìê‡
if @active_battler.is_a?(Game_Enemy) and
@active_battler.current_action.basic == 2 and @phase4_act_continuation == 0
@active_battler.cp -= 65535 # “¦‘–Žž‚ÌCPÁ”ï
end
# ‰½‚à‚µ‚È‚¢‚Ìê‡
if @active_battler.current_action.basic == 3 and @phase4_act_continuation == 0
@active_battler.cp -= 32767 # ‰½‚à‚µ‚È‚¢Žž‚ÌCPÁ”ï
end
# “¦‚°‚é‚Ìê‡
if @active_battler.current_action.basic == 4 and @phase4_act_continuation == 0
@active_battler.cp -= 65535 # “¦‘–Žž‚ÌCPÁ”ï
# “¦‘–‰Â”\‚Å‚Í‚È‚¢ê‡
if $game_temp.battle_can_escape == false
# ƒuƒU[ SE ‚ð‰‰‘t
$game_system.se_play($data_system.buzzer_se)
return
end
# Œˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# “¦‘–ˆ—
update_phase2_escape
return
end
xrxs_bp1_make_basic_action_result
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒƒCƒ“ƒtƒF[ƒY ƒXƒeƒbƒv 5 : ƒ_ƒ[ƒW•\Ž¦)
#--------------------------------------------------------------------------
alias xrxs_bp1_update_phase4_step5 update_phase4_step5
def update_phase4_step5
# ƒXƒŠƒbƒvƒ_ƒ[ƒW
if @active_battler.hp > 0 and @active_battler.slip_damage?
@active_battler.slip_damage_effect
@active_battler.damage_pop = true
end
xrxs_bp1_update_phase4_step5
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒƒCƒ“ƒtƒF[ƒY ƒXƒeƒbƒv 6 : ƒŠƒtƒŒƒbƒVƒ…)
#--------------------------------------------------------------------------
alias xrxs_bp1_update_phase4_step6 update_phase4_step6
def update_phase4_step6
# CP‰ÁŽZ‚ðÄŠJ‚·‚é
@cp_thread.stop = false
# ƒwƒ‹ƒvƒEƒBƒ“ƒhƒE‚ð‰B‚·
@help_window.visible = false
xrxs_bp1_update_phase4_step6
end
end
# ¥£¥ XRXS_BP 7. ƒoƒgƒ‹ƒXƒe[ƒ^ƒXEƒNƒŠƒAƒfƒUƒCƒ“ ver.1.02 ¥£¥
# by ÷‰ë Ý“y, TOMY
#==============================================================================
# ¡ Window_BattleStatus
#==============================================================================
class Window_BattleStatus < Window_Base
#--------------------------------------------------------------------------
# œ ŒöŠJƒCƒ“ƒXƒ^ƒ“ƒX•Ï”
#--------------------------------------------------------------------------
attr_accessor :update_cp_only # CPƒ[ƒ^[‚Ì‚Ý‚ÌXV
#--------------------------------------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
#--------------------------------------------------------------------------
alias xrxs_bp7_initialize initialize
def initialize
xrxs_bp7_initialize
# «Full-View‚Ìꇂ͉º“ñs‚Ì # ‚ðÁ‚µ‚Ä‚‚¾‚³‚¢B
#self.opacity = 0
#self.back_opacity = 0
end
#--------------------------------------------------------------------------
# œ ƒŠƒtƒŒƒbƒVƒ…
#--------------------------------------------------------------------------
alias xrxs_bp7_refresh refresh
def refresh
if @update_cp_only
xrxs_bp7_refresh
return
end
# •`ŽÊ‚ð‹ÖŽ~‚µ‚È‚ª‚ç–ß‚·
@draw_ban = true
xrxs_bp7_refresh
# •`ŽÊ‚Ì‹ÖŽ~‚ð‰ðœ
@draw_ban = false
# •`ŽÊ‚ðŠJŽn
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
actor_x = i * 160 + 21
# •àsƒLƒƒƒ‰ƒOƒ‰ƒtƒBƒbƒN‚Ì•`ŽÊ
draw_actor_graphic(actor, actor_x - 9, 116)
# HP/SPƒ[ƒ^[‚Ì•`ŽÊ
draw_actor_hp_meter_line(actor, actor_x, 72, 96, 12)
draw_actor_sp_meter_line(actor, actor_x, 104, 96, 12)
# HP”’l‚Ì•`ŽÊ
self.contents.font.size = 24 # HP/SP”’l‚Ì•¶Žš‚Ì‘å‚«‚³
self.contents.font.color = actor.hp == 0 ? knockout_color :
actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
draw_shadow_text(actor_x-2, 58, 96, 24, actor.hp.to_s, 2)
# SP”’l‚Ì•`ŽÊ
self.contents.font.color = actor.sp == 0 ? knockout_color :
actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
draw_shadow_text(actor_x-2, 90, 96, 24, actor.sp.to_s, 2)
# —pŒêuHPv‚Æ—pŒêuSPv‚Ì•`ŽÊ
self.contents.font.size = 12 # —pŒêuHP/SPv‚Ì•¶Žš‚Ì‘å‚«‚³
self.contents.font.color = system_color # —pŒêuHP/SPv‚Ì•¶Žš‚ÌF
draw_shadow_text(actor_x, 60, 96, 12, $data_system.words.hp)
draw_shadow_text(actor_x, 92, 96, 12, $data_system.words.sp)
draw_actor_state(actor, actor_x, 100)
end
end
end
#==============================================================================
# ¡ Window_Base
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# œ HPƒ[ƒ^[ ‚Ì•`‰æ
#--------------------------------------------------------------------------
def draw_actor_hp_meter_line(actor, x, y, width = 156, height = 4)
w = width * actor.hp / actor.maxhp
hp_color_1 = Color.new(255, 0, 0, 192)
hp_color_2 = Color.new(255, 255, 0, 192)
self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
x -= 1
y += (height/4).floor
self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
x -= 1
y += (height/4).ceil
self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
x -= 1
y += (height/4).ceil
self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
end
#--------------------------------------------------------------------------
# œ SPƒ[ƒ^[ ‚Ì•`‰æ
#--------------------------------------------------------------------------
def draw_actor_sp_meter_line(actor, x, y, width = 156, height = 4)
w = width * actor.sp / actor.maxsp
hp_color_1 = Color.new( 0, 0, 255, 192)
hp_color_2 = Color.new( 0, 255, 255, 192)
self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
x -= 1
y += (height/4).floor
self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
x -= 1
y += (height/4).ceil
self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
x -= 1
y += (height/4).ceil
self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
end
#--------------------------------------------------------------------------
# œ –¼‘O‚Ì•`‰æ
#--------------------------------------------------------------------------
alias xrxs_bp7_draw_actor_name draw_actor_name
def draw_actor_name(actor, x, y)
xrxs_bp7_draw_actor_name(actor, x, y) if @draw_ban != true
end
#--------------------------------------------------------------------------
# œ ƒXƒe[ƒg‚Ì•`‰æ
#--------------------------------------------------------------------------
alias xrxs_bp7_draw_actor_state draw_actor_state
def draw_actor_state(actor, x, y, width = 120)
xrxs_bp7_draw_actor_state(actor, x, y, width) if @draw_ban != true
end
#--------------------------------------------------------------------------
# œ HP ‚Ì•`‰æ
#--------------------------------------------------------------------------
alias xrxs_bp7_draw_actor_hp draw_actor_hp
def draw_actor_hp(actor, x, y, width = 144)
xrxs_bp7_draw_actor_hp(actor, x, y, width) if @draw_ban != true
end
#--------------------------------------------------------------------------
# œ SP ‚Ì•`‰æ
#--------------------------------------------------------------------------
alias xrxs_bp7_draw_actor_sp draw_actor_sp
def draw_actor_sp(actor, x, y, width = 144)
xrxs_bp7_draw_actor_sp(actor, x, y, width) if @draw_ban != true
end
end
#==============================================================================
# ž ŠO•”ƒ‰ƒCƒuƒ‰ƒŠ
#==============================================================================
class Window_Base
#--------------------------------------------------------------------------
# œ ƒ‰ƒCƒ“•`‰æ by ÷‰ë Ý“y
#--------------------------------------------------------------------------
def draw_line(start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color)
# •`ŽÊ‹——£‚ÌŒvŽZB‘å‚«‚ß‚É’¼ŠpŽž‚Ì’·‚³B
distance = (start_x - end_x).abs + (start_y - end_y).abs
# •`ŽÊŠJŽn
if end_color == start_color
for i in 1..distance
x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
self.contents.fill_rect(x, y, width, width, start_color)
end
else
for i in 1..distance
x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
r = start_color.red * (distance-i)/distance + end_color.red * i/distance
g = start_color.green * (distance-i)/distance + end_color.green * i/distance
b = start_color.blue * (distance-i)/distance + end_color.blue * i/distance
a = start_color.alpha * (distance-i)/distance + end_color.alpha * i/distance
self.contents.fill_rect(x, y, width, width, Color.new(r, g, b, a))
end
end
end
#--------------------------------------------------------------------------
# œ ‰e•¶Žš•`‰æ by TOMY
#--------------------------------------------------------------------------
def draw_shadow_text(x, y, width, height, string, align = 0)
# Œ³‚ÌF‚ð•Û‘¶‚µ‚Ä‚¨‚
color = self.contents.font.color.dup
# •Žš‚ʼne•`‰æ
self.contents.font.color = Color.new(0, 0, 0)
self.contents.draw_text(x + 2, y + 2, width, height, string, align)
# Œ³‚ÌF‚É–ß‚µ‚Ä•`‰æ
self.contents.font.color = color
self.contents.draw_text(x, y, width, height, string, align)
end
end
yah i finally got this script working and now the saves dont load properly
i think something that was changed in script causes issues issues with my bank script
i get this error when i try and load the game
??Banking System'? 807 ??? EOEFrror ???????
end of file reached
i don't know anything about this scripting language so i was hoping i could get some help
BANK SCRIPT
#==============================================================================
# Banking System
#--------------------------------------------------------------------------
# Created By SephirothSpawn (12.03.05)
# Last Updated: 12.03.05
#==============================================================================
# add
#Font.default_name = "Tahoma"
#to the main script
#==============================================================================
# ** Scene_Title
#==============================================================================
class Scene_Title
#--------------------------------------------------------------------------
# * Alias Command: New Game
#--------------------------------------------------------------------------
alias bank_command_new_game command_new_game
#--------------------------------------------------------------------------
# * Command: New Game
#--------------------------------------------------------------------------
def command_new_game
$game_bank = Game_BankSystem.new
bank_command_new_game
end
end
#==============================================================================
# ** Window_RefreshCommand
#==============================================================================
class Window_RefreshCommand < Window_Selectable
#--------------------------------------------------------------------------
# * Object Initialization
# width : window width
# commands : command text string array
#--------------------------------------------------------------------------
def initialize(width, commands)
# Compute window height from command quantity
super(0, 0, width, commands.size * 32 + 32)
@item_max = commands.size
@commands = commands
refresh
self.index = 0
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh(commands = @commands)
@commands = commands
@item_max = commands.size
if self.contents != nil
self.contents.dispose
self.contents = nil
end
self.contents = Bitmap.new(width - 32, @item_max * 32)
for i in 0...@item_max
draw_item(i, normal_color)
end
end
#--------------------------------------------------------------------------
# * Draw Item
# index : item number
# color : text color
#--------------------------------------------------------------------------
def draw_item(index, color)
self.contents.font.color = color
self.contents.draw_text(0, 32 * index, self.contents.width - 8, 32, @commands[index], 1)
end
#--------------------------------------------------------------------------
# * Disable Item
# index : item number
#--------------------------------------------------------------------------
def disable_item(index)
draw_item(index, disabled_color)
end
#--------------------------------------------------------------------------
# * Undisable Item
# index : item number
#--------------------------------------------------------------------------
def disable_item(index)
draw_item(index, normal_color)
end
end
#==============================================================================
# ** Game_BankSystem
#==============================================================================
class Game_BankSystem
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :account_balance
attr_accessor :interest_rate
attr_accessor :saving_bonds
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
@account_balance = 0
@interest_rate = 10
@saving_bonds = []
@last_interest_time = 0
end
#--------------------------------------------------------------------------
# * Update
#--------------------------------------------------------------------------
def update
# Updates Deposited Amount
interest_time = (Graphics.frame_count / Graphics.frame_rate - @last_interest_time) / 3600.0
interest_amt = (@account_balance * @interest_rate / 100.0 * interest_time).to_i
if interest_amt > 0
@last_interest_time = Graphics.frame_count / Graphics.frame_rate
@account_balance += interest_amt
# Refreshes Data Windows
$scene.refresh_windows
end
end
#--------------------------------------------------------------------------
# * Deposit
#--------------------------------------------------------------------------
def deposit(amount)
$game_party.lose_gold(amount)
@account_balance += amount
end
#--------------------------------------------------------------------------
# * Withdraw
#--------------------------------------------------------------------------
def withdraw(amount)
@account_balance -= amount
$game_party.gain_gold(amount)
end
#--------------------------------------------------------------------------
# * Add Savings Bond
#--------------------------------------------------------------------------
def add_bond(bond)
@saving_bonds.push(bond)
@saving_bonds.sort! {|a, b| a.name <=> b.name}
end
end
#==============================================================================
# ** Savings_Bond
#==============================================================================
class Savings_Bond
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :name
attr_accessor :cost
attr_accessor :interest_rate
attr_accessor :length
attr_accessor :time_bought
attr_accessor :time_finished
attr_accessor :mature_value
#--------------------------------------------------------------------------
# * Object Initialization
# name : Savings Bond Name
# cost : Savings Bond Cost
# interest_rate : Savings Bond Interest Rate (In Percent)
# length : Length of Hours until Mature
#--------------------------------------------------------------------------
def initialize(name, cost, interest_rate, length)
@name = name
@cost = cost
@interest_rate = interest_rate
@length = length
@mature_value = (@cost * (1+ @interest_rate / 100.0)).to_i
end
#--------------------------------------------------------------------------
# * Set Times
#--------------------------------------------------------------------------
def set_times
@time_bought = Graphics.frame_count / Graphics.frame_rate
@time_finished = @time_bought + @length * 3600
end
#--------------------------------------------------------------------------
# * Make Time to HH:MM:SS
#--------------------------------------------------------------------------
def return_time(time)
hours = time / 60 / 60
minutes = time / 60 % 60
seconds = time % 60
return sprintf("%02d:%02d:%02d", hours, minutes, seconds)
end
end
#==============================================================================
# ** Window_BankNumber
#==============================================================================
class Window_BankNumber < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(640, 272, 240, 192)
self.opacity = 175
self.contents = Bitmap.new(width - 32, height - 32)
end
#--------------------------------------------------------------------------
# * Refresh
# money : Gold being...
# type : Deposit or Withdraw
#--------------------------------------------------------------------------
def refresh(money, type)
contents.clear
# Deposit or Withdraw
contents.font.color = system_color
contents.draw_text(0, 0, contents.width, 24, "Amount to #{type}", 1)
if type == "Deposit"
# Draws Game Party Gold
contents.draw_text(4, 48, contents.width, 24, "Current #{$data_system.words.gold}:")
contents.font.color = normal_color
contents.draw_text(-4, 48, contents.width, 24, $game_party.gold.to_s, 2)
else
# Draws Account Balance
contents.draw_text(4, 48, contents.width, 24, "Account Balance:")
contents.font.color = normal_color
contents.draw_text(-4, 48, contents.width, 24, $game_bank.account_balance.to_s, 2)
end
# Draws Money Being Deposited or Withdrawn
contents.font.color = system_color
contents.draw_text(4, 72, contents.width, 24, "#{type} Amount:")
contents.font.color = normal_color
contents.draw_text(-4, 72, contents.width, 24, "- #{money}", 2)
# Draws Line
line = ""
while contents.text_size(line).width < contents.width
line += "-"
end
contents.draw_text(0, 96, contents.width, 24, line, 2)
# Draws Game Party Gold Amont
contents.font.color = system_color
contents.draw_text(4, 112, contents.width, 32, "#{$data_system.words.gold} After:")
amount = $game_party.gold
amount += type == "Deposit" ? -money : money
contents.font.color = normal_color
contents.draw_text(-4, 112, contents.width, 32, amount.to_s, 2)
# Draws Deposit Amont
amount = $game_bank.account_balance
amount += type == "Deposit" ? money : -money
contents.font.color = system_color
contents.draw_text(4, 136, contents.width, 32, "Balance After:")
contents.font.color = normal_color
contents.draw_text(-4, 136, contents.width, 32, amount.to_s, 2)
end
end
#==============================================================================
# ** Window_BankBio
#==============================================================================
class Window_BankBio < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(-240, 272, 240, 192)
self.opacity = 175
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
contents.clear
# Deposit or Withdraw
contents.font.color = system_color
# Draws Actor Name in Postition 1
contents.font.color = normal_color
contents.draw_text(0, 0, contents.width, 24, "#{$game_party.actors[0].name}", 1)
# Draws Game Party Gold
contents.font.color = system_color
contents.draw_text(4, 32, contents.width, 24, "Current #{$data_system.words.gold}:")
contents.font.color = normal_color
contents.draw_text(-4, 32, contents.width, 24, $game_party.gold.to_s, 2)
# Draws Account Balance
contents.font.color = system_color
contents.draw_text(4, 56, contents.width, 24, "Account Balance:")
contents.font.color = normal_color
contents.draw_text(-4, 56, contents.width, 24, $game_bank.account_balance.to_s, 2)
# Draws Number of Savings Bond's
contents.font.color = system_color
contents.draw_text(4, 80, contents.width, 24, "Bonds Owned:")
contents.font.color = normal_color
contents.draw_text(-4, 80, contents.width, 24, $game_bank.saving_bonds.size.to_s, 2)
# Draws Value of Savings Bond's
value = 0
$game_bank.saving_bonds.each { |x| value += x.mature_value}
contents.font.color = system_color
contents.draw_text(4, 104, contents.width, 24, "Bonds Value:")
contents.font.color = normal_color
contents.draw_text(-4, 104, contents.width, 24, value.to_s, 2)
# Draws Current Interest Rate
contents.font.color = system_color
contents.draw_text(4, 136, contents.width, 24, "Interest Rate:")
contents.font.color = normal_color
contents.draw_text(-4, 136, contents.width, 24, "#{$game_bank.interest_rate} %", 2)
end
end
#==============================================================================
# ** Window_Bond
#==============================================================================
class Window_Bond < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(-240, 264, 240, 200)
self.opacity = 175
self.contents = Bitmap.new(width - 32, height - 32)
end
#--------------------------------------------------------------------------
# * Refresh
# bond : Savings Bond
#--------------------------------------------------------------------------
def refresh(bond, bought = false)
contents.clear
unless bond == nil
# Draws Bond Name
contents.font.color = system_color
contents.draw_text(0, 0, contents.width, 24, bond.name, 1)
# Draws Bond Cost
contents.font.color = system_color
contents.draw_text(4, 24, contents.width, 24, "Bond Cost:")
contents.font.color = normal_color
contents.draw_text(-4, 24, contents.width, 24, bond.cost.to_s, 2)
# Draws Bond Mature Value
contents.font.color = system_color
contents.draw_text(4, 48, contents.width, 24, "Mature Value:")
contents.font.color = normal_color
contents.draw_text(-4, 48, contents.width, 24, "#{bond.mature_value}", 2)
# Draws Bond Interest Rate
contents.font.color = system_color
contents.draw_text(4, 72, contents.width, 24, "Interest Rate:")
contents.font.color = normal_color
contents.draw_text(-4, 72, contents.width, 24, "#{bond.interest_rate} %", 2)
# Draws Length until Maturity
contents.font.color = system_color
contents.draw_text(4, 96, contents.width, 24, "Maturity Time:")
contents.font.color = normal_color
contents.draw_text(-4, 96, contents.width, 24, "#{bond.length} Hours", 2)
# Display only if Purchased CD
if bought
# Draws Time Bought
contents.font.color = system_color
contents.draw_text(4, 120, contents.width, 24, "Time Bought:")
contents.font.color = normal_color
contents.draw_text(-4, 120, contents.width, 24, bond.return_time(bond.time_bought), 2)
# Draws Time Finished
contents.font.color = system_color
contents.draw_text(4, 144, contents.width, 24, "Time Finished:")
contents.font.color = normal_color
contents.draw_text(-4, 144, contents.width, 24, bond.return_time(bond.time_finished), 2)
end
end
end
end
#==============================================================================
# ** Scene_Bank
#==============================================================================
class Scene_Bank
#--------------------------------------------------------------------------
# * Object Initialization
# interest rate : Changes Current Interest Rate (Leave 0 for no Change)
# bonds : Avaliable CD's For Purchasing
#--------------------------------------------------------------------------
def initialize(interest_rate = $game_bank.interest_rate,
bonds = [ Savings_Bond.new("CD-7", 100, 7.5, 7), Savings_Bond.new("CD-14", 500, 15, 14)])
$game_bank.interest_rate = interest_rate unless interest_rate == 0
@bonds = bonds
end
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
# Current Phase
@phase = -1
# Refreshing Variables
@amount, @depositing = 0, true
@current_bond, @bond_bought = nil, false
# Make sprite set
@spriteset = Spriteset_Map.new
# Help Window
@help_window = Window_Help.new
@help_window.y, @help_window.opacity = -64, 175
@help_window.set_text("Welcome to the Bank", 1)
# Bank Bio
@bank_bio_window = Window_BankBio.new
# Avaliable Bond Information Display Window
@av_bond_display_window = Window_Bond.new
# Owned Bond Information Display Window
@own_bond_display_window = Window_Bond.new
# Main Command
@main_command = Window_RefreshCommand.new(180, [
"Deposit #{g_word = $data_system.words.gold}",
"Withdraw #{g_word}", "Purchase Bond", "Get Mature Bond", "Exit"])
@main_command.x, @main_command.y, @main_command.opacity = 644, 272, 175
@main_command.active = false
# Bank Number Window
@bank_number_window = Window_BankNumber.new
# Avaliable Bonds Command
commands = []
@bonds.each {|x| commands.push(x.name)}; commands.push("Back")
@av_bond_command = Window_RefreshCommand.new(180, commands)
@av_bond_command.x, @av_bond_command.y = 644, 272
@av_bond_command.height, @av_bond_command.opacity = 192, 175
@av_bond_command.active = false
# CD's Have
@own_bond_command = Window_RefreshCommand.new(180, get_cd_list)
@own_bond_command.x, @own_bond_command.y = 644, 272
@own_bond_command.height, @own_bond_command.opacity = 192, 175
@own_bond_command.active = false
# Scene Objects
@objects = [@spriteset, @help_window, @bank_bio_window, @av_bond_display_window,
@own_bond_display_window, @main_command, @bank_number_window,
@av_bond_command, @own_bond_command]
# Execute transition
Graphics.transition
# Main loop
while $scene == self
# Update game screen
Graphics.update
# Update input information
Input.update
# Update Objects
@objects.each {|x| x.update}
# Updates Bank System
$game_bank.update
# Frame update
update
end
# Prepare for transition
Graphics.freeze
# Dispose of windows
@objects.each {|x| x.dispose}
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# Splits Phases Up
case @phase
when -1 # Intro Phase
intro_update
when 0 # Main Phase
main_update
when 1 # Deposit or Withdraw Phase
account_update
when 2 # Buy CD Phase
buy_bond_update
when 3 # Get Mature CD Phse
get_bond_update
when 99 # Exit Phase
exit_update
end
end
#--------------------------------------------------------------------------
# * Intro Update
#--------------------------------------------------------------------------
def intro_update
# Moves Window Down
@help_window.y += 4 if @help_window.y < 0
if @help_window.y == 0
# Input Processing
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
# Returns to Scene
@phase = 99
elsif Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
# Switchs to Main Phase
@phase = 0
end
end
end
#--------------------------------------------------------------------------
# * Main Update
#--------------------------------------------------------------------------
def main_update
# Turns On Main Command
@main_command.active = true
# Turns Off Other Command Windows
@av_bond_command.active = @own_bond_command.active = false
# Moves In Active Windows
@bank_bio_window.z = @main_command.z = 9999
@bank_bio_window.x += 32 if @bank_bio_window.x < 16
@main_command.x -= 25 if @main_command.x > 444
# Moves Out Inactive Windows
@av_bond_display_window.x -= 32 if @av_bond_display_window.x > - 240
[@av_bond_display_window, @own_bond_display_window, @bank_number_window,
@av_bond_command, @own_bond_command].each {|window| window.z = 9995}
[@av_bond_command, @own_bond_command].each {|command|
command.x += 25 if command.x < 644}
@own_bond_display_window.x -= 25 if @own_bond_display_window.x > - 240
@bank_number_window.x += 32 if @bank_number_window.x < 640
# Sets Help Window
case @main_command.index
when 0; @help_window.set_text("Deposit Money Into your Account", 1)
when 1; @help_window.set_text("Withdraw Money From your Account", 1)
when 2; @help_window.set_text("Purchase a Savings Bond", 1)
when 3; @help_window.set_text("Take Out Mature Savings Bond", 1)
when 4; @help_window.set_text("Exit Bank", 1)
end
# Input Processing
if Input.trigger?(Input::B) # Returns to Map
$game_system.se_play($data_system.cancel_se)
@phase = 99
elsif Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
case @main_command.index
when 0 # Deposit
@amount, @depositing = 0, true
refresh_windows
@help_window.set_text("Deposit #{@amount} #{$data_system.words.gold}", 1)
@phase = 1
when 1 # Withdraw
@amount, @depositing = 0, false
refresh_windows
@help_window.set_text("Withdraw #{@amount} #{$data_system.words.gold}", 1)
@phase = 1
when 2 # Buy CD
@current_bond = @bonds[@av_bond_command.index]
@bond_bought = false
refresh_windows
@phase = 2
when 3 # Get CD
@current_bond = $game_bank.saving_bonds[@own_bond_command.index]
@bond_bought = true
refresh_windows
@phase = 3
when 4 # Exit Bank
@phase = 99
end
end
end
#--------------------------------------------------------------------------
# * Accpunt Update
#--------------------------------------------------------------------------
def account_update
# Turns Off Command Windows
@main_command.active = @av_bond_command.active = @own_bond_command.active = false
# Moves In Active Windows
@bank_bio_window.z = @bank_number_window.z = 9999
@bank_bio_window.x += 32 if @bank_bio_window.x < 16
@bank_number_window.x -= 32 if @bank_number_window.x > 384
# Moves Out Inactive Windows
@av_bond_display_window.z = @own_bond_display_window.z =
@main_command.z = @av_bond_command.z = @own_bond_command.z = 9995
@av_bond_display_window.x -= 32 if @av_bond_display_window.x > - 240
[@own_bond_display_window].each {|window| window.x -= 25 if window.x > - 240}
[@main_command, @av_bond_command, @own_bond_command].each {|command|
command.x += 25 if command.x < 644}
# Input Processing
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@phase = 0
elsif Input.trigger?(Input::C)
$game_system.se_play($data_system.shop_se)
if @depositing
$game_bank.deposit(@amount)
refresh_windows
@phase = 0
else
$game_bank.withdraw(@amount)
refresh_windows
@phase = 0
end
elsif Input.repeat?(Input::LEFT) && Input.press?(Input::LEFT)
if @amount > 0
$game_system.se_play($data_system.cursor_se)
@amount -= 1
refresh_windows
@help_window.set_text("#{@depositing ? 'Deposit' : 'Withdraw'} #{@amount} #{$data_system.words.gold}", 1)
else
$game_system.se_play($data_system.buzzer_se)
end
elsif Input.repeat?(Input::RIGHT) && Input.press?(Input::RIGHT)
if @depositing
if @amount < $game_party.gold
$game_system.se_play($data_system.cursor_se)
@amount += 1
refresh_windows
@help_window.set_text("#{@depositing ? 'Deposit' : 'Withdraw'} #{@amount} #{$data_system.words.gold}", 1)
else
$game_system.se_play($data_system.buzzer_se)
end
else
if @amount < $game_bank.account_balance
$game_system.se_play($data_system.cursor_se)
@amount += 1
refresh_windows
@help_window.set_text("#{@depositing ? 'Deposit' : 'Withdraw'} #{@amount} #{$data_system.words.gold}", 1)
else
$game_system.se_play($data_system.buzzer_se)
end
end
elsif Input.repeat?(Input::UP) && Input.press?(Input::UP)
if @amount == 0
$game_system.se_play($data_system.buzzer_se)
else
$game_system.se_play($data_system.cursor_se)
@amount > 10 ? @amount -= 10 : @amount = 0
refresh_windows
@help_window.set_text("#{@depositing ? 'Deposit' : 'Withdraw'} #{@amount} #{$data_system.words.gold}", 1)
end
elsif Input.repeat?(Input::DOWN) && Input.press?(Input::DOWN)
if @depositing
if @amount < $game_party.gold
$game_system.se_play($data_system.cursor_se)
@amount < $game_party.gold - 10 ? @amount += 10 : @amount = $game_party.gold
refresh_windows
@help_window.set_text("#{@depositing ? 'Deposit' : 'Withdraw'} #{@amount} #{$data_system.words.gold}", 1)
else
$game_system.se_play($data_system.buzzer_se)
end
else
if @amount < $game_bank.account_balance
$game_system.se_play($data_system.cursor_se)
@amount < $game_bank.account_balance - 10 ? @amount += 10 : @amount = $game_bank.account_balance
refresh_windows
@help_window.set_text("#{@depositing ? 'Deposit' : 'Withdraw'} #{@amount} #{$data_system.words.gold}", 1)
else
$game_system.se_play($data_system.buzzer_se)
end
end
elsif Input.repeat?(Input::L) && Input.press?(Input::L)
if @amount == 0
$game_system.se_play($data_system.buzzer_se)
else
$game_system.se_play($data_system.cursor_se)
@amount > 100 ? @amount -= 100 : @amount = 0
refresh_windows
@help_window.set_text("#{@depositing ? 'Deposit' : 'Withdraw'} #{@amount} #{$data_system.words.gold}", 1)
end
elsif Input.repeat?(Input::R) && Input.press?(Input::R)
if @depositing
if @amount < $game_party.gold
$game_system.se_play($data_system.cursor_se)
@amount < $game_party.gold - 100 ? @amount += 100 : @amount = $game_party.gold
refresh_windows
@help_window.set_text("#{@depositing ? 'Deposit' : 'Withdraw'} #{@amount} #{$data_system.words.gold}", 1)
else
$game_system.se_play($data_system.buzzer_se)
end
else
if @amount < $game_bank.account_balance
$game_system.se_play($data_system.cursor_se)
@amount < $game_bank.account_balance - 100 ? @amount += 100 : @amount = $game_bank.account_balance
refresh_windows
@help_window.set_text("#{@depositing ? 'Deposit' : 'Withdraw'} #{@amount} #{$data_system.words.gold}", 1)
else
$game_system.se_play($data_system.buzzer_se)
end
end
end
end
#--------------------------------------------------------------------------
# * Buy Bond Update
#--------------------------------------------------------------------------
def buy_bond_update
# Turns On Avaliable Bond Window
@av_bond_command.active = true
# Turns Off Other Command Windows
@main_command.active = @own_bond_command.active = false
# Moves In Active Windows
@av_bond_display_window.z = @av_bond_command.z = 9999
@av_bond_display_window.x += 32 if @av_bond_display_window.x < 16
@av_bond_command.x -= 25 if @av_bond_command.x > 444
# Moves Out Inactive Windows
[@bank_bio_window, @bank_number_window, @own_bond_display_window,
@main_command, @own_bond_command].each {|window| window.z = 9995}
@bank_bio_window.x -= 32 if @bank_bio_window.x > - 240
@bank_number_window.x += 32 if @bank_number_window.x < 640
@own_bond_display_window.x -= 25 if @own_bond_display_window.x > - 240
[@main_command, @own_bond_command].each {|command| command.x += 25 if command.x < 644}
# Input Processing
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@phase = 0
elsif Input.trigger?(Input::C)
if @av_bond_command.index == @bonds.size
$game_system.se_play($data_system.cancel_se)
@phase = 0
else
current_bond = @bonds[@av_bond_command.index].dup
if current_bond.cost > $game_party.gold
$game_system.se_play($data_system.buzzer_se)
else
$game_system.se_play($data_system.decision_se)
$game_party.lose_gold(current_bond.cost)
current_bond.set_times
$game_bank.add_bond(current_bond)
refresh_windows
@phase = 0
end
end
# Updates Current Bond
elsif Input.trigger?(Input::UP) or Input.trigger?(Input::DOWN)
@current_bond = @bonds[@av_bond_command.index]
refresh_windows
end
end
#--------------------------------------------------------------------------
# * Get Bond Update
#--------------------------------------------------------------------------
def get_bond_update
# Turns On Avaliable Bond Window
@own_bond_command.active = true
# Turns Off Other Command Windows
@main_command.active = @av_bond_command.active = false
# Moves In Active Windows
[@own_bond_display_window, @own_bond_command].each {|window| window.z = 9999}
@own_bond_display_window.x += 32 if @own_bond_display_window.x < 16
@own_bond_command.x -= 25 if @own_bond_command.x > 444
# Moves Out Inactive Windows
[@bank_bio_window, @av_bond_display_window, @main_command, @bank_number_window,
@av_bond_command].each {|window| window.z = 9995}
[@bank_bio_window, @av_bond_display_window].each {|window|
window.x -= 32 if window.x > - 240}
[@main_command, @av_bond_command].each {|window|
window.x += 25 if window.x < 640}
@bank_number_window.x += 32 if @bank_number_window.x < 640
# Input Processing
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@phase = 0
elsif Input.trigger?(Input::C)
if @own_bond_command.index == $game_bank.saving_bonds.size
$game_system.se_play($data_system.cancel_se)
@phase = 0
else
current_bond = $game_bank.saving_bonds[@own_bond_command.index]
if current_bond.time_finished > Graphics.frame_count / Graphics.frame_rate
$game_system.se_play($data_system.buzzer_se)
@help_window.set_text("Savings Bond Not Mature Yet!", 1)
else
$game_system.se_play($data_system.decision_se)
$game_party.gain_gold(current_bond.mature_value)
$game_bank.saving_bonds.delete_at[@own_bond_command.index]
refresh_windows
@phase = 0
end
end
elsif Input.trigger?(Input::UP) or Input.trigger?(Input::DOWN)
@current_bond = $game_bank.saving_bonds[@own_bond_command.index]
refresh_windows
end
end
#--------------------------------------------------------------------------
# * Exit Update
#--------------------------------------------------------------------------
def exit_update
# Moves Out Windows
@help_window.y -= 4 if @help_window.y > - 64
[@bank_bio_window, @av_bond_display_window].each {|window| window.x -= 32 if window.x > - 240}
[@own_bond_display_window].each {|window| window.x -= 25 if window.x > - 240}
[@main_command, @bank_number_window, @av_bond_command,
@own_bond_command].each {|window| window.x += 25 if window.x < 640}
# Checks To Make Sure All Windows Are Out
if @help_window.y <= - 64 && @bank_bio_window.x <= - 240 && @av_bond_display_window.x <= - 240 &&
@own_bond_display_window.x <= - 240 && @main_command.x >= 644 &&
@bank_number_window.x >= 640 && @av_bond_command.x >= 640 && @own_bond_command.x >= 640
$scene = Scene_Map.new
end
end
#--------------------------------------------------------------------------
# * Get CD List
#--------------------------------------------------------------------------
def get_cd_list
commands = []
$game_bank.saving_bonds.each {|x| commands.push(x.name)}
commands.push("Back")
return commands
end
#--------------------------------------------------------------------------
# * Refresh Windows
#--------------------------------------------------------------------------
def refresh_windows
@bank_bio_window.refresh
@av_bond_display_window.refresh(@current_bond, @bond_bought)
@own_bond_display_window.refresh(@current_bond, @bond_bought)
@bank_number_window.refresh(@amount, @depositing ? "Deposit" : "Withdraw")
@own_bond_command.refresh(get_cd_list)
end
end
#--------------------------------------------------------------------------
# * Save Game/Load Game Fix
#--------------------------------------------------------------------------
class Scene_Save
alias jimmr_bank_fix_save write_save_data
def write_save_data(file)
jimmr_bank_fix_save(file)
Marshal.dump($game_bank, file)
end
end
class Scene_Load
alias jimmr_bank_fix_load read_save_data
def read_save_data(file)
jimmr_bank_fix_load(file)
$game_bank = Marshal.load(file)
end
end