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.

XP and VX Output Console

Hi, today i show you my latest script.
It's a Console like RPG Maker VX Ace to show output.

You can use "console.log(object)" or "p object" to display information in the Console !


Code:
#==============================================================================

# ** Console Support for XP/VX

#------------------------------------------------------------------------------

# By Grim from [url=http://www.biloucorp.com]http://www.biloucorp.com[/url]

#==============================================================================

# Function : 

#==============================================================================

# Console.log(text)  => display text in console

# console.log(text)  => display text in console

#==============================================================================

# ** Configuration

#------------------------------------------------------------------------------

# Configuration data

#==============================================================================

 

module Configuration

  #--------------------------------------------------------------------------

  # * Active Console (true=>activate console, false=>unactivate console)

  # * Only for XP and VX

  #--------------------------------------------------------------------------

  ENABLE_CONSOLE = true

end

 

#==============================================================================

# ** Util

#------------------------------------------------------------------------------

# Usefull tools

#==============================================================================

 

module Util

  #--------------------------------------------------------------------------

  # * Singleton

  #--------------------------------------------------------------------------

  extend self

  #--------------------------------------------------------------------------

  # * if RPG MAKER XP

  #--------------------------------------------------------------------------

  def rpg_maker_xp?

    defined?(Hangup)

  end

  #--------------------------------------------------------------------------

  # * if RPG MAKER VX

  #--------------------------------------------------------------------------

  def rpg_maker_vx?

    !rpg_maker_xp? && (RUBY_VERSION == '1.8.1')

  end

  #--------------------------------------------------------------------------

  # * if RPG MAKER VXAce

  #--------------------------------------------------------------------------

  def rpg_maker_vxace?

    RUBY_VERSION == '1.9.2'

  end

  #--------------------------------------------------------------------------

  # * alias

  #--------------------------------------------------------------------------

  alias :rmxp?    :rpg_maker_xp?

  alias :rmvx?    :rpg_maker_vx?

  alias :rmvxace? :rpg_maker_vxace?

  #--------------------------------------------------------------------------

  # * Get Screen Object

  #--------------------------------------------------------------------------

  def get_screen

    return $game_map.screen if rpg_maker_vxace?

    $game_screen

  end

  #--------------------------------------------------------------------------

  # * Debug mode

  #--------------------------------------------------------------------------

  def from_editor?

    $TEST || $DEBUG

  end

  #--------------------------------------------------------------------------

  # * Get current Scene

  #--------------------------------------------------------------------------

  def scene

    return SceneManager.scene if rpg_maker_vxace?

    $scene

  end

  #--------------------------------------------------------------------------

  # * Window Handle

  #--------------------------------------------------------------------------

  def handle

    Win32API::FindWindowA.call('RGSS Player', 0)

  end

end

 

#==============================================================================

# ** Win32API

#------------------------------------------------------------------------------

#  win32/registry is registry accessor library for Win32 platform. 

#  It uses dl/import to call Win32 Registry APIs.

#==============================================================================

 

class Win32API

  #--------------------------------------------------------------------------

  # * Librairy

  #--------------------------------------------------------------------------

  AllocConsole        = self.new('kernel32', 'AllocConsole', 'v', 'l')

  FindWindowA         = self.new('user32', 'FindWindowA', 'pp', 'i')

  SetForegroundWindow = self.new('user32', 'SetForegroundWindow','l','l')

  SetConsoleTitleA    = self.new('kernel32','SetConsoleTitleA','p','s')

  WriteConsoleOutput  = self.new('kernel32', 'WriteConsoleOutput', 'lpllp', 'l' )

end

 

#==============================================================================

# ** Console

#------------------------------------------------------------------------------

#  VXAce Console Handling

#==============================================================================

 

module Console

  #--------------------------------------------------------------------------

  # * Singleton

  #--------------------------------------------------------------------------

  extend self

  #--------------------------------------------------------------------------

  # * Initialize

  #--------------------------------------------------------------------------

  def init

    unless Util.rmvxace?

      return unless Util.from_editor?

      Win32API::AllocConsole.call

      Win32API::SetForegroundWindow.call(Util.handle)

      Win32API::SetConsoleTitleA.call("RGSS Console")

      $stdout.reopen('CONOUT$')

    end

  end

  #--------------------------------------------------------------------------

  # * Log

  #--------------------------------------------------------------------------

  def log(*data)

    return unless Util.from_editor?

    if Util.rmvxace?

      p(*data)

      return

    end

    return unless Configuration::ENABLE_CONSOLE

    puts(*data.collect{|d|d.inspect})

  end

end

 

#==============================================================================

# ** Kernel

#------------------------------------------------------------------------------

#  Object class methods are defined in this module. 

#  This ensures compatibility with top-level method redefinition.

#==============================================================================

 

module Kernel

  #--------------------------------------------------------------------------

  # * Alias for console

  #--------------------------------------------------------------------------

  def console; Console; end

  #--------------------------------------------------------------------------

  # * pretty print

  #--------------------------------------------------------------------------

  if !Util.rmvxace? && Util.from_editor?

    def p(*args)

      console.log(*args)

    end

  end

end

 

#--------------------------------------------------------------------------

# * Initialize Console

#--------------------------------------------------------------------------

Console.init if Configuration::ENABLE_CONSOLE

And original link here : https://github.com/Funkywork/Scripts-rm ... Console.rb
 

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