Jump to content
syvkal

~[Ring Menu VXAce]~

Recommended Posts

Syvkal's Ring Menu VXAce

Version: 1.2

 

Introduction

 

Recreating my Ring Menu for VXAce ^-^

 

Terms of Use

 

Please read the Script Header ;)

 

Features

  • Main Menu Ring Menu
  • Actor Selection Ring Menu
  • Option to exclude disabled options (I don't like my Disable Icon any more :P)
  • Option to skip Actor Selection when there is only one member in the party

Screenshots

 

 

RingMenuScreenshot1.jpg

 

RingMenuScreenshot2.jpg

 

 

Script

 

Click Here

 

Instructions

 

Put it under the Materials Section

Must include Menu icons (48 x 48) in the 'Pictures' folder. Or use these:

 

ItemsIcon.pngSkillsIcon.pngEquipmentIcon.pngStatusIcon.pngFormationIcon.pngSaveIcon.pngLoadIcon.pngGameEndIcon.pngDisableIcon.png

 

Further instructions can be found in the script header.

 

Compatibility

 

Additional scenes should be automatically added assuming thier creators utilise the 'add_original_commands' feature in Window_MenuCommand

 

This script redefines the following methods:

  • create_status_window (Scene_Menu)
  • on_formation_ok (Scene_Menu)
  • on_formation_cancel (Scene_Menu)
  • draw_character (Window_Base)

This script Aliases the following methods:

  • add_save_command (Window_MenuCommand)
  • start (Scene_Menu)
  • create_command_window (Scene_Menu)
  • command_personal (Scene_Menu)
  • command_formation (Scene_Menu)
  • on_personal_cancel (Scene_Menu)

Author's Notes

 

Pretty much made from scratch again for VXAce. I wanted to remake the animation coding so it was entirely mine, but I realised XRXS, Dubealex & Hypershadow180's original was near flawless so I kept it xD

It's still a little messy and I may clean it up later, but there's now a base class for Ring Menus - so it should be easier for you to make your own (though it currently uses Window_MenuCommand as a superclass for convenience... ^-^ [Now edited so the base works like Window_Selectable while retaining the Window_Command features - may be updated to split them later]

Edited by syvkal

Share this post


Link to post
Share on other sites

Is there any possibility to add custom option? Like map, or something? In VX version of RingMenu it was very simple, but here? I have no idea...

Share this post


Link to post
Share on other sites

I'm assuming you mean extra menu options? And not a mini-map?

 

Well,

Compatibility

 

Additional scenes should be automatically added assuming thier creators utilise the 'add_original_commands' feature in Window_MenuCommand

I hope that answers your question =]

Share this post


Link to post
Share on other sites

Updated Version 1.1

  • Changed the base Window_Ring class to work like Window_Selectable
    It's still sloppy, so I may split it in another update so its easier to make Selectable and Command style Ring Menus separately =]
  • Changed the visuals while changing Formation to hopefully cut down confusion if any ^-^

Share this post


Link to post
Share on other sites

Great script. Had to do some tampering with the icon names, you may want to change the to have spaces. When I first tried to run the script it was looking for (ie) Items Icon.png when it was imported as ItemsIcon.png.

 

Other than that, it looks great and I'm definitely using it. :)

 

cheers,

Share this post


Link to post
Share on other sites

The Icons provided did originally have spaces, uploading them seems to have removed them... but they're only suggestions/template icons (so people didn't complain about having to make their own icons ;) ), but I may still change it as you suggested, for easy use ^-^

Share this post


Link to post
Share on other sites

The Icons provided did originally have spaces, uploading them seems to have removed them... but they're only suggestions/template icons (so people didn't complain about having to make their own icons ;) ), but I may still change it as you suggested, for easy use ^-^

Ah, aha I see. Well sorry if I sounded complainy. =\ I didn't mean to. Thanks again for a great script. ^__^

Share this post


Link to post
Share on other sites

Well... I ment something like that:

 

<br>#==============================================================================<br># ** Ring Menu<br>#-------------------------------------------------------------------------------<br># by Syvkal<br># Version 1.1<br># 06-23-08<br>#==============================================================================<p>   #===================================================#<br>   #  **  C O N F I G U R A T I O N   S Y S T E M  **  #<br>   #===================================================#<br> <br>  # Amount of frames for Startup Animation<br>  STARTUP_FRAMES = 20<br>  # Amount of frames for Movement Animation<br>  MOVING_FRAMES = 15<br>  # Radius of the Menu Ring<br>  RING_R = 75<br>  # Disabled icon to display when disabled<br>  ICON_DISABLE= Cache::picture('Icon_Disable')<br> <br> <br>   #-------------D-O---N-O-T---T-O-U-C-H---------------#<br>   <br>  class Scene_Title < Scene_Base<br>    alias game_objects_original create_game_objects<br>    def create_game_objects<br>      game_objects_original<br>   <br>   #-------------D-O---N-O-T---T-O-U-C-H---------------#<br> <br>  # As this script allows you to make a custom Menu I thought to make it easier<br>  # I would make it possible to add extra Menu Options from here<br> <br>  # All you need to do is specify the Text to display, the icon and the command<br>  # The command must be in a STRING<br>  # Simply add to the array below :</p>  $game_ring_menu = [<br> <br>   # Menu Option 0  eg. Item<br>   [Vocab::item, Cache::picture('Icon_Items'), "$scene = Scene_Item.new"],<br>   <br>   # Menu Option 1  eg. Skill<br>   [Vocab::skill, Cache::picture('Icon_Skills'), "start_actor_selection",<br>     "$scene = Scene_Skill.new(@status_window.index)"],<br>   <br>   # Menu Option 2  eg. Equip<br>   [Vocab::equip, Cache::picture('Icon_Equip'), "start_actor_selection",<br>     "$scene = Scene_Equip.new(@status_window.index)"],<br>   <br>   # Menu Option 3  eg. Status<br>   [Vocab::status, Cache::picture('Icon_Status'), "start_actor_selection",<br>     "$scene = Scene_Status.new(@status_window.index)"],<br>   <br>   #---------------------------------------------------#<br>   #  **      I N S E R T   M O R E   H E R E      **  #<br>   #---------------------------------------------------#<br>   <br>   # Preferably Insert your custom Menu Options Here<br>   # Otherwise the existing Menu Options will return to wrong point on the Menu<br>   <br>   # Menu Option 4  eg. Save<br>   ["Save Game", Cache::picture('Icon_Save'), "$scene = Scene_File.new(true, false, false)"],<br>   <br>   # Menu Option 5  eg. Load<br>   ["Load Game", Cache::picture('Icon_Load'), "$scene = Scene_File.new(false, false, false)"],<br>   <br>   # Menu Option 6  eg. End Game<br>   [Vocab::game_end, Cache::picture('Icon_End'), "$scene = Scene_End.new"]<br>   <br>   ] # <--- Do no Delete This<br>   <br>   #===================================================#<br>   #  **     E N D   C O N F I G U R A T I O N     **  #<br>   #===================================================#<br>  end<br>end<br>#==============================================================================<br># ** Scene_Menu<br>#------------------------------------------------------------------------------<br>#  Edited to add Ring Menu<br>#==============================================================================<p>class Scene_Menu < Scene_Base<br>  #--------------------------------------------------------------------------<br>  # * Alias Listings<br>  #--------------------------------------------------------------------------<br>  alias initialize_original initialize<br>  alias start_selection_original start_actor_selection<br>  alias end_selection_original end_actor_selection<br>  #--------------------------------------------------------------------------<br>  # * Object Initialization<br>  #--------------------------------------------------------------------------<br>  def initialize(menu_index = 0, move = true)<br>    @move = move<br>    initialize_original(menu_index)<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Start processing<br>  #--------------------------------------------------------------------------<br>  def start<br>    super<br>    create_menu_background<br>    create_command_window<br>    @gold_window = Window_Gold.new(0, 360)<br>    @location_window = Window_location.new(0, 0)<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Termination Processing<br>  #--------------------------------------------------------------------------<br>  def terminate<br>    super<br>    dispose_menu_background<br>    @command_window.dispose<br>    @gold_window.dispose<br>    @status_window.dispose if @status_window<br>    @location_window.dispose<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Frame Update<br>  #--------------------------------------------------------------------------<br>  def update<br>    super<br>    update_menu_background<br>    @command_window.update<br>    @gold_window.update<br>    @status_window.update if @status_window<br>    @location_window.update<br>    if @command_window.active<br>      update_command_selection<br>    elsif @status_window.active<br>      update_actor_selection<br>    end<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Create Command Window<br>  #--------------------------------------------------------------------------<br>  def create_command_window<br>    commands = []<br>    for i in 0...$game_ring_menu.size<br>      commands.push($game_ring_menu[i][0])<br>    end<br>    icons = []<br>    for i in 0...$game_ring_menu.size<br>      icons.push($game_ring_menu[i][1])<br>    end<br>    @command_window = Window_RingMenu.new(232, 164, commands, icons, @move, @menu_index)<br>    if $game_party.members.size == 0<br>      @command_window.disable_item(0)<br>      @command_window.disable_item(1)<br>      @command_window.disable_item(2)<br>      @command_window.disable_item(3)<br>    end<br>    if $game_system.save_disabled<br>      @command_window.disable_item(4)<br>    end<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Create Command Window<br>  #--------------------------------------------------------------------------<br>  def create_status_window<br>    names = []<br>    chars = []<br>    for i in 0...$game_party.members.size<br>      names[i] = $game_party.members[i].name<br>      chars[i] = $game_party.members[i]<br>    end<br>    @status_window = Window_RingMenu.new(255, 200, names, chars, true, $game_party.last_actor_index, true)<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Update Command Selection<br>  #--------------------------------------------------------------------------<br>  def update_command_selection<br>    if Input.trigger?(Input::<br>      Sound.play_cancel<br>      $scene = Scene_Map.new<br>    elsif Input.trigger?(Input::C)<br>      if $game_party.members.size == 0 and @command_window.index < 4<br>        Sound.play_buzzer<br>        return<br>      elsif $game_system.save_disabled and @command_window.index == 4<br>        Sound.play_buzzer<br>        return<br>      end<br>      Sound.play_decision<br>      eval($game_ring_menu[@command_window.index][2])<br>    end<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Start Actor Selection<br>  #--------------------------------------------------------------------------<br>  def start_actor_selection<br>    @command_window.active = false<br>    @command_window.visible = false<br>    create_status_window<br>    if $game_party.last_actor_index < @status_window.item_max<br>      @status_window.index = $game_party.last_actor_index<br>    else<br>      @status_window.index = 0<br>    end<br>  end<br>  #--------------------------------------------------------------------------<br>  # * End Actor Selection<br>  #--------------------------------------------------------------------------<br>  def end_actor_selection<br>    @command_window.active = true<br>    @command_window.visible = true<br>    @status_window.dispose if @status_window<br>    @status_window = nil<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Update Actor Selection<br>  #--------------------------------------------------------------------------<br>  def update_actor_selection<br>    if Input.trigger?(Input::<br>      Sound.play_cancel<br>      end_actor_selection<br>    elsif Input.trigger?(Input::C)<br>      $game_party.last_actor_index = @status_window.index<br>      Sound.play_decision<br>      eval($game_ring_menu[@command_window.index][3])<br>    end<br>  end<br>end</p>#==============================================================================<br># ** Scene_File<br>#------------------------------------------------------------------------------<br>#  Edited to return to the menu properly when loading<br>#==============================================================================<p>class Scene_File<br>  alias return_scene_original return_scene<br>  def return_scene<br>    if @from_title<br>      $scene = Scene_Title.new<br>    elsif @from_event<br>      $scene = Scene_Map.new<br>    else<br>      if @saving<br>        $scene = Scene_Menu.new($game_ring_menu.size - 3)<br>      else<br>        $scene = Scene_Menu.new($game_ring_menu.size - 2)<br>      end<br>    end<br>  end<br>end</p>#==============================================================================<br># ** Scene_End<br>#------------------------------------------------------------------------------<br>#  Edited to return to the menu properly due to loading being added<br>#==============================================================================<p>class Scene_End<br>  alias return_scene_original return_scene<br>  def return_scene<br>    $scene = Scene_Menu.new($game_ring_menu.size - 1)<br>  end<br>end</p>#==============================================================================<br># ** Window_Location<br>#------------------------------------------------------------------------------<br>#  This class shows the current map name.<br>#==============================================================================<p>class Window_location < Window_Base<br>  #--------------------------------------------------------------------------<br>  # * Object Initialization<br>  #--------------------------------------------------------------------------<br>  def initialize(x, y)<br>    super(x, y, 160, (WLH*2) + 32)<br>    self.contents = Bitmap.new(width - 32, height - 32)<br>    refresh<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Refresh<br>  #--------------------------------------------------------------------------<br>  def refresh<br>    self.contents.clear<br>    $maps = load_data("Data/MapInfos.rvdata")<br>    @map_id = $game_map.map_id<br>    @currmap = $maps[@map_id].name<br>    self.contents.font.color = system_color<br>    self.contents.draw_text(0, -4, 128, 32, "Location :")<br>    self.contents.font.color = normal_color<br>    self.contents.draw_text(0, -4+WLH, 128, 32, @currmap, 1)<br>  end<br>end</p>#==============================================================================<br># ** Window_RingMenu<br>#------------------------------------------------------------------------------<br>#  This Window creates a Ring Menu system<br>#==============================================================================<p>class Window_RingMenu < Window_Base <br>  #--------------------------------------------------------------------------<br>  # * Public Instance Variables<br>  #--------------------------------------------------------------------------<br>  attr_accessor :index<br>  attr_reader   :item_max<br>  #--------------------------------------------------------------------------<br>  # * Refresh Setup<br>  #--------------------------------------------------------------------------<br>  START = 1<br>  WAIT  = 2<br>  MOVER = 3<br>  MOVEL = 4<br>  #--------------------------------------------------------------------------<br>  # * Object Initialization<br>  #--------------------------------------------------------------------------<br>  def initialize(center_x, center_y, commands, items, move = true, index = 0, character = false)<br>    super(0, 0, 544, 416)<br>    self.contents = Bitmap.new(width-32, height-32)<br>    self.opacity = 0<br>    @move = move<br>    @char = character<br>    @startup = STARTUP_FRAMES<br>    @commands = commands<br>    @item_max = commands.size<br>    @index = index<br>    @items = items<br>    @disabled = []<br>    for i in 0...commands.size-1<br>      @disabled[i] = false<br>    end<br>    @cx = center_x<br>    @cy = center_y<br>    start_setup<br>    refresh<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Start Setup<br>  #--------------------------------------------------------------------------<br>  def start_setup<br>    @mode = START<br>    @steps = @startup<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Disable index<br>  #     index : item number<br>  #--------------------------------------------------------------------------<br>  def disable_item(index)<br>    @disabled[index] = true<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Determines if is moving<br>  #--------------------------------------------------------------------------<br>  def animation?<br>    return @mode != WAIT<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Determine if cursor is moveable<br>  #--------------------------------------------------------------------------<br>  def cursor_movable?<br>    return false if (not visible or not active)<br>    return false if (@opening or @closing)<br>    return false if animation?<br>    return true<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Move cursor right<br>  #--------------------------------------------------------------------------<br>  def cursor_right<br>    @index -= 1<br>    @index = @items.size - 1 if @index < 0<br>    @mode = MOVER<br>    @steps = MOVING_FRAMES<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Move cursor left<br>  #--------------------------------------------------------------------------<br>  def cursor_left<br>    @index += 1<br>    @index = 0 if @index >= @items.size<br>    @mode = MOVEL<br>    @steps = MOVING_FRAMES<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Frame Update<br>  #--------------------------------------------------------------------------<br>  def update<br>    super<br>    if self.active<br>      if cursor_movable?<br>        last_index = @index<br>        if Input.repeat?(Input::DOWN) or Input.repeat?(Input::RIGHT)<br>          cursor_right<br>        end<br>        if Input.repeat?(Input::UP) or Input.repeat?(Input::LEFT)<br>          cursor_left<br>        end<br>        if @index != last_index<br>          Sound.play_cursor<br>        end<br>      end<br>      refresh<br>    end<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Refresh<br>  #--------------------------------------------------------------------------<br>  def refresh   <br>    self.contents.clear<br>    case @mode<br>    when START<br>      refresh_start<br>    when WAIT<br>      refresh_wait<br>    when MOVER<br>      refresh_move(1)<br>    when MOVEL<br>      refresh_move(0)<br>    end<br>    rect = Rect.new(18, 196, self.contents.width-32, 32)<br>    self.contents.draw_text(rect, @commands[@index], 1)<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Refresh Start Period<br>  #--------------------------------------------------------------------------<br>  def refresh_start<br>    d1 = 2.0 * Math::PI / @item_max<br>    d2 = 1.0 * Math::PI / @startup<br>    for i in 0...@item_max<br>      j = i - @index<br>      if @move<br>        r = RING_R - 1.0 * RING_R * @steps / @startup<br>        d = d1 * j + d2 * @steps<br>      else<br>        r = RING_R<br>        d = d1 * j<br>      end<br>      x = @cx + ( r * Math.sin( d ) ).to_i<br>      y = @cy - ( r * Math.cos( d ) ).to_i<br>      draw_item(x, y, i)<br>    end<br>    @steps -= 1<br>    if @steps < 1<br>      @mode = WAIT<br>    end<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Refresh Wait Period<br>  #--------------------------------------------------------------------------<br>  def refresh_wait<br>    d = 2.0 * Math::PI / @item_max<br>    for i in 0...@item_max<br>      j = i - @index<br>      x = @cx + ( RING_R * Math.sin( d * j ) ).to_i<br>      y = @cy - ( RING_R * Math.cos( d * j ) ).to_i<br>      draw_item(x, y, i)<br>    end<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Refresh Movement Period<br>  #--------------------------------------------------------------------------<br>  def refresh_move( mode )<br>    d1 = 2.0 * Math::PI / @item_max<br>    d2 = d1 / MOVING_FRAMES<br>    d2 *= -1 if mode != 0<br>    for i in 0...@item_max<br>      j = i - @index<br>      d = d1 * j + d2 * @steps<br>      x = @cx + ( RING_R * Math.sin( d ) ).to_i<br>      y = @cy - ( RING_R * Math.cos( d ) ).to_i<br>      draw_item(x, y, i)<br>    end<br>    @steps -= 1<br>    if @steps < 1<br>      @mode = WAIT<br>    end<br>  end<br>  #--------------------------------------------------------------------------<br>  # * Draw Item<br>  #     x     : draw spot x-coordinate<br>  #     y     : draw spot y-coordinate<br>  #     index : item number<br>  #--------------------------------------------------------------------------<br>  def draw_item(x, y, index)<br>    if @char<br>      if @index == index<br>        draw_character(@items[index].character_name, @items[index].character_index , x, y)<br>        if @mode == WAIT<br>          draw_actor_hp_ring(@items[index], @cx, @cy-16, 50, 6, 84, 270, true)<br>          draw_actor_mp_ring(@items[index], @cx, @cy-16, 50, 6, 84, 180, false)<br>          draw_actor_exp_ring(@items[index], @cx, @cy-16, 50, 6, 155, 12, false)<br>        end<br>      else<br>        draw_character(@items[index].character_name, @items[index].character_index , x, y, false)<br>      end<br>    else<br>      rect = Rect.new(0, 0, @items[index].width, @items[index].height)<br>      if @index == index<br>        self.contents.blt( x, y, @items[index], rect )<br>        if @disabled[@index]<br>          self.contents.blt( x, y, ICON_DISABLE, rect )<br>        end<br>      else<br>        self.contents.blt( x, y, @items[index], rect, 128 )<br>      end<br>    end<br>  end<br>end</p>#==============================================================================<br># ** Window_Base<br>#------------------------------------------------------------------------------<br>#  Edited to allow disabled character icons<br>#==============================================================================<p>class Window_Base < Window<br>  #--------------------------------------------------------------------------<br>  # * Draw Character Graphic<br>  #--------------------------------------------------------------------------<br>  def draw_character(character_name, character_index, x, y, enabled = true)<br>    return if character_name == nil<br>    bitmap = Cache.character(character_name)<br>    sign = character_name[/^[\!\$]./]<br>    if sign != nil and sign.include?('$')<br>      cw = bitmap.width / 3<br>      ch = bitmap.height / 4<br>    else<br>      cw = bitmap.width / 12<br>      ch = bitmap.height / 8<br>    end<br>    n = character_index<br>    src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)<br>    self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect, enabled ? 255 : 128)<br>  end<br>end<br>

</p>

 

Especially this part:

 

    
  #-------------D-O---N-O-T---T-O-U-C-H---------------# 

 # As this script allows you to make a custom Menu I thought to make it easier 
 # I would make it possible to add extra Menu Options from here 

 # All you need to do is specify the Text to display, the icon and the command 
 # The command must be in a STRING 
 # Simply add to the array below : 

 $game_ring_menu = [ 

  # Menu Option 0  eg. Item 
  [Vocab::item, Cache::picture('Icon_Items'), "$scene = Scene_Item.new"], 

  # Menu Option 1  eg. Skill 
  [Vocab::skill, Cache::picture('Icon_Skills'), "start_actor_selection", 
    "$scene = Scene_Skill.new(@status_window.index)"], 

  # Menu Option 2  eg. Equip 
  [Vocab::equip, Cache::picture('Icon_Equip'), "start_actor_selection", 
    "$scene = Scene_Equip.new(@status_window.index)"], 

  # Menu Option 3  eg. Status 
  [Vocab::status, Cache::picture('Icon_Status'), "start_actor_selection", 
    "$scene = Scene_Status.new(@status_window.index)"], 

  #---------------------------------------------------# 
  #  **      I N S E R T   M O R E   H E R E      **  # 
  #---------------------------------------------------# 

  # Preferably Insert your custom Menu Options Here 
  # Otherwise the existing Menu Options will return to wrong point on the Menu 

  # Menu Option 4  eg. Save 
  ["Save Game", Cache::picture('Icon_Save'), "$scene = Scene_File.new(true, false, false)"], 

  # Menu Option 5  eg. Load 
  ["Load Game", Cache::picture('Icon_Load'), "$scene = Scene_File.new(false, false, false)"], 

  # Menu Option 6  eg. End Game 
  [Vocab::game_end, Cache::picture('Icon_End'), "$scene = Scene_End.new"] 

  ] # <--- Do no Delete This 

 

Share this post


Link to post
Share on other sites

That's taken from my old VX version right? Well that 'adding in' extra options isn't necessary any more. VXAce has a section to automatically do this.

Tell/show me what scripts you're trying to add in and i'll show you how =]

 

:EDIT:

 

Ok basically, something along these lines should be included in the script you're trying to add, if not just modify this (I've made it so the scriptlet will work as is):

 

 

#==============================================================================
# ** Scene_Menu
#==============================================================================

class Scene_Menu < Scene_MenuBase
 #--------------------------------------------------------------------------
 # * Create Command Window
 #--------------------------------------------------------------------------
 alias old_command_window_handlers create_command_window
 def create_command_window
old_command_window_handlers
@command_window.set_handler(:NEW,	method(:command_NEW))
 end
 #--------------------------------------------------------------------------
 # * [New] Command
 #--------------------------------------------------------------------------
 def command_NEW
SceneManager.call(Scene_NEW)
 end
end

#==============================================================================
# ** Window_MenuCommand
#==============================================================================

class Window_MenuCommand < Window_Command
 #--------------------------------------------------------------------------
 # * For Adding Original Commands
 #--------------------------------------------------------------------------
 alias old_original_commands add_original_commands
 def add_original_commands
old_original_commands
add_command(Vocab::NEW, :NEW, NEW_option_enabled)
 end
end

 

 

As you can see i've just put a place holder 'NEW' as the name.

This should be replaced with the necessary command names of your script.

Again, just link me the script and I'll do it for you.

Edited by syvkal

Share this post


Link to post
Share on other sites

Yup, that's from VX version.

That's not a thing of adding any script, but for example, freely removing options like formation, or save/load. Also adding commands like "map" (on VX there was a script "reading books", where you could display any book, note or map using a script call). I mean, I'm changing scripts database in my project very often, so I don't want to bother you with every single option I want to add or remove...

 

I'll be verry happy if you will add any optional config, or port your VX script to VXA. Really, I prefer adding/removing options on my own ;)

Share this post


Link to post
Share on other sites

This is a port, I removed that because it's not necessary anymore.

If the scripts you're getting don't automatically add to the main menu (which will then be added to mine), just ask the creator to do so - eg. with scripting like I just posted

If you're making the scripts, just familiarise yourself with those two sections I posted in the scriptlet above, it's a simple case of copy and editing.

As for removing options, again have a look through those two sections.

 

If you really want a customisation section, I will just paste that at the top of the script with instructions and an example to follow. But at the moment, this script is meant to be easier to use now its for VXAce, I don't want to add more and make it confusing for others ^-^

Share this post


Link to post
Share on other sites

Yes, i really want a customization section :)

It can be optional feature to enable/disable, or just second fersion of this script. Easy plug'n'play version and hard, bad version with customization ^^

 

If that's not a problem, I will be very grateful ^^'

Share this post


Link to post
Share on other sites

Just delete this part:

#==============================================================================
# ** Window_Location
#------------------------------------------------------------------------------
#  This class shows the current map name.
#==============================================================================
class Window_location < Window_Base
 #--------------------------------------------------------------------------
 # * Object Initialization
 #--------------------------------------------------------------------------
 def initialize(x, y)
   super(x, y, 160, (line_height*2) + 32)
   refresh
 end
 #--------------------------------------------------------------------------
 # * Refresh
 #--------------------------------------------------------------------------
 def refresh
   contents.clear
   @map = load_data(sprintf("Data/Map%03d.rvdata2", $game_map.map_id))
   change_color(system_color)
   draw_text(4, 0, 128, line_height, "Location :")
   change_color(normal_color)
   draw_text(0, line_height, 128, line_height, @map.display_name, 1)
 end
end

It's the end of the script.

I'm not scripter, but it should work.

Share this post


Link to post
Share on other sites

Not quite...

Go to this section in the script (lines 509 - 533):

#==============================================================================
# ** Scene_Menu
#==============================================================================

class Scene_Menu < Scene_MenuBase
 #--------------------------------------------------------------------------
 # * Alias Listings
 #--------------------------------------------------------------------------  
 alias start_ring_original start
 alias command_personal_ring_original command_personal
 alias command_formation_ring_original command_formation
 alias on_personal_cancel_ring_original on_personal_cancel
 #--------------------------------------------------------------------------
 # * Start Processing
 #--------------------------------------------------------------------------
 def start
   start_ring_original
   create_location_window
 end
 #--------------------------------------------------------------------------
 # * Create Location Window
 #--------------------------------------------------------------------------
 def create_location_window
   @location_window = Window_location.new(0, 0)
 end

 

Then just delete either (or both) of these lines:

create_location_window

(line 526)

or

@location_window = Window_location.new(0, 0)

(line 532)

 

Also Angius, I'm really sorry I've not made you a customisation section yet. I'm currently revising for my end of year exams, degree level Maths is a pain in the arse xD

Edited by syvkal

Share this post


Link to post
Share on other sites

Thanks, Syvkal. Big fan of your scripts, I just think the location display is unsymmetrical with the rest of the menu and it looks unappealing to me.

 

EDIT: It doesn't work, gives me an error. I even reset the script to default and it still gave me an error... on line 454...

 

EDIT: Oh, erm... uh... heh... nevermind... it's because I had an empty party.

 

If I can just ask one more question, is there a way to remove the window box from the gold display? So, it just has the numbers ( x Gold)

Edited by Plagues

Share this post


Link to post
Share on other sites

I got a bug... Yesterday the menu was working just PERFECT... but now, When I made new items, and changed them to my character.. for some reason the menu wont anymore open?.. I only see 2 windows, Location and G.

 

I got icons installed correctly, tryed re-install script... but nothing seems to help?...

 

Mm any idea what the hell is happening? :)

Share this post


Link to post
Share on other sites

@Plagues:

Yeah that's easy enough, though I think it will look a little plain ^-^

 

class Window_Gold < Window_Base
 alias initialize_opacity_original initialize
 def initialize
   initialize_opacity_original
   self.opacity = 0
 end
end

 

That should do the trick, you can place it as a new script, or even at the bottom of mine if you want.

 

@Wyrelade:

When I made new items, and changed them to my character

What do you mean?

 

And have you got any other scripts installed?

Share this post


Link to post
Share on other sites

Ah touché :P

 

Also might have a look at the script and give it a bit of a compatibility upgrade - just so it's easier to make your own ring menus.

(I'm going to be adding them to various scenes in my menus, battle etc.)

Share this post


Link to post
Share on other sites

@Plagues:

Yeah that's easy enough, though I think it will look a little plain ^-^

 

class Window_Gold < Window_Base
 alias initialize_opacity_original initialize
 def initialize
initialize_opacity_original
self.opacity = 0
 end
end

 

That should do the trick, you can place it as a new script, or even at the bottom of mine if you want.

 

@Wyrelade:

When I made new items, and changed them to my character

What do you mean?

 

And have you got any other scripts installed?

 

 

Nothing anymore :)... got it working :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×