Introduction
The script build a console like RPG Maker VX Ace to show information
Features
- XP and VX compatibilities
- console.log(Object) or Console.log(Object) or "p Object" to display Information
- Enablable/Disablable with a single ligne in the script
Screenshots
No screenshot, it's the same as VXAce (sorry for my bad English)
How to Use
Just Past the script in Materials Area.
When you launch your Game from the editor, the console will be displayed.
use console.log(Object) or Console.log(Object) or "p Object" to display Information
Script
Code:
#==============================================================================# ** Console Support for XP/VX#------------------------------------------------------------------------------# By Grim from [URL="
http://www.biloucorp.com#==============================================================================%23"]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 = trueend#==============================================================================# ** 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) endend#==============================================================================# ** 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}) endend#==============================================================================# ** 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 endend#--------------------------------------------------------------------------# * Initialize Console#--------------------------------------------------------------------------Console.init if Configuration::ENABLE_CONSOLE
Credit and Thanks
- No credit, it's free ^^'
Author's Notes
Enjoy
本贴来自国际rpgmaker官方论坛作者:Grim处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:
https://forums.rpgmakerweb.com/threads/xp-and-vx-console-output.15747/