じ☆ve冰风 发表于 5 天前

XP and VX Console Output

VX & XP Console Output (like RMVXAce) V 1
Grim (http://www.biloucorp.com)​
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 http://www.biloucorp.com#==============================================================================# 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_screenend#--------------------------------------------------------------------------# * Debug mode#--------------------------------------------------------------------------def from_editor?    $TEST || $DEBUGend#--------------------------------------------------------------------------# * Get current Scene#--------------------------------------------------------------------------def scene    return SceneManager.scene if rpg_maker_vxace?    $sceneend#--------------------------------------------------------------------------# * 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$')    endend#--------------------------------------------------------------------------# * 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)    endendend#--------------------------------------------------------------------------# * 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/
页: [1]
查看完整版本: XP and VX Console Output