iPhone App Directory
RPG Maker VX
 
Gallery Members Search Calendar Help


Welcome Guest ( Log In | Register )

Collapse

>Announcement

Keep an eye out for the upcoming 3rd Quarter Contest!
 
Reply to this topicStart new topic
> *+_Menu Nostalgia DS_+*, Simple but eye-catchy ^^
Rating 4 V
EvilEagles
post Mar 5 2010, 03:35 PM
Post #1


Viva La Revolución!
Group Icon


Type: Designer
Alignment: Unaligned




Menu Nostalgia DS

by EvilEagles


Introduction
Sorry my English is quite bad =.=" .
Well, this script makes your Main Menu look like the Main Menu of the DS game Nostalgia with customizable help window. Nothing else.


How to Use
100% Plug n' Play. All of the instruction is in the script. You only may change the description for each menu command.


Screenshot



Script
CODE
# ============================================================================ #
# Menu Nostalgia v1.0
# by Zidane ~ EvilEagles
# This script makes your menu look like the menu of the DS game Nostalgia.
# ============================================================================ #

module Zid
# ---------------------------------------------------------------------------- #
# Set the description for each Menu command.
# ---------------------------------------------------------------------------- #

ITEMCMD_DESCRIPTION = "View your items"
SKILLCMD_DESCRIPTION = "View your skills"
EQUIPCMD_DESCRIPTION = "Equip your characters"
STATUSCMD_DESCRIPTION = "View your status"
SAVECMD_DESCRIPTION = "Save your progress"
ENDCMD_DESCRIPTION = "End Game"

# ----------------------- END OF THE CONFIGURATION --------------------------- #
# DON'T TOUCH ANYTHING UNLESS YOU KNOW WHAT YOU'RE DOING
# ---------------------------------------------------------------------------- #
end

#==============================================================================
# ** Window_MenuCommand
#==============================================================================
class Window_MenuCom < Window_Selectable
#--------------------------------------------------------------------------
# * Object Initialization
# x : window x-coordinate
# y : window y-coordinate
# width : window width
# height : window height
#--------------------------------------------------------------------------
def initialize(x, y, width, height)
super(137, 10, width - 270, WLH + 34, 10)
@column_max = 6
self.index = 0
refresh
end
#--------------------------------------------------------------------------
# * Get Item
#--------------------------------------------------------------------------
def item
return @data[self.index]
end
#--------------------------------------------------------------------------
# * Whether or not to display in enabled state
# item : item
#--------------------------------------------------------------------------
def enable?(index)
if $game_party.members.size == 0 and index <= 3
return false
end
if $game_system.save_disabled and index = 6
return false
end
return true
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
@data = ["Item","Skill","Equip","Status","Save","End"]
@icon = [64,231,3,137,141,224]
@item_max = @data.size
create_contents
for i in 0...@item_max
draw_item(i)
end
end
#--------------------------------------------------------------------------
# * Draw Item
# index : item number
#--------------------------------------------------------------------------
def draw_item(index)
rect = item_rect(index)
self.contents.clear_rect(rect)
item = @data[index]
if item != nil
enabled = enable?(index)
rect.width -= 10
rect.x += 0
draw_icon(@icon[index], rect.x + 3, rect.y + 3, enabled)
end
end


def item_rect(index)
rect = Rect.new(0, 0, 0, 0)
rect.width = (contents.width + @spacing) / @column_max - @spacing
rect.height = 30
rect.x = index % @column_max * (rect.width + @spacing)
rect.y = index / @column_max * WLH
return rect
end

end


#==============================================================================
# ** Window_MenuNosStatus
#------------------------------------------------------------------------------
# This window displays party member status on the menu screen.
#==============================================================================

class Window_MenuNosStatus < Window_Selectable
#--------------------------------------------------------------------------
# * Object Initialization
# x : window X coordinate
# y : window Y coordinate
#--------------------------------------------------------------------------
def initialize(x, y)
super(0, 56, 384, 304)
refresh
self.active = false
self.index = -1
self.z = 0
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@item_max = $game_party.members.size
for actor in $game_party.members
draw_actor_face(actor, 2, actor.index * 68 + 2 ,65 )
x = 68
y = actor.index * 70
self.contents.font.bold = true
draw_actor_name(actor, x + 5, y)
self.contents.font.bold = false
draw_actor_level(actor, x + 110, y)
draw_actor_state(actor, x + 170, y)
self.contents.font.size = 18
draw_nosactor_hp(actor, x + 10, y + WLH * 1)
draw_nosactor_mp(actor, x + 150, y + WLH * 1)
self.contents.font.size = 21
draw_actor_exp_meter(actor, x + 45, y + WLH * 2 - 10)
end
end


#--------------------------------------------------------------------------
# * Update cursor
#--------------------------------------------------------------------------
def update_cursor
if @index < 0 # No cursor
self.cursor_rect.empty
elsif @index < @item_max # Normal
self.cursor_rect.set(0, @index * 68, contents.width, 68)
elsif @index >= 100 # Self
self.cursor_rect.set(0, (@index - 100) * 96, contents.width, 96)
else # All
self.cursor_rect.set(0, 0, contents.width, @item_max * 96)
end
end
end



#==============================================================================
# ** Window_Base
#==============================================================================

class Window_Base
#--------------------------------------------------------------------------
# * Draw HP
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
# width : Width
#--------------------------------------------------------------------------
def draw_nosactor_hp(actor, x, y)
contents.font.bold = true
contents.font.color = Color.new(255,126,0)
contents.draw_text(x, y, 30, WLH, Vocab::hp_a)
contents.font.bold = false
contents.font.color = normal_color
contents.font.color = hp_color(actor)
last_font_size = contents.font.size
contents.draw_text(x + 24, y, 44, WLH, actor.hp, 2)
contents.font.color = normal_color()
contents.draw_text(x + 68, y, 11, WLH, "/", 2)
contents.draw_text(x + 79, y, 44, WLH, actor.maxhp, 2)
end
#--------------------------------------------------------------------------
# * Draw MP
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
# width : Width
#--------------------------------------------------------------------------
def draw_nosactor_mp(actor, x, y)
contents.font.bold = true
contents.font.color = Color.new(0,38,255)
contents.draw_text(x, y, 30, WLH, Vocab::mp_a)
contents.font.bold = false
contents.font.color = normal_color
contents.font.color = mp_color(actor)
last_font_size = contents.font.size
contents.draw_text(x + 24, y, 44, WLH, actor.mp, 2)
contents.font.color = normal_color()
contents.draw_text(x + 68, y, 11, WLH, "/", 2)
contents.draw_text(x + 79, y, 44, WLH, actor.maxmp, 2)
end
#--------------------------------------------------------------------------
# * EXP Gauge Color 1
#--------------------------------------------------------------------------
def exp_gauge_color1
return text_color(30)
end
#--------------------------------------------------------------------------
# * EXP Gauge Color 2
#--------------------------------------------------------------------------
def exp_gauge_color2
return text_color(31)
end
#--------------------------------------------------------------------------
# * Draw EXP Gauge
#--------------------------------------------------------------------------
def draw_actor_exp_meter(actor, x, y, width = 230)

if actor.next_exp != 0
exp = actor.now_exp
else
exp = 1
end
gw = width * exp / [actor.next_exp, 1].max
gc1 = exp_gauge_color1
gc2 = exp_gauge_color2
self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
self.contents.font.color = Color.new(0,255,29)
self.contents.draw_text(x - 40, y + 5, 30, WLH, "EXP")
self.contents.font.color = normal_color
xr = x + width
end
end


#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
# This class performs the menu screen processing.
#==============================================================================

class Scene_Menu < Scene_Base
#--------------------------------------------------------------------------
# * Start processing
#--------------------------------------------------------------------------
def start
super
create_menu_background
create_command_window
@gold_window = Window_Gold.new(384, 79)
@status_window = Window_MenuNosStatus.new(0, 56)
@help_window = Window_Help.new
@help_window.x = 0
@help_window.y = 360
@playtime_window = Window_PlayTime.new(384, 135)
@mapname_window = Window_Mapname.new(384, 191)
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
update_menu_background
@command_window.update
@gold_window.update
@status_window.update
@mapname_window.update
@playtime_window.update
if @command_window.active
update_command_selection
update_command_selection2
elsif @status_window.active
update_actor_selection
end
end
#--------------------------------------------------------------------------
# * Termination Processing
#--------------------------------------------------------------------------
def terminate
super
dispose_menu_background
@command_window.dispose
@gold_window.dispose
@status_window.dispose
@help_window.dispose
@playtime_window.dispose
@mapname_window.dispose
end
#--------------------------------------------------------------------------
# * Create Command Window
#--------------------------------------------------------------------------
def create_command_window
@command_window = Window_MenuCom.new(0, 0, 544, 80)
@command_window.index = @menu_index
@command_window.z = 200
end

#--------------------------------------------------------------------------
# * update_command_selection2
#--------------------------------------------------------------------------
def update_command_selection2
case @command_window.index
when 0
@help_window.set_text(Zid::ITEMCMD_DESCRIPTION)
when 1
@help_window.set_text(Zid::SKILLCMD_DESCRIPTION)
when 2
@help_window.set_text(Zid::EQUIPCMD_DESCRIPTION)
when 3
@help_window.set_text(Zid::STATUSCMD_DESCRIPTION)
when 4
@help_window.set_text(Zid::SAVECMD_DESCRIPTION)
when 5
@help_window.set_text(Zid::ENDCMD_DESCRIPTION)
end
end
end


#==============================================================================
# ** Window_PlayTime
#==============================================================================
class Window_PlayTime < Window_Base
def initialize(x, y)
super(x, y, 160, WLH + 32)
refresh
end
def refresh
self.contents.clear
@total_sec = Graphics.frame_count / Graphics.frame_rate
hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
text = sprintf("%02d:%02d:%02d", hour, min, sec)
self.contents.font.color = normal_color
self.contents.draw_text(4, -5, 120, 32, text, 2)
draw_icon(188, 4, 0)
end
def update
super
if Graphics.frame_count / Graphics.frame_rate != @total_sec
refresh
end
end
end

#==============================================================================
# ** Game_Map
#==============================================================================
class Game_Map
attr_reader :map_id
def mpname
$mpname = load_data("Data/MapInfos.rvdata")
$mpname[@map_id].name
end
end

#==============================================================================
# ** Window_Mapname
#==============================================================================
class Window_Mapname < Window_Base
def initialize(x, y)
super(x, y, 160, WLH * 2 + 32)
refresh
end
def refresh
self.contents.clear
self.contents.font.color = normal_color
self.contents.draw_text(4, 20, 120, 32, $game_map.mpname.to_s, 2)
draw_icon(2680, 4, -2)
end
end


#==============================================================================
# ** Game_Actor
#==============================================================================
class Game_Actor < Game_Battler

#--------------------------------------------------------------------------
# * now_exp
#--------------------------------------------------------------------------
def now_exp
return @exp - @exp_list[@level]
end
#--------------------------------------------------------------------------
# * next_exp
#--------------------------------------------------------------------------
def next_exp
return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end
end



Compatibility
Not sure. But I think it can be compatible with almost any menu-related script.


Credits
- Me , EvilEagles for loving this game Nostalgia on DS xD
- Moghunter, coz I borrowed some of his codes.
- Enterbrain, for creating this wonderful RPG Maker engine



Author's Note

- This is only one of my very first scripts, so I'll really appreciate any of your opinions & comments.
- More updates may come soon.

This post has been edited by EvilEagles: Mar 6 2010, 07:23 AM
Go to the top of the page
 
+Quote Post
   
fmjpr
post Mar 6 2010, 01:02 AM
Post #2



Group Icon


Type: Writer
Alignment: Chaotic Neutral




Nice script. That was quite a fun game. Nice, old school game. Looks good, I'll check it out.

Edit: Tested and got immediate syntax error on line 308: Sound.play_cancel. I know I copied it in correctly and even tried in new project. May want to double check the code there.

Edit 2: I see the problem. In your code box, it turned some of your code into smiley's. Easily fixable.



--------------------
Trailer for It Came From Yesterday: Click Me

This was made by a dear friend of mine. Any support is appreciated! Also, Like the Facebook page while you're at it: It Came From Yesterday

New and improved official site: ICFY

Swagbucks referral link: http://www.swagbucks.com/refer/jbart321
Go to the top of the page
 
+Quote Post
   
Riokogen
post Mar 6 2010, 01:35 AM
Post #3


継続は力なり。
Group Icon


Type: Designer
Alignment: Neutral Good




This is pretty good for your first script! Well done smile.gif


--------------------
Go to the top of the page
 
+Quote Post
   
EvilEagles
post Mar 6 2010, 02:07 AM
Post #4


Viva La Revolución!
Group Icon


Type: Designer
Alignment: Unaligned




Thanks biggrin.gif
Well, there was a small bug coz I rewrote those 'draw_actor_hp' & 'draw_actor_mp' . But Ive fixed it. Now this script works perfectly. smile.gif
Go to the top of the page
 
+Quote Post
   
wltr3565
post Mar 6 2010, 03:34 AM
Post #5


The best BAKA ever
Group Icon


Type: Undisclosed
Alignment: True Neutral




A good one here smile.gif. Well, just to remind you that there's some case that someone would want to add one more selection like party switching and etc. Any other easier way to add commands?


--------------------
This place is empty, just like I restarted myself.
Go to the top of the page
 
+Quote Post
   
EvilEagles
post Mar 6 2010, 03:42 AM
Post #6


Viva La Revolución!
Group Icon


Type: Designer
Alignment: Unaligned




Well that's what Im concerning about tongue.gif people might have to change the position of the commands window if they want to add some more commands.
Im still looking for helps from any expert since this script hasn't been finished perfectly yet.

This post has been edited by EvilEagles: Mar 6 2010, 06:50 AM
Go to the top of the page
 
+Quote Post
   
Mr.M
post Mar 7 2010, 06:21 PM
Post #7



Group Icon


Type: Designer
Alignment: True Neutral




How can you change the icons?


--------------------
Go to the top of the page
 
+Quote Post
   
EvilEagles
post Mar 8 2010, 11:15 AM
Post #8


Viva La Revolución!
Group Icon


Type: Designer
Alignment: Unaligned




Find this line:
CODE
@icon = [64,231,3,137,141,224]

Those numbers are the icon's index. The same order with the menu commands. That's it ^^
Go to the top of the page
 
+Quote Post
   
Bentley
post Apr 11 2010, 05:07 PM
Post #9


Animefreak/Gamer
Group Icon


Type: Spriter
Alignment: Chaotic Evil




Cool.. Thnx cool.gif


--------------------
I support
Spoiler:




Go to the top of the page
 
+Quote Post
   
NAT_Designer
post Apr 11 2010, 05:34 PM
Post #10


Do not expect me to be nice.
Group Icon


Type: Designer
Alignment: True Neutral




The menu looks really interesting. If somebody does figure out how to add a party select option the the menu, I will definitely give this a try.


--------------------
Never think of yourself as entitled to know how the world works. Your job is to live in it, and follow it's rules. Nothing more.
Go to the top of the page
 
+Quote Post
   
EvilEagles
post Apr 12 2010, 01:00 PM
Post #11


Viva La Revolución!
Group Icon


Type: Designer
Alignment: Unaligned




QUOTE
The menu looks really interesting. If somebody does figure out how to add a party select option the the menu, I will definitely give this a try.

Which party system are you using? smile.gif
Go to the top of the page
 
+Quote Post
   
Pyro of Zen
post Jan 31 2011, 04:14 PM
Post #12



Group Icon


Type: Writer
Alignment: Lawful Evil




Hmmm...I like the look of this menu. I will use it, but it could be a bit better if I knew how to add commands. It doesn't matter, I can work all the other scripts I'm using into the game somehow smile.gif

Nice script.


--------------------
Games I support:
Go to the top of the page
 
+Quote Post
   
jdmls729
post Jan 31 2011, 10:01 PM
Post #13


still doesn't trust onions.
Group Icon


Type: Coder
Alignment: Chaotic Good




Very nice script.
You may want to add the option to customize icons to the module at the top, like
CODE
@icon = [Zid::ITEM_ICON, Zid::SKILL_ICON,

and so on.


--------------------
I totally support:







Spoiler:


Go to the top of the page
 
+Quote Post
   
NotteEterna
post Feb 5 2011, 03:59 PM
Post #14


The Moogle of Awesomeness
Group Icon


Type: Designer
Alignment: Chaotic Good




I am having a very large problem with your script. when ever i try to copy and paste it, I get a single line in the VX program.


--------------------
1-9-11 "Breaking News: Sevith is a dirty Double Closer."
I guess I should be honoured to cause breaking news...HAHAHA!
Spoiler:


Spoiler:

Add this to your sig if you think we could use a Resource Request Master List(I know we have no voice but still it's only for fun):

Notte Eterna for Resource Request Master List Updater


The Mayan apocalypse theory is what will happen when BigEd781 reaches a higher post count than PINEDAVX.
Go to the top of the page
 
+Quote Post
   
Filius Rex
post Jul 9 2011, 01:34 AM
Post #15



Group Icon


Type: Writer




This is a great menu system! i've been looking for something like this for a long time! biggrin.gif biggrin.gif


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

Go to the top of the page
 
+Quote Post
   
The Blue Griffin
post Jul 9 2011, 03:55 AM
Post #16



Group Icon


Type: Designer




QUOTE (NotteEterna @ Feb 5 2011, 03:59 PM) *
I am having a very large problem with your script. when ever i try to copy and paste it, I get a single line in the VX program.

I am getting that same issue


--------------------
Go to the top of the page
 
+Quote Post
   
Filius Rex
post Jul 10 2011, 03:12 PM
Post #17



Group Icon


Type: Writer




QUOTE (NotteEterna @ Feb 5 2011, 11:59 AM) *
I am having a very large problem with your script. when ever i try to copy and paste it, I get a single line in the VX program.

Try copying it into a text document then copy it into your game. it works for me almost every time biggrin.gif


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

Go to the top of the page
 
+Quote Post
   
xein
post Jul 10 2011, 09:47 PM
Post #18



Group Icon


Type: Undisclosed
Alignment: Unaligned




I'm having the same problem with The Blue Griffin.

EvilEagles, can you please attach a .txt version in your post.


--------------------
Working on:

Visit My Blog
Go to the top of the page
 
+Quote Post
   

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 

Lo-Fi Version Time is now: 23rd July 2014 - 04:34 PM

RPGMakerVX.net is an Privacy Policy, Legal.