Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Scripting Contest 1 - Custom Menu System - Contest Ended

Vote for your favorite CMS. (click links to download)

  • Daft_Punk_CMS

    Votes: 2 25.0%
  • Kain_Nobel_CMS

    Votes: 4 50.0%
  • rey_meustrus_CMS

    Votes: 2 25.0%
  • mr_smith_CMS

    Votes: 0 0.0%

  • Total voters
    8
  • Poll closed .
Yes vgvgf, you can join. Let's see something crazy.

Is it only judges that are scoring, or is the community voting on this as well or how does that work out? I'd like to be a judge, I might even submit my ol' CMS if I can get off my lazy ass and track down whatever bugs I need to fix. It's been months since I've even touched the thing, lets hope I can start back where I left off at XD

If the community is voting on this as well as the judges, would I be able to request my submission to be open source (ie not encrypted)? There's more than just fancy modified scenes that make it special to me, actually my CMS Standards modules is more important than the actual CMS itself IMHO.

What about making a topic for our CMS projects? Is there a rule about it has to be something that you've never submitted to the community, or can I post it openly in Script Analysis prior to the due date of the contest? Some of us might have rather large systems, with optional graphics 'n such, it'd probably be best for certain people to make a topic explaining thier systems rather than just blindly downloading and voting on individual demos. Also, it'd give people a good chance to get feedback and be able to improve their work before the due date.

Is there going to be awards for different achievements, like "Best Coded CMS" or "Most Fancy Interface" or "Most Useful CMS"? That would be cool if the contest was a monthy (or bi-monthly) Orgy awards style contest, where banners are given out XD

We are still working out the kinks to scoring and such. For now, the judge's score the coding itself. The community gets to judge how pretty they are since we will be keeping the demo's encrypted (for those who enter that don't want their coding shared).

It would be fine to make a topic in the submission forum with your script. As I said above, if you do wish to enter a script you have submitted, just PM me saying "This is my entry for the scripting contest <topic link>."

We might do different awards and such as you said. It all really depends on how many entries we get.
 
You don't have to. You really don't need to even alter anything besides Scene_Menu. Its all whatever you want to, you over-achievers you.

EDIT: I see you berka... :kiss:
 

Untra

Sponsor

I'll sign up. Im not the best when it comes to clean code, but I can certainly juggle my fair share of rgss. :thumb:
 
I have a fairly easy way to make effective animations, and even the better menu system which don't dispose the main menu before bringing in submenus. It's my layering Scene_Base, and I think it should be fair for anyone to use it to make animating their menus easier.

It's basically a rewrite of the SDK::Scene_Base class, so any SDK-compliant scripts (which I'm sure would get better scores anyway) will work with it. The animation functions are like so:

Code:
  def main_in_animation # This is called every frame until it's finished.

    @command_window.x += 10 if @command_window.x < 0

  end

  def main_in_animation_done? # The animation is done when this returns true

    return @command_window.x == 0

  end

  def main_in # This is called only once when the animation finishes

    @command_window.active = true #not actually necessary, but that's the sort of thing that goes here.

    super # Be sure NOT to forget this line, it's important

  end

Out animations work that same, but with main_out_ instead of main_in_.

To make a submenu appear on top of the main menu, you replace commands like $scene = Scene_Skill.new(@status_window.index) with new_layer(Scene_Skill, @status_window.index). This works best if you change all references to $scene into either new_scene(scene_name, *args) or new_layer(scene_name, *args).

I'll help with any problems contestants have.

I'm modifying a very nice, but old and convoluted code for this, and one thing I'm doing to make it simpler is breaking up what was a massive Scene_Menu into its various sub-scenes and calling them as layers. The animations are greatly simplified as well.
 
Instance changing made easy :kiss:
[rgss]#==============================================================================
# ** Changeable
#==============================================================================
 
module Changeable
  #-------------------------------------------------------------------------
  # * Name      : Change Instance
  #   Info      : Starts Instance Change
  #   Author    : SephirothSpawn
  #   Call Info : Three-Argument Pairs
  #               Instance Name (String, ie: 'x', 'y', 'opacity')
  #               Destination
  #               Speed
  #-------------------------------------------------------------------------
  def change_instances(*args)
    # Setup instances if nil
    @instance_destinations = {} if @instance_destinations == nil
    @instance_speeds = {}       if @instance_speeds == nil
    # Pass through args
    for i in 0...(args.size / 3)
      # Gets instance, destination & speed
      inst = args[i * 3]
      dest = args[i * 3 + 1]
      sped = args[i * 3 + 2]
      # Saves destination & speed
      @instance_destinations[inst] = dest
      @instance_speeds[inst] = sped
    end
  end
  #-------------------------------------------------------------------------
  # * Name      : Changing Instances?
  #   Info      : Checks if instances still changing
  #   Author    : SephirothSpawn
  #   Call Info : No Arguments
  #   Comment   : None
  #-------------------------------------------------------------------------
  def changing_instances?
    return false if @instance_destinations == nil || @instance_speeds == nil
    return @instance_destinations.size > 0
  end
  #-------------------------------------------------------------------------
  # * Name      : Update Instances
  #   Info      : Updates Instance Changes
  #   Author    : SephirothSpawn
  #   Call Info : No Arguments
  #   Comment   : Must be called every frame in the object using this module
  #               as a mixin
  #-------------------------------------------------------------------------
  def update_instances
    # Return if nil changes
    return if @instance_destinations == nil || @instance_speeds == nil
    # Pass through each instance & destination
    @instance_destinations.each do |instance, destination|
      # Gets current value
      value = self.method(instance).call
      # If at destination
      if value == destination
        # Delete from lists
        @instance_destinations.delete(instance)
        @instance_speeds.delete(instance)
        next
      end
      # Gets speed
      change = @instance_speeds[instance]
      change = [change, (destination - value).abs].min
      # Invert change if destination < value
      change *= -1 if destination < value
      # Change instance
      self.method("#{instance}=").call(value + change)
    end
  end
end
 
#==============================================================================
# ** Sprite
#==============================================================================
 
class Sprite
  #-------------------------------------------------------------------------
  # * Include Changeable
  #-------------------------------------------------------------------------
  include Changeable
  #-------------------------------------------------------------------------
  # * Frame Update
  #-------------------------------------------------------------------------
  alias_method :seph_changeable_update, :update
  def update
    seph_changeable_update
    update_instances
  end
end
 
#==============================================================================
# ** Window
#==============================================================================
 
class Window
  #-------------------------------------------------------------------------
  # * Include Changeable
  #-------------------------------------------------------------------------
  include Changeable
  #-------------------------------------------------------------------------
  # * Frame Update
  #-------------------------------------------------------------------------
  alias_method :seph_changeable_update, :update
  def update
    seph_changeable_update
    update_instances
  end
end
[/rgss]

Changes any instance in increments made easy.



We have our first entry. Keep them coming guys. :box:
 
Yea Seph, I didn't do alot on the CMS until now, but I'm free for a whole glorious week so I'm going to make something this week ;)
 
Well, that Changeable thing wasn't exactly self-explanatory, but I think I've got it now.

I never actually posted the Scene_Base...if anyone wants it, I'll post it right here for you. By the way, Seph, I've been working on it...again. It's been made a lot simpler, in a way, and it changes the way the game runs...instead of $scene = Scene.new; $scene.main while $scene != nil, it's Game.run(Scene). I've also gotten rid of the need for remembering the parent, which helps simplify things. Not sure if this is interesting to you, though.
 
@Mr_Smith: Good to hear. Go go go! lol

@mew: Yeah, I didn't bother with instructions at the time because I am super lazy (due to working so dang much). I just figured I'd share it since everyone else was sharing there methods as well. :P It's relatively simple:
Code:
sprite_instance.change_instances('x', 640, 16)
Sounds good you have spiced it up a bit. If you want to send me your updates for the SDK, be my guest. I am pretty close to finally getting that thing updated.



10 Days left people. Let's see some magic!
 
Are we allowed to use other system add ons? Say for example I want to use Blizzard's Slant Bars for effect.
Or maybe use some of the code snippets to move around the windows easier.

Or are we suppose to code everything from scratch?
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top