RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
Wyrelade's Simple Mainmenu modification [V1.3B]

0 Members and 1 Guest are viewing this topic.

**
Rep: +0/-0Level 71
I like scripting...
I am here to introduce...

WYRELADE'S MainMenu v.1.2B

(UPDATE TO 1.3B)

Yet easy to install! Plug in and play!

Easy to modificate your self!

Screenshots:


Current version 1.3 Beta

Outdate versions: 1.0 Alpha, 1.1 Beta, 1.2 Beta


Script:

http://adf.ly/CcZPw


Skip AD for the script


Screenshot:

Click the link and "Skip AD" after 5 seconds.

http://adf.ly/CcZWo


Credits:

-Wyrelade for the script.

I want some credits if you use this in your game..

F.A.Q.

Q:It's not working?.. Why..

A: Did you change anything?... Or got any other MainMenu scripts?..

Q: What if I found a bug, Or I got an suggestion for the menu?

A: Write me a PM or info me in this thread about it, Ill take closer look to bug/suggestion.

You never get known, if you really want it.

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Most Mature Member2010 Favourite Staff Member
You should probably call it "Wyrelade's Title Screen" instead of "Wyrelade's Main Menu", since when most people refer to the main menu, they mean Scene_Menu.

I think the design and effect of the script is nice, so nice job on that. However, I do have some comments on your code if you want me to give them; I don't want to intrude if not though, so just let me know!

Anyway, I think it's always great to see a new scripter, so welcome to the community and I hope we can provide a nice atmosphere for you to learn and share your scripts!
« Last Edit: September 06, 2012, 10:00:25 PM by modern algebra »

**
Rep: +0/-0Level 71
I like scripting...
You should probably call it "Wyrelade's Title Screen" instead of "Wyrelade's Main Menu", since when most people refer to the main menu, they mean Scene_Menu.

I think the design and effect of the script is nice, so nice job on that. However, I do have some comments on your code if you want me to give them; I don't want to intrude if not though, so just let me know!

Anyway, I think it's always great to see a new scripter, so welcome to the community and I hope we can provide a nice atmosphere for you to learn and share your scripts!

Sounds amazing.
And yeah, I am quite new to scripting, And I am ready to learn something new out here.
And those "Comments" for the code, you can give them to me without problems :)

Thanks!

You never get known, if you really want it.

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Most Mature Member2010 Favourite Staff Member
Alright, well first I'll say that you're doing mostly everything right, there's just a few issues which I think can be improved.

First of all, Ruby lets you open classes at will and when you do that, you only need to change the parts of the class that you want to change. So, it's not actually necessary to replace methods that you aren't changing. In other words, since you aren't modifying anything in the #make_command_list and #continue_enabled methods, you can just delete them from the script altogether and it will still work.

Secondly, you overwrite the #initialize method in Window_TitleCommand, so when you later alias it in order to change the opacity, that is a strange choice. IN other words, instead of this at the end of the script:

Code: [Select]
#-------------------------------------------------------------------------
# * Transparent menu window
#-------------------------------------------------------------------------
class Window_TitleCommand < Window_Command
  alias initialize_opacity_original initialize
  def initialize
    initialize_opacity_original
    self.opacity = 0
  end
end

You could just change your first #initialize method so that it is:

Code: [Select]
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
  def initialize
    super(((Graphics.width - window_width) / 80), Graphics.height)
    @final_x, @final_y, self.active = self.x, ((Graphics.height * 2.05 - window_height) / 2).to_i, false
    select_symbol :continue if continue_enabled
    self.openness = 1
    self.opacity = 0
    open
  end

However, the preferable option would just be to alias the initialize method in the first place, because that improves compatibility. See: Aliasing in RGSS/2

In this case, most of the initialize method is the same as what you have. The original #initialize method is:

Code: [Select]

  def initialize
    super(0, 0)
    update_placement
    select_symbol(:continue) if continue_enabled
    self.openness = 0
    open
  end

The only thing that you change is that you provide different arguments to super, you don't update_placement, and you set values for @final_x, @final_y, self.active, and self.opacity. The same effect could be achieved by replacing it with a method like this:

Code: [Select]
  alias wyre_mm_initilz_original initialize
  def initialize(*args, &block)
    @final_x = (Graphics.width - window_width) / 80,
    @final_y = (Graphics.height * 2.05 - window_height) / 2).to_i
    wyre_mm_initilz_original(*args, &block) # Call Original Method
    self.x, self.y = @final_x, Graphics.height
    self.active = true
    self.opacity = 0
  end

That will function identically to the method you have, and your script might also be compatible with some other Title Screen scripts that modify that method. You could also alias some of your other methods, but I don't want to take over your script, so I will just mention that it is possible to do it.

The other thing that I wanted to mention was that your formulas are very particular. You set x to:

Code: [Select]
(Graphics.width - window_width) / 80

which will almost always be between 0 and 2, even if the resolution is widened or the window width is changed; I mean, you divide it by 80! Why not set it directly to 0 instead of have a convoluted formula for the possible difference of 1 or 2 pixels?

Your y formula is just as strange:

Code: [Select]
(Graphics.height * 2.05 - window_height) / 2).to_i

I think what you're trying to do is in someway accomodate for the fact that the height of the window is actually unnecessarily large, but the way you ought to be accomodating for that is different. You should just make the @final_y:

Code: [Select]
Graphics.height - self.height

and you should redefine the visible_line_number method to something like this:

Code: [Select]
  def visible_line_number
    1 + ((item_max - 1) / col_max)
  end

Your window_width method is also strange. You have it as:
Code: [Select]
(240 - standard_padding) * 2
It doesn't seem to be particularly related to anything relevant to its size like column max, and it seems odd to tie it to standard_padding.

Anyway, there's nothing inherently wrong about having weird formulas - it's not making a big difference either way. It's just weird.

And after all that is said, I don't mean to detract from the script in any way. Like I said, you're doing most things right and it works the way you want it to, but I think if you think about the script a little more you can make it that much better.
« Last Edit: September 08, 2012, 12:01:20 AM by modern algebra »

**
Rep: +0/-0Level 71
I like scripting...
Thanks really much for this scripting help. Sure will come in handy!

You never get known, if you really want it.