Poulet Lv.1
Inscrit le : 16/07/2013 Messages : 8
| Sujet: Console comme VXAce pour XP et VX Lun 22 Juil 2013 - 1:10 | |
| Une des plus grande nouveauté de VXace a été, selon moi, une console pour favoriser le debug : Dans laquelle on peut écrire plein de choses ! Sous XP et VX on subit un affreux Popup qui block le jeu ! J'ai donc écrit un script qui intègre la console sous XP et VX. C'est un script Biloucorp donc vous pouvez y retrouver une présentation plus fine sur notre site ! (Et ou les Mise à Jours sont maintenues ) - 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 = 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 |
|
Age : 28 Inscrit le : 30/12/2009 Messages : 1067
| Sujet: Re: Console comme VXAce pour XP et VX Lun 22 Juil 2013 - 2:03 | |
| Etant donné que je trouve ça super utile rien que pour moi, je pense que ça servira à beaucoup d'autres donc je déplace directement. Merci beaucoup en tout cas!! |
|
Habitant Lv.6
Inscrit le : 13/04/2011 Messages : 127
| Sujet: Re: Console comme VXAce pour XP et VX Lun 22 Juil 2013 - 15:03 | |
| |
|
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
| Sujet: Re: Console comme VXAce pour XP et VX Lun 22 Juil 2013 - 16:03 | |
| Yay, un script sympa je ne sais pas si je l'utiliserais étant donné que je vais rester sur VXace mais sait-on jamais. Merci du partage |
|
Inscrit le : 04/05/2011 Messages : 225
| Sujet: Re: Console comme VXAce pour XP et VX Lun 22 Juil 2013 - 21:44 | |
| Effectivement, cela devrait être terriblement utile pour les makeurs! Bravo Grim |
|
| Sujet: Re: Console comme VXAce pour XP et VX | |
| |
|