XS - Menu Delux

Nicke

Fortune seeker
Veteran
Joined
Apr 4, 2012
Messages
539
Reaction score
534
First Language
Swedish
Primarily Uses
RMMV
Remove the save and load lines completely from the array.
 

CWells

Storyteller/Artist
Veteran
Joined
Apr 22, 2013
Messages
731
Reaction score
40
First Language
English
Primarily Uses
Oh good, it worked this time. Last time I tried that I must have hit something extra because I got a NilClass error coming from line 301. But it works now, thanks. It's a fine menu!
 

MinisterJay

Villager
Member
Joined
Nov 12, 2013
Messages
17
Reaction score
17
First Language
English
I have figured how to add or manipulate the icons on the right hand side, the details icons, but how do I get icons to appear, on the left side of the menu choices?

Thanks,

Jay
 
Last edited by a moderator:

fatalis357

Villager
Member
Joined
Jun 8, 2012
Messages
12
Reaction score
0
First Language
english
Primarily Uses
I keep getting a syntax error any time I level up
says something about line line 276 '+'
any ideas?
[iam using falcao pearl system abs as well]

the exact error is
line 276: Nomethoderror
undefined method '+' for nil:NilClass
 
Last edited by a moderator:

BigJoshieC

Rip Van Winkle III
Member
Joined
Dec 21, 2013
Messages
18
Reaction score
0
First Language
English
Primarily Uses
Is anyone else seeing this issue when you use script calls to remove items from the menu?

strange.png

It looks like it's reading the descriptions in descending order rather than skipping a menu option description that has been removed via script calls. For instance, in the original script equip is the second option but if I remove that then skill inherits its description. Likewise, I have Save as the third option down but it inherits skill's description (which is the third menu item in the original script.)

EDIT: This happens on a clean project with just these two scripts.
 
Last edited by a moderator:

kylehac673

Warper
Member
Joined
Jan 12, 2014
Messages
2
Reaction score
0
First Language
English
Primarily Uses
Hey, I was wondering if this script could possible be made compatible with the Crystal Engine GF System??

I've tried everything I could think of for the moment and I've pasted the 4 scripts that it uses below also the last one is the current Menu Script it does work with, but yours is much nicer :)

Crystal Engine - Basic Module

#==============================================================================

# Crystal Engine -  Basic Module

#------------------------------------------------------------------------------

# Current Version: 1.10

#==============================================================================

$imported = {} if $imported.nil?

$imported["CE-BasicModule"] = true

=begin

this is a basic moule of some funtions in the final fantasy series that are

farily important as well as some fixes from the defualt that needed to be fixed

 

please place any other scripts that alter the diplay of HP and MP bars above 

this script

 

the current_time method has been added for using real time funtions

=end

module CRYSTAL

  module BASIC

    

    TITLE_WIDTH = 160 #allows for a wider title command window default 160

    

    #--------------------------------------------------------------------------

    # the next settings are to remove hp gauges from the battle and menu

    # this also allows for maximum values to be shown

    #--------------------------------------------------------------------------

    MENU_HP_BAR = true

    MENU_HP_MAX = true

    MENU_MP_BAR = true

    MENU_MP_MAX = true

    BATTLE_HP_BAR = true

    BATTLE_HP_MAX = true

    BATTLE_MP_BAR = true

    BATTLE_MP_MAX = true

    

    REMOVE_MP_DISPLAY = false #get rid of the MP bar completely

    

    MOVE_CLASS_NAME_OVER = 0 #move the class name over x many pixles

    

    MOVE_NAME_VERTICAL = 0 #move the actor name up x many pixels

    

    GROUP_DIGITS = true # if you want to group digits i.e. 1000 becomes 1,000

  end

end

#==============================================================================

# Editing beyond this point may cause stone, zombie, mist frenzy, and/or toad,

# so edit at your own risk.

#==============================================================================

module CRYSTAL

  module CHECK

    #--------------------------------------------------------------------------

    # * Script Name Guide

    #--------------------------------------------------------------------------

    def self.scripts_list(name)

    end

  end

end

#==============================================================================

# ■ Numeric

#==============================================================================

 

class Numeric  

  

  #--------------------------------------------------------------------------

  # new method: group_digits

  #--------------------------------------------------------------------------

  def group

    return self.to_s unless CRYSTAL::BASIC::GROUP_DIGITS

    self.to_s.gsub(/(\d)(?=\d{3}+(?:\.|$))(\d{3}\..*)?/,'\1,\2')

  end

  

end # Numeric

#==============================================================================

# ** SceneManager

#------------------------------------------------------------------------------

#  This module manages scene transitions. For example, it can handle

# hierarchical structures such as calling the item screen from the main menu

# or returning from the item screen to the main menu.

#==============================================================================

 

module SceneManager

  #--------------------------------------------------------------------------

  # * Direct Transition

  #--------------------------------------------------------------------------

  def self.goto(scene_class, *arguments)

    @scene = scene_class.new(*arguments)

  end

  #--------------------------------------------------------------------------

  # * Call

  #--------------------------------------------------------------------------

  def self.call(scene_class, *arguments)

    @stack.push(@scene)

    @scene = scene_class.new(*arguments)

  end

end

#==============================================================================

# ** DataManager

#------------------------------------------------------------------------------

#  This module manages the database and game objects. Almost all of the 

# global variables used by the game are initialized by this module.

#==============================================================================

 

module DataManager

  #--------------------------------------------------------------------------

  # * Extract Save Contents

  #--------------------------------------------------------------------------

  class <<self; alias ce_basic_extract_save_contents extract_save_contents; end

  def self.extract_save_contents(contents)

    ce_basic_extract_save_contents(contents)

    load_extra_data

  end

  #--------------------------------------------------------------------------

  # * Load Extra Data

  #--------------------------------------------------------------------------

  def self.load_extra_data

    $data_actors += $game_party.extra_data[:actors]

    $data_classes += $game_party.extra_data[:classes]

    $data_skills += $game_party.extra_data[:skills]

    $data_items += $game_party.extra_data[:items]

    $data_weapons += $game_party.extra_data[:weapons]

    $data_armors += $game_party.extra_data[:armors]

    $data_enemies += $game_party.extra_data[:enemies]

    $data_troops += $game_party.extra_data[:troops]

    $data_states += $game_party.extra_data[:states]

    $data_animations += $game_party.extra_data[:animations]

    $data_tilesets += $game_party.extra_data[:tilesets]

    $data_common_events += $game_party.extra_data[:common_events]

  end

end

#==============================================================================

# ** Game_Party

#------------------------------------------------------------------------------

#  This class handles parties. Information such as gold and items is included.

# Instances of this class are referenced by $game_party.

#==============================================================================

 

class Game_Party < Game_Unit

  #--------------------------------------------------------------------------

  # * Public Instance Variables

  #--------------------------------------------------------------------------

  attr_accessor :extra_data         # The database

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  alias ce_basic_init initialize

  def initialize

    ce_basic_init

    @extra_data = {

      :actors        => [],

      :classes       => [],

      :skills        => [],

      :items         => [],

      :weapons       => [],

      :armors        => [],

      :enemies       => [],

      :troops        => [],

      :states        => [],

      :animations    => [],

      :tilesets      => [],

      :common_events => [],

      :system        => {},

      :mapinfos      => {}

    }

    $data_mapinfos.each_value do |info|

      @extra_data[:mapinfos][info.parent_id] = {}

    end

  end

end

#==============================================================================

# ** Window_TitleCommand

#------------------------------------------------------------------------------

#  This window is for selecting New Game/Continue on the title screen.

#==============================================================================

 

class Window_TitleCommand < Window_Command

  #--------------------------------------------------------------------------

  # * Get Window Width

  #--------------------------------------------------------------------------

  def window_width

    return CRYSTAL::BASIC::TITLE_WIDTH

  end

end

#==============================================================================

# ** Window_Base

#------------------------------------------------------------------------------

#  This is a super class of all windows within the game.

#==============================================================================

 

class Window_Base < Window

  #--------------------------------------------------------------------------

  # * Draw HP

  #--------------------------------------------------------------------------

  alias crystal_draw_hp draw_actor_hp

  def draw_actor_hp(actor, x, y, width = 124)

    if CRYSTAL::BASIC::MENU_HP_BAR

      crystal_draw_hp(actor, x, y, width)

    else

      change_color(system_color)

      draw_text(x, y, 30, line_height, Vocab::hp_a)

      crystal_current_and_max_hp(x, y, width, actor.hp, actor.mhp,

        hp_color(actor), normal_color)

    end

  end

  #--------------------------------------------------------------------------

  # * Draw MP

  #--------------------------------------------------------------------------

  alias crystal_draw_mp draw_actor_mp

  def draw_actor_mp(actor, x, y, width = 124)

    if CRYSTAL::BASIC::MENU_MP_BAR

      crystal_draw_mp(actor, x, y, width)

    else

      change_color(system_color)

      draw_text(x, y, 30, line_height, Vocab::mp_a)

      crystal_current_and_max_mp(x, y, width, actor.mp, actor.mmp,

        mp_color(actor), normal_color)

    end

  end

  #---------------------------------------------------------------------------

  # controled current and max value

  #---------------------------------------------------------------------------

  def crystal_current_and_max_hp(dx, dy, dw, current, max, color1, color2)

    if CRYSTAL::BASIC::MENU_HP_MAX

      total = current.group + "/" + max.group

      if dw < text_size(total).width + text_size(Vocab.hp).width

        change_color(color1)

        draw_text(dx, dy, dw, line_height, current.group, 2)

      else

        xr = dx + text_size(Vocab.hp).width

        dw -= text_size(Vocab.hp).width

        change_color(color2)

        text = "/" + max.group

        draw_text(xr, dy, dw, line_height, text, 2)

        dw -= text_size(text).width

        change_color(color1)

        draw_text(xr, dy, dw, line_height, current.group, 2)

      end

    else

      draw_text(dx, dy, dw, line_height, current.group, 2)

    end

  end

  

  def crystal_current_and_max_mp(dx, dy, dw, current, max, color1, color2)

    if CRYSTAL::BASIC::MENU_MP_MAX

      total = current.group + "/" + max.group

      if dw < text_size(total).width + text_size(Vocab.hp).width

        change_color(color1)

        draw_text(dx, dy, dw, line_height, current.group, 2)

      else

        xr = dx + text_size(Vocab.hp).width

        dw -= text_size(Vocab.hp).width

        change_color(color2)

        text = "/" + max.group

        draw_text(xr, dy, dw, line_height, text, 2)

        dw -= text_size(text).width

        change_color(color1)

        draw_text(xr, dy, dw, line_height, current.group, 2)

      end

    else

      draw_text(dx, dy, dw, line_height, current.group, 2)

    end

  end

  #--------------------------------------------------------------------------

  # alias method: draw_actor_class

  #--------------------------------------------------------------------------

  alias draw_actor_class_ce draw_actor_class

  def draw_actor_class(actor, x, y, width = 112)

    draw_actor_class_ce(actor, x + CRYSTAL::BASIC::MOVE_CLASS_NAME_OVER, y, width)

  end

  #--------------------------------------------------------------------------

  # * Draw Name

  #--------------------------------------------------------------------------

  alias crystal_draw_name draw_actor_name

  def draw_actor_name(actor, x, y, width = 112)

    crystal_draw_name(actor, x, y + CRYSTAL::BASIC::MOVE_NAME_VERTICAL, width)

  end

  if $imported["YEA-AceMenuEngine"]

  #--------------------------------------------------------------------------

  # overwrite method: draw_actor_simple_status

  #--------------------------------------------------------------------------

  def draw_actor_simple_status(actor, dx, dy)

    dy -= line_height / 2

    draw_actor_name(actor, dx, dy)

    draw_actor_level(actor, dx, dy + line_height * 1)

    draw_actor_icons(actor, dx, dy + line_height * 2)

    dw = contents.width - dx - 124

    draw_actor_class(actor, dx + 120, dy, dw)

    draw_actor_hp(actor, dx + 120, dy + line_height * 1, dw)

    if YEA::MENU::DRAW_TP_GAUGE && actor.draw_tp? && !actor.draw_mp?

      draw_actor_tp(actor, dx + 120, dy + line_height * 2, dw)

    elsif YEA::MENU::DRAW_TP_GAUGE && actor.draw_tp? && actor.draw_mp?

      if $imported["YEA-BattleEngine"]

        draw_actor_tp(actor, dx + 120, dy + line_height * 2, dw/2 + 1)

        draw_actor_mp(actor, dx + 120 + dw/2, dy + line_height * 2, dw/2) unless CRYSTAL::BASIC::REMOVE_MP_DISPLAY

      else

        draw_actor_mp(actor, dx + 120, dy + line_height * 2, dw/2 + 1) unless CRYSTAL::BASIC::REMOVE_MP_DISPLAY

        draw_actor_tp(actor, dx + 120 + dw/2, dy + line_height * 2, dw/2)

      end

    else

      draw_actor_mp(actor, dx + 120, dy + line_height * 2, dw) unless CRYSTAL::BASIC::REMOVE_MP_DISPLAY

    end

  end

  else

  #--------------------------------------------------------------------------

  # * Draw Simple Status

  #--------------------------------------------------------------------------

  def draw_actor_simple_status(actor, x, y)

    draw_actor_name(actor, x, y)

    draw_actor_level(actor, x, y + line_height * 1)

    draw_actor_icons(actor, x, y + line_height * 2)

    draw_actor_class(actor, x + 120, y)

    draw_actor_hp(actor, x + 120, y + line_height * 1)

    draw_actor_mp(actor, x + 120, y + line_height * 2) unless CRYSTAL::BASIC::REMOVE_MP_DISPLAY

  end

  end

end

#==============================================================================

# ** Window_BattleStatus

#------------------------------------------------------------------------------

#  This window is for displaying the status of party members on the battle

# screen.

#==============================================================================

 

class Window_BattleStatus < Window_Selectable

  #--------------------------------------------------------------------------

  # * Draw HP

  #--------------------------------------------------------------------------

  alias crystal_draw_hp draw_actor_hp

  def draw_actor_hp(actor, x, y, width = 124)

    if CRYSTAL::BASIC::BATTLE_HP_BAR

      draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)

    end

    change_color(system_color)

    draw_text(x, y, 30, line_height, Vocab::hp_a)

    crystal_current_and_max_hp(x, y, width, actor.hp, actor.mhp,

      hp_color(actor), normal_color)

  end

  #--------------------------------------------------------------------------

  # * Draw MP

  #--------------------------------------------------------------------------

  alias crystal_draw_mp draw_actor_mp

  def draw_actor_mp(actor, x, y, width = 124)

    if CRYSTAL::BASIC::BATTLE_MP_BAR

      draw_gauge(x, y, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)

    end

    change_color(system_color)

    draw_text(x, y, 30, line_height, Vocab::mp_a)

    crystal_current_and_max_mp(x, y, width, actor.mp, actor.mmp,

      mp_color(actor), normal_color)

  end

  #---------------------------------------------------------------------------

  # controled current and max value

  #---------------------------------------------------------------------------

  def crystal_current_and_max_hp(dx, dy, dw, current, max, color1, color2)

    if CRYSTAL::BASIC::BATTLE_HP_MAX

      total = current.group + "/" + max.group

      if dw < text_size(total).width + text_size(Vocab.hp).width

        change_color(color1)

        draw_text(dx, dy, dw, line_height, current.group, 2)

      else

        xr = dx + text_size(Vocab.hp).width

        dw -= text_size(Vocab.hp).width

        change_color(color2)

        text = "/" + max.group

        draw_text(xr, dy, dw, line_height, text, 2)

        dw -= text_size(text).width

        change_color(color1)

        draw_text(xr, dy, dw, line_height, current.group, 2)

      end

    else

      draw_text(dx, dy, dw, line_height, current.group, 2)

    end

  end

  

  def crystal_current_and_max_mp(dx, dy, dw, current, max, color1, color2)

    if CRYSTAL::BASIC::BATTLE_MP_MAX

      total = current.group + "/" + max.group

      if dw < text_size(total).width + text_size(Vocab.hp).width

        change_color(color1)

        draw_text(dx, dy, dw, line_height, current.group, 2)

      else

        xr = dx + text_size(Vocab.hp).width

        dw -= text_size(Vocab.hp).width

        change_color(color2)

        text = "/" + max.group

        draw_text(xr, dy, dw, line_height, text, 2)

        dw -= text_size(text).width

        change_color(color1)

        draw_text(xr, dy, dw, line_height, current.group, 2)

      end

    else

      draw_text(dx, dy, dw, line_height, current.group, 2)

    end

  end

end

#==============================================================================

# ** Game_Actor

#------------------------------------------------------------------------------

#  This class handles actors. It is used within the Game_Actors class

# ($game_actors) and is also referenced from the Game_Party class ($game_party).

#==============================================================================

 

class Game_Actor < Game_Battler

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  alias crystal_basic_init initialize

  def initialize(actor_id)

    crystal_basic_init(actor_id)

    refresh

  end

end

#==============================================================================

# ** Game_Message

#------------------------------------------------------------------------------

#  This class handles the state of the message window that displays text or

# selections, etc. The instance of this class is referenced by $game_message.

#==============================================================================

 

class Game_Message

  #--------------------------------------------------------------------------

  # * Add Text

  #--------------------------------------------------------------------------

  alias ce_basic_add_text add

  def add(text)

    return unless text.is_a?(String)

    return if text.empty?

    ce_basic_add_text(text)

  end

end

#==============================================================================

# ** Object

#------------------------------------------------------------------------------

#  This class is the superclass of all other classes.

#==============================================================================

 

class Object

  #----------------------------------------------------------------------------

  # * Time

  #----------------------------------------------------------------------------

  def current_time

    Time.now 

  end

end

#==============================================================================

# ** Scene_Base

#------------------------------------------------------------------------------

#  This is a super class of all scenes within the game.

#==============================================================================

 

class Scene_Base

  #--------------------------------------------------------------------------

  # * Start Processing

  #--------------------------------------------------------------------------

  alias always_present_start start

  def start

    always_present_start

    @message_window = Window_Message.new unless SceneManager.scene_is?(Scene_Title)

  end

end

#==============================================================================

# ** Window_HorzCommand

#------------------------------------------------------------------------------

#  This is a command window for the horizontal selection format.

#==============================================================================

 

class Window_HorzCommand < Window_Command

  #--------------------------------------------------------------------------

  # * Set Leading Digits - BUGFIX Credit ro Fomar0153

  #--------------------------------------------------------------------------

  def top_col=(col)

    col = 0 if col < 0     

    col = item_max - (col_max - 1) if col > item_max - 1

    self.ox = col * (item_width + spacing)

  end

end

#==============================================================================



# ▼ End of File



#==============================================================================

Crystal Engine - Guardian Forces

#==============================================================================

# Crystal Engine -  Guardian Forces

#------------------------------------------------------------------------------

# Current Version: 1.00

#==============================================================================

$imported = {} if $imported.nil?

$imported["CE-GF"] = true

=begin

This script is a script that creates Guardian Forces(GF), actors that function 

as summons. Each functions in the party as a summon character. You can't do 

anything with this script alone

------------------------------------------------------------------------------

Notetags:

Actor Notes

<GF> # Sets the Actor as a GF

=end

#==============================================================================

# Editing beyond this point may cause stone, zombie, mist frenzy, and/or toad,

# so edit at your own risk.

#==============================================================================

module CRYSTAL

module CHECK

#--------------------------------------------------------------------------

# * Checks if you have a certain script installed

#--------------------------------------------------------------------------

def self.require(self_name, script, site = "http://crystalnoel42.wordpress.com")

unless $imported["CE-BasicModule"]

msg = "The script '#{self_name}' requires the latest\n"

msg += "version of 'Crystal Engine - Basic Module' to work properly\n"

msg += "Go to http://crystalnoel42.wordpress.com/ to download this script."

raise SyntaxError.new(msg)

end

unless $imported[script]

msg = "The script '#{self_name}' requires the latest\n"

msg += "version of #{scripts_list(script)} to work properly\n"

msg += "Go to #{site} to download this script."

raise SyntaxError.new(msg)

end

end

  end

end

CRYSTAL::CHECK.require("Crystal Engine - Guardian Forces", "CE-BasicModule")

#==============================================================================

# ** RPG::Actor

#------------------------------------------------------------------------------

#  The data class for actors.

#==============================================================================

 

class RPG::Actor < RPG::BaseItem

  #--------------------------------------------------------------------------

  # * Is the Actor a GF?

  #--------------------------------------------------------------------------

  def gf?

    if @note =~ /<GF>/i

      return true

    else

      return false

    end

  end

end

#==============================================================================

# ** Game_Party

#------------------------------------------------------------------------------

#  This class handles parties. Information such as gold and items is included.

# Instances of this class are referenced by $game_party.

#==============================================================================

 

class Game_Party < Game_Unit

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  alias gf_init initialize

  def initialize

    gf_init

    @gfs = []

  end

  #--------------------------------------------------------------------------

  # * Guardian Forces

  #--------------------------------------------------------------------------

  def guardian_forces

    set = []

    @gfs.compact.each do |actor_id| 

      set.push($game_actors[actor_id]) if $game_actors[actor_id].actor.gf?

    end

    set

  end

  #--------------------------------------------------------------------------

  # * Add an Actor

  #--------------------------------------------------------------------------

  alias add_normal_actor add_actor

  def add_actor(actor_id)

    if $data_actors[actor_id].gf?

      @gfs.push(actor_id) unless @gfs.include?(actor_id)

    else

      add_normal_actor(actor_id)

    end

  end

  #--------------------------------------------------------------------------

  # * Remove Actor

  #--------------------------------------------------------------------------

  alias remove_normal_actor remove_actor

  def remove_actor(actor_id)

    if $data_actors[actor_id].gf?

      @gfs.delete(actor_id) if @gfs.include?(actor_id)

    else

      remove_normal_actor(actor_id)

    end

  end

  #--------------------------------------------------------------------------

  # * Initial Party Setup

  #--------------------------------------------------------------------------

  alias create_starting_party setup_starting_members

  def setup_starting_members

    create_starting_party

    members.each do |actor|

      if actor.actor.gf?

        @actors.delete(actor.id)

        @gfs.push(actor.id)

      end

    end

  end

end

#==============================================================================



# ▼ End of File



#==============================================================================
 

kylehac673

Warper
Member
Joined
Jan 12, 2014
Messages
2
Reaction score
0
First Language
English
Primarily Uses
It said my post was too long x-x Here's the rest my apologies xO

Crystal Engine - GF Junction

#==============================================================================

# Crystal Engine -  GF Junction

#------------------------------------------------------------------------------

# Current Version: 1.00

#==============================================================================

$imported = {} if $imported.nil?

$imported["CE-GFJunction"] = true

=begin

This script allows you to junction GFs to your party members. Allowing the GFs to

gain exp and their own points called AP. With that they can learn abilities that

are then given to the actor.

--------------------------------------------------------------------------------

Notetags:

Class Notes

<learn by ap> # With this in the class learning box the skill is learned by AP

# Instead of Level up

Skill Notes

<gf skill: x> # Sets it as a GF Learn Skill for x AP

Enemy Notes

<ap: x> # Sets the AP distributed to x

--------------------------------------------------------------------------------

Script Calls:

gain_ap(actor_id, ap) # Gives AP to the specifies actor in the field

=end

module CRYSTAL

  module JUNCTION

    

    #--------------------------------------------------------------------------

    # * Message when you gain AP

    #--------------------------------------------------------------------------

    AP_GAIN = "Gained %s %s!"

    

    #--------------------------------------------------------------------------

    # * Term Used for AP

    #--------------------------------------------------------------------------

    AP_TERM = "AP"

    

  end

end

#==============================================================================

# Editing beyond this point may cause stone, zombie, mist frenzy, and/or toad,

# so edit at your own risk.

#==============================================================================

module CRYSTAL

module CHECK

#--------------------------------------------------------------------------

# * Checks if you have a certain script installed

#--------------------------------------------------------------------------

def self.require(self_name, script, site = "http://crystalnoel42.wordpress.com")

unless $imported["CE-BasicModule"]

msg = "The script '#{self_name}' requires the latest\n"

msg += "version of 'Crystal Engine - Basic Module' to work properly\n"

msg += "Go to http://crystalnoel42.wordpress.com/ to download this script."

raise SyntaxError.new(msg)

end

unless $imported[script]

msg = "The script '#{self_name}' requires the latest\n"

msg += "version of #{scripts_list(script)} to work properly\n"

msg += "Go to #{site} to download this script."

raise SyntaxError.new(msg)

end

end

require("Crystal Engine - GF Junction", "CE-BasicModule")

#--------------------------------------------------------------------------

# * Script Name Guide

#--------------------------------------------------------------------------

class <<self; alias scripts_list_gf scripts_list; end

def self.scripts_list(name)

scripts_list_gf(name)

case name

when "CE-GF"

return "Crystal Engine -  Guardian Forces"

end

end

end

end

CRYSTAL::CHECK.require("Crystal Engine - GF Junction", "CE-GF")

#==============================================================================

# ** RPG::Class::Learning

#------------------------------------------------------------------------------

#  The data class for a class's [skills to Learn].

#==============================================================================

 

class RPG::Class::Learning

  #--------------------------------------------------------------------------

  # * Learn by AP

  #--------------------------------------------------------------------------

  def learn_by_ap?

    if @note =~ /<LEARN BY AP>/i

      return true

    else

      return false

    end

  end

end

#==============================================================================

# ** RPG::Skill

#------------------------------------------------------------------------------

#  The data class for skills.

#==============================================================================

 

class RPG::Skill < RPG::UsableItem

  #--------------------------------------------------------------------------

  # * AP Required

  #--------------------------------------------------------------------------

  def ap_needed

    if @note =~ /<GF SKILL: (\d+)>/i

      return $1.to_i

    else

      return 1

    end

  end

end

#==============================================================================

# ** RPG::Enemy

#------------------------------------------------------------------------------

#  The data class for enemies.

#==============================================================================

 

class RPG::Enemy < RPG::BaseItem

  #--------------------------------------------------------------------------

  # * AP Given Upon Death

  #--------------------------------------------------------------------------

  def ap

    if @note =~ /<AP: (\d+)>/i

      return $1.to_i

    else

      return 0

    end

  end

end

#==============================================================================

# ** BattleManager

#------------------------------------------------------------------------------

#  This module manages battle progress.

#==============================================================================

 

module BattleManager

  #--------------------------------------------------------------------------

  # * Display EXP Earned

  #--------------------------------------------------------------------------

  class <<self; alias display_exp_ce_junction display_exp; end

  def self.display_exp

    display_exp_ce_junction

    if $game_troop.ap_total > 0

      text = sprintf(CRYSTAL::JUNCTION::AP_GAIN, $game_troop.ap_total, CRYSTAL::JUNCTION::AP_TERM)

      $game_message.add('\.' + text)

    end

  end

  #--------------------------------------------------------------------------

  # * EXP Acquisition and Level Up Display

  #--------------------------------------------------------------------------

  class <<self; alias gain_exp_ce_junction gain_exp; end

  def self.gain_exp

    $game_party.guardian_forces.each do |actor|

      actor.gain_ap($game_troop.ap_total)

      if actor.learning_skills[actor.learning_skill][0] == actor.learning_skills[actor.learning_skill][1]

        text = sprintf(Vocab::obtainSkill, $data_skills[actor.learning_skill].name)

        $game_message.add('\.' + text)

      end

      if actor.junctioned_actor

        actor.gain_exp($game_troop.exp_total / actor.junctioned_actor.junctioned_actors.size)

      end

    end

    gain_exp_ce_junction

  end

end

#==============================================================================

# ** Game_Actor

#------------------------------------------------------------------------------

#  This class handles actors. It is used within the Game_Actors class

# ($game_actors) and is also referenced from the Game_Party class ($game_party).

#==============================================================================

 

class Game_Actor < Game_Battler

  #--------------------------------------------------------------------------

  # * Public Instance Variables

  #--------------------------------------------------------------------------

  attr_accessor :learning_skills          # The Skills Being Learned

  attr_accessor :junctioned_actor         # The Junctioned Actor

  attr_accessor :junctioned_actors        # The List or Actors Equiped

  attr_accessor :learning_skill           # The Skill being learned

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  alias gf_junction_init initialize

  def initialize(actor_id)

    gf_junction_init(actor_id)

    @junctioned_actors = []

    @junctioned_actor = nil

    @learning_skills = {}

    self.class.learnings.each do |learning|

      if learning.learn_by_ap?

        @learning_skills[learning.skill_id] ||= [0, $data_skills[learning.skill_id].ap_needed]

      end

    end

    @learning_skill = @learning_skills.keys[0]

  end

  #--------------------------------------------------------------------------

  # * Junctioned to an Actor

  #--------------------------------------------------------------------------

  def junctioned?

    actor.gf? && @junctioned_actor

  end

  #--------------------------------------------------------------------------

  # * Actors Junctioned to Self

  #--------------------------------------------------------------------------

  def juntioned_actors

    @junctioned_actor.compact.collect {|actor_id| $game_actors[actor_id]}

  end

  #--------------------------------------------------------------------------

  # * Get Added Skill Types

  #--------------------------------------------------------------------------

  def added_skill_types

    set = super 

    junctioned_actors.each {|actor| set += actor.added_skill_types}

    set.uniq

  end

  #--------------------------------------------------------------------------

  # * Change Experience

  #     show : Level up display flag

  #--------------------------------------------------------------------------

  alias change_exp_gf_junction change_exp

  def change_exp(exp, show)

    value = exp - self.exp

    @junctioned_actors.each do |actor|

      actor.change_exp(actor.exp + (value / @junctioned_actors.size), show)

    end

    change_exp_gf_junction(exp, show)

  end

  #--------------------------------------------------------------------------

  # * Change Class

  #     keep_exp:  Keep EXP

  #--------------------------------------------------------------------------

  alias change_class_gf_junction change_class

  def change_class(class_id, keep_exp = false)

    change_class_gf_junction(class_id, keep_exp)

    self.class.learnings.each do |learning|

      @learning_skills[learning.skill_id] ||= [0, $data_skills[learning.skill_id]]

    end

  end

  #--------------------------------------------------------------------------

  # * Get Skill Object Array

  #--------------------------------------------------------------------------

  alias full_skills_array skills

  def skills

    set = full_skills_array

    @learning_skills.each_key do |i|

      unless @learning_skills[0] == @learning_skills[1]

        set.delete($data_skills) unless SceneManager.scene_is?(Scene_Junction) | SceneManager.scene_is?(Scene_GFMenu)

      end

    end

    @junctioned_actors.each do |actor|

      set += actor.skills

    end

    set.uniq

  end

  #--------------------------------------------------------------------------

  # * Do you have this skill?

  #--------------------------------------------------------------------------

  def has_skill?(id)

    if @learning_skills.has_key?(id)

      return true if @learning_skills[id][0] == @learning_skills[id][1]

    else

      return true

    end

    return false

  end

  #--------------------------------------------------------------------------

  # * Get AP

  #--------------------------------------------------------------------------

  def gain_ap(ap)

    @learning_skills[@learning_skill][0] += [ap, @learning_skills[@learning_skill][1] - @learning_skills[@learning_skill][0]].min

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  alias refresh_ce_gf_juntion refresh

  def refresh

    refresh_ce_gf_juntion

    return if @learning_skills.nil?

    return if @learning_skills.empty?

    return if @learning_skill == 0

    if @learning_skills[@learning_skill][0] == @learning_skills[@learning_skill][1]

      skills = @learning_skills.keys

      index = skills.index(@learning_skill)

      @learning_skill = skills[index + 1]

      

      

      if @learning_skill.nil?

        @learning_skills.each do |key, ap|

          unless ap[0] == ap[1]

            @learning_skill = key

            return

          end

        end

      end

      if @learning_skill.nil?

        @learning_skill = skills[index]

      end

    end

  end

end

#==============================================================================

# ** Game_Enemy

#------------------------------------------------------------------------------

#  This class handles enemies. It used within the Game_Troop class 

# ($game_troop).

#==============================================================================

 

class Game_Enemy < Game_Battler

  #--------------------------------------------------------------------------

  # * Get AP

  #--------------------------------------------------------------------------

  def ap

    enemy.ap

  end

end

#==============================================================================

# ** Game_Troop

#------------------------------------------------------------------------------

#  This class handles enemy groups and battle-related data. Also performs

# battle events. The instance of this class is referenced by $game_troop.

#==============================================================================

 

class Game_Troop < Game_Unit

  #--------------------------------------------------------------------------

  # * Calculate AP

  #--------------------------------------------------------------------------

  def ap_total

    dead_members.inject(0) {|r, enemy| r += enemy.ap }

  end

end

#==============================================================================

# ** Game_Interpreter

#------------------------------------------------------------------------------

#  An interpreter for executing event commands. This class is used within the

# Game_Map, Game_Troop, and Game_Event classes.

#==============================================================================

 

class Game_Interpreter

  #--------------------------------------------------------------------------

  # * Gain AP

  #--------------------------------------------------------------------------

  def gain_ap(actor_id, ap)

    $game_actors[actor_id].gain_ap(ap)

    $game_actors[actor_id].refresh

  end

end

#==============================================================================

# ** Window_GFCommand

#------------------------------------------------------------------------------

#  This window deals with the list of GFs

#==============================================================================

 

class Window_GFCommand < Window_Command

  #--------------------------------------------------------------------------

  # * Public Instance Variables

  #--------------------------------------------------------------------------

  attr_accessor :skill_window

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  def initialize(x, y)

    super(x, y)

    @actor = nil

  end

  #--------------------------------------------------------------------------

  # * Get Window Width

  #--------------------------------------------------------------------------

  def window_width

    return 160

  end

  #--------------------------------------------------------------------------

  # * Set Actor

  #--------------------------------------------------------------------------

  def actor=(actor)

    return if @actor == actor

    @actor = actor

    refresh

    select_last

  end

  #--------------------------------------------------------------------------

  # * Get Number of Lines to Show

  #--------------------------------------------------------------------------

  def visible_line_number

    return 3

  end

  #--------------------------------------------------------------------------

  # * Create Command List

  #--------------------------------------------------------------------------

  def make_command_list

    $game_party.guardian_forces.each do |gf| 

      add_command(gf.name, :junction)

    end

  end

  #--------------------------------------------------------------------------

  # * Draw Item

  #--------------------------------------------------------------------------

  def draw_item(index)

    actor = $game_party.guardian_forces[index]

    change_color(normal_color, !actor.junctioned?)

    draw_text(item_rect_for_text(index), command_name(index), alignment)

  end

  #--------------------------------------------------------------------------

  # * Restore Previous Selection Position

  #--------------------------------------------------------------------------

  def select_last

    select(0)

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    super

    @skill_window.actor = @actor if @skill_window

  end

end

#==============================================================================

# ** Window_JunctionActor

#------------------------------------------------------------------------------

#  This window deals with the Listing of the 

#==============================================================================

 

class Window_JunctionActor < Window_Command

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  def initialize(x, y, command_window)

    @command_window = command_window

    super(x, y)

  end

  #--------------------------------------------------------------------------

  # * Get Number of Lines to Show

  #--------------------------------------------------------------------------

  def visible_line_number

    return 1

  end

  #--------------------------------------------------------------------------

  # * Create Command List

  #--------------------------------------------------------------------------

  def make_command_list

    actor = $game_party.guardian_forces[@command_window.index]

    if actor.junctioned_actor

      add_command(actor.junctioned_actor.name, :junction)

    end

  end

end

#==============================================================================

# ** Window_SkillListJunction

#------------------------------------------------------------------------------

#  This window is for displaying a list of available skills on the skill window.

#==============================================================================

 

class Window_SkillListJunction < Window_SkillList

  #--------------------------------------------------------------------------

  # * Include in Skill List? 

  #--------------------------------------------------------------------------

  alias include_stype? include?

  def include?(item)

    include_stype?(item) || @stype_id == 0

  end

  #--------------------------------------------------------------------------

  # * Display Skill in Active State?

  #--------------------------------------------------------------------------

  def enable?(item)

    item && @actor.has_skill?(item.id)

  end

end

#==============================================================================

# ** Scene_Junction

#------------------------------------------------------------------------------

#  This class performs the Junction Process screen.

#==============================================================================

 

class Scene_Junction < Scene_MenuBase

  #--------------------------------------------------------------------------

  # * Start Processing

  #--------------------------------------------------------------------------

  def start

    super

    create_help_window

    create_command_window

    create_status_window

    create_item_window

  end

  #--------------------------------------------------------------------------

  # * Create Command Window

  #--------------------------------------------------------------------------

  def create_command_window

    wy = @help_window.height

    @command_window = Window_GFCommand.new(0, wy)

    @command_window.viewport = @viewport

    @command_window.help_window = @help_window

    @command_window.actor = @actor

    @command_window.set_handler:)junction, method:)command_junction))

    @command_window.set_handler:)cancel,   method:)return_scene))

    @command_window.set_handler:)pagedown, method:)next_actor))

    @command_window.set_handler:)pageup,   method:)prev_actor))

    @actor_name_window = Window_JunctionActor.new(0, wy - 12 + @command_window.height, @command_window)

    @actor_name_window.z += 300

    @actor_name_window.unselect

  end

  #--------------------------------------------------------------------------

  # * Create Status Window

  #--------------------------------------------------------------------------

  def create_status_window

    y = @help_window.height

    @status_window = Window_SkillStatus.new(@command_window.width, y)

    @status_window.viewport = @viewport

    @status_window.actor = @actor

  end

  #--------------------------------------------------------------------------

  # * Create Item Window

  #--------------------------------------------------------------------------

  def create_item_window

    wx = 0

    wy = @status_window.y + @status_window.height

    ww = Graphics.width

    wh = Graphics.height - wy

    @item_window = Window_SkillListJunction.new(wx, wy, ww, wh)

    @command_window.skill_window = @item_window

    @item_window.actor = $game_party.guardian_forces[@command_window.index]

    @item_window.viewport = @viewport

    @item_window.help_window = @help_window

    @command_window.skill_window = @item_window

    @item_window.refresh

  end

  #--------------------------------------------------------------------------

  # * Change Actors

  #--------------------------------------------------------------------------

  def on_actor_change

    @command_window.actor = @actor

    @status_window.actor = @actor

    @command_window.activate

    @item_window.refresh

  end

  #--------------------------------------------------------------------------

  # * Performs the Junction

  #--------------------------------------------------------------------------

  def command_junction

    if $game_party.guardian_forces[@command_window.index].junctioned?

      @actor.junctioned_actors.delete($game_party.guardian_forces[@command_window.index])

      $game_party.guardian_forces[@command_window.index].junctioned_actor = nil

    else

      @actor.junctioned_actors.push($game_party.guardian_forces[@command_window.index])

      $game_party.guardian_forces[@command_window.index].junctioned_actor = @actor

    end

    @command_window.refresh

    @command_window.activate

  end

  #--------------------------------------------------------------------------

  # * Frame Update

  #--------------------------------------------------------------------------

  def update

    super

    @item_window.actor = $game_party.guardian_forces[@command_window.index]

    @item_window.refresh

    @help_window.set_text($game_party.guardian_forces[@command_window.index].description)

    @actor_name_window.refresh

    @actor_name_window.unselect

  end

end

#==============================================================================

# ** Scene_Menu

#------------------------------------------------------------------------------

#  This class performs the menu screen processing.

#==============================================================================

 

class Scene_Menu < Scene_MenuBase

  #--------------------------------------------------------------------------

  # * [OK] Personal Command

  #--------------------------------------------------------------------------

  alias on_personal_ok_junction on_personal_ok

  def on_personal_ok

    on_personal_ok_junction

    case @command_window.current_symbol

    when :junction

      SceneManager.call(Scene_Junction)

    end

  end

end
 

Crystal Engine - GF Menu

 

#==============================================================================

# Crystal Engine -  GF Menu

#------------------------------------------------------------------------------

# Current Version: 1.00

#==============================================================================

$imported = {} if $imported.nil?

$imported["CE-GFMenu"] = true

=begin

This script makes a status menu for GFs to change their learning skill selected

and/or view their stats

=end

module CRYSTAL

  module GFMENU

    

    CAN_EQUIP = true # GFs can use equipment

    

    EXTRA_GF_COMMANDS = { # List of additional command for the GF Window

   #:example => ["Example", :command_example, "Example Description"],

    }

    

    LEARNING_ICON = 126 # Icon for a skill being learned

    

  end

end

#==============================================================================

# ** Scene_GFMenu

#------------------------------------------------------------------------------

#  This is the GF menu scene.

#==============================================================================

 

class Scene_GFMenu < Scene_MenuBase

  #--------------------------------------------------------------------------

  # * Create Commands for the Window Here (Each is its own method)

  #--------------------------------------------------------------------------

  def command_example

    # Place Code Here

  end

end

#==============================================================================

# Editing beyond this point may cause stone, zombie, mist frenzy, and/or toad,

# so edit at your own risk.

#==============================================================================

module CRYSTAL

module CHECK

#--------------------------------------------------------------------------

# * Checks if you have a certain script installed

#--------------------------------------------------------------------------

def self.require(self_name, script, site = "http://crystalnoel42.wordpress.com")

unless $imported["CE-BasicModule"]

msg = "The script '#{self_name}' requires the latest\n"

msg += "version of 'Crystal Engine - Basic Module' to work properly\n"

msg += "Go to http://crystalnoel42.wordpress.com/ to download this script."

raise SyntaxError.new(msg)

end

unless $imported[script]

msg = "The script '#{self_name}' requires the latest\n"

msg += "version of #{scripts_list(script)} to work properly\n"

msg += "Go to #{site} to download this script."

raise SyntaxError.new(msg)

end

end

require("Crystal Engine - GF Menu", "CE-BasicModule")

#--------------------------------------------------------------------------

# * Script Name Guide

#--------------------------------------------------------------------------

class <<self; alias scripts_list_gf scripts_list; end

def self.scripts_list(name)

scripts_list_gf(name)

case name

when "CE-GF"

return "Crystal Engine -  Guardian Forces"

      when "CE-GFJunction"

return "Crystal Engine -  GF Junction"

end

end

end

end

CRYSTAL::CHECK.require("Crystal Engine - GF Menu", "CE-GF")

CRYSTAL::CHECK.require("Crystal Engine - GF Menu", "CE-GFJunction")

#==============================================================================

# ** Game_Party

#------------------------------------------------------------------------------

#  This class handles parties. Information such as gold and items is included.

# Instances of this class are referenced by $game_party.

#==============================================================================

 

class Game_Party < Game_Unit

  #--------------------------------------------------------------------------

  # * Select Next Actor on GF Screen

  #--------------------------------------------------------------------------

  def menu_gf_next

    index = guardian_forces.index(menu_actor) || -1

    index = (index + 1) % guardian_forces.size

    self.menu_actor = guardian_forces[index]

  end

  #--------------------------------------------------------------------------

  # * Select Previous Actor on GF Screen

  #--------------------------------------------------------------------------

  def menu_gf_prev

    index = guardian_forces.index(menu_actor) || 1

    index = (index + guardian_forces.size - 1) % guardian_forces.size

    self.menu_actor = guardian_forces[index]

  end

  #--------------------------------------------------------------------------

  # * Set Actor Selected on Menu Screen

  #--------------------------------------------------------------------------

  alias ce_gf_menu_menu_actor= menu_actor=

  def menu_actor=(actor)

    self.ce_gf_menu_menu_actor = actor unless actor.nil?

  end

end

#==============================================================================

# ** Window_MenuGF

#------------------------------------------------------------------------------

#  This window is for selecting GFs to view their info.

#==============================================================================

 

class Window_MenuGF < Window_MenuStatus

  #--------------------------------------------------------------------------

  # * Get Number of Items

  #--------------------------------------------------------------------------

  def item_max

    $game_party.guardian_forces.size

  end

  #--------------------------------------------------------------------------

  # * Draw Item

  #--------------------------------------------------------------------------

  def draw_item(index)

    actor = $game_party.guardian_forces[index]

    rect = item_rect(index)

    draw_item_background(index)

    draw_actor_face(actor, rect.x + 1, rect.y + 1)

    draw_actor_simple_status(actor, rect.x + 108, rect.y + line_height / 2)

  end

  #--------------------------------------------------------------------------

  # * Processing When OK Button Is Pressed

  #--------------------------------------------------------------------------

  def process_ok

    super

    $game_party.menu_actor = $game_party.guardian_forces[index]

  end

end

#==============================================================================

# ** Scene_Menu

#------------------------------------------------------------------------------

#  This class performs the menu screen processing.

#==============================================================================

 

class Scene_Menu < Scene_MenuBase

  #--------------------------------------------------------------------------

  # * Create Status Window

  #--------------------------------------------------------------------------

  alias create_status_window_gf_menu create_status_window

  def create_status_window

    create_status_window_gf_menu

    @gf_window = Window_MenuGF.new(@command_window.width, 0)

    @gf_window.openness = 0

  end

  #--------------------------------------------------------------------------

  # * [GF] Command

  #--------------------------------------------------------------------------

  def command_gf

    @status_window.close unless $imported["CE-CrystalMenu"]

    @gf_window.open

    @gf_window.select_last

    @gf_window.activate

    @gf_window.set_handler:)ok,     method:)on_gf_ok))

    @gf_window.set_handler:)cancel, method:)on_gf_cancel))

  end

  #--------------------------------------------------------------------------

  # * [OK] GF Command

  #--------------------------------------------------------------------------

  def on_gf_ok

    SceneManager.call(Scene_GFMenu)

  end

  #--------------------------------------------------------------------------

  # * [Cancel] GF Command

  #--------------------------------------------------------------------------

  def on_gf_cancel

    @gf_window.unselect

    @gf_window.close

    @status_window.open unless $imported["CE-CrystalMenu"]

    @command_window.activate

  end

end

#==============================================================================

# ** Window_HorzCommandPersonal

#------------------------------------------------------------------------------

#  This is a command window for the GF Selection

#==============================================================================

 

class Window_GFCommandPersonal < Window_Command

  #--------------------------------------------------------------------------

  # * Get Number of Lines to Show

  #--------------------------------------------------------------------------

  def visible_line_number

    return 4

  end

  #--------------------------------------------------------------------------

  # * Create Command List

  #--------------------------------------------------------------------------

  def make_command_list

    add_command("Learn", :learn)

    add_command(Vocab.status, :status)

    add_command(Vocab.equip, :equip) if CRYSTAL::GFMENU::CAN_EQUIP

    CRYSTAL::GFMENU::EXTRA_GF_COMMANDS.each do |key, value|

      add_command(value[0], key)

    end

  end 

end

#==============================================================================

# ** Window_SkillListLearning

#------------------------------------------------------------------------------

#  This window is for displaying a list of available skills on the skill window.

#==============================================================================

 

class Window_SkillListLearn < Window_SkillList

  #--------------------------------------------------------------------------

  # * Include in Skill List? 

  #--------------------------------------------------------------------------

  def include?(item)

    @actor.learning_skills.has_key?(item.id)

  end

  #--------------------------------------------------------------------------

  # * Display Skill in Active State?

  #--------------------------------------------------------------------------

  def enable?(item)

    item && @actor.has_skill?(item.id)

  end

  #--------------------------------------------------------------------------

  # * Get Activation State of Selection Item

  #--------------------------------------------------------------------------

  def current_item_enabled?

    true

  end

  #--------------------------------------------------------------------------

  # * Draw Item Name

  #     enabled : Enabled flag. When false, draw semi-transparently.

  #--------------------------------------------------------------------------

  def draw_item_name(item, x, y, enabled = true, width = 172)

    return unless item

    draw_icon(item.icon_index, x + 24, y, enabled)

    change_color(normal_color, enabled)

    draw_text(x + 48, y, width, line_height, item.name)

    if item.is_a?(RPG::Skill)

      draw_icon(CRYSTAL::GFMENU::LEARNING_ICON, x, y) if @actor.learning_skill == item.id

    end

  end

  #--------------------------------------------------------------------------

  # * Draw Skill Use Cost

  #--------------------------------------------------------------------------

  def draw_skill_cost(rect, skill)

    change_color(normal_color, enable?(skill))

    if @actor.has_skill?(skill.id)

      draw_text(rect, "Complete!", 2)

    else

      a = @actor.learning_skills[skill.id][0]

      b = @actor.learning_skills[skill.id][1]

      draw_text(rect, sprintf("%s/%s", a,  B) , 2)

    end

  end

end

#==============================================================================

# ** Scene_MenuBase

#------------------------------------------------------------------------------

#  This class performs basic processing related to the menu screen.

#==============================================================================

 

class Scene_MenuBase < Scene_Base

  #--------------------------------------------------------------------------

  # * Switch to Next Actor

  #--------------------------------------------------------------------------

  alias gf_menu_next_actor next_actor

  def next_actor

    unless @actor.actor.gf?

      gf_menu_next_actor

    else

      on_actor_change

    end

  end

  #--------------------------------------------------------------------------

  # * Switch to Previous Actor

  #--------------------------------------------------------------------------

  alias gf_menu_prev_actor prev_actor

  def prev_actor

    unless @actor.actor.gf?

      gf_menu_prev_actor

    else

      on_actor_change

    end

  end

end

#==============================================================================

# ** Scene_GFMenu

#------------------------------------------------------------------------------

#  This is the GF menu scene.

#==============================================================================

 

class Scene_GFMenu < Scene_MenuBase

  #--------------------------------------------------------------------------

  # * Start Processing

  #--------------------------------------------------------------------------

  def start

    super

    create_help_window

    create_command_window

    create_status_window

    create_item_window

  end

  #--------------------------------------------------------------------------

  # * Create Command Window

  #--------------------------------------------------------------------------

  def create_command_window

    @command_window = Window_GFCommandPersonal.new(0, @help_window.height)

    @command_window.set_handler:)learn,    method:)command_learn))

    @command_window.set_handler:)status,   method:)command_status))

    @command_window.set_handler:)equip,    method:)command_equip))

    @command_window.set_handler:)cancel,   method:)command_cancel))

    @command_window.set_handler:)pagedown, method:)next_actor))

    @command_window.set_handler:)pageup,   method:)prev_actor))

    CRYSTAL::GFMENU::EXTRA_GF_COMMANDS.each do |key, value|

      @command_window.set_handler(key, value[1])

    end

  end

  #--------------------------------------------------------------------------

  # * Create Status Window

  #--------------------------------------------------------------------------

  def create_status_window

    y = @help_window.height

    @status_window = Window_SkillStatus.new(@command_window.width, y)

    @status_window.viewport = @viewport

    @status_window.actor = @actor

  end

  #--------------------------------------------------------------------------

  # * Create Item Window

  #--------------------------------------------------------------------------

  def create_item_window

    wx = 0

    wy = @status_window.y + @status_window.height

    ww = Graphics.width

    wh = Graphics.height - wy

    @item_window = Window_SkillListLearn.new(wx, wy, ww, wh)

    @item_window.actor = @actor

    @item_window.viewport = @viewport

    @item_window.help_window = @help_window

    @item_window.refresh

    @item_window.set_handler:)ok,     method:)on_learn_ok))

    @item_window.set_handler:)cancel, method:)on_learn_cancel))

  end

  #--------------------------------------------------------------------------

  # * Select Skill to Learn

  #--------------------------------------------------------------------------

  def command_learn

    @item_window.select(0)

    @item_window.activate

  end

  #--------------------------------------------------------------------------

  # * Go to Status Menu

  #--------------------------------------------------------------------------

  def command_status

    SceneManager.call(Scene_Status)

  end

  #--------------------------------------------------------------------------

  # * Go to Equip Menu

  #--------------------------------------------------------------------------

  def command_equip

    SceneManager.call(Scene_Equip)

  end

  #--------------------------------------------------------------------------

  # * Go to Equip Menu

  #--------------------------------------------------------------------------

  def command_cancel

    SceneManager.return

  end

  #--------------------------------------------------------------------------

  # * Select Skill to Learn

  #--------------------------------------------------------------------------

  def on_learn_ok

    @actor.learning_skill = @actor.learning_skills.keys[@item_window.index]

    @item_window.refresh

    @item_window.activate

  end

  #--------------------------------------------------------------------------

  # * Select Skill to Learn

  #--------------------------------------------------------------------------

  def on_learn_cancel

    @command_window.activate

    @item_window.unselect

  end

  #--------------------------------------------------------------------------

  # * Switch to Next Actor

  #--------------------------------------------------------------------------

  def next_actor

    @actor = $game_party.menu_gf_next

    on_actor_change

  end

  #--------------------------------------------------------------------------

  # * Switch to Previous Actor

  #--------------------------------------------------------------------------

  def prev_actor

    @actor = $game_party.menu_gf_prev

    on_actor_change

  end

  #--------------------------------------------------------------------------

  # * Change Actors

  #--------------------------------------------------------------------------

  def on_actor_change

    @status_window.actor = @actor

    @status_window.refresh

    @command_window.activate

    @item_window.actor = @actor

    @item_window.refresh

  end

  #--------------------------------------------------------------------------

  # * Frame Update

  #--------------------------------------------------------------------------

  def update

    super

    text = ""

    if @command_window.active

      case @command_window.current_symbol

      when :learn

        text = "Select ability to learn."

      when :status

        text = "View status."

      when :equip

        text = "Change equipment."

      else

        text = CRYSTAL::GFMENU::EXTRA_GF_COMMANDS[@command_window.current_symbol][2]

      end

    end

    @help_window.set_text(text)

  end

end
 

Yanfly Engine Ace - Ace Menu Engine v1.07

 

#==============================================================================



# ▼ Yanfly Engine Ace - Ace Menu Engine v1.07

# -- Last Updated: 2012.01.03

# -- Level: Normal, Hard

# -- Requires: n/a



#==============================================================================

 

$imported = {} if $imported.nil?

$imported["YEA-AceMenuEngine"] = true

 

#==============================================================================

# ▼ Updates

# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

# 2012.01.03 - Compatibility Update: Ace Item Menu

# 2012.01.01 - Compatibility Update: Kread-EX's Synthesis

#            - Compatibility Update: Kread-EX's Grathnode Install

#            - Compatibility Update: Yami's Slot Battle

# 2011.12.23 - Script efficiency optimized.

# 2011.12.19 - Compatibility Update: Class System

# 2011.12.15 - Updated for better menu MP/TP gauge management.

# 2011.12.13 - Compatibility Update: Ace Equip Engine

# 2011.12.07 - Update to allow for switches to also hide custom commands.

# 2011.12.06 - Started Script and Finished.



#==============================================================================

# ▼ Introduction

# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

# The menu system in RPG Maker VX Ace is great. However, it lacks the user

# customization that RPG Maker 2003 allowed. With this script, you can add,

# remove, and rearrange menu commands as you see fit. In addition to that, you

# can add in menu commands that lead to common events or even custom commands

# provided through other scripts.



# This script also provides window appearance management such as setting almost

# all command windows to be center aligned or changing the position of the

# help window. You can also opt to show the TP Gauge in the main menu as well

# as in the skill menu.



#==============================================================================

# ▼ Instructions

# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

# To install this script, open up your script editor and copy/paste this script

# to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.



# Edit the settings in the module below as you see fit.



#==============================================================================

# ▼ Compatibility

# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that

# it will run with RPG Maker VX without adjusting.



#==============================================================================

 

module YEA

  module MENU

    

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    # - General Menu Settings -

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    # This changes the way menus appear in your game. You can change their

    # alignment, and the location of the help window, Note that any non-Yanfly

    # Engine Ace scripts may not conform to these menu styles.

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    HELP_WINDOW_LOCATION = 0     # 0-Top, 1-Middle, 2-Bottom.

    COMMAND_WINDOW_ALIGN = 1     # 0-Left, 1-Middle, 2-Right.

    

    # These settings below adjust the visual appearance of the main menu.

    # Change the settings as you see fit.

    MAIN_MENU_ALIGN = 0          # 0-Left, 1-Middle, 2-Right.

    MAIN_MENU_RIGHT = false      # false-Left, true-Right.

    MAIN_MENU_ROWS  = 10         # Maximum number of rows for main menu.

    DRAW_TP_GAUGE   = true       # If true, draws TP in the main menu.

    

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    # - Main Menu Settings -

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    # These settings adjust the main menu, the order at which commands appear,

    # what text is displayed, and what the commands are linked to. Here's a

    # list of which commands do what:

    # 

    # -------------------------------------------------------------------------

    # :command         Description

    # -------------------------------------------------------------------------

    # :item            Opens up the item menu. Default menu item.

    # :skill           Opens up the skill menu. Default menu item.

    # :equip           Opens up the equip menu. Default menu item.

    # :status          Opens up the status menu. Default menu item.

    # :formation       Lets player manage party. Default menu item.

    # :save            Opens up the save menu. Default menu item.

    # :game_end        Opens up the shutdown menu. Default menu item.

    # 

    # :class           Requires YEA - Class System

    # 

    # :gogototori      Requires Kread-EX's Go Go Totori! Synthesis

    # :grathnode       Requires Kread-EX's Grathnote Install

    # :sslots          Requires Yami's YSA - Slot Battle

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    COMMANDS =[

      :item,         # Opens up the item menu. Default menu item.

      :skill,        # Opens up the skill menu. Default menu item.

      :equip,        # Opens up the equip menu. Default menu item.

      :class,        # Requires YEA - Class System.

      :status,       # Opens up the status menu. Default menu item.

      :gf,

      :junction,

      :formation,    # Lets player manage party. Default menu item.

    # :event_1,      # Launches Common Event 1. Common Event Command.

    # :event_2,      # Launches Common Event 2. Common Event Command.

    # :debug,        # Opens up debug menu. Custom Command.

    # :shop,         # Opens up a shop to pawn items. Custom Command.

      :save,         # Opens up the save menu. Default menu item.

      :game_end,     # Opens up the shutdown menu. Default menu item.

    ] # Do not remove this.

    

    #--------------------------------------------------------------------------

    # - Common Event Commands -

    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    # If you insert one of the following commands into the COMMANDS array, the

    # player can trigger a common event to launch. You can disable certain

    # commands in the menu by binding them to a switch. If you don't want to

    # disable them, set the switch to 0 and it will always be enabled. The

    # ShowSwitch will prevent a command from appear if that switch is false.

    # Set it to 0 for it to have no impact.

    #--------------------------------------------------------------------------

    COMMON_EVENT_COMMANDS ={

    # :command => ["Display Name", EnableSwitch, ShowSwitch, Event ID],

      :event_1 => [        "Camp",           11,          0,        1],

      :event_2 => [   "Synthesis",            0,          0,        2],

    } # Do not remove this.

    

    #--------------------------------------------------------------------------

    # - Custom Commands -

    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    # For those who use scripts that may lead to other menu scenes, use this

    # hash to manage custom commands that run specific script calls. You can

    # disable certain commands in the menu by binding them to a switch. If you

    # don't want to disable them, set the switch to 0. The ShowSwitch will

    # prevent a command from appear if that switch is false. Set it to 0 for

    # it to have no impact.

    #--------------------------------------------------------------------------

    CUSTOM_COMMANDS ={

    # :command => ["Display Name", EnableSwitch, ShowSwitch, Handler Method],

      :debug   => [       "Debug",            0,          0, :command_debug],

      :shop    => [        "Shop",           12,          0,  :command_shop],

      :gogototori => ["Synthesis",            0,        0,  :command_totori],

      :grathnode => [ "Grathnode",            0,        0, :command_install],

      :junction => [   "Junction",            0,        0, :command_personal],

      :gf      => [          "GF",            0,        0, :command_gf],

    } # Do not remove this.

    

  end # MENU

end # YEA

 

#==============================================================================

# ▼ Editting anything past this point may potentially result in causing

# computer damage, incontinence, explosion of user's head, coma, death, and/or

# halitosis so edit at your own risk.

#==============================================================================

 

#==============================================================================

# ■ Window_MenuCommand

#------------------------------------------------------------------------------

# This class is kept towards the top of the script to provide easier access.

#==============================================================================

 

class Window_MenuCommand < Window_Command

  

  #--------------------------------------------------------------------------

  # overwrite method: make_command_list

  #--------------------------------------------------------------------------

  def make_command_list

    for command in YEA::MENU::COMMANDS

      case command

      #--- Default Commands ---

      when :item

        add_command(Vocab::item,   :item,   main_commands_enabled)

      when :skill

        add_command(Vocab::skill,  :skill,  main_commands_enabled)

      when :equip

        add_command(Vocab::equip,  :equip,  main_commands_enabled)

      when :status

        add_command(Vocab::status, :status, main_commands_enabled)

      when :formation

        add_formation_command

      when :save

        add_original_commands

        add_save_command

      when :game_end

        add_game_end_command

      #--- Yanfly Engine Ace Commands ---

      when :class

        next unless $imported["YEA-ClassSystem"]

        add_class_command

      #--- Imported Commands ---

      when :sslots

        next unless $imported["YSA-SlotBattle"]

        add_sslots_command

      when :grathnode

        next unless $imported["KRX-GrathnodeInstall"]

        process_custom_command(command)

      when :gogototori

        next unless $imported["KRX-AlchemicSynthesis"]

        process_custom_command(command)

      #--- Imported Commands ---

      else

        process_common_event_command(command)

        process_custom_command(command)

      end

    end

  end

  

  #--------------------------------------------------------------------------

  # new method: process_common_event_command

  #--------------------------------------------------------------------------

  def process_common_event_command(command)

    return unless YEA::MENU::COMMON_EVENT_COMMANDS.include?(command)

    show = YEA::MENU::COMMON_EVENT_COMMANDS[command][2]

    continue = show <= 0 ? true : $game_switches[show]

    return unless continue

    text = YEA::MENU::COMMON_EVENT_COMMANDS[command][0]

    switch = YEA::MENU::COMMON_EVENT_COMMANDS[command][1]

    ext = YEA::MENU::COMMON_EVENT_COMMANDS[command][3]

    enabled = switch <= 0 ? true : $game_switches[switch]

    add_command(text, command, enabled, ext)

  end

  

  #--------------------------------------------------------------------------

  # new method: process_custom_command

  #--------------------------------------------------------------------------

  def process_custom_command(command)

    return unless YEA::MENU::CUSTOM_COMMANDS.include?(command)

    show = YEA::MENU::CUSTOM_COMMANDS[command][2]

    continue = show <= 0 ? true : $game_switches[show]

    return unless continue

    text = YEA::MENU::CUSTOM_COMMANDS[command][0]

    switch = YEA::MENU::CUSTOM_COMMANDS[command][1]

    enabled = switch <= 0 ? true : $game_switches[switch]

    add_command(text, command, enabled)

  end

  

end # Window_MenuCommand

 

#==============================================================================

# ■ Menu

#==============================================================================

 

module Menu

  

  #--------------------------------------------------------------------------

  # self.help_window_location

  #--------------------------------------------------------------------------

  def self.help_window_location

    return YEA::MENU::HELP_WINDOW_LOCATION

  end

  

  #--------------------------------------------------------------------------

  # self.command_window_align

  #--------------------------------------------------------------------------

  def self.command_window_align

    return YEA::MENU::COMMAND_WINDOW_ALIGN

  end

  

  #--------------------------------------------------------------------------

  # self.main_menu_align

  #--------------------------------------------------------------------------

  def self.main_menu_align

    return YEA::MENU::MAIN_MENU_ALIGN

  end

  

  #--------------------------------------------------------------------------

  # self.main_menu_right

  #--------------------------------------------------------------------------

  def self.main_menu_right

    return YEA::MENU::MAIN_MENU_RIGHT

  end

  

end # Menu

 

#==============================================================================

# ■ Game_Actor

#==============================================================================

 

class Game_Actor < Game_Battler

  

  #--------------------------------------------------------------------------

  # new method: draw_mp?

  #--------------------------------------------------------------------------

  def draw_mp?

    return true unless draw_tp?

    for skill in skills

      next unless added_skill_types.include?(skill.stype_id)

      return true if skill.mp_cost > 0

    end

    return false

  end

  

  #--------------------------------------------------------------------------

  # new method: draw_tp?

  #--------------------------------------------------------------------------

  def draw_tp?

    return false unless $data_system.opt_display_tp

    for skill in skills

      next unless added_skill_types.include?(skill.stype_id)

      return true if skill.tp_cost > 0

    end

    return false

  end

  

end # Game_Actor

 

#==============================================================================

# ■ Window_Base

#==============================================================================

 

class Window_Base < Window

  

  #--------------------------------------------------------------------------

  # overwrite method: draw_actor_simple_status

  #--------------------------------------------------------------------------

  def draw_actor_simple_status(actor, dx, dy)

    dy -= line_height / 2

    draw_actor_name(actor, dx, dy)

    draw_actor_level(actor, dx, dy + line_height * 1)

    draw_actor_icons(actor, dx, dy + line_height * 2)

    dw = contents.width - dx - 124

    draw_actor_class(actor, dx + 120, dy, dw)

    draw_actor_hp(actor, dx + 120, dy + line_height * 1, dw)

    if YEA::MENU::DRAW_TP_GAUGE && actor.draw_tp? && !actor.draw_mp?

      draw_actor_tp(actor, dx + 120, dy + line_height * 2, dw)

    elsif YEA::MENU::DRAW_TP_GAUGE && actor.draw_tp? && actor.draw_mp?

      if $imported["YEA-BattleEngine"]

        draw_actor_tp(actor, dx + 120, dy + line_height * 2, dw/2 + 1)

        draw_actor_mp(actor, dx + 120 + dw/2, dy + line_height * 2, dw/2)

      else

        draw_actor_mp(actor, dx + 120, dy + line_height * 2, dw/2 + 1)

        draw_actor_tp(actor, dx + 120 + dw/2, dy + line_height * 2, dw/2)

      end

    else

      draw_actor_mp(actor, dx + 120, dy + line_height * 2, dw)

    end

  end

  

end # Window_Base

 

#==============================================================================

# ■ Window_Command

#==============================================================================

 

class Window_Command < Window_Selectable

  

  #--------------------------------------------------------------------------

  # overwrite method: alignment

  #--------------------------------------------------------------------------

  def alignment

    return Menu.command_window_align

  end

  

end # Window_Command

 

#==============================================================================

# ■ Window_MenuCommand

#==============================================================================

 

class Window_MenuCommand < Window_Command

  

  #--------------------------------------------------------------------------

  # alias method: init_command_position

  #--------------------------------------------------------------------------

  class <<self; alias init_command_position_ame init_command_position; end

  def self.init_command_position

    init_command_position_ame

    @@last_command_oy = nil

  end

  

  #--------------------------------------------------------------------------

  # overwrite method: visible_line_number

  #--------------------------------------------------------------------------

  def visible_line_number

    return [[item_max, YEA::MENU::MAIN_MENU_ROWS].min, 1].max

  end

  

  #--------------------------------------------------------------------------

  # overwrite method: alignment

  #--------------------------------------------------------------------------

  def alignment

    return Menu.main_menu_align

  end

  

  #--------------------------------------------------------------------------

  # alias method: process_ok

  #--------------------------------------------------------------------------

  alias window_menucommand_process_ok_ame process_ok

  def process_ok

    @@last_command_oy = self.oy

    window_menucommand_process_ok_ame

  end

  

  #--------------------------------------------------------------------------

  # alias method: select_last

  #--------------------------------------------------------------------------

  alias window_menucommand_select_last_ame select_last

  def select_last

    window_menucommand_select_last_ame

    self.oy = @@last_command_oy unless @@last_command_oy.nil?

    @@last_command_oy = nil

  end

  

end # Window_MenuCommand

 

#==============================================================================

# ■ Scene_Menu

#==============================================================================

 

class Scene_Menu < Scene_MenuBase

  

  #--------------------------------------------------------------------------

  # alias method: start

  #--------------------------------------------------------------------------

  alias scene_menu_start_ame start

  def start

    scene_menu_start_ame

    relocate_windows

  end

  

  #--------------------------------------------------------------------------

  # new method: relocate_windows

  #--------------------------------------------------------------------------

  def relocate_windows

    return unless Menu.main_menu_right

    @command_window.x = Graphics.width - @command_window.width

    @gold_window.x = Graphics.width - @gold_window.width

    @status_window.x = 0

  end

  

end # Scene_Menu

 

#==============================================================================

# ■ Scene_Item

#==============================================================================

 

class Scene_Item < Scene_ItemBase

  

  #--------------------------------------------------------------------------

  # alias method: start

  #--------------------------------------------------------------------------

  alias scene_item_start_ame start

  def start

    scene_item_start_ame

    return if $imported["YEA-ItemMenu"]

    relocate_windows

  end

  

  #--------------------------------------------------------------------------

  # new method: relocate_windows

  #--------------------------------------------------------------------------

  def relocate_windows

    case Menu.help_window_location

    when 0 # Top

      @help_window.y = 0

      @category_window.y = @help_window.height

      @item_window.y = @category_window.y + @category_window.height

    when 1 # Middle

      @category_window.y = 0

      @help_window.y = @category_window.height

      @item_window.y = @help_window.y + @help_window.height

    else # Bottom

      @category_window.y = 0

      @item_window.y = @category_window.height

      @help_window.y = @item_window.y + @item_window.height

    end

    if $imported["YEA-ItemMenu"]

      @types_window.y = @category_window.y

      @status_window.y = @category_window.y

    end

  end

  

end # Scene_Item

 

#==============================================================================

# ■ Scene_Skill

#==============================================================================

 

class Scene_Skill < Scene_ItemBase

  

  #--------------------------------------------------------------------------

  # alias method: start

  #--------------------------------------------------------------------------

  alias scene_skill_start_ame start

  def start

    scene_skill_start_ame

    relocate_windows

  end

  

  #--------------------------------------------------------------------------

  # new method: relocate_windows

  #--------------------------------------------------------------------------

  def relocate_windows

    case Menu.help_window_location

    when 0 # Top

      @help_window.y = 0

      @command_window.y = @help_window.height

      @status_window.y = @help_window.height

      @item_window.y = @status_window.y + @status_window.height

    when 1 # Middle

      @command_window.y = 0

      @status_window.y = 0

      @help_window.y = @status_window.y + @status_window.height

      @item_window.y = @help_window.y + @help_window.height

    else # Bottom

      @command_window.y = 0

      @status_window.y = 0

      @item_window.y = @status_window.y + @status_window.height

      @help_window.y = @item_window.y + @item_window.height

    end

  end

  

end # Scene_Skill

 

#==============================================================================

# ■ Scene_Equip

#==============================================================================

 

class Scene_Equip < Scene_MenuBase

  

  #--------------------------------------------------------------------------

  # alias method: start

  #--------------------------------------------------------------------------

  alias scene_equip_start_ame start

  def start

    scene_equip_start_ame

    relocate_windows

    relocate_aee_windows

  end

  

  #--------------------------------------------------------------------------

  # new method: relocate_windows

  #--------------------------------------------------------------------------

  def relocate_windows

    return if $imported["YEA-AceEquipEngine"]

    case Menu.help_window_location

    when 0 # Top

      @help_window.y = 0

      @status_window.y = @help_window.height

      @command_window.y = @help_window.height

      @slot_window.y = @command_window.y + @command_window.height

      @item_window.y = @slot_window.y + @slot_window.height

    when 1 # Middle

      @status_window.y = 0

      @command_window.y = 0

      @slot_window.y = @command_window.y + @command_window.height

      @help_window.y = @slot_window.y + @slot_window.height

      @item_window.y = @help_window.y + @help_window.height

    else # Bottom

      @status_window.y = 0

      @command_window.y = 0

      @slot_window.y = @command_window.y + @command_window.height

      @item_window.y = @slot_window.y + @slot_window.height

      @help_window.y = @item_window.y + @item_window.height

    end

  end

  

  #--------------------------------------------------------------------------

  # new method: relocate_aee_windows

  #--------------------------------------------------------------------------

  def relocate_aee_windows

    return unless $imported["YEA-AceEquipEngine"]

    case Menu.help_window_location

    when 0 # Top

      @help_window.y = 0

      @command_window.y = @help_window.height

      @slot_window.y = @command_window.y + @command_window.height

    when 1 # Middle

      @command_window.y = 0

      @help_window.y = @command_window.height

      @slot_window.y = @help_window.y + @help_window.height

    else # Bottom

      @command_window.y = 0

      @slot_window.y = @command_window.height

      @help_window.y = @slot_window.y + @slot_window.height

    end

    @actor_window.y = @command_window.y

    @item_window.y = @slot_window.y

    @status_window.y = @slot_window.y

  end

  

end # Scene_Equip

 

#==============================================================================

# ■ Scene_Menu

#==============================================================================

 

class Scene_Menu < Scene_MenuBase

  

  #--------------------------------------------------------------------------

  # alias method: create_command_window

  #--------------------------------------------------------------------------

  alias scene_menu_create_command_window_ame create_command_window

  def create_command_window

    scene_menu_create_command_window_ame

    process_common_event_commands

    process_custom_commands

  end

  

  #--------------------------------------------------------------------------

  # new method: process_common_event_commands

  #--------------------------------------------------------------------------

  def process_common_event_commands

    for command in YEA::MENU::COMMANDS

      next unless YEA::MENU::COMMON_EVENT_COMMANDS.include?(command)

      @command_window.set_handler(command, method:)command_common_event))

    end

  end

  

  #--------------------------------------------------------------------------

  # new method: command_common_event

  #--------------------------------------------------------------------------

  def command_common_event

    event_id = @command_window.current_ext

    return return_scene if event_id.nil?

    return return_scene if $data_common_events[event_id].nil?

    $game_temp.reserve_common_event(event_id)

    return_scene

  end

  

  #--------------------------------------------------------------------------

  # new method: process_custom_commands

  #--------------------------------------------------------------------------

  def process_custom_commands

    for command in YEA::MENU::COMMANDS

      next unless YEA::MENU::CUSTOM_COMMANDS.include?(command)

      called_method = YEA::MENU::CUSTOM_COMMANDS[command][3]

      @command_window.set_handler(command, method(called_method))

    end

  end

  

  #--------------------------------------------------------------------------

  # new method: command_debug

  #--------------------------------------------------------------------------

  def command_debug

    SceneManager.call(Scene_Debug)

  end

  

  #--------------------------------------------------------------------------

  # new method: command_shop

  #--------------------------------------------------------------------------

  def command_shop

    goods = []

    SceneManager.call(Scene_Shop)

    SceneManager.scene.prepare(goods, false)

  end

  

  #--------------------------------------------------------------------------

  # new method: command_totori

  #--------------------------------------------------------------------------

  def command_totori

    return unless $imported['KRX-AlchemicSynthesis']

    SceneManager.call(Scene_Alchemy)

  end

  

end # Scene_Menu

 

#==============================================================================



# ▼ End of File



#==============================================================================
 

Euphoria

Veteran
Veteran
Joined
Jun 27, 2013
Messages
378
Reaction score
92
First Language
English
Primarily Uses
Great script! Easy to use and looks amazing!
 

Knack

Warper
Member
Joined
Jan 11, 2014
Messages
3
Reaction score
0
First Language
English
Primarily Uses
Does anyone know how I would remove all of the non-command windows? I want to get rid of status, gold and everything else as I'm making more of a psychological non-combat game. 

Secondly, I'd like to skip the categories when I choose items and go directly to the item list. There won't be any weapons or armor, etc in my game.

Also, for bonus points, I want to resize the command window to just fit like 4 commands properly.
 

Euphoria

Veteran
Veteran
Joined
Jun 27, 2013
Messages
378
Reaction score
92
First Language
English
Primarily Uses
For some reason I'm having a problem with Yanfly's Class System...

I put it in the menu correctly but it won't let me choose an actor even though the personal setting is on true, it always selects the first actor.

:Class  => ["", "Change Classes", 1, true, true, Scene_Class],

That's what I have entered.
 

Isosceles

Warper
Member
Joined
Jan 21, 2014
Messages
1
Reaction score
0
First Language
english
Primarily Uses
 Is it possible to have the Fog or Background picture carry over to the item/equip/skills menus as well? I've looked, but I don't see where I can make this happen.

Also, I only have 4 characters showing up in the middle, whereas the original screenshot shows 6. How can I adjust it so that I have 6 as well?

Any help would be appreciated.  :D
 

Euphoria

Veteran
Veteran
Joined
Jun 27, 2013
Messages
378
Reaction score
92
First Language
English
Primarily Uses
Also is there anyway to draw a JP bar from Yanfly's JP System?
 

turtlerock

Villager
Member
Joined
Jan 12, 2014
Messages
11
Reaction score
0
First Language
english
Primarily Uses
For some reason I'm having a problem with Yanfly's Class System...

I put it in the menu correctly but it won't let me choose an actor even though the personal setting is on true, it always selects the first actor.

:Class  => ["", "Change Classes", 1, true, true, Scene_Class],

That's what I have entered.
Was trying to figure this out myself actually, its really easy, just remove   , Scene_Class         and it will work.

I'm trying to get Victor Materia engine to work myself, but so far I've only managed to go directly to the menu, personal true option does not work on it, hmm.
 
Last edited by a moderator:

Edizzle1988

Warper
Member
Joined
Feb 7, 2014
Messages
1
Reaction score
0
First Language
English
Primarily Uses
 Is it possible to have the Fog or Background picture carry over to the item/equip/skills menus as well? I've looked, but I don't see where I can make this happen.

Also, I only have 4 characters showing up in the middle, whereas the original screenshot shows 6. How can I adjust it so that I have 6 as well?

Any help would be appreciated.  :D
Bump. wondering the same thing.
 

im_mega

Warper
Member
Joined
Jul 2, 2014
Messages
2
Reaction score
0
First Language
English
Primarily Uses
I only have XS scripts, "Fullscreen++ v2.2 for VX and VXace by Zeus81", "RSSBSACE - Reedo's Simple Side Battle System (for VX ACE)", and "~~Pictured Title Screen~~ ".

Halp.
 

Nicke

Fortune seeker
Veteran
Joined
Apr 4, 2012
Messages
539
Reaction score
534
First Language
Swedish
Primarily Uses
RMMV
You don't have the Core Script installed.
 

Fallun

Villager
Member
Joined
May 24, 2014
Messages
26
Reaction score
1
First Language
Danish
Primarily Uses
I'm getting an error when i open item option "N" tool in Falcao Pearl ABS i get an error Script '- Pearl Scene's line 660:

NoMethodError occurred-

undefined method 'color' for nil:NilClass

I really like this menu! :/ can anyone help me give me a hint to what to do, i have no scripting skill, thanks alot 
 

Kane Hart

Elmlor.com
Veteran
Joined
Jun 27, 2014
Messages
656
Reaction score
166
First Language
English
So how do you get like the nice red and remove the ugly lines. Right now it does not even look close to that. Just black with the features but not the cool style ;)
 

Nicke

Fortune seeker
Veteran
Joined
Apr 4, 2012
Messages
539
Reaction score
534
First Language
Swedish
Primarily Uses
RMMV
You want to remove the lines under each command?
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

palatkorn wrote on Archeia's profile.
Hello i have a question Regarding the topic of games in my development, is there anything that I can't post yet?
I hope you give me a chance to fix something wrong.
palatkorn wrote on Kes's profile.
Hello i have a question Regarding the topic of games in my development, is there anything that I can't post yet?

"Your service has been identified as part of an outage. This is expected to be restored by 7pm IN SEVEN DAYS!!!" Guess I won't be around as much over the next week :(
Ami
tethering is my lifesaver,especially when computer or laptop doesn't support internet connection.
convention concluded, i'm glad the books well received and sold out
not every content is decent, but i'll be better for the next work.

now back to game developing

Forum statistics

Threads
94,464
Messages
921,116
Members
124,293
Latest member
ravichah
Top