[ACE] Mog's Monogatari Menu System - Yanfly Learn Skill System - Compatibility

SlaveOfThaMind

Game Developer / Musician
Veteran
Joined
Jul 10, 2013
Messages
239
Reaction score
23
First Language
English
Primarily Uses
Hello again!

I'm here this time with concern regarding the Monogatari menu system by MOG ( beautiful ) and the Learn Skill system from Yanfly.

I should start by saying that i was using Mog's Wallpaper EX script for my main character menu. It worked flawlessly with the Learn Skill script.

I decided after catching a peek at this other menu system by Moghunter called Monogatari, that this was the menu for me. It is abosultely stunning. So I've deleted the prior menu script ( wallpaper ex ) and

inserted Monogatari, I've done the editing that I could for the graphics to include my personal characters and such.

When I load up the game and access the menu, everything shows up. When I navigate to the skills tab and select it, I'm confronted with the options Special and Magic but not

Learn Skills.

So I've tried placing the learn skill above as well as below the Monogatari script, and still yet, the only options available to choose are Special and Magic. I've scoured both

scripts in hope of finding anything that resembled something useful but I couldn't find anything.

Maybe someone who has used neither, either or both of these system in conjunction with

each other could help me out?

Here's what I mean (Screen Shot comparison)

Old/New respectively.

The first shows that the Learn Skill option is available.
The second shows that with the learn skill script active, it is not present.
[IMG]http://i.imgur.com/dUmfilo.png[/IMG]
Below are the scripts in question.

Yanfly Learn Skill Engine ( Warning 1200+ Lines )

Source: http://yanflychannel.wordpress.com/rmvxa/gameplay-scripts/learn-skill-engine/

#==============================================================================
#
# ▼ Yanfly Engine Ace - Learn Skill Engine v1.00
# -- Last Updated: 2012.01.08
# -- Level: Normal, Hard
# -- Requires: n/a
#
#==============================================================================
$imported = {} if $imported.nil?
$imported["YEA-LearnSkillEngine"] = true
#==============================================================================
# ▼ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2012.01.08 - Started Script and Finished.
#
#==============================================================================
# ▼ Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# For those who want an alternative for actors to learn skills outside of
# leveling, this script allows actors to learn skills through a learn skill
# menu. The actor can use acquired JP, EXP or Gold to learn skills. Skills can
# also be hidden until certain requirements are met.
#
#==============================================================================
# ▼ 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.
#
# -----------------------------------------------------------------------------
# Class Notetags - These notetags go in the class notebox in the database.
# -----------------------------------------------------------------------------
#
#
# Sets the class to be able to learn skills x through the Learn Skills menu.
# Insert multiple of these tags to increase the number of skills learned.
#
# -----------------------------------------------------------------------------
# Skill Notetags - These notetags go in the skill notebox in the database.
# -----------------------------------------------------------------------------
#
#
#
# Sets the learn for cost the skill to require x amounts of JP, x amounts of
# exp, or x amounts of gold. Only one type of cost can be used at a time. For
# JP costs, the Yanfly Engine Ace - JP Manager script must be installed.
#
#
# Sets the skill to require the actor's current level to be x before the skill
# will show up in the skill learning window.
#
#
#
# Sets the skill to require learning skill x (through any means) before the
# skill becomes visible in the skill learning window. Insert multiples of these
# tags to require more skills to be learned in order for the skill to show.
#
#
#
# Sets the skill to require switch x to be ON in order for it to show in the
# skill learning window. Insert multiple switches to to increase the number of
# switches needed to be ON before the skill is shown.
#
#
# string
# string
#
# For the more advanced users, replace string with lines of code to check for
# whether or not the skill will be shown in skill learning window. If multiple
# lines are used, they are all considered part of the same line.
#
#==============================================================================
# ▼ 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.
#
# This script is compatible with Yanfly Engine Ace - JP Manager v1.00+. The
# placement of this script relative to the JP Manager script doesn't matter.
#
#==============================================================================
module YEA
module LEARN_SKILL
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - General Settings -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Adjust the general settings here for your game. These adjust how the
# command name appears, a switch to show the Learn Command
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
COMMAND_NAME = "Learn Skills" # Name used for Learn Skill command.
# This switch will hide the "Learn" command from view if the switch is OFF.
# The "Learn" command will be shown if the switch is ON. Set this switch to
# 0 to not use this effect and to always have the Learn command be shown.
SHOW_SWITCH = 0
# This adjusts the order the Skill Types appear in for the command window.
# Any Skill Types unlisted will not be shown.
STYPE_ORDER = [41..999, 1..40]
# For those who installed Yanfly Engine - Skill Restrictions, you can
# choose to display warmups or cooldowns inside of the menu here.
DRAW_WARMUP = true # Draw warmups for skills?
DRAW_COOLDOWN = true # Draw cooldowns for skills?
#-------------------------------------------------------------------------
# - Default Cost -
#-------------------------------------------------------------------------
# This sets the default costs for all skills. If the JP script isn't
# installed, the type will become :exp instead.
#
# Cost Type Description
# :jp - Requires YEA - JP Manager.
# :exp - Makes skill cost EXP.
# :gold - Makes skill cost gold.
#-------------------------------------------------------------------------
DEFAULT_COST = 100 # Sets the default cost of a skill.
DEFAULT_TYPE = :jp # Sets the default cost type.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Learn Window Settings -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# These settings adjust the Learn Window's visual appearance. Adjust the
# way empty text appears, EXP cost suffixes appear, Learned text appears,
# font sizes, and cost colours here.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
EMPTY_TEXT = "-" # Text if no restricts used for the skill.
EXP_TEXT = "EXP" # Text used for EXP costs.
LEARNED_TEXT = "Learned" # Text to indicate skill has been learned.
LEARNED_SIZE = 20 # Font size used for learned skill text.
COLOUR_JP = 24 # Text colour used for JP Cost.
COLOUR_EXP = 5 # Text colour used for EXP Cost.
COLOUR_GOLD = 21 # Text colour used for Gold Cost.
COST_SIZE = 20 # Font size used for skill costs.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Cost Window Settings -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# When a skill is selected to be learned, the cost window appears. Adjust
# the settings here to choose how your game's cost window looks. Change the
# maximum number of rows, the gold icon used for gold costs, the gold text,
# the learn skill text, the cancel text, and the cancel icon here.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
MAXIMUM_ROWS = 8 # Maximum number of rows displayed.
GOLD_ICON = 361 # Icon used for gold costs.
GOLD_TEXT = "Gold Cost" # Text used for gold costs.
LEARN_SKILL_TEXT = "Learn %s?" # Text used to learn skill.
LEARN_CANCEL_TEXT = "Cancel" # Text used for do not learn.
CANCEL_ICON = 187 # Icon used for cancel.
end # LEARN_SKILL
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.
#==============================================================================
module YEA
module LEARN_SKILL
module_function
#--------------------------------------------------------------------------
# convert_integer_array
#--------------------------------------------------------------------------
def convert_integer_array(array)
result = []
array.each { |i|
case i
when Range; result |= i.to_a
when Integer; result |=
end }
return result
end
#--------------------------------------------------------------------------
# converted_contants
#--------------------------------------------------------------------------
STYPE_ORDER = convert_integer_array(STYPE_ORDER)
end # LEARN_SKILL
module REGEXP
module CLASS
LEARN_SKILLS = /<(?:LEARN_SKILLS|learn skills):[ ](\d+(?:\s*,\s*\d+)*)>/i
end # CLASS
module SKILL
LEARN_COST = /<(?:LEARN_COST|learn cost):[ ](.*)>/i
LEARN_REQUIRE_LEVEL =
/<(?:LEARN_REQUIRE_LEVEL|learn require level):[ ](\d+)>/i
LEARN_REQUIRE_SKILL =
/<(?:LEARN_REQUIRE_SKILL|learn require skill):[ ](\d+(?:\s*,\s*\d+)*)>/i
LEARN_REQUIRE_SWITCH =
/<(?:LEARN_REQUIRE_SWITCH|learn require switch):[ ](\d+(?:\s*,\s*\d+)*)>/i
LEARN_REQUIRE_EVAL_ON = /<(?:LEARN_REQUIRE_EVAL|learn require eval)>/i
LEARN_REQUIRE_EVAL_OFF = /<\/(?:LEARN_REQUIRE_EVAL|learn require eval)>/i
end # SKILL
end # REGEXP
end # YEA
#==============================================================================
# ■ Numeric
#==============================================================================
class Numeric
#--------------------------------------------------------------------------
# new method: group_digits
#--------------------------------------------------------------------------
unless $imported["YEA-CoreEngine"]
def group; return self.to_s; end
end # $imported["YEA-CoreEngine"]
end # Numeric
#==============================================================================
# ■ Icon
#==============================================================================
module Icon
#--------------------------------------------------------------------------
# self.cancel
#--------------------------------------------------------------------------
def self.cancel
return YEA::LEARN_SKILL::CANCEL_ICON
end
#--------------------------------------------------------------------------
# self.learn_skill_gold
#--------------------------------------------------------------------------
def self.learn_skill_gold
return YEA::LEARN_SKILL::GOLD_ICON
end
end # Icon
#==============================================================================
# ■ Switch
#==============================================================================
module Switch
#--------------------------------------------------------------------------
# self.show_learn_skill
#--------------------------------------------------------------------------
def self.show_learn_skill
return true if YEA::LEARN_SKILL::SHOW_SWITCH <= 0
return $game_switches[YEA::LEARN_SKILL::SHOW_SWITCH]
end
end # Switch
#==============================================================================
# ■ DataManager
#==============================================================================
module DataManager
#--------------------------------------------------------------------------
# alias method: load_database
#--------------------------------------------------------------------------
class <def self.load_database
load_database_lse
load_notetags_lse
end
#--------------------------------------------------------------------------
# new method: load_notetags_lse
#--------------------------------------------------------------------------
def self.load_notetags_lse
groups = [$data_classes, $data_skills]
for group in groups
for obj in group
next if obj.nil?
obj.load_notetags_lse
end
end
end
end # DataManager
#==============================================================================
# ■ RPG::Class
#==============================================================================
class RPG::Class < RPG::BaseItem
#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :learn_skills
#--------------------------------------------------------------------------
# common cache: load_notetags_lse
#--------------------------------------------------------------------------
def load_notetags_lse
@learn_skills = []
#---
self.note.split(/[\r\n]+/).each { |line|
case line
#---
when YEA::REGEXP::CLASS::LEARN_SKILLS
$1.scan(/\d+/).each { |num|
@learn_skills.push(num.to_i) if num.to_i > 0 }
end
} # self.note.split
#---
end
end # RPG::Class
#==============================================================================
# ■ RPG::Skill
#==============================================================================
class RPG::Skill < RPG::UsableItem
#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :learn_cost
attr_accessor :learn_require_level
attr_accessor :learn_require_skill
attr_accessor :learn_require_switch
attr_accessor :learn_require_eval
#--------------------------------------------------------------------------
# common cache: load_notetags_lse
#--------------------------------------------------------------------------
def load_notetags_lse
@learn_cost = [YEA::LEARN_SKILL::DEFAULT_COST]
@learn_cost.push(YEA::LEARN_SKILL::DEFAULT_TYPE)
@learn_require_level = 0
@learn_require_skill = []
@learn_require_switch = []
@learn_require_eval_on = false
#---
self.note.split(/[\r\n]+/).each { |line|
case line
#---
when YEA::REGEXP::SKILL::LEARN_COST
case $1.upcase
when /(\d+)[ ]JP/i
next unless $imported["YEA-JPManager"]
@learn_cost = [$1.to_i, :jp]
when /(\d+)[ ]EXP/i
@learn_cost = [$1.to_i, :exp]
when /(\d+)[ ]GOLD/i
@learn_cost = [$1.to_i, :gold]
end
#---
when YEA::REGEXP::SKILL::LEARN_REQUIRE_LEVEL
@learn_require_level = $1.to_i
when YEA::REGEXP::SKILL::LEARN_REQUIRE_SKILL
$1.scan(/\d+/).each { |num|
@learn_require_skill.push(num.to_i) if num.to_i > 0 }
when YEA::REGEXP::SKILL::LEARN_REQUIRE_SWITCH
$1.scan(/\d+/).each { |num|
@learn_require_switch.push(num.to_i) if num.to_i > 0 }
#---
when YEA::REGEXP::SKILL::LEARN_REQUIRE_EVAL_ON
@learn_require_eval_on = true
when YEA::REGEXP::SKILL::LEARN_REQUIRE_EVAL_OFF
@learn_require_eval_on = false
else
next unless @learn_require_eval_on
@learn_require_eval = "" if @learn_require_eval.nil?
@learn_require_eval += line.to_s
#---
end
} # self.note.split
#---
if !$imported["YEA-JPManager"] && @learn_cost[1] == :jp
@learn_cost[1] = :exp
end
end
end # RPG::Skill
#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# alias method: skills
#--------------------------------------------------------------------------
alias game_actor_skills_lse skills
def skills
btest_add_learn_skills
game_actor_skills_lse
end
#--------------------------------------------------------------------------
# new method: btest_add_learn_skills
#--------------------------------------------------------------------------
def btest_add_learn_skills
return unless $BTEST
for skill_id in self.class.learn_skills; learn_skill(skill_id); end
end
#--------------------------------------------------------------------------
# new method: exp_class
#--------------------------------------------------------------------------
def exp_class(class_id)
@exp[class_id] = 0 if @exp[class_id].nil?
return @exp[class_id]
end
#--------------------------------------------------------------------------
# lose_exp_class
#--------------------------------------------------------------------------
def lose_exp_class(value, class_id)
exp = exp_class(class_id) - value
change_exp_class(exp, class_id)
end
#--------------------------------------------------------------------------
# change_exp_class
#--------------------------------------------------------------------------
def change_exp_class(exp, class_id)
return change_exp(exp, false) if class_id == @class_id
@exp[class_id] = [exp, 0].max
end
end # Game_Actor
#==============================================================================
# ■ Window_SkillCommand
#==============================================================================
class Window_SkillCommand < Window_Command
#--------------------------------------------------------------------------
# alias method: make_command_list
#--------------------------------------------------------------------------
alias window_skillcommand_make_command_list_lse make_command_list
def make_command_list
window_skillcommand_make_command_list_lse
return if @actor.nil?
add_learn_skill_command unless $imported["YEA-SkillMenu"]
end
#--------------------------------------------------------------------------
# new method: add_learn_skill_command
#--------------------------------------------------------------------------
def add_learn_skill_command
return unless Switch.show_learn_skill
name = YEA::LEARN_SKILL::COMMAND_NAME
add_command(name, :learn_skill, true, @actor.added_skill_types[0])
end
end # Window_SkillCommand
#==============================================================================
# ■ Window_LearnSkillCommand
#==============================================================================
class Window_LearnSkillCommand < Window_Command
#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_reader :skill_window
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(dx, dy)
super(dx, dy)
@actor = nil
end
#--------------------------------------------------------------------------
# window_width
#--------------------------------------------------------------------------
def window_width; return 160; end
#--------------------------------------------------------------------------
# visible_line_number
#--------------------------------------------------------------------------
def visible_line_number; return 4; end
#--------------------------------------------------------------------------
# actor=
#--------------------------------------------------------------------------
def actor=(actor)
return if @actor == actor
@actor = actor
refresh
select(item_max - 1) if index >= item_max
end
#--------------------------------------------------------------------------
# make_command_list
#--------------------------------------------------------------------------
def make_command_list
return if @actor.nil?
make_unlocked_class_skill_types
correct_unlocked_class_learned_skills
for stype_id in YEA::LEARN_SKILL::STYPE_ORDER
next unless include?(stype_id)
name = $data_system.skill_types[stype_id]
add_command(name, :skill, true, stype_id)
end
end
#--------------------------------------------------------------------------
# make_unlocked_class_skill_types
#--------------------------------------------------------------------------
def make_unlocked_class_skill_types
return unless $imported["YEA-ClassSystem"]
@unlocked_types = []
unlocked_classes = @actor.unlocked_classes.clone
unlocked_classes |= YEA::CLASS_SYSTEM::DEFAULT_UNLOCKS
for class_id in unlocked_classes
next if $data_classes[class_id].nil?
for feature in $data_classes[class_id].features
next unless feature.code == 41
@unlocked_types.push(feature.data_id)
end
end
end
#--------------------------------------------------------------------------
# correct_unlocked_class_learned_skills
#--------------------------------------------------------------------------
def correct_unlocked_class_learned_skills
return unless $imported["YEA-ClassSystem"]
unlocked_classes = @actor.unlocked_classes.clone
unlocked_classes |= YEA::CLASS_SYSTEM::DEFAULT_UNLOCKS
for class_id in unlocked_classes
@actor.learn_class_skills(class_id)
end
end
#--------------------------------------------------------------------------
# include?
#--------------------------------------------------------------------------
def include?(stype_id)
return true if @actor.added_skill_types.include?(stype_id)
if $imported["YEA-ClassSystem"]
return true if @unlocked_types.include?(stype_id)
end
return false
end
#--------------------------------------------------------------------------
# update
#--------------------------------------------------------------------------
def update
super
@skill_window.stype_id = current_ext if @skill_window
end
#--------------------------------------------------------------------------
# skill_window=
#--------------------------------------------------------------------------
def skill_window=(skill_window)
@skill_window = skill_window
update
end
end # Window_LearnSkillCommand
#==============================================================================
# ■ Window_LearnSkillList
#==============================================================================
class Window_LearnSkillList < Window_SkillList
#--------------------------------------------------------------------------
# col_max
#--------------------------------------------------------------------------
def col_max; return 1; end
#--------------------------------------------------------------------------
# select_last
#--------------------------------------------------------------------------
def select_last; select(0); end
#--------------------------------------------------------------------------
# actor=
#--------------------------------------------------------------------------
def actor=(actor)
return if @actor == actor
super(actor)
make_learn_skills_list
end
#--------------------------------------------------------------------------
# make_learn_skills_list
#--------------------------------------------------------------------------
def make_learn_skills_list
@learn_skills = []
@skill_classes = {}
return if @actor.nil?
for skill_id in @actor.class.learn_skills
next if $data_skills[skill_id].nil?
next if @learn_skills.include?($data_skills[skill_id])
skill = $data_skills[skill_id]
@learn_skills.push(skill)
@skill_classes[skill] = [] if @skill_classes[skill].nil?
@skill_classes[skill].push(@actor.class.id)
end
make_unlocked_class_skills
end
#--------------------------------------------------------------------------
# make_unlocked_class_skills
#--------------------------------------------------------------------------
def make_unlocked_class_skills
return unless $imported["YEA-ClassSystem"]
@unlocked_types = []
unlocked_classes = @actor.unlocked_classes.clone
unlocked_classes |= YEA::CLASS_SYSTEM::DEFAULT_UNLOCKS
for class_id in unlocked_classes
next if $data_classes[class_id].nil?
for skill_id in $data_classes[class_id].learn_skills
next if $data_skills[skill_id].nil?
skill = $data_skills[skill_id]
@learn_skills.push(skill) unless @learn_skills.include?(skill)
@skill_classes[skill] = [] if @skill_classes[skill].nil?
@skill_classes[skill] |= [class_id]
end
end
end
#--------------------------------------------------------------------------
# skill_classes
#--------------------------------------------------------------------------
def skill_classes(skill)
return @skill_classes[skill]
end
#--------------------------------------------------------------------------
# make_item_list
#--------------------------------------------------------------------------
def make_item_list
return if @learn_skills.nil?
@data = @learn_skills.select {|skill| include?(skill) }
end
#--------------------------------------------------------------------------
# include?
#--------------------------------------------------------------------------
def include?(item)
return false if item.nil?
return false unless meet_requirements?(item)
return item.stype_id == @stype_id
end
#--------------------------------------------------------------------------
# meet_requirements?
#--------------------------------------------------------------------------
def meet_requirements?(item)
return false if @actor.nil?
return false unless meet_level_requirements?(item)
return false unless meet_skill_requirements?(item)
return false unless meet_switch_requirements?(item)
return false unless meet_eval_requirements?(item)
return true
end
#--------------------------------------------------------------------------
# meet_level_requirements?
#--------------------------------------------------------------------------
def meet_level_requirements?(item)
return @actor.level >= item.learn_require_level
end
#--------------------------------------------------------------------------
# meet_skill_requirements?
#--------------------------------------------------------------------------
def meet_skill_requirements?(item)
for skill_id in item.learn_require_skill
next if $data_skills[skill_id].nil?
return false unless @actor.skill_learn?($data_skills[skill_id])
end
return true
end
#--------------------------------------------------------------------------
# meet_switch_requirements?
#--------------------------------------------------------------------------
def meet_switch_requirements?(item)
for switch_id in item.learn_require_switch
return false unless $game_switches[switch_id]
end
return true
end
#--------------------------------------------------------------------------
# meet_eval_requirements?
#--------------------------------------------------------------------------
def meet_eval_requirements?(item)
return true if item.learn_require_eval.nil?
return eval(item.learn_require_eval)
end
#--------------------------------------------------------------------------
# enable?
#--------------------------------------------------------------------------
def enable?(skill)
return false if skill.nil?
return false unless enabled_jp?(skill)
return false unless enabled_exp?(skill)
return false unless enabled_gold?(skill)
return !@actor.skill_learn?(skill)
end
#--------------------------------------------------------------------------
# enabled_jp?
#--------------------------------------------------------------------------
def enabled_jp?(skill)
return true if skill.learn_cost[1] != :jp
cost = skill.learn_cost[0]
for class_id in @skill_classes[skill]
return true if @actor.jp(class_id) >= cost
end
return false
end
#--------------------------------------------------------------------------
# enabled_exp?
#--------------------------------------------------------------------------
def enabled_exp?(skill)
return true if skill.learn_cost[1] != :exp
cost = skill.learn_cost[0]
for class_id in @skill_classes[skill]
return true if @actor.exp_class(class_id) >= cost
end
return false
end
#--------------------------------------------------------------------------
# enabled_gold?
#--------------------------------------------------------------------------
def enabled_gold?(skill)
return true if skill.learn_cost[1] != :gold
cost = skill.learn_cost[0]
return $game_party.gold >= cost
end
#--------------------------------------------------------------------------
# draw_item
#--------------------------------------------------------------------------
def draw_item(index)
skill = @data[index]
return if skill.nil?
rect = item_rect(index)
rect.width = (contents.width - spacing) / 2 - 4
draw_item_name(skill, rect.x, rect.y, enable?(skill), rect.width - 24)
draw_skill_cost(rect, skill)
draw_restriction_info(skill, index)
draw_learn_cost(skill, index)
end
#--------------------------------------------------------------------------
# skill_restriction?
#--------------------------------------------------------------------------
def skill_restriction?(index)
return false
end
#--------------------------------------------------------------------------
# draw_restriction_info
#--------------------------------------------------------------------------
def draw_restriction_info(skill, index)
return unless $imported["YEA-SkillRestrictions"]
rect = item_rect(index)
rect.x = contents.width / 2
rect.width /= 2
rect.width /= 3
rect.width -= 8
draw_skill_warmup(skill, rect)
rect.x += rect.width + 4
draw_skill_cooldown(skill, rect)
end
#--------------------------------------------------------------------------
# draw_skill_warmup
#--------------------------------------------------------------------------
def draw_skill_warmup(skill, rect)
return unless YEA::LEARN_SKILL::DRAW_WARMUP
enabled = enable?(skill)
enabled = false if skill.warmup <= 0
change_color(warmup_colour, enabled)
icon = Icon.warmup
if icon > 0
draw_icon(icon, rect.x + rect.width-24, rect.y, enable?(skill))
rect.width -= 24
end
contents.font.size = YEA::SKILL_RESTRICT::WARMUP_SIZE
value = skill.warmup > 0 ? skill.warmup.group : empty_text
text = sprintf(YEA::SKILL_RESTRICT::WARMUP_SUFFIX, value)
draw_text(rect, text, 2)
reset_font_settings
end
#--------------------------------------------------------------------------
# draw_skill_cooldown
#--------------------------------------------------------------------------
def draw_skill_cooldown(skill, rect)
return unless YEA::LEARN_SKILL::DRAW_COOLDOWN
enabled = enable?(skill)
enabled = false if skill.cooldown <= 0
change_color(cooldown_colour, enabled)
icon = Icon.cooldown
if icon > 0
draw_icon(icon, rect.x + rect.width-24, rect.y, enable?(skill))
rect.width -= 24
end
contents.font.size = YEA::SKILL_RESTRICT::COOLDOWN_SIZE
value = skill.cooldown > 0 ? skill.cooldown.group : empty_text
text = sprintf(YEA::SKILL_RESTRICT::COOLDOWN_SUFFIX, value)
draw_text(rect, text, 2)
reset_font_settings
end
#--------------------------------------------------------------------------
# empty_text
#--------------------------------------------------------------------------
def empty_text
return YEA::LEARN_SKILL::EMPTY_TEXT
end
#--------------------------------------------------------------------------
# draw_learn_cost
#--------------------------------------------------------------------------
def draw_learn_cost(skill, index)
rect = item_rect(index)
rect.width -= 4
if @actor.skill_learn?(skill)
draw_learned_skill(rect)
else
draw_learn_skill_cost(skill, rect)
end
reset_font_settings
end
#--------------------------------------------------------------------------
# draw_learned_skill
#--------------------------------------------------------------------------
def draw_learned_skill(rect)
contents.font.size = YEA::LEARN_SKILL::LEARNED_SIZE
change_color(normal_color)
draw_text(rect, YEA::LEARN_SKILL::LEARNED_TEXT, 2)
end
#--------------------------------------------------------------------------
# draw_learn_skill_cost
#--------------------------------------------------------------------------
def draw_learn_skill_cost(skill, rect)
case skill.learn_cost[1]
when :jp
return unless $imported["YEA-JPManager"]
draw_jp_cost(skill, rect)
when :exp
draw_exp_cost(skill, rect)
when :gold
draw_gold_cost(skill, rect)
else; return
end
end
#--------------------------------------------------------------------------
# draw_jp_cost
#--------------------------------------------------------------------------
def draw_jp_cost(skill, rect)
enabled = enabled_jp?(skill)
if Icon.jp > 0
draw_icon(Icon.jp, rect.x + rect.width - 24, rect.y, enabled)
rect.width -= 24
end
contents.font.size = YEA::LEARN_SKILL::COST_SIZE
change_color(system_color, enabled)
draw_text(rect, Vocab::jp, 2)
rect.width -= text_size(Vocab::jp).width
cost = skill.learn_cost[0]
text = cost.group
change_color(text_color(YEA::LEARN_SKILL::COLOUR_JP), enabled)
draw_text(rect, text, 2)
end
#--------------------------------------------------------------------------
# draw_exp_cost
#--------------------------------------------------------------------------
def draw_exp_cost(skill, rect)
enabled = enabled_exp?(skill)
contents.font.size = YEA::LEARN_SKILL::COST_SIZE
change_color(system_color, enabled)
draw_text(rect, YEA::LEARN_SKILL::EXP_TEXT, 2)
rect.width -= text_size(YEA::LEARN_SKILL::EXP_TEXT).width
cost = skill.learn_cost[0]
text = cost.group
change_color(text_color(YEA::LEARN_SKILL::COLOUR_EXP), enabled)
draw_text(rect, text, 2)
end
#--------------------------------------------------------------------------
# draw_gold_cost
#--------------------------------------------------------------------------
def draw_gold_cost(skill, rect)
enabled = enabled_jp?(skill)
contents.font.size = YEA::LEARN_SKILL::COST_SIZE
change_color(system_color, enabled)
draw_text(rect, Vocab::currency_unit, 2)
rect.width -= text_size(Vocab::currency_unit).width
cost = skill.learn_cost[0]
text = cost.group
change_color(text_color(YEA::LEARN_SKILL::COLOUR_GOLD), enabled)
draw_text(rect, text, 2)
end
end # Window_LearnSkillList
#==============================================================================
# ■ Window_LearnSkillCostBack
#==============================================================================
class Window_LearnSkillCostBack < Window_Base
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(item_window)
dw = Graphics.width * 3 / 4
dx = (Graphics.width - dw) / 2
super(dx, 0, dw, fitting_height(2))
self.openness = 0
self.back_opacity = 255
@front_window = nil
@item_window = item_window
@skill = nil
end
#--------------------------------------------------------------------------
# reveal
#--------------------------------------------------------------------------
def reveal(skill, skill_classes)
@skill = skill
return if @skill.nil?
case @skill.learn_cost[1]
when :gold
self.height = fitting_height(3)
else
maximum = [skill_classes.size, YEA::LEARN_SKILL::MAXIMUM_ROWS].min
self.height = fitting_height(maximum + 2)
end
create_contents
self.y = (Graphics.height - self.height) / 2
refresh
open
end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh
contents.clear
reset_font_settings
draw_learn_skill_text
rect = Rect.new(0, 0, contents.width - 4, line_height)
draw_learn_skill_cost(@skill, rect)
end
#--------------------------------------------------------------------------
# draw_learn_skill_text
#--------------------------------------------------------------------------
def draw_learn_skill_text
name = sprintf("\eI[%d]%s", @skill.icon_index, @skill.name)
fmt = YEA::LEARN_SKILL::LEARN_SKILL_TEXT
text = sprintf(fmt, name)
draw_text_ex(4, 0, text)
end
#--------------------------------------------------------------------------
# draw_learn_skill_cost
#--------------------------------------------------------------------------
def draw_learn_skill_cost(skill, rect)
case skill.learn_cost[1]
when :jp
return unless $imported["YEA-JPManager"]
draw_jp_cost(skill, rect)
when :exp
draw_exp_cost(skill, rect)
when :gold
draw_gold_cost(skill, rect)
else; return
end
end
#--------------------------------------------------------------------------
# draw_jp_cost
#--------------------------------------------------------------------------
def draw_jp_cost(skill, rect)
enabled = true
if Icon.jp > 0
draw_icon(Icon.jp, rect.x + rect.width - 24, rect.y, enabled)
rect.width -= 24
end
contents.font.size = YEA::LEARN_SKILL::COST_SIZE
change_color(system_color, enabled)
draw_text(rect, Vocab::jp, 2)
rect.width -= text_size(Vocab::jp).width
cost = skill.learn_cost[0]
text = cost.group
change_color(text_color(YEA::LEARN_SKILL::COLOUR_JP), enabled)
draw_text(rect, text, 2)
end
#--------------------------------------------------------------------------
# draw_exp_cost
#--------------------------------------------------------------------------
def draw_exp_cost(skill, rect)
enabled = true
contents.font.size = YEA::LEARN_SKILL::COST_SIZE
change_color(system_color, enabled)
draw_text(rect, YEA::LEARN_SKILL::EXP_TEXT, 2)
rect.width -= text_size(YEA::LEARN_SKILL::EXP_TEXT).width
cost = skill.learn_cost[0]
text = cost.group
change_color(text_color(YEA::LEARN_SKILL::COLOUR_EXP), enabled)
draw_text(rect, text, 2)
end
#--------------------------------------------------------------------------
# draw_gold_cost
#--------------------------------------------------------------------------
def draw_gold_cost(skill, rect)
enabled = true
contents.font.size = YEA::LEARN_SKILL::COST_SIZE
change_color(system_color, enabled)
draw_text(rect, Vocab::currency_unit, 2)
rect.width -= text_size(Vocab::currency_unit).width
cost = skill.learn_cost[0]
text = cost.group
change_color(text_color(YEA::LEARN_SKILL::COLOUR_GOLD), enabled)
draw_text(rect, text, 2)
end
end # Window_LearnSkillCostBack
#==============================================================================
# ■ Window_LearnSkillCostFront
#==============================================================================
class Window_LearnSkillCostFront < Window_Command
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(item_window, cost_window)
super((Graphics.width - window_width) / 2, 0)
self.openness = 0
self.opacity = 0
@item_window = item_window
@cost_window = cost_window
@skill = nil
@actor = nil
deactivate
end
#--------------------------------------------------------------------------
# window_width
#--------------------------------------------------------------------------
def window_width; return Graphics.width * 3 / 4; end
#--------------------------------------------------------------------------
# skill_class
#--------------------------------------------------------------------------
def skill_class
return @skill_classes.nil? ? nil : @skill_classes[index]
end
#--------------------------------------------------------------------------
# reveal
#--------------------------------------------------------------------------
def reveal(skill, skill_classes, actor)
@skill = skill
@skill_classes = skill_classes.clone
@actor = actor
return if @skill.nil?
case @skill.learn_cost[1]
when :gold
self.height = fitting_height(2)
else
maximum = [skill_classes.size, YEA::LEARN_SKILL::MAXIMUM_ROWS].min
self.height = fitting_height(maximum + 1)
end
create_contents
self.y = @cost_window.y + line_height
refresh
select(0)
open
activate
end
#--------------------------------------------------------------------------
# make_command_list
#--------------------------------------------------------------------------
def make_command_list
return if @skill_classes.nil?
if @skill.learn_cost[1] == :gold
add_command("GOLD", :gold, true)
add_command(YEA::LEARN_SKILL::LEARN_CANCEL_TEXT, :cancel, true)
return
end
for class_id in @skill_classes
name = $data_classes[class_id].name
add_command(name, :class, enabled?(class_id), class_id)
end
add_command(YEA::LEARN_SKILL::LEARN_CANCEL_TEXT, :cancel, true)
end
#--------------------------------------------------------------------------
# enabled?
#--------------------------------------------------------------------------
def enabled?(class_id)
cost = @skill.learn_cost[0]
case @skill.learn_cost[1]
when :jp
return @actor.jp(class_id) >= cost
when :exp
return @actor.exp_class(class_id) >= cost
end
return true
end
#--------------------------------------------------------------------------
# draw_item
#--------------------------------------------------------------------------
def draw_item(index)
reset_font_settings
rect = item_rect(index)
rect.x += 24
rect.width -= 28
return draw_cancel_text(index, rect) if @list[index][:symbol] == :cancel
draw_class_name(index, rect) if @skill.learn_cost[1] != :gold
draw_party_gold(rect) if @skill.learn_cost[1] == :gold
draw_learn_skill_cost(@skill, rect, index)
end
#--------------------------------------------------------------------------
# draw_cancel_text
#--------------------------------------------------------------------------
def draw_cancel_text(index, rect)
draw_icon(Icon.cancel, rect.x, rect.y)
text = command_name(index)
draw_text(rect.x+24, rect.y, rect.width-24, line_height, text)
end
#--------------------------------------------------------------------------
# draw_class_name
#--------------------------------------------------------------------------
def draw_class_name(index, rect)
class_id = @list[index][:ext]
return if $data_classes[class_id].nil?
enabled = enabled?(class_id)
if $imported["YEA-ClassSystem"]
draw_icon($data_classes[class_id].icon_index, rect.x, rect.y, enabled)
end
rect.x += 24
rect.width -= 24
change_color(normal_color, enabled)
draw_text(rect, $data_classes[class_id].name)
end
#--------------------------------------------------------------------------
# draw_class_name
#--------------------------------------------------------------------------
def draw_party_gold(rect)
enabled = true
draw_icon(Icon.learn_skill_gold, rect.x, rect.y)
rect.x += 24
rect.width -= 24
change_color(normal_color, enabled)
draw_text(rect, YEA::LEARN_SKILL::GOLD_TEXT)
end
#--------------------------------------------------------------------------
# draw_learn_skill_cost
#--------------------------------------------------------------------------
def draw_learn_skill_cost(skill, rect, index)
case skill.learn_cost[1]
when :jp
return unless $imported["YEA-JPManager"]
draw_jp_cost(skill, rect, index)
when :exp
draw_exp_cost(skill, rect, index)
when :gold
draw_gold_cost(skill, rect)
else; return
end
end
#--------------------------------------------------------------------------
# draw_jp_cost
#--------------------------------------------------------------------------
def draw_jp_cost(skill, rect, index)
enabled = enabled?(@list[index][:ext])
if Icon.jp > 0
draw_icon(Icon.jp, rect.x + rect.width - 24, rect.y, enabled)
rect.width -= 24
end
contents.font.size = YEA::LEARN_SKILL::COST_SIZE
change_color(system_color, enabled)
draw_text(rect, Vocab::jp, 2)
rect.width -= text_size(Vocab::jp).width
cost = @actor.jp(@list[index][:ext])
text = cost.group
change_color(text_color(YEA::LEARN_SKILL::COLOUR_JP), enabled)
draw_text(rect, text, 2)
end
#--------------------------------------------------------------------------
# draw_exp_cost
#--------------------------------------------------------------------------
def draw_exp_cost(skill, rect, index)
enabled = enabled?(@list[index][:ext])
contents.font.size = YEA::LEARN_SKILL::COST_SIZE
change_color(system_color, enabled)
draw_text(rect, YEA::LEARN_SKILL::EXP_TEXT, 2)
rect.width -= text_size(YEA::LEARN_SKILL::EXP_TEXT).width
cost = @actor.exp_class(@list[index][:ext])
text = cost.group
change_color(text_color(YEA::LEARN_SKILL::COLOUR_EXP), enabled)
draw_text(rect, text, 2)
end
#--------------------------------------------------------------------------
# draw_gold_cost
#--------------------------------------------------------------------------
def draw_gold_cost(skill, rect)
enabled = $game_party.gold >= skill.learn_cost[0]
contents.font.size = YEA::LEARN_SKILL::COST_SIZE
change_color(system_color, enabled)
draw_text(rect, Vocab::currency_unit, 2)
rect.width -= text_size(Vocab::currency_unit).width
cost = $game_party.gold
text = cost.group
change_color(text_color(YEA::LEARN_SKILL::COLOUR_GOLD), enabled)
draw_text(rect, text, 2)
end
end # Window_LearnSkillCostFront
#==============================================================================
# ■ Scene_Skill
#==============================================================================
class Scene_Skill < Scene_ItemBase
#--------------------------------------------------------------------------
# alias method: create_command_window
#--------------------------------------------------------------------------
alias scene_skill_create_command_window_lse create_command_window
def create_command_window
scene_skill_create_command_window_lse
@command_window.set_handler:)learn_skill, method:)command_learn_skill))
end
#--------------------------------------------------------------------------
# new method: command_learn_skill
#--------------------------------------------------------------------------
def command_learn_skill
SceneManager.call(Scene_LearnSkill)
end
end # Scene_Skill
#==============================================================================
# ■ Scene_LearnSkill
#==============================================================================
class Scene_LearnSkill < Scene_Skill
#--------------------------------------------------------------------------
# start
#--------------------------------------------------------------------------
def start
super
create_cost_windows
end
#--------------------------------------------------------------------------
# create_command_window
#--------------------------------------------------------------------------
def create_command_window
wy = @help_window.height
@command_window = Window_LearnSkillCommand.new(0, wy)
@command_window.viewport = @viewport
@command_window.help_window = @help_window
@command_window.actor = @actor
@command_window.set_handler:)skill, method:)command_skill))
@command_window.set_handler:)cancel, method:)return_scene))
@command_window.set_handler:)pagedown, method:)next_actor))
@command_window.set_handler:)pageup, method:)prev_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_LearnSkillList.new(wx, wy, ww, wh)
@item_window.actor = @actor
@item_window.viewport = @viewport
@item_window.help_window = @help_window
@item_window.set_handler:)ok, method:)on_item_ok))
@item_window.set_handler:)cancel, method:)on_item_cancel))
@command_window.skill_window = @item_window
end
#--------------------------------------------------------------------------
# create_cost_windows
#--------------------------------------------------------------------------
def create_cost_windows
@cost_window = Window_LearnSkillCostBack.new(@item_window)
@cost_front = Window_LearnSkillCostFront.new(@item_window, @cost_window)
@cost_window.viewport = @viewport
@cost_front.viewport = @viewport
@cost_front.set_handler:)ok, method:)on_cost_ok))
@cost_front.set_handler:)cancel, method:)on_cost_cancel))
end
#--------------------------------------------------------------------------
# on_item_ok
#--------------------------------------------------------------------------
def on_item_ok
skill = @item_window.item
@cost_window.reveal(skill, @item_window.skill_classes(skill))
@cost_front.reveal(skill, @item_window.skill_classes(skill), @actor)
end
#--------------------------------------------------------------------------
# on_cost_ok
#--------------------------------------------------------------------------
def on_cost_ok
Sound.play_use_skill
skill = @item_window.item
@actor.learn_skill(skill.id)
cost = skill.learn_cost[0]
case skill.learn_cost[1]
when :jp
@actor.lose_jp(cost, @cost_front.skill_class)
when :exp
@actor.lose_exp_class(cost, @cost_front.skill_class)
when :gold
$game_party.lose_gold(cost)
end
on_cost_cancel
refresh_windows
end
#--------------------------------------------------------------------------
# on_cost_cancel
#--------------------------------------------------------------------------
def on_cost_cancel
@cost_front.close
@cost_window.close
@item_window.activate
end
#--------------------------------------------------------------------------
# refresh_windows
#--------------------------------------------------------------------------
def refresh_windows
@item_window.refresh
@status_window.refresh
end
end # Scene_LearnSkill
#==============================================================================
#
# ▼ End of File
#
#==============================================================================
 

 

Monogatari ( The script is too large for here. 10k lines of code. I have attached it as that reason. )

Source: http://www.atelier-rgss.com/RGSS/Menu/ACE_Menu15.html

 

Here is the old Wallpaper EX I used for my last menu that is compatible with learn skill (if needed)

Source: http://www.atelier-rgss.com/RGSS/Menu/ACE_Menu12.html

#==============================================================================
# +++ MOG - Wallpaper EX (V1.1) +++
#==============================================================================
# By Moghunter
# http://www.atelier-rgss.com
#==============================================================================
# - Adiciona um papel de parede e adiciona alguns efeitos animados.
#==============================================================================
# Para mudar de papel de parede no meio do jogo basta usar o código abaixo.
#
# $game_system.wallpaper = "FILE_NAME"
#
#==============================================================================
# E para mudar de velocidade de scroll use o código abaixo.
#
# $game_system.wallpaper_scroll = [ SPEED_X, SPEED_Y]
#
#==============================================================================
# Serão necessários os seguintes arquivos na pasta GRAPHICS/SYSTEM.
#
# Menu_Particles.png
# wallpaper
#
#==============================================================================
# ● Histórico (Version History)
#==============================================================================
# v 1.1 - Melhoria no sistema de dispose de imagens.
#==============================================================================
module MOG_WALLPAPER_EX
#Ativar Particulas animadas.
PARTICLES = true
#Numero de particulas.
NUMBER_OF_PARTICLES = 15
#Deslizar a imagem de fundo.
BACKGROUND_SCROLL_SPEED = [0,0]
#Definição da opacidade das janelas.
WINDOW_OPACITY = 32
end

#==============================================================================
# ■ Game_System
#==============================================================================
class Game_System

attr_accessor :wallpaper
attr_accessor :wallpaper_scroll

#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
alias mog_wallpaper_initialize initialize
def initialize
mog_wallpaper_initialize
@wallpaper = "Wallpaper"
@wallpaper_scroll = MOG_WALLPAPER_EX::BACKGROUND_SCROLL_SPEED
end

end

#==============================================================================
# ■ Menu Particles
#==============================================================================
class Menu_Particles < Sprite

#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
def initialize(viewport = nil)
super(viewport)
self.bitmap = Cache.system("Menu_Particles")
reset_setting(true)
end

#--------------------------------------------------------------------------
# ● Reset Setting
#--------------------------------------------------------------------------
def reset_setting(start)
zoom = (50 + rand(100)) / 100.1
self.zoom_x = zoom
self.zoom_y = zoom
self.x = rand(544)
if start
self.y = rand(416 + self.bitmap.height)
else
self.y = 416 + rand(32 + self.bitmap.height)
end
self.opacity = 0
self.blend_type = 1
@speed_x = 0
@speed_y = [[rand(3), 3].min, 1].max
@speed_a = 0#rand(3)
end

#--------------------------------------------------------------------------
# ● Dispose
#--------------------------------------------------------------------------
def dispose
super
self.bitmap.dispose
end

#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
def update
super
self.x += @speed_x
self.y -= @speed_y
self.angle += @speed_a
self.opacity += 5
reset_setting(false) if self.y < 0
end

end


#==============================================================================
# ■ LAYOUT_EX
#==============================================================================
module WALLPAPER_EX

include MOG_WALLPAPER_EX

#--------------------------------------------------------------------------
# ● Start
#--------------------------------------------------------------------------
def start
super
create_particles
end

#--------------------------------------------------------------------------
# ● Set Window OPACITY
#--------------------------------------------------------------------------
def set_window_opacity
instance_variables.each do |varname|
ivar = instance_variable_get(varname)
if ivar.is_a?(Window)
ivar.opacity = WINDOW_OPACITY
end
end
end

#--------------------------------------------------------------------------
# ● Create Particles
#--------------------------------------------------------------------------
def create_particles
return unless PARTICLES
dispose_menu_particles
@particle_viewport = Viewport.new(-32, -32, 576, 448)
@particle_bitmap =[]
for i in 0...NUMBER_OF_PARTICLES
@particle_bitmap.push(Menu_Particles.new(@particle_viewport))
end
end

#--------------------------------------------------------------------------
# ● Create Background
#--------------------------------------------------------------------------
def create_background
@background_sprite = Plane.new
@background_sprite.bitmap = Cache.system($game_system.wallpaper) rescue nil
@background_sprite.bitmap = SceneManager.background_bitmap if @background_sprite.bitmap == nil
end

#--------------------------------------------------------------------------
# ● Dispose Light
#--------------------------------------------------------------------------
def dispose_menu_particles
return unless PARTICLES
if @particle_bitmap != nil
@particle_bitmap.each {|sprite| sprite.dispose}
@particle_viewport.dispose
@particle_bitmap = nil
end
end

#--------------------------------------------------------------------------
# ● Dispose Background
#--------------------------------------------------------------------------
def dispose_background
return if @background_sprite == nil
@background_sprite.bitmap.dispose
@background_sprite.dispose
@background_sprite = nil
end

#--------------------------------------------------------------------------
# ● Terminate
#--------------------------------------------------------------------------
def terminate
super
dispose_menu_particles
end

#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
def update
super
update_background
update_particle
end

#--------------------------------------------------------------------------
# ● Update Background
#--------------------------------------------------------------------------
def update_background
@background_sprite.ox += $game_system.wallpaper_scroll[0]
@background_sprite.oy += $game_system.wallpaper_scroll[0]
end

#--------------------------------------------------------------------------
# ● Update Particle
#--------------------------------------------------------------------------
def update_particle
return unless PARTICLES
@particle_bitmap.each {|sprite| sprite.update }
end

end

#==============================================================================
# ● Scene Menu
#==============================================================================
class Scene_Menu < Scene_MenuBase
include WALLPAPER_EX

#--------------------------------------------------------------------------
# ● Start
#--------------------------------------------------------------------------
alias mog_layout_ex_start start
def start
mog_layout_ex_start
set_window_opacity
end
end

#==============================================================================
# ● Scene Item
#==============================================================================
class Scene_Item < Scene_ItemBase
include WALLPAPER_EX

#--------------------------------------------------------------------------
# ● Start
#--------------------------------------------------------------------------
alias mog_layout_ex_start start
def start
mog_layout_ex_start
set_window_opacity
end
end

#==============================================================================
# ● Scene Skill
#==============================================================================
class Scene_Skill < Scene_ItemBase
include WALLPAPER_EX

#--------------------------------------------------------------------------
# ● Start
#--------------------------------------------------------------------------
alias mog_layout_ex_start start
def start
mog_layout_ex_start
set_window_opacity
end
end

#==============================================================================
# ● Scene Equip
#==============================================================================
class Scene_Equip < Scene_MenuBase
include WALLPAPER_EX

#--------------------------------------------------------------------------
# ● Start
#--------------------------------------------------------------------------
alias mog_layout_ex_start start
def start
mog_layout_ex_start
set_window_opacity
end
end

#==============================================================================
# ● Scene Status
#==============================================================================
class Scene_Status < Scene_MenuBase
include WALLPAPER_EX

#--------------------------------------------------------------------------
# ● Start
#--------------------------------------------------------------------------
alias mog_layout_ex_start start
def start
mog_layout_ex_start
set_window_opacity
end
end

#==============================================================================
# ● Scene File
#==============================================================================
class Scene_File < Scene_MenuBase
include WALLPAPER_EX

#--------------------------------------------------------------------------
# ● Start
#--------------------------------------------------------------------------
alias mog_layout_ex_start start
def start
mog_layout_ex_start
set_window_opacity
end
end

#==============================================================================
# ● Scene End
#==============================================================================
class Scene_End < Scene_MenuBase
include WALLPAPER_EX

#--------------------------------------------------------------------------
# ● Start
#--------------------------------------------------------------------------
alias mog_layout_ex_start start
def start
mog_layout_ex_start
set_window_opacity
end
end

#==============================================================================
# ● Window SaveFile
#==============================================================================
class Window_SaveFile < Window_Base

#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
alias mog_wallpaper_initialize initialize
def initialize(height, index)
mog_wallpaper_initialize(height, index)
self.opacity = WALLPAPER_EX::WINDOW_OPACITY if can_opacity_window?
end

#--------------------------------------------------------------------------
# ● Can Opacity Window
#--------------------------------------------------------------------------
def can_opacity_window?
return true
end
end

$mog_rgss3_wallpaper_ex = true
monogatari.txt
 

Attachments

  • monogatari.txt
    323 bytes · Views: 9
Last edited by a moderator:

SlaveOfThaMind

Game Developer / Musician
Veteran
Joined
Jul 10, 2013
Messages
239
Reaction score
23
First Language
English
Primarily Uses
I've done eveything within my skill to get this to work and it just isn't looking good for me =/
 

AwesomeCool

Bratty and spoiled little sister
Veteran
Joined
Jul 20, 2013
Messages
2,862
Reaction score
1,948
First Language
English
Primarily Uses
N/A
Do you want the learn skill window to match the style of the window?  for that might take some modifications.

Edit: by some I mean quite a bit.
 
Last edited by a moderator:

SlaveOfThaMind

Game Developer / Musician
Veteran
Joined
Jul 10, 2013
Messages
239
Reaction score
23
First Language
English
Primarily Uses
Do you want the learn skill window to match the style of the window?  for that might take some modifications.

Edit: by some I mean quite a bit.
Yes, that would be preferred, but, if it must be the basic scheme, so be it. Beggar's can't be choosers or so they say!

Grateful for any help in any form :)
 

Sixth

Veteran
Veteran
Joined
Jul 4, 2014
Messages
2,201
Reaction score
853
First Language
Hungarian
Primarily Uses
RMVXA
WTFruit, 10k lines, wow! o_O

Anyway, you can try to add this in a separate script slot below both scripts mentioned:

Code:
class Window_SkillCommand_2 < Window_Command;         include YEA::LEARN_SKILL    #--------------------------------------------------------------------------  # alias method: make_command_list  #--------------------------------------------------------------------------  alias window_skillcommand_whatever111 make_command_list  def make_command_list    window_skillcommand_whatever111    return if @actor.nil?    add_learn_skill_command unless $imported["YEA-SkillMenu"]  end    #--------------------------------------------------------------------------  # new method: add_learn_skill_command  #--------------------------------------------------------------------------  def add_learn_skill_command    return unless $game_switches[YEA::LEARN_SKILL::SHOW_SWITCH] || YEA::LEARN_SKILL::SHOW_SWITCH <= 0    name = YEA::LEARN_SKILL::COMMAND_NAME    add_command(name, :learn_skill, true, @actor.added_skill_types[0])  end  end

 

I haven't tried this, but Window_SkillCommand_2 is what makes the commands there, so that is what you want to edit.

 

You can also search for 'class Window_SkillCommand < Window_Command' in Yanfly's Learn Skill Engine script, and simply change that line to 'class Window_SkillCommand_2 < Window_Command'.

 

This will most probably add the command there, but how will it look when you are on that scene, I have no idea.

 

10k lines... O_O

 

And, lolz, that background on the pictures... I'm using that for the base for my title scene in my project too. :D
 
Last edited by a moderator:

AwesomeCool

Bratty and spoiled little sister
Veteran
Joined
Jul 20, 2013
Messages
2,862
Reaction score
1,948
First Language
English
Primarily Uses
N/A
The problem with monogatari is that it changes so much with the default window systems that it is not easy to add a menu option to it.

It starts to throw errors for it is not designed with compatibility with such things in mind.

I suggest waiting for luna engine menu system (which has compatiblity with yanfly scripts), and customize it as needed.
 

SlaveOfThaMind

Game Developer / Musician
Veteran
Joined
Jul 10, 2013
Messages
239
Reaction score
23
First Language
English
Primarily Uses
WTFruit, 10k lines, wow! o_O

Anyway, you can try to add this in a separate script slot below both scripts mentioned:

class Window_SkillCommand_2 < Window_Command;         include YEA::LEARN_SKILL    #--------------------------------------------------------------------------  # alias method: make_command_list  #--------------------------------------------------------------------------  alias window_skillcommand_whatever111 make_command_list  def make_command_list    window_skillcommand_whatever111    return if @actor.nil?    add_learn_skill_command unless $imported["YEA-SkillMenu"]  end    #--------------------------------------------------------------------------  # new method: add_learn_skill_command  #--------------------------------------------------------------------------  def add_learn_skill_command    return unless $game_switches[YEA::LEARN_SKILL::SHOW_SWITCH] || YEA::LEARN_SKILL::SHOW_SWITCH <= 0    name = YEA::LEARN_SKILL::COMMAND_NAME    add_command(name, :learn_skill, true, @actor.added_skill_types[0])  end  end I haven't tried this, but Window_SkillCommand_2 is what makes the commands there, so that is what you want to edit.

You can also search for 'class Window_SkillCommand < Window_Command' in Yanfly's Learn Skill Engine script, and simply change that line to 'class Window_SkillCommand_2 < Window_Command'.

This will most probably add the command there, but how will it look when you are on that scene, I have no idea.

10k lines... O_O

And, lolz, that background on the pictures... I'm using that for the base for my title scene in my project too. :D
lol yeah it is one hefty script. im going to be changing the background eventually since i just snagged off google a while back, didnt have search set to free to use/moddable.

dont want to use someones work like that at publish.

ill try this.

UPDATE!

So adding the mentioned script into my database has yielded positive results.

However, when I navigate to learn skill, before even selecting it I pull an error. (shown below)

[IMG]http://i.imgur.com/BwUji8H.png[/IMG]
Here is the code around the 6307 line from monogatari that the error points to

#==============================================================================# ■ Scene_Skill

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

class Scene_Skill

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

  # ● Update

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

  def update

      unless @skill_window[@command_window.index].index < 0

          @item_pre_index = @skill_window[@command_window.index].index

      end    

      update_command

      update_sprites

  end

The problem with monogatari is that it changes so much with the default window systems that it is not easy to add a menu option to it.

It starts to throw errors for it is not designed with compatibility with such things in mind.

I suggest waiting for luna engine menu system (which has compatiblity with yanfly scripts), and customize it as needed.
yeah i kept getting errors myself, the only thing I could accomplish was completely removing the skill menu from monogatari, and i think it disrupted some other processes.

Mog is a beast with scripts but I guess there is really no point trying to contact him/her personally for support. ill most likely either adopt a new menu or new skill system if

this doesn't work out =/
 
Last edited by a moderator:

AwesomeCool

Bratty and spoiled little sister
Veteran
Joined
Jul 20, 2013
Messages
2,862
Reaction score
1,948
First Language
English
Primarily Uses
N/A
Well I got past that error (when I was checking it out), but there are a bunch of other errors too (I got past about 20 of them).  I think it is not worth it personally (to learn how the 10,000 lines of the script work and make a patch).

wait for luna engine (it seems to be getting close to completion).

http://divisionheaven.wordpress.com/scripts/luna-engine/
 

nio kasgami

VampCat
Veteran
Joined
May 21, 2013
Messages
8,973
Reaction score
3,091
First Language
French
Primarily Uses
RMMV
for simplyfied the processus use the SDK_SCRIPT furnish in the demo ..it is a script_data who have the whole script separrate in part so you can more easelly work with it 
 

SlaveOfThaMind

Game Developer / Musician
Veteran
Joined
Jul 10, 2013
Messages
239
Reaction score
23
First Language
English
Primarily Uses
Well I got past that error (when I was checking it out), but there are a bunch of other errors too (I got past about 20 of them).  I think it is not worth it personally (to learn how the 10,000 lines of the script work and make a patch).

wait for luna engine (it seems to be getting close to completion).

http://divisionheaven.wordpress.com/scripts/luna-engine/
Thanks for you extended help in looking into this for me at any rate. I'll prob just use a different combination of skill engine and

menu system if i can find one. Luna does look very promising. That being said, anything I use now will be a place holder until that

is complete and released. Thanks for the help guys.

for simplyfied the processus use the SDK_SCRIPT furnish in the demo ..it is a script_data who have the whole script separrate in part so you can more easelly work with it 
I do not understand?
 
Last edited by a moderator:

Latest Threads

Latest Posts

Latest Profile Posts

A video update on the progress I've been making on the cutscenes. :kaosalute:

I wonder if color LUTs is possible for RPG Maker. It would be game changer and can replace the not so good looking tint screen
new mechanic in battle where you can mentally erase enemies when you deplete all their MP instead HP. this gives you a special item of their "memory". it's pretty to do in battle so far.
Apparently MZ lets you preview move routes in the move route editor without having to start up test game. That could save a lot of time during development compared to MV, especially for a long game that uses a lot of event movement for cutscenes.
A repost of an old meme I had made, now with music

Forum statistics

Threads
115,865
Messages
1,093,571
Members
151,085
Latest member
GabrielTakahashi16
Top