Dungeon Master Engine Ace

Discussion in 'RGSSx Scripts In Development' started by Wyn Wizard, Apr 30, 2015.

    Tags:
  1. Wyn Wizard

    Wyn Wizard Arcane Specialist Veteran

    Messages:
    979
    Likes Received:
    79
    Location:
    USA, Indiana
    First Language:
    English
    Primarily Uses:
    RMVXA
    Introduction:
     

    Hello RMW! My name is Eugene Petrie, otherwise known as Wyn Wizard.

     

    I am a novice scripter and as of late I have decided to create my own "Script Engine" for you guys to use. I've always wanted to work with open source code and make free things for others, since I enjoy making others happy. So, without further introductions, I give you Dungeon Master Engine Ace Beta 1.0!

     

     

    Release 1: This purpose for this release is to give the creator some scripts that change the appearance of their game.  By adding a splash screen, players can advertise either their company/team or advertise groups that helped them create the game. As for the menu, at the moment its functionality is limited since I am still learning how to modify the menus. As of right now there is only one layout, but I intend add other default layouts that the player/creator can choose from, whether its from initial setup or from the options menu which I plan to create. The core script hold 90% of the modifiable functionality, but as of right now all but one sound is not used since i haven't gotten that far into modifying the menus. Things I plan for release 2 are: Title Menu, Modifiable Menu Layouts, Options scene, auto load/save. So as of right now the next few releases will mainly be functionality based scripts, and not so much game play add-ons. once I get the functionality of the engine complete i will create scripts like: Advanced Stat Distribution, Class/Sub-Class/Prestige classes, RTS battle system with point and click attack/defend, a modifiable hot bar with macro capability, a stat hud, and enhanced movement (moving in diagonals, strafing, etc.)

     

     

    This Beta version of my engine includes the following scripts:

     

    1.) Core

    2.) Custom Main Menu

    3.) Custom Party Menu [Required Add-On]

    4.) Splash Scene

     

    Release Notes:
    This is version Beta 1.0. The next release may include modifications to the rest of the sub menus like items/equipment windows and may include a new options window. Also may include a modified title menu.

     

    Spoilers:
     

    DMEA Core Script:



    Code:
    
    #===============================================================================
    # Author: Wyn Wizard
    # Supporting Authors: Dekita
    # Email: eugenepetrie@live.com
    # Title: Dungeon Master Engine Ace - Core Script
    # Creation Date: 4/1/2015 11:16 a.m.
    # Version: 1.1
    #===============================================================================
    # KNOWN BUGS:
    # None
    #-------------------------------------------------------------------------------
    # UPDATES:
    # 1.) Added sound options
    # 2.) Made a few functions to play custom sounds from core module.
    # 3.) Made the screen resizable.
    #-------------------------------------------------------------------------------
    # INSTRUCTIONS:
    # 1.) Place this script above all other scripts that run in this engine.
    # 2.) The Editable reagion below is pretty self explanitory.
    #     You can modify the screen size to your liking.
    #     With the Sounds, all you have to change is the file name. DO NOT CHANGE
    #     THE PATHS.
    #     The Window Settings can be changed by renaming the "Window" to the name of
    #     your choice. The picture for that must be in Graphics/system folder.
    #     Uncomment the line 91 and enter your picture name where you see 'nil'.
    #     The line shoud look like this: Banner_Name = Cache.system("banner_name").
    #     This too should be in the Graphics/system folder.
    #
    # If any errors occur, please feel free to email me at eugenepetrie@live.com,
    # or pm me, Wyn Wizard.
    #-------------------------------------------------------------------------------
    # TERMS AND CONDITIONS:
    # 1.) You must credit Wyn Wizard and Dekita if you use this script or this
    #     engine.
    # 2.) This script and engine is free for non comercial games.
    # 3.) This script and engine is not free for commercial games. If you want to
    #     this engine in a comercial game, pm me since i am the main code master.
    # 4.) Do not claim this script as your own. I know my coding style, and I will
    #     persue legal actions.
    #===============================================================================
    # Version:
    ($imported||={})[:DM_Core] = 1.1
    #===============================================================================
    # CUSTOMIZABLE ZONE
    #===============================================================================
    module DMEA
      module Core
        #--------------------------------------------------------------------------
        # ** Screen Options **
        #--------------------------------------------------------------------------
        Screen_Size = {
            screen_width: 640, # Default width is 544, change this to the size of
                               # your choice.
            screen_height: 480 # Default height is 416, change this to the size of
                               # your choice.
        }
        #--------------------------------------------------------------------------
        # ** Sound Options ** 
        #--------------------------------------------------------------------------
        # Sound     = ["path" + "filename", volume, pitch]
        Sounds = {
          :open_menu  => ["Audio/SE/" + "Decision2", 80, 100],
          :close_menu => ["Audio/SE/" + "Cancel2", 80, 100],
          :move_curs  => ["Audio/SE/" + "Cursor2", 80, 100],
          :confirm    => ["Audio/SE/" + "Decision2", 80, 100],
          :cancel     => ["Audio/SE/" + "Cancel2", 80, 100],
          :buzzer     => ["Audio/SE/" + "Cancel1", 80, 100],
          :title      => ["Audio/BGM/" + "Fireside Tales", 80, 100]
        }
        #---------------------------------------------------------------------------
        # ■ Play Sound Effect
        #---------------------------------------------------------------------------
        def self.play_sound(key)
          Audio.se_play(*Sounds[key]) 
        end
        #---------------------------------------------------------------------------
        # ■ Play BGM
        #---------------------------------------------------------------------------
        def self.play_bgm(key)
          Audio.bgm_play(*Sounds[key])
        end
        #--------------------------------------------------------------------------
        # ** Windowskin Settings **
        #--------------------------------------------------------------------------
        Windowskin  = "Window"
        Opacity     = 255
        #--------------------------------------------------------------------------
        # ** Window Banner Settings **
        #--------------------------------------------------------------------------
        Banner      = false # set to true for banner, false uses default text
    #~     Banner_Name = Cache.system(nil)
      end
    end
    #===============================================================================
    # DO NOT EDIT BELOW HERE!
    # EDITING BELOW HERE MAY RESULT IN, BUT NOT RESTRICTED TO: NAUSEA, VOMITING, 
    # EXPLOSIVE DIARRHEA, IMPLOSIVE DIARRHEA, DEMINSIA, LOSS OF: VISION, HEARING,
    # FEELING IN YOUR LEFT LEG, OR HAIR. 
    #===============================================================================
    # ** Core Class
    #------------------------------------------------------------------------------
    #  This class creates and initializes all needed game variables.
    #==============================================================================
    class Core
      #--------------------------------------------------------------------------
      # ■ set_screen_size
      #--------------------------------------------------------------------------
      def set_screen_size
        Graphics.resize_screen(*DMEA::Core::Screen_Size.values())
        #DMEA::Core::play_sound(:open_menu)
      end
    end
    #==============================================================================
    # ** Window_Header
    #------------------------------------------------------------------------------
    #  This class creates the header for scenes.
    #==============================================================================
    class Window_Header < Window_Base
        #--------------------------------------------------------------------------
        # ■ Initialize
        #--------------------------------------------------------------------------
        def initialize(x, y, width, height)
          super(x, y, width, height)
          self.windowskin = Cache.system(DMEA::Core::Windowskin) if DMEA::Core::Windowskin
          self.back_opacity = DMEA::Core::Opacity
        end
        #--------------------------------------------------------------------------
        # ■ Set Text
        #--------------------------------------------------------------------------
        def set_text(text)
          contents.clear
          draw_text(0, 0, contents.width, contents.height, text, 1)
        end
    end
    #==============================================================================
    game = Core.new()
    game.set_screen_size()
    #==============================================================================#
    # ** Script created by Wyn Wizard **                                           #
    #==============================================================================#
    
    


     

    DMEA Main Menu Script:



    Code:
    
    #===============================================================================
    # Author: Wyn Wizard
    # Supporting Authors: Dekita
    # Email: eugenepetrie@live.com
    # Title: Dungeon Master Engine Ace - Custom Menu
    # Creation Date: 4/15/2015
    # Version: 1.0
    #===============================================================================
    # KNOWN BUGS:
    # None
    #-------------------------------------------------------------------------------
    # UPDATES:
    # 1.) Created base menu script with 4 commands.
    # 2.) Added party submenu command
    #-------------------------------------------------------------------------------
    # INSTRUCTIONS:
    # 1.) Place this script beloew the DMEA Core Script.
    #     This is a plug and play script.
    # If any errors occur, please feel free to email me at eugenepetrie@live.com,
    # or pm me, Wyn Wizard.
    #-------------------------------------------------------------------------------
    # TERMS AND CONDITIONS:
    # 1.) You must credit Wyn Wizard and Dekita if you use this script or this
    #     engine.
    # 2.) This script and engine is free for non comercial games.
    # 3.) This script and engine is not free for commercial games. If you want to
    #     this engine in a comercial game, pm me since i am the main code master.
    # 4.) Do not claim this script as your own. I know my coding style, and I will
    #     persue legal actions.
    #===============================================================================
    # Version:
    ($imported||={})[:DM_Menu] = 1.0
    #===============================================================================
    # Check Core Script Version:
    if $imported[:DM_Core] >= 1.0
    #===============================================================================
      #=============================================================================
      # ** Menu Scene
      #-----------------------------------------------------------------------------
      #  This class inherits the super class Scene_MenuBase
      #=============================================================================
      class Scene_Menu < Scene_MenuBase
        #---------------------------------------------------------------------------
        # ■ Start Method
        #--------------------------------------------------------------------------- 
        def start
          super
          create_header_window()
          create_help_window()
          create_command_window()
          create_status_window()
        end
        #---------------------------------------------------------------------------
        # ■ Create Header Window Method
        #--------------------------------------------------------------------------- 
        def create_header_window
          @header_window = Window_Header.new(0, 0, Graphics.width, Graphics.height * 0.20)
          @header_window.viewport = @viewport
          if (DMEA::Core::Banner)
            @header_window_banner = Sprite.new()
            @header_window_banner.bitmap = DMEA::Core::Banner_Name
            @header_window_banner.x = Grapics.width * 0.2
            @header_window_banner.y = 100
            @header_window_banner.z = 255
          else
            @header_window.set_text("Main Menu")
          end        
        end
        #---------------------------------------------------------------------------
        # ■ Create Command Window Method
        #--------------------------------------------------------------------------- 
        def create_command_window
          @command_window = Window_Main.new()
          @command_window.viewport = @viewport
          @command_window.height = Graphics.height - @header_window.height - @help_window.height
          @command_window.help_window = @help_window
          @command_window.set_handler(:inv_view, method(:command_inv_view))
          @command_window.set_handler(:party_view,  method(:command_party_view))
          @command_window.set_handler(:save_game,   method(:command_save_game))
          @command_window.set_handler(:load_game,   method(:command_load_game))
          @command_window.set_handler(:quit_game,   method(:command_quit_game))
          @command_window.set_handler(:cancel,    method(:return_scene))
        end
        #---------------------------------------------------------------------------
        # ■ Create Status Window Method
        #--------------------------------------------------------------------------- 
        def create_status_window
          @status_window      = Window_MenuStatus.new(0, 0)
          @status_window.x    = @command_window.width
          @status_window.y    = 0 + @header_window.height
          @status_window.height = Graphics.height - @header_window.height - @help_window.height
        end
        #---------------------------------------------------------------------------
        # ■ Create Help Window Method
        #--------------------------------------------------------------------------- 
        def create_help_window
          @help_window    = Window_Help.new()
          @help_window.x  = 0
          @help_window.y  = Graphics.height - @help_window.height
          @help_window.z  = 255
        end
        #---------------------------------------------------------------------------
        # ■ Update Method
        #--------------------------------------------------------------------------- 
        def update
          super
          return_scene() if Input.trigger?(:
        end
        #---------------------------------------------------------------------------
        # ■ Terminate Method
        #--------------------------------------------------------------------------- 
        def terminate
        super 
          # Uncomment the lines below to dispose of the banner that is used.
    #~      @header_window_banner.dispose()
    #~      @header_window_banner.bitmap.dispose()
        end
        #---------------------------------------------------------------------------
        # ■ Save Game Command
        #--------------------------------------------------------------------------- 
        def command_save_game
          SceneManager.call(Scene_Save)
        end
        #---------------------------------------------------------------------------
        # ■ Load Game Command
        #--------------------------------------------------------------------------- 
        def command_load_game
          SceneManager.call(Scene_Load)
        end
        #---------------------------------------------------------------------------
        # ■ Quit Game Command
        #--------------------------------------------------------------------------- 
        def command_quit_game
          SceneManager.call(Scene_End)
        end
        #---------------------------------------------------------------------------
        # ■ View Inventory Command
        #--------------------------------------------------------------------------- 
        def command_inv_view
          SceneManager.call(Scene_Item)
        end
        #---------------------------------------------------------------------------
        # ■ View Party Command
        #---------------------------------------------------------------------------
        def command_party_view
          SceneManager.call(Scene_Party)
        end
      end
      #=============================================================================
      # ** Command_Window
      #-----------------------------------------------------------------------------
      #  This class creates the command window for scenes.
      #=============================================================================
      class Window_Main < Window_Command
        #---------------------------------------------------------------------------
        # ■ Initialize Method
        #---------------------------------------------------------------------------
        def initialize
          super(0, Graphics.height * 0.2)
        end
        #---------------------------------------------------------------------------
        # ■ Visibel Line Number Method
        #---------------------------------------------------------------------------
        def visible_line_number
          item_max
        end
        #---------------------------------------------------------------------------
        # ■ Create Command List Method
        #---------------------------------------------------------------------------
        def make_command_list
          add_command("Inventory", :inv_view)
          add_command("Party", :party_view)
          add_command("Save", :save_game)
          add_command("Load", :load_game)
          add_command("Quit", :quit_game)
        end
        #---------------------------------------------------------------------------
        # ■ Process Ok Method
        #---------------------------------------------------------------------------
        def process_ok
          @@last_command_symbol = current_symbol
          super
        end
        #---------------------------------------------------------------------------
        # ■ Select Last Method
        #---------------------------------------------------------------------------
        def select_last
          select_symbol(@@last_command_symbol)
        end
        #---------------------------------------------------------------------------
        # ■ Update Help Window Method
        #---------------------------------------------------------------------------
        def update_help
          super
          return unless @help_window
          @help_window.set_text("Take a look at what loot you have aquired") if @index == 0
          @help_window.set_text("Take a look at your party and its options.") if @index == 1
          @help_window.set_text("Save current game progress.") if @index == 2
          @help_window.set_text("Load previous game progress.") if @index == 3
          @help_window.set_text("Quit game.") if @index == 4
        end
      end
    else
      msgbox_p("Dungeon Master Engine Ace - Core Script is either out of date or missing.")
      exit
    end #end script
    #==============================================================================#
    # ** Script created by Wyn Wizard **                                           #
    #==============================================================================#
    
    


     

    DMEA Party Menu Script [Required Add-On]:



    Code:
    
    #===============================================================================
    # Author: Wyn Wizard
    # Supporting Authors: Dekita
    # Email: eugenepetrie@live.com
    # Title: Dungeon Master Engine Ace - Party Sub Menu
    # Creation Date: 4/15/2015
    # Version: 1.0
    #===============================================================================
    # KNOWN BUGS:
    # None
    #-------------------------------------------------------------------------------
    # UPDATES:
    # 1.) Created a Party Sub Menu that handles Formation, Equipment, Skills, and
    #     Status views.
    #-------------------------------------------------------------------------------
    # INSTRUCTIONS:
    # 1.) Place this script beloew the DMEA Custom Menu Script.
    #     This is a plug and play script.
    # If any errors occur, please feel free to email me at eugenepetrie@live.com,
    # or pm me, Wyn Wizard.
    #-------------------------------------------------------------------------------
    # TERMS AND CONDITIONS:
    # 1.) You must credit Wyn Wizard and Dekita if you use this script or this
    #     engine.
    # 2.) This script and engine is free for non comercial games.
    # 3.) This script and engine is not free for commercial games. If you want to
    #     this engine in a comercial game, pm me since i am the main code master.
    # 4.) Do not claim this script as your own. I know my coding style, and I will
    #     persue legal actions.
    #===============================================================================
    # Version:
    ($imported||={})[:DM_Party] = 1.0
    #===============================================================================
    # Check Core Script Version:
    if $imported[:DM_Menu] >= 1.0
    #===============================================================================
      #=============================================================================
      # ** Scene Party
      #-----------------------------------------------------------------------------
      # This class re-works how the formation and status windows are seen.
      # Inherits from Scene_MenuBase
      #=============================================================================
      class Scene_Party < Scene_MenuBase
          #-------------------------------------------------------------------------
          # ■ Start Method
          #-------------------------------------------------------------------------
          def start
              super
              create_header_window()
              create_help_window()
              create_command_window()
              create_status_window()
          end
          #-------------------------------------------------------------------------
          # ■ Create Header Window Method
          #-------------------------------------------------------------------------
          def create_header_window
              @header_window = Window_Header.new(0, 0, Graphics.width, Graphics.height * 0.20)
              @header_window.viewport = @viewport
              @header_window.set_text("Party Menu")
          end
          #-------------------------------------------------------------------------
          # ■ Create help Window Method
          #-------------------------------------------------------------------------    
          def create_help_window
              @help_window    = Window_Help.new()
              @help_window.x  = 0
              @help_window.y  = Graphics.height - @help_window.height
              @help_window.z  = 255
          end
          #-------------------------------------------------------------------------
          # ■ Create Command Window Method
          #-------------------------------------------------------------------------    
          def create_command_window
              @command_window = Window_Party.new()
              @command_window.viewport = @viewport
              @command_window.height = Graphics.height - @header_window.height - @help_window.height
              @command_window.help_window = @help_window
              @command_window.set_handler(:status,        method(:command_personal))
              @command_window.set_handler(:formation,     method(:command_formation))
              @command_window.set_handler(:equip,         method(:command_personal))
              @command_window.set_handler(:skill,        method(:command_personal))
              @command_window.set_handler(:cancel,        method(:return_scene))
          end
          #-------------------------------------------------------------------------
          # ■ Create Status Window Method
          #-------------------------------------------------------------------------    
          def create_status_window
              @status_window      = Window_MenuStatus.new(0, 0)
              @status_window.x    = @command_window.width
              @status_window.y    = 0 + @header_window.height
              @status_window.height = Graphics.height - @header_window.height - @help_window.height
          end
          #-------------------------------------------------------------------------
          # ■ Dispose Method
          #-------------------------------------------------------------------------    
          def dispose
          end
          #-------------------------------------------------------------------------
          # ■ Update Method
          #-------------------------------------------------------------------------    
          def update
              super
              return_scene() if Input.trigger?(:
          end
          #-------------------------------------------------------------------------
          # ■ command_personal Method
          #-------------------------------------------------------------------------
          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
          #-------------------------------------------------------------------------
          # ■ command_formation Method
          #-------------------------------------------------------------------------
          def command_formation
              @status_window.select_last
              @status_window.activate
              @status_window.set_handler(:ok,     method(:on_formation_ok))
              @status_window.set_handler(:cancel, method(:on_formation_cancel))
          end
          #-------------------------------------------------------------------------
          # ■ on_personal_ok Method
          #-------------------------------------------------------------------------
          def on_personal_ok
              case @command_window.current_symbol
                  when :skill then SceneManager.call(Scene_Skill)
                  when :equip then SceneManager.call(Scene_Equip)
                  when :status then SceneManager.call(Scene_Status)
              end
            end
          #-------------------------------------------------------------------------
          # ■ on_personal_cancel Method
          #-------------------------------------------------------------------------
          def on_personal_cancel
              @status_window.unselect
              @command_window.activate
          end
          #-------------------------------------------------------------------------
          # ■ on_formation_ok Method
          #-------------------------------------------------------------------------
          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.activate
          end
          #-------------------------------------------------------------------------
          # ■ on_formation_cancel Method
          #-------------------------------------------------------------------------
          def on_formation_cancel
              if @status_window.pending_index >= 0
                  @status_window.pending_index = -1
                  @status_window.activate
              else
                  @status_window.unselect
                  @command_window.activate
              end
          end
          #-------------------------------------------------------------------------
          # ■ command_equip Method
          #-------------------------------------------------------------------------  
          def command_equip
              SceneManager.call(Scene_Equip)
          end
      end
      #=============================================================================
      # ** Command_Window
      #-----------------------------------------------------------------------------
      #  This class creates the command window for scenes.
      #=============================================================================
      class Window_Party < Window_Command
        #---------------------------------------------------------------------------
        # ■ Initialize Method
        #---------------------------------------------------------------------------
        def initialize
          super(0, Graphics.height * 0.2)
        end
        #---------------------------------------------------------------------------
        # ■ Initialize Method
        #---------------------------------------------------------------------------
        def visible_line_number
          item_max
        end
        #---------------------------------------------------------------------------
        # ■ Create Command List Method
        #---------------------------------------------------------------------------
        def make_command_list
          add_command("Status", :status)
          add_command("Skill", :skill)
          add_command("Equip", :equip)
          add_command("Formation", :formation)
        end
        #---------------------------------------------------------------------------
        # ■ Process Ok Method
        #---------------------------------------------------------------------------
        def process_ok
          @@last_command_symbol = current_symbol
          super
        end
        #---------------------------------------------------------------------------
        # ■ Select Last Method
        #---------------------------------------------------------------------------
        def select_last
          select_symbol(@@last_command_symbol)
        end
        #---------------------------------------------------------------------------
        # ■ Update Help Window Method
        #---------------------------------------------------------------------------
        def update_help
          super
          return unless @help_window
          @help_window.set_text("Check the status of your party.") if @index == 0
          @help_window.set_text("Check or use a character's skill.") if @index == 1
          @help_window.set_text("Change or remove current equipment.") if @index == 2
          @help_window.set_text("Change the current party formation.") if @index == 3
        end
      end
    else
      msgbox_p("Dungeon Master Engine Ace - Main Menu Script is either out of date or missing.")
      exit
    end #end script
    #==============================================================================#
    # ** Script created by Wyn Wizard **                                           #
    #==============================================================================#
    
    


     

    DMEA Splash Scene



    Code:
    
    #===============================================================================
    # Author: Wyn Wizard
    # Supporting Authors: Dekita
    # Email: eugenepetrie@live.com
    # Title: Dungeon Master Engine Ace - Splash Scene
    # Creation Date: 4/28/2015
    # Version: 1.0
    #===============================================================================
    # KNOWN BUGS:
    # None
    #-------------------------------------------------------------------------------
    # UPDATES:
    # 1.) Created a spalsh scene that allows the user to add sponsers or project
    #     team logos.
    #-------------------------------------------------------------------------------
    # INSTRUCTIONS:
    # 1.) This script must be placed below the DMEA Core Script in order for it to
    #     run properly.
    # 2.) This script is fairy flexible, and the editable region is fairly easy to
    #     follow.
    #     The Scenes array is broken into a set of hashs that incude: 
    #     name of the picture file wanted to be shown, picture's "hang" on 
    #     the screen, and then its fade speeds. You can create more than one scene.
    #     To do this, go to the last scene in the Splash_Settings module and add a
    #     "," to it. Then insert this into a new line:
    #     {:name => "file_name, :hang => frames, :fade => [fade_in, fade_out]}
    #       - The file name is the name of the picture
    #       - The frames tells the scene how long to hold the picture on the scene
    #         [60 frames = 1 sec]
    #       - The fade in speed controls the oppacity of the picture's incremement
    #         speed which makes the picture appear on the screen.
    #       - The fade out speed controls the oppacity of the picture's decremement
    #         speed which makes the picture disappear from the screen
    #
    # If any errors occur, please feel free to email me at eugenepetrie@live.com,
    # or pm me, Wyn Wizard.
    #-------------------------------------------------------------------------------
    # TERMS AND CONDITIONS:
    # 1.) You must credit Wyn Wizard and Dekita if you use this script or this
    #     engine.
    # 2.) This script and engine is free for non comercial games.
    # 3.) This script and engine is not free for commercial games. If you want to
    #     this engine in a comercial game, pm me since i am the main code master.
    # 4.) Do not claim this script as your own. I know my coding style, and I will
    #     persue legal actions.
    #===============================================================================
    # Version: At the moment, this is not needed. May be needed in future releases.
    ($imported||={})[:DM_Splash] = 1.0
    #===============================================================================
    # Check Core Script Version:
    if $imported[:DM_Core] >= 1.0
    #===============================================================================
    # DO NOT EDIT BELOW HERE!
    # EDITING BELOW HERE MAY RESULT IN, BUT NOT RESTRICTED TO: NAUSEA, VOMITING, 
    # EXPLOSIVE DIARRHEA, IMPLOSIVE DIARRHEA, DEMINSIA, LOSS OF: VISION, HEARING,
    # FEELING IN YOUR LEFT LEG, OR HAIR. 
    #===============================================================================
    # ■ EDITABLE REGION
    #===============================================================================
      module DMEA
        module Splash_Settings
          Scenes = [
            # [name of picture, how long the picture stays,
            #   [fade in speed, fade out speed]
            {:name => "evony", :hang => 60, :fade_speed => [2, 4]},
            {:name => "kirito", :hang => 60, :fade_speed => [2, 4]}
          ]
        end
      end
    #===============================================================================
      #=============================================================================
      # ** SceneManager
      #-----------------------------------------------------------------------------
      #  This module manages scene transitions. For example, it can handle
      # hierarchical structures such as calling the item screen from the main menu
      # or returning from the item screen to the main menu.
      #=============================================================================
      class << SceneManager
        #---------------------------------------------------------------------------
        # * Get First Scene Class
        #---------------------------------------------------------------------------
        def first_scene_class
          $BTEST ? Scene_Battle : Scene_Splash
        end
      end
      #=============================================================================
      # ** Splash Scene
      #-----------------------------------------------------------------------------
      #  This class holds the fucntionality that runs the splash scene before the
      #   screen runs.
      #=============================================================================
      class Scene_Splash < Scene_Base
        #---------------------------------------------------------------------------
        # ■ Start Method
        #--------------------------------------------------------------------------- 
        def start
          super
          DMEA::Core::play_bgm(:title)
          @sprite = Sprite.new(@viewport)
          @splash_scenes = DMEA::Splash_Settings::Scenes.compact()
          @splash_scene_id = 0
          reset_splash()
        end
        #---------------------------------------------------------------------------
        # ■ Reset Splash Scene Method
        #---------------------------------------------------------------------------    
        def reset_splash
          data = @splash_scenes[@splash_scene_id]
          return unless data
          @stage = :fade_in
          @stage_opacity = 0
          @mid_hang = data[:hang]
          @sprite.bitmap = Cache.picture(data[:name])
          @sprite.opacity = @stage_opacity
          @sprite_center_x = Graphics.width/2 - (@sprite.width/2)
          @sprite_center_y = Graphics.height/2 - (@sprite.height/2)
          @sprite.x = @sprite_center_x
          @sprite.y = @sprite_center_y
          @sprite.zoom_x = (@sprite.zoom_y = 1.0)
        end
        #---------------------------------------------------------------------------
        # ■ Update Method
        #---------------------------------------------------------------------------    
        def update
          super
          case @stage
            when :fade_in  then @stage_opacity += 2
              @stage = :fade_mid if @stage_opacity >= 255
            when :fade_mid  then @mid_hang -= 1
              @stage = :fade_out if @mid_hang <= 0
            when :fade_out then @stage_opacity -= 4
              @sprite.zoom_x = (@sprite.zoom_y -= 0.001)
              @sprite_center_x = Graphics.width/2 - ((@sprite.width * @sprite.zoom_x)/2)
              @sprite_center_y = Graphics.height/2 - ((@sprite.height * @sprite.zoom_y)/2)
              @sprite.x = @sprite_center_x
              @sprite.y = @sprite_center_y
              @stage = :end if @stage_opacity <= 0
            when :end then update_stage_id()
          end
          @sprite.opacity = @stage_opacity
        end
        #---------------------------------------------------------------------------
        # ■ Update Stage ID Method
        #---------------------------------------------------------------------------    
        def update_stage_id
          if (@splash_scene_id == @splash_scenes.size())
            SceneManager.call(Scene_Title)
          else
            @splash_scene_id += 1
            reset_splash()
          end
        end
      end
     
      #=============================================================================
      # ** Scene_Title
      #-----------------------------------------------------------------------------
      #  This class performs the title screen processing.
      #=============================================================================
      class Scene_Title < Scene_Base
        #---------------------------------------------------------------------------
        # ■ Play Title Screen Music Method :: Overidden Method
        #---------------------------------------------------------------------------
        def play_title_music
          # This method does nothing.
        end
      end
    else
      msgbox_p("Dungeon Master Engine Ace - Core Script is either out of date or missing.")
      exit
    end #end script
    #==============================================================================#
    # ** Script created by Wyn Wizard **                                           #
    #==============================================================================#
    
    


     

    Pictures:
     

    Main Menu:


    [​IMG]



     

    Party Menu


    [​IMG]



     

    ​Commission Work:
    Since I am a fairly new scriptor I feel I am not ready for commission work yet. However, if you wish me to modify my engine to fit your project or want me to make a specialty script for my engine that is not included in the open source default engine, I will want payment in the form of steam bucks or skill trade. PM me for details.

     

    Downloads:
     

    DMEA Core Script: http://www.mediafire.com/view/3nf4aek27wc9ume/DMEA_Core.rb

    DMEA Main Menu Script: http://www.mediafire.com/download/dlgkm96xbkgkpuo/DMEA_Menu_Main.rb

    DMEA Party Menu Script: http://www.mediafire.com/download/m1gevt5mqnqp6ga/DMEA_Menu_Party.rb

    DMEA Splash Scene: http://www.mediafire.com/download/1tp86dmbmnfw7kt/DMEA_Splash_Scene.rb

     

    Credits:
     

    Credits due are to Dekita, who is my scripting mentor and script adviser. Who, without his help, the engine would have never made it past the palanning stage. Thanks man! :D

     

     

     

     

     

    If you find any bugs/glitches in my engine please place them here and I will fix them as soon as possible. For remarks please post below. For ways i can improve, please post below. For all other types of remarks or questions please PM me and I will get back to you.
     
    Last edited by a moderator: May 2, 2015
    #1
  2. Jasutin Rai

    Jasutin Rai Developer Veteran

    Messages:
    110
    Likes Received:
    5
    First Language:
    English
    Primarily Uses:
    N/A
    Wow! This is very interesting. I could never hope to make anything with scripting, but I'm still trying. Right now the best I can do is tweak already made scripts to bend to my will XD.

    I think this would be perfect for a developer who is attempting to make a better, but simple player menu. 

    Great job!  BD
     
    #2
  3. Wavelength

    Wavelength Pre-Merge Boot Moderator

    Messages:
    4,521
    Likes Received:
    3,773
    Location:
    Florida, USA
    First Language:
    English
    Primarily Uses:
    RMVXA
    With much due respect for the work you've done... I read through your scripts and still have little idea what they actually do for me as the game designer, aside from shuffle around different menu options in a way I might or might not want and add a splash screen.

    You should update your scripts (and the topic) to explain what benefit your scripts can provide a game designer!
     
    #3
  4. Wyn Wizard

    Wyn Wizard Arcane Specialist Veteran

    Messages:
    979
    Likes Received:
    79
    Location:
    USA, Indiana
    First Language:
    English
    Primarily Uses:
    RMVXA
    At the moment there is little benefit for this engine besides what you have mentioned. And as for the beta engine itself this a beta. beat meaning that this is a first release of something that will be modified and made better over time. The scripts aforementioned need no explaining as they are fairly self explanatory.

    As for what they do for you as a game designer, they give you a new way to look at a menu, which may be customizable or may come with several preset layouts, and a splash screen for your game. This is a simple release with not much meaning to it at the moment. After further development on this system I will be able to actually come up with some decent options for your game. This beta was meant for people to test it and then give me feedback on how I may improve my current scripts, not for being told that my scripts are limited and that they offer little use. 
     
    #4
  5. Wavelength

    Wavelength Pre-Merge Boot Moderator

    Messages:
    4,521
    Likes Received:
    3,773
    Location:
    Florida, USA
    First Language:
    English
    Primarily Uses:
    RMVXA
    I don't really understand why after I try to help by offering a suggestion (add a description explaining what the scripts can do for a game designer because it's not immediately obvious), you take insult to it, using a huffy tone in your response, and even going so far as to try to copy my emphasis in some kind of tit-for-tat.

    Maybe it's because - as your final sentence suggests - you somehow interpreted my suggestion as a damnation that "your scripts aren't useful".  I assure you that is not what I meant, Eugene.
     
    #5
  6. Wyn Wizard

    Wyn Wizard Arcane Specialist Veteran

    Messages:
    979
    Likes Received:
    79
    Location:
    USA, Indiana
    First Language:
    English
    Primarily Uses:
    RMVXA
    Actually, I didn't. I felt that there was indeed a tone in your voice. I assumed that when people saw what i had they would understand that the only thing this beta can do is exactly what the scripts suggest. As soon as i have some material that actually needs explaining then I will have decided what the engine is good for. At this current time this version of the engine just makes appearance changes. thats it. as for future updates, i have not decided yet. I originally wanted to make a Dungeons and Dragons style engine that mimiced that of Baulders Gate game play. This thats what you meant by describing my engine then thats what it should have been.
     
    #6
  7. estriole

    estriole Veteran Veteran

    Messages:
    1,030
    Likes Received:
    335
    First Language:
    indonesian
    any reason why you name it dungeon master engine ace? :D .

    i'm guessing there's a game with that name and this script try to replicate that game.

    or i'm wrong?

    i'm interested in RTS battle system with point and click attack/defend. i hope you can finish this script :D .

    (and i hope you also release stand alone version of it. instead needing the 'core' engine)
     
    #7
  8. Wyn Wizard

    Wyn Wizard Arcane Specialist Veteran

    Messages:
    979
    Likes Received:
    79
    Location:
    USA, Indiana
    First Language:
    English
    Primarily Uses:
    RMVXA
    Actually, I call it dungeon master because the Gamer creator and quest maker of any Dungeons and Dragons campaign is called the DM or Dungeon Master. SO in a sense the title implies that you are the Dungeon Master of your own adventure. :D

    As far as releasing stand alones, those will be simple. and I will probably be making stand alones of the most used or most liked scripts in this system so they can be compatible with other scripts. As for the engine, it is meant to be self contained so when im done with it, it may or may not have compatibility with other scripts. but if someone in the future wants to work on it to make it compatible with engines like Yanfly or Luna then they can go right ahead, as long as they pm me and ask permission first.

    does that answer your question? if not let me know and I will try again. :D I hope you guys end up helping with testing!
     
    #8
  9. Wavelength

    Wavelength Pre-Merge Boot Moderator

    Messages:
    4,521
    Likes Received:
    3,773
    Location:
    Florida, USA
    First Language:
    English
    Primarily Uses:
    RMVXA
    Good luck with your script engine!
     
    #9
  10. Wyn Wizard

    Wyn Wizard Arcane Specialist Veteran

    Messages:
    979
    Likes Received:
    79
    Location:
    USA, Indiana
    First Language:
    English
    Primarily Uses:
    RMVXA
    Thank you. sorry for the misunderstanding. 
     
    #10
    Wavelength likes this.
  11. Wyn Wizard

    Wyn Wizard Arcane Specialist Veteran

    Messages:
    979
    Likes Received:
    79
    Location:
    USA, Indiana
    First Language:
    English
    Primarily Uses:
    RMVXA
    Doing some re-writes to the scripts. I'm doing a complete over-haul of the engine. I can't believe how far I'm getting just diving head first into scripting. I've even made a pokemon style menu proto-type. :D  
     
    #11
  12. magnaangemon01

    magnaangemon01 Veteran Veteran

    Messages:
    305
    Likes Received:
    34
    First Language:
    English
    I assumed from the title that this was going to have a D&D fight engine using dice and such. With the classes set up from the RPG and have races set up too. I was expecting to get ready to make an actual D&D based story when I clicked in. But this isn't like that at all. Great work though.
     
    #12
  13. Wyn Wizard

    Wyn Wizard Arcane Specialist Veteran

    Messages:
    979
    Likes Received:
    79
    Location:
    USA, Indiana
    First Language:
    English
    Primarily Uses:
    RMVXA
    yeah...sorry about the miss leading title. like I said. when I actually get things done right this time I will repost and set this topic up correctly. and as for the scripts that you just expected, they will be part of the engine as soon as I figure out how to make them. :D and thanks btw.
     
    #13

Share This Page