Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

breath of fire 3 cross comand

intro

well this is ,as the title says the bof3 cross command . it makes a cool looking command menu

and adds some command.

features

the run command : this will mean you will want to get rid of the ugly escape bar

the examine command : this inflicts a stae to the char that used it . that state will be used

for learning skill. ( if you don't know how make a common event that says if the actor has state X
=> add skill ....) by the way the skill i used is 3 (VENOM ) you will have to change that to whatever is the ID of the state you will be using . just change this line

Code:
@active_battler.add_state(3)

the charge command : it forces the actors tho use the attack  command
the script
Code:
#==============================================================================
#  
#  
#   joooda 's CrossCommand
#  -----------------------------------------
#   Makes a pretty command window in a shape of a cross like in Wild Arms
#==============================================================================

class CrossCommand < Window_Selectable

  def initialize
	super(320 - 128, 160 - 128, 256, 256)
	self.contents = Bitmap.new(width - 32, height - 32)
	self.opacity = 0
	
	
	self.active = false
	self.visible = false
	self.index = 0
  end
  
  def update_cursor_rect
	if index == 0
	  self.cursor_rect.set(0, 0, 0, 0)
  
	end
	if Input.press?(Input::LEFT)
    if index==3
    else
     $game_system.se_play($data_system.cursor_se)
    end 
	  @index = 3
	elsif Input.press?(Input::RIGHT)
  if index==2
    else
     $game_system.se_play($data_system.cursor_se)
    end  
	  @index = 2
	elsif Input.press?(Input::UP)
    if index==1
    else
     $game_system.se_play($data_system.cursor_se)
    end  
	  @index = 1
	elsif Input.press?(Input::DOWN)
    
	  @index = 4
	elsif Input.press?(Input::Z)
   if index==5
    else
     $game_system.se_play($data_system.cursor_se)
    end 
    @index = 5
  elsif Input.press?(Input::A)
    if index==6
    else
     $game_system.se_play($data_system.cursor_se)
    end 
    @index = 6
  else
    
	  @index = 0
  
	end
  end
  end

  class Scene_Battle
  alias_method :joda_crosscommand_scene_battle_main, :main
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def sg_phase2_allbasic(sg_temp)
    $game_system.se_play($data_system.decision_se)
    for i in $game_party.actors
      i.current_action.kind = 0
      i.current_action.basic = 0
    end
    start_phase4
  end
  
  def sg_phase2_lastaction
    $game_system.se_play($data_system.decision_se)
    for i in $game_party.actors
        i.current_action.kind = 0
        i.current_action.basic = 0
      end
    end
  
  
  def main
    
    # Create the cross cursor but make it invisible till it's needed.
    @cross = Sprite.new
    @cross.bitmap = RPG::Cache.icon("cross")
    @cross.y = 148
    @cross.x = 238
    @cross.z = 8
    @cross.visible = false
    
    # Create the sprite responsible for drawing the active selection 
    # of the user.
    @cross_cursor = Sprite.new
    @cross_cursor.z = 9
    
    # Call the old main's code.
    joda_crosscommand_scene_battle_main
    
    # Dispose of our assets.
    @cross.bitmap.dispose unless @cross.bitmap.disposed?
    @cross.dispose unless @cross.disposed?
    
    unless @cross_cursor.bitmap.nil?
      @cross_cursor.bitmap.dispose unless @cross_cursor.bitmap.disposed?
    end
    @cross_cursor.dispose unless @cross_cursor.disposed?
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : basic command)
  #--------------------------------------------------------------------------
  def update_phase3_basic_command
    @cross.bitmap = RPG::Cache.icon("cross") if @cross.bitmap.nil?
    @cross.visible = true
    
    case @actor_command_window.index
    when 0
      @cross_cursor.bitmap = RPG::Cache.icon("bt")
      @cross_cursor.x = 180
      @cross_cursor.y = 171
    when 1
      @cross_cursor.bitmap = RPG::Cache.icon("abl")
      @cross_cursor.x = 245
      @cross_cursor.y = 100
	  when 2
      @cross_cursor.bitmap = RPG::Cache.icon("def")
      @cross_cursor.y = 171
      @cross_cursor.x = 290
	  when 3
      @cross_cursor.bitmap = RPG::Cache.icon("ex")	
      @cross_cursor.y = 171
      @cross_cursor.x = 140
	  when 4
      @cross_cursor.bitmap = RPG::Cache.icon("item")
      @cross_cursor.x = 245
      @cross_cursor.y = 196
    when 5  
    @cross_cursor.bitmap = RPG::Cache.icon("esc")
      @cross_cursor.x = 293
      @cross_cursor.y = 115  
    when 6
      @cross_cursor.bitmap = RPG::Cache.icon("chg")
      @cross_cursor.x = 140
      @cross_cursor.y = 115  
    end
    
    @cross_cursor.update unless @cross_cursor.bitmap.disposed?
	if Input.trigger?(Input::B)
	  $game_system.se_play($data_system.cancel_se)
	  phase3_prior_actor
	  return
	end
    if Input.trigger?(Input::C)
      @cross_cursor.bitmap.dispose
      @cross.visible = false
      case @actor_command_window.index
      when 0
        $game_system.se_play($data_system.decision_se)
        @active_battler.current_action.kind = 0
        @active_battler.current_action.basic = 0
        start_enemy_select
      when 1
        $game_system.se_play($data_system.decision_se)
        @active_battler.current_action.kind = 1
        start_skill_select
      when 2
        $game_system.se_play($data_system.decision_se)
        @active_battler.current_action.kind = 0
        @active_battler.current_action.basic = 1
       	phase3_next_actor
      when 3  
         $game_system.se_play($data_system.decision_se)
         if rand(99) < 30
           @active_battler.add_state(3)
         end  
       phase3_next_actor
      when 4
        $game_system.se_play($data_system.decision_se)
        @active_battler.current_action.kind = 2
        start_item_select
      when 5
         # If it's not possible to escape
        if $game_temp.battle_can_escape == false
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        enemies_agi = 0
        enemies_number = 0
        for enemy in $game_troop.enemies
          if enemy.exist?
          enemies_agi += enemy.agi
          enemies_number += 1
          end
        end
        if enemies_number > 0
          enemies_agi /= enemies_number
        end
        actors_agi = 0
        actors_number = 0
        for actor in $game_party.actors
          if actor.exist?
          actors_agi += actor.agi
          actors_number += 1
          end
        end
        if actors_number > 0
          actors_agi /= actors_number
        end
        success = rand(100) < 50 * actors_agi / enemies_agi
        if success
          $game_system.se_play($data_system.escape_se)
          $game_system.bgm_play($game_temp.map_bgm)
          battle_end(1)
        else
          $game_party.clear_actions
          start_phase4
        end
        when 6
         sg_phase2_allbasic(1)
      end
      return
    end
  end
end

screeny

instuctions
put the script above main
then go to scene_battle 1 and change this
Code:
@actor_command_window = Window_Command.new(160, [s1, s2, s3, s4])
to this
Code:
@actor_command_window = CrossCommand.new
the demo
http://www.megaupload.com/?d=UEEB5HMN
or if you don't like mega upload
http://www.mediafire.com/?jatenvnleez
this third link is for cross command with the just the standard commands no charge no examine
http://www.mediafire.com/?1te3v0xzyay
Credits
alone i couldn't do any of this (i suck at scripting but i can get scripts to work the way i want) so
this was done based on balzingamer's script and with the help of this cool dood khmp 

this is my first submisson so it minght not be that great
 
Very nice, nice to see someone else who also enjoyed BoF III. If you keep this up, there may be a BoF Starter Kit xD

Good luck with scripting! =P

-Krobe
 
you will have to play with the x and y values of the cursor and the cross and put them as you wish

its easy see this part :

@cross.y = 148
    @cross.x = 238

change these values.when you get the position of the cross count the difference between the original values and the new ones. then add that diference to the cursor's different x and y
i here
when 0
      @cross_cursor.bitmap = RPG::Cache.icon("bt")
      @cross_cursor.x = 180
      @cross_cursor.y = 171
    when 1
      @cross_cursor.bitmap = RPG::Cache.icon("abl")
      @cross_cursor.x = 245
      @cross_cursor.y = 100
  when 2
      @cross_cursor.bitmap = RPG::Cache.icon("def")
      @cross_cursor.y = 171
      @cross_cursor.x = 290
  when 3
      @cross_cursor.bitmap = RPG::Cache.icon("ex")
      @cross_cursor.y = 171
      @cross_cursor.x = 140
  when 4
      @cross_cursor.bitmap = RPG::Cache.icon("item")
      @cross_cursor.x = 245
      @cross_cursor.y = 196
    when 5 
    @cross_cursor.bitmap = RPG::Cache.icon("esc")
      @cross_cursor.x = 293
      @cross_cursor.y = 115 
    when 6
      @cross_cursor.bitmap = RPG::Cache.icon("chg")
      @cross_cursor.x = 140
      @cross_cursor.y = 115 
    end

i hope that helps you
 
i just didn't like it how it keeps playing the se as long as the button are pressed

but if you want to hear em

take the new script in the first post
 
Alright, thanks. Also, is there a way to disable Examine and Chg, and put Escape where Examine would be, and disable the A and D pressing effect?
 
Okay, thank you =]
Bah, I just had the sad decision I won't be using them for my WIP... It's gonna be an ABS now, =P
But I'm going to use your cross command for my next project (If I give up once again in this one) =]
Keep the good work...
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top