简介
本工具为 RMXP 数据库增加了与 VX 及 VX Ace 相同的“备注”功能。
灵感来源于http://rm.66rpg.com/forum.php?mod=viewthread&tid=241539
本工具为 RMXP 数据库增加了与 VX 及 VX Ace 相同的“备注”功能。
灵感来源于http://rm.66rpg.com/forum.php?mod=viewthread&tid=241539
在RGSS中使用Win32API时,如果涉及中文及其他特殊字符,就必须在系统代码页及UTF-8间进行必要的转换,否则就会出现乱码。在许许多多的脚本中都可以见到类似的转码脚本,其中大多数年代久远,作者已不可考。我的这个版本只是选取一个常见的版本,简单地进行了些许优化。
#============================================================================== # ■ EasyConv #------------------------------------------------------------------------------ # 转码模块。原作者不明,由失落的乐章优化。 #============================================================================== module EasyConv #-------------------------------------------------------------------------- # ● 常量定义 #-------------------------------------------------------------------------- CP_ACP = 0 CP_UTF8 = 65001 M2W = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i') W2M = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i') #-------------------------------------------------------------------------- # ● 转码 #-------------------------------------------------------------------------- def s2u len = M2W.call(CP_ACP, 0, self, -1, nil, 0) buf = "\0" * (len*2) M2W.call(CP_ACP, 0, self, -1, buf, buf.size/2) len = W2M.call(CP_UTF8, 0, buf, -1, nil, 0, nil, nil) ret = "\0" * len W2M.call(CP_UTF8, 0, buf, -1, ret, ret.size, nil, nil) ret[-1] = "" return ret end #-------------------------------------------------------------------------- # ● 转码 #-------------------------------------------------------------------------- def u2s len = M2W.call(CP_UTF8, 0, self, -1, nil, 0) buf = "\0" * (len*2) M2W.call(CP_UTF8, 0, self, -1, buf, buf.size/2) len = W2M.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil) ret = "\0" * len W2M.call(CP_ACP, 0, buf, -1, ret, ret.size, nil, nil) return ret end end class String include EasyConv end
module Graphics #取得窗口句柄 HWND = Win32API.new('user32','GetActiveWindow',nil,'l').call def self.fullscreen? #取得窗口范围矩形 window_rect = "\0" * 16 Win32API.new('user32','GetWindowRect',['l','p'],'i').call(HWND,window_rect) wl,wt,wr,wb = window_rect.unpack('llll') #取得客户区矩形 client_rect = "\0" * 16 Win32API.new('user32','GetClientRect',['l','p'],'i').call(HWND,client_rect) cl,ct,cr,cb = client_rect.unpack('llll') wr - wl == cr end end
使用时:
Graphics.fullscreen? #当游戏处于全屏状态时返回true, 否则返回false
原理:使用GetWindowRect 和GetClientRect 分别取得游戏窗口的整个范围矩形和客户区矩形。游戏全屏后,由于不再存在边框,这两个矩形就是相等的。而在窗口模式下,客户区矩形会小一些。
目前论坛的数据已经恢复到2014年7-8月时的状态。
OCRA(OneClick Ruby Application Builder)是一个将.rb文件打包为可执行文件的gem,生成的EXE可脱离Ruby环境运行。其原理是将Ruby程序运行所需的解释器、gems等全部打包“带走”。
首先按常规方法安装OCRA:
gem install ocra
常用参数:
--windows 不显示控制台(rubyw.exe) --console 显示控制台 (默认,ruby.exe) --dll dllname 包含Ruby的bin目录中指定的DLL --no-lzma 打包时禁用LZMA压缩 --quiet 不显示打包进度 --help 查看ocra帮助 --no-autoload 不包含脚本中autoload的项目 --icon 用自定义的ico替换掉默认的红宝石图标
命令行下切换到文件所在目录,运行:
ocra --console name.rb
耐心等待一段时间后EXE文件就生成了。
欢迎使用WordPress。这是系统自动生成的演示文章。编辑或者删除它,然后开始您的博客!