|
Im using a retry battle script that allows you to choose what maps you can retry on by turning on the corresponding switch in an event. but i must be doing something wrong because i cant get it to work, could someone plz tell me how to go about setting up this event Ive tried everything and Im only accomplishing a headache lol i know its something simple and im probably going to feel stuipid once figured out. but i culd use the help.
heres the script
#=============================================================== # ● [VX] ◦ Battle Retry ◦ □ # * Enable player to retry the battle after losing * # ** Note: Read the setup part before using this script ** #-------------------------------------------------------------- # ◦ by Woratana [woratana@hotmail.com] # ◦ Thaiware RPG Maker Community # ◦ Released on: 29/02/2009 # ◦ Version: 1.0 #-------------------------------------------------------------- # ◦ Update: #-------------------------------------------------------------- # □ Version 1.0 (29/02/2009) # - Set switch ID to enable/disable battle retry during the game # - Editable command's text, command's window width and Y-coordinate # - You can choose to record party actors stat (HP/MP/States) before battle # #-------------------------------------------------------------- # ◦ Compatibility: #-------------------------------------------------------------- # □ This script will rewrite 0 method(s): # # # □ This script will alias 5 method(s): # Scene_Gameover.perform_transition # Scene_Gameover.terminate # Scene_Gameover.update # Scene_Battle.battle_end # Game_Interpreter.command_301 # # □ This script should work with most scripts, except for some modifications # of Scene_Gameover # #-------------------------------------------------------------- # ◦ Installation: #-------------------------------------------------------------- # 1) This script should be placed JUST BEFORE ▼ Main Process. # # □ Like this: # ▼ Materials # ... # ... # * Battle Retry # ▼ Main Process # Main # # 2) Setup this script in Setup Part below. # #-------------------------------------------------------------- # ◦ How to use: #-------------------------------------------------------------- # □ Place this script and setup in the setup part. # #=================================================================
class Scene_Gameover < Scene_Base
#================================================================= # ++ Setup Part #----------------------------------------------------------------- BATRETRY_SWITCH_ID = 1 # Enable Battle Retry if this switch ID is ON # Disable Battle Retry if this switch ID is OFF
BATRETRY_COMMANDS = ['Retry Battle', 'Return to Title Screen'] # Text on command window asking for Battle Retry # E.g. ['Go back to battle', 'Exit to title screen']
BATRETRY_WINDOW_Y = 288 # Command window's Y-coordinate (Top: 0, Bottom: 416)
BATRETRY_WINDOW_WIDTH = 200 # Command windows' width
BATRETRY_RECORD_PARTY_STAT = true # Record party members' HP/MP/status before going to battle? (true/false) # # - If this set to true, if Ralph has HP 30 before battle and got poisoned. # When player retry the battle, Ralph will still has HP 30 and poisoned. # # - If this set to false, all the members will get full HP/MP and no bad status # after retry the battle. #=================================================================
alias wora_batretry_scego_pertran perform_transition alias wora_batretry_scego_term terminate alias wora_batretry_scego_upd update #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update(*args) if $game_temp.battle_retry? super @command_window.update if Input.trigger?(Input::C) case @command_window.index when 0 # Battle Retry # If recorded party stat, load recorded data unless $game_temp.last_troop_actor.nil? $game_temp.last_troop_actor.each_key do |id| data = $game_temp.last_troop_actor[id] $game_actors[id].hp = data[0] $game_actors[id].mp = data[1] $game_actors[id].real_states = data[2] end else # If not, recover party members $game_party.members.each {|actor| actor.recover_all } end # Setup battle last_troop = $game_temp.last_troop_id $game_troop.setup(last_troop[0]) $game_troop.can_escape = last_troop[1] $game_troop.can_lose = false $game_temp.next_scene = "battle" $scene = Scene_Battle.new when 1 # Go to Title Screen $scene = Scene_Title.new Graphics.fadeout(120) end end else # Normal Gameover scene wora_batretry_scego_upd(*args) end end #-------------------------------------------------------------------------- # * Execute Transition #-------------------------------------------------------------------------- def perform_transition(*args) if $game_temp.battle_retry? # Add command window if need battle retry @command_window = Window_Command.new(BATRETRY_WINDOW_WIDTH, BATRETRY_COMMANDS) # Show battle retry window in the middle @command_window.x = (Graphics.width - @command_window.width) / 2 @command_window.y = BATRETRY_WINDOW_Y @command_window.openness = 0 @command_window.open # Perform transition wora_batretry_scego_pertran(*args) # Open command window until @command_window.openness == 255 @command_window.update Graphics.update end @command_window.active = true else # Normal Gameover scene wora_batretry_scego_pertran(*args) end end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate(*args) @command_window.dispose unless @command_window.nil? wora_batretry_scego_term(*args) end end
class Scene_Battle < Scene_Base alias wora_batretry_scebat_batend battle_end #-------------------------------------------------------------------------- # * End Battle #-------------------------------------------------------------------------- def battle_end(*args) unless (args[0] == 2 and !$game_troop.can_lose) # Remove last troop data if won battle $game_temp.last_troop_id = nil $game_temp.last_troop_actor = nil end wora_batretry_scebat_batend(*args) end
end
class Game_Temp #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :last_troop_id, :last_troop_actor
#-------------------------------------------------------------------------- # * Check if battle can be retry #-------------------------------------------------------------------------- def battle_retry? return ($game_switches[Scene_Gameover::BATRETRY_SWITCH_ID] and !@last_troop_id.nil?) end end
class Game_Interpreter alias wora_batretry_gamint_com301 command_301 #-------------------------------------------------------------------------- # * Battle Processing #-------------------------------------------------------------------------- def command_301(*args) # If enable to record party stat before battle.. if Scene_Gameover::BATRETRY_RECORD_PARTY_STAT $game_temp.last_troop_actor = {} $game_party.members.each do |actor| $game_temp.last_troop_actor[actor.id] = [actor.hp, actor.mp, actor.real_states] end end # Store last troop ID in Game_System troop_id = @params[0] == 0 ? @params[1] : $game_variables[@params[1]] $game_temp.last_troop_id = [troop_id, @params[2]] unless $game_temp.in_battle wora_batretry_gamint_com301(*args) end end
class Game_Battler #-------------------------------------------------------------------------- # * Return real states #-------------------------------------------------------------------------- def real_states return @states.clone end
#-------------------------------------------------------------------------- # * Set states with states ID array #-------------------------------------------------------------------------- def real_states=(states_id_array) @states = states_id_array end end
|