09-09-2014, 01:41 PM
(This post was last modified: Yesterday, 06:53 PM by DerVVulfman.)
3 Actors Menu Theme
Author: Soulpour777
Script Date: September 9, 2014
Web URL: infinitytears.wordpress.com
Special Thanks: SephirothSpawn – for my reference for the bars
Description:
This is a simple menu theme that allows you to use Slanted Bars, Battlers and fixed 3 Actors Menu Theme with a Help Bar to indicate which part of the Menu you are browsing.
Features:
Instructions:
Place the script below Materials, above Main. Make sure you have the pictures on the Pictures folder.
Terms of Use:
Each script (without the label being free to use commercially) are protected under Attribution-NonCommercial-ShareAlike 3.0 Philippines (CC BY-NC-SA 3.0 PH)
Download
Author: Soulpour777
Script Date: September 9, 2014
Web URL: infinitytears.wordpress.com
Special Thanks: SephirothSpawn – for my reference for the bars
Description:
This is a simple menu theme that allows you to use Slanted Bars, Battlers and fixed 3 Actors Menu Theme with a Help Bar to indicate which part of the Menu you are browsing.
Features:
- Battlers on Menu
- Menu Description
- Slanted Bars
Instructions:
Place the script below Materials, above Main. Make sure you have the pictures on the Pictures folder.
Terms of Use:
Each script (without the label being free to use commercially) are protected under Attribution-NonCommercial-ShareAlike 3.0 Philippines (CC BY-NC-SA 3.0 PH)
Download
Code:
#==============================================================================
# ** 3 Actors Menu Theme
# Author: Soulpour777
# Script Date: September 9, 2014
# Web URL: infinitytears.wordpress.com
# Special Thanks: SephirothSpawn - for my reference for the bars
#------------------------------------------------------------------------------
# Description:
# This is a simple menu theme that allows you to use Slanted Bars, Battlers
# and fixed 3 Actors Menu Theme with a Help Bar to indicate which part of
# the Menu you are browsing.
#------------------------------------------------------------------------------
# Terms of Use:
# Each script (without the label being free to use commercially)
# are protected under Attribution-NonCommercial-ShareAlike 3.0
# Philippines (CC BY-NC-SA 3.0 PH)
#------------------------------------------------------------------------------
# Attribution — You must give appropriate credit, provide a
# link to the license, and indicate if changes were made. You may do
# so in any reasonable manner, but not in any way that suggests the
# licensor endorses you or your use.
# NonCommercial — You may not use the material for commercial purposes.
# ShareAlike — If you remix, transform, or build upon the material,
# you must distribute your contributions under the same license as the original.
#==============================================================================
module Soulpour
module Daiki_MenuTheme
Counter_Variable = 1 #Counter Variable for Menu Details [Game Variables ID]
Command_Width = Graphics.width # Width of the Command Window on the Left Side
Menu_Names = {
1 => "Items", # Items
2 => "Equip", # Equip
3 => "Skills", # Skills
4 => "Status", # Status
5 => "Formation", # Formation
6 => "Save", # Save
7 => "End" # End
}
# Height of the Menu Status for Showing the Characters
MenuStatus_Height = 290
# Menu Status Y Position
MenuStatus_Y = 0
# How many characters can the menu status show?
MenuStatus_ItemMax = 3 # Max Item of Characters to Display on the Menu
Character_Spacing = 120 # Spaces of the Characters shown in the Menu
Command_Colums = 4 # Number of Menu Columns Available Set for Menu Commands
Menu_Command_Height = 80 # Height of Your Menu Command
end
#--------------------------------------------------------------------------
# * CMS Actors Configuration (For Portrait)
#--------------------------------------------------------------------------
module CMS_Actor
Actor_Portrait = {
1 => "Eric",
2 => "Natalie",
3 => "Terence",
4 => "Ernest",
5 => "Ryoma",
6 => "Brenda",
7 => "Rick",
8 => "Alice",
9 => "Isabelle",
10 => "Noah"
}
end
#--------------------------------------------------------------------------
# Help Indicator Vocabularies
# this is where you place all the help words whenever we display the menu
# commands.
#--------------------------------------------------------------------------
module Help_Vocabs
Menu = [
"The present items in your inventory.",
"Change your equipments.",
"Your skills present to use.",
"View your current status",
"Change your party formation",
"Save your current progress.",
"Quit or restart game."
]
end
module Slanted_Bars
DEFAULT_HP_BAR_COLOR = Color.new(0,150,0,255) # Beginning color of HP bar
DEFAULT_HP_END_COLOR = Color.new(51,150,0,255) # Ending color of HP bar
DEFAULT_MP_BAR_COLOR = Color.new(0,0,150,255) # Begenning color of MP bar
DEFAULT_MP_END_COLOR = Color.new(0,51,150,255) # Ending color of MP bar
end
end
class Game_System
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :counter_variable
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias :soulpour_rgss3_aimine_daiki_theme_game_system_initialize :initialize
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
soulpour_rgss3_aimine_daiki_theme_game_system_initialize
@counter_variable = 0
end
end
class Window_HeaderI < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(0, 0, Graphics.width, 48)
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
draw_text(4, 0, Graphics.width, line_height, Soulpour::Help_Vocabs::Menu[$game_system.counter_variable])
end
#--------------------------------------------------------------------------
# * Open Window
#--------------------------------------------------------------------------
def open
refresh
super
end
end
class Window_MenuCommand < Window_Command
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(0, 47)
select_last
end
#--------------------------------------------------------------------------
# * Move Cursor Down
#--------------------------------------------------------------------------
def cursor_down(wrap = false)
if index < item_max - col_max || (wrap && col_max == 1)
select((index + col_max) % item_max)
if $game_system.counter_variable <= 7
if $game_system.counter_variable != 7
if $game_system.counter_variable > 7
$game_system.counter_variable = 1
else
$game_system.counter_variable += 1
end
else
$game_system.counter_variable = 1
end
else
$game_system.counter_variable = 1
end
end
end
#--------------------------------------------------------------------------
# * Move Cursor Up
#--------------------------------------------------------------------------
def cursor_up(wrap = false)
if index >= col_max || (wrap && col_max == 1)
select((index - col_max + item_max) % item_max)
if $game_system.counter_variable > 1
$game_system.counter_variable -= 1
else
$game_system.counter_variable = 7
end
end
end
def update_help
@help_window.set_rgss3spvii_help(@index)
end
end
class Scene_Menu < Scene_MenuBase
#--------------------------------------------------------------------------
# * Start Processing
#--------------------------------------------------------------------------
def start
super
create_command_window
create_status_window
end
end
class Window_Base
#--------------------------------------------------------------------------
# * Draw Actor Simple Status (Rewrite)
#--------------------------------------------------------------------------
def draw_actor_simple_status(actor, x, y)
draw_actor_name(actor, x - 97, y - 14)
draw_actor_icons(actor, x, y + line_height * 2)
draw_actor_hp(actor, x - 105, y - 20 + line_height * 1 + 185)
draw_actor_mp(actor, x - 105, y - 20 + line_height * 2 + 185)
end
end
class Window
#--------------------------------------------------------------------------
# * Set Mirai Help
#--------------------------------------------------------------------------
def set_rgss3spvii_help(index)
return if @index == index # To prevent excessive redrawing
@index = index
$game_system.counter_variable = index
refresh
end
end
class Window_MenuCommand < Window_Command
#--------------------------------------------------------------------------
# * Number of Command Columns
#--------------------------------------------------------------------------
def col_max
# Changed the column max for the given set of commands
return Soulpour::Daiki_MenuTheme::Command_Colums
end
#--------------------------------------------------------------------------
# * Get Window Width (Completely Modified)
#--------------------------------------------------------------------------
def window_width
#this returns the change of width to the Menu Command's Width
return Soulpour::Daiki_MenuTheme::Command_Width
end
#--------------------------------------------------------------------------
# * Get Window Height
#--------------------------------------------------------------------------
def window_height
#this returns the change of width to the Menu Command's Height
return Soulpour::Daiki_MenuTheme::Menu_Command_Height
end
#--------------------------------------------------------------------------
# * Add Main Commands to List (Completely Modified)
#--------------------------------------------------------------------------
def add_main_commands
add_command(Soulpour::Daiki_MenuTheme::Menu_Names.values[0], :item, main_commands_enabled)
add_command(Soulpour::Daiki_MenuTheme::Menu_Names.values[1], :equip, main_commands_enabled)
add_command(Soulpour::Daiki_MenuTheme::Menu_Names.values[2], :skills, main_commands_enabled)
add_command(Soulpour::Daiki_MenuTheme::Menu_Names.values[3], :status, main_commands_enabled)
end
end
class Scene_Menu < Scene_MenuBase
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias :soulpour_scene_menu_start_processing_rgss3spvii :start
#--------------------------------------------------------------------------
# * Start Processing
#--------------------------------------------------------------------------
def start
soulpour_scene_menu_start_processing_rgss3spvii
@header_one = Window_HeaderI.new
@command_window.help_window = @header_one
@header_one.x = 0
@header_one.y = Graphics.height - @header_one.height
end
#--------------------------------------------------------------------------
# * Create Command Window
#--------------------------------------------------------------------------
def create_command_window
@command_window = Window_MenuCommand.new
@command_window.y = 290
@command_window.set_handler(:item, method(:command_item))
@command_window.set_handler(:equip, method(:command_personal))
@command_window.set_handler(:skills, method(:command_personal))
@command_window.set_handler(:status, method(:command_personal))
@command_window.set_handler(:formation, method(:command_formation))
@command_window.set_handler(:save, method(:command_save))
@command_window.set_handler(:game_end, method(:command_game_end))
@command_window.set_handler(:cancel, method(:return_scene))
end
#--------------------------------------------------------------------------
# * Formation [OK]
#--------------------------------------------------------------------------
def on_formation_ok
if @status_window.pending_index >= 0
$game_party.swap_order(@status_window.index,
@status_window.pending_index)
@status_window.pending_index = -1
@status_window.redraw_item(@status_window.index)
else
@status_window.pending_index = @status_window.index
end
@status_window.refresh
@status_window.activate
end
#--------------------------------------------------------------------------
# * Formation [Cancel]
#--------------------------------------------------------------------------
def on_formation_cancel
if @status_window.pending_index >= 0
@status_window.pending_index = -1
@status_window.refresh
@status_window.activate
else
@status_window.unselect
@command_window.activate
end
end
#--------------------------------------------------------------------------
# * [Skill], [Equipment] and [Status] Commands
#--------------------------------------------------------------------------
def command_personal
@status_window.select_last
@status_window.activate
@status_window.set_handler(:ok, method(:on_personal_ok))
@status_window.set_handler(:cancel, method(:on_personal_cancel))
end
#--------------------------------------------------------------------------
# * [OK] Personal Command
#--------------------------------------------------------------------------
def on_personal_ok
case @command_window.current_symbol
when :skills
SceneManager.call(Scene_Skill)
when :equip
SceneManager.call(Scene_Equip)
when :status
SceneManager.call(Scene_Status)
end
end
end
class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(x, y)
super(x, y, window_width, window_height)
@pending_index = -1
refresh
end
#--------------------------------------------------------------------------
# * Get Window Height
#--------------------------------------------------------------------------
def window_height
Soulpour::Daiki_MenuTheme::MenuStatus_Height
end
#--------------------------------------------------------------------------
# * Get Rectangle for Drawing Items
#--------------------------------------------------------------------------
def item_rect(index)
rect = Rect.new
rect.width = item_width + 50
rect.height = item_height + 190
rect.x = index % col_max * (item_width + spacing)
rect.y = index / col_max * item_height
rect
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 (To Show Portrait)
#--------------------------------------------------------------------------
attr_reader :actor_id
end
class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(x, y)
super(x, 47, window_width, window_height)
@pending_index = -1
refresh
self.x = 0
self.y = Soulpour::Daiki_MenuTheme::MenuStatus_Y
end
#--------------------------------------------------------------------------
# * Get Number of Items
# Changed to 1 to only show 1 party member.
#--------------------------------------------------------------------------
def item_max
Soulpour::Daiki_MenuTheme::MenuStatus_ItemMax
end
#--------------------------------------------------------------------------
# * Get Spacing for Items Arranged Side by Side
#--------------------------------------------------------------------------
def spacing
return Soulpour::Daiki_MenuTheme::Character_Spacing
end
#--------------------------------------------------------------------------
# * Get Window Width
#--------------------------------------------------------------------------
def window_width
return Graphics.width
end
#--------------------------------------------------------------------------
# * Get Columns
#--------------------------------------------------------------------------
def col_max
return 4
end
#--------------------------------------------------------------------------
# * Get Rectangle for Drawing Items
#--------------------------------------------------------------------------
def item_rect(index)
rect = Rect.new
rect.width = item_width + 110
rect.height = item_height + 190
rect.x = index % col_max * (item_width + spacing)
rect.y = index / col_max * item_height
rect
end
#--------------------------------------------------------------------------
# * Draw Item
#--------------------------------------------------------------------------
def draw_item(index)
actor = $game_party.members[index]
enabled = $game_party.battle_members.include?(actor)
rect = item_rect(index)
draw_item_background(index)
draw_actor_portrait(actor, rect.x - 20, 10, enabled = true)
draw_actor_simple_status(actor, rect.x + 108, rect.y + line_height / 2)
end
#--------------------------------------------------------------------------
# * Draw Actor Portrait
#--------------------------------------------------------------------------
def draw_actor_portrait(actor, x, y, enabled = true)
bitmap = Cache.picture(Soulpour::CMS_Actor::Actor_Portrait[actor.actor_id])
rect = Rect.new(0,0, 220, Graphics.height)
contents.blt(x, y, bitmap, rect, enabled ? 255 : translucent_alpha)
bitmap.dispose
end
end
class Window_Base < Window
include Soulpour::Slanted_Bars
#--------------------------------------------------------------------------
# * Draw Slant Bar
#--------------------------------------------------------------------------
def draw_slant_bar(x, y, min, max, width = 152, height = 6,
bar_color = Color.new(150, 0, 0, 255),
end_color = Color.new(255, 255, 60, 255))
#--------------------------------------------------------------------------
# * Draws the Border
#--------------------------------------------------------------------------
for i in 0..height
self.contents.fill_rect(x + i, y + height - i, width + 1, 1,
Color.new(50, 50, 50, 255))
end
#--------------------------------------------------------------------------
# * Draws the Background
#--------------------------------------------------------------------------
for i in 1..(height - 1)
r = 100 * (height - i) / height + 0 * i / height
g = 100 * (height - i) / height + 0 * i / height
b = 100 * (height - i) / height + 0 * i / height
a = 255 * (height - i) / height + 255 * i / height
self.contents.fill_rect(x + i, y + height - i, width, 1,
Color.new(r, b, g, a))
end
#--------------------------------------------------------------------------
# * Draws the Bar
#--------------------------------------------------------------------------
for i in 1..( (min / max.to_f) * width - 1)
for j in 1..(height - 1)
r = bar_color.red * (width - i) / width + end_color.red * i / width
g = bar_color.green * (width - i) / width + end_color.green * i / width
b = bar_color.blue * (width - i) / width + end_color.blue * i / width
a = bar_color.alpha * (width - i) / width + end_color.alpha * i / width
self.contents.fill_rect(x + i + j, y + height - j, 1, 1,
Color.new(r, g, b, a))
end
end
end
#--------------------------------------------------------------------------
# * Draw HP
#--------------------------------------------------------------------------
def draw_actor_hp(actor, x, y, width = 124)
draw_slant_bar(x-3,y+13,actor.hp,actor.mhp,width,8,
DEFAULT_HP_BAR_COLOR, DEFAULT_HP_END_COLOR)
change_color(system_color)
draw_text(x, y, 30, line_height, Vocab::hp_a)
draw_current_and_max_values(x, y, width, actor.hp, actor.mhp,
hp_color(actor), normal_color)
end
#--------------------------------------------------------------------------
# * Draw MP
#--------------------------------------------------------------------------
def draw_actor_mp(actor, x, y, width = 124)
draw_slant_bar(x-3,y+13,actor.mp,actor.mmp,width,8,
DEFAULT_MP_BAR_COLOR, DEFAULT_MP_END_COLOR)
change_color(system_color)
draw_text(x, y, 30, line_height, Vocab::mp_a)
draw_current_and_max_values(x, y, width, actor.mp, actor.mmp,
mp_color(actor), normal_color)
end
end
class Window_SkillStatus < Window_Base
#--------------------------------------------------------------------------
# * Draw Status Graphics
#--------------------------------------------------------------------------
def draw_status_graphics(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)
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
contents.clear
return unless @actor
draw_actor_face(@actor, 0, 0)
draw_status_graphics(@actor, 108, line_height / 2)
end
end
Huhubugin, Bubuuin, Daranasin, Ating tuklasin, Diwa't isip bubuhayin
Mula sa wala, Mundo ay nilikha, Nililok na mukha, Sa siklab ay nagsimula,
Tinanglaw ang palad, Likhang binigyang malay, Sa init, Hugis ang binagay!
Apoy! Mula sa wala, Mundo ay nilikha
Tinanglaw ang palad, Sa apoy hugis ang binagay
Mula sa wala, Mundo ay nilikha, Nililok na mukha, Sa siklab ay nagsimula,
Tinanglaw ang palad, Likhang binigyang malay, Sa init, Hugis ang binagay!
Apoy! Mula sa wala, Mundo ay nilikha
Tinanglaw ang palad, Sa apoy hugis ang binagay
![[Image: UfhwrmV.png]](https://i.imgur.com/UfhwrmV.png)

