I'm back, with a new CMS too.
Again, only simple, take a look at the features:
Location window.
Display name of your game at the top.
Inlcude a logo for your game (No more than 220 x 288 pixels). I have used FFXII as an example.
Unlimited commands, any number over 6 will make the command window scrolling.
[spoiler=Screeny]
(https://rmrk.net/proxy.php?request=http%3A%2F%2Fi163.photobucket.com%2Falbums%2Ft302%2Fpsychomathic-paniac%2FCMShot.jpg&hash=eb3973b21f84f915dbd7f11fdf4d34715897848e)
[/spoiler]
[spoiler=Code]
#==============#
#=> CMS #3 <=#
#=> Rune <=#
#=> Feb 2008 <=#
#==============#
$LOGO = RPG::Cache.picture("Logo")
$data_mapinfos = load_data('Data/MapInfos.rxdata')
class Window_Steps
def initialize
super(0, 0, 410, 96)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
contents.clear
contents.font.color = system_color
contents.draw_text(0, 0, 378, 32, 'Location', 1)
contents.font.color = normal_color
name = $data_mapinfos[$game_map.map_id].name
contents.draw_text(0, 32, 378, 32, name, 1)
end
end
class Window_GName < Window_Base
def initialize
super(0, 0, 250, 64)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(0, 0, 218, 32, "Insert Game Name Here", 1)
end
end
class Window_GLogo < Window_Base
def initialize
super(0, 0, 250, 320)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
self.contents.clear
self.contents.blt(0, 0, $LOGO, Rect.new(0, 0, 220, 288))
end
end
class Window_MenuStatus < Window_Selectable
def initialize
super(0, 0, 230, 480)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
self.active = false
self.index = -1
end
def refresh
self.contents.clear
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
x = 64
y = i * 116
actor = $game_party.actors[i]
draw_actor_graphic(actor, x - 40, y + 75)
draw_actor_name(actor, x - 60, y - 5)
draw_actor_class(actor, x - 20, y + 19)
draw_actor_level(actor, x + 30, y - 5)
draw_actor_state(actor, x + 54, y + 19)
draw_actor_hp(actor, x - 16, y + 43)
draw_actor_sp(actor, x - 16, y + 67)
end
end
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
else
self.cursor_rect.set(0, @index * 116, self.width - 32, 96)
end
end
end
class Scene_Menu
def initialize(menu_index = 0)
@menu_index = menu_index
end
def main
s1 = "Inventory"
s2 = "Techniques"
s3 = "Equipment"
s4 = "Status"
s5 = "Save Game"
s6 = "Quit Game"
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
@command_window.index = @menu_index
@command_window.x = 480
@command_window.height = 32 * 7 + 1
if $game_party.actors.size == 0
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
if $game_system.save_disabled
@command_window.disable_item(4)
end
@playtime_window = Window_PlayTime.new
@playtime_window.x = 480
@playtime_window.y = 288
@steps_window = Window_Steps.new
@steps_window.x = 230
@steps_window.y = 384
@gold_window = Window_Gold.new
@gold_window.x = 480
@gold_window.y = 224
@status_window = Window_MenuStatus.new
@status_window.x = 0
@status_window.y = 0
@gnam_window = Window_GName.new
@gnam_window.x = 230
@gnam_window.y = 0
@glog_window = Window_GLogo.new
@glog_window.x = 230
@glog_window.y = 64
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@command_window.dispose
@playtime_window.dispose
@steps_window.dispose
@gold_window.dispose
@status_window.dispose
@gnam_window.dispose
@glog_window.dispose
end
def update
@command_window.update
@playtime_window.update
@steps_window.update
@gold_window.update
@status_window.update
@gnam_window.update
@glog_window.update
if @command_window.active
update_command
return
end
if @status_window.active
update_status
return
end
end
def update_command
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
if $game_party.actors.size == 0 and @command_window.index < 4
$game_system.se_play($data_system.buzzer_se)
return
end
case @command_window.index
when 0
$game_system.se_play($data_system.decision_se)
$scene = Scene_Item.new
when 1
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 2
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 3
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 4
if $game_system.save_disabled
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Scene_Save.new
when 5
$game_system.se_play($data_system.decision_se)
$scene = Scene_End.new
end
return
end
end
def update_status
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@status_window.active = false
@status_window.index = -1
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 1
if $game_party.actors[@status_window.index].restriction >= 2
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Scene_Skill.new(@status_window.index)
when 2
$game_system.se_play($data_system.decision_se)
$scene = Scene_Equip.new(@status_window.index)
when 3
$game_system.se_play($data_system.decision_se)
$scene = Scene_Status.new(@status_window.index)
end
return
end
end
end
[/spoiler]
Your logo must be no bigger than 220 x 288 pixels, and must go inside your 'pictures' folder.
When inserting it, look for the first line of actual code in the script:
$LOGO = RPG::Cache.picture("Logo")
Change "Logo" to whatever your logo is called. Case sensitive. DO NOT REMOVE THE QUOTATION MARKS.
To change the logo in-game, simply use a call script command:
$LOGO = RPG::Cache.picture("Logo")
Do as above, change the text inside the quotation marks to the name of the logo you would like to change to.
That should be all, an' have fun ;) Post, or PM me if you have any troubles or queries.
Nice. I think I'll use it. I've been looking for a simple yet different CMS. ;D
Wow, didn't expect a reply so soon :P
Looks pretty nice. I'll throw it in the database
Looks nice, i like it! :)
Yeah, I like it too. Simple but neat.
BTW, are there anyways to change the sprites to facesets or battlers?
If no, then it's fine. =)
class Window_Base
def draw_actor_graphic(actor, x, y)
bitmap = RPG::Cache.picture(actor.name + "_face")
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
end
end
Insert that scriptlet above main, or in the menu script, at the top. The images should be around 96x96 pixels, should go in your project's Pictures folder, and should include the character's name, followed by "_face". E.g, "Aluxes_face"
Great. Thanks!
Eh, Rune. What about my request a while ago? :'(
*maybe i can use this. But can u remove "Save Game" selection from the menu screen? ;)
I sent that to you :-\
Decide which one you want, and i'll send again ;)
Quote from: Rune on March 07, 2008, 04:40:25 PM
I sent that to you :-\
Decide which one you want, and i'll send again ;)
hwaa.. ? but i havent receive any script yet ;9
*umn, i prefer the old one. coz it fit with your savepoint script ^_^
Okies then, i'll resend :P Sorry about that.
Quote from: Rune on March 09, 2008, 10:15:57 AM
Okies then, i'll resend :P Sorry about that.
Yay! It work perfectly!
*thanks, rune :tpg:
You're welcome ;)
Sorry to bother you Rune-san but ummm... it doesn't work on mine.
I've put the pic iwanted for the logo following the pixel requirements and well I put it in my picture folder. and I wrote the name in the script all it says is "unable to find file Graphics/Pictures/Logo."
if you get some time.. can you help me out?
Thanks in advance ^^
EDIT: Nevermind sorry I got it now now Imma try to put faces instead of the ugly sprites...
Edit#2: Help same problem I did everything but it sez "Cannot find file Graphics/Pictures/AluxesAluxes_face, lol sorry I bother so much xD
xD
I don't think that's anything to do with the script :-\
Just make sure the files are named right. Did you mean to put 2 'Aluxes'? If that's what the error says then, check the name of that character to see if he hasn't got a duplicate name.
Other than that, I can't see what could be causing that :-\ Sorry...
I've tried everything... nothing works...
my image is 96x96 pixels, its in my projects picture folder. the actor name is Cless; I named the file Cless_face.bmp which is what you explained
Rune-san. I put the scriptlet inside the CMS on the top. and I put "Cless_face" just like you said... still says "Unable to find file Graphics/Pictures/ClessCless_face."
yes it says it twice... so does that mean i need to name my Actor "Cless_face"?
lol I dunno but it would be kinda weird eh?, umm if there is any way you can help me I would greatly appreciate it Rune-san ^^
Make sure the scriptlet says
bitmap = RPG::Cache.picture(actor.name + "_face")
And doesn't repeat actor.name twice.
#==============#
#=> CMS #3 <=#
#=> Rune <=#
#=> Feb 2008 <=#
#==============#
class Window_Base
def draw_actor_graphic(actor, x, y)
bitmap = RPG::Cache.picture(actor.name + "Aluxes_face")
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
end
end
$data_mapinfos = load_data('Data/MapInfos.rxdata')
class Window_Steps
def initialize
super(0, 0, 410, 96)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
contents.clear
contents.font.color = system_color
contents.draw_text(0, 0, 378, 32, 'Location', 1)
contents.font.color = normal_color
name = $data_mapinfos[$game_map.map_id].name
contents.draw_text(0, 32, 378, 32, name, 1)
end
end
class Window_GName < Window_Base
def initialize
super(0, 0, 250, 64)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(0, 0, 218, 32, "Nagi", 1)
end
end
class Window_GLogo < Window_Base
def initialize
super(0, 0, 250, 320)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
self.contents.clear
bitmap = RPG::Cache.picture("Nagi")
self.contents.blt(0, 0, bitmap, Rect.new(0, 0, 220, 288))
end
end
class Window_MenuStatus < Window_Selectable
def initialize
super(0, 0, 230, 480)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
self.active = false
self.index = -1
end
def refresh
self.contents.clear
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
x = 64
y = i * 116
actor = $game_party.actors[i]
draw_actor_graphic(actor, x - 40, y + 75)
draw_actor_name(actor, x - 60, y - 5)
draw_actor_class(actor, x - 20, y + 19)
draw_actor_level(actor, x + 30, y - 5)
draw_actor_state(actor, x + 54, y + 19)
draw_actor_hp(actor, x - 16, y + 43)
draw_actor_sp(actor, x - 16, y + 67)
end
end
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
else
self.cursor_rect.set(0, @index * 116, self.width - 32, 96)
end
end
end
class Scene_Menu
def initialize(menu_index = 0)
@menu_index = menu_index
end
def main
s1 = "Items"
s2 = "Skills"
s3 = "Equipment"
s4 = "Status"
s5 = "Save Game"
s6 = "Quit Game"
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
@command_window.index = @menu_index
@command_window.x = 480
@command_window.height = 32 * 7 + 1
if $game_party.actors.size == 0
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
if $game_system.save_disabled
@command_window.disable_item(4)
end
@playtime_window = Window_PlayTime.new
@playtime_window.x = 480
@playtime_window.y = 288
@steps_window = Window_Steps.new
@steps_window.x = 230
@steps_window.y = 384
@gold_window = Window_Gold.new
@gold_window.x = 480
@gold_window.y = 224
@status_window = Window_MenuStatus.new
@status_window.x = 0
@status_window.y = 0
@gnam_window = Window_GName.new
@gnam_window.x = 230
@gnam_window.y = 0
@glog_window = Window_GLogo.new
@glog_window.x = 230
@glog_window.y = 64
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@command_window.dispose
@playtime_window.dispose
@steps_window.dispose
@gold_window.dispose
@status_window.dispose
@gnam_window.dispose
@glog_window.dispose
end
def update
@command_window.update
@playtime_window.update
@steps_window.update
@gold_window.update
@status_window.update
@gnam_window.update
@glog_window.update
if @command_window.active
update_command
return
end
if @status_window.active
update_status
return
end
end
def update_command
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
if $game_party.actors.size == 0 and @command_window.index < 4
$game_system.se_play($data_system.buzzer_se)
return
end
case @command_window.index
when 0
$game_system.se_play($data_system.decision_se)
$scene = Scene_Item.new
when 1
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 2
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 3
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 4
if $game_system.save_disabled
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Scene_Save.new
when 5
$game_system.se_play($data_system.decision_se)
$scene = Scene_End.new
end
return
end
end
def update_status
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@status_window.active = false
@status_window.index = -1
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 1
if $game_party.actors[@status_window.index].restriction >= 2
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Scene_Skill.new(@status_window.index)
when 2
$game_system.se_play($data_system.decision_se)
$scene = Scene_Equip.new(@status_window.index)
when 3
$game_system.se_play($data_system.decision_se)
$scene = Scene_Status.new(@status_window.index)
end
return
end
end
end
that's the jig of it... the file name is Aluxes_face.bmp and is on my picture folder. I have tried several other methods and same thing happens...
sorry for being a pain in the ass... ><;; , lol I feel embarrased that many that used this script didn't have any problems.. and I'm the only idiot that does... xD
Yeah, that line there:
bitmap = RPG::Cache.picture(actor.name + "Aluxes_face")
should be
bitmap = RPG::Cache.picture(actor.name + "_face")
YAY~!!
Thanks Rune-san... you shall be golrified ny me for many decades to come and even my concubines xDD
thank you~!!! /ok
Perfect. not overdone, or oversimple. ill use it!
Thanks for the replies, and i'm glad your problem's sorted Klarth :D
I have 2 issues installing the script (imma noob)
1. Do I delete the current "window_steps" "window_menustatus" and "scene_menu"
2. I always get an error about the line "super(0, 0, 410, 96)"
Please help
1. You don't delete the current Window_Steps, but you do delete Window_MenuStatus. You replace the default Scene_Menu with the one I posted in the first post.
2. Did you delete the current Window_Steps already?
1. okay I wasn't sure.
2. yeah but I always make a back-up file so its fine
Thanks Rune for taking time to help a noobie.
No prob. 's what I do. ;)
ok I got it working but the characters Hp/Mp don't appear.
And the Game Title and Map Name don't appear
Help again
Does everything else show up? And do they show it with the Monotype Corsiva font?
If not, download the font (link in first post) and put it in your computer's 'Fonts' folder.
This is real nice and cool, and I have a question for it; Would it be possible to change the logo with a call script? Like to show change in chapters or to show that you've done something special like beaten the game...?
If not, still friggin' cool ;)
Rune, I should give you lots of love for this one. I was worried this wouldn't have support for more than 4 characters, but it does. I finally have a decent CMS that can support all 8 of my characters. :tpg:
[offtopic]Your avatar is awesome[/offtopic]
I never actually tried it with more than 4 characters :D
Glad you like it ;)
[offtopic]Thanks ;8[/offtopic]
@Demonic Blade
You're in luck! I updated the script just now. Look at the first post, and take the script off that ;)
Quote from: Rune on February 23, 2008, 03:01:02 PM
Your logo must be no bigger than 220 x 288 pixels, and must go inside your 'pictures' folder.
When inserting it, look for the first line of actual code in the script:
$LOGO = RPG::Cache.picture("Logo")
Change "Logo" to whatever your logo is called. Case sensitive. DO NOT REMOVE THE QUOTATION MARKS.
To change the logo in-game, simply use a call script command:
$LOGO = RPG::Cache.picture("Logo")
Do as above, change the text inside the quotation marks to the name of the logo you would like to change to.
That'll solve your query ;)
everything else shows up and I just got the font
Ugh, I have too many scripts xD
I got confused between two, this one doesn't use the font.
I'll look into what might be wrong :-\
~Edit
Post a screeny of what it looks like.
Sweet. Now to tryin' it out...
Quote from: Rune on March 25, 2008, 10:38:37 PM
Ugh, I have too many scripts xD
I got confused between two, this one doesn't use the font.
I'll look into what might be wrong :-\
~Edit
Post a screeny of what it looks like.
ok here is the problem;
[spoiler](https://rmrk.net/proxy.php?request=http%3A%2F%2Fi230.photobucket.com%2Falbums%2Fee110%2FSx2_%2Ferrorcms.jpg&hash=03ed5c4d7453e3e0d5651624bafb12deb610f6b6)[/spoiler]
Post the script so I can compare it with the one I have. I'll see what's wrong.
I ran into a bug with this. None of the Text is appearing in my menu whatsoever. Anyone got any ideas?
Hmm... go into your main script and add in these lines just after begin, don't paste it over anything. -.-
$fontface = "Tahoma"
$fontsize = 22
If that fails, change $fontface and $fontsize to $defaultfonttype and $defaultfontsize.
If that also fails, inform me.
Rune-sempai~!!
I don't know who else to turn to... ><
I have made a post of my problem in the troubleshooting site, but it has been useless... only you can help me...
is about this same CMS I need some help:
http://rmrk.net/index.php/topic,26630.0.html
thats the link to the other post... i would apreciate every bit of your help thanks so much~
Hey, first ; nice guide, the text and logo thing in the menu has given me a few possible ideas to make my game cooler.
But I'm having the same problem as Sx2.
I've attached a screenshot of what happens with me to this message. BTW the blackness isn't an error, I done that myself, but as you can see there is allot of text missing that should be there.
I'm only doing this as a bit of practice (as you can see from the game title xD), and then I'll probably have my own menu, but I want to use this one for a while.
Here is the code I'm using :
return
end
end
def update_status
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@status_window.active = false
@status_window.index = -1
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 1
if $game_party.actors[@status_window.index].restriction >= 2
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Scene_Skill.new(@status_window.index)
when 2
$game_system.se_play($data_system.decision_se)
$scene = Scene_Equip.new(@status_window.index)
when 3
$game_system.se_play($data_system.decision_se)
$scene = Scene_Status.new(@status_window.index)
end
return
end
end
end
Could my problem be something to do with the fact that I deleted Window_(something) earlier on? (it's mentioned in one of your earlier posts that I have to delete it)?
Oh, I've fixed my little problem guys. For those of you who were also experiencing my problem, here's what to do :
Go into the script, and into Scene_Menu.
Now go down until you see
class Window_GName < Window_Base
Once you've found that, a little bit down should be :
self.contents = Bitmap.new(width - 32, height - 32)
Under that line, put this :
self.contents.font.name = $defaultfonttype
self.contents.font.size = $defaultfontsize
Now that's that, sorted. We have a font to display the text in the Game Name bit above the logo. Now for the characters... Go down until you find :
class Window_MenuStatus < Window_Selectable
And again, look for this under that bit of code :
self.contents = Bitmap.new(width - 32, height - 32)
And then put under that ;
self.contents.font.name = $defaultfonttype
self.contents.font.size = $defaultfontsize
Again. There we go.
I think the problem was that the game didn't know what font to use.
I done not bad for a total newb at this, huh?
Nice work. I had a strong feeling it was to do with the script not knowing which font to use. Thanks for posting your solution, but remember to use the edit post feature next time. ;)
One more tip, '$defaultfonttype' and '$defaultfontsize' could be replaced with '$fontface' and '$fontsize', or 'Font.default_type' and 'Font.default_size'. ;)
I like it, and I'm going to use it in my game.
But is there any way to get the text with the hero's current status out of the menu's first page or into another line? See, my heroes' classes' names are sort of long, and the "[Normal]" or "[Unconscious]" cover it.
#==============#
#=> CMS #3 <=#
#=> Rune <=#
#=> Feb 2008 <=#
#==============#
$LOGO = RPG::Cache.icon("001-Weapon01")
$data_mapinfos = load_data('Data/MapInfos.rxdata')
class Window_Steps
def initialize
super(0, 0, 410, 96)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
contents.clear
contents.font.color = system_color
contents.draw_text(0, 0, 378, 32, 'Location', 1)
contents.font.color = normal_color
name = $data_mapinfos[$game_map.map_id].name
contents.draw_text(0, 32, 378, 32, name, 1)
end
end
class Window_GName < Window_Base
def initialize
super(0, 0, 250, 64)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(0, 0, 218, 32, "Insert Game Name Here", 1)
end
end
class Window_GLogo < Window_Base
def initialize
super(0, 0, 250, 320)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
self.contents.clear
self.contents.blt(0, 0, $LOGO, Rect.new(0, 0, 220, 288))
end
end
class Window_MenuStatus < Window_Selectable
def initialize
super(0, 0, 230, 480)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
self.active = false
self.index = -1
end
def refresh
self.contents.clear
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
x = 64
y = i * 116
actor = $game_party.actors[i]
draw_actor_graphic(actor, x - 40, y + 75)
draw_actor_name(actor, x - 60, y - 8)
draw_actor_class(actor, x - 20, y + 11)
draw_actor_level(actor, x + 30, y - 8)
draw_actor_state(actor, x - 20, y + 30)
draw_actor_hp(actor, x - 20, y + 51)
draw_actor_sp(actor, x - 20, y + 71)
end
end
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
else
self.cursor_rect.set(0, @index * 116, self.width - 32, 96)
end
end
end
class Scene_Menu
def initialize(menu_index = 0)
@menu_index = menu_index
end
def main
s1 = "Inventory"
s2 = "Techniques"
s3 = "Equipment"
s4 = "Status"
s5 = "Save Game"
s6 = "Quit Game"
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
@command_window.index = @menu_index
@command_window.x = 480
@command_window.height = 32 * 7 + 1
if $game_party.actors.size == 0
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
if $game_system.save_disabled
@command_window.disable_item(4)
end
@playtime_window = Window_PlayTime.new
@playtime_window.x = 480
@playtime_window.y = 288
@steps_window = Window_Steps.new
@steps_window.x = 230
@steps_window.y = 384
@gold_window = Window_Gold.new
@gold_window.x = 480
@gold_window.y = 224
@status_window = Window_MenuStatus.new
@status_window.x = 0
@status_window.y = 0
@gnam_window = Window_GName.new
@gnam_window.x = 230
@gnam_window.y = 0
@glog_window = Window_GLogo.new
@glog_window.x = 230
@glog_window.y = 64
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@command_window.dispose
@playtime_window.dispose
@steps_window.dispose
@gold_window.dispose
@status_window.dispose
@gnam_window.dispose
@glog_window.dispose
end
def update
@command_window.update
@playtime_window.update
@steps_window.update
@gold_window.update
@status_window.update
@gnam_window.update
@glog_window.update
if @command_window.active
update_command
return
end
if @status_window.active
update_status
return
end
end
def update_command
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
if $game_party.actors.size == 0 and @command_window.index < 4
$game_system.se_play($data_system.buzzer_se)
return
end
case @command_window.index
when 0
$game_system.se_play($data_system.decision_se)
$scene = Scene_Item.new
when 1
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 2
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 3
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 4
if $game_system.save_disabled
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Scene_Save.new
when 5
$game_system.se_play($data_system.decision_se)
$scene = Scene_End.new
end
return
end
end
def update_status
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@status_window.active = false
@status_window.index = -1
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 1
if $game_party.actors[@status_window.index].restriction >= 2
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Scene_Skill.new(@status_window.index)
when 2
$game_system.se_play($data_system.decision_se)
$scene = Scene_Equip.new(@status_window.index)
when 3
$game_system.se_play($data_system.decision_se)
$scene = Scene_Status.new(@status_window.index)
end
return
end
end
end
There you go, if it still ain't enough, tell me. ;)
You're awesome, Rune. Thanks!
I'm having trouble scripting...mainly because I just started..
Okay here is what I get when I put the script in (https://rmrk.net/proxy.php?request=http%3A%2F%2Fi196.photobucket.com%2Falbums%2Faa245%2Faster527%2Fscripterror.png&hash=92de9e748a289c1c0fb0a1eb78ae6f9b5b89facf)
I put logo 200X200, cuz I made it and such. Title "Knights of Dranora"
Any help?
Oh, I think it might be this added script, but I need it...got a way of making it where both work? It's an additional Scene_Menu for a FFVII menu system that makes you recieve and use items differently.
[spoiler]#==============================================================================
# ? Scene_Menu
#==============================================================================
class Scene_Menu
def main
s1 = $data_system.words.item
s2 = "Trade"
s3 = $data_system.words.skill
s4 = $data_system.words.equip
s5 = "Status"
s6 = "Save"
s7 = "Exit"
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
@command_window.index = @menu_index
if $game_party.actors.size == 0
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
@command_window.disable_item(4)
end
if $game_system.save_disabled
@command_window.disable_item(5)
end
@playstep_window = Window_PlayTimeStep.new
@playstep_window.x = 0
@playstep_window.y = 256
@gold_window = Window_Gold.new
@gold_window.x = 0
@gold_window.y = 416
@status_window = Window_MenuStatus.new
@status_window.x = 160
@status_window.y = 0
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@command_window.dispose
@playstep_window.dispose
@gold_window.dispose
@status_window.dispose
end
def update
@command_window.update
@playstep_window.update
@gold_window.update
@status_window.update
if @command_window.active
update_command
return
end
if @status_window.active
update_status
return
end
end
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
def update_command
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
if $game_party.actors.size == 0 and @command_window.index < 4
$game_system.se_play($data_system.buzzer_se)
return
end
case @command_window.index
when 0
$game_system.se_play($data_system.decision_se)
unless $game_party.actors.size > 1
$scene = Scene_Item.new(@status_window.index)
else
@command_window.active = false
@status_window.active = true
@status_window.index = 0
end
when 2
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 3
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 4
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 5
if $game_system.save_disabled
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Scene_Save.new
when 6
$game_system.se_play($data_system.decision_se)
$scene = Scene_End.new
when 1#Code for opening trade menu
$game_system.se_play($data_system.decision_se)
$scene = Scene_Trade.new(0)
end
return
end
end
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
def update_status
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@status_window.active = false
@status_window.index = -1
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 0
$game_system.se_play($data_system.decision_se)
$scene = Scene_Item.new(@status_window.index)
when 2
if $game_party.actors[@status_window.index].restriction >= 2
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Scene_Skill.new(@status_window.index)
when 3
$game_system.se_play($data_system.decision_se)
$scene = Scene_Equip.new(@status_window.index)
when 4
$game_system.se_play($data_system.decision_se)
$scene = Scene_Status.new(@status_window.index)
end
return
end
end
end[/spoiler]
The second script is obviously overwriting mine, I'll look into making them compatible and shizz. Sorry for the late reply, I haven't been able to access the internet for a few weeks. It's late at the moment, so I'll have a closer look at your problem tomorrow ;)